@instructure/athena-api-client 3.3.0 → 3.4.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.
Files changed (38) hide show
  1. package/README.md +7 -0
  2. package/dist/apis/SyllabusAnalysisApi.d.ts +48 -0
  3. package/dist/apis/SyllabusAnalysisApi.js +127 -0
  4. package/dist/apis/index.d.ts +1 -0
  5. package/dist/apis/index.js +1 -0
  6. package/dist/esm/apis/SyllabusAnalysisApi.d.ts +48 -0
  7. package/dist/esm/apis/SyllabusAnalysisApi.js +123 -0
  8. package/dist/esm/apis/index.d.ts +1 -0
  9. package/dist/esm/apis/index.js +1 -0
  10. package/dist/esm/models/StudyObjective.d.ts +14 -0
  11. package/dist/esm/models/StudyObjective.js +11 -0
  12. package/dist/esm/models/SyllabusAnalysisObjective.d.ts +64 -0
  13. package/dist/esm/models/SyllabusAnalysisObjective.js +66 -0
  14. package/dist/esm/models/SyllabusAnalysisStatus.d.ts +56 -0
  15. package/dist/esm/models/SyllabusAnalysisStatus.js +62 -0
  16. package/dist/esm/models/SyllabusAnalysisStatusView.d.ts +55 -0
  17. package/dist/esm/models/SyllabusAnalysisStatusView.js +61 -0
  18. package/dist/esm/models/TriggerSyllabusAnalysisRequest.d.ts +51 -0
  19. package/dist/esm/models/TriggerSyllabusAnalysisRequest.js +52 -0
  20. package/dist/esm/models/TriggerSyllabusAnalysisRequestFile.d.ts +50 -0
  21. package/dist/esm/models/TriggerSyllabusAnalysisRequestFile.js +55 -0
  22. package/dist/esm/models/index.d.ts +5 -0
  23. package/dist/esm/models/index.js +5 -0
  24. package/dist/models/StudyObjective.d.ts +14 -0
  25. package/dist/models/StudyObjective.js +12 -0
  26. package/dist/models/SyllabusAnalysisObjective.d.ts +64 -0
  27. package/dist/models/SyllabusAnalysisObjective.js +74 -0
  28. package/dist/models/SyllabusAnalysisStatus.d.ts +56 -0
  29. package/dist/models/SyllabusAnalysisStatus.js +70 -0
  30. package/dist/models/SyllabusAnalysisStatusView.d.ts +55 -0
  31. package/dist/models/SyllabusAnalysisStatusView.js +69 -0
  32. package/dist/models/TriggerSyllabusAnalysisRequest.d.ts +51 -0
  33. package/dist/models/TriggerSyllabusAnalysisRequest.js +59 -0
  34. package/dist/models/TriggerSyllabusAnalysisRequestFile.d.ts +50 -0
  35. package/dist/models/TriggerSyllabusAnalysisRequestFile.js +62 -0
  36. package/dist/models/index.d.ts +5 -0
  37. package/dist/models/index.js +5 -0
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -134,6 +134,8 @@ All URIs are relative to *http://localhost:3000*
134
134
  *StudyPrepApi* | [**assessCanvasKnowledge**](docs/StudyPrepApi.md#assesscanvasknowledge) | **POST** /api/v1/study-prep/knowledge-assessment | Assess user knowledge from Canvas course grades
135
135
  *StudyPrepApi* | [**generateCanvasTaxonomy**](docs/StudyPrepApi.md#generatecanvastaxonomy) | **POST** /api/v1/study-prep/taxonomies | Generate a taxonomy from a Canvas course
136
136
  *StudyPrepApi* | [**syncCanvasUserProfile**](docs/StudyPrepApi.md#synccanvasuserprofile) | **POST** /api/v1/study-prep/user-profile | Sync user profile from Canvas
137
+ *SyllabusAnalysisApi* | [**getSyllabusAnalysisStatus**](docs/SyllabusAnalysisApi.md#getsyllabusanalysisstatus) | **GET** /api/v1/syllabus-analysis | Get syllabus analysis status
138
+ *SyllabusAnalysisApi* | [**triggerSyllabusAnalysis**](docs/SyllabusAnalysisApi.md#triggersyllabusanalysisoperation) | **POST** /api/v1/syllabus-analysis | Trigger syllabus analysis
137
139
  *TagsApi* | [**listTags**](docs/TagsApi.md#listtags) | **GET** /api/v1/tags | List all tags
138
140
  *TaxonomiesApi* | [**getTaxonomy**](docs/TaxonomiesApi.md#gettaxonomy) | **GET** /api/v1/taxonomies/{id} | Get taxonomy by ID with full tree
139
141
  *TaxonomiesApi* | [**getTaxonomyBySlug**](docs/TaxonomiesApi.md#gettaxonomybyslug) | **GET** /api/v1/taxonomies/by-slug/{slug} | Get taxonomy by slug
@@ -253,6 +255,9 @@ All URIs are relative to *http://localhost:3000*
253
255
  - [StudyObjectiveConceptSummary](docs/StudyObjectiveConceptSummary.md)
254
256
  - [StudyObjectiveFileAttachment](docs/StudyObjectiveFileAttachment.md)
255
257
  - [SubmitQuizResponseRequest](docs/SubmitQuizResponseRequest.md)
258
+ - [SyllabusAnalysisObjective](docs/SyllabusAnalysisObjective.md)
259
+ - [SyllabusAnalysisStatus](docs/SyllabusAnalysisStatus.md)
260
+ - [SyllabusAnalysisStatusView](docs/SyllabusAnalysisStatusView.md)
256
261
  - [Tag](docs/Tag.md)
257
262
  - [TaxonomyDetail](docs/TaxonomyDetail.md)
258
263
  - [TaxonomyEnrollment](docs/TaxonomyEnrollment.md)
@@ -268,6 +273,8 @@ All URIs are relative to *http://localhost:3000*
268
273
  - [TriggerStudyObjectiveConceptExtractionRequestItemsInnerAnyOf](docs/TriggerStudyObjectiveConceptExtractionRequestItemsInnerAnyOf.md)
269
274
  - [TriggerStudyObjectiveConceptExtractionRequestItemsInnerAnyOf1](docs/TriggerStudyObjectiveConceptExtractionRequestItemsInnerAnyOf1.md)
270
275
  - [TriggerStudyObjectiveConceptExtractionResponse](docs/TriggerStudyObjectiveConceptExtractionResponse.md)
276
+ - [TriggerSyllabusAnalysisRequest](docs/TriggerSyllabusAnalysisRequest.md)
277
+ - [TriggerSyllabusAnalysisRequestFile](docs/TriggerSyllabusAnalysisRequestFile.md)
271
278
  - [UpdateAccountDto](docs/UpdateAccountDto.md)
272
279
  - [UpdateChatRequest](docs/UpdateChatRequest.md)
273
280
  - [UpdateFeatureDto](docs/UpdateFeatureDto.md)
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { SyllabusAnalysisStatus, SyllabusAnalysisStatusView, TriggerSyllabusAnalysisRequest } from '../models/index';
14
+ export interface GetSyllabusAnalysisStatusRequest {
15
+ courseId: string;
16
+ canvasDomain: string;
17
+ xUserId: string;
18
+ }
19
+ export interface TriggerSyllabusAnalysisOperationRequest {
20
+ xUserId: string;
21
+ triggerSyllabusAnalysisRequest: TriggerSyllabusAnalysisRequest;
22
+ xCanvasToken?: string;
23
+ }
24
+ /**
25
+ *
26
+ */
27
+ export declare class SyllabusAnalysisApi extends runtime.BaseAPI {
28
+ /**
29
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
30
+ * Get syllabus analysis status
31
+ */
32
+ getSyllabusAnalysisStatusRaw(requestParameters: GetSyllabusAnalysisStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SyllabusAnalysisStatusView>>;
33
+ /**
34
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
35
+ * Get syllabus analysis status
36
+ */
37
+ getSyllabusAnalysisStatus(requestParameters: GetSyllabusAnalysisStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SyllabusAnalysisStatusView>;
38
+ /**
39
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
40
+ * Trigger syllabus analysis
41
+ */
42
+ triggerSyllabusAnalysisRaw(requestParameters: TriggerSyllabusAnalysisOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SyllabusAnalysisStatus>>;
43
+ /**
44
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
45
+ * Trigger syllabus analysis
46
+ */
47
+ triggerSyllabusAnalysis(requestParameters: TriggerSyllabusAnalysisOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SyllabusAnalysisStatus>;
48
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Athena API
6
+ * REST API for the Athena system
7
+ *
8
+ * The version of the OpenAPI document: 1.0.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
+ return new (P || (P = Promise))(function (resolve, reject) {
18
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
22
+ });
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.SyllabusAnalysisApi = void 0;
26
+ const runtime = require("../runtime");
27
+ const index_1 = require("../models/index");
28
+ /**
29
+ *
30
+ */
31
+ class SyllabusAnalysisApi extends runtime.BaseAPI {
32
+ /**
33
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
34
+ * Get syllabus analysis status
35
+ */
36
+ getSyllabusAnalysisStatusRaw(requestParameters, initOverrides) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ if (requestParameters['courseId'] == null) {
39
+ throw new runtime.RequiredError('courseId', 'Required parameter "courseId" was null or undefined when calling getSyllabusAnalysisStatus().');
40
+ }
41
+ if (requestParameters['canvasDomain'] == null) {
42
+ throw new runtime.RequiredError('canvasDomain', 'Required parameter "canvasDomain" was null or undefined when calling getSyllabusAnalysisStatus().');
43
+ }
44
+ if (requestParameters['xUserId'] == null) {
45
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling getSyllabusAnalysisStatus().');
46
+ }
47
+ const queryParameters = {};
48
+ if (requestParameters['courseId'] != null) {
49
+ queryParameters['courseId'] = requestParameters['courseId'];
50
+ }
51
+ if (requestParameters['canvasDomain'] != null) {
52
+ queryParameters['canvasDomain'] = requestParameters['canvasDomain'];
53
+ }
54
+ const headerParameters = {};
55
+ if (requestParameters['xUserId'] != null) {
56
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
57
+ }
58
+ if (this.configuration && this.configuration.apiKey) {
59
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
60
+ }
61
+ let urlPath = `/api/v1/syllabus-analysis`;
62
+ const response = yield this.request({
63
+ path: urlPath,
64
+ method: 'GET',
65
+ headers: headerParameters,
66
+ query: queryParameters,
67
+ }, initOverrides);
68
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.SyllabusAnalysisStatusViewFromJSON)(jsonValue));
69
+ });
70
+ }
71
+ /**
72
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
73
+ * Get syllabus analysis status
74
+ */
75
+ getSyllabusAnalysisStatus(requestParameters, initOverrides) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ const response = yield this.getSyllabusAnalysisStatusRaw(requestParameters, initOverrides);
78
+ return yield response.value();
79
+ });
80
+ }
81
+ /**
82
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
83
+ * Trigger syllabus analysis
84
+ */
85
+ triggerSyllabusAnalysisRaw(requestParameters, initOverrides) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ if (requestParameters['xUserId'] == null) {
88
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling triggerSyllabusAnalysis().');
89
+ }
90
+ if (requestParameters['triggerSyllabusAnalysisRequest'] == null) {
91
+ throw new runtime.RequiredError('triggerSyllabusAnalysisRequest', 'Required parameter "triggerSyllabusAnalysisRequest" was null or undefined when calling triggerSyllabusAnalysis().');
92
+ }
93
+ const queryParameters = {};
94
+ const headerParameters = {};
95
+ headerParameters['Content-Type'] = 'application/json';
96
+ if (requestParameters['xCanvasToken'] != null) {
97
+ headerParameters['X-Canvas-Token'] = String(requestParameters['xCanvasToken']);
98
+ }
99
+ if (requestParameters['xUserId'] != null) {
100
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
101
+ }
102
+ if (this.configuration && this.configuration.apiKey) {
103
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
104
+ }
105
+ let urlPath = `/api/v1/syllabus-analysis`;
106
+ const response = yield this.request({
107
+ path: urlPath,
108
+ method: 'POST',
109
+ headers: headerParameters,
110
+ query: queryParameters,
111
+ body: (0, index_1.TriggerSyllabusAnalysisRequestToJSON)(requestParameters['triggerSyllabusAnalysisRequest']),
112
+ }, initOverrides);
113
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.SyllabusAnalysisStatusFromJSON)(jsonValue));
114
+ });
115
+ }
116
+ /**
117
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
118
+ * Trigger syllabus analysis
119
+ */
120
+ triggerSyllabusAnalysis(requestParameters, initOverrides) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ const response = yield this.triggerSyllabusAnalysisRaw(requestParameters, initOverrides);
123
+ return yield response.value();
124
+ });
125
+ }
126
+ }
127
+ exports.SyllabusAnalysisApi = SyllabusAnalysisApi;
@@ -21,6 +21,7 @@ export * from './ServiceTokensApi';
21
21
  export * from './StudyObjectiveConceptsApi';
