@easyedu/js-lsm-api 1.132.0 → 1.134.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 (170) hide show
  1. package/.openapi-generator/FILES +6 -0
  2. package/README.md +8 -3
  3. package/dist/apis/IntegrationApi.d.ts +7 -3
  4. package/dist/apis/IntegrationApi.js +10 -5
  5. package/dist/apis/PortalApi.d.ts +30 -0
  6. package/dist/apis/PortalApi.js +63 -1
  7. package/dist/apis/QuestionApi.d.ts +19 -0
  8. package/dist/apis/QuestionApi.js +44 -0
  9. package/dist/esm/apis/IntegrationApi.d.ts +7 -3
  10. package/dist/esm/apis/IntegrationApi.js +10 -5
  11. package/dist/esm/apis/PortalApi.d.ts +30 -0
  12. package/dist/esm/apis/PortalApi.js +62 -0
  13. package/dist/esm/apis/QuestionApi.d.ts +19 -0
  14. package/dist/esm/apis/QuestionApi.js +44 -0
  15. package/dist/esm/models/GetCourse.d.ts +6 -0
  16. package/dist/esm/models/GetCourse.js +4 -0
  17. package/dist/esm/models/GetCourseEnrollmentListItem.d.ts +6 -0
  18. package/dist/esm/models/GetCourseEnrollmentListItem.js +2 -0
  19. package/dist/esm/models/GetPortalUser.d.ts +6 -0
  20. package/dist/esm/models/GetPortalUser.js +4 -0
  21. package/dist/esm/models/GetResource.d.ts +6 -0
  22. package/dist/esm/models/GetResource.js +4 -0
  23. package/dist/esm/models/GetResourceUsageCoursesInner.d.ts +6 -0
  24. package/dist/esm/models/GetResourceUsageCoursesInner.js +4 -0
  25. package/dist/esm/models/IntegrationEventCourse.d.ts +6 -0
  26. package/dist/esm/models/IntegrationEventCourse.js +2 -0
  27. package/dist/esm/models/IntegrationEventLearner.d.ts +6 -0
  28. package/dist/esm/models/IntegrationEventLearner.js +2 -0
  29. package/dist/esm/models/IntegrationEventUser.d.ts +6 -0
  30. package/dist/esm/models/IntegrationEventUser.js +2 -0
  31. package/dist/esm/models/PostCourse.d.ts +6 -0
  32. package/dist/esm/models/PostCourse.js +2 -0
  33. package/dist/esm/models/PostPortalInvite.d.ts +6 -0
  34. package/dist/esm/models/PostPortalInvite.js +2 -0
  35. package/dist/esm/models/PostQuestionTags.d.ts +38 -0
  36. package/dist/esm/models/PostQuestionTags.js +47 -0
  37. package/dist/esm/models/PostQuestionTagsResponse.d.ts +32 -0
  38. package/dist/esm/models/PostQuestionTagsResponse.js +43 -0
  39. package/dist/esm/models/PostResource.d.ts +6 -0
  40. package/dist/esm/models/PostResource.js +2 -0
  41. package/dist/esm/models/PostRichTextAssetUpload.d.ts +6 -0
  42. package/dist/esm/models/PostRichTextAssetUpload.js +2 -0
  43. package/dist/esm/models/PostZapierEnrollment.d.ts +16 -4
  44. package/dist/esm/models/PostZapierEnrollment.js +6 -6
  45. package/dist/esm/models/PostZapierShopifyCourseMapping.d.ts +8 -2
  46. package/dist/esm/models/PostZapierShopifyCourseMapping.js +3 -3
  47. package/dist/esm/models/PostZapierUser.d.ts +6 -0
  48. package/dist/esm/models/PostZapierUser.js +2 -0
  49. package/dist/esm/models/PutCourse.d.ts +6 -0
  50. package/dist/esm/models/PutCourse.js +2 -0
  51. package/dist/esm/models/PutPortalUser.d.ts +32 -0
  52. package/dist/esm/models/PutPortalUser.js +41 -0
  53. package/dist/esm/models/PutResource.d.ts +6 -0
  54. package/dist/esm/models/PutResource.js +2 -0
  55. package/dist/esm/models/RichTextAsset.d.ts +6 -0
  56. package/dist/esm/models/RichTextAsset.js +2 -0
  57. package/dist/esm/models/ZapierCourse.d.ts +6 -0
  58. package/dist/esm/models/ZapierCourse.js +4 -0
  59. package/dist/esm/models/ZapierEnrollment.d.ts +12 -0
  60. package/dist/esm/models/ZapierEnrollment.js +8 -0
  61. package/dist/esm/models/ZapierUser.d.ts +6 -0
  62. package/dist/esm/models/ZapierUser.js +4 -0
  63. package/dist/esm/models/index.d.ts +3 -0
  64. package/dist/esm/models/index.js +3 -0
  65. package/dist/models/GetCourse.d.ts +6 -0
  66. package/dist/models/GetCourse.js +4 -0
  67. package/dist/models/GetCourseEnrollmentListItem.d.ts +6 -0
  68. package/dist/models/GetCourseEnrollmentListItem.js +2 -0
  69. package/dist/models/GetPortalUser.d.ts +6 -0
  70. package/dist/models/GetPortalUser.js +4 -0
  71. package/dist/models/GetResource.d.ts +6 -0
  72. package/dist/models/GetResource.js +4 -0
  73. package/dist/models/GetResourceUsageCoursesInner.d.ts +6 -0
  74. package/dist/models/GetResourceUsageCoursesInner.js +4 -0
  75. package/dist/models/IntegrationEventCourse.d.ts +6 -0
  76. package/dist/models/IntegrationEventCourse.js +2 -0
  77. package/dist/models/IntegrationEventLearner.d.ts +6 -0
  78. package/dist/models/IntegrationEventLearner.js +2 -0
  79. package/dist/models/IntegrationEventUser.d.ts +6 -0
  80. package/dist/models/IntegrationEventUser.js +2 -0
  81. package/dist/models/PostCourse.d.ts +6 -0
  82. package/dist/models/PostCourse.js +2 -0
  83. package/dist/models/PostPortalInvite.d.ts +6 -0
  84. package/dist/models/PostPortalInvite.js +2 -0
  85. package/dist/models/PostQuestionTags.d.ts +38 -0
  86. package/dist/models/PostQuestionTags.js +54 -0
  87. package/dist/models/PostQuestionTagsResponse.d.ts +32 -0
  88. package/dist/models/PostQuestionTagsResponse.js +50 -0
  89. package/dist/models/PostResource.d.ts +6 -0
  90. package/dist/models/PostResource.js +2 -0
  91. package/dist/models/PostRichTextAssetUpload.d.ts +6 -0
  92. package/dist/models/PostRichTextAssetUpload.js +2 -0
  93. package/dist/models/PostZapierEnrollment.d.ts +16 -4
  94. package/dist/models/PostZapierEnrollment.js +6 -6
  95. package/dist/models/PostZapierShopifyCourseMapping.d.ts +8 -2
  96. package/dist/models/PostZapierShopifyCourseMapping.js +3 -3
  97. package/dist/models/PostZapierUser.d.ts +6 -0
  98. package/dist/models/PostZapierUser.js +2 -0
  99. package/dist/models/PutCourse.d.ts +6 -0
  100. package/dist/models/PutCourse.js +2 -0
  101. package/dist/models/PutPortalUser.d.ts +32 -0
  102. package/dist/models/PutPortalUser.js +48 -0
  103. package/dist/models/PutResource.d.ts +6 -0
  104. package/dist/models/PutResource.js +2 -0
  105. package/dist/models/RichTextAsset.d.ts +6 -0
  106. package/dist/models/RichTextAsset.js +2 -0
  107. package/dist/models/ZapierCourse.d.ts +6 -0
  108. package/dist/models/ZapierCourse.js +4 -0
  109. package/dist/models/ZapierEnrollment.d.ts +12 -0
  110. package/dist/models/ZapierEnrollment.js +8 -0
  111. package/dist/models/ZapierUser.d.ts +6 -0
  112. package/dist/models/ZapierUser.js +4 -0
  113. package/dist/models/index.d.ts +3 -0
  114. package/dist/models/index.js +3 -0
  115. package/docs/GetCourse.md +2 -0
  116. package/docs/GetCourseEnrollmentListItem.md +2 -0
  117. package/docs/GetPortalUser.md +2 -0
  118. package/docs/GetResource.md +2 -0
  119. package/docs/GetResourceUsageCoursesInner.md +2 -0
  120. package/docs/IntegrationApi.md +15 -6
  121. package/docs/IntegrationEventCourse.md +2 -0
  122. package/docs/IntegrationEventLearner.md +2 -0
  123. package/docs/IntegrationEventUser.md +2 -0
  124. package/docs/PortalApi.md +82 -1
  125. package/docs/PostCourse.md +2 -0
  126. package/docs/PostPortalInvite.md +2 -0
  127. package/docs/PostQuestionTags.md +37 -0
  128. package/docs/PostQuestionTagsResponse.md +34 -0
  129. package/docs/PostResource.md +2 -0
  130. package/docs/PostRichTextAssetUpload.md +2 -0
  131. package/docs/PostZapierEnrollment.md +4 -0
  132. package/docs/PostZapierShopifyCourseMapping.md +2 -0
  133. package/docs/PostZapierUser.md +2 -0
  134. package/docs/PutCourse.md +2 -0
  135. package/docs/PutPortalUser.md +35 -0
  136. package/docs/PutResource.md +2 -0
  137. package/docs/QuestionApi.md +71 -0
  138. package/docs/RichTextAsset.md +2 -0
  139. package/docs/ZapierCourse.md +2 -0
  140. package/docs/ZapierEnrollment.md +4 -0
  141. package/docs/ZapierUser.md +2 -0
  142. package/package.json +1 -1
  143. package/src/apis/IntegrationApi.ts +15 -10
  144. package/src/apis/PortalApi.ts +94 -0
  145. package/src/apis/QuestionApi.ts +63 -0
  146. package/src/models/GetCourse.ts +9 -0
  147. package/src/models/GetCourseEnrollmentListItem.ts +8 -0
  148. package/src/models/GetPortalUser.ts +9 -0
  149. package/src/models/GetResource.ts +9 -0
  150. package/src/models/GetResourceUsageCoursesInner.ts +9 -0
  151. package/src/models/IntegrationEventCourse.ts +8 -0
  152. package/src/models/IntegrationEventLearner.ts +8 -0
  153. package/src/models/IntegrationEventUser.ts +8 -0
  154. package/src/models/PostCourse.ts +8 -0
  155. package/src/models/PostPortalInvite.ts +8 -0
  156. package/src/models/PostQuestionTags.ts +75 -0
  157. package/src/models/PostQuestionTagsResponse.ts +66 -0
  158. package/src/models/PostResource.ts +8 -0
  159. package/src/models/PostRichTextAssetUpload.ts +8 -0
  160. package/src/models/PostZapierEnrollment.ts +22 -8
  161. package/src/models/PostZapierShopifyCourseMapping.ts +11 -4
  162. package/src/models/PostZapierUser.ts +8 -0
  163. package/src/models/PutCourse.ts +8 -0
  164. package/src/models/PutPortalUser.ts +65 -0
  165. package/src/models/PutResource.ts +8 -0
  166. package/src/models/RichTextAsset.ts +8 -0
  167. package/src/models/ZapierCourse.ts +9 -0
  168. package/src/models/ZapierEnrollment.ts +18 -0
  169. package/src/models/ZapierUser.ts +9 -0
  170. package/src/models/index.ts +3 -0
