@instructure/athena-api-client 3.42.2 → 3.44.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 (42) hide show
  1. package/README.md +2 -0
  2. package/dist/esm/models/ChatRequestMessageMetadata.d.ts +14 -1
  3. package/dist/esm/models/ChatRequestMessageMetadata.js +8 -0
  4. package/dist/esm/models/ChatRequestQuizSettings.d.ts +19 -0
  5. package/dist/esm/models/ChatRequestQuizSettings.js +10 -0
  6. package/dist/esm/models/Quiz.d.ts +7 -0
  7. package/dist/esm/models/Quiz.js +3 -0
  8. package/dist/esm/models/QuizBasisSnapshot.d.ts +76 -0
  9. package/dist/esm/models/QuizBasisSnapshot.js +77 -0
  10. package/dist/esm/models/QuizListItem.d.ts +7 -0
  11. package/dist/esm/models/QuizListItem.js +3 -0
  12. package/dist/esm/models/QuizWithQuestions.d.ts +7 -0
  13. package/dist/esm/models/QuizWithQuestions.js +3 -0
  14. package/dist/esm/models/StudyObjective.d.ts +28 -0
  15. package/dist/esm/models/StudyObjective.js +15 -0
  16. package/dist/esm/models/StudyObjectiveAccess.d.ts +159 -0
  17. package/dist/esm/models/StudyObjectiveAccess.js +136 -0
  18. package/dist/esm/models/UpcomingStudyObjective.d.ts +28 -0
  19. package/dist/esm/models/UpcomingStudyObjective.js +15 -0
  20. package/dist/esm/models/index.d.ts +2 -0
  21. package/dist/esm/models/index.js +2 -0
  22. package/dist/models/ChatRequestMessageMetadata.d.ts +14 -1
  23. package/dist/models/ChatRequestMessageMetadata.js +9 -0
  24. package/dist/models/ChatRequestQuizSettings.d.ts +19 -0
  25. package/dist/models/ChatRequestQuizSettings.js +11 -1
  26. package/dist/models/Quiz.d.ts +7 -0
  27. package/dist/models/Quiz.js +3 -0
  28. package/dist/models/QuizBasisSnapshot.d.ts +76 -0
  29. package/dist/models/QuizBasisSnapshot.js +85 -0
  30. package/dist/models/QuizListItem.d.ts +7 -0
  31. package/dist/models/QuizListItem.js +3 -0
  32. package/dist/models/QuizWithQuestions.d.ts +7 -0
  33. package/dist/models/QuizWithQuestions.js +3 -0
  34. package/dist/models/StudyObjective.d.ts +28 -0
  35. package/dist/models/StudyObjective.js +16 -1
  36. package/dist/models/StudyObjectiveAccess.d.ts +159 -0
  37. package/dist/models/StudyObjectiveAccess.js +144 -0
  38. package/dist/models/UpcomingStudyObjective.d.ts +28 -0
  39. package/dist/models/UpcomingStudyObjective.js +16 -1
  40. package/dist/models/index.d.ts +2 -0
  41. package/dist/models/index.js +2 -0
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -329,6 +329,7 @@ All URIs are relative to *http://localhost:3000*
329
329
  - [PracticeQuizStatus](docs/PracticeQuizStatus.md)
330
330
  - [PracticeQuizStatusList](docs/PracticeQuizStatusList.md)
331
331
  - [Quiz](docs/Quiz.md)
332
+ - [QuizBasisSnapshot](docs/QuizBasisSnapshot.md)
332
333
  - [QuizConceptSummary](docs/QuizConceptSummary.md)
333
334
  - [QuizListItem](docs/QuizListItem.md)
334
335
  - [QuizQuestion](docs/QuizQuestion.md)
@@ -354,6 +355,7 @@ All URIs are relative to *http://localhost:3000*
354
355
  - [ServiceToken](docs/ServiceToken.md)
355
356
  - [SharedQuiz](docs/SharedQuiz.md)