22
22
  export * from './StudyObjectivesApi';
23
23
  export * from './StudyPrepApi';
24
+ export * from './SyllabusAnalysisApi';
24
25
  export * from './TagsApi';
25
26
  export * from './TaxonomiesApi';
26
27
  export * from './TaxonomyEnrollmentsApi';
@@ -39,6 +39,7 @@ __exportStar(require("./ServiceTokensApi"), exports);
39
39
  __exportStar(require("./StudyObjectiveConceptsApi"), exports);
40
40
  __exportStar(require("./StudyObjectivesApi"), exports);
41
41
  __exportStar(require("./StudyPrepApi"), exports);
42
+ __exportStar(require("./SyllabusAnalysisApi"), exports);
42
43
  __exportStar(require("./TagsApi"), exports);
43
44
  __exportStar(require("./TaxonomiesApi"), exports);
44
45
  __exportStar(require("./TaxonomyEnrollmentsApi"), exports);
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import * as runtime from '../runtime';
13
+ import type { SyllabusAnalysisStatus, SyllabusAnalysisStatusView, TriggerSyllabusAnalysisRequest } from '../models/index';
14
+ export interface GetSyllabusAnalysisStatusRequest {
15
+ courseId: string;
16
+ canvasDomain: string;
17
+ xUserId: string;
18
+ }
19
+ export interface TriggerSyllabusAnalysisOperationRequest {
20
+ xUserId: string;
21
+ triggerSyllabusAnalysisRequest: TriggerSyllabusAnalysisRequest;
22
+ xCanvasToken?: string;
23
+ }
24
+ /**
25
+ *
26
+ */
27
+ export declare class SyllabusAnalysisApi extends runtime.BaseAPI {
28
+ /**
29
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
30
+ * Get syllabus analysis status
31
+ */
32
+ getSyllabusAnalysisStatusRaw(requestParameters: GetSyllabusAnalysisStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SyllabusAnalysisStatusView>>;
33
+ /**
34
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
35
+ * Get syllabus analysis status
36
+ */
37
+ getSyllabusAnalysisStatus(requestParameters: GetSyllabusAnalysisStatusRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SyllabusAnalysisStatusView>;
38
+ /**
39
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
40
+ * Trigger syllabus analysis
41
+ */
42
+ triggerSyllabusAnalysisRaw(requestParameters: TriggerSyllabusAnalysisOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SyllabusAnalysisStatus>>;
43
+ /**
44
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
45
+ * Trigger syllabus analysis
46
+ */
47
+ triggerSyllabusAnalysis(requestParameters: TriggerSyllabusAnalysisOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SyllabusAnalysisStatus>;
48
+ }
@@ -0,0 +1,123 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Athena API
5
+ * REST API for the Athena system
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ import * as runtime from '../runtime';
24
+ import { SyllabusAnalysisStatusFromJSON, SyllabusAnalysisStatusViewFromJSON, TriggerSyllabusAnalysisRequestToJSON, } from '../models/index';
25
+ /**
26
+ *
27
+ */
28
+ export class SyllabusAnalysisApi extends runtime.BaseAPI {
29
+ /**
30
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
31
+ * Get syllabus analysis status
32
+ */
33
+ getSyllabusAnalysisStatusRaw(requestParameters, initOverrides) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ if (requestParameters['courseId'] == null) {
36
+ throw new runtime.RequiredError('courseId', 'Required parameter "courseId" was null or undefined when calling getSyllabusAnalysisStatus().');
37
+ }
38
+ if (requestParameters['canvasDomain'] == null) {
39
+ throw new runtime.RequiredError('canvasDomain', 'Required parameter "canvasDomain" was null or undefined when calling getSyllabusAnalysisStatus().');
40
+ }
41
+ if (requestParameters['xUserId'] == null) {
42
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling getSyllabusAnalysisStatus().');
43
+ }
44
+ const queryParameters = {};
45
+ if (requestParameters['courseId'] != null) {
46
+ queryParameters['courseId'] = requestParameters['courseId'];
47
+ }
48
+ if (requestParameters['canvasDomain'] != null) {
49
+ queryParameters['canvasDomain'] = requestParameters['canvasDomain'];
50
+ }
51
+ const headerParameters = {};
52
+ if (requestParameters['xUserId'] != null) {
53
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
54
+ }
55
+ if (this.configuration && this.configuration.apiKey) {
56
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
57
+ }
58
+ let urlPath = `/api/v1/syllabus-analysis`;
59
+ const response = yield this.request({
60
+ path: urlPath,
61
+ method: 'GET',
62
+ headers: headerParameters,
63
+ query: queryParameters,
64
+ }, initOverrides);
65
+ return new runtime.JSONApiResponse(response, (jsonValue) => SyllabusAnalysisStatusViewFromJSON(jsonValue));
66
+ });
67
+ }
68
+ /**
69
+ * Returns the syllabus-analysis lifecycle status for a student+course so the consuming app can show \'analyzed / found N / none / not yet\'. Returns `not_yet` (never a 404) when no analysis has run.
70
+ * Get syllabus analysis status
71
+ */
72
+ getSyllabusAnalysisStatus(requestParameters, initOverrides) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ const response = yield this.getSyllabusAnalysisStatusRaw(requestParameters, initOverrides);
75
+ return yield response.value();
76
+ });
77
+ }
78
+ /**
79
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
80
+ * Trigger syllabus analysis
81
+ */
82
+ triggerSyllabusAnalysisRaw(requestParameters, initOverrides) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ if (requestParameters['xUserId'] == null) {
85
+ throw new runtime.RequiredError('xUserId', 'Required parameter "xUserId" was null or undefined when calling triggerSyllabusAnalysis().');
86
+ }
87
+ if (requestParameters['triggerSyllabusAnalysisRequest'] == null) {
88
+ throw new runtime.RequiredError('triggerSyllabusAnalysisRequest', 'Required parameter "triggerSyllabusAnalysisRequest" was null or undefined when calling triggerSyllabusAnalysis().');
89
+ }
90
+ const queryParameters = {};
91
+ const headerParameters = {};
92
+ headerParameters['Content-Type'] = 'application/json';
93
+ if (requestParameters['xCanvasToken'] != null) {
94
+ headerParameters['X-Canvas-Token'] = String(requestParameters['xCanvasToken']);
95
+ }
96
+ if (requestParameters['xUserId'] != null) {
97
+ headerParameters['X-User-Id'] = String(requestParameters['xUserId']);
98
+ }
99
+ if (this.configuration && this.configuration.apiKey) {
100
+ headerParameters["X-Auth-Token"] = yield this.configuration.apiKey("X-Auth-Token"); // AuthToken authentication
101
+ }
102
+ let urlPath = `/api/v1/syllabus-analysis`;
103
+ const response = yield this.request({
104
+ path: urlPath,
105
+ method: 'POST',
106
+ headers: headerParameters,
107
+ query: queryParameters,
108
+ body: TriggerSyllabusAnalysisRequestToJSON(requestParameters['triggerSyllabusAnalysisRequest']),
109
+ }, initOverrides);
110
+ return new runtime.JSONApiResponse(response, (jsonValue) => SyllabusAnalysisStatusFromJSON(jsonValue));
111
+ });
112
+ }
113
+ /**
114
+ * Begins LLM-driven extraction of graded assessments (exams) from a course syllabus and returns a 202 status snapshot; analysis runs in the background. Idempotent per student+course: an unchanged, already-analyzed syllabus is a no-op that returns the previously derived objectives. The Canvas API token is read from the `X-Canvas-Token` header (used downstream to resolve any referenced file content); `canvasDomain` is part of the request body.
115
+ * Trigger syllabus analysis
116
+ */
117
+ triggerSyllabusAnalysis(requestParameters, initOverrides) {
118
+ return __awaiter(this, void 0, void 0, function* () {
119
+ const response = yield this.triggerSyllabusAnalysisRaw(requestParameters, initOverrides);
120
+ return yield response.value();
121
+ });
122
+ }
123
+ }
@@ -21,6 +21,7 @@ export * from './ServiceTokensApi';
21
21
  export * from './StudyObjectiveConceptsApi';
