@examplary/sdk 2.7.0 → 2.9.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
@@ -425,6 +425,46 @@ interface paths {
425
425
  patch?: never;
426
426
  trace?: never;
427
427
  };
428
+ "/exams/{id}/sessions/scan-images": {
429
+ parameters: {
430
+ query?: never;
431
+ header?: never;
432
+ path?: never;
433
+ cookie?: never;
434
+ };
435
+ get?: never;
436
+ put?: never;
437
+ /**
438
+ * Scan images for student answers
439
+ * @description Start a background task to extract a student's answers from scanned page images and create a session.
440
+ */
441
+ post: operations["exams.sessions.scanImages"];
442
+ delete?: never;
443
+ options?: never;
444
+ head?: never;
445
+ patch?: never;
446
+ trace?: never;
447
+ };
448
+ "/exams/{id}/sessions/scan-student-name": {
449
+ parameters: {
450
+ query?: never;
451
+ header?: never;
452
+ path?: never;
453
+ cookie?: never;
454
+ };
455
+ get?: never;
456
+ put?: never;
457
+ /**
458
+ * Detect student name from scan
459
+ * @description Start a background task to detect the student name from a scanned page image.
460
+ */
461
+ post: operations["exams.sessions.scanStudentName"];
462
+ delete?: never;
463
+ options?: never;
464
+ head?: never;
465
+ patch?: never;
466
+ trace?: never;
467
+ };
428
468
  "/exams/{id}/sessions/scan-document": {
429
469
  parameters: {
430
470
  query?: never;
@@ -466,7 +506,11 @@ interface paths {
466
506
  delete: operations["exams.sessions.delete"];
467
507
  options?: never;
468
508
  head?: never;
469
- patch?: never;
509
+ /**
510
+ * Update session
511
+ * @description Update an exam session. Currently supports renaming the student, which is not allowed for sessions taken by a signed-in student.
512
+ */
513
+ patch: operations["exams.sessions.update"];
470
514
  trace?: never;
471
515
  };
472
516
  "/exams/{id}/sessions/{sessionId}/feedback": {
@@ -694,7 +738,11 @@ interface paths {
694
738
  delete?: never;
695
739
  options?: never;
696
740
  head?: never;
697
- patch?: never;
741
+ /**
742
+ * Update a question
743
+ * @description Update fields on a single question, such as its scoring configuration. Use `scoring.excludeFromGrading` to exclude a question from grading so it no longer counts towards the total points or grade of a session.
744
+ */
745
+ patch: operations["exams.questions.update"];
698
746
  trace?: never;
699
747
  };
700
748
  "/exams/{id}/questions/{questionId}/generate": {
@@ -814,11 +862,7 @@ interface paths {
814
862
  */
815
863
  get: operations["exams.get"];
816
864
  put?: never;
817
- /**
818
- * Update exam
819
- * @description Update an existing exam.
820
- */
821
- post: operations["exams.update"];
865
+ post: operations["postExams:id"];
822
866
  /**
823
867
  * Delete exam
824
868
  * @description Delete the exam.
@@ -826,7 +870,11 @@ interface paths {
826
870
  delete: operations["exams.delete"];
827
871
  options?: never;
828
872
  head?: never;
829
- patch?: never;
873
+ /**
874
+ * Update exam
875
+ * @description Update an existing exam.
876
+ */
877
+ patch: operations["exams.update"];
830
878
  trace?: never;
831
879
  };
832
880
  "/exams/{id}/duplicate": {
@@ -1552,6 +1600,26 @@ interface paths {
1552
1600
  patch?: never;
1553
1601
  trace?: never;
1554
1602
  };
1603
+ "/practice-spaces/{id}/questions/{questionId}": {
1604
+ parameters: {
1605
+ query?: never;
1606
+ header?: never;
1607
+ path?: never;
1608
+ cookie?: never;
1609
+ };
1610
+ get?: never;
1611
+ put?: never;
1612
+ post?: never;
1613
+ delete?: never;
1614
+ options?: never;
1615
+ head?: never;
1616
+ /**
1617
+ * Update a practice space question
1618
+ * @description Update a specific question in a practice space.
1619
+ */
1620
+ patch: operations["practiceSpaces.updateQuestion"];
1621
+ trace?: never;
1622
+ };
1555
1623
  "/practice-spaces/{id}/students": {
1556
1624
  parameters: {
1557
1625
  query?: never;
@@ -1744,6 +1812,26 @@ interface paths {
1744
1812
  patch?: never;
1745
1813
  trace?: never;
1746
1814
  };
1815
+ "/items": {
1816
+ parameters: {
1817
+ query?: never;
1818
+ header?: never;
1819
+ path?: never;
1820
+ cookie?: never;
1821
+ };
1822
+ /**
1823
+ * List items
1824
+ * @description Get a list of items (tests and practice spaces) within your workspace. Returns everything by default; filter by `type` or `folder`.
1825
+ */
1826
+ get: operations["items.list"];
1827
+ put?: never;
1828
+ post?: never;
1829
+ delete?: never;
1830
+ options?: never;
1831
+ head?: never;
1832
+ patch?: never;
1833
+ trace?: never;
1834
+ };
1747
1835
  "/folders": {
1748
1836
  parameters: {
1749
1837
  query?: never;
@@ -1777,11 +1865,7 @@ interface paths {
1777
1865
  };
1778
1866
  get?: never;
1779
1867
  put?: never;
1780
- /**
1781
- * Update folder
1782
- * @description Update an existing folder in the current workspace.
1783
- */
1784
- post: operations["folders.update"];
1868
+ post: operations["postFolders:id"];
1785
1869
  /**
1786
1870
  * Delete folder
1787
1871
  * @description Delete a folder from the current workspace. If there are any exams in the folder, they will be moved out of the folder.
@@ -1789,7 +1873,11 @@ interface paths {
1789
1873
  delete: operations["folders.delete"];
1790
1874
  options?: never;
1791
1875
  head?: never;
1792
- patch?: never;
1876
+ /**
1877
+ * Update folder
1878
+ * @description Update an existing folder in the current workspace.
1879
+ */
1880
+ patch: operations["folders.update"];
1793
1881
  trace?: never;
1794
1882
  };
1795
1883
  "/groups": {
@@ -1888,6 +1976,54 @@ interface paths {
1888
1976
  patch: operations["groups.updateMember"];
1889
1977
  trace?: never;
1890
1978
  };
1979
+ "/integrations": {
1980
+ parameters: {
1981
+ query?: never;
1982
+ header?: never;
1983
+ path?: never;
1984
+ cookie?: never;
1985
+ };
1986
+ /**
1987
+ * List integrations
1988
+ * @description List all available integrations and whether they are configured for the current workspace. Settings and field metadata are only included for Admin/Owner.
1989
+ */
1990
+ get: operations["integrations.list"];
1991
+ put?: never;
1992
+ post?: never;
1993
+ delete?: never;
1994
+ options?: never;
1995
+ head?: never;
1996
+ patch?: never;
1997
+ trace?: never;
1998
+ };
1999
+ "/integrations/{integrationType}": {
2000
+ parameters: {
2001
+ query?: never;
2002
+ header?: never;
2003
+ path?: never;
2004
+ cookie?: never;
2005
+ };
2006
+ /**
2007
+ * Get integration
2008
+ * @description Get a single integration configured for the current workspace.
2009
+ */
2010
+ get: operations["integrations.get"];
2011
+ put?: never;
2012
+ /**
2013
+ * Configure integration
2014
+ * @description Create or update the integration of this type. Settings are validated against the integration before saving.
2015
+ */
2016
+ post: operations["integrations.upsert"];
2017
+ /**
2018
+ * Remove integration
2019
+ * @description Remove the integration of this type from the current workspace.
2020
+ */
2021
+ delete: operations["integrations.delete"];
2022
+ options?: never;
2023
+ head?: never;
2024
+ patch?: never;
2025
+ trace?: never;
2026
+ };
1891
2027
  "/question-bank": {
1892
2028
  parameters: {
1893
2029
  query?: never;
@@ -2214,7 +2350,7 @@ interface operations {
2214
2350
  id: string;
2215
2351
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
2216
2352
  title?: string | null;
2217
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
2353
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
2218
2354
  description?: string | null;
2219
2355
  /** @description The default amount of points to assign if this criterion or level is selected. */
2220
2356
  points?: number | null;
@@ -2227,7 +2363,7 @@ interface operations {
2227
2363
  id: string;
2228
2364
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
2229
2365
  title?: string | null;
2230
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
2366
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
2231
2367
  description?: string | null;
2232
2368
  /** @description The default amount of points to assign if this criterion or level is selected. */
2233
2369
  points?: number | null;
@@ -2245,6 +2381,8 @@ interface operations {
2245
2381
  modelAnswer?: string | null;
2246
2382
  /** @description The ID of the scoring template applied, if any. */
2247
2383
  templateId?: string | null;
2384
+ /** @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. */
2385
+ excludeFromGrading?: boolean | null;
2248
2386
  } | null;
2249
2387
  /** @description Tags associated with the question for categorization and search */
2250
2388
  tags?: string[] | null;
@@ -2756,7 +2894,7 @@ interface operations {
2756
2894
  id: string;
2757
2895
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
2758
2896
  title?: string | null;
2759
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
2897
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
2760
2898
  description?: string | null;
2761
2899
  /** @description The default amount of points to assign if this criterion or level is selected. */
2762
2900
  points?: number | null;
@@ -2769,7 +2907,7 @@ interface operations {
2769
2907
  id: string;
2770
2908
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
2771
2909
  title?: string | null;
2772
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
2910
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
2773
2911
  description?: string | null;
2774
2912
  /** @description The default amount of points to assign if this criterion or level is selected. */
2775
2913
  points?: number | null;
@@ -2787,6 +2925,8 @@ interface operations {
2787
2925
  modelAnswer?: string | null;
2788
2926
  /** @description The ID of the scoring template applied, if any. */
2789
2927
  templateId?: string | null;
2928
+ /** @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. */
2929
+ excludeFromGrading?: boolean | null;
2790
2930
  } | null;
2791
2931
  showDoneButton?: boolean | null;
2792
2932
  hideTemplateOptions?: boolean | null;
@@ -3138,6 +3278,44 @@ interface operations {
3138
3278
  requestBody?: never;
3139
3279
  responses: never;
3140
3280
  };
3281
+ "exams.sessions.scanImages": {
3282
+ parameters: {
3283
+ query?: never;
3284
+ header?: never;
3285
+ path: {
3286
+ id: string;
3287
+ };
3288
+ cookie?: never;
3289
+ };
3290
+ requestBody?: {
3291
+ content: {
3292
+ "application/json": {
3293
+ images: string[];
3294
+ studentName?: string;
3295
+ };
3296
+ };
3297
+ };
3298
+ responses: never;
3299
+ };
3300
+ "exams.sessions.scanStudentName": {
3301
+ parameters: {
3302
+ query?: never;
3303
+ header?: never;
3304
+ path: {
3305
+ id: string;
3306
+ };
3307
+ cookie?: never;
3308
+ };
3309
+ requestBody?: {
3310
+ content: {
3311
+ "application/json": {
3312
+ /** Format: uri */
3313
+ image: string;
3314
+ };
3315
+ };
3316
+ };
3317
+ responses: never;
3318
+ };
3141
3319
  "exams.sessions.scanDocument": {
3142
3320
  parameters: {
3143
3321
  query?: never;
@@ -3152,6 +3330,7 @@ interface operations {
3152
3330
  "application/json": {
3153
3331
  /** Format: uri */
3154
3332
  documentUrl: string;
3333
+ contentType?: string | null;
3155
3334
  };
3156
3335
  };
3157
3336
  };
@@ -3183,6 +3362,25 @@ interface operations {
3183
3362
  requestBody?: never;
3184
3363
  responses: never;
3185
3364
  };
3365
+ "exams.sessions.update": {
3366
+ parameters: {
3367
+ query?: never;
3368
+ header?: never;
3369
+ path: {
3370
+ id: string;
3371
+ sessionId: string;
3372
+ };
3373
+ cookie?: never;
3374
+ };
3375
+ requestBody?: {
3376
+ content: {
3377
+ "application/json": {
3378
+ studentName: string;
3379
+ };
3380
+ };
3381
+ };
3382
+ responses: never;
3383
+ };
3186
3384
  "exams.sessions.saveFeedback": {
3187
3385
  parameters: {
3188
3386
  query?: never;
@@ -3444,6 +3642,67 @@ interface operations {
3444
3642
  requestBody?: never;
3445
3643
  responses: never;
3446
3644
  };
3645
+ "exams.questions.update": {
3646
+ parameters: {
3647
+ query?: never;
3648
+ header?: never;
3649
+ path: {
3650
+ id: string;
3651
+ questionId: string;
3652
+ };
3653
+ cookie?: never;
3654
+ };
3655
+ requestBody?: {
3656
+ content: {
3657
+ "application/json": {
3658
+ /** @description Scoring configuration to merge into the question's existing scoring. */
3659
+ scoring?: {
3660
+ /** @description The type of rubric. Different rubric types have different shapes. */
3661
+ rubricType?: ("simple" | "analytical" | "holistic" | "exact-values") | null;
3662
+ /** @description The criteria for scoring the question. For 'simple' rubric type, criteria have no levels, and their points stack (total = sum of points for all criteria that apply). For 'analytical' rubric type, there should be at least one criteria, with levels. For each criteria, a matching level is picked. For 'holistic' rubric type, there should be multiple criteria, without levels (score = single selected criteria). For 'exact-values' rubric type, each criteria represents a specific value that must be matched exactly. */
3663
+ criteria?: {
3664
+ id: string;
3665
+ /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
3666
+ title?: string | null;
3667
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
3668
+ description?: string | null;
3669
+ /** @description The default amount of points to assign if this criterion or level is selected. */
3670
+ points?: number | null;
3671
+ /** @description The minimum amount of points that can be assigned if this criterion or level is selected. */
3672
+ minPoints?: number | null;
3673
+ /** @description The maximum amount of points that can be assigned if this criterion or level is selected. */
3674
+ maxPoints?: number | null;
3675
+ /** @description The levels of a analytical rubric criterion. Each level represents a different point value and description for the same criterion. */
3676
+ levels?: {
3677
+ id: string;
3678
+ /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
3679
+ title?: string | null;
3680
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
3681
+ description?: string | null;
3682
+ /** @description The default amount of points to assign if this criterion or level is selected. */
3683
+ points?: number | null;
3684
+ /** @description The minimum amount of points that can be assigned if this criterion or level is selected. */
3685
+ minPoints?: number | null;
3686
+ /** @description The maximum amount of points that can be assigned if this criterion or level is selected. */
3687
+ maxPoints?: number | null;
3688
+ }[] | null;
3689
+ }[] | null;
3690
+ /** @description Whether exact values matching should be case insensitive. Only applicable for 'exact-values' rubric type. */
3691
+ exactValuesCaseInsensitive?: boolean | null;
3692
+ /** @description Optional additional grading guidance text. */
3693
+ guidance?: string | null;
3694
+ /** @description Optional example model answer text to show to graders. */
3695
+ modelAnswer?: string | null;
3696
+ /** @description The ID of the scoring template applied, if any. */
3697
+ templateId?: string | null;
3698
+ /** @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. */
3699
+ excludeFromGrading?: boolean | null;
3700
+ };
3701
+ };
3702
+ };
3703
+ };
3704
+ responses: never;
3705
+ };
3447
3706
  "exams.questions.regenerate": {
3448
3707
  parameters: {
3449
3708
  query?: never;
@@ -3578,7 +3837,7 @@ interface operations {
3578
3837
  id: string;
3579
3838
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
3580
3839
  title?: string | null;
3581
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
3840
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
3582
3841
  description?: string | null;
3583
3842
  /** @description The default amount of points to assign if this criterion or level is selected. */
3584
3843
  points?: number | null;
@@ -3591,7 +3850,7 @@ interface operations {
3591
3850
  id: string;
3592
3851
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
3593
3852
  title?: string | null;
3594
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
3853
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
3595
3854
  description?: string | null;
3596
3855
  /** @description The default amount of points to assign if this criterion or level is selected. */
3597
3856
  points?: number | null;
@@ -3609,6 +3868,8 @@ interface operations {
3609
3868
  modelAnswer?: string | null;
3610
3869
  /** @description The ID of the scoring template applied, if any. */
3611
3870
  templateId?: string | null;
3871
+ /** @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. */
3872
+ excludeFromGrading?: boolean | null;
3612
3873
  } | null;
3613
3874
  /** @description Tags associated with the question for categorization and search */
3614
3875
  tags?: string[] | null;
@@ -3666,7 +3927,7 @@ interface operations {
3666
3927
  requestBody?: never;
3667
3928
  responses: never;
3668
3929
  };
3669
- "exams.update": {
3930
+ "postExams:id": {
3670
3931
  parameters: {
3671
3932
  query?: never;
3672
3933
  header?: never;
@@ -3690,6 +3951,18 @@ interface operations {
3690
3951
  requestBody?: never;
3691
3952
  responses: never;
3692
3953
  };
3954
+ "exams.update": {
3955
+ parameters: {
3956
+ query?: never;
3957
+ header?: never;
3958
+ path: {
3959
+ id: string;
3960
+ };
3961
+ cookie?: never;
3962
+ };
3963
+ requestBody?: never;
3964
+ responses: never;
3965
+ };
3693
3966
  "exams.duplicate": {
3694
3967
  parameters: {
3695
3968
  query?: never;
@@ -4209,6 +4482,15 @@ interface operations {
4209
4482
  /** Format: date-time */
4210
4483
  updatedAt: string;
4211
4484
  createdBy: string;
4485
+ /** @description Present when the actor inherits access because the resource lives in a shared folder. */
4486
+ inheritedFrom?: {
4487
+ object: string;
4488
+ /** @constant */
4489
+ type: "folder";
4490
+ name?: string;
4491
+ /** @enum {string} */
4492
+ role: "owner" | "manager" | "editor" | "viewer" | "participant";
4493
+ };
4212
4494
  }[];
4213
4495
  };
4214
4496
  };
@@ -4279,6 +4561,15 @@ interface operations {
4279
4561
  /** Format: date-time */
4280
4562
  updatedAt: string;
4281
4563
  createdBy: string;
4564
+ /** @description Present when the actor inherits access because the resource lives in a shared folder. */
4565
+ inheritedFrom?: {
4566
+ object: string;
4567
+ /** @constant */
4568
+ type: "folder";
4569
+ name?: string;
4570
+ /** @enum {string} */
4571
+ role: "owner" | "manager" | "editor" | "viewer" | "participant";
4572
+ };
4282
4573
  };
4283
4574
  };
4284
4575
  };
@@ -4329,6 +4620,15 @@ interface operations {
4329
4620
  /** Format: date-time */
4330
4621
  updatedAt: string;
4331
4622
  createdBy: string;
4623
+ /** @description Present when the actor inherits access because the resource lives in a shared folder. */
4624
+ inheritedFrom?: {
4625
+ object: string;
4626
+ /** @constant */
4627
+ type: "folder";
4628
+ name?: string;
4629
+ /** @enum {string} */
4630
+ role: "owner" | "manager" | "editor" | "viewer" | "participant";
4631
+ };
4332
4632
  };
4333
4633
  };
4334
4634
  };
@@ -4483,10 +4783,12 @@ interface operations {
4483
4783
  taxonomyId?: string | null;
4484
4784
  duration?: number | null;
4485
4785
  intendedDuration?: unknown | null;
4486
- enforceOrder?: boolean | null;
4487
4786
  enforceTimeLimit?: boolean | null;
4787
+ enforceOrder?: boolean | null;
4488
4788
  requirePasscode?: boolean | null;
4489
4789
  passcode?: string | null;
4790
+ startDateTime?: string | null;
4791
+ endDateTime?: string | null;
4490
4792
  showPoints?: boolean | null;
4491
4793
  showFeedback?: boolean | null;
4492
4794
  showTableOfContents?: boolean | null;
@@ -4583,10 +4885,12 @@ interface operations {
4583
4885
  taxonomyId?: string | null;
4584
4886
  duration?: number | null;
4585
4887
  intendedDuration?: unknown | null;
4586
- enforceOrder?: boolean | null;
4587
4888
  enforceTimeLimit?: boolean | null;
4889
+ enforceOrder?: boolean | null;
4588
4890
  requirePasscode?: boolean | null;
4589
4891
  passcode?: string | null;
4892
+ startDateTime?: string | null;
4893
+ endDateTime?: string | null;
4590
4894
  showPoints?: boolean | null;
4591
4895
  showFeedback?: boolean | null;
4592
4896
  showTableOfContents?: boolean | null;
@@ -4728,6 +5032,25 @@ interface operations {
4728
5032
  };
4729
5033
  responses: never;
4730
5034
  };
5035
+ "practiceSpaces.updateQuestion": {
5036
+ parameters: {
5037
+ query?: never;
5038
+ header?: never;
5039
+ path: {
5040
+ id: string;
5041
+ questionId: string;
5042
+ };
5043
+ cookie?: never;
5044
+ };
5045
+ requestBody?: {
5046
+ content: {
5047
+ "application/json": {
5048
+ manualScore?: number;
5049
+ };
5050
+ };
5051
+ };
5052
+ responses: never;
5053
+ };
4731
5054
  "practiceSpaces.students.list": {
4732
5055
  parameters: {
4733
5056
  query?: never;
@@ -5196,6 +5519,21 @@ interface operations {
5196
5519
  };
5197
5520
  };
5198
5521
  };
5522
+ "items.list": {
5523
+ parameters: {
5524
+ query?: {
5525
+ /** @description Optional filter by item type. */
5526
+ type?: "exam" | "practice-space";
5527
+ /** @description Optional filter by folder ID, or `none` for items not in any folder. */
5528
+ folder?: string;
5529
+ };
5530
+ header?: never;
5531
+ path?: never;
5532
+ cookie?: never;
5533
+ };
5534
+ requestBody?: never;
5535
+ responses: never;
5536
+ };
5199
5537
  "folders.list": {
5200
5538
  parameters: {
5201
5539
  query?: never;
@@ -5222,7 +5560,7 @@ interface operations {
5222
5560
  };
5223
5561
  responses: never;
5224
5562
  };
5225
- "folders.update": {
5563
+ "postFolders:id": {
5226
5564
  parameters: {
5227
5565
  query?: never;
5228
5566
  header?: never;
@@ -5252,6 +5590,24 @@ interface operations {
5252
5590
  requestBody?: never;
5253
5591
  responses: never;
5254
5592
  };
5593
+ "folders.update": {
5594
+ parameters: {
5595
+ query?: never;
5596
+ header?: never;
5597
+ path: {
5598
+ id: string;
5599
+ };
5600
+ cookie?: never;
5601
+ };
5602
+ requestBody?: {
5603
+ content: {
5604
+ "application/json": {
5605
+ name: string;
5606
+ };
5607
+ };
5608
+ };
5609
+ responses: never;
5610
+ };
5255
5611
  "groups.list": {
5256
5612
  parameters: {
5257
5613
  query?: never;
@@ -5281,6 +5637,9 @@ interface operations {
5281
5637
  content: {
5282
5638
  "application/json": {
5283
5639
  name: string;
5640
+ metadata?: {
5641
+ [key: string]: string | number | boolean | null;
5642
+ };
5284
5643
  };
5285
5644
  };
5286
5645
  };
@@ -5347,7 +5706,10 @@ interface operations {
5347
5706
  requestBody?: {
5348
5707
  content: {
5349
5708
  "application/json": {
5350
- name: string;
5709
+ name?: string | null;
5710
+ metadata?: {
5711
+ [key: string]: string | number | boolean | null;
5712
+ } | null;
5351
5713
  };
5352
5714
  };
5353
5715
  };
@@ -5533,6 +5895,52 @@ interface operations {
5533
5895
  };
5534
5896
  };
5535
5897
  };
5898
+ "integrations.list": {
5899
+ parameters: {
5900
+ query?: never;
5901
+ header?: never;
5902
+ path?: never;
5903
+ cookie?: never;
5904
+ };
5905
+ requestBody?: never;
5906
+ responses: never;
5907
+ };
5908
+ "integrations.get": {
5909
+ parameters: {
5910
+ query?: never;
5911
+ header?: never;
5912
+ path: {
5913
+ integrationType: string;
5914
+ };
5915
+ cookie?: never;
5916
+ };
5917
+ requestBody?: never;
5918
+ responses: never;
5919
+ };
5920
+ "integrations.upsert": {
5921
+ parameters: {
5922
+ query?: never;
5923
+ header?: never;
5924
+ path: {
5925
+ integrationType: string;
5926
+ };
5927
+ cookie?: never;
5928
+ };
5929
+ requestBody?: never;
5930
+ responses: never;
5931
+ };
5932
+ "integrations.delete": {
5933
+ parameters: {
5934
+ query?: never;
5935
+ header?: never;
5936
+ path: {
5937
+ integrationType: string;
5938
+ };
5939
+ cookie?: never;
5940
+ };
5941
+ requestBody?: never;
5942
+ responses: never;
5943
+ };
5536
5944
  "questionBank.list": {
5537
5945
  parameters: {
5538
5946
  query?: never;
@@ -5573,7 +5981,7 @@ interface operations {
5573
5981
  id: string;
5574
5982
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5575
5983
  title?: string | null;
5576
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
5984
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5577
5985
  description?: string | null;
5578
5986
  /** @description The default amount of points to assign if this criterion or level is selected. */
5579
5987
  points?: number | null;
@@ -5586,7 +5994,7 @@ interface operations {
5586
5994
  id: string;
5587
5995
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5588
5996
  title?: string | null;
5589
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
5997
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5590
5998
  description?: string | null;
5591
5999
  /** @description The default amount of points to assign if this criterion or level is selected. */
5592
6000
  points?: number | null;
@@ -5604,6 +6012,8 @@ interface operations {
5604
6012
  modelAnswer?: string | null;
5605
6013
  /** @description The ID of the scoring template applied, if any. */
5606
6014
  templateId?: string | null;
6015
+ /** @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. */
6016
+ excludeFromGrading?: boolean | null;
5607
6017
  } | null;
5608
6018
  /** @description Tags associated with the question for categorization and search */
5609
6019
  tags?: string[] | null;
@@ -5669,7 +6079,7 @@ interface operations {
5669
6079
  id: string;
5670
6080
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5671
6081
  title?: string | null;
5672
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6082
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5673
6083
  description?: string | null;
5674
6084
  /** @description The default amount of points to assign if this criterion or level is selected. */
5675
6085
  points?: number | null;
@@ -5682,7 +6092,7 @@ interface operations {
5682
6092
  id: string;
5683
6093
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5684
6094
  title?: string | null;
5685
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6095
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5686
6096
  description?: string | null;
5687
6097
  /** @description The default amount of points to assign if this criterion or level is selected. */
5688
6098
  points?: number | null;
@@ -5700,6 +6110,8 @@ interface operations {
5700
6110
  modelAnswer?: string | null;
5701
6111
  /** @description The ID of the scoring template applied, if any. */
5702
6112
  templateId?: string | null;
6113
+ /** @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. */
6114
+ excludeFromGrading?: boolean | null;
5703
6115
  } | null;
5704
6116
  /** @description Tags associated with the question for categorization and search */
5705
6117
  tags?: string[] | null;
@@ -5750,7 +6162,7 @@ interface operations {
5750
6162
  id: string;
5751
6163
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5752
6164
  title?: string | null;
5753
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6165
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5754
6166
  description?: string | null;
5755
6167
  /** @description The default amount of points to assign if this criterion or level is selected. */
5756
6168
  points?: number | null;
@@ -5763,7 +6175,7 @@ interface operations {
5763
6175
  id: string;
5764
6176
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5765
6177
  title?: string | null;
5766
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6178
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5767
6179
  description?: string | null;
5768
6180
  /** @description The default amount of points to assign if this criterion or level is selected. */
5769
6181
  points?: number | null;
@@ -5781,6 +6193,8 @@ interface operations {
5781
6193
  modelAnswer?: string | null;
5782
6194
  /** @description The ID of the scoring template applied, if any. */
5783
6195
  templateId?: string | null;
6196
+ /** @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. */
6197
+ excludeFromGrading?: boolean | null;
5784
6198
  };
5785
6199
  };
5786
6200
  };
@@ -5839,7 +6253,7 @@ interface operations {
5839
6253
  id: string;
5840
6254
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5841
6255
  title?: string | null;
5842
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6256
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5843
6257
  description?: string | null;
5844
6258
  /** @description The default amount of points to assign if this criterion or level is selected. */
5845
6259
  points?: number | null;
@@ -5852,7 +6266,7 @@ interface operations {
5852
6266
  id: string;
5853
6267
  /** @description The title of the scoring criterion or level. Only applies to analytical levels and holistic criteria. */
5854
6268
  title?: string | null;
5855
- /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. */
6269
+ /** @description The description of the scoring criterion or level. For analytical levels, this describes the specific requirements to earn the points for that level. For holistic criteria, this describes the overall requirement to earn the points for that criterion. For exact values rubrics, this contains the specific value that must be matched exactly (no AI used in this matching, just string comparison). */
5856
6270
  description?: string | null;
5857
6271
  /** @description The default amount of points to assign if this criterion or level is selected. */
5858
6272
  points?: number | null;
@@ -5870,6 +6284,8 @@ interface operations {
5870
6284
  modelAnswer?: string | null;
5871
6285
  /** @description The ID of the scoring template applied, if any. */
5872
6286
  templateId?: string | null;
6287
+ /** @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. */
6288
+ excludeFromGrading?: boolean | null;
5873
6289
  };
5874
6290
  };
5875
6291
  };
@@ -6027,6 +6443,12 @@ interface _PathOverrides {
6027
6443
  "exams.sessions.scan": {
6028
6444
  examId: string;
6029
6445
  };
6446
+ "exams.sessions.scanImages": {
6447
+ examId: string;
6448
+ };
6449
+ "exams.sessions.scanStudentName": {
6450
+ examId: string;
6451
+ };
6030
6452
  "exams.sessions.scanDocument": {
6031
6453
  examId: string;
6032
6454
  };
@@ -6038,6 +6460,10 @@ interface _PathOverrides {
6038
6460
  examId: string;
6039
6461
  sessionId: string;
6040
6462
  };
6463
+ "exams.sessions.update": {
6464
+ examId: string;
6465
+ sessionId: string;
6466
+ };
6041
6467
  "exams.sessions.saveFeedback": {
6042
6468
  examId: string;
6043
6469
  sessionId: string;
@@ -6092,6 +6518,10 @@ interface _PathOverrides {
6092
6518
  examId: string;
6093
6519
  questionId: string;
6094
6520
  };
6521
+ "exams.questions.update": {
6522
+ examId: string;
6523
+ questionId: string;
6524
+ };
6095
6525
  "exams.questions.regenerate": {
6096
6526
  examId: string;
6097
6527
  questionId: string;
@@ -6108,6 +6538,9 @@ interface _PathOverrides {
6108
6538
  "exams.update": {
6109
6539
  id: string;
6110
6540
  };
6541
+ "postExams:id": {
6542
+ id: string;
6543
+ };
6111
6544
  "exams.delete": {
6112
6545
  id: string;
6113
6546
  };
@@ -6185,6 +6618,10 @@ interface _PathOverrides {
6185
6618
  "practiceSpaces.generateTopicFeedback": {
6186
6619
  practiceSpaceId: string;
6187
6620
  };
6621
+ "practiceSpaces.updateQuestion": {
6622
+ practiceSpaceId: string;
6623
+ questionId: string;
6624
+ };
6188
6625
  "practiceSpaces.students.list": {
6189
6626
  practiceSpaceId: string;
6190
6627
  };
@@ -6222,6 +6659,9 @@ interface _PathOverrides {
6222
6659
  "folders.update": {
6223
6660
  id: string;
6224
6661
  };
6662
+ "postFolders:id": {
6663
+ id: string;
6664
+ };
6225
6665
  "folders.delete": {
6226
6666
  id: string;
6227
6667
  };
@@ -6245,6 +6685,15 @@ interface _PathOverrides {
6245
6685
  groupId: string;
6246
6686
  userId: string;
6247
6687
  };
6688
+ "integrations.get": {
6689
+ integrationType: string;
6690
+ };
6691
+ "integrations.upsert": {
6692
+ integrationType: string;
6693
+ };
6694
+ "integrations.delete": {
6695
+ integrationType: string;
6696
+ };
6248
6697
  "questionBank.update": {
6249
6698
  id: string;
6250
6699
  };
@@ -6597,6 +7046,22 @@ declare class ExamsSessions {
6597
7046
  */
6598
7047
  scan(examId: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
6599
7048
  scan(args: Args<"exams.sessions.scan">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scan">>;
7049
+ /**
7050
+ * Scan images for student answers
7051
+ *
7052
+ * Start a background task to extract a student's answers from scanned page images and create a session.
7053
+ *
7054
+ * API endpoint: `POST /exams/{examId}/sessions/scan-images`
7055
+ */
7056
+ scanImages(args: Args<"exams.sessions.scanImages">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scanImages">>;
7057
+ /**
7058
+ * Detect student name from scan
7059
+ *
7060
+ * Start a background task to detect the student name from a scanned page image.
7061
+ *
7062
+ * API endpoint: `POST /exams/{examId}/sessions/scan-student-name`
7063
+ */
7064
+ scanStudentName(args: Args<"exams.sessions.scanStudentName">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.scanStudentName">>;
6600
7065
  /**
6601
7066
  * Scan document for student answers
6602
7067
  *
@@ -6621,6 +7086,14 @@ declare class ExamsSessions {
6621
7086
  * API endpoint: `DELETE /exams/{examId}/sessions/{sessionId}`
6622
7087
  */
6623
7088
  delete(args: Args<"exams.sessions.delete">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.delete">>;
7089
+ /**
7090
+ * Update session
7091
+ *
7092
+ * Update an exam session. Currently supports renaming the student, which is not allowed for sessions taken by a signed-in student.
7093
+ *
7094
+ * API endpoint: `PATCH /exams/{examId}/sessions/{sessionId}`
7095
+ */
7096
+ update(args: Args<"exams.sessions.update">, options?: ExamplaryRequestOptions): Promise<Response<"exams.sessions.update">>;
6624
7097
  /**
6625
7098
  * Provide feedback
6626
7099
  *
@@ -6697,6 +7170,14 @@ declare class ExamsQuestions {
6697
7170
  * API endpoint: `GET /exams/{examId}/questions/{questionId}`
6698
7171
  */
6699
7172
  get(args: Args<"exams.questions.get">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.get">>;
7173
+ /**
7174
+ * Update a question
7175
+ *
7176
+ * Update fields on a single question, such as its scoring configuration. Use `scoring.excludeFromGrading` to exclude a question from grading so it no longer counts towards the total points or grade of a session.
7177
+ *
7178
+ * API endpoint: `PATCH /exams/{examId}/questions/{questionId}`
7179
+ */
7180
+ update(args: Args<"exams.questions.update">, options?: ExamplaryRequestOptions): Promise<Response<"exams.questions.update">>;
6700
7181
  /**
6701
7182
  * Regenerate question
6702
7183
  *
@@ -6772,7 +7253,7 @@ declare class Exams {
6772
7253
  *
6773
7254
  * Update an existing exam.
6774
7255
  *
6775
- * API endpoint: `POST /exams/{id}`
7256
+ * API endpoint: `PATCH /exams/{id}`
6776
7257
  */
6777
7258
  update(id: string, options?: ExamplaryRequestOptions): Promise<Response<"exams.update">>;
6778
7259
  update(args: Args<"exams.update">, options?: ExamplaryRequestOptions): Promise<Response<"exams.update">>;
@@ -7299,6 +7780,14 @@ declare class PracticeSpaces {
7299
7780
  * API endpoint: `POST /practice-spaces/{practiceSpaceId}/progress/topic-feedback`
7300
7781
  */
7301
7782
  generateTopicFeedback(args: Args<"practiceSpaces.generateTopicFeedback">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.generateTopicFeedback">>;
7783
+ /**
7784
+ * Update a practice space question
7785
+ *
7786
+ * Update a specific question in a practice space.
7787
+ *
7788
+ * API endpoint: `PATCH /practice-spaces/{practiceSpaceId}/questions/{questionId}`
7789
+ */
7790
+ updateQuestion(args: Args<"practiceSpaces.updateQuestion">, options?: ExamplaryRequestOptions): Promise<Response<"practiceSpaces.updateQuestion">>;
7302
7791
  }
7303
7792
  declare class SourceMaterials {
7304
7793
  private readonly ctx;
@@ -7354,6 +7843,18 @@ declare class SourceMaterials {
7354
7843
  */
7355
7844
  slice(args: Args<"sourceMaterials.slice">, options?: ExamplaryRequestOptions): Promise<Response<"sourceMaterials.slice">>;
7356
7845
  }
7846
+ declare class Items {
7847
+ private readonly ctx;
7848
+ constructor(ctx: ClientContext);
7849
+ /**
7850
+ * List items
7851
+ *
7852
+ * Get a list of items (tests and practice spaces) within your workspace. Returns everything by default; filter by `type` or `folder`.
7853
+ *
7854
+ * API endpoint: `GET /items`
7855
+ */
7856
+ list(args?: Args<"items.list">, options?: ExamplaryRequestOptions): Promise<Response<"items.list">>;
7857
+ }
7357
7858
  declare class Folders {
7358
7859
  private readonly ctx;
7359
7860
  constructor(ctx: ClientContext);
@@ -7378,7 +7879,7 @@ declare class Folders {
7378
7879
  *
7379
7880
  * Update an existing folder in the current workspace.
7380
7881
  *
7381
- * API endpoint: `POST /folders/{id}`
7882
+ * API endpoint: `PATCH /folders/{id}`
7382
7883
  */
7383
7884
  update(args: Args<"folders.update">, options?: ExamplaryRequestOptions): Promise<Response<"folders.update">>;
7384
7885
  /**
@@ -7461,6 +7962,45 @@ declare class Groups {
7461
7962
  */
7462
7963
  removeMember(args: Args<"groups.removeMember">, options?: ExamplaryRequestOptions): Promise<Response<"groups.removeMember">>;
7463
7964
  }
7965
+ declare class Integrations {
7966
+ private readonly ctx;
7967
+ constructor(ctx: ClientContext);
7968
+ /**
7969
+ * List integrations
7970
+ *
7971
+ * List all available integrations and whether they are configured for the current workspace. Settings and field metadata are only included for Admin/Owner.
7972
+ *
7973
+ * API endpoint: `GET /integrations`
7974
+ */
7975
+ list(args?: Args<"integrations.list">, options?: ExamplaryRequestOptions): Promise<Response<"integrations.list">>;
7976
+ /**
7977
+ * Get integration
7978
+ *
7979
+ * Get a single integration configured for the current workspace.
7980
+ *
7981
+ * API endpoint: `GET /integrations/{integrationType}`
7982
+ */
7983
+ get(integrationType: string, options?: ExamplaryRequestOptions): Promise<Response<"integrations.get">>;
7984
+ get(args: Args<"integrations.get">, options?: ExamplaryRequestOptions): Promise<Response<"integrations.get">>;
7985
+ /**
7986
+ * Configure integration
7987
+ *
7988
+ * Create or update the integration of this type. Settings are validated against the integration before saving.
7989
+ *
7990
+ * API endpoint: `POST /integrations/{integrationType}`
7991
+ */
7992
+ upsert(integrationType: string, options?: ExamplaryRequestOptions): Promise<Response<"integrations.upsert">>;
7993
+ upsert(args: Args<"integrations.upsert">, options?: ExamplaryRequestOptions): Promise<Response<"integrations.upsert">>;
7994
+ /**
7995
+ * Remove integration
7996
+ *
7997
+ * Remove the integration of this type from the current workspace.
7998
+ *
7999
+ * API endpoint: `DELETE /integrations/{integrationType}`
8000
+ */
8001
+ delete(integrationType: string, options?: ExamplaryRequestOptions): Promise<Response<"integrations.delete">>;
8002
+ delete(args: Args<"integrations.delete">, options?: ExamplaryRequestOptions): Promise<Response<"integrations.delete">>;
8003
+ }
7464
8004
  declare class QuestionBank {
7465
8005
  private readonly ctx;
7466
8006
  constructor(ctx: ClientContext);
@@ -7577,12 +8117,23 @@ declare class Examplary {
7577
8117
  readonly users: Users;
7578
8118
  readonly practiceSpaces: PracticeSpaces;
7579
8119
  readonly sourceMaterials: SourceMaterials;
8120
+ readonly items: Items;
7580
8121
  readonly folders: Folders;
7581
8122
  readonly groups: Groups;
8123
+ readonly integrations: Integrations;
7582
8124
  readonly questionBank: QuestionBank;
7583
8125
  readonly prompts: Prompts;
7584
8126
  readonly jobs: Jobs;
7585
8127
  constructor(options: ExamplaryClientOptions);
8128
+ /**
8129
+ * API endpoint: `POST /exams/{id}`
8130
+ */
8131
+ postExamsId(id: string, options?: ExamplaryRequestOptions): Promise<Response<"postExams:id">>;
8132
+ postExamsId(args: Args<"postExams:id">, options?: ExamplaryRequestOptions): Promise<Response<"postExams:id">>;
8133
+ /**
8134
+ * API endpoint: `POST /folders/{id}`
8135
+ */
8136
+ postFoldersId(args: Args<"postFolders:id">, options?: ExamplaryRequestOptions): Promise<Response<"postFolders:id">>;
7586
8137
  /**
7587
8138
  * Get rubrics
7588
8139
  *