@easyedu/js-lsm-api 1.68.0 → 1.70.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 (56) hide show
  1. package/.openapi-generator/FILES +8 -0
  2. package/README.md +6 -2
  3. package/dist/esm/models/ContentAttemptSettings.d.ts +46 -0
  4. package/dist/esm/models/ContentAttemptSettings.js +54 -0
  5. package/dist/esm/models/GetContent.d.ts +7 -0
  6. package/dist/esm/models/GetContent.js +5 -0
  7. package/dist/esm/models/GetCourseStudentReporting.d.ts +7 -0
  8. package/dist/esm/models/GetCourseStudentReporting.js +5 -0
  9. package/dist/esm/models/GetCourseStudentReportingModulesInner.d.ts +71 -0
  10. package/dist/esm/models/GetCourseStudentReportingModulesInner.js +71 -0
  11. package/dist/esm/models/GetModuleStudentReporting.d.ts +7 -0
  12. package/dist/esm/models/GetModuleStudentReporting.js +5 -0
  13. package/dist/esm/models/GetModuleStudentReportingContentsInner.d.ts +101 -0
  14. package/dist/esm/models/GetModuleStudentReportingContentsInner.js +91 -0
  15. package/dist/esm/models/PutContent.d.ts +7 -0
  16. package/dist/esm/models/PutContent.js +3 -0
  17. package/dist/esm/models/PutContentAttemptSettings.d.ts +46 -0
  18. package/dist/esm/models/PutContentAttemptSettings.js +50 -0
  19. package/dist/esm/models/index.d.ts +4 -0
  20. package/dist/esm/models/index.js +4 -0
  21. package/dist/models/ContentAttemptSettings.d.ts +46 -0
  22. package/dist/models/ContentAttemptSettings.js +62 -0
  23. package/dist/models/GetContent.d.ts +7 -0
  24. package/dist/models/GetContent.js +5 -0
  25. package/dist/models/GetCourseStudentReporting.d.ts +7 -0
  26. package/dist/models/GetCourseStudentReporting.js +5 -0
  27. package/dist/models/GetCourseStudentReportingModulesInner.d.ts +71 -0
  28. package/dist/models/GetCourseStudentReportingModulesInner.js +79 -0
  29. package/dist/models/GetModuleStudentReporting.d.ts +7 -0
  30. package/dist/models/GetModuleStudentReporting.js +5 -0
  31. package/dist/models/GetModuleStudentReportingContentsInner.d.ts +101 -0
  32. package/dist/models/GetModuleStudentReportingContentsInner.js +99 -0
  33. package/dist/models/PutContent.d.ts +7 -0
  34. package/dist/models/PutContent.js +3 -0
  35. package/dist/models/PutContentAttemptSettings.d.ts +46 -0
  36. package/dist/models/PutContentAttemptSettings.js +58 -0
  37. package/dist/models/index.d.ts +4 -0
  38. package/dist/models/index.js +4 -0
  39. package/docs/ContentAttemptSettings.md +36 -0
  40. package/docs/GetContent.md +2 -0
  41. package/docs/GetCourseStudentReporting.md +2 -0
  42. package/docs/GetCourseStudentReportingModulesInner.md +44 -0
  43. package/docs/GetModuleStudentReporting.md +2 -0
  44. package/docs/GetModuleStudentReportingContentsInner.md +54 -0
  45. package/docs/PutContent.md +2 -0
  46. package/docs/PutContentAttemptSettings.md +36 -0
  47. package/package.json +1 -1
  48. package/src/models/ContentAttemptSettings.ts +86 -0
  49. package/src/models/GetContent.ts +16 -0
  50. package/src/models/GetCourseStudentReporting.ts +16 -0
  51. package/src/models/GetCourseStudentReportingModulesInner.ts +123 -0
  52. package/src/models/GetModuleStudentReporting.ts +16 -0
  53. package/src/models/GetModuleStudentReportingContentsInner.ts +168 -0
  54. package/src/models/PutContent.ts +15 -0
  55. package/src/models/PutContentAttemptSettings.ts +84 -0
  56. package/src/models/index.ts +4 -0