@@ -28,6 +28,16 @@ import {
28
28
  PostQuestionFromJSON,
29
29
  PostQuestionToJSON,
30
30
  } from '../models/PostQuestion';
31
+ import {
32
+ type PostQuestionTags,
33
+ PostQuestionTagsFromJSON,
34
+ PostQuestionTagsToJSON,
35
+ } from '../models/PostQuestionTags';
36
+ import {
37
+ type PostQuestionTagsResponse,
38
+ PostQuestionTagsResponseFromJSON,
39
+ PostQuestionTagsResponseToJSON,
40
+ } from '../models/PostQuestionTagsResponse';
31
41
  import {
32
42
  type PutQuestion,
33
43
  PutQuestionFromJSON,
@@ -58,6 +68,10 @@ export interface PostQuestionRequest {
58
68
  postQuestion: PostQuestion;
59
69
  }
60
70
 
71
+ export interface PostQuestionTagsRequest {
72
+ postQuestionTags: PostQuestionTags;
73
+ }
74
+
61
75
  export interface PutQuestionRequest {
62
76
  questionId: string;
63
77
  putQuestion: PutQuestion;
@@ -306,6 +320,55 @@ export class QuestionApi extends runtime.BaseAPI {
306
320
  return await response.value();
307
321
  }
308
322
 
323
+ /**
324
+ * Creates request options for postQuestionTags without sending the request
325
+ */
326
+ async postQuestionTagsRequestOpts(requestParameters: PostQuestionTagsRequest): Promise<runtime.RequestOpts> {
327
+ if (requestParameters['postQuestionTags'] == null) {
328
+ throw new runtime.RequiredError(
329
+ 'postQuestionTags',
330
+ 'Required parameter "postQuestionTags" was null or undefined when calling postQuestionTags().'
331
+ );
332
+ }
333
+
334
+ const queryParameters: any = {};
335
+
336
+ const headerParameters: runtime.HTTPHeaders = {};
337
+
338
+ headerParameters['Content-Type'] = 'application/json';
339
+
340
+
341
+ let urlPath = `/questions/tags`;
342
+
343
+ return {
344
+ path: urlPath,
345
+ method: 'POST',
346
+ headers: headerParameters,
347
+ query: queryParameters,
348
+ body: PostQuestionTagsToJSON(requestParameters['postQuestionTags']),
349
+ };
350
+ }
351
+
352
+ /**
353
+ * Adds the given tags to every listed question, keeping existing tags. Tags are metadata, so no new question versions are created.
354
+ * Add tags to several questions
355
+ */
356
+ async postQuestionTagsRaw(requestParameters: PostQuestionTagsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PostQuestionTagsResponse>> {
357
+ const requestOptions = await this.postQuestionTagsRequestOpts(requestParameters);
358
+ const response = await this.request(requestOptions, initOverrides);
359
+
360
+ return new runtime.JSONApiResponse(response, (jsonValue) => PostQuestionTagsResponseFromJSON(jsonValue));
361
+ }
362
+
363
+ /**
364
+ * Adds the given tags to every listed question, keeping existing tags. Tags are metadata, so no new question versions are created.
365
+ * Add tags to several questions
366
+ */
367
+ async postQuestionTags(requestParameters: PostQuestionTagsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PostQuestionTagsResponse> {
368
+ const response = await this.postQuestionTagsRaw(requestParameters, initOverrides);
369
+ return await response.value();
370
+ }
371
+
309
372
  /**
310
373
  * Creates request options for putQuestion without sending the request
311
374
  */
@@ -87,6 +87,12 @@ export interface GetCourse {
87
87
  * @memberof GetCourse
88
88
  */
89
89
  tags: Array<ContentLibraryTag>;
90
+ /**
91
+ * Your own identifier for this course, unique within the portal. Integrations such as Zapier can use it in place of id.
92
+ * @type {string}
93
+ * @memberof GetCourse
94
+ */
95
+ customerRef: string | null;
90
96
  }
91
97
 
92
98
 
@@ -115,6 +121,7 @@ export function instanceOfGetCourse(value: object): value is GetCourse {
115
121
  if (!('accessDurationDays' in value) || value['accessDurationDays'] === undefined) return false;
116
122
  if (!('accessFixedEndAt' in value) || value['accessFixedEndAt'] === undefined) return false;
117
123
  if (!('tags' in value) || value['tags'] === undefined) return false;
124
+ if (!('customerRef' in value) || value['customerRef'] === undefined) return false;
118
125
  return true;
119
126
  }
120
127
 
@@ -138,6 +145,7 @@ export function GetCourseFromJSONTyped(json: any, ignoreDiscriminator: boolean):
138
145
  'accessDurationDays': json['access_duration_days'],
139
146
  'accessFixedEndAt': json['access_fixed_end_at'],
140
147
  'tags': ((json['tags'] as Array<any>).map(ContentLibraryTagFromJSON)),
148
+ 'customerRef': json['customer_ref'],
141
149
  };
142
150
  }
143
151
 
@@ -161,6 +169,7 @@ export function GetCourseToJSONTyped(value?: Omit<GetCourse, 'id'> | null, ignor
161
169
  'access_duration_days': value['accessDurationDays'],
162
170
  'access_fixed_end_at': value['accessFixedEndAt'],
163
171
  'tags': ((value['tags'] as Array<any>).map(ContentLibraryTagToJSON)),
172
+ 'customer_ref': value['customerRef'],
164
173
  };
165
174
  }
166
175
 
@@ -61,6 +61,12 @@ export interface GetCourseEnrollmentListItem {
61
61
  * @memberof GetCourseEnrollmentListItem
62
62
  */
63
63
  lastName: string;
64
+ /**
65
+ * Contact email of the enrolled user. Only populated for Instructor enrollments so learners can contact course instructors; null for Student enrollments.
66
+ * @type {string}
67
+ * @memberof GetCourseEnrollmentListItem
68
+ */
69
+ email?: string | null;
64
70
  /**
65
71
  * Start date of the enrollment (Unix timestamp)
66
72
  * @type {number}
@@ -185,6 +191,7 @@ export function GetCourseEnrollmentListItemFromJSONTyped(json: any, ignoreDiscri
185
191
  'courseVersionNumber': json['course_version_number'],
186
192
  'firstName': json['first_name'],
187
193
  'lastName': json['last_name'],
194
+ 'email': json['email'] == null ? undefined : json['email'],
188
195
  'enrollmentDateStart': json['enrollment_date_start'],
189
196
  'enrollmentDateEnd': json['enrollment_date_end'],
190
197
  'status': json['status'],
@@ -213,6 +220,7 @@ export function GetCourseEnrollmentListItemToJSONTyped(value?: GetCourseEnrollme
213
220
  'course_version_number': value['courseVersionNumber'],
214
221
  'first_name': value['firstName'],
215
222
  'last_name': value['lastName'],
223
+ 'email': value['email'],
216
224
  'enrollment_date_start': value['enrollmentDateStart'],
217
225
  'enrollment_date_end': value['enrollmentDateEnd'],
218
226
  'status': value['status'],
@@ -69,6 +69,12 @@ export interface GetPortalUser {
69
69
  * @memberof GetPortalUser
70
70
  */
71
71
  invitation?: GetPortalInvitationSummary | null;
72
+ /**
73
+ * Your own identifier for this user in this portal, unique within the portal. Integrations such as Zapier can use it in place of the user id.
74
+ * @type {string}
75
+ * @memberof GetPortalUser
76
+ */
77
+ customerRef: string | null;
72
78
  }
73
79
 
74
80
  /**
@@ -81,6 +87,7 @@ export function instanceOfGetPortalUser(value: object): value is GetPortalUser {
81
87
  if (!('lastName' in value) || value['lastName'] === undefined) return false;
82
88
  if (!('role' in value) || value['role'] === undefined) return false;
83
89
  if (!('isActive' in value) || value['isActive'] === undefined) return false;
90
+ if (!('customerRef' in value) || value['customerRef'] === undefined) return false;
84
91
  return true;
85
92
  }
86
93
 
@@ -101,6 +108,7 @@ export function GetPortalUserFromJSONTyped(json: any, ignoreDiscriminator: boole
101
108
  'role': json['role'],
102
109
  'isActive': json['is_active'],
103
110
  'invitation': json['invitation'] == null ? undefined : GetPortalInvitationSummaryFromJSON(json['invitation']),
111
+ 'customerRef': json['customer_ref'],
104
112
  };
105
113
  }
106
114
 
@@ -122,6 +130,7 @@ export function GetPortalUserToJSONTyped(value?: GetPortalUser | null, ignoreDis
122
130
  'role': value['role'],
123
131
  'is_active': value['isActive'],
124
132
  'invitation': GetPortalInvitationSummaryToJSON(value['invitation']),
133
+ 'customer_ref': value['customerRef'],
125
134
  };
126
135
  }
127
136
 
@@ -137,6 +137,12 @@ export interface GetResource {
137
137
  * @memberof GetResource
138
138
  */
139
139
  archivedAt?: number | null;
140
+ /**
141
+ * Your own identifier for this resource, unique within the portal. Integrations can use it in place of id.
142
+ * @type {string}
143
+ * @memberof GetResource
144
+ */
145
+ customerRef: string | null;
140
146
  }