356
357
  - [StudyObjective](docs/StudyObjective.md)
358
+ - [StudyObjectiveAccess](docs/StudyObjectiveAccess.md)
357
359
  - [StudyObjectiveCanvasDocument](docs/StudyObjectiveCanvasDocument.md)
358
360
  - [StudyObjectiveConceptAttachment](docs/StudyObjectiveConceptAttachment.md)
359
361
  - [StudyObjectiveConceptAttachmentList](docs/StudyObjectiveConceptAttachmentList.md)
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  /**
13
- * Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`) and to mark client-auto-fired kickoff turns (`synthetic`). All fields are optional; callers supply whichever subset applies to the message being sent.
13
+ * Optional metadata attached to the user message. Used by learning session chats to bind an answer to its inline question (`inlineQuestionId` + `questionType` + `structuredAnswer`), to mark client-auto-fired kickoff turns (`synthetic`), and to mark a first turn the client wrote for the learner (`seeded`). All fields are optional; callers supply whichever subset applies to the message being sent.
14
14
  * @export
15
15
  * @interface ChatRequestMessageMetadata
16
16
  */
@@ -39,7 +39,20 @@ export interface ChatRequestMessageMetadata {
39
39
  * @memberof ChatRequestMessageMetadata
40
40
  */
41
41
  synthetic?: boolean;
42
+ /**
43
+ * Set when the client wrote this message for the learner and sent it as their first turn: 'objective-nudge' is the study-objective email nudge's opening query. The learner never typed it, so its words are never read as their account of what an assessment covers. Unlike `synthetic`, the message is shown in the transcript.
44
+ * @type {string}
45
+ * @memberof ChatRequestMessageMetadata
46
+ */
47
+ seeded?: ChatRequestMessageMetadataSeededEnum;
42
48
  }
49
+ /**
50
+ * @export
51
+ */
52
+ export declare const ChatRequestMessageMetadataSeededEnum: {
53
+ readonly ObjectiveNudge: "objective-nudge";
54
+ };
55
+ export type ChatRequestMessageMetadataSeededEnum = typeof ChatRequestMessageMetadataSeededEnum[keyof typeof ChatRequestMessageMetadataSeededEnum];
43
56
  /**
44
57
  * Check if a given object implements the ChatRequestMessageMetadata interface.
45
58
  */
@@ -11,6 +11,12 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ /**
15
+ * @export
16
+ */
17
+ export const ChatRequestMessageMetadataSeededEnum = {
18
+ ObjectiveNudge: 'objective-nudge'
19
+ };
14
20
  /**
15
21
  * Check if a given object implements the ChatRequestMessageMetadata interface.
16
22
  */
@@ -29,6 +35,7 @@ export function ChatRequestMessageMetadataFromJSONTyped(json, ignoreDiscriminato
29
35
  'questionType': json['questionType'] == null ? undefined : json['questionType'],
30
36
  'structuredAnswer': json['structuredAnswer'] == null ? undefined : json['structuredAnswer'],
31
37
  'synthetic': json['synthetic'] == null ? undefined : json['synthetic'],
38
+ 'seeded': json['seeded'] == null ? undefined : json['seeded'],
32
39
  };
33
40
  }
34
41
  export function ChatRequestMessageMetadataToJSON(json) {
@@ -43,5 +50,6 @@ export function ChatRequestMessageMetadataToJSONTyped(value, ignoreDiscriminator
43
50
  'questionType': value['questionType'],
44
51
  'structuredAnswer': value['structuredAnswer'],
45
52
  'synthetic': value['synthetic'],
53
+ 'seeded': value['seeded'],
46
54
  };
47
55
  }