@@ -0,0 +1,36 @@
1
+
2
+ # PutContentAttemptSettings
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `maxAttempts` | number
10
+ `scoreRollupStrategy` | string
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { PutContentAttemptSettings } from '@easyedu/js-lsm-api'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "maxAttempts": null,
20
+ "scoreRollupStrategy": null,
21
+ } satisfies PutContentAttemptSettings
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as PutContentAttemptSettings
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@easyedu/js-lsm-api",
3
- "version": "1.68.0",
3
+ "version": "1.70.0",
4
4
  "description": "OpenAPI client for @easyedu/js-lsm-api",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -0,0 +1,86 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
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
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface ContentAttemptSettings
20
+ */
21
+ export interface ContentAttemptSettings {
22
+ /**
23
+ * Maximum allowed attempts for this content
24
+ * @type {number}
25
+ * @memberof ContentAttemptSettings
26
+ */
27
+ maxAttempts: number;
28
+ /**
29
+ * Strategy used to calculate the content rollup score
30
+ * @type {ContentAttemptSettingsScoreRollupStrategyEnum}
31
+ * @memberof ContentAttemptSettings
32
+ */
33
+ scoreRollupStrategy: ContentAttemptSettingsScoreRollupStrategyEnum;
34
+ }
35
+
36
+
37
+ /**
38
+ * @export
39
+ */
40
+ export const ContentAttemptSettingsScoreRollupStrategyEnum = {
41
+ Latest: 'Latest',
42
+ Best: 'Best'
43
+ } as const;
44
+ export type ContentAttemptSettingsScoreRollupStrategyEnum = typeof ContentAttemptSettingsScoreRollupStrategyEnum[keyof typeof ContentAttemptSettingsScoreRollupStrategyEnum];
45
+
46
+
47
+ /**
48
+ * Check if a given object implements the ContentAttemptSettings interface.
49
+ */
50
+ export function instanceOfContentAttemptSettings(value: object): value is ContentAttemptSettings {
51
+ if (!('maxAttempts' in value) || value['maxAttempts'] === undefined) return false;
52
+ if (!('scoreRollupStrategy' in value) || value['scoreRollupStrategy'] === undefined) return false;
53
+ return true;
54
+ }
55
+
56
+ export function ContentAttemptSettingsFromJSON(json: any): ContentAttemptSettings {
57
+ return ContentAttemptSettingsFromJSONTyped(json, false);
58
+ }
59
+
60
+ export function ContentAttemptSettingsFromJSONTyped(json: any, ignoreDiscriminator: boolean): ContentAttemptSettings {
61
+ if (json == null) {
62
+ return json;
63
+ }
64
+ return {
65
+
66
+ 'maxAttempts': json['max_attempts'],
67
+ 'scoreRollupStrategy': json['score_rollup_strategy'],
68
+ };
69
+ }
70
+
71
+ export function ContentAttemptSettingsToJSON(json: any): ContentAttemptSettings {
72
+ return ContentAttemptSettingsToJSONTyped(json, false);
73
+ }
74
+
75
+ export function ContentAttemptSettingsToJSONTyped(value?: ContentAttemptSettings | null, ignoreDiscriminator: boolean = false): any {
76
+ if (value == null) {
77
+ return value;
78
+ }
79
+
80
+ return {
81
+
82
+ 'max_attempts': value['maxAttempts'],
83
+ 'score_rollup_strategy': value['scoreRollupStrategy'],
84
+ };
85
+ }
86
+
@@ -20,6 +20,13 @@ import {
20
20
  GetContentContentDataToJSON,
21
21
  GetContentContentDataToJSONTyped,
22
22
  } from './GetContentContentData';
23
+ import type { ContentAttemptSettings } from './ContentAttemptSettings';
24
+ import {
25
+ ContentAttemptSettingsFromJSON,
26
+ ContentAttemptSettingsFromJSONTyped,
27
+ ContentAttemptSettingsToJSON,
28
+ ContentAttemptSettingsToJSONTyped,
29
+ } from './ContentAttemptSettings';
23
30
  import type { ContentLaunchMode } from './ContentLaunchMode';