141
147
 
142
148
 
@@ -158,6 +164,7 @@ export function instanceOfGetResource(value: object): value is GetResource {
158
164
  if (!('activeLearnerCount' in value) || value['activeLearnerCount'] === undefined) return false;
159
165
  if (!('createdAt' in value) || value['createdAt'] === undefined) return false;
160
166
  if (!('updatedAt' in value) || value['updatedAt'] === undefined) return false;
167
+ if (!('customerRef' in value) || value['customerRef'] === undefined) return false;
161
168
  return true;
162
169
  }
163
170
 
@@ -187,6 +194,7 @@ export function GetResourceFromJSONTyped(json: any, ignoreDiscriminator: boolean
187
194
  'createdAt': json['created_at'],
188
195
  'updatedAt': json['updated_at'],
189
196
  'archivedAt': json['archived_at'] == null ? undefined : json['archived_at'],
197
+ 'customerRef': json['customer_ref'],
190
198
  };
191
199
  }
192
200
 
@@ -217,6 +225,7 @@ export function GetResourceToJSONTyped(value?: GetResource | null, ignoreDiscrim
217
225
  'created_at': value['createdAt'],
218
226
  'updated_at': value['updatedAt'],
219
227
  'archived_at': value['archivedAt'],
228
+ 'customer_ref': value['customerRef'],
220
229
  };
