@blezgo/api-sdk 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/account/generated.d.ts +183 -183
  2. package/dist/account/generated.d.ts.map +1 -1
  3. package/dist/activity/generated.d.ts +82 -82
  4. package/dist/activity/generated.d.ts.map +1 -1
  5. package/dist/addon/generated.d.ts +88 -88
  6. package/dist/addon/generated.d.ts.map +1 -1
  7. package/dist/admin/generated.d.ts +42 -42
  8. package/dist/admin/generated.d.ts.map +1 -1
  9. package/dist/affiliate/generated.d.ts +97 -98
  10. package/dist/affiliate/generated.d.ts.map +1 -1
  11. package/dist/analytics/generated.d.ts +27 -27
  12. package/dist/analytics/generated.d.ts.map +1 -1
  13. package/dist/announcements/generated.d.ts +118 -118
  14. package/dist/announcements/generated.d.ts.map +1 -1
  15. package/dist/apikeys/generated.d.ts +46 -46
  16. package/dist/apikeys/generated.d.ts.map +1 -1
  17. package/dist/assistance/generated.d.ts +24 -24
  18. package/dist/assistance/generated.d.ts.map +1 -1
  19. package/dist/authentication/generated.d.ts +73 -73
  20. package/dist/authentication/generated.d.ts.map +1 -1
  21. package/dist/blog/generated.d.ts +142 -142
  22. package/dist/blog/generated.d.ts.map +1 -1
  23. package/dist/bundle/generated.d.ts +124 -124
  24. package/dist/bundle/generated.d.ts.map +1 -1
  25. package/dist/cache/generated.d.ts +32 -32
  26. package/dist/cache/generated.d.ts.map +1 -1
  27. package/dist/calendar/generated.d.ts +59 -59
  28. package/dist/calendar/generated.d.ts.map +1 -1
  29. package/dist/campaigns/generated.d.ts +151 -151
  30. package/dist/campaigns/generated.d.ts.map +1 -1
  31. package/dist/cart/generated.d.ts +41 -41
  32. package/dist/cart/generated.d.ts.map +1 -1
  33. package/dist/changelog/generated.d.ts +90 -90
  34. package/dist/changelog/generated.d.ts.map +1 -1
  35. package/dist/channel/generated.d.ts +256 -256
  36. package/dist/channel/generated.d.ts.map +1 -1
  37. package/dist/company/generated.d.ts +73 -73
  38. package/dist/company/generated.d.ts.map +1 -1
  39. package/dist/conference/generated.d.ts +160 -160
  40. package/dist/conference/generated.d.ts.map +1 -1
  41. package/dist/config/generated.d.ts +57 -57
  42. package/dist/config/generated.d.ts.map +1 -1
  43. package/dist/content/generated.d.ts +620 -620
  44. package/dist/content/generated.d.ts.map +1 -1
  45. package/dist/cookies/generated.d.ts +85 -85
  46. package/dist/cookies/generated.d.ts.map +1 -1
  47. package/dist/courses/generated.d.ts +381 -381
  48. package/dist/courses/generated.d.ts.map +1 -1
  49. package/dist/custom/generated.d.ts +103 -103
  50. package/dist/custom/generated.d.ts.map +1 -1
  51. package/dist/dashboard/generated.d.ts +148 -148
  52. package/dist/dashboard/generated.d.ts.map +1 -1
  53. package/dist/elasticsearch/generated.d.ts +37 -37
  54. package/dist/elasticsearch/generated.d.ts.map +1 -1
  55. package/dist/enrollments/generated.d.ts +21 -21
  56. package/dist/enrollments/generated.d.ts.map +1 -1
  57. package/dist/errors/generated.d.ts +21 -21
  58. package/dist/errors/generated.d.ts.map +1 -1
  59. package/dist/eventconfig/generated.d.ts +88 -88
  60. package/dist/eventconfig/generated.d.ts.map +1 -1
  61. package/dist/funnels/generated.d.ts +124 -125
  62. package/dist/funnels/generated.d.ts.map +1 -1
  63. package/dist/gamification/generated.d.ts +151 -151
  64. package/dist/gamification/generated.d.ts.map +1 -1
  65. package/dist/impersonation/generated.d.ts +33 -33
  66. package/dist/impersonation/generated.d.ts.map +1 -1
  67. package/dist/inbox/generated.d.ts +154 -154
  68. package/dist/inbox/generated.d.ts.map +1 -1
  69. package/dist/internal/generated.d.ts +21 -21
  70. package/dist/internal/generated.d.ts.map +1 -1
  71. package/dist/internationalization/generated.d.ts +23 -23
  72. package/dist/internationalization/generated.d.ts.map +1 -1
  73. package/dist/invitations/generated.d.ts +107 -107
  74. package/dist/invitations/generated.d.ts.map +1 -1
  75. package/dist/meetings/generated.d.ts +332 -332
  76. package/dist/meetings/generated.d.ts.map +1 -1
  77. package/dist/metas/generated.d.ts +200 -200
  78. package/dist/metas/generated.d.ts.map +1 -1
  79. package/dist/notification/generated.d.ts +279 -279
  80. package/dist/notification/generated.d.ts.map +1 -1
  81. package/dist/notifications/generated.d.ts +21 -21
  82. package/dist/notifications/generated.d.ts.map +1 -1
  83. package/dist/onboarding/generated.d.ts +95 -95
  84. package/dist/onboarding/generated.d.ts.map +1 -1
  85. package/dist/packages/generated.d.ts +77 -77
  86. package/dist/packages/generated.d.ts.map +1 -1
  87. package/dist/payments/generated.d.ts +628 -631
  88. package/dist/payments/generated.d.ts.map +1 -1
  89. package/dist/payouts/generated.d.ts +21 -21
  90. package/dist/payouts/generated.d.ts.map +1 -1
  91. package/dist/plans/generated.d.ts +405 -405
  92. package/dist/plans/generated.d.ts.map +1 -1
  93. package/dist/pricing/generated.d.ts +75 -75
  94. package/dist/pricing/generated.d.ts.map +1 -1
  95. package/dist/products/generated.d.ts +420 -420
  96. package/dist/products/generated.d.ts.map +1 -1
  97. package/dist/profile/generated.d.ts +310 -310
  98. package/dist/profile/generated.d.ts.map +1 -1
  99. package/dist/reasons/generated.d.ts +64 -64
  100. package/dist/reasons/generated.d.ts.map +1 -1
  101. package/dist/registration/generated.d.ts +163 -163
  102. package/dist/registration/generated.d.ts.map +1 -1
  103. package/dist/reviews/generated.d.ts +47 -47
  104. package/dist/reviews/generated.d.ts.map +1 -1
  105. package/dist/role/generated.d.ts +944 -446
  106. package/dist/role/generated.d.ts.map +1 -1
  107. package/dist/scheduling/generated.d.ts +76 -76
  108. package/dist/scheduling/generated.d.ts.map +1 -1
  109. package/dist/services/generated.d.ts +1119 -1119
  110. package/dist/services/generated.d.ts.map +1 -1
  111. package/dist/sessions/generated.d.ts +313 -313
  112. package/dist/sessions/generated.d.ts.map +1 -1
  113. package/dist/spaces/generated.d.ts +340 -340
  114. package/dist/spaces/generated.d.ts.map +1 -1
  115. package/dist/storefront/generated.d.ts +21 -21
  116. package/dist/storefront/generated.d.ts.map +1 -1
  117. package/dist/support/generated.d.ts +1624 -1624
  118. package/dist/support/generated.d.ts.map +1 -1
  119. package/dist/sync/generated.d.ts +176 -176
  120. package/dist/sync/generated.d.ts.map +1 -1
  121. package/dist/tenant/generated.d.ts +487 -487
  122. package/dist/tenant/generated.d.ts.map +1 -1
  123. package/dist/testimonials/generated.d.ts +86 -86
  124. package/dist/testimonials/generated.d.ts.map +1 -1
  125. package/dist/tests/generated.d.ts +456 -456
  126. package/dist/tests/generated.d.ts.map +1 -1
  127. package/dist/tokens/generated.d.ts +54 -54
  128. package/dist/tokens/generated.d.ts.map +1 -1
  129. package/dist/uploads/generated.d.ts +65 -65
  130. package/dist/uploads/generated.d.ts.map +1 -1
  131. package/dist/upsell/generated.d.ts +105 -105
  132. package/dist/upsell/generated.d.ts.map +1 -1
  133. package/dist/user/generated.d.ts +272 -527
  134. package/dist/user/generated.d.ts.map +1 -1
  135. package/dist/webinars/generated.d.ts +260 -260
  136. package/dist/webinars/generated.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/test-commit.txt +1 -0