24
31
  import {
25
32
  ContentLaunchModeFromJSON,
@@ -70,6 +77,12 @@ export interface GetContent {
70
77
  * @memberof GetContent
71
78
  */
72
79
  launchMode: ContentLaunchMode;
80
+ /**
81
+ *
82
+ * @type {ContentAttemptSettings}
83
+ * @memberof GetContent
84
+ */
85
+ attemptSettings: ContentAttemptSettings;
73
86
  /**
74
87
  *
75
88
  * @type {GetContentContentData}
@@ -145,6 +158,7 @@ export function instanceOfGetContent(value: object): value is GetContent {
145
158
  if (!('name' in value) || value['name'] === undefined) return false;
146
159
  if (!('contentType' in value) || value['contentType'] === undefined) return false;
147
160
  if (!('launchMode' in value) || value['launchMode'] === undefined) return false;
161
+ if (!('attemptSettings' in value) || value['attemptSettings'] === undefined) return false;
148
162
  if (!('contentData' in value) || value['contentData'] === undefined) return false;
149
163
  if (!('published' in value) || value['published'] === undefined) return false;
150
164
  return true;
@@ -166,6 +180,7 @@ export function GetContentFromJSONTyped(json: any, ignoreDiscriminator: boolean)
166
180
  'description': json['description'] == null ? undefined : json['description'],
167
181
  'contentType': json['content_type'],
168
182
  'launchMode': ContentLaunchModeFromJSON(json['launch_mode']),
183
+ 'attemptSettings': ContentAttemptSettingsFromJSON(json['attempt_settings']),
169
184
  'contentData': GetContentContentDataFromJSON(json['content_data']),
170
185
  'order': json['order'] == null ? undefined : json['order'],
171
186
  'published': json['published'],
@@ -193,6 +208,7 @@ export function GetContentToJSONTyped(value?: Omit<GetContent, 'id'|'created_dat
193
208
  'description': value['description'],
194
209
  'content_type': value['contentType'],
195
210
  'launch_mode': ContentLaunchModeToJSON(value['launchMode']),
211
+ 'attempt_settings': ContentAttemptSettingsToJSON(value['attemptSettings']),
196
212
  'content_data': GetContentContentDataToJSON(value['contentData']),
197
213
  'order': value['order'],
198
214
  'published': value['published'],
@@ -20,6 +20,13 @@ import {
20
20
  GetCourseStudentReportingEngagementToJSON,
21
21
  GetCourseStudentReportingEngagementToJSONTyped,
22
22
  } from './GetCourseStudentReportingEngagement';
23
+ import type { GetCourseStudentReportingModulesInner } from './GetCourseStudentReportingModulesInner';
24
+ import {
25
+ GetCourseStudentReportingModulesInnerFromJSON,
26
+ GetCourseStudentReportingModulesInnerFromJSONTyped,
27
+ GetCourseStudentReportingModulesInnerToJSON,
28
+ GetCourseStudentReportingModulesInnerToJSONTyped,
29
+ } from './GetCourseStudentReportingModulesInner';
23
30
  import type { GetCourseStudentReportingCourseInfo } from './GetCourseStudentReportingCourseInfo';
24
31
  import {
25
32
  GetCourseStudentReportingCourseInfoFromJSON,
@@ -59,6 +66,12 @@ export interface GetCourseStudentReporting {
59
66
  * @memberof GetCourseStudentReporting
60
67
  */
61
68
  performance: GetCourseStudentReportingPerformance;
69
+ /**
70
+ * Module-level progress for the student within this course.
71
+ * @type {Array<GetCourseStudentReportingModulesInner>}
72
+ * @memberof GetCourseStudentReporting
73
+ */
74
+ modules: Array<GetCourseStudentReportingModulesInner>;
62
75
  }
63
76
 
64
77
  /**
@@ -68,6 +81,7 @@ export function instanceOfGetCourseStudentReporting(value: object): value is Get
68
81
  if (!('courseInfo' in value) || value['courseInfo'] === undefined) return false;
69
82
  if (!('engagement' in value) || value['engagement'] === undefined) return false;
70
83
  if (!('performance' in value) || value['performance'] === undefined) return false;
84
+ if (!('modules' in value) || value['modules'] === undefined) return false;
71
85
  return true;
72
86
  }
73
87
 
@@ -84,6 +98,7 @@ export function GetCourseStudentReportingFromJSONTyped(json: any, ignoreDiscrimi
84
98
  'courseInfo': GetCourseStudentReportingCourseInfoFromJSON(json['course_info']),
85
99
  'engagement': GetCourseStudentReportingEngagementFromJSON(json['engagement']),
86
100
  'performance': GetCourseStudentReportingPerformanceFromJSON(json['performance']),
101
+ 'modules': ((json['modules'] as Array<any>).map(GetCourseStudentReportingModulesInnerFromJSON)),
87
102
  };
88
103
  }
89
104
 
@@ -101,6 +116,7 @@ export function GetCourseStudentReportingToJSONTyped(value?: GetCourseStudentRep
101
116
  'course_info': GetCourseStudentReportingCourseInfoToJSON(value['courseInfo']),
102
117
  'engagement': GetCourseStudentReportingEngagementToJSON(value['engagement']),
103
118
  'performance': GetCourseStudentReportingPerformanceToJSON(value['performance']),
119
+ 'modules': ((value['modules'] as Array<any>).map(GetCourseStudentReportingModulesInnerToJSON)),
104
120
  };
105
121
  }
106
122
 
@@ -0,0 +1,123 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
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
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface GetCourseStudentReportingModulesInner
20
+ */
21
+ export interface GetCourseStudentReportingModulesInner {
22
+ /**
23
+ * The module external ID.
24
+ * @type {string}
25
+ * @memberof GetCourseStudentReportingModulesInner
26
+ */
27
+ moduleId: string;
28
+ /**
29
+ * Module name.
30
+ * @type {string}
31
+ * @memberof GetCourseStudentReportingModulesInner
32
+ */
33
+ name: string;
34
+ /**
35
+ * Order of the module within the course.
36
+ * @type {number}
37
+ * @memberof GetCourseStudentReportingModulesInner
38
+ */
39
+ order: number;
40
+ /**
41
+ * Number of visible content items in the module.
42
+ * @type {number}
43
+ * @memberof GetCourseStudentReportingModulesInner
44
+ */
45
+ contentCount: number;
46
+ /**
47
+ * Number of visible content items completed by the student.
48
+ * @type {number}
49
+ * @memberof GetCourseStudentReportingModulesInner
50
+ */
51
+ contentCompletedCount: number;
52
+ /**
53
+ * Derived module completion status for this student.
54
+ * @type {GetCourseStudentReportingModulesInnerCompletionStatusEnum}
55
+ * @memberof GetCourseStudentReportingModulesInner
56
+ */
57
+ completionStatus: GetCourseStudentReportingModulesInnerCompletionStatusEnum;
58
+ }
59
+
60
+
61
+ /**
62
+ * @export
63
+ */
64
+ export const GetCourseStudentReportingModulesInnerCompletionStatusEnum = {
65
+ NotAttempted: 'NotAttempted',
66
+ InProgress: 'InProgress',
67
+ Completed: 'Completed'
68
+ } as const;
69
+ export type GetCourseStudentReportingModulesInnerCompletionStatusEnum = typeof GetCourseStudentReportingModulesInnerCompletionStatusEnum[keyof typeof GetCourseStudentReportingModulesInnerCompletionStatusEnum];
70
+
71
+
72
+ /**
73
+ * Check if a given object implements the GetCourseStudentReportingModulesInner interface.
74
+ */
75
+ export function instanceOfGetCourseStudentReportingModulesInner(value: object): value is GetCourseStudentReportingModulesInner {
76
+ if (!('moduleId' in value) || value['moduleId'] === undefined) return false;
77
+ if (!('name' in value) || value['name'] === undefined) return false;
78
+ if (!('order' in value) || value['order'] === undefined) return false;
79
+ if (!('contentCount' in value) || value['contentCount'] === undefined) return false;
80
+ if (!('contentCompletedCount' in value) || value['contentCompletedCount'] === undefined) return false;
81
+ if (!('completionStatus' in value) || value['completionStatus'] === undefined) return false;
82
+ return true;
83
+ }
84
+
85
+ export function GetCourseStudentReportingModulesInnerFromJSON(json: any): GetCourseStudentReportingModulesInner {
86
+ return GetCourseStudentReportingModulesInnerFromJSONTyped(json, false);
87
+ }
88
+
89
+ export function GetCourseStudentReportingModulesInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetCourseStudentReportingModulesInner {
90
+ if (json == null) {
91
+ return json;
92
+ }
93
+ return {
94
+
95
+ 'moduleId': json['module_id'],
96
+ 'name': json['name'],
97
+ 'order': json['order'],
98
+ 'contentCount': json['content_count'],
99
+ 'contentCompletedCount': json['content_completed_count'],
100
+ 'completionStatus': json['completion_status'],
101
+ };
102
+ }
103
+
104
+ export function GetCourseStudentReportingModulesInnerToJSON(json: any): GetCourseStudentReportingModulesInner {
105
+ return GetCourseStudentReportingModulesInnerToJSONTyped(json, false);
106
+ }
107
+
108
+ export function GetCourseStudentReportingModulesInnerToJSONTyped(value?: GetCourseStudentReportingModulesInner | null, ignoreDiscriminator: boolean = false): any {
109
+ if (value == null) {
110
+ return value;
111
+ }
112
+
113
+ return {
114
+
115
+ 'module_id': value['moduleId'],
116
+ 'name': value['name'],
117
+ 'order': value['order'],
118
+ 'content_count': value['contentCount'],
119
+ 'content_completed_count': value['contentCompletedCount'],
120
+ 'completion_status': value['completionStatus'],
121
+ };
122
+ }
123
+
@@ -27,6 +27,13 @@ import {
27
27
  GetModuleStudentReportingAccessToJSON,
28
28
  GetModuleStudentReportingAccessToJSONTyped,
29
29
  } from './GetModuleStudentReportingAccess';
30
+ import type { GetModuleStudentReportingContentsInner } from './GetModuleStudentReportingContentsInner';
31
+ import {
32
+ GetModuleStudentReportingContentsInnerFromJSON,
33
+ GetModuleStudentReportingContentsInnerFromJSONTyped,
34
+ GetModuleStudentReportingContentsInnerToJSON,
35
+ GetModuleStudentReportingContentsInnerToJSONTyped,
36
+ } from './GetModuleStudentReportingContentsInner';
30
37
  import type { GetModuleStudentReportingProgress } from './GetModuleStudentReportingProgress';
31
38
  import {
32
39
  GetModuleStudentReportingProgressFromJSON,
@@ -59,6 +66,12 @@ export interface GetModuleStudentReporting {
59
66
  * @memberof GetModuleStudentReporting
60
67
  */
61
68
  access: GetModuleStudentReportingAccess;
69
+ /**
70
+ * Content-level progress for the student within this module.
71
+ * @type {Array<GetModuleStudentReportingContentsInner>}
72
+ * @memberof GetModuleStudentReporting
73
+ */
74
+ contents: Array<GetModuleStudentReportingContentsInner>;
62
75
  }
63
76
 
64
77
  /**
@@ -68,6 +81,7 @@ export function instanceOfGetModuleStudentReporting(value: object): value is Get
68
81
  if (!('moduleInfo' in value) || value['moduleInfo'] === undefined) return false;
69
82
  if (!('progress' in value) || value['progress'] === undefined) return false;
70
83
  if (!('access' in value) || value['access'] === undefined) return false;
84
+ if (!('contents' in value) || value['contents'] === undefined) return false;
71
85
  return true;
72
86
  }
73
87
 
@@ -84,6 +98,7 @@ export function GetModuleStudentReportingFromJSONTyped(json: any, ignoreDiscrimi
84
98
  'moduleInfo': GetModuleInstructorBasicReportingModuleInfoFromJSON(json['module_info']),
85
99
  'progress': GetModuleStudentReportingProgressFromJSON(json['progress']),
86
100
  'access': GetModuleStudentReportingAccessFromJSON(json['access']),
101
+ 'contents': ((json['contents'] as Array<any>).map(GetModuleStudentReportingContentsInnerFromJSON)),
87
102
  };
88
103
  }
89
104
 
@@ -101,6 +116,7 @@ export function GetModuleStudentReportingToJSONTyped(value?: GetModuleStudentRep
101
116
  'module_info': GetModuleInstructorBasicReportingModuleInfoToJSON(value['moduleInfo']),
102
117
  'progress': GetModuleStudentReportingProgressToJSON(value['progress']),
103
118
  'access': GetModuleStudentReportingAccessToJSON(value['access']),
119
+ 'contents': ((value['contents'] as Array<any>).map(GetModuleStudentReportingContentsInnerToJSON)),
104
120
  };
105
121
  }
106
122
 
@@ -0,0 +1,168 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * LMS API
5
+ * LMS API
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
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface GetModuleStudentReportingContentsInner
20
+ */
21
+ export interface GetModuleStudentReportingContentsInner {
22
+ /**
23
+ * The module external ID.
24
+ * @type {string}
25
+ * @memberof GetModuleStudentReportingContentsInner
26
+ */
27
+ moduleId: string;
28
+ /**
29
+ * The content external ID.
30
+ * @type {string}
31
+ * @memberof GetModuleStudentReportingContentsInner
32
+ */
33
+ contentId: string;
34
+ /**
35
+ * Content name.
36
+ * @type {string}
37
+ * @memberof GetModuleStudentReportingContentsInner
38
+ */
39
+ name: string;
40
+ /**
41
+ * Content type.
42
+ * @type {string}
43
+ * @memberof GetModuleStudentReportingContentsInner
44
+ */
45
+ contentType: string;
46
+ /**
47
+ * Order of the content within the module.
48
+ * @type {number}
49
+ * @memberof GetModuleStudentReportingContentsInner
50
+ */
51
+ order: number;
52
+ /**
53
+ * Current live completion status for this student's content progress.
54
+ * @type {GetModuleStudentReportingContentsInnerCompletionStatusEnum}
55
+ * @memberof GetModuleStudentReportingContentsInner
56
+ */
57
+ completionStatus: GetModuleStudentReportingContentsInnerCompletionStatusEnum;
58
+ /**
59
+ * Current live grade status for this student's content progress, if a session exists.
60
+ * @type {string}
61
+ * @memberof GetModuleStudentReportingContentsInner
62
+ */
63
+ gradeStatus: string | null;
64
+ /**
65
+ * Current live content session external ID, if a session exists.
66
+ * @type {string}
67
+ * @memberof GetModuleStudentReportingContentsInner
68
+ */
69
+ contentSessionId: string | null;
70
+ /**
71
+ * Current live attempt number, if a session exists.
72
+ * @type {number}
73
+ * @memberof GetModuleStudentReportingContentsInner
74
+ */
75
+ attemptNumber: number | null;
76
+ /**
77
+ * Last content session update timestamp (epoch seconds), if a session exists.
78
+ * @type {number}
79
+ * @memberof GetModuleStudentReportingContentsInner
80
+ */
81
+ lastAccessedAt: number | null;
82
+ /**
83
+ * Duration tracked on the current live content session, or 0 when not started.
84
+ * @type {number}
85
+ * @memberof GetModuleStudentReportingContentsInner
86
+ */
87
+ durationInSeconds: number;
88
+ }
89
+
90
+
91
+ /**
92
+ * @export
93
+ */
94
+ export const GetModuleStudentReportingContentsInnerCompletionStatusEnum = {
95
+ NotAttempted: 'NotAttempted',
96
+ InProgress: 'InProgress',
97
+ Completed: 'Completed'
98
+ } as const;
99
+ export type GetModuleStudentReportingContentsInnerCompletionStatusEnum = typeof GetModuleStudentReportingContentsInnerCompletionStatusEnum[keyof typeof GetModuleStudentReportingContentsInnerCompletionStatusEnum];
100
+
101
+
102
+ /**
103
+ * Check if a given object implements the GetModuleStudentReportingContentsInner interface.
104
+ */
105
+ export function instanceOfGetModuleStudentReportingContentsInner(value: object): value is GetModuleStudentReportingContentsInner {
106
+ if (!('moduleId' in value) || value['moduleId'] === undefined) return false;
107
+ if (!('contentId' in value) || value['contentId'] === undefined) return false;
108
+ if (!('name' in value) || value['name'] === undefined) return false;
109
+ if (!('contentType' in value) || value['contentType'] === undefined) return false;
110
+ if (!('order' in value) || value['order'] === undefined) return false;
111
+ if (!('completionStatus' in value) || value['completionStatus'] === undefined) return false;
112
+ if (!('gradeStatus' in value) || value['gradeStatus'] === undefined) return false;
113
+ if (!('contentSessionId' in value) || value['contentSessionId'] === undefined) return false;
114
+ if (!('attemptNumber' in value) || value['attemptNumber'] === undefined) return false;
115
+ if (!('lastAccessedAt' in value) || value['lastAccessedAt'] === undefined) return false;
116
+ if (!('durationInSeconds' in value) || value['durationInSeconds'] === undefined) return false;
117
+ return true;
118
+ }
119
+
120
+ export function GetModuleStudentReportingContentsInnerFromJSON(json: any): GetModuleStudentReportingContentsInner {
121
+ return GetModuleStudentReportingContentsInnerFromJSONTyped(json, false);
122
+ }
123
+
124
+ export function GetModuleStudentReportingContentsInnerFromJSONTyped(json: any, ignoreDiscriminator: boolean): GetModuleStudentReportingContentsInner {
125
+ if (json == null) {
126
+ return json;
127
+ }
128
+ return {
129
+
130
+ 'moduleId': json['module_id'],
131
+ 'contentId': json['content_id'],
132
+ 'name': json['name'],
133
+ 'contentType': json['content_type'],
134
+ 'order': json['order'],
135
+ 'completionStatus': json['completion_status'],
136
+ 'gradeStatus': json['grade_status'],
137
+ 'contentSessionId': json['content_session_id'],
138
+ 'attemptNumber': json['attempt_number'],
139
+ 'lastAccessedAt': json['last_accessed_at'],
140
+ 'durationInSeconds': json['duration_in_seconds'],
141
+ };
142
+ }
143
+
144
+ export function GetModuleStudentReportingContentsInnerToJSON(json: any): GetModuleStudentReportingContentsInner {
145
+ return GetModuleStudentReportingContentsInnerToJSONTyped(json, false);
146
+ }
147
+
148
+ export function GetModuleStudentReportingContentsInnerToJSONTyped(value?: GetModuleStudentReportingContentsInner | null, ignoreDiscriminator: boolean = false): any {
149
+ if (value == null) {
150
+ return value;
151
+ }
152
+
153
+ return {
154
+
155
+ 'module_id': value['moduleId'],
156
+ 'content_id': value['contentId'],
157
+ 'name': value['name'],
158
+ 'content_type': value['contentType'],
159
+ 'order': value['order'],
160
+ 'completion_status': value['completionStatus'],
161
+ 'grade_status': value['gradeStatus'],
162
+ 'content_session_id': value['contentSessionId'],
163
+ 'attempt_number': value['attemptNumber'],
164
+ 'last_accessed_at': value['lastAccessedAt'],
165
+ 'duration_in_seconds': value['durationInSeconds'],
166
+ };
167
+ }
168
+
@@ -20,6 +20,13 @@ import {
20
20
  ContentLaunchModeToJSON,
21
21
  ContentLaunchModeToJSONTyped,
22
22
  } from './ContentLaunchMode';
23
+ import type { PutContentAttemptSettings } from './PutContentAttemptSettings';
24
+ import {
25
+ PutContentAttemptSettingsFromJSON,
26
+ PutContentAttemptSettingsFromJSONTyped,
27
+ PutContentAttemptSettingsToJSON,
28
+ PutContentAttemptSettingsToJSONTyped,
29
+ } from './PutContentAttemptSettings';
23
30
 
24
31
  /**
25
32
  *
@@ -45,6 +52,12 @@ export interface PutContent {
45
52
  * @memberof PutContent
46
53
  */
47
54
  launchMode?: ContentLaunchMode;
55
+ /**
56
+ *
57
+ * @type {PutContentAttemptSettings}
58
+ * @memberof PutContent
59
+ */
60
+ attemptSettings?: PutContentAttemptSettings;
48
61
  }
49
62
 
50
63
 
@@ -69,6 +82,7 @@ export function PutContentFromJSONTyped(json: any, ignoreDiscriminator: boolean)
69
82
  'name': json['name'] == null ? undefined : json['name'],
70
83
  'published': json['published'] == null ? undefined : json['published'],
71
84
  'launchMode': json['launch_mode'] == null ? undefined : ContentLaunchModeFromJSON(json['launch_mode']),
85
+ 'attemptSettings': json['attempt_settings'] == null ? undefined : PutContentAttemptSettingsFromJSON(json['attempt_settings']),
72
86
  };
73
87
  }
74
88
 
@@ -86,6 +100,7 @@ export function PutContentToJSONTyped(value?: PutContent | null, ignoreDiscrimin
86
100
  'name': value['name'],
87
101
  'published': value['published'],
88
102
  'launch_mode': ContentLaunchModeToJSON(value['launchMode']),
103
+ 'attempt_settings': PutContentAttemptSettingsToJSON(value['attemptSettings']),
89
104
  };
90
105
  }
91
106