@instructure/athena-api-client 3.39.3 → 3.40.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 (58) hide show
  1. package/README.md +12 -0
  2. package/dist/apis/AdminApi.d.ts +17 -1
  3. package/dist/apis/AdminApi.js +47 -0
  4. package/dist/apis/QuizzesApi.d.ts +30 -1
  5. package/dist/apis/QuizzesApi.js +87 -0
  6. package/dist/apis/ResourcesApi.d.ts +11 -2
  7. package/dist/apis/ResourcesApi.js +13 -3
  8. package/dist/apis/SharedQuizzesApi.d.ts +46 -0
  9. package/dist/apis/SharedQuizzesApi.js +115 -0
  10. package/dist/apis/index.d.ts +1 -0
  11. package/dist/apis/index.js +1 -0
  12. package/dist/esm/apis/AdminApi.d.ts +17 -1
  13. package/dist/esm/apis/AdminApi.js +48 -1
  14. package/dist/esm/apis/QuizzesApi.d.ts +30 -1
  15. package/dist/esm/apis/QuizzesApi.js +88 -1
  16. package/dist/esm/apis/ResourcesApi.d.ts +11 -2
  17. package/dist/esm/apis/ResourcesApi.js +12 -2
  18. package/dist/esm/apis/SharedQuizzesApi.d.ts +46 -0
  19. package/dist/esm/apis/SharedQuizzesApi.js +111 -0
  20. package/dist/esm/apis/index.d.ts +1 -0
  21. package/dist/esm/apis/index.js +1 -0
  22. package/dist/esm/models/AdminPaginatedQuizParticipantSessions.d.ts +39 -0
  23. package/dist/esm/models/AdminPaginatedQuizParticipantSessions.js +48 -0
  24. package/dist/esm/models/AdminQuizParticipantSessionListItem.d.ts +84 -0
  25. package/dist/esm/models/AdminQuizParticipantSessionListItem.js +80 -0
  26. package/dist/esm/models/AdminQuizParticipantSessionScore.d.ts +44 -0
  27. package/dist/esm/models/AdminQuizParticipantSessionScore.js +51 -0
  28. package/dist/esm/models/QuizSharing.d.ts +50 -0
  29. package/dist/esm/models/QuizSharing.js +55 -0
  30. package/dist/esm/models/ResourceListItem.d.ts +16 -3
  31. package/dist/esm/models/ResourceListItem.js +9 -0
  32. package/dist/esm/models/ResourceSharing.d.ts +44 -0
  33. package/dist/esm/models/ResourceSharing.js +51 -0
  34. package/dist/esm/models/SharedQuiz.d.ts +97 -0
  35. package/dist/esm/models/SharedQuiz.js +90 -0
  36. package/dist/esm/models/UpdateQuizSharingRequest.d.ts +32 -0
  37. package/dist/esm/models/UpdateQuizSharingRequest.js +43 -0
  38. package/dist/esm/models/index.d.ts +7 -0
  39. package/dist/esm/models/index.js +7 -0
  40. package/dist/models/AdminPaginatedQuizParticipantSessions.d.ts +39 -0
  41. package/dist/models/AdminPaginatedQuizParticipantSessions.js +55 -0
  42. package/dist/models/AdminQuizParticipantSessionListItem.d.ts +84 -0
  43. package/dist/models/AdminQuizParticipantSessionListItem.js +88 -0
  44. package/dist/models/AdminQuizParticipantSessionScore.d.ts +44 -0
  45. package/dist/models/AdminQuizParticipantSessionScore.js +58 -0
  46. package/dist/models/QuizSharing.d.ts +50 -0
  47. package/dist/models/QuizSharing.js +62 -0
  48. package/dist/models/ResourceListItem.d.ts +16 -3
  49. package/dist/models/ResourceListItem.js +9 -0
  50. package/dist/models/ResourceSharing.d.ts +44 -0
  51. package/dist/models/ResourceSharing.js +58 -0
  52. package/dist/models/SharedQuiz.d.ts +97 -0
  53. package/dist/models/SharedQuiz.js +98 -0
  54. package/dist/models/UpdateQuizSharingRequest.d.ts +32 -0
  55. package/dist/models/UpdateQuizSharingRequest.js +50 -0
  56. package/dist/models/index.d.ts +7 -0
  57. package/dist/models/index.js +7 -0
  58. package/package.json +1 -1