221
230
  }
222
231
 
@@ -33,6 +33,12 @@ export interface GetResourceUsageCoursesInner {
33
33
  * @memberof GetResourceUsageCoursesInner
34
34
  */
35
35
  courseId: string;
36
+ /**
37
+ * Display name of the course
38
+ * @type {string}
39
+ * @memberof GetResourceUsageCoursesInner
40
+ */
41
+ courseName: string;
36
42
  /**
37
43
  *
38
44
  * @type {string}
@@ -72,6 +78,7 @@ export interface GetResourceUsageCoursesInner {
72
78
  */
73
79
  export function instanceOfGetResourceUsageCoursesInner(value: object): value is GetResourceUsageCoursesInner {
74
80
  if (!('courseId' in value) || value['courseId'] === undefined) return false;
81
+ if (!('courseName' in value) || value['courseName'] === undefined) return false;
75
82
  if (!('courseVersionId' in value) || value['courseVersionId'] === undefined) return false;
76
83
  if (!('courseVersionNumber' in value) || value['courseVersionNumber'] === undefined) return false;
77
84
  if (!('courseStatus' in value) || value['courseStatus'] === undefined) return false;
@@ -91,6 +98,7 @@ export function GetResourceUsageCoursesInnerFromJSONTyped(json: any, ignoreDiscr
91
98
  return {
92
99
 
93
100
  'courseId': json['course_id'],
101
+ 'courseName': json['course_name'],
94
102
  'courseVersionId': json['course_version_id'],
95
103
  'courseVersionNumber': json['course_version_number'],
96
104
  'courseStatus': ContentLibraryVersionStatusFromJSON(json['course_status']),
@@ -111,6 +119,7 @@ export function GetResourceUsageCoursesInnerToJSONTyped(value?: GetResourceUsage
111
119
  return {
112
120
 
113
121
  'course_id': value['courseId'],
122
+ 'course_name': value['courseName'],
114
123
  'course_version_id': value['courseVersionId'],
115
124
  'course_version_number': value['courseVersionNumber'],
116
125
  'course_status': ContentLibraryVersionStatusToJSON(value['courseStatus']),
@@ -31,6 +31,12 @@ export interface IntegrationEventCourse {
31
31
  * @memberof IntegrationEventCourse
32
32
  */
33
33
  name: string;
34
+ /**
35
+ * Your identifier for this course, if set.
36
+ * @type {string}
37
+ * @memberof IntegrationEventCourse
38
+ */
39
+ customerRef?: string | null;
34
40
  }
35
41
 
36
42
  /**
@@ -54,6 +60,7 @@ export function IntegrationEventCourseFromJSONTyped(json: any, ignoreDiscriminat
54
60
 
55
61
  'id': json['id'],
56
62
  'name': json['name'],
63
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
57
64
  };
58
65
  }
59
66
 
@@ -70,6 +77,7 @@ export function IntegrationEventCourseToJSONTyped(value?: IntegrationEventCourse
70
77
 
71
78
  'id': value['id'],
72
79
  'name': value['name'],
80
+ 'customer_ref': value['customerRef'],
73
81
  };
74
82
  }
75
83
 
@@ -43,6 +43,12 @@ export interface IntegrationEventLearner {
43
43
  * @memberof IntegrationEventLearner
44
44
  */
45
45
  lastName: string;
46
+ /**
47
+ * Your identifier for this learner in the event portal, if set.
48
+ * @type {string}
49
+ * @memberof IntegrationEventLearner
50
+ */
51
+ customerRef?: string | null;
46
52
  }
47
53
 
48
54
  /**
@@ -70,6 +76,7 @@ export function IntegrationEventLearnerFromJSONTyped(json: any, ignoreDiscrimina
70
76
  'email': json['email'],
71
77
  'firstName': json['first_name'],
72
78
  'lastName': json['last_name'],
79
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
73
80
  };
74
81
  }
75
82
 
@@ -88,6 +95,7 @@ export function IntegrationEventLearnerToJSONTyped(value?: IntegrationEventLearn
88
95
  'email': value['email'],
89
96
  'first_name': value['firstName'],
90
97
  'last_name': value['lastName'],
98
+ 'customer_ref': value['customerRef'],
91
99
  };
92
100
  }
93
101
 
@@ -43,6 +43,12 @@ export interface IntegrationEventUser {
43
43
  * @memberof IntegrationEventUser
44
44
  */
45
45
  lastName: string;
46
+ /**
47
+ * Your identifier for this user in the event portal, if set.
48
+ * @type {string}
49
+ * @memberof IntegrationEventUser
50
+ */
51
+ customerRef?: string | null;
46
52
  }
47
53
 
48
54
  /**
@@ -70,6 +76,7 @@ export function IntegrationEventUserFromJSONTyped(json: any, ignoreDiscriminator
70
76
  'email': json['email'],
71
77
  'firstName': json['first_name'],
72
78
  'lastName': json['last_name'],
79
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
73
80
  };
74
81
  }
75
82
 
@@ -88,6 +95,7 @@ export function IntegrationEventUserToJSONTyped(value?: IntegrationEventUser | n
88
95
  'email': value['email'],
89
96
  'first_name': value['firstName'],
90
97
  'last_name': value['lastName'],
98
+ 'customer_ref': value['customerRef'],
91
99
  };
92
100
  }
93
101
 
@@ -57,6 +57,12 @@ export interface PostCourse {
57
57
  * @memberof PostCourse
58
58
  */
59
59
  tags?: Set<string>;
60
+ /**
61
+ * Your own identifier for this course, unique within the portal. Integrations such as Zapier can use it in place of id.
62
+ * @type {string}
63
+ * @memberof PostCourse
64
+ */
65
+ customerRef?: string | null;
60
66
  }
61
67
 
62
68
 
@@ -96,6 +102,7 @@ export function PostCourseFromJSONTyped(json: any, ignoreDiscriminator: boolean)
96
102
  'accessDurationDays': json['access_duration_days'] == null ? undefined : json['access_duration_days'],
97
103
  'accessFixedEndAt': json['access_fixed_end_at'] == null ? undefined : json['access_fixed_end_at'],
98
104
  'tags': json['tags'] == null ? undefined : new Set(json['tags']),
105
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
99
106
  };
100
107
  }
101
108
 
@@ -116,6 +123,7 @@ export function PostCourseToJSONTyped(value?: PostCourse | null, ignoreDiscrimin
116
123
  'access_duration_days': value['accessDurationDays'],
117
124
  'access_fixed_end_at': value['accessFixedEndAt'],
118
125
  'tags': value['tags'] == null ? undefined : Array.from(value['tags'] as Set<any>),
126
+ 'customer_ref': value['customerRef'],
119
127
  };
120
128
  }