@@ -1107,6 +1107,104 @@ export interface paths {
1107
1107
  patch?: never;
1108
1108
  trace?: never;
1109
1109
  };
1110
+ "/v1/permissions/groups": {
1111
+ parameters: {
1112
+ query?: never;
1113
+ header?: never;
1114
+ path?: never;
1115
+ cookie?: never;
1116
+ };
1117
+ /**
1118
+ * List Permission Groups
1119
+ * @description List all permission groups ordered by sort_order.
1120
+ *
1121
+ * Permission groups are named bundles (e.g. `application_config`) that cover
1122
+ * a set of fine-grained resources. Assigning a group to a user implies access
1123
+ * to every resource inside it for the same action and scope.
1124
+ *
1125
+ * Use `GET /v1/permissions/groups/{group_name}` to expand a group and see
1126
+ * individual resources with their allowed actions.
1127
+ *
1128
+ * **Example response**:
1129
+ * ```json
1130
+ * {
1131
+ * "groups": [
1132
+ * {
1133
+ * "name": "application_config",
1134
+ * "label": "Application Configuration",
1135
+ * "description": "Payment credentials, social logins, channel settings, and system config",
1136
+ * "sort_order": 1,
1137
+ * "resource_count": 11
1138
+ * }
1139
+ * ]
1140
+ * }
1141
+ * ```
1142
+ *
1143
+ * **Authentication**: Required (JWT Bearer)
1144
+ * **Permission**: `role.view.all`
1145
+ * **Response codes**: 200 OK, 401 Unauthorized, 403 Forbidden
1146
+ */
1147
+ get: operations["listPermissionGroups"];
1148
+ put?: never;
1149
+ post?: never;
1150
+ delete?: never;
1151
+ options?: never;
1152
+ head?: never;
1153
+ patch?: never;
1154
+ trace?: never;
1155
+ };
1156
+ "/v1/permissions/groups/{group_name}": {
1157
+ parameters: {
1158
+ query?: never;
1159
+ header?: never;
1160
+ path?: never;
1161
+ cookie?: never;
1162
+ };
1163
+ /**
1164
+ * Get Permission Group
1165
+ * @description Get all resources and their allowed actions for a permission group.
1166
+ *
1167
+ * Used by the admin UI "expand" view — when an admin wants to assign individual
1168
+ * permissions instead of the whole group, this endpoint provides the full list
1169
+ * of fine-grained resources and actions, including which are dangerous.
1170
+ *
1171
+ * **Example response** for `application_config`:
1172
+ * ```json
1173
+ * {
1174
+ * "group": {
1175
+ * "name": "application_config",
1176
+ * "label": "Application Configuration",
1177
+ * "description": "...",
1178
+ * "sort_order": 1,
1179
+ * "resource_count": 11,
1180
+ * "permission_count": 34,
1181
+ * "resources": [
1182
+ * {
1183
+ * "key": "payment_method",
1184
+ * "label": "Payment Method",
1185
+ * "actions": [
1186
+ * {"key": "view", "label": "View", "permission_string": "payment_method.view.all", "dangerous": false},
1187
+ * {"key": "delete", "label": "Delete", "permission_string": "payment_method.delete.all", "dangerous": true}
1188
+ * ]
1189
+ * }
1190
+ * ]
1191
+ * }
1192
+ * }
1193
+ * ```
1194
+ *
1195
+ * **Authentication**: Required (JWT Bearer)
1196
+ * **Permission**: `role.view.all`
1197
+ * **Response codes**: 200 OK, 401 Unauthorized, 403 Forbidden, 404 Not Found
1198
+ */
1199
+ get: operations["getPermissionGroup"];
1200
+ put?: never;
1201
+ post?: never;
1202
+ delete?: never;
1203
+ options?: never;
1204
+ head?: never;
1205
+ patch?: never;
1206
+ trace?: never;
1207
+ };
1110
1208
  "/v1/roles": {
1111
1209
  parameters: {
1112
1210
  query?: never;
@@ -1147,6 +1245,49 @@ export interface paths {
1147
1245
  export type webhooks = Record<string, never>;
1148
1246
  export interface components {
1149
1247
  schemas: {
1248
+ /**
1249
+ * QuotaCreateRequest
1250
+ * @description Request model for creating a resource quota.
1251
+ * @example {
1252
+ * "action_code": "create",
1253
+ * "max_limit": 100,
1254
+ * "reason": "Limiting course creation for starter plan organizations",
1255
+ * "reset_period": "monthly",
1256
+ * "resource_code": "course"
1257
+ * }
1258
+ */
1259
+ QuotaCreateRequest: {
1260
+ /**
1261
+ * Resource Code
1262
+ * @description Resource code (e.g., 'course', 'user', 'order')
1263
+ * @example course
1264
+ */
1265
+ resource_code: string;
1266
+ /**
1267
+ * Action Code
1268
+ * @description Action code (e.g., 'create', 'process')
1269
+ * @example create
1270
+ */
1271
+ action_code: string;
1272
+ /**
1273
+ * Max Limit
1274
+ * @description Maximum allowed limit
1275
+ * @example 100
1276
+ */
1277
+ max_limit: number;
1278
+ /**
1279
+ * Reset Period
1280
+ * @description Reset period: 'hourly', 'daily', 'monthly', 'yearly', 'never'
1281
+ * @example monthly
1282
+ */
1283
+ reset_period: string;
1284
+ /**
1285
+ * Reason
1286
+ * @description Reason for creating quota (for audit log)
1287
+ * @example Limiting course creation for starter plan
1288
+ */
1289
+ reason?: string | null;
1290
+ };
1150
1291
  /**
1151
1292
  * QuotaUpdateRequest
1152
1293
  * @description Request model for updating a quota.
@@ -1155,7 +1296,7 @@ export interface components {
1155
1296
  * "reason": "Increased quota due to plan upgrade to enterprise"
1156
1297
  * }
1157
1298
  */
1158
- QuotaUpdateRequest: {
1299
+ app__schemas__rbac__quota_schemas__QuotaUpdateRequest: {
1159
1300
  /**
1160
1301
  * Max Limit
1161
1302
  * @description Updated maximum limit
@@ -1173,40 +1314,83 @@ export interface components {
1173
1314
  */
1174
1315
  reason?: string | null;
1175
1316
  };
1317
+ InvalidParam: {
1318
+ /** @example items[0].quantity */
1319
+ field?: string;
1320
+ /** @example Input should be greater than or equal to 1 */
1321
+ error?: string;
1322
+ };
1176
1323
  /**
1177
- * UserPermissionOverrideRequest
1178
- * @description Request model for granting permission override to a user.
1324
+ * AccessLayerCreateRequest
1325
+ * @description Request model for creating an access layer.
1179
1326
  * @example {
1180
- * "expires_at": "2026-01-31T23:59:59Z",
1181
- * "override_reason": "Temporary admin access for Q4 audit and cleanup",
1327
+ * "description": "Permissions for sales team members",
1328
+ * "layer_code": "sales_access",
1329
+ * "layer_name": "Sales Team Access",
1182
1330
  * "permissions": {
1183
1331
  * "course": {
1184
- * "delete": [
1332
+ * "create": [
1333
+ * "own"
1334
+ * ],
1335
+ * "edit": [
1336
+ * "own"
1337
+ * ],
1338
+ * "view": [
1185
1339
  * "all"
1186
1340
  * ]
1187
1341
  * },
1188
- * "custom_module": {
1189
- * "manage": [
1342
+ * "order": {
1343
+ * "edit": [
1344
+ * "own"
1345
+ * ],
1346
+ * "view": [
1347
+ * "all"
1348
+ * ]
1349
+ * },
1350
+ * "user": {
1351
+ * "view": [
1190
1352
  * "all"
1191
1353
  * ]
1192
1354
  * }
1193
- * },
1194
- * "target_user_id": "usr_abc123xyz"
1355
+ * }
1195
1356
  * }
1196
1357
  */
1197
- UserPermissionOverrideRequest: {
1358
+ AccessLayerCreateRequest: {
1198
1359
  /**
1199
- * Target User Id
1200
- * @description User external ID to grant override permissions to (usr_xxx format)
1201
- * @example usr_abc123xyz
1360
+ * Layer Code
1361
+ * @description Machine-readable layer code (e.g., 'sales_access')
1362
+ * @example sales_access
1202
1363
  */
1203
- target_user_id: string;
1364
+ layer_code: string;
1365
+ /**
1366
+ * Layer Name
1367
+ * @description Human-readable layer name (e.g., 'Sales Team Access')
1368
+ * @example Sales Team Access
1369
+ */
1370
+ layer_name: string;
1371
+ /**
1372
+ * Description
1373
+ * @description Access layer description
1374
+ * @example Permissions for sales team members
1375
+ */
1376
+ description?: string | null;
1204
1377
  /**
1205
1378
  * Permissions
1206
- * @description Override permissions structure (resource -> action -> scopes)
1379
+ * @description Permissions structure (resource -> action -> scopes)
1207
1380
  * @example {
1208
1381
  * "course": {
1209
- * "delete": [
1382
+ * "create": [
1383
+ * "own"
1384
+ * ],
1385
+ * "edit": [
1386
+ * "own"
1387
+ * ],
1388
+ * "view": [
1389
+ * "all"
1390
+ * ]
1391
+ * },
1392
+ * "order": {
1393
+ * "view": [
1210
1394
  * "all"
1211
1395
  * ]
1212
1396
  * }
@@ -1217,18 +1401,63 @@ export interface components {
1217
1401
  [key: string]: string[];
1218
1402
  };
1219
1403
  };
1404
+ };
1405
+ /**
1406
+ * RoleCreateRequest
1407
+ * @description Request model for creating a custom role.
1408
+ * @example {
1409
+ * "access_layer_id": "acl_abc123def",
1410
+ * "description": "Manages sales team and customer relationships",
1411
+ * "display_order": 10,
1412
+ * "is_default": false,
1413
+ * "reason": "Creating role for new sales department",
1414
+ * "role_code": "sales_manager",
1415
+ * "role_name": "Sales Manager"
1416
+ * }
1417
+ */
1418
+ RoleCreateRequest: {
1220
1419
  /**
1221
- * Override Reason
1222
- * @description Reason for granting override (for audit log)
1223
- * @example Temporary admin access for content cleanup project
1420
+ * Role Code
1421
+ * @description Machine-readable role code (e.g., 'sales_manager')
1422
+ * @example sales_manager
1224
1423
  */
1225
- override_reason: string;
1424
+ role_code: string;
1226
1425
  /**
1227
- * Expires At
1228
- * @description Expiration timestamp (ISO format). If not provided, override never expires
1229
- * @example 2026-01-31T23:59:59Z
1426
+ * Role Name
1427
+ * @description Human-readable role name (e.g., 'Sales Manager')
1428
+ * @example Sales Manager
1230
1429
  */
1231
- expires_at?: string | null;
1430
+ role_name: string;
1431
+ /**
1432
+ * Access Layer Id
1433
+ * @description Access layer external ID to assign (acl_xxx)
1434
+ * @example acl_abc123def
1435
+ */
1436
+ access_layer_id: string;
1437
+ /**
1438
+ * Description
1439
+ * @description Role description
1440
+ * @example Manages sales team and customer relationships
1441
+ */
1442
+ description?: string | null;
1443
+ /**
1444
+ * Is Default
1445
+ * @description Whether this is the default role for new users
1446
+ * @default false
1447
+ */
1448
+ is_default: boolean;
1449
+ /**
1450
+ * Display Order
1451
+ * @description Display order for UI (lower = higher priority)
1452
+ * @default 100
1453
+ */
1454
+ display_order: number;
1455
+ /**
1456
+ * Reason
1457
+ * @description Reason for creating role (for audit log)
1458
+ * @example Creating role for new sales department
1459
+ */
1460
+ reason?: string | null;
1232
1461
  };
1233
1462
  /**
1234
1463
  * AssignAccessLayerRequest
@@ -1253,45 +1482,138 @@ export interface components {
1253
1482
  reason?: string | null;
1254
1483
  };
1255
1484
  /**
1256
- * QuotaCreateRequest
1257
- * @description Request model for creating a resource quota.
1258
1485
  * @example {
1259
- * "action_code": "create",
1260
- * "max_limit": 100,
1261
- * "reason": "Limiting course creation for starter plan organizations",
1262
- * "reset_period": "monthly",
1263
- * "resource_code": "course"
1486
+ * "status": "success",
1487
+ * "message": "Operation successful",
1488
+ * "message_code": "api_suc_20001",
1489
+ * "data": {},
1490
+ * "metadata": {
1491
+ * "timestamp": "2026-03-26T10:00:00.000Z",
1492
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1493
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1494
+ * "version": "v1",
1495
+ * "executionTime": 42,
1496
+ * "language": "en-US"
1497
+ * }
1264
1498
  * }
1265
1499
  */
1266
- QuotaCreateRequest: {
1267
- /**
1268
- * Resource Code
1269
- * @description Resource code (e.g., 'course', 'user', 'order')
1270
- * @example course
1271
- */
1272
- resource_code: string;
1273
- /**
1274
- * Action Code
1275
- * @description Action code (e.g., 'create', 'process')
1276
- * @example create
1500
+ StandardResponse: {
1501
+ /** @example success */
1502
+ status?: string;
1503
+ data?: Record<string, never> | null;
1504
+ /** @example Operation successful */
1505
+ message?: string | null;
1506
+ /** @example api_suc_20001 */
1507
+ message_code?: string | null;
1508
+ metadata?: Record<string, never> | null;
1509
+ error?: components["schemas"]["ErrorResponse"];
1510
+ };
1511
+ /**
1512
+ * UserPermissionOverrideRequest
1513
+ * @description Request model for granting permission override to a user.
1514
+ * @example {
1515
+ * "expires_at": "2026-01-31T23:59:59Z",
1516
+ * "override_reason": "Temporary admin access for Q4 audit and cleanup",
1517
+ * "permissions": {
1518
+ * "course": {
1519
+ * "delete": [
1520
+ * "all"
1521
+ * ]
1522
+ * },
1523
+ * "custom_module": {
1524
+ * "manage": [
1525
+ * "all"
1526
+ * ]
1527
+ * }
1528
+ * },
1529
+ * "target_user_id": "usr_abc123xyz"
1530
+ * }
1531
+ */
1532
+ UserPermissionOverrideRequest: {
1533
+ /**
1534
+ * Target User Id
1535
+ * @description User external ID to grant override permissions to (usr_xxx format)
1536
+ * @example usr_abc123xyz
1277
1537
  */
1278
- action_code: string;
1538
+ target_user_id: string;
1279
1539
  /**
1280
- * Max Limit
1281
- * @description Maximum allowed limit
1282
- * @example 100
1540
+ * Permissions
1541
+ * @description Override permissions structure (resource -> action -> scopes)
1542
+ * @example {
1543
+ * "course": {
1544
+ * "delete": [
1545
+ * "all"
1546
+ * ]
1547
+ * }
1548
+ * }
1283
1549
  */
1284
- max_limit: number;
1550
+ permissions: {
1551
+ [key: string]: {
1552
+ [key: string]: string[];
1553
+ };
1554
+ };
1285
1555
  /**
1286
- * Reset Period
1287
- * @description Reset period: 'hourly', 'daily', 'monthly', 'yearly', 'never'
1288
- * @example monthly
1556
+ * Override Reason
1557
+ * @description Reason for granting override (for audit log)
1558
+ * @example Temporary admin access for content cleanup project
1289
1559
  */
1290
- reset_period: string;
1560
+ override_reason: string;
1561
+ /**
1562
+ * Expires At
1563
+ * @description Expiration timestamp (ISO format). If not provided, override never expires
1564
+ * @example 2026-01-31T23:59:59Z
1565
+ */
1566
+ expires_at?: string | null;
1567
+ };
1568
+ /**
1569
+ * AccessLayerUpdateRequest
1570
+ * @description Request model for updating an access layer.
1571
+ * @example {
1572
+ * "description": "Updated permissions for senior sales team",
1573
+ * "layer_name": "Senior Sales Team Access",
1574
+ * "permissions": {
1575
+ * "course": {
1576
+ * "create": [
1577
+ * "all"
1578
+ * ],
1579
+ * "delete": [
1580
+ * "own"
1581
+ * ],
1582
+ * "edit": [
1583
+ * "all"
1584
+ * ],
1585
+ * "view": [
1586
+ * "all"
1587
+ * ]
1588
+ * }
1589
+ * },
1590
+ * "reason": "Expanding permissions for senior team members"
1591
+ * }
1592
+ */
1593
+ AccessLayerUpdateRequest: {
1594
+ /**
1595
+ * Layer Name
1596
+ * @description Human-readable layer name
1597
+ */
1598
+ layer_name?: string | null;
1599
+ /**
1600
+ * Description
1601
+ * @description Access layer description
1602
+ */
1603
+ description?: string | null;
1604
+ /**
1605
+ * Permissions
1606
+ * @description Updated permissions structure
1607
+ */
1608
+ permissions?: {
1609
+ [key: string]: {
1610
+ [key: string]: string[];
1611
+ };
1612
+ } | null;
1291
1613
  /**
1292
1614
  * Reason
1293
- * @description Reason for creating quota (for audit log)
1294
- * @example Limiting course creation for starter plan
1615
+ * @description Reason for update (for audit log)
1616
+ * @example Adding new permissions for sales team
1295
1617
  */
1296
1618
  reason?: string | null;
1297
1619
  };
@@ -1341,42 +1663,6 @@ export interface components {
1341
1663
  */
1342
1664
  reason?: string | null;
1343
1665
  };
1344
- Extensions: {
1345
- /** @example GENERIC_ERROR */
1346
- message_code?: string;
1347
- /** @example [] */
1348
- invalid_params?: components["schemas"]["InvalidParam"][];
1349
- extra_data?: Record<string, never> | null;
1350
- /** @example Detailed debug information */
1351
- debug?: string | null;
1352
- };
1353
- /**
1354
- * @example {
1355
- * "status": "success",
1356
- * "message": "Operation successful",
1357
- * "message_code": "api_suc_20001",
1358
- * "data": {},
1359
- * "metadata": {
1360
- * "timestamp": "2026-03-26T10:00:00.000Z",
1361
- * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1362
- * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1363
- * "version": "v1",
1364
- * "executionTime": 42,
1365
- * "language": "en-US"
1366
- * }
1367
- * }
1368
- */
1369
- StandardResponse: {
1370
- /** @example success */
1371
- status?: string;
1372
- data?: Record<string, never> | null;
1373
- /** @example Operation successful */
1374
- message?: string | null;
1375
- /** @example api_suc_20001 */
1376
- message_code?: string | null;
1377
- metadata?: Record<string, never> | null;
1378
- error?: components["schemas"]["ErrorResponse"];
1379
- };
1380
1666
  ErrorResponse: {
1381
1667
  /** @example about:blank */
1382
1668
  type?: string;
@@ -1392,11 +1678,14 @@ export interface components {
1392
1678
  instance?: string;
1393
1679
  extensions?: components["schemas"]["Extensions"];
1394
1680
  };
1395
- InvalidParam: {
1396
- /** @example items[0].quantity */
1397
- field?: string;
1398
- /** @example Input should be greater than or equal to 1 */
1399
- error?: string;
1681
+ Extensions: {
1682
+ /** @example GENERIC_ERROR */
1683
+ message_code?: string;
1684
+ /** @example [] */
1685
+ invalid_params?: components["schemas"]["InvalidParam"][];
1686
+ extra_data?: Record<string, never> | null;
1687
+ /** @example Detailed debug information */
1688
+ debug?: string | null;
1400
1689
  };
1401
1690
  /**
1402
1691
  * AccessLayerCloneRequest
@@ -1427,218 +1716,431 @@ export interface components {
1427
1716
  */
1428
1717
  description?: string | null;
1429
1718
  };
1430
- /**
1431
- * RoleCreateRequest
1432
- * @description Request model for creating a custom role.
1433
- * @example {
1434
- * "access_layer_id": "acl_abc123def",
1435
- * "description": "Manages sales team and customer relationships",
1436
- * "display_order": 10,
1437
- * "is_default": false,
1438
- * "reason": "Creating role for new sales department",
1439
- * "role_code": "sales_manager",
1440
- * "role_name": "Sales Manager"
1441
- * }
1442
- */
1443
- RoleCreateRequest: {
1444
- /**
1445
- * Role Code
1446
- * @description Machine-readable role code (e.g., 'sales_manager')
1447
- * @example sales_manager
1448
- */
1449
- role_code: string;
1450
- /**
1451
- * Role Name
1452
- * @description Human-readable role name (e.g., 'Sales Manager')
1453
- * @example Sales Manager
1454
- */
1455
- role_name: string;
1456
- /**
1457
- * Access Layer Id
1458
- * @description Access layer external ID to assign (acl_xxx)
1459
- * @example acl_abc123def
1460
- */
1461
- access_layer_id: string;
1462
- /**
1463
- * Description
1464
- * @description Role description
1465
- * @example Manages sales team and customer relationships
1466
- */
1467
- description?: string | null;
1468
- /**
1469
- * Is Default
1470
- * @description Whether this is the default role for new users
1471
- * @default false
1472
- */
1473
- is_default: boolean;
1474
- /**
1475
- * Display Order
1476
- * @description Display order for UI (lower = higher priority)
1477
- * @default 100
1478
- */
1479
- display_order: number;
1480
- /**
1481
- * Reason
1482
- * @description Reason for creating role (for audit log)
1483
- * @example Creating role for new sales department
1484
- */
1485
- reason?: string | null;
1719
+ };
1720
+ responses: never;
1721
+ parameters: never;
1722
+ requestBodies: never;
1723
+ headers: never;
1724
+ pathItems: never;
1725
+ }
1726
+ export type $defs = Record<string, never>;
1727
+ export interface operations {
1728
+ adminListRoles: {
1729
+ parameters: {
1730
+ query?: {
1731
+ /** @description Include platform roles (admin, teacher, student) */
1732
+ include_platform?: boolean;
1733
+ /** @description Only return active roles */
1734
+ active_only?: boolean;
1735
+ };
1736
+ header?: {
1737
+ authorization?: string | null;
1738
+ };
1739
+ path?: never;
1740
+ cookie?: never;
1486
1741
  };
1487
- /**
1488
- * AccessLayerCreateRequest
1489
- * @description Request model for creating an access layer.
1490
- * @example {
1491
- * "description": "Permissions for sales team members",
1492
- * "layer_code": "sales_access",
1493
- * "layer_name": "Sales Team Access",
1494
- * "permissions": {
1495
- * "course": {
1496
- * "create": [
1497
- * "own"
1498
- * ],
1499
- * "edit": [
1500
- * "own"
1501
- * ],
1502
- * "view": [
1503
- * "all"
1504
- * ]
1505
- * },
1506
- * "order": {
1507
- * "edit": [
1508
- * "own"
1509
- * ],
1510
- * "view": [
1511
- * "all"
1512
- * ]
1513
- * },
1514
- * "user": {
1515
- * "view": [
1516
- * "all"
1517
- * ]
1518
- * }
1519
- * }
1520
- * }
1521
- */
1522
- AccessLayerCreateRequest: {
1523
- /**
1524
- * Layer Code
1525
- * @description Machine-readable layer code (e.g., 'sales_access')
1526
- * @example sales_access
1527
- */
1528
- layer_code: string;
1529
- /**
1530
- * Layer Name
1531
- * @description Human-readable layer name (e.g., 'Sales Team Access')
1532
- * @example Sales Team Access
1533
- */
1534
- layer_name: string;
1535
- /**
1536
- * Description
1537
- * @description Access layer description
1538
- * @example Permissions for sales team members
1539
- */
1540
- description?: string | null;
1541
- /**
1542
- * Permissions
1543
- * @description Permissions structure (resource -> action -> scopes)
1544
- * @example {
1545
- * "course": {
1546
- * "create": [
1547
- * "own"
1548
- * ],
1549
- * "edit": [
1550
- * "own"
1551
- * ],
1552
- * "view": [
1553
- * "all"
1554
- * ]
1555
- * },
1556
- * "order": {
1557
- * "view": [
1558
- * "all"
1559
- * ]
1560
- * }
1561
- * }
1562
- */
1563
- permissions: {
1564
- [key: string]: {
1565
- [key: string]: string[];
1742
+ requestBody?: never;
1743
+ responses: {
1744
+ /** @description Successful Response */
1745
+ 200: {
1746
+ headers: {
1747
+ [name: string]: unknown;
1748
+ };
1749
+ content: {
1750
+ "application/json": components["schemas"]["StandardResponse"];
1751
+ };
1752
+ };
1753
+ /** @description Bad Request */
1754
+ 400: {
1755
+ headers: {
1756
+ [name: string]: unknown;
1757
+ };
1758
+ content: {
1759
+ /**
1760
+ * @example {
1761
+ * "status": "error",
1762
+ * "message": "An error occurred",
1763
+ * "message_code": "GENERIC_ERROR",
1764
+ * "metadata": {
1765
+ * "timestamp": "2025-08-05T18:38:57Z",
1766
+ * "requestId": "uuid",
1767
+ * "traceId": "uuid",
1768
+ * "version": "v1",
1769
+ * "executionTime": 0,
1770
+ * "language": "en-US",
1771
+ * "links": [
1772
+ * {
1773
+ * "rel": "self",
1774
+ * "href": "/v1/cart/items",
1775
+ * "method": "POST"
1776
+ * }
1777
+ * ]
1778
+ * },
1779
+ * "error": {
1780
+ * "type": "https://{your-domain}/errors/client-error",
1781
+ * "code": "GENERIC_ERROR",
1782
+ * "title": "Client Error",
1783
+ * "status": 400,
1784
+ * "detail": "An error occurred",
1785
+ * "instance": "/v1/cart/items",
1786
+ * "extensions": {
1787
+ * "message_code": "GENERIC_ERROR",
1788
+ * "invalid_params": []
1789
+ * }
1790
+ * }
1791
+ * }
1792
+ */
1793
+ "application/json": components["schemas"]["StandardResponse"];
1794
+ };
1795
+ };
1796
+ /** @description Unprocessable Entity */
1797
+ 422: {
1798
+ headers: {
1799
+ [name: string]: unknown;
1800
+ };
1801
+ content: {
1802
+ /**
1803
+ * @example {
1804
+ * "status": "error",
1805
+ * "message": "One or more input fields are invalid",
1806
+ * "message_code": "INVALID_INPUT",
1807
+ * "metadata": {
1808
+ * "timestamp": "2025-08-05T18:38:57Z",
1809
+ * "requestId": "uuid",
1810
+ * "traceId": "uuid",
1811
+ * "version": "v1",
1812
+ * "executionTime": 0,
1813
+ * "language": "en-US",
1814
+ * "links": [
1815
+ * {
1816
+ * "rel": "self",
1817
+ * "href": "/v1/cart/items",
1818
+ * "method": "POST"
1819
+ * }
1820
+ * ]
1821
+ * },
1822
+ * "error": {
1823
+ * "type": "https://{your-domain}/errors/invalid-input",
1824
+ * "code": "INVALID_INPUT",
1825
+ * "title": "Invalid Input",
1826
+ * "status": 422,
1827
+ * "detail": "One or more input fields are invalid",
1828
+ * "instance": "/v1/cart/items",
1829
+ * "extensions": {
1830
+ * "message_code": "INVALID_INPUT",
1831
+ * "invalid_params": [
1832
+ * {
1833
+ * "field": "items[0].quantity",
1834
+ * "error": "Input should be greater than or equal to 1"
1835
+ * }
1836
+ * ]
1837
+ * }
1838
+ * }
1839
+ * }
1840
+ */
1841
+ "application/json": components["schemas"]["StandardResponse"];
1842
+ };
1843
+ };
1844
+ /** @description Too Many Requests */
1845
+ 429: {
1846
+ headers: {
1847
+ [name: string]: unknown;
1848
+ };
1849
+ content: {
1850
+ /**
1851
+ * @example {
1852
+ * "status": "error",
1853
+ * "message": "Too many requests",
1854
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1855
+ * "metadata": {
1856
+ * "timestamp": "2025-08-05T18:38:57Z",
1857
+ * "requestId": "uuid",
1858
+ * "traceId": "uuid",
1859
+ * "version": "v1",
1860
+ * "executionTime": 0,
1861
+ * "language": "en-US",
1862
+ * "links": [
1863
+ * {
1864
+ * "rel": "self",
1865
+ * "href": "/v1/cart/items",
1866
+ * "method": "POST"
1867
+ * }
1868
+ * ]
1869
+ * },
1870
+ * "error": {
1871
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
1872
+ * "code": "RATE_LIMIT_EXCEEDED",
1873
+ * "title": "Rate Limit Exceeded",
1874
+ * "status": 429,
1875
+ * "detail": "Too many requests",
1876
+ * "instance": "/v1/cart/items",
1877
+ * "extensions": {
1878
+ * "message_code": "RATE_LIMIT_EXCEEDED",
1879
+ * "invalid_params": []
1880
+ * }
1881
+ * }
1882
+ * }
1883
+ */
1884
+ "application/json": components["schemas"]["StandardResponse"];
1885
+ };
1886
+ };
1887
+ /** @description Internal Server Error */
1888
+ 500: {
1889
+ headers: {
1890
+ [name: string]: unknown;
1891
+ };
1892
+ content: {
1893
+ /**
1894
+ * @example {
1895
+ * "status": "error",
1896
+ * "message": "An unexpected error occurred",
1897
+ * "message_code": "SERVER_ERROR",
1898
+ * "metadata": {
1899
+ * "timestamp": "2025-08-05T18:38:57Z",
1900
+ * "requestId": "uuid",
1901
+ * "traceId": "uuid",
1902
+ * "version": "v1",
1903
+ * "executionTime": 0,
1904
+ * "language": "en-US",
1905
+ * "links": [
1906
+ * {
1907
+ * "rel": "self",
1908
+ * "href": "/v1/cart/items",
1909
+ * "method": "POST"
1910
+ * }
1911
+ * ]
1912
+ * },
1913
+ * "error": {
1914
+ * "type": "https://{your-domain}/errors/server-error",
1915
+ * "code": "SERVER_ERROR",
1916
+ * "title": "Server Error",
1917
+ * "status": 500,
1918
+ * "detail": "An unexpected error occurred",
1919
+ * "instance": "/v1/cart/items",
1920
+ * "extensions": {
1921
+ * "message_code": "SERVER_ERROR",
1922
+ * "invalid_params": []
1923
+ * }
1924
+ * }
1925
+ * }
1926
+ */
1927
+ "application/json": components["schemas"]["StandardResponse"];
1928
+ };
1929
+ };
1930
+ };
1931
+ };
1932
+ adminCreateRole: {
1933
+ parameters: {
1934
+ query?: never;
1935
+ header?: {
1936
+ authorization?: string | null;
1937
+ };
1938
+ path?: never;
1939
+ cookie?: never;
1940
+ };
1941
+ requestBody: {
1942
+ content: {
1943
+ "application/json": components["schemas"]["RoleCreateRequest"];
1944
+ };
1945
+ };
1946
+ responses: {
1947
+ /** @description Successful Response */
1948
+ 201: {
1949
+ headers: {
1950
+ [name: string]: unknown;
1951
+ };
1952
+ content: {
1953
+ "application/json": components["schemas"]["StandardResponse"];
1954
+ };
1955
+ };
1956
+ /** @description Bad Request */
1957
+ 400: {
1958
+ headers: {
1959
+ [name: string]: unknown;
1960
+ };
1961
+ content: {
1962
+ /**
1963
+ * @example {
1964
+ * "status": "error",
1965
+ * "message": "An error occurred",
1966
+ * "message_code": "GENERIC_ERROR",
1967
+ * "metadata": {
1968
+ * "timestamp": "2025-08-05T18:38:57Z",
1969
+ * "requestId": "uuid",
1970
+ * "traceId": "uuid",
1971
+ * "version": "v1",
1972
+ * "executionTime": 0,
1973
+ * "language": "en-US",
1974
+ * "links": [
1975
+ * {
1976
+ * "rel": "self",
1977
+ * "href": "/v1/cart/items",
1978
+ * "method": "POST"
1979
+ * }
1980
+ * ]
1981
+ * },
1982
+ * "error": {
1983
+ * "type": "https://{your-domain}/errors/client-error",
1984
+ * "code": "GENERIC_ERROR",
1985
+ * "title": "Client Error",
1986
+ * "status": 400,
1987
+ * "detail": "An error occurred",
1988
+ * "instance": "/v1/cart/items",
1989
+ * "extensions": {
1990
+ * "message_code": "GENERIC_ERROR",
1991
+ * "invalid_params": []
1992
+ * }
1993
+ * }
1994
+ * }
1995
+ */
1996
+ "application/json": components["schemas"]["StandardResponse"];
1566
1997
  };
1567
1998
  };
1568
- };
1569
- /**
1570
- * AccessLayerUpdateRequest
1571
- * @description Request model for updating an access layer.
1572
- * @example {
1573
- * "description": "Updated permissions for senior sales team",
1574
- * "layer_name": "Senior Sales Team Access",
1575
- * "permissions": {
1576
- * "course": {
1577
- * "create": [
1578
- * "all"
1579
- * ],
1580
- * "delete": [
1581
- * "own"
1582
- * ],
1583
- * "edit": [
1584
- * "all"
1585
- * ],
1586
- * "view": [
1587
- * "all"
1588
- * ]
1589
- * }
1590
- * },
1591
- * "reason": "Expanding permissions for senior team members"
1592
- * }
1593
- */
1594
- AccessLayerUpdateRequest: {
1595
- /**
1596
- * Layer Name
1597
- * @description Human-readable layer name
1598
- */
1599
- layer_name?: string | null;
1600
- /**
1601
- * Description
1602
- * @description Access layer description
1603
- */
1604
- description?: string | null;
1605
- /**
1606
- * Permissions
1607
- * @description Updated permissions structure
1608
- */
1609
- permissions?: {
1610
- [key: string]: {
1611
- [key: string]: string[];
1999
+ /** @description Unprocessable Entity */
2000
+ 422: {
2001
+ headers: {
2002
+ [name: string]: unknown;
1612
2003
  };
1613
- } | null;
1614
- /**
1615
- * Reason
1616
- * @description Reason for update (for audit log)
1617
- * @example Adding new permissions for sales team
1618
- */
1619
- reason?: string | null;
2004
+ content: {
2005
+ /**
2006
+ * @example {
2007
+ * "status": "error",
2008
+ * "message": "One or more input fields are invalid",
2009
+ * "message_code": "INVALID_INPUT",
2010
+ * "metadata": {
2011
+ * "timestamp": "2025-08-05T18:38:57Z",
2012
+ * "requestId": "uuid",
2013
+ * "traceId": "uuid",
2014
+ * "version": "v1",
2015
+ * "executionTime": 0,
2016
+ * "language": "en-US",
2017
+ * "links": [
2018
+ * {
2019
+ * "rel": "self",
2020
+ * "href": "/v1/cart/items",
2021
+ * "method": "POST"
2022
+ * }
2023
+ * ]
2024
+ * },
2025
+ * "error": {
2026
+ * "type": "https://{your-domain}/errors/invalid-input",
2027
+ * "code": "INVALID_INPUT",
2028
+ * "title": "Invalid Input",
2029
+ * "status": 422,
2030
+ * "detail": "One or more input fields are invalid",
2031
+ * "instance": "/v1/cart/items",
2032
+ * "extensions": {
2033
+ * "message_code": "INVALID_INPUT",
2034
+ * "invalid_params": [
2035
+ * {
2036
+ * "field": "items[0].quantity",
2037
+ * "error": "Input should be greater than or equal to 1"
2038
+ * }
2039
+ * ]
2040
+ * }
2041
+ * }
2042
+ * }
2043
+ */
2044
+ "application/json": components["schemas"]["StandardResponse"];
2045
+ };
2046
+ };
2047
+ /** @description Too Many Requests */
2048
+ 429: {
2049
+ headers: {
2050
+ [name: string]: unknown;
2051
+ };
2052
+ content: {
2053
+ /**
2054
+ * @example {
2055
+ * "status": "error",
2056
+ * "message": "Too many requests",
2057
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2058
+ * "metadata": {
2059
+ * "timestamp": "2025-08-05T18:38:57Z",
2060
+ * "requestId": "uuid",
2061
+ * "traceId": "uuid",
2062
+ * "version": "v1",
2063
+ * "executionTime": 0,
2064
+ * "language": "en-US",
2065
+ * "links": [
2066
+ * {
2067
+ * "rel": "self",
2068
+ * "href": "/v1/cart/items",
2069
+ * "method": "POST"
2070
+ * }
2071
+ * ]
2072
+ * },
2073
+ * "error": {
2074
+ * "type": "https://{your-domain}/errors/rate-limit-exceeded",
2075
+ * "code": "RATE_LIMIT_EXCEEDED",
2076
+ * "title": "Rate Limit Exceeded",
2077
+ * "status": 429,
2078
+ * "detail": "Too many requests",
2079
+ * "instance": "/v1/cart/items",
2080
+ * "extensions": {
2081
+ * "message_code": "RATE_LIMIT_EXCEEDED",
2082
+ * "invalid_params": []
2083
+ * }
2084
+ * }
2085
+ * }
2086
+ */
2087
+ "application/json": components["schemas"]["StandardResponse"];
2088
+ };
2089
+ };
2090
+ /** @description Internal Server Error */
2091
+ 500: {
2092
+ headers: {
2093
+ [name: string]: unknown;
2094
+ };
2095
+ content: {
2096
+ /**
2097
+ * @example {
2098
+ * "status": "error",
2099
+ * "message": "An unexpected error occurred",
2100
+ * "message_code": "SERVER_ERROR",
2101
+ * "metadata": {
2102
+ * "timestamp": "2025-08-05T18:38:57Z",
2103
+ * "requestId": "uuid",
2104
+ * "traceId": "uuid",
2105
+ * "version": "v1",
2106
+ * "executionTime": 0,
2107
+ * "language": "en-US",
2108
+ * "links": [
2109
+ * {
2110
+ * "rel": "self",
2111
+ * "href": "/v1/cart/items",
2112
+ * "method": "POST"
2113
+ * }
2114
+ * ]
2115
+ * },
2116
+ * "error": {
2117
+ * "type": "https://{your-domain}/errors/server-error",
2118
+ * "code": "SERVER_ERROR",
2119
+ * "title": "Server Error",
2120
+ * "status": 500,
2121
+ * "detail": "An unexpected error occurred",
2122
+ * "instance": "/v1/cart/items",
2123
+ * "extensions": {
2124
+ * "message_code": "SERVER_ERROR",
2125
+ * "invalid_params": []
2126
+ * }
2127
+ * }
2128
+ * }
2129
+ */
2130
+ "application/json": components["schemas"]["StandardResponse"];
2131
+ };
2132
+ };
1620
2133
  };
1621
2134
  };
1622
- responses: never;
1623
- parameters: never;
1624
- requestBodies: never;
1625
- headers: never;
1626
- pathItems: never;
1627
- }
1628
- export type $defs = Record<string, never>;
1629
- export interface operations {
1630
- adminListRoles: {
2135
+ adminGetRole: {
1631
2136
  parameters: {
1632
- query?: {
1633
- /** @description Include platform roles (admin, teacher, student) */
1634
- include_platform?: boolean;
1635
- /** @description Only return active roles */
1636
- active_only?: boolean;
1637
- };
2137
+ query?: never;
1638
2138
  header?: {
1639
2139
  authorization?: string | null;
1640
2140
  };
1641
- path?: never;
2141
+ path: {
2142
+ role_id: string;
2143
+ };
1642
2144
  cookie?: never;
1643
2145
  };
1644
2146
  requestBody?: never;
@@ -1831,23 +2333,24 @@ export interface operations {
1831
2333
  };
1832
2334
  };
1833
2335
  };
1834
- adminCreateRole: {
2336
+ adminDeleteRole: {
1835
2337
  parameters: {
1836
- query?: never;
2338
+ query?: {
2339
+ /** @description Reason for deletion */
2340
+ reason?: string | null;
2341
+ };
1837
2342
  header?: {
1838
2343
  authorization?: string | null;
1839
2344
  };
1840
- path?: never;
1841
- cookie?: never;
1842
- };
1843
- requestBody: {
1844
- content: {
1845
- "application/json": components["schemas"]["RoleCreateRequest"];
2345
+ path: {
2346
+ role_id: string;
1846
2347
  };
2348
+ cookie?: never;
1847
2349
  };
2350
+ requestBody?: never;
1848
2351
  responses: {
1849
2352
  /** @description Successful Response */
1850
- 201: {
2353
+ 200: {
1851
2354
  headers: {
1852
2355
  [name: string]: unknown;
1853
2356
  };
@@ -2034,7 +2537,7 @@ export interface operations {
2034
2537
  };
2035
2538
  };
2036
2539
  };
2037
- adminGetRole: {
2540
+ adminUpdateRole: {
2038
2541
  parameters: {
2039
2542
  query?: never;
2040
2543
  header?: {
@@ -2045,7 +2548,11 @@ export interface operations {
2045
2548
  };
2046
2549
  cookie?: never;
2047
2550
  };
2048
- requestBody?: never;
2551
+ requestBody: {
2552
+ content: {
2553
+ "application/json": components["schemas"]["RoleUpdateRequest"];
2554
+ };
2555
+ };
2049
2556
  responses: {
2050
2557
  /** @description Successful Response */
2051
2558
  200: {
@@ -2235,12 +2742,9 @@ export interface operations {
2235
2742
  };
2236
2743
  };
2237
2744
  };
2238
- adminDeleteRole: {
2239
- parameters: {
2240
- query?: {
2241
- /** @description Reason for deletion */
2242
- reason?: string | null;
2243
- };
2745
+ adminUpdateRoleAccessLayer: {
2746
+ parameters: {
2747
+ query?: never;
2244
2748
  header?: {
2245
2749
  authorization?: string | null;
2246
2750
  };
@@ -2249,7 +2753,11 @@ export interface operations {
2249
2753
  };
2250
2754
  cookie?: never;
2251
2755
  };
2252
- requestBody?: never;
2756
+ requestBody: {
2757
+ content: {
2758
+ "application/json": components["schemas"]["AssignAccessLayerRequest"];
2759
+ };
2760
+ };
2253
2761
  responses: {
2254
2762
  /** @description Successful Response */
2255
2763
  200: {
@@ -2439,22 +2947,21 @@ export interface operations {
2439
2947
  };
2440
2948
  };
2441
2949
  };
2442
- adminUpdateRole: {
2950
+ adminListAccessLayers: {
2443
2951
  parameters: {
2444
- query?: never;
2952
+ query?: {
2953
+ /** @description Include platform access layers */
2954
+ include_platform?: boolean;
2955
+ /** @description Only return active layers */
2956
+ active_only?: boolean;
2957
+ };
2445
2958
  header?: {
2446
2959
  authorization?: string | null;
2447
2960
  };
2448
- path: {
2449
- role_id: string;
2450
- };
2961
+ path?: never;
2451
2962
  cookie?: never;
2452
2963
  };
2453
- requestBody: {
2454
- content: {
2455
- "application/json": components["schemas"]["RoleUpdateRequest"];
2456
- };
2457
- };
2964
+ requestBody?: never;
2458
2965
  responses: {
2459
2966
  /** @description Successful Response */
2460
2967
  200: {
@@ -2644,25 +3151,23 @@ export interface operations {
2644
3151
  };
2645
3152
  };
2646
3153
  };
2647
- adminUpdateRoleAccessLayer: {
3154
+ adminCreateAccessLayer: {
2648
3155
  parameters: {
2649
3156
  query?: never;
2650
3157
  header?: {
2651
3158
  authorization?: string | null;
2652
3159
  };
2653
- path: {
2654
- role_id: string;
2655
- };
3160
+ path?: never;
2656
3161
  cookie?: never;
2657
3162
  };
2658
3163
  requestBody: {
2659
3164
  content: {
2660
- "application/json": components["schemas"]["AssignAccessLayerRequest"];
3165
+ "application/json": components["schemas"]["AccessLayerCreateRequest"];
2661
3166
  };
2662
3167
  };
2663
3168
  responses: {
2664
3169
  /** @description Successful Response */
2665
- 200: {
3170
+ 201: {
2666
3171
  headers: {
2667
3172
  [name: string]: unknown;
2668
3173
  };
@@ -2849,18 +3354,15 @@ export interface operations {
2849
3354
  };
2850
3355
  };
2851
3356
  };
2852
- adminListAccessLayers: {
3357
+ adminGetAccessLayer: {
2853
3358
  parameters: {
2854
- query?: {
2855
- /** @description Include platform access layers */
2856
- include_platform?: boolean;
2857
- /** @description Only return active layers */
2858
- active_only?: boolean;
2859
- };
3359
+ query?: never;
2860
3360
  header?: {
2861
3361
  authorization?: string | null;
2862
3362
  };
2863
- path?: never;
3363
+ path: {
3364
+ layer_id: string;
3365
+ };
2864
3366
  cookie?: never;
2865
3367
  };
2866
3368
  requestBody?: never;
@@ -3053,23 +3555,24 @@ export interface operations {
3053
3555
  };
3054
3556
  };
3055
3557
  };
3056
- adminCreateAccessLayer: {
3558
+ adminDeleteAccessLayer: {
3057
3559
  parameters: {
3058
- query?: never;
3560
+ query?: {
3561
+ /** @description Reason for deletion */
3562
+ reason?: string | null;
3563
+ };
3059
3564
  header?: {
3060
3565
  authorization?: string | null;
3061
3566
  };
3062
- path?: never;
3063
- cookie?: never;
3064
- };
3065
- requestBody: {
3066
- content: {
3067
- "application/json": components["schemas"]["AccessLayerCreateRequest"];
3567
+ path: {
3568
+ layer_id: string;
3068
3569
  };
3570
+ cookie?: never;
3069
3571
  };
3572
+ requestBody?: never;
3070
3573
  responses: {
3071
3574
  /** @description Successful Response */
3072
- 201: {
3575
+ 200: {
3073
3576
  headers: {
3074
3577
  [name: string]: unknown;
3075
3578
  };
@@ -3256,7 +3759,7 @@ export interface operations {
3256
3759
  };
3257
3760
  };
3258
3761
  };
3259
- adminGetAccessLayer: {
3762
+ adminUpdateAccessLayer: {
3260
3763
  parameters: {
3261
3764
  query?: never;
3262
3765
  header?: {
@@ -3267,7 +3770,11 @@ export interface operations {
3267
3770
  };
3268
3771
  cookie?: never;
3269
3772
  };
3270
- requestBody?: never;
3773
+ requestBody: {
3774
+ content: {
3775
+ "application/json": components["schemas"]["AccessLayerUpdateRequest"];
3776
+ };
3777
+ };
3271
3778
  responses: {
3272
3779
  /** @description Successful Response */
3273
3780
  200: {
@@ -3457,12 +3964,9 @@ export interface operations {
3457
3964
  };
3458
3965
  };
3459
3966
  };
3460
- adminDeleteAccessLayer: {
3967
+ adminCreateAccessLayerClone: {
3461
3968
  parameters: {
3462
- query?: {
3463
- /** @description Reason for deletion */
3464
- reason?: string | null;
3465
- };
3969
+ query?: never;
3466
3970
  header?: {
3467
3971
  authorization?: string | null;
3468
3972
  };
@@ -3471,10 +3975,14 @@ export interface operations {
3471
3975
  };
3472
3976
  cookie?: never;
3473
3977
  };
3474
- requestBody?: never;
3978
+ requestBody: {
3979
+ content: {
3980
+ "application/json": components["schemas"]["AccessLayerCloneRequest"];
3981
+ };
3982
+ };
3475
3983
  responses: {
3476
3984
  /** @description Successful Response */
3477
- 200: {
3985
+ 201: {
3478
3986
  headers: {
3479
3987
  [name: string]: unknown;
3480
3988
  };
@@ -3661,25 +4169,23 @@ export interface operations {
3661
4169
  };
3662
4170
  };
3663
4171
  };
3664
- adminUpdateAccessLayer: {
4172
+ adminCreateUserPermissionOverride: {
3665
4173
  parameters: {
3666
4174
  query?: never;
3667
4175
  header?: {
3668
4176
  authorization?: string | null;
3669
4177
  };
3670
- path: {
3671
- layer_id: string;
3672
- };
4178
+ path?: never;
3673
4179
  cookie?: never;
3674
4180
  };
3675
4181
  requestBody: {
3676
4182
  content: {
3677
- "application/json": components["schemas"]["AccessLayerUpdateRequest"];
4183
+ "application/json": components["schemas"]["UserPermissionOverrideRequest"];
3678
4184
  };
3679
4185
  };
3680
4186
  responses: {
3681
4187
  /** @description Successful Response */
3682
- 200: {
4188
+ 201: {
3683
4189
  headers: {
3684
4190
  [name: string]: unknown;
3685
4191
  };
@@ -3866,25 +4372,24 @@ export interface operations {
3866
4372
  };
3867
4373
  };
3868
4374
  };
3869
- adminCreateAccessLayerClone: {
4375
+ adminListUserPermissionOverrides: {
3870
4376
  parameters: {
3871
- query?: never;
4377
+ query?: {
4378
+ /** @description Include expired overrides */
4379
+ include_expired?: boolean;
4380
+ };
3872
4381
  header?: {
3873
4382
  authorization?: string | null;
3874
4383
  };
3875
4384
  path: {
3876
- layer_id: string;
4385
+ user_id: string;
3877
4386
  };
3878
4387
  cookie?: never;
3879
4388
  };
3880
- requestBody: {
3881
- content: {
3882
- "application/json": components["schemas"]["AccessLayerCloneRequest"];
3883
- };
3884
- };
4389
+ requestBody?: never;
3885
4390
  responses: {
3886
4391
  /** @description Successful Response */
3887
- 201: {
4392
+ 200: {
3888
4393
  headers: {
3889
4394
  [name: string]: unknown;
3890
4395
  };
@@ -4071,23 +4576,24 @@ export interface operations {
4071
4576
  };
4072
4577
  };
4073
4578
  };
4074
- adminCreateUserPermissionOverride: {
4579
+ adminDeleteUserPermissionOverride: {
4075
4580
  parameters: {
4076
- query?: never;
4581
+ query?: {
4582
+ /** @description Reason for revocation */
4583
+ reason?: string | null;
4584
+ };
4077
4585
  header?: {
4078
4586
  authorization?: string | null;
4079
4587
  };
4080
- path?: never;
4081
- cookie?: never;
4082
- };
4083
- requestBody: {
4084
- content: {
4085
- "application/json": components["schemas"]["UserPermissionOverrideRequest"];
4588
+ path: {
4589
+ override_id: string;
4086
4590
  };
4591
+ cookie?: never;
4087
4592
  };
4593
+ requestBody?: never;
4088
4594
  responses: {
4089
4595
  /** @description Successful Response */
4090
- 201: {
4596
+ 200: {
4091
4597
  headers: {
4092
4598
  [name: string]: unknown;
4093
4599
  };
@@ -4274,18 +4780,16 @@ export interface operations {
4274
4780
  };
4275
4781
  };
4276
4782
  };
4277
- adminListUserPermissionOverrides: {
4783
+ adminListQuotas: {
4278
4784
  parameters: {
4279
4785
  query?: {
4280
- /** @description Include expired overrides */
4281
- include_expired?: boolean;
4786
+ /** @description Only return active quotas */
4787
+ active_only?: boolean;
4282
4788
  };
4283
4789
  header?: {
4284
4790
  authorization?: string | null;
4285
4791
  };
4286
- path: {
4287
- user_id: string;
4288
- };
4792
+ path?: never;
4289
4793
  cookie?: never;
4290
4794
  };
4291
4795
  requestBody?: never;
@@ -4478,24 +4982,23 @@ export interface operations {
4478
4982
  };
4479
4983
  };
4480
4984
  };
4481
- adminDeleteUserPermissionOverride: {
4985
+ adminCreateQuota: {
4482
4986
  parameters: {
4483
- query?: {
4484
- /** @description Reason for revocation */
4485
- reason?: string | null;
4486
- };
4987
+ query?: never;
4487
4988
  header?: {
4488
4989
  authorization?: string | null;
4489
4990
  };
4490
- path: {
4491
- override_id: string;
4492
- };
4991
+ path?: never;
4493
4992
  cookie?: never;
4494
4993
  };
4495
- requestBody?: never;
4994
+ requestBody: {
4995
+ content: {
4996
+ "application/json": components["schemas"]["QuotaCreateRequest"];
4997
+ };
4998
+ };
4496
4999
  responses: {
4497
5000
  /** @description Successful Response */
4498
- 200: {
5001
+ 201: {
4499
5002
  headers: {
4500
5003
  [name: string]: unknown;
4501
5004
  };
@@ -4682,16 +5185,15 @@ export interface operations {
4682
5185
  };
4683
5186
  };
4684
5187
  };
4685
- adminListQuotas: {
5188
+ adminGetQuota: {
4686
5189
  parameters: {
4687
- query?: {
4688
- /** @description Only return active quotas */
4689
- active_only?: boolean;
4690
- };
5190
+ query?: never;
4691
5191
  header?: {
4692
5192
  authorization?: string | null;
4693
5193
  };
4694
- path?: never;
5194
+ path: {
5195
+ quota_id: string;
5196
+ };
4695
5197
  cookie?: never;
4696
5198
  };
4697
5199
  requestBody?: never;
@@ -4884,23 +5386,25 @@ export interface operations {
4884
5386
  };
4885
5387
  };
4886
5388
  };
4887
- adminCreateQuota: {
5389
+ adminUpdateQuota: {
4888
5390
  parameters: {
4889
5391
  query?: never;
4890
5392
  header?: {
4891
5393
  authorization?: string | null;
4892
5394
  };
4893
- path?: never;
5395
+ path: {
5396
+ quota_id: string;
5397
+ };
4894
5398
  cookie?: never;
4895
5399
  };
4896
5400
  requestBody: {
4897
5401
  content: {
4898
- "application/json": components["schemas"]["QuotaCreateRequest"];
5402
+ "application/json": components["schemas"]["app__schemas__rbac__quota_schemas__QuotaUpdateRequest"];
4899
5403
  };
4900
5404
  };
4901
5405
  responses: {
4902
5406
  /** @description Successful Response */
4903
- 201: {
5407
+ 200: {
4904
5408
  headers: {
4905
5409
  [name: string]: unknown;
4906
5410
  };
@@ -5087,9 +5591,12 @@ export interface operations {
5087
5591
  };
5088
5592
  };
5089
5593
  };
5090
- adminGetQuota: {
5594
+ adminCreateQuotaReset: {
5091
5595
  parameters: {
5092
- query?: never;
5596
+ query?: {
5597
+ /** @description Reason for reset */
5598
+ reason?: string | null;
5599
+ };
5093
5600
  header?: {
5094
5601
  authorization?: string | null;
5095
5602
  };
@@ -5288,22 +5795,33 @@ export interface operations {
5288
5795
  };
5289
5796
  };
5290
5797
  };
5291
- adminUpdateQuota: {
5798
+ adminListAuditLogs: {
5292
5799
  parameters: {
5293
- query?: never;
5800
+ query?: {
5801
+ /** @description Filter by entity type (role, access_layer, user_override, quota) */
5802
+ entity_type?: string | null;
5803
+ /** @description Filter by specific entity external ID (e.g., role_xxx, acl_xxx) — use with entity_type for full entity audit history */
5804
+ entity_id?: string | null;
5805
+ /** @description Filter by action (create, update, delete, assign, revoke, reset) */
5806
+ action?: string | null;
5807
+ /** @description Filter by user who performed action */
5808
+ user_id?: number | null;
5809
+ /** @description Filter from date (ISO 8601 format) */
5810
+ start_date?: string | null;
5811
+ /** @description Filter to date (ISO 8601 format) */
5812
+ end_date?: string | null;
5813
+ /** @description Page number (1-based) */
5814
+ page?: number;
5815
+ /** @description Items per page (1–500, default 50) */
5816
+ limit?: number;
5817
+ };
5294
5818
  header?: {
5295
5819
  authorization?: string | null;
5296
5820
  };
5297
- path: {
5298
- quota_id: string;
5299
- };
5821
+ path?: never;
5300
5822
  cookie?: never;
5301
5823
  };
5302
- requestBody: {
5303
- content: {
5304
- "application/json": components["schemas"]["QuotaUpdateRequest"];
5305
- };
5306
- };
5824
+ requestBody?: never;
5307
5825
  responses: {
5308
5826
  /** @description Successful Response */
5309
5827
  200: {
@@ -5493,17 +6011,14 @@ export interface operations {
5493
6011
  };
5494
6012
  };
5495
6013
  };
5496
- adminCreateQuotaReset: {
6014
+ adminGetAuditLog: {
5497
6015
  parameters: {
5498
- query?: {
5499
- /** @description Reason for reset */
5500
- reason?: string | null;
5501
- };
6016
+ query?: never;
5502
6017
  header?: {
5503
6018
  authorization?: string | null;
5504
6019
  };
5505
6020
  path: {
5506
- quota_id: string;
6021
+ log_id: string;
5507
6022
  };
5508
6023
  cookie?: never;
5509
6024
  };
@@ -5697,26 +6212,9 @@ export interface operations {
5697
6212
  };
5698
6213
  };
5699
6214
  };
5700
- adminListAuditLogs: {
6215
+ listPermissionGroups: {
5701
6216
  parameters: {
5702
- query?: {
5703
- /** @description Filter by entity type (role, access_layer, user_override, quota) */
5704
- entity_type?: string | null;
5705
- /** @description Filter by specific entity external ID (e.g., role_xxx, acl_xxx) — use with entity_type for full entity audit history */
5706
- entity_id?: string | null;
5707
- /** @description Filter by action (create, update, delete, assign, revoke, reset) */
5708
- action?: string | null;
5709
- /** @description Filter by user who performed action */
5710
- user_id?: number | null;
5711
- /** @description Filter from date (ISO 8601 format) */
5712
- start_date?: string | null;
5713
- /** @description Filter to date (ISO 8601 format) */
5714
- end_date?: string | null;
5715
- /** @description Page number (1-based) */
5716
- page?: number;
5717
- /** @description Items per page (1–500, default 50) */
5718
- limit?: number;
5719
- };
6217
+ query?: never;
5720
6218
  header?: {
5721
6219
  authorization?: string | null;
5722
6220
  };
@@ -5913,14 +6411,14 @@ export interface operations {
5913
6411
  };
5914
6412
  };
5915
6413
  };
5916
- adminGetAuditLog: {
6414
+ getPermissionGroup: {
5917
6415
  parameters: {
5918
6416
  query?: never;
5919
6417
  header?: {
5920
6418
  authorization?: string | null;
5921
6419
  };
5922
6420
  path: {
5923
- log_id: string;
6421
+ group_name: string;
5924
6422
  };
5925
6423
  cookie?: never;
5926
6424
  };