22
22
  export * from './StudyObjectivesApi';
23
23
  export * from './StudyPrepApi';
24
+ export * from './SyllabusAnalysisApi';
24
25
  export * from './TagsApi';
25
26
  export * from './TaxonomiesApi';
26
27
  export * from './TaxonomyEnrollmentsApi';
@@ -23,6 +23,7 @@ export * from './ServiceTokensApi';
23
23
  export * from './StudyObjectiveConceptsApi';
24
24
  export * from './StudyObjectivesApi';
25
25
  export * from './StudyPrepApi';
26
+ export * from './SyllabusAnalysisApi';
26
27
  export * from './TagsApi';
27
28
  export * from './TaxonomiesApi';
28
29
  export * from './TaxonomyEnrollmentsApi';
@@ -35,6 +35,12 @@ export interface StudyObjective {
35
35
  * @memberof StudyObjective
36
36
  */
37
37
  courseId: string;
38
+ /**
39
+ * Origin of the objective: 'user' (client-created) or 'syllabus' (derived internally). Read-only.
40
+ * @type {string}
41
+ * @memberof StudyObjective
42
+ */
43
+ source: StudyObjectiveSourceEnum;
38
44
  /**
39
45
  *
40
46
  * @type {string}
@@ -78,6 +84,14 @@ export interface StudyObjective {
78
84
  */
79
85
  updatedAt: Date;
80
86
  }