121
129
 
@@ -43,6 +43,12 @@ export interface PostPortalInvite {
43
43
  * @memberof PostPortalInvite
44
44
  */
45
45
  userType: PostPortalInviteUserTypeEnum;
46
+ /**
47
+ * Your own identifier for this user in this portal, unique within the portal. Integrations such as Zapier can use it in place of the user id.
48
+ * @type {string}
49
+ * @memberof PostPortalInvite
50
+ */
51
+ customerRef?: string | null;
46
52
  }
47
53
 
48
54
 
@@ -86,6 +92,7 @@ export function PostPortalInviteFromJSONTyped(json: any, ignoreDiscriminator: bo
86
92
  'firstName': json['first_name'],
87
93
  'lastName': json['last_name'],
88
94
  'userType': json['user_type'],
95
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
89
96
  };
90
97
  }
91
98
 
@@ -104,6 +111,7 @@ export function PostPortalInviteToJSONTyped(value?: PostPortalInvite | null, ign
104
111
  'first_name': value['firstName'],
105
112
  'last_name': value['lastName'],
106
113
  'user_type': value['userType'],
114
+ 'customer_ref': value['customerRef'],
107
115
  };
108
116
  }
109
117
 
@@ -0,0 +1,75 @@
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
+ * Adds shared tags to several questions at once without creating new question versions.
18
+ * @export
19
+ * @interface PostQuestionTags
20
+ */
21
+ export interface PostQuestionTags {
22
+ /**
23
+ * External IDs of the questions to tag
24
+ * @type {Array<string>}
25
+ * @memberof PostQuestionTags
26
+ */
27
+ questionIds: Array<string>;
28
+ /**
29
+ * Tag names to add. Existing tags on each question are kept.
30
+ * @type {Array<string>}
31
+ * @memberof PostQuestionTags
32
+ */
33
+ tags: Array<string>;
34
+ }
35
+
36
+ /**
37
+ * Check if a given object implements the PostQuestionTags interface.
38
+ */
39
+ export function instanceOfPostQuestionTags(value: object): value is PostQuestionTags {
40
+ if (!('questionIds' in value) || value['questionIds'] === undefined) return false;
41
+ if (!('tags' in value) || value['tags'] === undefined) return false;
42
+ return true;
43
+ }
44
+
45
+ export function PostQuestionTagsFromJSON(json: any): PostQuestionTags {
46
+ return PostQuestionTagsFromJSONTyped(json, false);
47
+ }
48
+
49
+ export function PostQuestionTagsFromJSONTyped(json: any, ignoreDiscriminator: boolean): PostQuestionTags {
50
+ if (json == null) {
51
+ return json;
52
+ }
53
+ return {
54
+
55
+ 'questionIds': json['question_ids'],
56
+ 'tags': json['tags'],
57
+ };
58
+ }
59
+
60
+ export function PostQuestionTagsToJSON(json: any): PostQuestionTags {
61
+ return PostQuestionTagsToJSONTyped(json, false);
62
+ }
63
+
64
+ export function PostQuestionTagsToJSONTyped(value?: PostQuestionTags | null, ignoreDiscriminator: boolean = false): any {
65
+ if (value == null) {
66
+ return value;
67
+ }
68
+
69
+ return {
70
+
71
+ 'question_ids': value['questionIds'],
72
+ 'tags': value['tags'],
73
+ };
74
+ }
75
+
@@ -0,0 +1,66 @@
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 PostQuestionTagsResponse
20
+ */
21
+ export interface PostQuestionTagsResponse {
22
+ /**
23
+ * Number of questions that received the tags
24
+ * @type {number}
25
+ * @memberof PostQuestionTagsResponse
26
+ */
27
+ updatedCount: number;
28
+ }
29
+
30
+ /**
31
+ * Check if a given object implements the PostQuestionTagsResponse interface.
32
+ */
33
+ export function instanceOfPostQuestionTagsResponse(value: object): value is PostQuestionTagsResponse {
34
+ if (!('updatedCount' in value) || value['updatedCount'] === undefined) return false;
35
+ return true;
36
+ }
37
+
38
+ export function PostQuestionTagsResponseFromJSON(json: any): PostQuestionTagsResponse {
39
+ return PostQuestionTagsResponseFromJSONTyped(json, false);
40
+ }
41
+
42
+ export function PostQuestionTagsResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): PostQuestionTagsResponse {
43
+ if (json == null) {
44
+ return json;
45
+ }
46
+ return {
47
+
48
+ 'updatedCount': json['updated_count'],
49
+ };
50
+ }
51
+
52
+ export function PostQuestionTagsResponseToJSON(json: any): PostQuestionTagsResponse {
53
+ return PostQuestionTagsResponseToJSONTyped(json, false);
54
+ }
55
+
56
+ export function PostQuestionTagsResponseToJSONTyped(value?: PostQuestionTagsResponse | null, ignoreDiscriminator: boolean = false): any {
57
+ if (value == null) {
58
+ return value;
59
+ }
60
+
61
+ return {
62
+
63
+ 'updated_count': value['updatedCount'],
64
+ };
65
+ }
66
+
@@ -70,6 +70,12 @@ export interface PostResource {
70
70
  * @memberof PostResource
71
71
  */
72
72
  tags?: Set<string>;
73
+ /**
74
+ * Your own identifier for this resource, unique within the portal. Integrations can use it in place of id.
75
+ * @type {string}
76
+ * @memberof PostResource
77
+ */
78
+ customerRef?: string | null;
73
79
  }
