@willyim/idp 0.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,1022 @@
1
+ /**
2
+ * GENERATED FILE — DO NOT EDIT.
3
+ *
4
+ * openapi-typescript output for the willy.im IdP management API
5
+ * (`/api/v1/*`), generated from ../../openapi/idp-api.json, which is itself
6
+ * generated from apps/idp's OpenAPI route. Regenerate with `npm run openapi`.
7
+ *
8
+ * The OIDC endpoints (discovery, authorize, token, userinfo, end-session) are
9
+ * NOT here and never will be: they are standards-defined and discovered at
10
+ * runtime from `.well-known`, not part of this document.
11
+ */
12
+ /**
13
+ * This file was auto-generated by openapi-typescript.
14
+ * Do not make direct changes to the file.
15
+ */
16
+
17
+ export interface paths {
18
+ "/api/v1/applications": {
19
+ parameters: {
20
+ query?: never;
21
+ header?: never;
22
+ path?: never;
23
+ cookie?: never;
24
+ };
25
+ /** List registered applications */
26
+ get: {
27
+ parameters: {
28
+ query?: never;
29
+ header?: never;
30
+ path?: never;
31
+ cookie?: never;
32
+ };
33
+ requestBody?: never;
34
+ responses: {
35
+ /** @description OK */
36
+ 200: {
37
+ headers: {
38
+ [name: string]: unknown;
39
+ };
40
+ content: {
41
+ "application/json": {
42
+ applications: {
43
+ clientId: string;
44
+ name: string | null;
45
+ /** @description Application key; consumer workspace claims are filtered by this */
46
+ app: string | null;
47
+ redirectUris: string[];
48
+ disabled: boolean;
49
+ /** @description ISO 8601 timestamp */
50
+ createdAt: string;
51
+ }[];
52
+ };
53
+ };
54
+ };
55
+ /** @description Missing or invalid bearer token */
56
+ 401: {
57
+ headers: {
58
+ [name: string]: unknown;
59
+ };
60
+ content?: never;
61
+ };
62
+ };
63
+ };
64
+ put?: never;
65
+ post?: never;
66
+ delete?: never;
67
+ options?: never;
68
+ head?: never;
69
+ patch?: never;
70
+ trace?: never;
71
+ };
72
+ "/api/v1/users": {
73
+ parameters: {
74
+ query?: never;
75
+ header?: never;
76
+ path?: never;
77
+ cookie?: never;
78
+ };
79
+ /** List users */
80
+ get: {
81
+ parameters: {
82
+ query?: never;
83
+ header?: never;
84
+ path?: never;
85
+ cookie?: never;
86
+ };
87
+ requestBody?: never;
88
+ responses: {
89
+ /** @description OK */
90
+ 200: {
91
+ headers: {
92
+ [name: string]: unknown;
93
+ };
94
+ content: {
95
+ "application/json": {
96
+ users: {
97
+ id: string;
98
+ email: string;
99
+ name: string | null;
100
+ emailVerified: boolean;
101
+ createdAt: string;
102
+ }[];
103
+ };
104
+ };
105
+ };
106
+ /** @description Missing or invalid bearer token */
107
+ 401: {
108
+ headers: {
109
+ [name: string]: unknown;
110
+ };
111
+ content?: never;
112
+ };
113
+ };
114
+ };
115
+ put?: never;
116
+ post?: never;
117
+ delete?: never;
118
+ options?: never;
119
+ head?: never;
120
+ patch?: never;
121
+ trace?: never;
122
+ };
123
+ "/api/v1/workspaces": {
124
+ parameters: {
125
+ query?: never;
126
+ header?: never;
127
+ path?: never;
128
+ cookie?: never;
129
+ };
130
+ /** List workspaces */
131
+ get: {
132
+ parameters: {
133
+ query?: never;
134
+ header?: never;
135
+ path?: never;
136
+ cookie?: never;
137
+ };
138
+ requestBody?: never;
139
+ responses: {
140
+ /** @description OK */
141
+ 200: {
142
+ headers: {
143
+ [name: string]: unknown;
144
+ };
145
+ content: {
146
+ "application/json": {
147
+ workspaces: {
148
+ id: string;
149
+ name: string;
150
+ slug: string;
151
+ applicationId: string | null;
152
+ createdAt: string;
153
+ }[];
154
+ };
155
+ };
156
+ };
157
+ /** @description Missing or invalid bearer token */
158
+ 401: {
159
+ headers: {
160
+ [name: string]: unknown;
161
+ };
162
+ content?: never;
163
+ };
164
+ };
165
+ };
166
+ put?: never;
167
+ post?: never;
168
+ delete?: never;
169
+ options?: never;
170
+ head?: never;
171
+ patch?: never;
172
+ trace?: never;
173
+ };
174
+ "/api/v1/apps/{app}/members": {
175
+ parameters: {
176
+ query?: never;
177
+ header?: never;
178
+ path?: never;
179
+ cookie?: never;
180
+ };
181
+ /**
182
+ * List app members
183
+ * @description Requires `member:read` on the path app (or the superadmin token).
184
+ */
185
+ get: {
186
+ parameters: {
187
+ query?: never;
188
+ header?: never;
189
+ path: {
190
+ /** @description Application key (oauth_client.metadata.app). */
191
+ app: string;
192
+ };
193
+ cookie?: never;
194
+ };
195
+ requestBody?: never;
196
+ responses: {
197
+ /** @description OK */
198
+ 200: {
199
+ headers: {
200
+ [name: string]: unknown;
201
+ };
202
+ content: {
203
+ "application/json": {
204
+ members: {
205
+ userId: string;
206
+ email: string;
207
+ name: string | null;
208
+ /** @enum {string} */
209
+ role: "admin" | "member";
210
+ permissions: string[];
211
+ }[];
212
+ };
213
+ };
214
+ };
215
+ /** @description Missing or invalid bearer token */
216
+ 401: {
217
+ headers: {
218
+ [name: string]: unknown;
219
+ };
220
+ content?: never;
221
+ };
222
+ /** @description Key lacks the permission / is bound to another app */
223
+ 403: {
224
+ headers: {
225
+ [name: string]: unknown;
226
+ };
227
+ content?: never;
228
+ };
229
+ };
230
+ };
231
+ put?: never;
232
+ /**
233
+ * Add or invite a member
234
+ * @description Requires `member:invite` on the path app (or the superadmin token).
235
+ */
236
+ post: {
237
+ parameters: {
238
+ query?: never;
239
+ header?: never;
240
+ path: {
241
+ /** @description Application key (oauth_client.metadata.app). */
242
+ app: string;
243
+ };
244
+ cookie?: never;
245
+ };
246
+ requestBody: {
247
+ content: {
248
+ "application/json": {
249
+ /** Format: email */
250
+ email: string;
251
+ /**
252
+ * @default member
253
+ * @enum {string}
254
+ */
255
+ role?: "admin" | "member";
256
+ /** @default [] */
257
+ permissions?: string[];
258
+ };
259
+ };
260
+ };
261
+ responses: {
262
+ /** @description OK */
263
+ 201: {
264
+ headers: {
265
+ [name: string]: unknown;
266
+ };
267
+ content: {
268
+ "application/json": {
269
+ /** @enum {string} */
270
+ result: "added" | "invited";
271
+ };
272
+ };
273
+ };
274
+ /** @description Missing or invalid bearer token */
275
+ 401: {
276
+ headers: {
277
+ [name: string]: unknown;
278
+ };
279
+ content?: never;
280
+ };
281
+ /** @description Key lacks the permission / is bound to another app */
282
+ 403: {
283
+ headers: {
284
+ [name: string]: unknown;
285
+ };
286
+ content?: never;
287
+ };
288
+ /** @description Method not allowed on this resource (see the `Allow` header) */
289
+ 405: {
290
+ headers: {
291
+ [name: string]: unknown;
292
+ };
293
+ content?: never;
294
+ };
295
+ /** @description Conflict (already a member, last admin, slug taken, …) */
296
+ 409: {
297
+ headers: {
298
+ [name: string]: unknown;
299
+ };
300
+ content?: never;
301
+ };
302
+ /** @description Body failed validation */
303
+ 422: {
304
+ headers: {
305
+ [name: string]: unknown;
306
+ };
307
+ content?: never;
308
+ };
309
+ };
310
+ };
311
+ delete?: never;
312
+ options?: never;
313
+ head?: never;
314
+ patch?: never;
315
+ trace?: never;
316
+ };
317
+ "/api/v1/apps/{app}/members/{userId}": {
318
+ parameters: {
319
+ query?: never;
320
+ header?: never;
321
+ path?: never;
322
+ cookie?: never;
323
+ };
324
+ get?: never;
325
+ put?: never;
326
+ post?: never;
327
+ /**
328
+ * Remove a member
329
+ * @description Requires `member:manage` on the path app (or the superadmin token).
330
+ */
331
+ delete: {
332
+ parameters: {
333
+ query?: never;
334
+ header?: never;
335
+ path: {
336
+ /** @description Application key (oauth_client.metadata.app). */
337
+ app: string;
338
+ userId: string;
339
+ };
340
+ cookie?: never;
341
+ };
342
+ requestBody?: never;
343
+ responses: {
344
+ /** @description OK */
345
+ 200: {
346
+ headers: {
347
+ [name: string]: unknown;
348
+ };
349
+ content: {
350
+ "application/json": {
351
+ /** @constant */
352
+ ok: true;
353
+ };
354
+ };
355
+ };
356
+ /** @description Missing or invalid bearer token */
357
+ 401: {
358
+ headers: {
359
+ [name: string]: unknown;
360
+ };
361
+ content?: never;
362
+ };
363
+ /** @description Key lacks the permission / is bound to another app */
364
+ 403: {
365
+ headers: {
366
+ [name: string]: unknown;
367
+ };
368
+ content?: never;
369
+ };
370
+ /** @description Method not allowed on this resource (see the `Allow` header) */
371
+ 405: {
372
+ headers: {
373
+ [name: string]: unknown;
374
+ };
375
+ content?: never;
376
+ };
377
+ /** @description Conflict (already a member, last admin, slug taken, …) */
378
+ 409: {
379
+ headers: {
380
+ [name: string]: unknown;
381
+ };
382
+ content?: never;
383
+ };
384
+ /** @description Body failed validation */
385
+ 422: {
386
+ headers: {
387
+ [name: string]: unknown;
388
+ };
389
+ content?: never;
390
+ };
391
+ };
392
+ };
393
+ options?: never;
394
+ head?: never;
395
+ /**
396
+ * Update a member's role + permissions
397
+ * @description Requires `member:manage` on the path app (or the superadmin token).
398
+ */
399
+ patch: {
400
+ parameters: {
401
+ query?: never;
402
+ header?: never;
403
+ path: {
404
+ /** @description Application key (oauth_client.metadata.app). */
405
+ app: string;
406
+ userId: string;
407
+ };
408
+ cookie?: never;
409
+ };
410
+ requestBody: {
411
+ content: {
412
+ "application/json": {
413
+ /** @enum {string} */
414
+ role: "admin" | "member";
415
+ /** @default [] */
416
+ permissions?: string[];
417
+ };
418
+ };
419
+ };
420
+ responses: {
421
+ /** @description OK */
422
+ 200: {
423
+ headers: {
424
+ [name: string]: unknown;
425
+ };
426
+ content: {
427
+ "application/json": {
428
+ /** @constant */
429
+ ok: true;
430
+ };
431
+ };
432
+ };
433
+ /** @description Missing or invalid bearer token */
434
+ 401: {
435
+ headers: {
436
+ [name: string]: unknown;
437
+ };
438
+ content?: never;
439
+ };
440
+ /** @description Key lacks the permission / is bound to another app */
441
+ 403: {
442
+ headers: {
443
+ [name: string]: unknown;
444
+ };
445
+ content?: never;
446
+ };
447
+ /** @description Method not allowed on this resource (see the `Allow` header) */
448
+ 405: {
449
+ headers: {
450
+ [name: string]: unknown;
451
+ };
452
+ content?: never;
453
+ };
454
+ /** @description Conflict (already a member, last admin, slug taken, …) */
455
+ 409: {
456
+ headers: {
457
+ [name: string]: unknown;
458
+ };
459
+ content?: never;
460
+ };
461
+ /** @description Body failed validation */
462
+ 422: {
463
+ headers: {
464
+ [name: string]: unknown;
465
+ };
466
+ content?: never;
467
+ };
468
+ };
469
+ };
470
+ trace?: never;
471
+ };
472
+ "/api/v1/apps/{app}/workspaces": {
473
+ parameters: {
474
+ query?: never;
475
+ header?: never;
476
+ path?: never;
477
+ cookie?: never;
478
+ };
479
+ /**
480
+ * List app workspaces
481
+ * @description Requires `workspace:read` on the path app (or the superadmin token).
482
+ */
483
+ get: {
484
+ parameters: {
485
+ query?: never;
486
+ header?: never;
487
+ path: {
488
+ /** @description Application key (oauth_client.metadata.app). */
489
+ app: string;
490
+ };
491
+ cookie?: never;
492
+ };
493
+ requestBody?: never;
494
+ responses: {
495
+ /** @description OK */
496
+ 200: {
497
+ headers: {
498
+ [name: string]: unknown;
499
+ };
500
+ content: {
501
+ "application/json": {
502
+ workspaces: {
503
+ id: string;
504
+ name: string;
505
+ slug: string;
506
+ applicationId: string | null;
507
+ createdAt: string;
508
+ }[];
509
+ };
510
+ };
511
+ };
512
+ /** @description Missing or invalid bearer token */
513
+ 401: {
514
+ headers: {
515
+ [name: string]: unknown;
516
+ };
517
+ content?: never;
518
+ };
519
+ /** @description Key lacks the permission / is bound to another app */
520
+ 403: {
521
+ headers: {
522
+ [name: string]: unknown;
523
+ };
524
+ content?: never;
525
+ };
526
+ };
527
+ };
528
+ put?: never;
529
+ /**
530
+ * Create a workspace
531
+ * @description Requires `workspace:create` on the path app (or the superadmin token).
532
+ */
533
+ post: {
534
+ parameters: {
535
+ query?: never;
536
+ header?: never;
537
+ path: {
538
+ /** @description Application key (oauth_client.metadata.app). */
539
+ app: string;
540
+ };
541
+ cookie?: never;
542
+ };
543
+ requestBody: {
544
+ content: {
545
+ "application/json": {
546
+ name: string;
547
+ slug: string;
548
+ };
549
+ };
550
+ };
551
+ responses: {
552
+ /** @description OK */
553
+ 201: {
554
+ headers: {
555
+ [name: string]: unknown;
556
+ };
557
+ content: {
558
+ "application/json": {
559
+ id: string;
560
+ name: string;
561
+ slug: string;
562
+ };
563
+ };
564
+ };
565
+ /** @description Missing or invalid bearer token */
566
+ 401: {
567
+ headers: {
568
+ [name: string]: unknown;
569
+ };
570
+ content?: never;
571
+ };
572
+ /** @description Key lacks the permission / is bound to another app */
573
+ 403: {
574
+ headers: {
575
+ [name: string]: unknown;
576
+ };
577
+ content?: never;
578
+ };
579
+ /** @description Method not allowed on this resource (see the `Allow` header) */
580
+ 405: {
581
+ headers: {
582
+ [name: string]: unknown;
583
+ };
584
+ content?: never;
585
+ };
586
+ /** @description Conflict (already a member, last admin, slug taken, …) */
587
+ 409: {
588
+ headers: {
589
+ [name: string]: unknown;
590
+ };
591
+ content?: never;
592
+ };
593
+ /** @description Body failed validation */
594
+ 422: {
595
+ headers: {
596
+ [name: string]: unknown;
597
+ };
598
+ content?: never;
599
+ };
600
+ };
601
+ };
602
+ delete?: never;
603
+ options?: never;
604
+ head?: never;
605
+ patch?: never;
606
+ trace?: never;
607
+ };
608
+ "/api/v1/apps/{app}/user-keys": {
609
+ parameters: {
610
+ query?: never;
611
+ header?: never;
612
+ path?: never;
613
+ cookie?: never;
614
+ };
615
+ /**
616
+ * List end-user API keys
617
+ * @description Requires `userkey:read` on the path app (or the superadmin token).
618
+ */
619
+ get: {
620
+ parameters: {
621
+ query?: {
622
+ /** @description Only keys owned by this user. */
623
+ userId?: string;
624
+ /** @description Only keys bound to this workspace. */
625
+ workspaceId?: string;
626
+ };
627
+ header?: never;
628
+ path: {
629
+ /** @description Application key (oauth_client.metadata.app). */
630
+ app: string;
631
+ };
632
+ cookie?: never;
633
+ };
634
+ requestBody?: never;
635
+ responses: {
636
+ /** @description OK */
637
+ 200: {
638
+ headers: {
639
+ [name: string]: unknown;
640
+ };
641
+ content: {
642
+ "application/json": {
643
+ keys: {
644
+ id: string;
645
+ userId: string;
646
+ workspaceId: string | null;
647
+ name: string;
648
+ /** @description Non-secret token prefix (wak_…) for display */
649
+ prefix: string;
650
+ scopes: string[];
651
+ /** @enum {string} */
652
+ status: "active" | "expired" | "revoked";
653
+ createdAt: string;
654
+ lastUsedAt: string | null;
655
+ expiresAt: string | null;
656
+ }[];
657
+ };
658
+ };
659
+ };
660
+ /** @description Missing or invalid bearer token */
661
+ 401: {
662
+ headers: {
663
+ [name: string]: unknown;
664
+ };
665
+ content?: never;
666
+ };
667
+ /** @description Key lacks the permission / is bound to another app */
668
+ 403: {
669
+ headers: {
670
+ [name: string]: unknown;
671
+ };
672
+ content?: never;
673
+ };
674
+ };
675
+ };
676
+ put?: never;
677
+ /**
678
+ * Mint an end-user API key (plaintext returned once)
679
+ * @description Requires `userkey:create` on the path app (or the superadmin token).
680
+ */
681
+ post: {
682
+ parameters: {
683
+ query?: never;
684
+ header?: never;
685
+ path: {
686
+ /** @description Application key (oauth_client.metadata.app). */
687
+ app: string;
688
+ };
689
+ cookie?: never;
690
+ };
691
+ requestBody: {
692
+ content: {
693
+ "application/json": {
694
+ userId: string;
695
+ name: string;
696
+ /**
697
+ * @description Subset of the app's product permission catalog
698
+ * @default []
699
+ */
700
+ scopes?: string[];
701
+ workspaceId?: string;
702
+ /**
703
+ * Format: date-time
704
+ * @description ISO 8601; omit for non-expiring
705
+ */
706
+ expiresAt?: string;
707
+ };
708
+ };
709
+ };
710
+ responses: {
711
+ /** @description OK */
712
+ 201: {
713
+ headers: {
714
+ [name: string]: unknown;
715
+ };
716
+ content: {
717
+ "application/json": {
718
+ id: string;
719
+ /** @description Plaintext key — shown exactly once, never stored */
720
+ token: string;
721
+ prefix: string;
722
+ };
723
+ };
724
+ };
725
+ /** @description Missing or invalid bearer token */
726
+ 401: {
727
+ headers: {
728
+ [name: string]: unknown;
729
+ };
730
+ content?: never;
731
+ };
732
+ /** @description Key lacks the permission / is bound to another app */
733
+ 403: {
734
+ headers: {
735
+ [name: string]: unknown;
736
+ };
737
+ content?: never;
738
+ };
739
+ /** @description Method not allowed on this resource (see the `Allow` header) */
740
+ 405: {
741
+ headers: {
742
+ [name: string]: unknown;
743
+ };
744
+ content?: never;
745
+ };
746
+ /** @description Conflict (already a member, last admin, slug taken, …) */
747
+ 409: {
748
+ headers: {
749
+ [name: string]: unknown;
750
+ };
751
+ content?: never;
752
+ };
753
+ /** @description Body failed validation */
754
+ 422: {
755
+ headers: {
756
+ [name: string]: unknown;
757
+ };
758
+ content?: never;
759
+ };
760
+ };
761
+ };
762
+ delete?: never;
763
+ options?: never;
764
+ head?: never;
765
+ patch?: never;
766
+ trace?: never;
767
+ };
768
+ "/api/v1/apps/{app}/user-keys/validate": {
769
+ parameters: {
770
+ query?: never;
771
+ header?: never;
772
+ path?: never;
773
+ cookie?: never;
774
+ };
775
+ get?: never;
776
+ put?: never;
777
+ /**
778
+ * Validate a presented end-user key (200 + valid discriminator)
779
+ * @description Requires `userkey:validate` on the path app (or the superadmin token).
780
+ */
781
+ post: {
782
+ parameters: {
783
+ query?: never;
784
+ header?: never;
785
+ path: {
786
+ /** @description Application key (oauth_client.metadata.app). */
787
+ app: string;
788
+ };
789
+ cookie?: never;
790
+ };
791
+ requestBody: {
792
+ content: {
793
+ "application/json": {
794
+ token: string;
795
+ };
796
+ };
797
+ };
798
+ responses: {
799
+ /** @description OK */
800
+ 200: {
801
+ headers: {
802
+ [name: string]: unknown;
803
+ };
804
+ content: {
805
+ "application/json": {
806
+ /** @constant */
807
+ valid: true;
808
+ keyId: string;
809
+ userId: string;
810
+ workspaceId: string | null;
811
+ scopes: string[];
812
+ name: string;
813
+ } | {
814
+ /** @constant */
815
+ valid: false;
816
+ /** @enum {string} */
817
+ reason: "not_found" | "revoked" | "expired";
818
+ };
819
+ };
820
+ };
821
+ /** @description Missing or invalid bearer token */
822
+ 401: {
823
+ headers: {
824
+ [name: string]: unknown;
825
+ };
826
+ content?: never;
827
+ };
828
+ /** @description Key lacks the permission / is bound to another app */
829
+ 403: {
830
+ headers: {
831
+ [name: string]: unknown;
832
+ };
833
+ content?: never;
834
+ };
835
+ /** @description Method not allowed on this resource (see the `Allow` header) */
836
+ 405: {
837
+ headers: {
838
+ [name: string]: unknown;
839
+ };
840
+ content?: never;
841
+ };
842
+ /** @description Conflict (already a member, last admin, slug taken, …) */
843
+ 409: {
844
+ headers: {
845
+ [name: string]: unknown;
846
+ };
847
+ content?: never;
848
+ };
849
+ /** @description Body failed validation */
850
+ 422: {
851
+ headers: {
852
+ [name: string]: unknown;
853
+ };
854
+ content?: never;
855
+ };
856
+ };
857
+ };
858
+ delete?: never;
859
+ options?: never;
860
+ head?: never;
861
+ patch?: never;
862
+ trace?: never;
863
+ };
864
+ "/api/v1/apps/{app}/user-keys/{id}": {
865
+ parameters: {
866
+ query?: never;
867
+ header?: never;
868
+ path?: never;
869
+ cookie?: never;
870
+ };
871
+ get?: never;
872
+ put?: never;
873
+ post?: never;
874
+ /**
875
+ * Revoke an end-user API key (idempotent)
876
+ * @description Requires `userkey:revoke` on the path app (or the superadmin token).
877
+ */
878
+ delete: {
879
+ parameters: {
880
+ query?: never;
881
+ header?: never;
882
+ path: {
883
+ /** @description Application key (oauth_client.metadata.app). */
884
+ app: string;
885
+ id: string;
886
+ };
887
+ cookie?: never;
888
+ };
889
+ requestBody?: never;
890
+ responses: {
891
+ /** @description OK */
892
+ 200: {
893
+ headers: {
894
+ [name: string]: unknown;
895
+ };
896
+ content: {
897
+ "application/json": {
898
+ /** @constant */
899
+ ok: true;
900
+ };
901
+ };
902
+ };
903
+ /** @description Missing or invalid bearer token */
904
+ 401: {
905
+ headers: {
906
+ [name: string]: unknown;
907
+ };
908
+ content?: never;
909
+ };
910
+ /** @description Key lacks the permission / is bound to another app */
911
+ 403: {
912
+ headers: {
913
+ [name: string]: unknown;
914
+ };
915
+ content?: never;
916
+ };
917
+ /** @description Method not allowed on this resource (see the `Allow` header) */
918
+ 405: {
919
+ headers: {
920
+ [name: string]: unknown;
921
+ };
922
+ content?: never;
923
+ };
924
+ /** @description Conflict (already a member, last admin, slug taken, …) */
925
+ 409: {
926
+ headers: {
927
+ [name: string]: unknown;
928
+ };
929
+ content?: never;
930
+ };
931
+ /** @description Body failed validation */
932
+ 422: {
933
+ headers: {
934
+ [name: string]: unknown;
935
+ };
936
+ content?: never;
937
+ };
938
+ };
939
+ };
940
+ options?: never;
941
+ head?: never;
942
+ patch?: never;
943
+ trace?: never;
944
+ };
945
+ "/api/v1/apps/{app}/audit": {
946
+ parameters: {
947
+ query?: never;
948
+ header?: never;
949
+ path?: never;
950
+ cookie?: never;
951
+ };
952
+ /**
953
+ * List recent audit entries
954
+ * @description Requires `audit:read` on the path app (or the superadmin token).
955
+ */
956
+ get: {
957
+ parameters: {
958
+ query?: never;
959
+ header?: never;
960
+ path: {
961
+ /** @description Application key (oauth_client.metadata.app). */
962
+ app: string;
963
+ };
964
+ cookie?: never;
965
+ };
966
+ requestBody?: never;
967
+ responses: {
968
+ /** @description OK */
969
+ 200: {
970
+ headers: {
971
+ [name: string]: unknown;
972
+ };
973
+ content: {
974
+ "application/json": {
975
+ entries: {
976
+ id: number;
977
+ tableName: string;
978
+ operation: string;
979
+ rowId: string | null;
980
+ userId: string | null;
981
+ actor: string | null;
982
+ createdAt: string;
983
+ }[];
984
+ };
985
+ };
986
+ };
987
+ /** @description Missing or invalid bearer token */
988
+ 401: {
989
+ headers: {
990
+ [name: string]: unknown;
991
+ };
992
+ content?: never;
993
+ };
994
+ /** @description Key lacks the permission / is bound to another app */
995
+ 403: {
996
+ headers: {
997
+ [name: string]: unknown;
998
+ };
999
+ content?: never;
1000
+ };
1001
+ };
1002
+ };
1003
+ put?: never;
1004
+ post?: never;
1005
+ delete?: never;
1006
+ options?: never;
1007
+ head?: never;
1008
+ patch?: never;
1009
+ trace?: never;
1010
+ };
1011
+ }
1012
+ export type webhooks = Record<string, never>;
1013
+ export interface components {
1014
+ schemas: never;
1015
+ responses: never;
1016
+ parameters: never;
1017
+ requestBodies: never;
1018
+ headers: never;
1019
+ pathItems: never;
1020
+ }
1021
+ export type $defs = Record<string, never>;
1022
+ export type operations = Record<string, never>;