87
+ /**
88
+ * @export
89
+ */
90
+ export declare const StudyObjectiveSourceEnum: {
91
+ readonly User: "user";
92
+ readonly Syllabus: "syllabus";
93
+ };
94
+ export type StudyObjectiveSourceEnum = typeof StudyObjectiveSourceEnum[keyof typeof StudyObjectiveSourceEnum];
81
95
  /**
82
96
  * Check if a given object implements the StudyObjective interface.
83
97
  */
@@ -13,6 +13,13 @@
13
13
  */
14
14
  import { StudyObjectiveFileAttachmentFromJSON, StudyObjectiveFileAttachmentToJSON, } from './StudyObjectiveFileAttachment';
15
15
  import { StudyObjectiveCanvasDocumentFromJSON, StudyObjectiveCanvasDocumentToJSON, } from './StudyObjectiveCanvasDocument';
16
+ /**
17
+ * @export
18
+ */
19
+ export const StudyObjectiveSourceEnum = {
20
+ User: 'user',
21
+ Syllabus: 'syllabus'
22
+ };
16
23
  /**
17
24
  * Check if a given object implements the StudyObjective interface.
18
25
  */
@@ -23,6 +30,8 @@ export function instanceOfStudyObjective(value) {
23
30
  return false;
24
31
  if (!('courseId' in value) || value['courseId'] === undefined)
25
32
  return false;
33
+ if (!('source' in value) || value['source'] === undefined)
34
+ return false;
26
35
  if (!('title' in value) || value['title'] === undefined)
27
36
  return false;
28
37
  if (!('notes' in value) || value['notes'] === undefined)
@@ -50,6 +59,7 @@ export function StudyObjectiveFromJSONTyped(json, ignoreDiscriminator) {
50
59
  'id': json['id'],
51
60
  'accountUserId': json['accountUserId'],
52
61
  'courseId': json['courseId'],
62
+ 'source': json['source'],
53
63
  'title': json['title'],
54
64
  'notes': json['notes'],
55
65
  'fileAttachments': (json['fileAttachments'].map(StudyObjectiveFileAttachmentFromJSON)),
@@ -70,6 +80,7 @@ export function StudyObjectiveToJSONTyped(value, ignoreDiscriminator = false) {
70
80
  'id': value['id'],
71
81
  'accountUserId': value['accountUserId'],
72
82
  'courseId': value['courseId'],
83
+ 'source': value['source'],
73
84
  'title': value['title'],
74
85
  'notes': value['notes'],
75
86
  'fileAttachments': (value['fileAttachments'].map(StudyObjectiveFileAttachmentToJSON)),
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Athena API
3
+ * REST API for the Athena system
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface SyllabusAnalysisObjective
16
+ */
17
+ export interface SyllabusAnalysisObjective {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof SyllabusAnalysisObjective
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof SyllabusAnalysisObjective
28
+ */
29
+ courseId: string;
30
+ /**
31
+ * Origin of the objective. Always 'syllabus' for analysis results.
32
+ * @type {string}
33
+ * @memberof SyllabusAnalysisObjective
34
+ */
35
+ source: SyllabusAnalysisObjectiveSourceEnum;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof SyllabusAnalysisObjective
40
+ */
41
+ title: string;
42
+ /**
43
+ *
44
+ * @type {Date}
45
+ * @memberof SyllabusAnalysisObjective
46
+ */
47
+ dueAt: Date | null;
48
+ }
49
+ /**
50
+ * @export
51
+ */
52
+ export declare const SyllabusAnalysisObjectiveSourceEnum: {
53
+ readonly User: "user";
54
+ readonly Syllabus: "syllabus";
55
+ };
56
+ export type SyllabusAnalysisObjectiveSourceEnum = typeof SyllabusAnalysisObjectiveSourceEnum[keyof typeof SyllabusAnalysisObjectiveSourceEnum];
57
+ /**
58
+ * Check if a given object implements the SyllabusAnalysisObjective interface.
59
+ */
60
+ export declare function instanceOfSyllabusAnalysisObjective(value: object): value is SyllabusAnalysisObjective;
61
+ export declare function SyllabusAnalysisObjectiveFromJSON(json: any): SyllabusAnalysisObjective;
62
+ export declare function SyllabusAnalysisObjectiveFromJSONTyped(json: any, ignoreDiscriminator: boolean): SyllabusAnalysisObjective;
63
+ export declare function SyllabusAnalysisObjectiveToJSON(json: any): SyllabusAnalysisObjective;
64
+ export declare function SyllabusAnalysisObjectiveToJSONTyped(value?: SyllabusAnalysisObjective | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,66 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Athena API
5
+ * REST API for the Athena system
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const SyllabusAnalysisObjectiveSourceEnum = {
18
+ User: 'user',
19
+ Syllabus: 'syllabus'
20
+ };
21
+ /**
22
+ * Check if a given object implements the SyllabusAnalysisObjective interface.
23
+ */
24
+ export function instanceOfSyllabusAnalysisObjective(value) {
25
+ if (!('id' in value) || value['id'] === undefined)
26
+ return false;
27
+ if (!('courseId' in value) || value['courseId'] === undefined)
28
+ return false;
29
+ if (!('source' in value) || value['source'] === undefined)
30
+ return false;
31
+ if (!('title' in value) || value['title'] === undefined)
32
+ return false;
33
+ if (!('dueAt' in value) || value['dueAt'] === undefined)
34
+ return false;
35
+ return true;
36
+ }
37
+ export function SyllabusAnalysisObjectiveFromJSON(json) {
38
+ return SyllabusAnalysisObjectiveFromJSONTyped(json, false);
39
+ }
40
+ export function SyllabusAnalysisObjectiveFromJSONTyped(json, ignoreDiscriminator) {
41
+ if (json == null) {
42
+ return json;
43
+ }
44
+ return {
45
+ 'id': json['id'],
46
+ 'courseId': json['courseId'],
47
+ 'source': json['source'],
48
+ 'title': json['title'],
49
+ 'dueAt': (json['dueAt'] == null ? null : new Date(json['dueAt'])),
50
+ };
51
+ }
52
+ export function SyllabusAnalysisObjectiveToJSON(json) {
53
+ return SyllabusAnalysisObjectiveToJSONTyped(json, false);
54
+ }
55
+ export function SyllabusAnalysisObjectiveToJSONTyped(value, ignoreDiscriminator = false) {
56
+ if (value == null) {
57
+ return value;
58
+ }
59
+ return {
60
+ 'id': value['id'],
61
+ 'courseId': value['courseId'],
62
+ 'source': value['source'],
63
+ 'title': value['title'],
64
+ 'dueAt': value['dueAt'] == null ? value['dueAt'] : value['dueAt'].toISOString(),
65
+ };
66
+ }