74
80
 
75
81
 
@@ -99,6 +105,7 @@ export function PostResourceFromJSONTyped(json: any, ignoreDiscriminator: boolea
99
105
  'linkUrl': json['link_url'] == null ? undefined : json['link_url'],
100
106
  'richText': json['rich_text'] == null ? undefined : RichTextInputFromJSON(json['rich_text']),
101
107
  'tags': json['tags'] == null ? undefined : new Set(json['tags']),
108
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
102
109
  };
103
110
  }
104
111
 
@@ -119,6 +126,7 @@ export function PostResourceToJSONTyped(value?: PostResource | null, ignoreDiscr
119
126
  'link_url': value['linkUrl'],
120
127
  'rich_text': RichTextInputToJSON(value['richText']),
121
128
  'tags': value['tags'] == null ? undefined : Array.from(value['tags'] as Set<any>),
129
+ 'customer_ref': value['customerRef'],
122
130
  };
123
131
  }
124
132
 
@@ -55,6 +55,12 @@ export interface PostRichTextAssetUpload {
55
55
  * @memberof PostRichTextAssetUpload
56
56
  */
57
57
  usageContext: PostRichTextAssetUploadUsageContextEnum;
58
+ /**
59
+ * Your own identifier for this asset, unique within the portal.
60
+ * @type {string}
61
+ * @memberof PostRichTextAssetUpload
62
+ */
63
+ customerRef?: string | null;
58
64
  }