@@ -33,6 +33,18 @@ export interface ChatRequestQuizSettings {
33
33
  * @memberof ChatRequestQuizSettings
34
34
  */
35
35
  instructions?: string;
36
+ /**
37
+ * What the learner says the assessment covers, typed into the study panel's scope box (sent instead of `instructions` when the box asks what the assessment covers). The quiz is built on it, and on an objective chat it is kept as the learner's scope for that objective. An empty string means the learner cleared the box: their kept scope is cleared too.
38
+ * @type {string}
39
+ * @memberof ChatRequestQuizSettings
40
+ */
41
+ scope?: string;
42
+ /**
43
+ * `suggested` when `scope` is Athena's suggested topics (`StudyObjective.access.suggestedScope`) used unedited ("Use these topics"). Omit for anything the learner typed or edited: that scope is their own.
44
+ * @type {string}
45
+ * @memberof ChatRequestQuizSettings
46
+ */
47
+ scopeSource?: ChatRequestQuizSettingsScopeSourceEnum;
36
48
  }
37
49
  /**
38
50
  * @export
@@ -44,6 +56,13 @@ export declare const ChatRequestQuizSettingsQuestionTypesEnum: {
44
56
  readonly TeachBack: "teach-back";
45
57
  };
46
58
  export type ChatRequestQuizSettingsQuestionTypesEnum = typeof ChatRequestQuizSettingsQuestionTypesEnum[keyof typeof ChatRequestQuizSettingsQuestionTypesEnum];
59
+ /**
60
+ * @export
61
+ */
62
+ export declare const ChatRequestQuizSettingsScopeSourceEnum: {
63
+ readonly Suggested: "suggested";
64
+ };
65
+ export type ChatRequestQuizSettingsScopeSourceEnum = typeof ChatRequestQuizSettingsScopeSourceEnum[keyof typeof ChatRequestQuizSettingsScopeSourceEnum];
47
66
  /**
48
67
  * Check if a given object implements the ChatRequestQuizSettings interface.
49
68
  */
@@ -20,6 +20,12 @@ export const ChatRequestQuizSettingsQuestionTypesEnum = {
20
20
  SpotError: 'spot-error',
21
21
  TeachBack: 'teach-back'
22
22
  };
23
+ /**
24
+ * @export
25
+ */
26
+ export const ChatRequestQuizSettingsScopeSourceEnum = {
27
+ Suggested: 'suggested'
28
+ };
23
29
  /**
24
30
  * Check if a given object implements the ChatRequestQuizSettings interface.
25
31
  */
@@ -37,6 +43,8 @@ export function ChatRequestQuizSettingsFromJSONTyped(json, ignoreDiscriminator)
37
43
  'questionTypes': json['questionTypes'] == null ? undefined : json['questionTypes'],
38
44
  'questionCount': json['questionCount'] == null ? undefined : json['questionCount'],
39
45
  'instructions': json['instructions'] == null ? undefined : json['instructions'],
46
+ 'scope': json['scope'] == null ? undefined : json['scope'],
47
+ 'scopeSource': json['scopeSource'] == null ? undefined : json['scopeSource'],
40
48
  };
41
49
  }
42
50
  export function ChatRequestQuizSettingsToJSON(json) {
@@ -50,5 +58,7 @@ export function ChatRequestQuizSettingsToJSONTyped(value, ignoreDiscriminator =
50
58
  'questionTypes': value['questionTypes'],
51
59
  'questionCount': value['questionCount'],
52
60
  'instructions': value['instructions'],
61
+ 'scope': value['scope'],
62
+ 'scopeSource': value['scopeSource'],
53
63
  };
54
64
  }
@@ -9,6 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
12
13
  /**
13
14
  *
14
15
  * @export
@@ -63,6 +64,12 @@ export interface Quiz {
63
64
  * @memberof Quiz
64
65
  */
65
66
  expectedQuestionCount: number | null;
67
+ /**
68
+ * What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
69
+ * @type {QuizBasisSnapshot}
70
+ * @memberof Quiz
71
+ */
72
+ basisSnapshot?: QuizBasisSnapshot | null;
66
73
  /**
67
74
  *
68
75
  * @type {Date}
@@ -11,6 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
14
15
  /**
15
16
  * @export
16
17
  */