@@ -0,0 +1,84 @@
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 type { AdminQuizParticipantSessionScore } from './AdminQuizParticipantSessionScore';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface AdminQuizParticipantSessionListItem
17
+ */
18
+ export interface AdminQuizParticipantSessionListItem {
19
+ /**
20
+ *
21
+ * @type {string}
22
+ * @memberof AdminQuizParticipantSessionListItem
23
+ */
24
+ id: string;
25
+ /**
26
+ *
27
+ * @type {string}
28
+ * @memberof AdminQuizParticipantSessionListItem
29
+ */
30
+ quizId: string;
31
+ /**
32
+ * External identifier of the learner who owns the session.
33
+ * @type {string}
34
+ * @memberof AdminQuizParticipantSessionListItem
35
+ */
36
+ userId: string | null;
37
+ /**
38
+ * True for the quiz owner's own sessions, false for a learner who opened the quiz through its share link.
39
+ * @type {boolean}
40
+ * @memberof AdminQuizParticipantSessionListItem
41
+ */
42
+ isOwner: boolean;
43
+ /**
44
+ *
45
+ * @type {string}
46
+ * @memberof AdminQuizParticipantSessionListItem
47
+ */
48
+ status: AdminQuizParticipantSessionListItemStatusEnum;
49
+ /**
50
+ *
51
+ * @type {Date}
52
+ * @memberof AdminQuizParticipantSessionListItem
53
+ */
54
+ startedAt: Date;
55
+ /**
56
+ *
57
+ * @type {Date}
58
+ * @memberof AdminQuizParticipantSessionListItem
59
+ */
60
+ completedAt: Date | null;
61
+ /**
62
+ *
63
+ * @type {AdminQuizParticipantSessionScore}
64
+ * @memberof AdminQuizParticipantSessionListItem
65
+ */
66
+ score: AdminQuizParticipantSessionScore;
67
+ }
68
+ /**
69
+ * @export
70
+ */
71
+ export declare const AdminQuizParticipantSessionListItemStatusEnum: {
72
+ readonly Active: "active";
73
+ readonly Completed: "completed";
74
+ readonly Abandoned: "abandoned";
75
+ };
76
+ export type AdminQuizParticipantSessionListItemStatusEnum = typeof AdminQuizParticipantSessionListItemStatusEnum[keyof typeof AdminQuizParticipantSessionListItemStatusEnum];
77
+ /**
78
+ * Check if a given object implements the AdminQuizParticipantSessionListItem interface.
79
+ */
80
+ export declare function instanceOfAdminQuizParticipantSessionListItem(value: object): value is AdminQuizParticipantSessionListItem;
81
+ export declare function AdminQuizParticipantSessionListItemFromJSON(json: any): AdminQuizParticipantSessionListItem;
82
+ export declare function AdminQuizParticipantSessionListItemFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminQuizParticipantSessionListItem;
83
+ export declare function AdminQuizParticipantSessionListItemToJSON(json: any): AdminQuizParticipantSessionListItem;
84
+ export declare function AdminQuizParticipantSessionListItemToJSONTyped(value?: AdminQuizParticipantSessionListItem | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,80 @@
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
+ import { AdminQuizParticipantSessionScoreFromJSON, AdminQuizParticipantSessionScoreToJSON, } from './AdminQuizParticipantSessionScore';
15
+ /**
16
+ * @export
17
+ */
18
+ export const AdminQuizParticipantSessionListItemStatusEnum = {
19
+ Active: 'active',
20
+ Completed: 'completed',
21
+ Abandoned: 'abandoned'
22
+ };
23
+ /**
24
+ * Check if a given object implements the AdminQuizParticipantSessionListItem interface.
25
+ */
26
+ export function instanceOfAdminQuizParticipantSessionListItem(value) {
27
+ if (!('id' in value) || value['id'] === undefined)
28
+ return false;
29
+ if (!('quizId' in value) || value['quizId'] === undefined)
30
+ return false;
31
+ if (!('userId' in value) || value['userId'] === undefined)
32
+ return false;
33
+ if (!('isOwner' in value) || value['isOwner'] === undefined)
34
+ return false;
35
+ if (!('status' in value) || value['status'] === undefined)
36
+ return false;
37
+ if (!('startedAt' in value) || value['startedAt'] === undefined)
38
+ return false;
39
+ if (!('completedAt' in value) || value['completedAt'] === undefined)
40
+ return false;
41
+ if (!('score' in value) || value['score'] === undefined)
42
+ return false;
43
+ return true;
44
+ }
45
+ export function AdminQuizParticipantSessionListItemFromJSON(json) {
46
+ return AdminQuizParticipantSessionListItemFromJSONTyped(json, false);
47
+ }
48
+ export function AdminQuizParticipantSessionListItemFromJSONTyped(json, ignoreDiscriminator) {
49
+ if (json == null) {
50
+ return json;
51
+ }
52
+ return {
53
+ 'id': json['id'],
54
+ 'quizId': json['quizId'],
55
+ 'userId': json['userId'],
56
+ 'isOwner': json['isOwner'],
57
+ 'status': json['status'],
58
+ 'startedAt': (new Date(json['startedAt'])),
59
+ 'completedAt': (json['completedAt'] == null ? null : new Date(json['completedAt'])),
60
+ 'score': AdminQuizParticipantSessionScoreFromJSON(json['score']),
61
+ };
62
+ }
63
+ export function AdminQuizParticipantSessionListItemToJSON(json) {
64
+ return AdminQuizParticipantSessionListItemToJSONTyped(json, false);
65
+ }
66
+ export function AdminQuizParticipantSessionListItemToJSONTyped(value, ignoreDiscriminator = false) {
67
+ if (value == null) {
68
+ return value;
69
+ }
70
+ return {
71
+ 'id': value['id'],
72
+ 'quizId': value['quizId'],
73
+ 'userId': value['userId'],
74
+ 'isOwner': value['isOwner'],
75
+ 'status': value['status'],
76
+ 'startedAt': value['startedAt'].toISOString(),
77
+ 'completedAt': value['completedAt'] == null ? value['completedAt'] : value['completedAt'].toISOString(),
78
+ 'score': AdminQuizParticipantSessionScoreToJSON(value['score']),
79
+ };
80
+ }
@@ -0,0 +1,44 @@
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 AdminQuizParticipantSessionScore
16
+ */
17
+ export interface AdminQuizParticipantSessionScore {
18
+ /**
19
+ *
20
+ * @type {number}
21
+ * @memberof AdminQuizParticipantSessionScore
22
+ */
23
+ totalCorrect: number;
24
+ /**
25
+ *
26
+ * @type {number}
27
+ * @memberof AdminQuizParticipantSessionScore
28
+ */
29
+ totalQuestions: number;
30
+ /**
31
+ * Questions answered or rated in this session.
32
+ * @type {number}
33
+ * @memberof AdminQuizParticipantSessionScore
34
+ */
35
+ answeredCount: number;
36
+ }
37
+ /**
38
+ * Check if a given object implements the AdminQuizParticipantSessionScore interface.
39
+ */
40
+ export declare function instanceOfAdminQuizParticipantSessionScore(value: object): value is AdminQuizParticipantSessionScore;
41
+ export declare function AdminQuizParticipantSessionScoreFromJSON(json: any): AdminQuizParticipantSessionScore;
42
+ export declare function AdminQuizParticipantSessionScoreFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdminQuizParticipantSessionScore;
43
+ export declare function AdminQuizParticipantSessionScoreToJSON(json: any): AdminQuizParticipantSessionScore;
44
+ export declare function AdminQuizParticipantSessionScoreToJSONTyped(value?: AdminQuizParticipantSessionScore | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,51 @@
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
+ * Check if a given object implements the AdminQuizParticipantSessionScore interface.
16
+ */
17
+ export function instanceOfAdminQuizParticipantSessionScore(value) {
18
+ if (!('totalCorrect' in value) || value['totalCorrect'] === undefined)
19
+ return false;
20
+ if (!('totalQuestions' in value) || value['totalQuestions'] === undefined)
21
+ return false;
22
+ if (!('answeredCount' in value) || value['answeredCount'] === undefined)
23
+ return false;
24
+ return true;
25
+ }
26
+ export function AdminQuizParticipantSessionScoreFromJSON(json) {
27
+ return AdminQuizParticipantSessionScoreFromJSONTyped(json, false);
28
+ }
29
+ export function AdminQuizParticipantSessionScoreFromJSONTyped(json, ignoreDiscriminator) {
30
+ if (json == null) {
31
+ return json;
32
+ }
33
+ return {
34
+ 'totalCorrect': json['totalCorrect'],
35
+ 'totalQuestions': json['totalQuestions'],
36
+ 'answeredCount': json['answeredCount'],
37
+ };
38
+ }
39
+ export function AdminQuizParticipantSessionScoreToJSON(json) {
40
+ return AdminQuizParticipantSessionScoreToJSONTyped(json, false);
41
+ }
42
+ export function AdminQuizParticipantSessionScoreToJSONTyped(value, ignoreDiscriminator = false) {
43
+ if (value == null) {
44
+ return value;
45
+ }
46
+ return {
47
+ 'totalCorrect': value['totalCorrect'],
48
+ 'totalQuestions': value['totalQuestions'],
49
+ 'answeredCount': value['answeredCount'],
50
+ };
51
+ }
@@ -0,0 +1,50 @@
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 QuizSharing
16
+ */
17
+ export interface QuizSharing {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof QuizSharing
22
+ */
23
+ quizId: string;
24
+ /**
25
+ * Whether other learners can currently open this quiz by link.
26
+ * @type {boolean}
27
+ * @memberof QuizSharing
28
+ */
29
+ isShared: boolean;
30
+ /**
31
+ * The link token other learners redeem through the shared-quizzes endpoints. Null while sharing is off. Re-enabling after a disable issues a new token; the old one stays dead.
32
+ * @type {string}
33
+ * @memberof QuizSharing
34
+ */
35
+ shareToken: string | null;
36
+ /**
37
+ * When the current link was issued. Null while sharing is off.
38
+ * @type {Date}
39
+ * @memberof QuizSharing
40
+ */
41
+ sharedAt: Date | null;
42
+ }
43
+ /**
44
+ * Check if a given object implements the QuizSharing interface.
45
+ */
46
+ export declare function instanceOfQuizSharing(value: object): value is QuizSharing;
47
+ export declare function QuizSharingFromJSON(json: any): QuizSharing;
48
+ export declare function QuizSharingFromJSONTyped(json: any, ignoreDiscriminator: boolean): QuizSharing;
49
+ export declare function QuizSharingToJSON(json: any): QuizSharing;
50
+ export declare function QuizSharingToJSONTyped(value?: QuizSharing | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,55 @@
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
+ * Check if a given object implements the QuizSharing interface.
16
+ */
17
+ export function instanceOfQuizSharing(value) {
18
+ if (!('quizId' in value) || value['quizId'] === undefined)
19
+ return false;
20
+ if (!('isShared' in value) || value['isShared'] === undefined)
21
+ return false;
22
+ if (!('shareToken' in value) || value['shareToken'] === undefined)
23
+ return false;
24
+ if (!('sharedAt' in value) || value['sharedAt'] === undefined)
25
+ return false;
26
+ return true;
27
+ }
28
+ export function QuizSharingFromJSON(json) {
29
+ return QuizSharingFromJSONTyped(json, false);
30
+ }
31
+ export function QuizSharingFromJSONTyped(json, ignoreDiscriminator) {
32
+ if (json == null) {
33
+ return json;
34
+ }
35
+ return {
36
+ 'quizId': json['quizId'],
37
+ 'isShared': json['isShared'],
38
+ 'shareToken': json['shareToken'],
39
+ 'sharedAt': (json['sharedAt'] == null ? null : new Date(json['sharedAt'])),
40
+ };
41
+ }
42
+ export function QuizSharingToJSON(json) {
43
+ return QuizSharingToJSONTyped(json, false);
44
+ }
45
+ export function QuizSharingToJSONTyped(value, ignoreDiscriminator = false) {
46
+ if (value == null) {
47
+ return value;
48
+ }
49
+ return {
50
+ 'quizId': value['quizId'],
51
+ 'isShared': value['isShared'],
52
+ 'shareToken': value['shareToken'],
53
+ 'sharedAt': value['sharedAt'] == null ? value['sharedAt'] : value['sharedAt'].toISOString(),
54
+ };
55
+ }
@@ -9,6 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
+ import type { ResourceSharing } from './ResourceSharing';
12
13
  import type { ResourceStudyObjective } from './ResourceStudyObjective';
13
14
  import type { ResourceChat } from './ResourceChat';
14
15
  import type { ResourceStudySpace } from './ResourceStudySpace';
@@ -61,6 +62,12 @@ export interface ResourceListItem {
61
62
  * @memberof ResourceListItem
62
63
  */
63
64
  createdAt: Date;
65
+ /**
66
+ * True when the caller generated this resource; false when they opened someone else's through a share link. Mirrors the `ownership` filter the list was requested with.
67
+ * @type {boolean}
68
+ * @memberof ResourceListItem
69
+ */
70
+ isOwner: boolean;
64
71
  /**
65
72
  * Questions (or cards) persisted so far.
66
73
  * @type {number}
@@ -94,19 +101,19 @@ export interface ResourceListItem {
94
101
  */
95
102
  courseId: string | null;
96
103
  /**
97
- * The chat this resource was generated in. Null when that chat has been deleted.
104
+ * The chat this resource was generated in. Null when that chat has been deleted, and always null on a shared resource.
98
105
  * @type {ResourceChat}
99
106
  * @memberof ResourceListItem
100
107
  */
101
108
  chat: ResourceChat | null;
102
109
  /**
103
- * The study objective the originating chat was filed under.
110
+ * The study objective the originating chat was filed under. Always null on a shared resource.
104
111
  * @type {ResourceStudyObjective}
105
112
  * @memberof ResourceListItem
106
113
  */
107
114
  studyObjective: ResourceStudyObjective | null;
108
115
  /**
109
- * The study space this resource belongs to: the objective's space when it has one, else the learner's space for the attributed course.
116
+ * The study space this resource belongs to: the objective's space when it has one, else the learner's space for the attributed course. Always null on a shared resource.
110
117
  * @type {ResourceStudySpace}
111
118
  * @memberof ResourceListItem
112
119
  */
@@ -117,6 +124,12 @@ export interface ResourceListItem {
117
124
  * @memberof ResourceListItem
118
125
  */
119
126
  activity: ResourceActivity;
127
+ /**
128
+ * Link-sharing state and how many other learners have used the link.
129
+ * @type {ResourceSharing}
130
+ * @memberof ResourceListItem
131
+ */
132
+ sharing: ResourceSharing;
120
133
  }
121
134
  /**
122
135
  * @export
@@ -11,6 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
+ import { ResourceSharingFromJSON, ResourceSharingToJSON, } from './ResourceSharing';
14
15
  import { ResourceStudyObjectiveFromJSON, ResourceStudyObjectiveToJSON, } from './ResourceStudyObjective';
15
16
  import { ResourceChatFromJSON, ResourceChatToJSON, } from './ResourceChat';
16
17
  import { ResourceStudySpaceFromJSON, ResourceStudySpaceToJSON, } from './ResourceStudySpace';
@@ -48,6 +49,8 @@ export function instanceOfResourceListItem(value) {
48
49
  return false;
49
50
  if (!('createdAt' in value) || value['createdAt'] === undefined)
50
51
  return false;
52
+ if (!('isOwner' in value) || value['isOwner'] === undefined)
53
+ return false;
51
54
  if (!('questionCount' in value) || value['questionCount'] === undefined)
52
55
  return false;
53
56
  if (!('questionTypeCounts' in value) || value['questionTypeCounts'] === undefined)
@@ -66,6 +69,8 @@ export function instanceOfResourceListItem(value) {
66
69
  return false;
67
70
  if (!('activity' in value) || value['activity'] === undefined)
68
71
  return false;
72
+ if (!('sharing' in value) || value['sharing'] === undefined)
73
+ return false;
69
74
  return true;
70
75
  }
71
76
  export function ResourceListItemFromJSON(json) {
@@ -83,6 +88,7 @@ export function ResourceListItemFromJSONTyped(json, ignoreDiscriminator) {
83
88
  'generationStatus': json['generationStatus'],
84
89
  'expectedQuestionCount': json['expectedQuestionCount'],
85
90
  'createdAt': (new Date(json['createdAt'])),
91
+ 'isOwner': json['isOwner'],
86
92
  'questionCount': json['questionCount'],
87
93
  'questionTypeCounts': json['questionTypeCounts'],
88
94
  'topics': json['topics'],
@@ -92,6 +98,7 @@ export function ResourceListItemFromJSONTyped(json, ignoreDiscriminator) {
92
98
  'studyObjective': ResourceStudyObjectiveFromJSON(json['studyObjective']),
93
99
  'studySpace': ResourceStudySpaceFromJSON(json['studySpace']),
94
100
  'activity': ResourceActivityFromJSON(json['activity']),
101
+ 'sharing': ResourceSharingFromJSON(json['sharing']),
95
102
  };
96
103
  }
97
104
  export function ResourceListItemToJSON(json) {
@@ -109,6 +116,7 @@ export function ResourceListItemToJSONTyped(value, ignoreDiscriminator = false)
109
116
  'generationStatus': value['generationStatus'],
110
117
  'expectedQuestionCount': value['expectedQuestionCount'],
111
118
  'createdAt': value['createdAt'].toISOString(),
119
+ 'isOwner': value['isOwner'],
112
120
  'questionCount': value['questionCount'],
113
121
  'questionTypeCounts': value['questionTypeCounts'],
114
122
  'topics': value['topics'],
@@ -118,5 +126,6 @@ export function ResourceListItemToJSONTyped(value, ignoreDiscriminator = false)
118
126
  'studyObjective': ResourceStudyObjectiveToJSON(value['studyObjective']),
119
127
  'studySpace': ResourceStudySpaceToJSON(value['studySpace']),
120
128
  'activity': ResourceActivityToJSON(value['activity']),
129
+ 'sharing': ResourceSharingToJSON(value['sharing']),
121
130
  };
122
131
  }
@@ -0,0 +1,44 @@
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 ResourceSharing
16
+ */
17
+ export interface ResourceSharing {
18
+ /**
19
+ * Whether other learners can currently open this by link.
20
+ * @type {boolean}
21
+ * @memberof ResourceSharing
22
+ */
23
+ isShared: boolean;
24
+ /**
25
+ * The live share link token. Null while sharing is off, including for a shared resource whose owner has since revoked the link.
26
+ * @type {string}
27
+ * @memberof ResourceSharing
28
+ */
29
+ shareToken: string | null;
30
+ /**
31
+ * When the current link was issued. Null while sharing is off.
32
+ * @type {Date}
33
+ * @memberof ResourceSharing
34
+ */
35
+ sharedAt: Date | null;
36
+ }
37
+ /**
38
+ * Check if a given object implements the ResourceSharing interface.
39
+ */
40
+ export declare function instanceOfResourceSharing(value: object): value is ResourceSharing;
41
+ export declare function ResourceSharingFromJSON(json: any): ResourceSharing;
42
+ export declare function ResourceSharingFromJSONTyped(json: any, ignoreDiscriminator: boolean): ResourceSharing;
43
+ export declare function ResourceSharingToJSON(json: any): ResourceSharing;
44
+ export declare function ResourceSharingToJSONTyped(value?: ResourceSharing | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,51 @@
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
+ * Check if a given object implements the ResourceSharing interface.
16
+ */
17
+ export function instanceOfResourceSharing(value) {
18
+ if (!('isShared' in value) || value['isShared'] === undefined)
19
+ return false;
20
+ if (!('shareToken' in value) || value['shareToken'] === undefined)
21
+ return false;
22
+ if (!('sharedAt' in value) || value['sharedAt'] === undefined)
23
+ return false;
24
+ return true;
25
+ }
26
+ export function ResourceSharingFromJSON(json) {
27
+ return ResourceSharingFromJSONTyped(json, false);
28
+ }
29
+ export function ResourceSharingFromJSONTyped(json, ignoreDiscriminator) {
30
+ if (json == null) {
31
+ return json;
32
+ }
33
+ return {
34
+ 'isShared': json['isShared'],
35
+ 'shareToken': json['shareToken'],
36
+ 'sharedAt': (json['sharedAt'] == null ? null : new Date(json['sharedAt'])),
37
+ };
38
+ }
39
+ export function ResourceSharingToJSON(json) {
40
+ return ResourceSharingToJSONTyped(json, false);
41
+ }
42
+ export function ResourceSharingToJSONTyped(value, ignoreDiscriminator = false) {
43
+ if (value == null) {
44
+ return value;
45
+ }
46
+ return {
47
+ 'isShared': value['isShared'],
48
+ 'shareToken': value['shareToken'],
49
+ 'sharedAt': value['sharedAt'] == null ? value['sharedAt'] : value['sharedAt'].toISOString(),
50
+ };
51
+ }
@@ -0,0 +1,97 @@
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 SharedQuiz
16
+ */
17
+ export interface SharedQuiz {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof SharedQuiz
22
+ */
23
+ id: string;
24
+ /**
25
+ *
26
+ * @type {string}
27
+ * @memberof SharedQuiz
28
+ */
29
+ title: string;
30
+ /**
31
+ *
32
+ * @type {string}
33
+ * @memberof SharedQuiz
34
+ */
35
+ topic: string;
36
+ /**
37
+ *
38
+ * @type {string}
39
+ * @memberof SharedQuiz
40
+ */
41
+ mode: SharedQuizModeEnum;
42
+ /**
43
+ *
44
+ * @type {string}
45
+ * @memberof SharedQuiz
46
+ */
47
+ generationStatus: SharedQuizGenerationStatusEnum;
48
+ /**
49
+ *
50
+ * @type {number}
51
+ * @memberof SharedQuiz
52
+ */
53
+ expectedQuestionCount: number | null;
54
+ /**
55
+ * Questions (or cards) persisted so far.
56
+ * @type {number}
57
+ * @memberof SharedQuiz
58
+ */
59
+ questionCount: number;
60
+ /**
61
+ * True when the caller is the quiz's owner following their own link.
62
+ * @type {boolean}
63
+ * @memberof SharedQuiz
64
+ */
65
+ isOwner: boolean;
66
+ /**
67
+ *
68
+ * @type {Date}
69
+ * @memberof SharedQuiz
70
+ */
71
+ createdAt: Date;
72
+ }
73
+ /**
74
+ * @export
75
+ */
76
+ export declare const SharedQuizModeEnum: {
77
+ readonly Quiz: "quiz";
78
+ readonly Flashcards: "flashcards";
79
+ };
80
+ export type SharedQuizModeEnum = typeof SharedQuizModeEnum[keyof typeof SharedQuizModeEnum];
81
+ /**
82
+ * @export
83
+ */
84
+ export declare const SharedQuizGenerationStatusEnum: {
85
+ readonly Generating: "generating";
86
+ readonly Ready: "ready";
87
+ readonly Failed: "failed";
88
+ };
89
+ export type SharedQuizGenerationStatusEnum = typeof SharedQuizGenerationStatusEnum[keyof typeof SharedQuizGenerationStatusEnum];
90
+ /**
91
+ * Check if a given object implements the SharedQuiz interface.
92
+ */
93
+ export declare function instanceOfSharedQuiz(value: object): value is SharedQuiz;
94
+ export declare function SharedQuizFromJSON(json: any): SharedQuiz;
95
+ export declare function SharedQuizFromJSONTyped(json: any, ignoreDiscriminator: boolean): SharedQuiz;
96
+ export declare function SharedQuizToJSON(json: any): SharedQuiz;
97
+ export declare function SharedQuizToJSONTyped(value?: SharedQuiz | null, ignoreDiscriminator?: boolean): any;