59
65
 
60
66
 
@@ -94,6 +100,7 @@ export function PostRichTextAssetUploadFromJSONTyped(json: any, ignoreDiscrimina
94
100
  'width': json['width'] == null ? undefined : json['width'],
95
101
  'height': json['height'] == null ? undefined : json['height'],
96
102
  'usageContext': json['usage_context'],
103
+ 'customerRef': json['customer_ref'] == null ? undefined : json['customer_ref'],
97
104
  };
98
105
  }
99
106
 
@@ -114,6 +121,7 @@ export function PostRichTextAssetUploadToJSONTyped(value?: PostRichTextAssetUplo
114
121
  'width': value['width'],
115
122
  'height': value['height'],
116
123
  'usage_context': value['usageContext'],
124
+ 'customer_ref': value['customerRef'],
117
125
  };
118
126
  }
119
127
 
@@ -20,17 +20,17 @@ import { mapValues } from '../runtime';
20
20
  */
21
21
  export interface PostZapierEnrollment {
22
22
  /**
23
- *
23
+ * Course id. Send this or course_customer_ref.
24
24
  * @type {string}
25
25
  * @memberof PostZapierEnrollment
26
26
  */
27
- courseId: string;
27
+ courseId?: string;
28
28
  /**
29
- *
29
+ * User id. Send this or user_customer_ref.
30
30
  * @type {string}
31
31
  * @memberof PostZapierEnrollment
32
32
  */
33
- userId: string;
33
+ userId?: string;
34
34
  /**
35
35
  * Stable source event ID used to make retries safe.
36
36
  * @type {string}
@@ -61,6 +61,18 @@ export interface PostZapierEnrollment {
61
61
  * @memberof PostZapierEnrollment
62
62
  */
63
63
  reEnrollmentMode?: PostZapierEnrollmentReEnrollmentModeEnum;
64
+ /**
65
+ * Your identifier for the course. Send this or course_id.
66
+ * @type {string}
67
+ * @memberof PostZapierEnrollment
68
+ */
69
+ courseCustomerRef?: string | null;
70
+ /**
71
+ * Your identifier for the learner. Send this or user_id.
72
+ * @type {string}
73
+ * @memberof PostZapierEnrollment
74
+ */
75
+ userCustomerRef?: string | null;
64
76
  }