@@ -66,6 +67,7 @@ export function QuizFromJSONTyped(json, ignoreDiscriminator) {
66
67
  'mode': json['mode'],
67
68
  'generationStatus': json['generationStatus'],
68
69
  'expectedQuestionCount': json['expectedQuestionCount'],
70
+ 'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
69
71
  'createdAt': (new Date(json['createdAt'])),
70
72
  };
71
73
  }
@@ -85,6 +87,7 @@ export function QuizToJSONTyped(value, ignoreDiscriminator = false) {
85
87
  'mode': value['mode'],
86
88
  'generationStatus': value['generationStatus'],
87
89
  'expectedQuestionCount': value['expectedQuestionCount'],
90
+ 'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
88
91
  'createdAt': value['createdAt'].toISOString(),
89
92
  };
90
93
  }
@@ -0,0 +1,76 @@
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 QuizBasisSnapshot
16
+ */
17
+ export interface QuizBasisSnapshot {
18
+ /**
19
+ * What the questions were actually built from: 'learner-materials' (the learner's own files, which the generator reports using), 'course-material' (course files read from Canvas, same test), 'learner-scope' (what the learner said the assessment covers), or 'general' (practice on the subject).
20
+ * @type {string}
21
+ * @memberof QuizBasisSnapshot
22
+ */
23
+ basis: QuizBasisSnapshotBasisEnum;
24
+ /**
25
+ * A learner file was in play but never reached the generator (it could not be read, or generation retried without it).
26
+ * @type {boolean}
27
+ * @memberof QuizBasisSnapshot
28
+ */
29
+ droppedFile: boolean;
30
+ /**
31
+ * Whether anything said what the assessment covers when the quiz was generated.
32
+ * @type {boolean}
33
+ * @memberof QuizBasisSnapshot
34
+ */
35
+ scopeKnown: boolean;
36
+ /**
37
+ * The course's access state at generation time; null when none was read.
38
+ * @type {string}
39
+ * @memberof QuizBasisSnapshot
40
+ */
41
+ accessState: QuizBasisSnapshotAccessStateEnum | null;
42
+ /**
43
+ * The access rule version behind accessState; null with it.
44
+ * @type {number}
45
+ * @memberof QuizBasisSnapshot
46
+ */
47
+ ruleVersion: number | null;
48
+ }
49
+ /**
50
+ * @export
51
+ */
52
+ export declare const QuizBasisSnapshotBasisEnum: {
53
+ readonly CourseMaterial: "course-material";
54
+ readonly LearnerMaterials: "learner-materials";
55
+ readonly LearnerScope: "learner-scope";
56
+ readonly General: "general";
57
+ };
58
+ export type QuizBasisSnapshotBasisEnum = typeof QuizBasisSnapshotBasisEnum[keyof typeof QuizBasisSnapshotBasisEnum];
59
+ /**
60
+ * @export
61
+ */
62
+ export declare const QuizBasisSnapshotAccessStateEnum: {
63
+ readonly Grounded: "grounded";
64
+ readonly Thin: "thin";
65
+ readonly Unreadable: "unreadable";
66
+ readonly Unknown: "unknown";
67
+ };
68
+ export type QuizBasisSnapshotAccessStateEnum = typeof QuizBasisSnapshotAccessStateEnum[keyof typeof QuizBasisSnapshotAccessStateEnum];
69
+ /**
70
+ * Check if a given object implements the QuizBasisSnapshot interface.
71
+ */
72
+ export declare function instanceOfQuizBasisSnapshot(value: object): value is QuizBasisSnapshot;
73
+ export declare function QuizBasisSnapshotFromJSON(json: any): QuizBasisSnapshot;
74
+ export declare function QuizBasisSnapshotFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizBasisSnapshot;
75
+ export declare function QuizBasisSnapshotToJSON(json: any): QuizBasisSnapshot;
76
+ export declare function QuizBasisSnapshotToJSONTyped(value?: QuizBasisSnapshot | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,77 @@
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 QuizBasisSnapshotBasisEnum = {
18
+ CourseMaterial: 'course-material',
19
+ LearnerMaterials: 'learner-materials',
20
+ LearnerScope: 'learner-scope',
21
+ General: 'general'
22
+ };
23
+ /**
24
+ * @export
25
+ */
26
+ export const QuizBasisSnapshotAccessStateEnum = {
27
+ Grounded: 'grounded',
28
+ Thin: 'thin',
29
+ Unreadable: 'unreadable',
30
+ Unknown: 'unknown'
31
+ };
32
+ /**
33
+ * Check if a given object implements the QuizBasisSnapshot interface.
34
+ */
35
+ export function instanceOfQuizBasisSnapshot(value) {
36
+ if (!('basis' in value) || value['basis'] === undefined)
37
+ return false;
38
+ if (!('droppedFile' in value) || value['droppedFile'] === undefined)
39
+ return false;
40
+ if (!('scopeKnown' in value) || value['scopeKnown'] === undefined)
41
+ return false;
42
+ if (!('accessState' in value) || value['accessState'] === undefined)
43
+ return false;
44
+ if (!('ruleVersion' in value) || value['ruleVersion'] === undefined)
45
+ return false;
46
+ return true;
47
+ }
48
+ export function QuizBasisSnapshotFromJSON(json) {
49
+ return QuizBasisSnapshotFromJSONTyped(json, false);
50
+ }
51
+ export function QuizBasisSnapshotFromJSONTyped(json, ignoreDiscriminator) {
52
+ if (json == null) {
53
+ return json;
54
+ }
55
+ return {
56
+ 'basis': json['basis'],
57
+ 'droppedFile': json['droppedFile'],
58
+ 'scopeKnown': json['scopeKnown'],
59
+ 'accessState': json['accessState'],
60
+ 'ruleVersion': json['ruleVersion'],
61
+ };
62
+ }
63
+ export function QuizBasisSnapshotToJSON(json) {
64
+ return QuizBasisSnapshotToJSONTyped(json, false);
65
+ }
66
+ export function QuizBasisSnapshotToJSONTyped(value, ignoreDiscriminator = false) {
67
+ if (value == null) {
68
+ return value;
69
+ }
70
+ return {
71
+ 'basis': value['basis'],
72
+ 'droppedFile': value['droppedFile'],
73
+ 'scopeKnown': value['scopeKnown'],
74
+ 'accessState': value['accessState'],
75
+ 'ruleVersion': value['ruleVersion'],
76
+ };
77
+ }
@@ -9,6 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
12
13
  /**
13
14
  *
14
15
  * @export
@@ -63,6 +64,12 @@ export interface QuizListItem {
63
64
  * @memberof QuizListItem
64
65
  */
65
66
  expectedQuestionCount: number | null;
67
+ /**
68
+ * What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
69
+ * @type {QuizBasisSnapshot}
70
+ * @memberof QuizListItem
71
+ */
72
+ basisSnapshot?: QuizBasisSnapshot | null;
66
73
  /**
67
74
  *
68
75
  * @type {Date}
@@ -11,6 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
14
15
  /**
15
16
  * @export
16
17
  */
@@ -68,6 +69,7 @@ export function QuizListItemFromJSONTyped(json, ignoreDiscriminator) {
68
69
  'mode': json['mode'],
69
70
  'generationStatus': json['generationStatus'],
70
71
  'expectedQuestionCount': json['expectedQuestionCount'],
72
+ 'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
71
73
  'createdAt': (new Date(json['createdAt'])),
72
74
  'questionCount': json['questionCount'],
73
75
  };
@@ -88,6 +90,7 @@ export function QuizListItemToJSONTyped(value, ignoreDiscriminator = false) {
88
90
  'mode': value['mode'],
89
91
  'generationStatus': value['generationStatus'],
90
92
  'expectedQuestionCount': value['expectedQuestionCount'],
93
+ 'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
91
94
  'createdAt': value['createdAt'].toISOString(),
92
95
  'questionCount': value['questionCount'],
93
96
  };
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { QuizQuestion } from './QuizQuestion';
13
+ import type { QuizBasisSnapshot } from './QuizBasisSnapshot';
13
14
  /**
14
15
  *
15
16
  * @export
@@ -64,6 +65,12 @@ export interface QuizWithQuestions {
64
65
  * @memberof QuizWithQuestions
65
66
  */
66
67
  expectedQuestionCount: number | null;
68
+ /**
69
+ * What this quiz was built from, recorded once with the quiz so a reload or a retake reads the same. Null for quizzes generated before it was recorded.
70
+ * @type {QuizBasisSnapshot}
71
+ * @memberof QuizWithQuestions
72
+ */
73
+ basisSnapshot?: QuizBasisSnapshot | null;
67
74
  /**
68
75
  *
69
76
  * @type {Date}
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { QuizQuestionFromJSON, QuizQuestionToJSON, } from './QuizQuestion';
15
+ import { QuizBasisSnapshotFromJSON, QuizBasisSnapshotToJSON, } from './QuizBasisSnapshot';
15
16
  /**
16
17
  * @export
17
18
  */
@@ -69,6 +70,7 @@ export function QuizWithQuestionsFromJSONTyped(json, ignoreDiscriminator) {
69
70
  'mode': json['mode'],
70
71
  'generationStatus': json['generationStatus'],
71
72
  'expectedQuestionCount': json['expectedQuestionCount'],
73
+ 'basisSnapshot': json['basisSnapshot'] == null ? undefined : QuizBasisSnapshotFromJSON(json['basisSnapshot']),
72
74
  'createdAt': (new Date(json['createdAt'])),
73
75
  'questions': (json['questions'].map(QuizQuestionFromJSON)),
74
76
  };
@@ -89,6 +91,7 @@ export function QuizWithQuestionsToJSONTyped(value, ignoreDiscriminator = false)
89
91
  'mode': value['mode'],
90
92
  'generationStatus': value['generationStatus'],
91
93
  'expectedQuestionCount': value['expectedQuestionCount'],
94
+ 'basisSnapshot': QuizBasisSnapshotToJSON(value['basisSnapshot']),
92
95
  'createdAt': value['createdAt'].toISOString(),
93
96
  'questions': (value['questions'].map(QuizQuestionToJSON)),
94
97
  };
