@examplary/sdk 2.15.0 → 2.17.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/dist/index.d.mts CHANGED
@@ -141,7 +141,7 @@ interface paths {
141
141
  patch?: never;
142
142
  trace?: never;
143
143
  };
144
- "/library/publishers/{publisherId}/items": {
144
+ "/library/collections/{collectionId}/items": {
145
145
  parameters: {
146
146
  query?: never;
147
147
  header?: never;
@@ -149,36 +149,16 @@ interface paths {
149
149
  cookie?: never;
150
150
  };
151
151
  /**
152
- * List items by publisher
153
- * @description Lists all library items for the specified publisher profile.
152
+ * List items by collection
153
+ * @description Lists all library items in the specified collection. Requires at least viewer access to the collection.
154
154
  */
155
- get: operations["library.publishers.items.list"];
155
+ get: operations["library.collections.items.list"];
156
156
  put?: never;
157
157
  /**
158
158
  * Create library item
159
- * @description Adds an item to the library. Only the publisher owner can add items to their publisher profile.
159
+ * @description Adds an item to a collection. Requires at least editor access to both the collection and the resource being added.
160
160
  */
161
- post: operations["library.publishers.items.create"];
162
- delete?: never;
163
- options?: never;
164
- head?: never;
165
- patch?: never;
166
- trace?: never;
167
- };
168
- "/library/items/featured": {
169
- parameters: {
170
- query?: never;
171
- header?: never;
172
- path?: never;
173
- cookie?: never;
174
- };
175
- /**
176
- * List featured library items
177
- * @description Lists all library items that are marked as featured.
178
- */
179
- get: operations["library.items.listFeatured"];
180
- put?: never;
181
- post?: never;
161
+ post: operations["library.collections.items.create"];
182
162
  delete?: never;
183
163
  options?: never;
184
164
  head?: never;
@@ -197,39 +177,19 @@ interface paths {
197
177
  post?: never;
198
178
  /**
199
179
  * Delete library item
200
- * @description Deletes a library item. Only the publisher owner can delete items from their publisher profile.
180
+ * @description Deletes a library item. Requires at least editor access to the collection it belongs to.
201
181
  */
202
182
  delete: operations["library.items.delete"];
203
183
  options?: never;
204
184
  head?: never;
205
185
  /**
206
186
  * Update library item
207
- * @description Updates a library item. Only the publisher owner can update items in their publisher profile.
187
+ * @description Updates a library item. Requires at least editor access to the collection it belongs to.
208
188
  */
209
189
  patch: operations["library.items.update"];
210
190
  trace?: never;
211
191
  };
212
- "/library/publishers/featured": {
213
- parameters: {
214
- query?: never;
215
- header?: never;
216
- path?: never;
217
- cookie?: never;
218
- };
219
- /**
220
- * List featured publishers
221
- * @description Lists all library publishers that are marked as featured.
222
- */
223
- get: operations["library.publishers.listFeatured"];
224
- put?: never;
225
- post?: never;
226
- delete?: never;
227
- options?: never;
228
- head?: never;
229
- patch?: never;
230
- trace?: never;
231
- };
232
- "/library/publishers": {
192
+ "/library/collections": {
233
193
  parameters: {
234
194
  query?: never;
235
195
  header?: never;
@@ -237,43 +197,23 @@ interface paths {
237
197
  cookie?: never;
238
198
  };
239
199
  /**
240
- * List all publishers
241
- * @description Lists all library publisher profiles.
200
+ * List collections
201
+ * @description Lists the library collections the current user has access to.
242
202
  */
243
- get: operations["library.publishers.listAll"];
203
+ get: operations["library.collections.list"];
244
204
  put?: never;
245
205
  /**
246
- * Create publisher
247
- * @description Creates a new library publisher profile.
206
+ * Create collection
207
+ * @description Creates a new library collection. The creator becomes its owner.
248
208
  */
249
- post: operations["library.publishers.create"];
209
+ post: operations["library.collections.create"];
250
210
  delete?: never;
251
211
  options?: never;
252
212
  head?: never;
253
213
  patch?: never;
254
214
  trace?: never;
255
215
  };
256
- "/library/publishers/mine": {
257
- parameters: {
258
- query?: never;
259
- header?: never;
260
- path?: never;
261
- cookie?: never;
262
- };
263
- /**
264
- * List my publishers
265
- * @description Lists all library publisher profiles created by the authenticated user.
266
- */
267
- get: operations["library.publishers.listMine"];
268
- put?: never;
269
- post?: never;
270
- delete?: never;
271
- options?: never;
272
- head?: never;
273
- patch?: never;
274
- trace?: never;
275
- };
276
- "/library/publishers/{publisherId}": {
216
+ "/library/collections/{collectionId}": {
277
217
  parameters: {
278
218
  query?: never;
279
219
  header?: never;
@@ -284,17 +224,17 @@ interface paths {
284
224
  put?: never;
285
225
  post?: never;
286
226
  /**
287
- * Delete publisher
288
- * @description Deletes a library publisher profile. Only the owner can delete their publisher profile.
227
+ * Delete collection
228
+ * @description Deletes a library collection. Only the collection owner can delete it.
289
229
  */
290
- delete: operations["library.publishers.delete"];
230
+ delete: operations["library.collections.delete"];
291
231
  options?: never;
292
232
  head?: never;
293
233
  /**
294
- * Update publisher
295
- * @description Updates a library publisher profile. Only the owner can update their publisher profile.
234
+ * Update collection
235
+ * @description Updates a library collection. Requires at least manager access to the collection.
296
236
  */
297
- patch: operations["library.publishers.update"];
237
+ patch: operations["library.collections.update"];
298
238
  trace?: never;
299
239
  };
300
240
  "/oauth/authorize": {
@@ -946,7 +886,7 @@ interface paths {
946
886
  */
947
887
  get: operations["exams.get"];
948
888
  put?: never;
949
- post: operations["postExams:id"];
889
+ post?: never;
950
890
  /**
951
891
  * Delete exam
952
892
  * @description Delete the exam.
@@ -1061,6 +1001,90 @@ interface paths {
1061
1001
  patch?: never;
1062
1002
  trace?: never;
1063
1003
  };
1004
+ "/orgs": {
1005
+ parameters: {
1006
+ query?: never;
1007
+ header?: never;
1008
+ path?: never;
1009
+ cookie?: never;
1010
+ };
1011
+ /**
1012
+ * List all organizations
1013
+ * @description Retrieve a list of all organizations the authenticated user has access to. Optionally can also return pending and suggested org memberships.
1014
+ */
1015
+ get: operations["orgs.list"];
1016
+ put?: never;
1017
+ /**
1018
+ * Create a new organization
1019
+ * @description Create a new workspace to collaborate on resources within. Either specify a name, or pass an empty body to create a default workspace for the user.
1020
+ */
1021
+ post: operations["orgs.create"];
1022
+ delete?: never;
1023
+ options?: never;
1024
+ head?: never;
1025
+ patch?: never;
1026
+ trace?: never;
1027
+ };
1028
+ "/orgs/{id}/join": {
1029
+ parameters: {
1030
+ query?: never;
1031
+ header?: never;
1032
+ path?: never;
1033
+ cookie?: never;
1034
+ };
1035
+ get?: never;
1036
+ put?: never;
1037
+ /**
1038
+ * Request to join an organization
1039
+ * @description Request to join an existing organization. The request will be reviewed by the organization's administrators or auto-accepted.
1040
+ */
1041
+ post: operations["orgs.join"];
1042
+ delete?: never;
1043
+ options?: never;
1044
+ head?: never;
1045
+ patch?: never;
1046
+ trace?: never;
1047
+ };
1048
+ "/search/tokens": {
1049
+ parameters: {
1050
+ query?: never;
1051
+ header?: never;
1052
+ path?: never;
1053
+ cookie?: never;
1054
+ };
1055
+ /**
1056
+ * Get a search token
1057
+ * @description Returns a short-lived, permission-scoped TypeSense search key for the current user, along with the host and collection to query. The key cannot be widened: the filter it carries is enforced by TypeSense.
1058
+ */
1059
+ get: operations["search.tokens.get"];
1060
+ put?: never;
1061
+ post?: never;
1062
+ delete?: never;
1063
+ options?: never;
1064
+ head?: never;
1065
+ patch?: never;
1066
+ trace?: never;
1067
+ };
1068
+ "/search/tokens/public": {
1069
+ parameters: {
1070
+ query?: never;
1071
+ header?: never;
1072
+ path?: never;
1073
+ cookie?: never;
1074
+ };
1075
+ /**
1076
+ * Get a search token
1077
+ * @description Returns a short-lived, permission-scoped TypeSense search key for the public items.
1078
+ */
1079
+ get: operations["search.tokens.get-public"];
1080
+ put?: never;
1081
+ post?: never;
1082
+ delete?: never;
1083
+ options?: never;
1084
+ head?: never;
1085
+ patch?: never;
1086
+ trace?: never;
1087
+ };
1064
1088
  "/me": {
1065
1089
  parameters: {
1066
1090
  query?: never;
@@ -1085,6 +1109,26 @@ interface paths {
1085
1109
  patch: operations["me.update"];
1086
1110
  trace?: never;
1087
1111
  };
1112
+ "/me/email": {
1113
+ parameters: {
1114
+ query?: never;
1115
+ header?: never;
1116
+ path?: never;
1117
+ cookie?: never;
1118
+ };
1119
+ get?: never;
1120
+ put?: never;
1121
+ post?: never;
1122
+ delete?: never;
1123
+ options?: never;
1124
+ head?: never;
1125
+ /**
1126
+ * Change my email address
1127
+ * @description Send a confirmation link to a new email address. The account only moves to it once that link is opened. Not available in workspaces that manage their members' identities.
1128
+ */
1129
+ patch: operations["me.updateEmail"];
1130
+ trace?: never;
1131
+ };
1088
1132
  "/me/two-factor": {
1089
1133
  parameters: {
1090
1134
  query?: never;
@@ -1187,21 +1231,123 @@ interface paths {
1187
1231
  patch?: never;
1188
1232
  trace?: never;
1189
1233
  };
1190
- "/orgs": {
1234
+ "/org/email-domains": {
1191
1235
  parameters: {
1192
1236
  query?: never;
1193
1237
  header?: never;
1194
1238
  path?: never;
1195
1239
  cookie?: never;
1196
1240
  };
1197
- /** List all organizations */
1198
- get: operations["orgs.list"];
1241
+ /** List verified email domains */
1242
+ get: operations["org.emailDomains.list"];
1199
1243
  put?: never;
1200
- /**
1201
- * Create a new organization
1202
- * @description Create a new workspace to collaborate with others on exams.
1203
- */
1204
- post: operations["orgs.create"];
1244
+ /** Add an email domain to verify */
1245
+ post: operations["org.emailDomains.create"];
1246
+ delete?: never;
1247
+ options?: never;
1248
+ head?: never;
1249
+ patch?: never;
1250
+ trace?: never;
1251
+ };
1252
+ "/org/email-domains/{domain}": {
1253
+ parameters: {
1254
+ query?: never;
1255
+ header?: never;
1256
+ path?: never;
1257
+ cookie?: never;
1258
+ };
1259
+ get?: never;
1260
+ put?: never;
1261
+ post?: never;
1262
+ /** Remove a verified email domain */
1263
+ delete: operations["org.emailDomains.delete"];
1264
+ options?: never;
1265
+ head?: never;
1266
+ /** Update an email domain's join settings */
1267
+ patch: operations["org.emailDomains.update"];
1268
+ trace?: never;
1269
+ };
1270
+ "/org/email-domains/{domain}/verify": {
1271
+ parameters: {
1272
+ query?: never;
1273
+ header?: never;
1274
+ path?: never;
1275
+ cookie?: never;
1276
+ };
1277
+ get?: never;
1278
+ put?: never;
1279
+ /** Re-check an email domain's DNS verification record */
1280
+ post: operations["org.emailDomains.verify"];
1281
+ delete?: never;
1282
+ options?: never;
1283
+ head?: never;
1284
+ patch?: never;
1285
+ trace?: never;
1286
+ };
1287
+ "/org/identity-provider": {
1288
+ parameters: {
1289
+ query?: never;
1290
+ header?: never;
1291
+ path?: never;
1292
+ cookie?: never;
1293
+ };
1294
+ /** Get single sign-on configuration */
1295
+ get: operations["org.identityProvider.get"];
1296
+ put?: never;
1297
+ /** Configure single sign-on */
1298
+ post: operations["org.identityProvider.update"];
1299
+ /** Turn off single sign-on */
1300
+ delete: operations["org.identityProvider.delete"];
1301
+ options?: never;
1302
+ head?: never;
1303
+ patch?: never;
1304
+ trace?: never;
1305
+ };
1306
+ "/org/join-requests": {
1307
+ parameters: {
1308
+ query?: never;
1309
+ header?: never;
1310
+ path?: never;
1311
+ cookie?: never;
1312
+ };
1313
+ /** List pending workspace join requests */
1314
+ get: operations["org.joinRequests.list"];
1315
+ put?: never;
1316
+ post?: never;
1317
+ delete?: never;
1318
+ options?: never;
1319
+ head?: never;
1320
+ patch?: never;
1321
+ trace?: never;
1322
+ };
1323
+ "/org/join-requests/{userId}/approve": {
1324
+ parameters: {
1325
+ query?: never;
1326
+ header?: never;
1327
+ path?: never;
1328
+ cookie?: never;
1329
+ };
1330
+ get?: never;
1331
+ put?: never;
1332
+ /** Approve a workspace join request */
1333
+ post: operations["org.joinRequests.approve"];
1334
+ delete?: never;
1335
+ options?: never;
1336
+ head?: never;
1337
+ patch?: never;
1338
+ trace?: never;
1339
+ };
1340
+ "/org/join-requests/{userId}/reject": {
1341
+ parameters: {
1342
+ query?: never;
1343
+ header?: never;
1344
+ path?: never;
1345
+ cookie?: never;
1346
+ };
1347
+ get?: never;
1348
+ put?: never;
1349
+ /** Reject a workspace join request */
1350
+ post: operations["org.joinRequests.reject"];
1205
1351
  delete?: never;
1206
1352
  options?: never;
1207
1353
  head?: never;
@@ -1896,6 +2042,26 @@ interface paths {
1896
2042
  patch?: never;
1897
2043
  trace?: never;
1898
2044
  };
2045
+ "/source-materials/tags": {
2046
+ parameters: {
2047
+ query?: never;
2048
+ header?: never;
2049
+ path?: never;
2050
+ cookie?: never;
2051
+ };
2052
+ /**
2053
+ * List source material tags
2054
+ * @description Returns a list of existing tags for the source materials the current user has access to. Useful for filtering, or for presenting autocomplete suggestions.
2055
+ */
2056
+ get: operations["sourceMaterials.listTags"];
2057
+ put?: never;
2058
+ post?: never;
2059
+ delete?: never;
2060
+ options?: never;
2061
+ head?: never;
2062
+ patch?: never;
2063
+ trace?: never;
2064
+ };
1899
2065
  "/source-materials/{id}": {
1900
2066
  parameters: {
1901
2067
  query?: never;
@@ -1995,9 +2161,13 @@ interface paths {
1995
2161
  path?: never;
1996
2162
  cookie?: never;
1997
2163
  };
1998
- get?: never;
2164
+ /**
2165
+ * Get folder
2166
+ * @description Get a single folder from the current workspace by its ID.
2167
+ */
2168
+ get: operations["folders.get"];
1999
2169
  put?: never;
2000
- post: operations["postFolders:id"];
2170
+ post?: never;
2001
2171
  /**
2002
2172
  * Delete folder
2003
2173
  * @description Delete a folder from the current workspace. If there are any exams in the folder, they will be moved out of the folder.
@@ -2448,6 +2618,8 @@ interface operations {
2448
2618
  enabled: boolean;
2449
2619
  /** @description Optional instructions to guide AI in grading this question type */
2450
2620
  instructions?: string | string[];
2621
+ /** @description Optional JSONata expression string starting with '=' that evaluates to an array of file URLs (from `answer` and `question`) to attach to the AI grading prompt, so the AI can read files that are part of the answer */
2622
+ fileInputs?: string;
2451
2623
  };
2452
2624
  /** @description Options for response processing */
2453
2625
  responseProcessing?: {
@@ -2516,6 +2688,11 @@ interface operations {
2516
2688
  /** @description Whether this question is excluded from grading. Excluded questions do not count towards the total points or grade of a session, but can still be answered and reviewed. */
2517
2689
  excludeFromGrading?: boolean | null;
2518
2690
  } | null;
2691
+ /** @description Printing configuration for the question */
2692
+ printing?: {
2693
+ /** @description The height of the answer box in print mode, in pixels. */
2694
+ answerBoxHeight?: number;
2695
+ } | null;
2519
2696
  /** @description Tags associated with the question for categorization and search */
2520
2697
  tags?: string[] | null;
2521
2698
  /** @description Optional external ID for the question, used to link to external systems */
@@ -2633,6 +2810,8 @@ interface operations {
2633
2810
  }[];
2634
2811
  /** @description Whether this question type is public and can be used by all users */
2635
2812
  public?: boolean;
2813
+ /** @description Whether this question type is deprecated: existing questions keep working, but no new ones can be added */
2814
+ deprecated?: boolean;
2636
2815
  /** @description Custom translations for this question type */
2637
2816
  translations?: {
2638
2817
  [key: string]: string | {
@@ -2737,35 +2916,30 @@ interface operations {
2737
2916
  requestBody?: never;
2738
2917
  responses: never;
2739
2918
  };
2740
- "library.publishers.items.list": {
2919
+ "library.collections.items.list": {
2741
2920
  parameters: {
2742
2921
  query?: never;
2743
2922
  header?: never;
2744
2923
  path: {
2745
- publisherId: string;
2924
+ collectionId: string;
2746
2925
  };
2747
2926
  cookie?: never;
2748
2927
  };
2749
2928
  requestBody?: never;
2750
2929
  responses: never;
2751
2930
  };
2752
- "library.publishers.items.create": {
2931
+ "library.collections.items.create": {
2753
2932
  parameters: {
2754
2933
  query?: never;
2755
2934
  header?: never;
2756
2935
  path: {
2757
- publisherId: string;
2936
+ collectionId: string;
2758
2937
  };
2759
2938
  cookie?: never;
2760
2939
  };
2761
2940
  requestBody?: {
2762
2941
  content: {
2763
2942
  "application/json": {
2764
- /**
2765
- * @description The type of resource being added to the library. Currently only 'exam' is supported.
2766
- * @constant
2767
- */
2768
- resourceType: "exam";
2769
2943
  /** @description The ID of the resource being added to the library, e.g. `exam_123`. */
2770
2944
  resourceId: string;
2771
2945
  /** @description A publicly visible description of the library item. */
@@ -2778,21 +2952,14 @@ interface operations {
2778
2952
  subject?: string | null;
2779
2953
  /** @description Optional tags, e.g. ['math', 'science']. */
2780
2954
  tags?: string[] | null;
2955
+ metadata?: {
2956
+ [key: string]: string | number | boolean | null;
2957
+ };
2781
2958
  };
2782
2959
  };
2783
2960
  };
2784
2961
  responses: never;
2785
2962
  };
2786
- "library.items.listFeatured": {
2787
- parameters: {
2788
- query?: never;
2789
- header?: never;
2790
- path?: never;
2791
- cookie?: never;
2792
- };
2793
- requestBody?: never;
2794
- responses: never;
2795
- };
2796
2963
  "library.items.delete": {
2797
2964
  parameters: {
2798
2965
  query?: never;
@@ -2819,30 +2986,22 @@ interface operations {
2819
2986
  "application/json": {
2820
2987
  /** @description A publicly visible description of the library item. */
2821
2988
  description?: string;
2822
- /** @description The name of the library item. If not provided, the name of the original resource will be used. */
2823
- name?: string | null;
2989
+ name?: string;
2824
2990
  /** @description The student level associated with the library item. */
2825
2991
  studentLevel?: string | null;
2826
2992
  /** @description The subject associated with the library item. */
2827
2993
  subject?: string | null;
2828
2994
  /** @description Optional tags, e.g. ['math', 'science']. */
2829
2995
  tags?: string[] | null;
2996
+ metadata?: {
2997
+ [key: string]: string | number | boolean | null;
2998
+ };
2830
2999
  };
2831
3000
  };
2832
3001
  };
2833
3002
  responses: never;
2834
3003
  };
2835
- "library.publishers.listFeatured": {
2836
- parameters: {
2837
- query?: never;
2838
- header?: never;
2839
- path?: never;
2840
- cookie?: never;
2841
- };
2842
- requestBody?: never;
2843
- responses: never;
2844
- };
2845
- "library.publishers.listAll": {
3004
+ "library.collections.list": {
2846
3005
  parameters: {
2847
3006
  query?: never;
2848
3007
  header?: never;
@@ -2852,7 +3011,7 @@ interface operations {
2852
3011
  requestBody?: never;
2853
3012
  responses: never;
2854
3013
  };
2855
- "library.publishers.create": {
3014
+ "library.collections.create": {
2856
3015
  parameters: {
2857
3016
  query?: never;
2858
3017
  header?: never;
@@ -2863,48 +3022,38 @@ interface operations {
2863
3022
  content: {
2864
3023
  "application/json": {
2865
3024
  name: string;
2866
- bio?: string;
3025
+ publisherName: string;
3026
+ description?: string;
2867
3027
  /** Format: uri */
2868
3028
  logoImageUrl?: string;
2869
- socialLinks?: {
3029
+ permissions?: {
3030
+ actor: string;
2870
3031
  /** @enum {string} */
2871
- type: "facebook" | "instagram" | "website" | "tiktok" | "youtube";
2872
- /** Format: uri */
2873
- href: string;
2874
- }[];
3032
+ role: "owner" | "manager" | "editor" | "viewer" | "participant";
3033
+ }[] | null;
2875
3034
  };
2876
3035
  };
2877
3036
  };
2878
3037
  responses: never;
2879
3038
  };
2880
- "library.publishers.listMine": {
2881
- parameters: {
2882
- query?: never;
2883
- header?: never;
2884
- path?: never;
2885
- cookie?: never;
2886
- };
2887
- requestBody?: never;
2888
- responses: never;
2889
- };
2890
- "library.publishers.delete": {
3039
+ "library.collections.delete": {
2891
3040
  parameters: {
2892
3041
  query?: never;
2893
3042
  header?: never;
2894
3043
  path: {
2895
- publisherId: string;
3044
+ collectionId: string;
2896
3045
  };
2897
3046
  cookie?: never;
2898
3047
  };
2899
3048
  requestBody?: never;
2900
3049
  responses: never;
2901
3050
  };
2902
- "library.publishers.update": {
3051
+ "library.collections.update": {
2903
3052
  parameters: {
2904
3053
  query?: never;
2905
3054
  header?: never;
2906
3055
  path: {
2907
- publisherId: string;
3056
+ collectionId: string;
2908
3057
  };
2909
3058
  cookie?: never;
2910
3059
  };
@@ -2912,15 +3061,10 @@ interface operations {
2912
3061
  content: {
2913
3062
  "application/json": {
2914
3063
  name?: string;
2915
- bio?: string;
3064
+ publisherName?: string;
3065
+ description?: string;
2916
3066
  /** Format: uri */
2917
3067
  logoImageUrl?: string;
2918
- socialLinks?: {
2919
- /** @enum {string} */
2920
- type: "facebook" | "instagram" | "website" | "tiktok" | "youtube";
2921
- /** Format: uri */
2922
- href: string;
2923
- }[];
2924
3068
  };
2925
3069
  };
2926
3070
  };
@@ -3463,7 +3607,15 @@ interface operations {
3463
3607
  };
3464
3608
  cookie?: never;
3465
3609
  };
3466
- requestBody?: never;
3610
+ requestBody?: {
3611
+ content: {
3612
+ "application/json": {
3613
+ /** Format: uri */
3614
+ image: string;
3615
+ questionId?: string | null;
3616
+ };
3617
+ };
3618
+ };
3467
3619
  responses: never;
3468
3620
  };
3469
3621
  "exams.sessions.releaseGrades": {
@@ -3959,6 +4111,11 @@ interface operations {
3959
4111
  /** @description Whether this question is excluded from grading. Excluded questions do not count towards the total points or grade of a session, but can still be answered and reviewed. */
3960
4112
  excludeFromGrading?: boolean | null;
3961
4113
  };
4114
+ /** @description Printing configuration to merge into the question's existing printing. */
4115
+ printing?: {
4116
+ /** @description The height of the answer box in print mode, in pixels. */
4117
+ answerBoxHeight?: number;
4118
+ };
3962
4119
  };
3963
4120
  };
3964
4121
  };
@@ -4172,6 +4329,11 @@ interface operations {
4172
4329
  /** @description Whether this question is excluded from grading. Excluded questions do not count towards the total points or grade of a session, but can still be answered and reviewed. */
4173
4330
  excludeFromGrading?: boolean | null;
4174
4331
  } | null;
4332
+ /** @description Printing configuration for the question */
4333
+ printing?: {
4334
+ /** @description The height of the answer box in print mode, in pixels. */
4335
+ answerBoxHeight?: number;
4336
+ } | null;
4175
4337
  /** @description Tags associated with the question for categorization and search */
4176
4338
  tags?: string[] | null;
4177
4339
  /** @description Optional external ID for the question, used to link to external systems */
@@ -4228,18 +4390,6 @@ interface operations {
4228
4390
  requestBody?: never;
4229
4391
  responses: never;
4230
4392
  };
4231
- "postExams:id": {
4232
- parameters: {
4233
- query?: never;
4234
- header?: never;
4235
- path: {
4236
- id: string;
4237
- };
4238
- cookie?: never;
4239
- };
4240
- requestBody?: never;
4241
- responses: never;
4242
- };
4243
4393
  "exams.delete": {
4244
4394
  parameters: {
4245
4395
  query?: never;
@@ -4331,6 +4481,91 @@ interface operations {
4331
4481
  requestBody?: never;
4332
4482
  responses: never;
4333
4483
  };
4484
+ "orgs.list": {
4485
+ parameters: {
4486
+ query?: {
4487
+ /** @description Whether to include organizations the user can join or has a pending join request for. */
4488
+ includeUnconfirmed?: "true" | "false";
4489
+ };
4490
+ header?: never;
4491
+ path?: never;
4492
+ cookie?: never;
4493
+ };
4494
+ requestBody?: never;
4495
+ responses: {
4496
+ /** @description A list of organizations the authenticated user has access to. */
4497
+ 200: {
4498
+ headers: {
4499
+ [name: string]: unknown;
4500
+ };
4501
+ content: {
4502
+ "application/json": {
4503
+ id: string;
4504
+ name: string;
4505
+ /** @enum {string} */
4506
+ status: "approved" | "pending" | "suggested" | "rejected";
4507
+ /** @enum {string} */
4508
+ joinPolicy?: "request" | "auto";
4509
+ logoImageUrl?: string;
4510
+ /** @enum {string} */
4511
+ plan?: "free" | "basic" | "pro" | "enterprise";
4512
+ flags: {
4513
+ [key: string]: unknown;
4514
+ };
4515
+ }[];
4516
+ };
4517
+ };
4518
+ };
4519
+ };
4520
+ "orgs.create": {
4521
+ parameters: {
4522
+ query?: never;
4523
+ header?: never;
4524
+ path?: never;
4525
+ cookie?: never;
4526
+ };
4527
+ requestBody?: {
4528
+ content: {
4529
+ "application/json": {
4530
+ /** @description Name for the workspace. If left empty, a default name will be assigned based on the signed-in user. */
4531
+ name?: string;
4532
+ };
4533
+ };
4534
+ };
4535
+ responses: never;
4536
+ };
4537
+ "orgs.join": {
4538
+ parameters: {
4539
+ query?: never;
4540
+ header?: never;
4541
+ path: {
4542
+ id: string;
4543
+ };
4544
+ cookie?: never;
4545
+ };
4546
+ requestBody?: never;
4547
+ responses: never;
4548
+ };
4549
+ "search.tokens.get": {
4550
+ parameters: {
4551
+ query?: never;
4552
+ header?: never;
4553
+ path?: never;
4554
+ cookie?: never;
4555
+ };
4556
+ requestBody?: never;
4557
+ responses: never;
4558
+ };
4559
+ "search.tokens.get-public": {
4560
+ parameters: {
4561
+ query?: never;
4562
+ header?: never;
4563
+ path?: never;
4564
+ cookie?: never;
4565
+ };
4566
+ requestBody?: never;
4567
+ responses: never;
4568
+ };
4334
4569
  "me.get": {
4335
4570
  parameters: {
4336
4571
  query?: never;
@@ -4362,6 +4597,26 @@ interface operations {
4362
4597
  };
4363
4598
  responses: never;
4364
4599
  };
4600
+ "me.updateEmail": {
4601
+ parameters: {
4602
+ query?: never;
4603
+ header?: never;
4604
+ path?: never;
4605
+ cookie?: never;
4606
+ };
4607
+ requestBody?: {
4608
+ content: {
4609
+ "application/json": {
4610
+ /**
4611
+ * Format: email
4612
+ * @description The new email address to sign in with
4613
+ */
4614
+ email: string;
4615
+ };
4616
+ };
4617
+ };
4618
+ responses: never;
4619
+ };
4365
4620
  "me.twoFactor.get": {
4366
4621
  parameters: {
4367
4622
  query?: never;
@@ -4379,61 +4634,238 @@ interface operations {
4379
4634
  path?: never;
4380
4635
  cookie?: never;
4381
4636
  };
4382
- requestBody?: never;
4637
+ requestBody?: never;
4638
+ responses: never;
4639
+ };
4640
+ "me.twoFactor.disable": {
4641
+ parameters: {
4642
+ query?: never;
4643
+ header?: never;
4644
+ path?: never;
4645
+ cookie?: never;
4646
+ };
4647
+ requestBody?: never;
4648
+ responses: never;
4649
+ };
4650
+ "media.upload": {
4651
+ parameters: {
4652
+ query?: {
4653
+ /** @description Original attachment filename */
4654
+ filename?: string;
4655
+ /** @description Category of file, used for grouping */
4656
+ type?: string;
4657
+ /** @description MIME type of the attachment */
4658
+ contentType?: string;
4659
+ };
4660
+ header?: never;
4661
+ path?: never;
4662
+ cookie?: never;
4663
+ };
4664
+ requestBody?: never;
4665
+ responses: {
4666
+ 200: {
4667
+ headers: {
4668
+ [name: string]: unknown;
4669
+ };
4670
+ content: {
4671
+ "application/json": {
4672
+ /** Format: uri */
4673
+ uploadUrl?: string;
4674
+ /** Format: uri */
4675
+ publicUrl?: string;
4676
+ };
4677
+ };
4678
+ };
4679
+ };
4680
+ };
4681
+ "org.get": {
4682
+ parameters: {
4683
+ query?: never;
4684
+ header?: never;
4685
+ path?: never;
4686
+ cookie?: never;
4687
+ };
4688
+ requestBody?: never;
4689
+ responses: never;
4690
+ };
4691
+ "org.delete": {
4692
+ parameters: {
4693
+ query?: never;
4694
+ header?: never;
4695
+ path?: never;
4696
+ cookie?: never;
4697
+ };
4698
+ requestBody?: never;
4699
+ responses: never;
4700
+ };
4701
+ "org.update": {
4702
+ parameters: {
4703
+ query?: never;
4704
+ header?: never;
4705
+ path?: never;
4706
+ cookie?: never;
4707
+ };
4708
+ requestBody?: {
4709
+ content: {
4710
+ "application/json": {
4711
+ name?: string;
4712
+ logoImageUrl?: string;
4713
+ menuColor?: string;
4714
+ accentColor?: string;
4715
+ settings?: {
4716
+ /** @description Whether users can only see other users in the same groups as them. */
4717
+ restrictGroupVisibility?: boolean;
4718
+ /** @description Whether the organization blocks public link sharing. */
4719
+ sharingBlockPublic?: boolean;
4720
+ /** @description Whether the organization blocks teachers from inviting new users. */
4721
+ sharingBlockTeachersInvitingUsers?: boolean;
4722
+ /** @description Whether members signing in with a password must use two-factor authentication. */
4723
+ requireTwoFactor?: boolean;
4724
+ /**
4725
+ * @description Jurisdiction the organization's AI processing is confined to. Defaults to 'global'.
4726
+ * @enum {string}
4727
+ */
4728
+ aiRegion?: "global" | "eu";
4729
+ };
4730
+ };
4731
+ };
4732
+ };
4733
+ responses: never;
4734
+ };
4735
+ "org.limits": {
4736
+ parameters: {
4737
+ query?: never;
4738
+ header?: never;
4739
+ path?: never;
4740
+ cookie?: never;
4741
+ };
4742
+ requestBody?: never;
4743
+ responses: {
4744
+ /** @description Organization limits */
4745
+ 200: {
4746
+ headers: {
4747
+ [name: string]: unknown;
4748
+ };
4749
+ content: {
4750
+ "application/json": {
4751
+ /** @enum {string} */
4752
+ type: "daily-ai-credits" | "max-exams" | "max-practice-spaces";
4753
+ currentPercentage: number;
4754
+ warnThreshold: number;
4755
+ reached: boolean;
4756
+ }[];
4757
+ };
4758
+ };
4759
+ };
4760
+ };
4761
+ "org.customDomain.get": {
4762
+ parameters: {
4763
+ query?: never;
4764
+ header?: never;
4765
+ path?: never;
4766
+ cookie?: never;
4767
+ };
4768
+ requestBody?: never;
4769
+ responses: never;
4770
+ };
4771
+ "org.customDomain.update": {
4772
+ parameters: {
4773
+ query?: never;
4774
+ header?: never;
4775
+ path?: never;
4776
+ cookie?: never;
4777
+ };
4778
+ requestBody?: {
4779
+ content: {
4780
+ "application/json": {
4781
+ customDomain?: string | null;
4782
+ };
4783
+ };
4784
+ };
4785
+ responses: never;
4786
+ };
4787
+ "org.emailDomains.list": {
4788
+ parameters: {
4789
+ query?: never;
4790
+ header?: never;
4791
+ path?: never;
4792
+ cookie?: never;
4793
+ };
4794
+ requestBody?: never;
4795
+ responses: never;
4796
+ };
4797
+ "org.emailDomains.create": {
4798
+ parameters: {
4799
+ query?: never;
4800
+ header?: never;
4801
+ path?: never;
4802
+ cookie?: never;
4803
+ };
4804
+ requestBody?: {
4805
+ content: {
4806
+ "application/json": {
4807
+ domain: string;
4808
+ /** @enum {string} */
4809
+ joinPolicy: "request" | "auto";
4810
+ /**
4811
+ * @default teacher
4812
+ * @enum {string}
4813
+ */
4814
+ autoJoinRole?: "teacher" | "student";
4815
+ };
4816
+ };
4817
+ };
4383
4818
  responses: never;
4384
4819
  };
4385
- "me.twoFactor.disable": {
4820
+ "org.emailDomains.delete": {
4386
4821
  parameters: {
4387
4822
  query?: never;
4388
4823
  header?: never;
4389
- path?: never;
4824
+ path: {
4825
+ domain: string;
4826
+ };
4390
4827
  cookie?: never;
4391
4828
  };
4392
4829
  requestBody?: never;
4393
4830
  responses: never;
4394
4831
  };
4395
- "media.upload": {
4832
+ "org.emailDomains.update": {
4396
4833
  parameters: {
4397
- query?: {
4398
- /** @description Original attachment filename */
4399
- filename?: string;
4400
- /** @description Category of file, used for grouping */
4401
- type?: string;
4402
- /** @description MIME type of the attachment */
4403
- contentType?: string;
4404
- };
4834
+ query?: never;
4405
4835
  header?: never;
4406
- path?: never;
4836
+ path: {
4837
+ domain: string;
4838
+ };
4407
4839
  cookie?: never;
4408
4840
  };
4409
- requestBody?: never;
4410
- responses: {
4411
- 200: {
4412
- headers: {
4413
- [name: string]: unknown;
4414
- };
4415
- content: {
4416
- "application/json": {
4417
- /** Format: uri */
4418
- uploadUrl?: string;
4419
- /** Format: uri */
4420
- publicUrl?: string;
4421
- };
4841
+ requestBody?: {
4842
+ content: {
4843
+ "application/json": {
4844
+ /** @enum {string} */
4845
+ joinPolicy: "request" | "auto";
4846
+ /**
4847
+ * @default teacher
4848
+ * @enum {string}
4849
+ */
4850
+ autoJoinRole?: "teacher" | "student";
4422
4851
  };
4423
4852
  };
4424
4853
  };
4854
+ responses: never;
4425
4855
  };
4426
- "org.get": {
4856
+ "org.emailDomains.verify": {
4427
4857
  parameters: {
4428
4858
  query?: never;
4429
4859
  header?: never;
4430
- path?: never;
4860
+ path: {
4861
+ domain: string;
4862
+ };
4431
4863
  cookie?: never;
4432
4864
  };
4433
4865
  requestBody?: never;
4434
4866
  responses: never;
4435
4867
  };
4436
- "org.delete": {
4868
+ "org.identityProvider.get": {
4437
4869
  parameters: {
4438
4870
  query?: never;
4439
4871
  header?: never;
@@ -4443,7 +4875,7 @@ interface operations {
4443
4875
  requestBody?: never;
4444
4876
  responses: never;
4445
4877
  };
4446
- "org.update": {
4878
+ "org.identityProvider.update": {
4447
4879
  parameters: {
4448
4880
  query?: never;
4449
4881
  header?: never;
@@ -4453,26 +4885,30 @@ interface operations {
4453
4885
  requestBody?: {
4454
4886
  content: {
4455
4887
  "application/json": {
4456
- name?: string;
4457
- logoImageUrl?: string;
4458
- menuColor?: string;
4459
- accentColor?: string;
4460
- settings?: {
4461
- /** @description Whether users can only see other users in the same groups as them. */
4462
- restrictGroupVisibility?: boolean;
4463
- /** @description Whether the organization blocks public link sharing. */
4464
- sharingBlockPublic?: boolean;
4465
- /** @description Whether the organization blocks teachers from inviting new users. */
4466
- sharingBlockTeachersInvitingUsers?: boolean;
4467
- /** @description Whether members signing in with a password must use two-factor authentication. */
4468
- requireTwoFactor?: boolean;
4888
+ /** @constant */
4889
+ providerType: "google";
4890
+ domain?: string | null;
4891
+ } | {
4892
+ /** @constant */
4893
+ providerType: "entree";
4894
+ externalId: string;
4895
+ } | {
4896
+ /** @constant */
4897
+ providerType: "oidc";
4898
+ oidc: {
4899
+ /** Format: uri */
4900
+ issuer: string;
4901
+ clientId: string;
4902
+ clientSecret?: string;
4903
+ /** @default openid profile email */
4904
+ scopes?: string;
4469
4905
  };
4470
4906
  };
4471
4907
  };
4472
4908
  };
4473
4909
  responses: never;
4474
4910
  };
4475
- "org.limits": {
4911
+ "org.identityProvider.delete": {
4476
4912
  parameters: {
4477
4913
  query?: never;
4478
4914
  header?: never;
@@ -4482,7 +4918,7 @@ interface operations {
4482
4918
  requestBody?: never;
4483
4919
  responses: never;
4484
4920
  };
4485
- "org.customDomain.get": {
4921
+ "org.joinRequests.list": {
4486
4922
  parameters: {
4487
4923
  query?: never;
4488
4924
  header?: never;
@@ -4492,48 +4928,37 @@ interface operations {
4492
4928
  requestBody?: never;
4493
4929
  responses: never;
4494
4930
  };
4495
- "org.customDomain.update": {
4931
+ "org.joinRequests.approve": {
4496
4932
  parameters: {
4497
4933
  query?: never;
4498
4934
  header?: never;
4499
- path?: never;
4935
+ path: {
4936
+ userId: string;
4937
+ };
4500
4938
  cookie?: never;
4501
4939
  };
4502
4940
  requestBody?: {
4503
4941
  content: {
4504
4942
  "application/json": {
4505
- customDomain?: string | null;
4943
+ /** @enum {string} */
4944
+ role: "student" | "teacher" | "admin";
4506
4945
  };
4507
4946
  };
4508
4947
  };
4509
4948
  responses: never;
4510
4949
  };
4511
- "orgs.list": {
4950
+ "org.joinRequests.reject": {
4512
4951
  parameters: {
4513
4952
  query?: never;
4514
4953
  header?: never;
4515
- path?: never;
4954
+ path: {
4955
+ userId: string;
4956
+ };
4516
4957
  cookie?: never;
4517
4958
  };
4518
4959
  requestBody?: never;
4519
4960
  responses: never;
4520
4961
  };
4521
- "orgs.create": {
4522
- parameters: {
4523
- query?: never;
4524
- header?: never;
4525
- path?: never;
4526
- cookie?: never;
4527
- };
4528
- requestBody?: {
4529
- content: {
4530
- "application/json": {
4531
- name: string;
4532
- };
4533
- };
4534
- };
4535
- responses: never;
4536
- };
4537
4962
  "audit-logs.list": {
4538
4963
  parameters: {
4539
4964
  query?: {
@@ -4806,7 +5231,7 @@ interface operations {
4806
5231
  /** Format: uri */
4807
5232
  avatar?: string;
4808
5233
  /** @enum {string} */
4809
- type: "user" | "group" | "org";
5234
+ type: "user" | "group" | "org" | "public";
4810
5235
  /** @enum {string} */
4811
5236
  orgRole?: "owner" | "admin" | "teacher" | "student" | "member";
4812
5237
  };
@@ -4851,7 +5276,7 @@ interface operations {
4851
5276
  requestBody?: {
4852
5277
  content: {
4853
5278
  "application/json": {
4854
- /** @description The ID of the actor to assign the permission to, e.g. `user_1234`, `group_1234` or `org_1234`. */
5279
+ /** @description The ID of the actor to assign the permission to, e.g. `user_1234`, `group_1234`, `org_1234` or `public`. */
4855
5280
  actor: string;
4856
5281
  /** @enum {string} */
4857
5282
  role: "owner" | "manager" | "editor" | "viewer" | "participant";
@@ -4885,7 +5310,7 @@ interface operations {
4885
5310
  /** Format: uri */
4886
5311
  avatar?: string;
4887
5312
  /** @enum {string} */
4888
- type: "user" | "group" | "org";
5313
+ type: "user" | "group" | "org" | "public";
4889
5314
  /** @enum {string} */
4890
5315
  orgRole?: "owner" | "admin" | "teacher" | "student" | "member";
4891
5316
  };
@@ -4923,7 +5348,7 @@ interface operations {
4923
5348
  header?: never;
4924
5349
  path: {
4925
5350
  /** @description The ID of the actor to check role for, e.g. `user_abcd`. */
4926
- actor: ((string) | "me") | string;
5351
+ actor: (((string) | "me") | "public") | string;
4927
5352
  /** @description The ID of the resource to check role for, e.g. `exam_1234`. */
4928
5353
  resource: string;
4929
5354
  };
@@ -4944,7 +5369,7 @@ interface operations {
4944
5369
  /** Format: uri */
4945
5370
  avatar?: string;
4946
5371
  /** @enum {string} */
4947
- type: "user" | "group" | "org";
5372
+ type: "user" | "group" | "org" | "public";
4948
5373
  /** @enum {string} */
4949
5374
  orgRole?: "owner" | "admin" | "teacher" | "student" | "member";
4950
5375
  };
@@ -4989,7 +5414,7 @@ interface operations {
4989
5414
  header?: never;
4990
5415
  path: {
4991
5416
  resource: string;
4992
- actor: (string) | string;
5417
+ actor: ((string) | string) | "public";
4993
5418
  };
4994
5419
  cookie?: never;
4995
5420
  };
@@ -5548,6 +5973,7 @@ interface operations {
5548
5973
  /** @enum {string} */
5549
5974
  processingStatus?: "pending" | "converting" | "summarizing" | "extracting_topics" | "extracting_facts" | "completed" | "failed";
5550
5975
  numberOfPages?: number;
5976
+ tags?: string[];
5551
5977
  chapterMarkers?: {
5552
5978
  title: string;
5553
5979
  startPage: number;
@@ -5601,6 +6027,8 @@ interface operations {
5601
6027
  expires?: string;
5602
6028
  /** @description An optional external identifier for the source material. */
5603
6029
  externalId?: string;
6030
+ /** @description Optional tags for the source material */
6031
+ tags?: string[];
5604
6032
  } & {
5605
6033
  [key: string]: unknown;
5606
6034
  };
@@ -5642,6 +6070,7 @@ interface operations {
5642
6070
  /** @enum {string} */
5643
6071
  processingStatus?: "pending" | "converting" | "summarizing" | "extracting_topics" | "extracting_facts" | "completed" | "failed";
5644
6072
  numberOfPages?: number;
6073
+ tags?: string[];
5645
6074
  chapterMarkers?: {
5646
6075
  title: string;
5647
6076
  startPage: number;
@@ -5676,6 +6105,25 @@ interface operations {
5676
6105
  };
5677
6106
  };
5678
6107
  };
6108
+ "sourceMaterials.listTags": {
6109
+ parameters: {
6110
+ query?: never;
6111
+ header?: never;
6112
+ path?: never;
6113
+ cookie?: never;
6114
+ };
6115
+ requestBody?: never;
6116
+ responses: {
6117
+ 200: {
6118
+ headers: {
6119
+ [name: string]: unknown;
6120
+ };
6121
+ content: {
6122
+ "application/json": string[];
6123
+ };
6124
+ };
6125
+ };
6126
+ };
5679
6127
  "sourceMaterials.get": {
5680
6128
  parameters: {
5681
6129
  query?: never;
@@ -5722,6 +6170,7 @@ interface operations {
5722
6170
  /** @enum {string} */
5723
6171
  processingStatus?: "pending" | "converting" | "summarizing" | "extracting_topics" | "extracting_facts" | "completed" | "failed";
5724
6172
  numberOfPages?: number;
6173
+ tags?: string[];
5725
6174
  chapterMarkers?: {
5726
6175
  title: string;
5727
6176
  startPage: number;
@@ -5782,6 +6231,8 @@ interface operations {
5782
6231
  "application/json": {
5783
6232
  /** @description The new name of the source material. */
5784
6233
  name?: string;
6234
+ /** @description Optional tags for the source material */
6235
+ tags?: string[];
5785
6236
  };
5786
6237
  };
5787
6238
  };
@@ -5805,6 +6256,8 @@ interface operations {
5805
6256
  endPage: number;
5806
6257
  /** @description Optional name for the new source material */
5807
6258
  name?: string;
6259
+ /** @description Optional tags for the source material */
6260
+ tags?: string[];
5808
6261
  };
5809
6262
  };
5810
6263
  };
@@ -5844,6 +6297,7 @@ interface operations {
5844
6297
  /** @enum {string} */
5845
6298
  processingStatus?: "pending" | "converting" | "summarizing" | "extracting_topics" | "extracting_facts" | "completed" | "failed";
5846
6299
  numberOfPages?: number;
6300
+ tags?: string[];
5847
6301
  chapterMarkers?: {
5848
6302
  title: string;
5849
6303
  startPage: number;
@@ -5919,7 +6373,7 @@ interface operations {
5919
6373
  };
5920
6374
  responses: never;
5921
6375
  };
5922
- "postFolders:id": {
6376
+ "folders.get": {
5923
6377
  parameters: {
5924
6378
  query?: never;
5925
6379
  header?: never;
@@ -5928,13 +6382,7 @@ interface operations {
5928
6382
  };
5929
6383
  cookie?: never;
5930
6384
  };
5931
- requestBody?: {
5932
- content: {
5933
- "application/json": {
5934
- name: string;
5935
- };
5936
- };
5937
- };
6385
+ requestBody?: never;
5938
6386
  responses: never;
5939
6387
  };
5940
6388
  "folders.delete": {
@@ -6374,6 +6822,11 @@ interface operations {
6374
6822
  /** @description Whether this question is excluded from grading. Excluded questions do not count towards the total points or grade of a session, but can still be answered and reviewed. */
6375
6823
  excludeFromGrading?: boolean | null;
6376
6824
  } | null;
6825
+ /** @description Printing configuration for the question */
6826
+ printing?: {
6827
+ /** @description The height of the answer box in print mode, in pixels. */
6828
+ answerBoxHeight?: number;
6829
+ } | null;
6377
6830
  /** @description Tags associated with the question for categorization and search */
6378
6831
  tags?: string[] | null;
6379
6832
  /** @description Optional external ID for the question, used to link to external systems */
@@ -6472,6 +6925,11 @@ interface operations {
6472
6925
  /** @description Whether this question is excluded from grading. Excluded questions do not count towards the total points or grade of a session, but can still be answered and reviewed. */
6473
6926
  excludeFromGrading?: boolean | null;
6474
6927
  } | null;
6928
+ /** @description Printing configuration for the question */
6929
+ printing?: {
6930
+ /** @description The height of the answer box in print mode, in pixels. */
6931
+ answerBoxHeight?: number;
6932
+ } | null;
6475
6933
  /** @description Tags associated with the question for categorization and search */
6476
6934
  tags?: string[] | null;
6477
6935
  /** @description Optional external ID for the question, used to link to external systems */
@@ -6769,11 +7227,11 @@ interface _PathOverrides {
6769
7227
  "questionTypes.disable": {
6770
7228
  questionTypeId: string;
6771
7229
  };
6772
- "library.publishers.items.list": {
6773
- publisherId: string;
7230
+ "library.collections.items.list": {
7231
+ collectionId: string;
6774
7232
  };
6775
- "library.publishers.items.create": {
6776
- publisherId: string;
7233
+ "library.collections.items.create": {
7234
+ collectionId: string;
6777
7235
  };
6778
7236
  "library.items.update": {
6779
7237
  itemId: string;
@@ -6781,11 +7239,11 @@ interface _PathOverrides {
6781
7239
  "library.items.delete": {
6782
7240
  itemId: string;
6783
7241
  };
6784
- "library.publishers.update": {
6785
- publisherId: string;
7242
+ "library.collections.update": {
7243
+ collectionId: string;
6786
7244
  };
6787
- "library.publishers.delete": {
6788
- publisherId: string;
7245
+ "library.collections.delete": {
7246
+ collectionId: string;
6789
7247
  };
6790
7248
  "embedSessions.get": {
6791
7249
  id: string;
@@ -6914,9 +7372,6 @@ interface _PathOverrides {
6914
7372
  "exams.update": {
6915
7373
  id: string;
6916
7374
  };
6917
- "postExams:id": {
6918
- id: string;
6919
- };
6920
7375
  "exams.delete": {
6921
7376
  id: string;
6922
7377
  };
@@ -6935,6 +7390,24 @@ interface _PathOverrides {
6935
7390
  "exams.getContextSuggestions": {
6936
7391
  examId: string;
6937
7392
  };
7393
+ "orgs.join": {
7394
+ orgId: string;
7395
+ };
7396
+ "org.emailDomains.update": {
7397
+ domain: string;
7398
+ };
7399
+ "org.emailDomains.delete": {
7400
+ domain: string;
7401
+ };
7402
+ "org.emailDomains.verify": {
7403
+ domain: string;
7404
+ };
7405
+ "org.joinRequests.approve": {
7406
+ userId: string;
7407
+ };
7408
+ "org.joinRequests.reject": {
7409
+ userId: string;
7410
+ };
6938
7411
  "attributes.update": {
6939
7412
  id: string;
6940
7413
  };
@@ -7035,10 +7508,10 @@ interface _PathOverrides {
7035
7508
  "sourceMaterials.slice": {
7036
7509
  sourceMaterialId: string;
7037
7510
  };
7038
- "folders.update": {
7511
+ "folders.get": {
7039
7512
  id: string;
7040
7513
  };
7041
- "postFolders:id": {
7514
+ "folders.update": {
7042
7515
  id: string;
7043
7516
  };
7044
7517
  "folders.delete": {
@@ -7199,96 +7672,72 @@ declare class QuestionTypes {
7199
7672
  disable(questionTypeId: string, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.disable">>;
7200
7673
  disable(args: Args<"questionTypes.disable">, options?: ExamplaryRequestOptions): Promise<Response<"questionTypes.disable">>;
7201
7674
  }
7202
- declare class LibraryPublishersItems {
7675
+ declare class LibraryCollectionsItems {
7203
7676
  private readonly ctx;
7204
7677
  constructor(ctx: ClientContext);
7205
7678
  /**
7206
- * List items by publisher
7679
+ * List items by collection
7207
7680
  *
7208
- * Lists all library items for the specified publisher profile.
7681
+ * Lists all library items in the specified collection. Requires at least viewer access to the collection.
7209
7682
  *
7210
- * API endpoint: `GET /library/publishers/{publisherId}/items`
7683
+ * API endpoint: `GET /library/collections/{collectionId}/items`
7211
7684
  */
7212
- list(publisherId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.list">>;
7213
- list(args: Args<"library.publishers.items.list">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.list">>;
7685
+ list(collectionId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.items.list">>;
7686
+ list(args: Args<"library.collections.items.list">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.items.list">>;
7214
7687
  /**
7215
7688
  * Create library item
7216
7689
  *
7217
- * Adds an item to the library. Only the publisher owner can add items to their publisher profile.
7690
+ * Adds an item to a collection. Requires at least editor access to both the collection and the resource being added.
7218
7691
  *
7219
- * API endpoint: `POST /library/publishers/{publisherId}/items`
7692
+ * API endpoint: `POST /library/collections/{collectionId}/items`
7220
7693
  */
7221
- create(args: Args<"library.publishers.items.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.items.create">>;
7694
+ create(args: Args<"library.collections.items.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.items.create">>;
7222
7695
  }
7223
- declare class LibraryPublishers {
7696
+ declare class LibraryCollections {
7224
7697
  private readonly ctx;
7225
- readonly items: LibraryPublishersItems;
7698
+ readonly items: LibraryCollectionsItems;
7226
7699
  constructor(ctx: ClientContext);
7227
7700
  /**
7228
- * List featured publishers
7229
- *
7230
- * Lists all library publishers that are marked as featured.
7231
- *
7232
- * API endpoint: `GET /library/publishers/featured`
7233
- */
7234
- listFeatured(args?: Args<"library.publishers.listFeatured">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listFeatured">>;
7235
- /**
7236
- * List all publishers
7237
- *
7238
- * Lists all library publisher profiles.
7239
- *
7240
- * API endpoint: `GET /library/publishers`
7241
- */
7242
- listAll(args?: Args<"library.publishers.listAll">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listAll">>;
7243
- /**
7244
- * Create publisher
7701
+ * List collections
7245
7702
  *
7246
- * Creates a new library publisher profile.
7703
+ * Lists the library collections the current user has access to.
7247
7704
  *
7248
- * API endpoint: `POST /library/publishers`
7705
+ * API endpoint: `GET /library/collections`
7249
7706
  */
7250
- create(args?: Args<"library.publishers.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.create">>;
7707
+ list(args?: Args<"library.collections.list">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.list">>;
7251
7708
  /**
7252
- * List my publishers
7709
+ * Create collection
7253
7710
  *
7254
- * Lists all library publisher profiles created by the authenticated user.
7711
+ * Creates a new library collection. The creator becomes its owner.
7255
7712
  *
7256
- * API endpoint: `GET /library/publishers/mine`
7713
+ * API endpoint: `POST /library/collections`
7257
7714
  */
7258
- listMine(args?: Args<"library.publishers.listMine">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.listMine">>;
7715
+ create(args?: Args<"library.collections.create">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.create">>;
7259
7716
  /**
7260
- * Update publisher
7717
+ * Update collection
7261
7718
  *
7262
- * Updates a library publisher profile. Only the owner can update their publisher profile.
7719
+ * Updates a library collection. Requires at least manager access to the collection.
7263
7720
  *
7264
- * API endpoint: `PATCH /library/publishers/{publisherId}`
7721
+ * API endpoint: `PATCH /library/collections/{collectionId}`
7265
7722
  */
7266
- update(args: Args<"library.publishers.update">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.update">>;
7723
+ update(args: Args<"library.collections.update">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.update">>;
7267
7724
  /**
7268
- * Delete publisher
7725
+ * Delete collection
7269
7726
  *
7270
- * Deletes a library publisher profile. Only the owner can delete their publisher profile.
7727
+ * Deletes a library collection. Only the collection owner can delete it.
7271
7728
  *
7272
- * API endpoint: `DELETE /library/publishers/{publisherId}`
7729
+ * API endpoint: `DELETE /library/collections/{collectionId}`
7273
7730
  */
7274
- delete(publisherId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.delete">>;
7275
- delete(args: Args<"library.publishers.delete">, options?: ExamplaryRequestOptions): Promise<Response<"library.publishers.delete">>;
7731
+ delete(collectionId: string, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.delete">>;
7732
+ delete(args: Args<"library.collections.delete">, options?: ExamplaryRequestOptions): Promise<Response<"library.collections.delete">>;
7276
7733
  }
7277
7734
  declare class LibraryItems {
7278
7735
  private readonly ctx;
7279
7736
  constructor(ctx: ClientContext);
7280
- /**
7281
- * List featured library items
7282
- *
7283
- * Lists all library items that are marked as featured.
7284
- *
7285
- * API endpoint: `GET /library/items/featured`
7286
- */
7287
- listFeatured(args?: Args<"library.items.listFeatured">, options?: ExamplaryRequestOptions): Promise<Response<"library.items.listFeatured">>;
7288
7737
  /**
7289
7738
  * Update library item
7290
7739
  *
7291
- * Updates a library item. Only the publisher owner can update items in their publisher profile.
7740
+ * Updates a library item. Requires at least editor access to the collection it belongs to.
7292
7741
  *
7293
7742
  * API endpoint: `PATCH /library/items/{itemId}`
7294
7743
  */
@@ -7296,7 +7745,7 @@ declare class LibraryItems {
7296
7745
  /**
7297
7746
  * Delete library item
7298
7747
  *
7299
- * Deletes a library item. Only the publisher owner can delete items from their publisher profile.
7748
+ * Deletes a library item. Requires at least editor access to the collection it belongs to.
7300
7749
  *
7301
7750
  * API endpoint: `DELETE /library/items/{itemId}`
7302
7751
  */
@@ -7305,7 +7754,7 @@ declare class LibraryItems {
7305
7754
  }
7306
7755
  declare class Library {
7307
7756
  private readonly ctx;
7308
- readonly publishers: LibraryPublishers;
7757
+ readonly collections: LibraryCollections;
7309
7758
  readonly items: LibraryItems;
7310
7759
  constructor(ctx: ClientContext);
7311
7760
  }
@@ -7423,7 +7872,6 @@ declare class ExamsSessions {
7423
7872
  *
7424
7873
  * API endpoint: `POST /exams/{examId}/sessions/scan`
7425
7874
  */
7426
- scan(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
7427
7875
  scan(args: Args<"exams.sessions.scan">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
7428
7876
  /**
7429
7877
  * Release grades
@@ -7732,6 +8180,60 @@ declare class Exams {
7732
8180
  getContextSuggestions(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.getContextSuggestions">>;
7733
8181
  getContextSuggestions(args: Args<"exams.getContextSuggestions">, options?: ExamplaryRequestOptions): Promise<Response<"exams.getContextSuggestions">>;
7734
8182
  }
8183
+ declare class Orgs {
8184
+ private readonly ctx;
8185
+ constructor(ctx: ClientContext);
8186
+ /**
8187
+ * List all organizations
8188
+ *
8189
+ * Retrieve a list of all organizations the authenticated user has access to. Optionally can also return pending and suggested org memberships.
8190
+ *
8191
+ * API endpoint: `GET /orgs`
8192
+ */
8193
+ list(args?: Args<"orgs.list">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.list">>;
8194
+ /**
8195
+ * Create a new organization
8196
+ *
8197
+ * Create a new workspace to collaborate on resources within. Either specify a name, or pass an empty body to create a default workspace for the user.
8198
+ *
8199
+ * API endpoint: `POST /orgs`
8200
+ */
8201
+ create(args?: Args<"orgs.create">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.create">>;
8202
+ /**
8203
+ * Request to join an organization
8204
+ *
8205
+ * Request to join an existing organization. The request will be reviewed by the organization's administrators or auto-accepted.
8206
+ *
8207
+ * API endpoint: `POST /orgs/{orgId}/join`
8208
+ */
8209
+ join(orgId: string, options?: ExamplaryRequestOptions): Promise<Response<"orgs.join">>;
8210
+ join(args: Args<"orgs.join">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.join">>;
8211
+ }
8212
+ declare class SearchTokens {
8213
+ private readonly ctx;
8214
+ constructor(ctx: ClientContext);
8215
+ /**
8216
+ * Get a search token
8217
+ *
8218
+ * Returns a short-lived, permission-scoped TypeSense search key for the current user, along with the host and collection to query. The key cannot be widened: the filter it carries is enforced by TypeSense.
8219
+ *
8220
+ * API endpoint: `GET /search/tokens`
8221
+ */
8222
+ get(args?: Args<"search.tokens.get">, options?: ExamplaryRequestOptions): Promise<Response<"search.tokens.get">>;
8223
+ /**
8224
+ * Get a search token
8225
+ *
8226
+ * Returns a short-lived, permission-scoped TypeSense search key for the public items.
8227
+ *
8228
+ * API endpoint: `GET /search/tokens/public`
8229
+ */
8230
+ getPublic(args?: Args<"search.tokens.get-public">, options?: ExamplaryRequestOptions): Promise<Response<"search.tokens.get-public">>;
8231
+ }
8232
+ declare class Search {
8233
+ private readonly ctx;
8234
+ readonly tokens: SearchTokens;
8235
+ constructor(ctx: ClientContext);
8236
+ }
7735
8237
  declare class MeTwoFactor {
7736
8238
  private readonly ctx;
7737
8239
  constructor(ctx: ClientContext);
@@ -7780,6 +8282,14 @@ declare class Me {
7780
8282
  * API endpoint: `PATCH /me`
7781
8283
  */
7782
8284
  update(args?: Args<"me.update">, options?: ExamplaryRequestOptions): Promise<Response<"me.update">>;
8285
+ /**
8286
+ * Change my email address
8287
+ *
8288
+ * Send a confirmation link to a new email address. The account only moves to it once that link is opened. Not available in workspaces that manage their members' identities.
8289
+ *
8290
+ * API endpoint: `PATCH /me/email`
8291
+ */
8292
+ updateEmail(args?: Args<"me.updateEmail">, options?: ExamplaryRequestOptions): Promise<Response<"me.updateEmail">>;
7783
8293
  }
7784
8294
  declare class Media {
7785
8295
  private readonly ctx;
@@ -7809,9 +8319,93 @@ declare class OrgCustomDomain {
7809
8319
  */
7810
8320
  update(args?: Args<"org.customDomain.update">, options?: ExamplaryRequestOptions): Promise<Response<"org.customDomain.update">>;
7811
8321
  }
8322
+ declare class OrgEmailDomains {
8323
+ private readonly ctx;
8324
+ constructor(ctx: ClientContext);
8325
+ /**
8326
+ * List verified email domains
8327
+ *
8328
+ * API endpoint: `GET /org/email-domains`
8329
+ */
8330
+ list(args?: Args<"org.emailDomains.list">, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.list">>;
8331
+ /**
8332
+ * Add an email domain to verify
8333
+ *
8334
+ * API endpoint: `POST /org/email-domains`
8335
+ */
8336
+ create(args?: Args<"org.emailDomains.create">, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.create">>;
8337
+ /**
8338
+ * Update an email domain's join settings
8339
+ *
8340
+ * API endpoint: `PATCH /org/email-domains/{domain}`
8341
+ */
8342
+ update(args: Args<"org.emailDomains.update">, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.update">>;
8343
+ /**
8344
+ * Remove a verified email domain
8345
+ *
8346
+ * API endpoint: `DELETE /org/email-domains/{domain}`
8347
+ */
8348
+ delete(domain: string, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.delete">>;
8349
+ delete(args: Args<"org.emailDomains.delete">, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.delete">>;
8350
+ /**
8351
+ * Re-check an email domain's DNS verification record
8352
+ *
8353
+ * API endpoint: `POST /org/email-domains/{domain}/verify`
8354
+ */
8355
+ verify(domain: string, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.verify">>;
8356
+ verify(args: Args<"org.emailDomains.verify">, options?: ExamplaryRequestOptions): Promise<Response<"org.emailDomains.verify">>;
8357
+ }
8358
+ declare class OrgIdentityProvider {
8359
+ private readonly ctx;
8360
+ constructor(ctx: ClientContext);
8361
+ /**
8362
+ * Get single sign-on configuration
8363
+ *
8364
+ * API endpoint: `GET /org/identity-provider`
8365
+ */
8366
+ get(args?: Args<"org.identityProvider.get">, options?: ExamplaryRequestOptions): Promise<Response<"org.identityProvider.get">>;
8367
+ /**
8368
+ * Configure single sign-on
8369
+ *
8370
+ * API endpoint: `POST /org/identity-provider`
8371
+ */
8372
+ update(args?: Args<"org.identityProvider.update">, options?: ExamplaryRequestOptions): Promise<Response<"org.identityProvider.update">>;
8373
+ /**
8374
+ * Turn off single sign-on
8375
+ *
8376
+ * API endpoint: `DELETE /org/identity-provider`
8377
+ */
8378
+ delete(args?: Args<"org.identityProvider.delete">, options?: ExamplaryRequestOptions): Promise<Response<"org.identityProvider.delete">>;
8379
+ }
8380
+ declare class OrgJoinRequests {
8381
+ private readonly ctx;
8382
+ constructor(ctx: ClientContext);
8383
+ /**
8384
+ * List pending workspace join requests
8385
+ *
8386
+ * API endpoint: `GET /org/join-requests`
8387
+ */
8388
+ list(args?: Args<"org.joinRequests.list">, options?: ExamplaryRequestOptions): Promise<Response<"org.joinRequests.list">>;
8389
+ /**
8390
+ * Approve a workspace join request
8391
+ *
8392
+ * API endpoint: `POST /org/join-requests/{userId}/approve`
8393
+ */
8394
+ approve(args: Args<"org.joinRequests.approve">, options?: ExamplaryRequestOptions): Promise<Response<"org.joinRequests.approve">>;
8395
+ /**
8396
+ * Reject a workspace join request
8397
+ *
8398
+ * API endpoint: `POST /org/join-requests/{userId}/reject`
8399
+ */
8400
+ reject(userId: string, options?: ExamplaryRequestOptions): Promise<Response<"org.joinRequests.reject">>;
8401
+ reject(args: Args<"org.joinRequests.reject">, options?: ExamplaryRequestOptions): Promise<Response<"org.joinRequests.reject">>;
8402
+ }
7812
8403
  declare class Org {
7813
8404
  private readonly ctx;
7814
8405
  readonly customDomain: OrgCustomDomain;
8406
+ readonly emailDomains: OrgEmailDomains;
8407
+ readonly identityProvider: OrgIdentityProvider;
8408
+ readonly joinRequests: OrgJoinRequests;
7815
8409
  constructor(ctx: ClientContext);
7816
8410
  /**
7817
8411
  * Get organization
@@ -7838,24 +8432,6 @@ declare class Org {
7838
8432
  */
7839
8433
  limits(args?: Args<"org.limits">, options?: ExamplaryRequestOptions): Promise<Response<"org.limits">>;
7840
8434
  }
7841
- declare class Orgs {
7842
- private readonly ctx;
7843
- constructor(ctx: ClientContext);
7844
- /**
7845
- * List all organizations
7846
- *
7847
- * API endpoint: `GET /orgs`
7848
- */
7849
- list(args?: Args<"orgs.list">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.list">>;
7850
- /**
7851
- * Create a new organization
7852
- *
7853
- * Create a new workspace to collaborate with others on exams.
7854
- *
7855
- * API endpoint: `POST /orgs`
7856
- */
7857
- create(args?: Args<"orgs.create">, options?: ExamplaryRequestOptions): Promise<Response<"orgs.create">>;
7858
- }
7859
8435
  declare class AuditLogs {
7860
8436
  private readonly ctx;
7861
8437
  constructor(ctx: ClientContext);
@@ -8267,6 +8843,14 @@ declare class SourceMaterials {
8267
8843
  * API endpoint: `POST /source-materials`
8268
8844
  */
8269
8845
  create(args?: Args<"sourceMaterials.create">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.create">>;
8846
+ /**
8847
+ * List source material tags
8848
+ *
8849
+ * Returns a list of existing tags for the source materials the current user has access to. Useful for filtering, or for presenting autocomplete suggestions.
8850
+ *
8851
+ * API endpoint: `GET /source-materials/tags`
8852
+ */
8853
+ listTags(args?: Args<"sourceMaterials.listTags">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.listTags">>;
8270
8854
  /**
8271
8855
  * Get source material
8272
8856
  *
@@ -8333,6 +8917,15 @@ declare class Folders {
8333
8917
  * API endpoint: `POST /folders`
8334
8918
  */
8335
8919
  create(args?: Args<"folders.create">, options?: ExamplaryRequestOptions): Promise<Response<"folders.create">>;
8920
+ /**
8921
+ * Get folder
8922
+ *
8923
+ * Get a single folder from the current workspace by its ID.
8924
+ *
8925
+ * API endpoint: `GET /folders/{id}`
8926
+ */
8927
+ get(id: string, options?: ExamplaryRequestOptions): Promise<Response<"folders.get">>;
8928
+ get(args: Args<"folders.get">, options?: ExamplaryRequestOptions): Promise<Response<"folders.get">>;
8336
8929
  /**
8337
8930
  * Update folder
8338
8931
  *
@@ -8563,10 +9156,11 @@ declare class Examplary {
8563
9156
  readonly oauth: Oauth;
8564
9157
  readonly embedSessions: EmbedSessions;
8565
9158
  readonly exams: Exams;
9159
+ readonly orgs: Orgs;
9160
+ readonly search: Search;
8566
9161
  readonly me: Me;
8567
9162
  readonly media: Media;
8568
9163
  readonly org: Org;
8569
- readonly orgs: Orgs;
8570
9164
  readonly auditLogs: AuditLogs;
8571
9165
  readonly apiKeys: ApiKeys;
8572
9166
  readonly attributes: Attributes;
@@ -8584,15 +9178,6 @@ declare class Examplary {
8584
9178
  readonly prompts: Prompts;
8585
9179
  readonly jobs: Jobs;
8586
9180
  constructor(options: ExamplaryClientOptions);
8587
- /**
8588
- * API endpoint: `POST /exams/{id}`
8589
- */
8590
- postExamsId(id: string, options?: ExamplaryRequestOptions): Promise<Response<"postExams:id">>;
8591
- postExamsId(args: Args<"postExams:id">, options?: ExamplaryRequestOptions): Promise<Response<"postExams:id">>;
8592
- /**
8593
- * API endpoint: `POST /folders/{id}`
8594
- */
8595
- postFoldersId(args: Args<"postFolders:id">, options?: ExamplaryRequestOptions): Promise<Response<"postFolders:id">>;
8596
9181
  /**
8597
9182
  * Get rubrics
8598
9183
  *