65
77
 
66
78
 
@@ -78,8 +90,6 @@ export type PostZapierEnrollmentReEnrollmentModeEnum = typeof PostZapierEnrollme
78
90
  * Check if a given object implements the PostZapierEnrollment interface.
79
91
  */
80
92
  export function instanceOfPostZapierEnrollment(value: object): value is PostZapierEnrollment {
81
- if (!('courseId' in value) || value['courseId'] === undefined) return false;
82
- if (!('userId' in value) || value['userId'] === undefined) return false;
83
93
  return true;
84
94
  }
85
95
 
@@ -93,13 +103,15 @@ export function PostZapierEnrollmentFromJSONTyped(json: any, ignoreDiscriminator
93
103
  }
94
104
  return {
95
105
 
96
- 'courseId': json['course_id'],
97
- 'userId': json['user_id'],
106
+ 'courseId': json['course_id'] == null ? undefined : json['course_id'],
107
+ 'userId': json['user_id'] == null ? undefined : json['user_id'],
98
108
  'idempotencyKey': json['idempotency_key'] == null ? undefined : json['idempotency_key'],
99
109
  'enrollmentDateStart': json['enrollment_date_start'] == null ? undefined : json['enrollment_date_start'],
100
110
  'enrollmentDateEnd': json['enrollment_date_end'] == null ? undefined : json['enrollment_date_end'],
101
111
  'notes': json['notes'] == null ? undefined : json['notes'],
102
112
  'reEnrollmentMode': json['re_enrollment_mode'] == null ? undefined : json['re_enrollment_mode'],
113
+ 'courseCustomerRef': json['course_customer_ref'] == null ? undefined : json['course_customer_ref'],
114
+ 'userCustomerRef': json['user_customer_ref'] == null ? undefined : json['user_customer_ref'],
103
115
  };
104
116
  }
105
117
 
@@ -121,6 +133,8 @@ export function PostZapierEnrollmentToJSONTyped(value?: PostZapierEnrollment | n
121
133
  'enrollment_date_end': value['enrollmentDateEnd'],
122
134
  'notes': value['notes'],
123
135
  're_enrollment_mode': value['reEnrollmentMode'],
136
+ 'course_customer_ref': value['courseCustomerRef'],
137
+ 'user_customer_ref': value['userCustomerRef'],
124
138
  };
125
139
  }
126
140