@@ -10,6 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import type { StudyObjectiveFileAttachment } from './StudyObjectiveFileAttachment';
13
+ import type { StudyObjectiveAccess } from './StudyObjectiveAccess';
13
14
  import type { StudyObjectiveCanvasDocument } from './StudyObjectiveCanvasDocument';
14
15
  /**
15
16
  *
@@ -101,6 +102,24 @@ export interface StudyObjective {
101
102
  * @memberof StudyObjective
102
103
  */
103
104
  archivedAt: Date | null;
105
+ /**
106
+ * What the Canvas item's course gives Athena to go on, for a Canvas-sourced objective. Null for custom objectives and until Athena has read the course (the read runs with concept extraction and refreshes weekly). Course-level facts shared by every learner on the item, except scopeKnown and scopeKnownReason, which also count this learner's syllabus analysis.
107
+ * @type {StudyObjectiveAccess}
108
+ * @memberof StudyObjective
109
+ */
110
+ access?: StudyObjectiveAccess | null;
111
+ /**
112
+ * What the learner told Athena this assessment covers, in their own words; null when nothing was told. Per-user and never written by a Canvas re-sync.
113
+ * @type {string}
114
+ * @memberof StudyObjective
115
+ */
116
+ learnerScope?: string | null;
117
+ /**
118
+ * The access state Athena last told this learner about for this objective (the thin-context ask, or practice generated from a panel showing it); null when never told. Read-only.
119
+ * @type {string}
120
+ * @memberof StudyObjective
121
+ */
122
+ accessDisclosedState?: StudyObjectiveAccessDisclosedStateEnum | null;
104
123
  /**
105
124
  *
106
125
  * @type {Date}
@@ -123,6 +142,15 @@ export declare const StudyObjectiveSourceEnum: {
123
142
  readonly Template: "template";
124
143
  };
125
144
  export type StudyObjectiveSourceEnum = typeof StudyObjectiveSourceEnum[keyof typeof StudyObjectiveSourceEnum];
145
+ /**
146
+ * @export
147
+ */
148
+ export declare const StudyObjectiveAccessDisclosedStateEnum: {
149
+ readonly Grounded: "grounded";
150
+ readonly Thin: "thin";
151
+ readonly Unreadable: "unreadable";
152
+ };
153
+ export type StudyObjectiveAccessDisclosedStateEnum = typeof StudyObjectiveAccessDisclosedStateEnum[keyof typeof StudyObjectiveAccessDisclosedStateEnum];
126
154
  /**
127
155
  * Check if a given object implements the StudyObjective interface.
128
156
  */
@@ -12,6 +12,7 @@
12
12
  * Do not edit the class manually.
13
13
  */
14
14
  import { StudyObjectiveFileAttachmentFromJSON, StudyObjectiveFileAttachmentToJSON, } from './StudyObjectiveFileAttachment';
15
+ import { StudyObjectiveAccessFromJSON, StudyObjectiveAccessToJSON, } from './StudyObjectiveAccess';
15
16
  import { StudyObjectiveCanvasDocumentFromJSON, StudyObjectiveCanvasDocumentToJSON, } from './StudyObjectiveCanvasDocument';
16
17
  /**
17
18
  * @export
@@ -21,6 +22,14 @@ export const StudyObjectiveSourceEnum = {
21
22
  Syllabus: 'syllabus',
22
23
  Template: 'template'
23
24
  };
25
+ /**
26
+ * @export
27
+ */
28
+ export const StudyObjectiveAccessDisclosedStateEnum = {
29
+ Grounded: 'grounded',
30
+ Thin: 'thin',
31
+ Unreadable: 'unreadable'
32
+ };
24
33
  /**
25
34
  * Check if a given object implements the StudyObjective interface.
26
35
  */
@@ -81,6 +90,9 @@ export function StudyObjectiveFromJSONTyped(json, ignoreDiscriminator) {
81
90
  'canvasDocuments': (json['canvasDocuments'].map(StudyObjectiveCanvasDocumentFromJSON)),
82
91
  'dueAt': (json['dueAt'] == null ? null : new Date(json['dueAt'])),
83
92
  'archivedAt': (json['archivedAt'] == null ? null : new Date(json['archivedAt'])),
93
+ 'access': json['access'] == null ? undefined : StudyObjectiveAccessFromJSON(json['access']),
94
+ 'learnerScope': json['learnerScope'] == null ? undefined : json['learnerScope'],
95
+ 'accessDisclosedState': json['accessDisclosedState'] == null ? undefined : json['accessDisclosedState'],
84
96
  'createdAt': (new Date(json['createdAt'])),
85
97
  'updatedAt': (new Date(json['updatedAt'])),
86
98
  };
@@ -107,6 +119,9 @@ export function StudyObjectiveToJSONTyped(value, ignoreDiscriminator = false) {
107
119
  'canvasDocuments': (value['canvasDocuments'].map(StudyObjectiveCanvasDocumentToJSON)),
108
120
  'dueAt': value['dueAt'] == null ? value['dueAt'] : value['dueAt'].toISOString(),
109
121
  'archivedAt': value['archivedAt'] == null ? value['archivedAt'] : value['archivedAt'].toISOString(),
122
+ 'access': StudyObjectiveAccessToJSON(value['access']),
123
+ 'learnerScope': value['learnerScope'],
124
+ 'accessDisclosedState': value['accessDisclosedState'],
110
125
  'createdAt': value['createdAt'].toISOString(),
111
126
  'updatedAt': value['updatedAt'].toISOString(),
112
127
  };