@iblai/iblai-api 4.246.0-test-core → 4.247.0-core

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.
package/sdk_schema.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ibl-data-manager
4
- version: 4.246.0-core
4
+ version: 4.247.0-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /access-check/{item_type}/{item_id}/:
@@ -34944,10 +34944,12 @@ paths:
34944
34944
  user_id (str): The username of the user to retrieve skill information for
34945
34945
 
34946
34946
  Returns:
34947
- The user's self-reported skills information.
34947
+ The user's self-reported skills information. When the user is not
34948
+ linked to the platform or has no reported skills, an empty
34949
+ ``{"skills": []}`` payload is returned with a 200 status so callers
34950
+ can distinguish "no data" from a request error.
34948
34951
 
34949
34952
  Error Responses:
34950
- 400 Bad Request: If the user doesn't exist in the platform or has no reported skills
34951
34953
  404 Not Found: If the specified platform doesn't exist
34952
34954
 
34953
34955
  Access Control:
@@ -40017,6 +40019,14 @@ components:
40017
40019
  type: string
40018
40020
  required:
40019
40021
  - google_pay_receipt
40022
+ GradePostedNotifyModeEnum:
40023
+ enum:
40024
+ - every
40025
+ - first_only
40026
+ type: string
40027
+ description: |-
40028
+ * `every` - every
40029
+ * `first_only` - first_only
40020
40030
  GradingPerUser:
40021
40031
  type: object
40022
40032
  properties:
@@ -41788,6 +41798,7 @@ components:
41788
41798
  * `COURSE_INVITATION` - Course Invitation
41789
41799
  * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
41790
41800
  * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
41801
+ * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
41791
41802
  * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
41792
41803
  * `CUSTOM_NOTIFICATION` - Custom Notification
41793
41804
  * `DEFAULT_TEMPLATE` - Default Template
@@ -41803,6 +41814,7 @@ components:
41803
41814
  * `REPORT_COMPLETED` - Report Completed
41804
41815
  * `ROLE_CHANGE` - Role Change
41805
41816
  * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
41817
+ * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
41806
41818
  * `USER_LICENSE_ASSIGNMENT` - User License Assignment
41807
41819
  * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
41808
41820
  * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -41812,7 +41824,7 @@ components:
41812
41824
  * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
41813
41825
  * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
41814
41826
  oneOf:
41815
- - $ref: '#/components/schemas/Type229Enum'
41827
+ - $ref: '#/components/schemas/TypeD36Enum'
41816
41828
  - $ref: '#/components/schemas/NullEnum'
41817
41829
  name:
41818
41830
  type: string
@@ -42037,6 +42049,18 @@ components:
42037
42049
  writeOnly: true
42038
42050
  description: 'Mastery band thresholds (e.g. [{"name": "Beginner", "min_points":
42039
42051
  0}, {"name": "Intermediate", "min_points": 100}])'
42052
+ schedule_change_config:
42053
+ type: string
42054
+ readOnly: true
42055
+ description: Schedule change notification config (COURSE_SCHEDULE_CHANGE
42056
+ only)
42057
+ schedule_change_enabled_signals:
42058
+ type: array
42059
+ items:
42060
+ type: string
42061
+ writeOnly: true
42062
+ description: 'Signal types to trigger notifications: ["course_overview.start_date_changed",
42063
+ "course_overview.pacing_changed", "course_overview.cert_date_changed"]'
42040
42064
  courses_progress_config:
42041
42065
  type: object
42042
42066
  additionalProperties: {}
@@ -42080,6 +42104,26 @@ components:
42080
42104
  type: string
42081
42105
  writeOnly: true
42082
42106
  description: Timezone for execution (e.g. America/New_York)
42107
+ grade_posted_config:
42108
+ type: object
42109
+ additionalProperties: {}
42110
+ nullable: true
42111
+ readOnly: true
42112
+ description: Grade posted notification config (SUBSECTION_GRADE_UPDATE only)
42113
+ grade_posted_notify_mode:
42114
+ allOf:
42115
+ - $ref: '#/components/schemas/GradePostedNotifyModeEnum'
42116
+ writeOnly: true
42117
+ description: |-
42118
+ Notification mode: 'every' (with debounce) or 'first_only' (once per subsection)
42119
+
42120
+ * `every` - every
42121
+ * `first_only` - first_only
42122
+ grade_posted_debounce_seconds:
42123
+ type: integer
42124
+ minimum: 0
42125
+ writeOnly: true
42126
+ description: Debounce window in seconds for 'every' mode (default 300)
42083
42127
  created_at:
42084
42128
  type: string
42085
42129
  format: date-time
@@ -42097,6 +42141,7 @@ components:
42097
42141
  - course_milestone_config
42098
42142
  - courses_progress_config
42099
42143
  - created_at
42144
+ - grade_posted_config
42100
42145
  - human_support_config
42101
42146
  - id
42102
42147
  - is_enabled
@@ -42104,6 +42149,7 @@ components:
42104
42149
  - new_content_config
42105
42150
  - periodic_config
42106
42151
  - policy_config
42152
+ - schedule_change_config
42107
42153
  - skill_mastery_config
42108
42154
  - source_platform
42109
42155
  - spas_detail
@@ -42131,6 +42177,7 @@ components:
42131
42177
  * `COURSE_INVITATION` - Course Invitation
42132
42178
  * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
42133
42179
  * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
42180
+ * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
42134
42181
  * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
42135
42182
  * `CUSTOM_NOTIFICATION` - Custom Notification
42136
42183
  * `DEFAULT_TEMPLATE` - Default Template
@@ -42146,6 +42193,7 @@ components:
42146
42193
  * `REPORT_COMPLETED` - Report Completed
42147
42194
  * `ROLE_CHANGE` - Role Change
42148
42195
  * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
42196
+ * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
42149
42197
  * `USER_LICENSE_ASSIGNMENT` - User License Assignment
42150
42198
  * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
42151
42199
  * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -42155,7 +42203,7 @@ components:
42155
42203
  * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
42156
42204
  * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
42157
42205
  oneOf:
42158
- - $ref: '#/components/schemas/Type229Enum'
42206
+ - $ref: '#/components/schemas/TypeD36Enum'
42159
42207
  - $ref: '#/components/schemas/BlankEnum'
42160
42208
  - $ref: '#/components/schemas/NullEnum'
42161
42209
  name:
@@ -43459,6 +43507,7 @@ components:
43459
43507
  * `COURSE_INVITATION` - Course Invitation
43460
43508
  * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
43461
43509
  * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
43510
+ * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
43462
43511
  * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
43463
43512
  * `CUSTOM_NOTIFICATION` - Custom Notification
43464
43513
  * `DEFAULT_TEMPLATE` - Default Template
@@ -43474,6 +43523,7 @@ components:
43474
43523
  * `REPORT_COMPLETED` - Report Completed
43475
43524
  * `ROLE_CHANGE` - Role Change
43476
43525
  * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
43526
+ * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
43477
43527
  * `USER_LICENSE_ASSIGNMENT` - User License Assignment
43478
43528
  * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
43479
43529
  * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -43483,7 +43533,7 @@ components:
43483
43533
  * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
43484
43534
  * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
43485
43535
  oneOf:
43486
- - $ref: '#/components/schemas/Type229Enum'
43536
+ - $ref: '#/components/schemas/TypeD36Enum'
43487
43537
  - $ref: '#/components/schemas/NullEnum'
43488
43538
  name:
43489
43539
  type: string
@@ -43708,6 +43758,18 @@ components:
43708
43758
  writeOnly: true
43709
43759
  description: 'Mastery band thresholds (e.g. [{"name": "Beginner", "min_points":
43710
43760
  0}, {"name": "Intermediate", "min_points": 100}])'
43761
+ schedule_change_config:
43762
+ type: string
43763
+ readOnly: true
43764
+ description: Schedule change notification config (COURSE_SCHEDULE_CHANGE
43765
+ only)
43766
+ schedule_change_enabled_signals:
43767
+ type: array
43768
+ items:
43769
+ type: string
43770
+ writeOnly: true
43771
+ description: 'Signal types to trigger notifications: ["course_overview.start_date_changed",
43772
+ "course_overview.pacing_changed", "course_overview.cert_date_changed"]'
43711
43773
  courses_progress_config:
43712
43774
  type: object
43713
43775
  additionalProperties: {}
@@ -43751,6 +43813,26 @@ components:
43751
43813
  type: string
43752
43814
  writeOnly: true
43753
43815
  description: Timezone for execution (e.g. America/New_York)
43816
+ grade_posted_config:
43817
+ type: object
43818
+ additionalProperties: {}
43819
+ nullable: true
43820
+ readOnly: true
43821
+ description: Grade posted notification config (SUBSECTION_GRADE_UPDATE only)
43822
+ grade_posted_notify_mode:
43823
+ allOf:
43824
+ - $ref: '#/components/schemas/GradePostedNotifyModeEnum'
43825
+ writeOnly: true
43826
+ description: |-
43827
+ Notification mode: 'every' (with debounce) or 'first_only' (once per subsection)
43828
+
43829
+ * `every` - every
43830
+ * `first_only` - first_only
43831
+ grade_posted_debounce_seconds:
43832
+ type: integer
43833
+ minimum: 0
43834
+ writeOnly: true
43835
+ description: Debounce window in seconds for 'every' mode (default 300)
43754
43836
  created_at:
43755
43837
  type: string
43756
43838
  format: date-time
@@ -49656,7 +49738,7 @@ components:
49656
49738
  * `release` - Release Reserved Credits
49657
49739
  * `rollover` - Rollover Credits
49658
49740
  * `refund` - Refund Credits
49659
- Type229Enum:
49741
+ TypeD36Enum:
49660
49742
  enum:
49661
49743
  - ACTIVITY_COURSE_MILESTONE
49662
49744
  - ACTIVITY_NEW_CONTENT
@@ -49665,6 +49747,7 @@ components:
49665
49747
  - COURSE_INVITATION
49666
49748
  - COURSE_LICENSE_ASSIGNMENT
49667
49749
  - COURSE_LICENSE_GROUP_ASSIGNMENT
49750
+ - COURSE_SCHEDULE_CHANGE
49668
49751
  - COURSES_PROGRESS_SUMMARY
49669
49752
  - CUSTOM_NOTIFICATION
49670
49753
  - DEFAULT_TEMPLATE
@@ -49680,6 +49763,7 @@ components:
49680
49763
  - REPORT_COMPLETED
49681
49764
  - ROLE_CHANGE
49682
49765
  - SKILL_MASTERY_CHANGE
49766
+ - SUBSECTION_GRADE_UPDATE
49683
49767
  - USER_LICENSE_ASSIGNMENT
49684
49768
  - USER_LICENSE_GROUP_ASSIGNMENT
49685
49769
  - USER_NOTIF_COURSE_COMPLETION
@@ -49697,6 +49781,7 @@ components:
49697
49781
  * `COURSE_INVITATION` - Course Invitation
49698
49782
  * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
49699
49783
  * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
49784
+ * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
49700
49785
  * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
49701
49786
  * `CUSTOM_NOTIFICATION` - Custom Notification
49702
49787
  * `DEFAULT_TEMPLATE` - Default Template
@@ -49712,6 +49797,7 @@ components:
49712
49797
  * `REPORT_COMPLETED` - Report Completed
49713
49798
  * `ROLE_CHANGE` - Role Change
49714
49799
  * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
49800
+ * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
49715
49801
  * `USER_LICENSE_ASSIGNMENT` - User License Assignment
49716
49802
  * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
49717
49803
  * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
21
21
 
22
22
  export const OpenAPI: OpenAPIConfig = {
23
23
  BASE: 'https://base.manager.iblai.app',
24
- VERSION: '4.246.0-core',
24
+ VERSION: '4.247.0-core',
25
25
  WITH_CREDENTIALS: false,
26
26
  CREDENTIALS: 'include',
27
27
  TOKEN: undefined,
package/src/index.ts CHANGED
@@ -163,6 +163,7 @@ export type { GlobalCatalogSearchResponse } from './models/GlobalCatalogSearchRe
163
163
  export type { GooglePayAccountResponse } from './models/GooglePayAccountResponse';
164
164
  export { GooglePayAccountResponseStatusEnum } from './models/GooglePayAccountResponseStatusEnum';
165
165
  export type { GooglePayVerifyToken } from './models/GooglePayVerifyToken';
166
+ export { GradePostedNotifyModeEnum } from './models/GradePostedNotifyModeEnum';
166
167
  export type { GradingPerUser } from './models/GradingPerUser';
167
168
  export type { GradingPerUserData } from './models/GradingPerUserData';
168
169
  export { GrandfatheringStrategyEnum } from './models/GrandfatheringStrategyEnum';
@@ -480,7 +481,7 @@ export type { TokenProxyOutputSerializerData } from './models/TokenProxyOutputSe
480
481
  export type { TokenProxyUser } from './models/TokenProxyUser';
481
482
  export type { TopContent } from './models/TopContent';
482
483
  export { TransactionTypeEnum } from './models/TransactionTypeEnum';
483
- export { Type229Enum } from './models/Type229Enum';
484
+ export { TypeD36Enum } from './models/TypeD36Enum';
484
485
  export type { UploadedImage } from './models/UploadedImage';
485
486
  export type { UserApp } from './models/UserApp';
486
487
  export type { UserDeleteAPIError } from './models/UserDeleteAPIError';
@@ -0,0 +1,12 @@
1
+ /* generated using openapi-typescript-codegen -- do not edit */
2
+ /* istanbul ignore file */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ /**
6
+ * * `every` - every
7
+ * * `first_only` - first_only
8
+ */
9
+ export enum GradePostedNotifyModeEnum {
10
+ EVERY = 'every',
11
+ FIRST_ONLY = 'first_only',
12
+ }
@@ -4,12 +4,13 @@
4
4
  /* eslint-disable */
5
5
  import type { ConsumerChannel } from './ConsumerChannel';
6
6
  import type { CoursesProgressFrequencyEnum } from './CoursesProgressFrequencyEnum';
7
+ import type { GradePostedNotifyModeEnum } from './GradePostedNotifyModeEnum';
7
8
  import type { HumanSupportRecipientModeEnum } from './HumanSupportRecipientModeEnum';
8
9
  import type { NullEnum } from './NullEnum';
9
10
  import type { PeriodicFrequencyEnum } from './PeriodicFrequencyEnum';
10
11
  import type { PeriodicLearnerScopeEnum } from './PeriodicLearnerScopeEnum';
11
12
  import type { Spa } from './Spa';
12
- import type { Type229Enum } from './Type229Enum';
13
+ import type { TypeD36Enum } from './TypeD36Enum';
13
14
  /**
14
15
  * Serializer for detailed template view and editing
15
16
  */
@@ -28,6 +29,7 @@ export type NotificationTemplateDetail = {
28
29
  * * `COURSE_INVITATION` - Course Invitation
29
30
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
30
31
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
32
+ * * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
31
33
  * * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
32
34
  * * `CUSTOM_NOTIFICATION` - Custom Notification
33
35
  * * `DEFAULT_TEMPLATE` - Default Template
@@ -43,6 +45,7 @@ export type NotificationTemplateDetail = {
43
45
  * * `REPORT_COMPLETED` - Report Completed
44
46
  * * `ROLE_CHANGE` - Role Change
45
47
  * * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
48
+ * * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
46
49
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
47
50
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
48
51
  * * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -52,7 +55,7 @@ export type NotificationTemplateDetail = {
52
55
  * * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
53
56
  * * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
54
57
  */
55
- readonly type: (Type229Enum | NullEnum) | null;
58
+ readonly type: (TypeD36Enum | NullEnum) | null;
56
59
  /**
57
60
  * Template display name
58
61
  */
@@ -228,6 +231,14 @@ export type NotificationTemplateDetail = {
228
231
  * Mastery band thresholds (e.g. [{"name": "Beginner", "min_points": 0}, {"name": "Intermediate", "min_points": 100}])
229
232
  */
230
233
  skill_mastery_thresholds?: Array<Record<string, any>>;
234
+ /**
235
+ * Schedule change notification config (COURSE_SCHEDULE_CHANGE only)
236
+ */
237
+ readonly schedule_change_config: string;
238
+ /**
239
+ * Signal types to trigger notifications: ["course_overview.start_date_changed", "course_overview.pacing_changed", "course_overview.cert_date_changed"]
240
+ */
241
+ schedule_change_enabled_signals?: Array<string>;
231
242
  /**
232
243
  * Courses progress config (COURSES_PROGRESS_SUMMARY only)
233
244
  */
@@ -261,6 +272,21 @@ export type NotificationTemplateDetail = {
261
272
  * Timezone for execution (e.g. America/New_York)
262
273
  */
263
274
  courses_progress_timezone?: string;
275
+ /**
276
+ * Grade posted notification config (SUBSECTION_GRADE_UPDATE only)
277
+ */
278
+ readonly grade_posted_config: Record<string, any> | null;
279
+ /**
280
+ * Notification mode: 'every' (with debounce) or 'first_only' (once per subsection)
281
+ *
282
+ * * `every` - every
283
+ * * `first_only` - first_only
284
+ */
285
+ grade_posted_notify_mode?: GradePostedNotifyModeEnum;
286
+ /**
287
+ * Debounce window in seconds for 'every' mode (default 300)
288
+ */
289
+ grade_posted_debounce_seconds?: number;
264
290
  /**
265
291
  * Timestamp when this template was created
266
292
  */
@@ -4,7 +4,7 @@
4
4
  /* eslint-disable */
5
5
  import type { BlankEnum } from './BlankEnum';
6
6
  import type { NullEnum } from './NullEnum';
7
- import type { Type229Enum } from './Type229Enum';
7
+ import type { TypeD36Enum } from './TypeD36Enum';
8
8
  /**
9
9
  * Serializer for listing notification templates with inheritance info
10
10
  */
@@ -23,6 +23,7 @@ export type NotificationTemplateList = {
23
23
  * * `COURSE_INVITATION` - Course Invitation
24
24
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
25
25
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
26
+ * * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
26
27
  * * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
27
28
  * * `CUSTOM_NOTIFICATION` - Custom Notification
28
29
  * * `DEFAULT_TEMPLATE` - Default Template
@@ -38,6 +39,7 @@ export type NotificationTemplateList = {
38
39
  * * `REPORT_COMPLETED` - Report Completed
39
40
  * * `ROLE_CHANGE` - Role Change
40
41
  * * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
42
+ * * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
41
43
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
42
44
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
43
45
  * * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -47,7 +49,7 @@ export type NotificationTemplateList = {
47
49
  * * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
48
50
  * * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
49
51
  */
50
- type?: (Type229Enum | BlankEnum | NullEnum) | null;
52
+ type?: (TypeD36Enum | BlankEnum | NullEnum) | null;
51
53
  /**
52
54
  * A friendly name for the notification template.
53
55
  */
@@ -4,12 +4,13 @@
4
4
  /* eslint-disable */
5
5
  import type { ConsumerChannel } from './ConsumerChannel';
6
6
  import type { CoursesProgressFrequencyEnum } from './CoursesProgressFrequencyEnum';
7
+ import type { GradePostedNotifyModeEnum } from './GradePostedNotifyModeEnum';
7
8
  import type { HumanSupportRecipientModeEnum } from './HumanSupportRecipientModeEnum';
8
9
  import type { NullEnum } from './NullEnum';
9
10
  import type { PeriodicFrequencyEnum } from './PeriodicFrequencyEnum';
10
11
  import type { PeriodicLearnerScopeEnum } from './PeriodicLearnerScopeEnum';
11
12
  import type { Spa } from './Spa';
12
- import type { Type229Enum } from './Type229Enum';
13
+ import type { TypeD36Enum } from './TypeD36Enum';
13
14
  /**
14
15
  * Serializer for detailed template view and editing
15
16
  */
@@ -28,6 +29,7 @@ export type PatchedNotificationTemplateDetail = {
28
29
  * * `COURSE_INVITATION` - Course Invitation
29
30
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
30
31
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
32
+ * * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
31
33
  * * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
32
34
  * * `CUSTOM_NOTIFICATION` - Custom Notification
33
35
  * * `DEFAULT_TEMPLATE` - Default Template
@@ -43,6 +45,7 @@ export type PatchedNotificationTemplateDetail = {
43
45
  * * `REPORT_COMPLETED` - Report Completed
44
46
  * * `ROLE_CHANGE` - Role Change
45
47
  * * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
48
+ * * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
46
49
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
47
50
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
48
51
  * * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -52,7 +55,7 @@ export type PatchedNotificationTemplateDetail = {
52
55
  * * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
53
56
  * * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
54
57
  */
55
- readonly type?: (Type229Enum | NullEnum) | null;
58
+ readonly type?: (TypeD36Enum | NullEnum) | null;
56
59
  /**
57
60
  * Template display name
58
61
  */
@@ -228,6 +231,14 @@ export type PatchedNotificationTemplateDetail = {
228
231
  * Mastery band thresholds (e.g. [{"name": "Beginner", "min_points": 0}, {"name": "Intermediate", "min_points": 100}])
229
232
  */
230
233
  skill_mastery_thresholds?: Array<Record<string, any>>;
234
+ /**
235
+ * Schedule change notification config (COURSE_SCHEDULE_CHANGE only)
236
+ */
237
+ readonly schedule_change_config?: string;
238
+ /**
239
+ * Signal types to trigger notifications: ["course_overview.start_date_changed", "course_overview.pacing_changed", "course_overview.cert_date_changed"]
240
+ */
241
+ schedule_change_enabled_signals?: Array<string>;
231
242
  /**
232
243
  * Courses progress config (COURSES_PROGRESS_SUMMARY only)
233
244
  */
@@ -261,6 +272,21 @@ export type PatchedNotificationTemplateDetail = {
261
272
  * Timezone for execution (e.g. America/New_York)
262
273
  */
263
274
  courses_progress_timezone?: string;
275
+ /**
276
+ * Grade posted notification config (SUBSECTION_GRADE_UPDATE only)
277
+ */
278
+ readonly grade_posted_config?: Record<string, any> | null;
279
+ /**
280
+ * Notification mode: 'every' (with debounce) or 'first_only' (once per subsection)
281
+ *
282
+ * * `every` - every
283
+ * * `first_only` - first_only
284
+ */
285
+ grade_posted_notify_mode?: GradePostedNotifyModeEnum;
286
+ /**
287
+ * Debounce window in seconds for 'every' mode (default 300)
288
+ */
289
+ grade_posted_debounce_seconds?: number;
264
290
  /**
265
291
  * Timestamp when this template was created
266
292
  */
@@ -10,6 +10,7 @@
10
10
  * * `COURSE_INVITATION` - Course Invitation
11
11
  * * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
12
12
  * * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
13
+ * * `COURSE_SCHEDULE_CHANGE` - Course Schedule Change
13
14
  * * `COURSES_PROGRESS_SUMMARY` - Courses Progress Summary
14
15
  * * `CUSTOM_NOTIFICATION` - Custom Notification
15
16
  * * `DEFAULT_TEMPLATE` - Default Template
@@ -25,6 +26,7 @@
25
26
  * * `REPORT_COMPLETED` - Report Completed
26
27
  * * `ROLE_CHANGE` - Role Change
27
28
  * * `SKILL_MASTERY_CHANGE` - Skill Mastery Change
29
+ * * `SUBSECTION_GRADE_UPDATE` - Subsection Grade Update
28
30
  * * `USER_LICENSE_ASSIGNMENT` - User License Assignment
29
31
  * * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
30
32
  * * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
@@ -34,7 +36,7 @@
34
36
  * * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
35
37
  * * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
36
38
  */
37
- export enum Type229Enum {
39
+ export enum TypeD36Enum {
38
40
  ACTIVITY_COURSE_MILESTONE = 'ACTIVITY_COURSE_MILESTONE',
39
41
  ACTIVITY_NEW_CONTENT = 'ACTIVITY_NEW_CONTENT',
40
42
  ADMIN_NOTIF_COURSE_ENROLLMENT = 'ADMIN_NOTIF_COURSE_ENROLLMENT',
@@ -42,6 +44,7 @@ export enum Type229Enum {
42
44
  COURSE_INVITATION = 'COURSE_INVITATION',
43
45
  COURSE_LICENSE_ASSIGNMENT = 'COURSE_LICENSE_ASSIGNMENT',
44
46
  COURSE_LICENSE_GROUP_ASSIGNMENT = 'COURSE_LICENSE_GROUP_ASSIGNMENT',
47
+ COURSE_SCHEDULE_CHANGE = 'COURSE_SCHEDULE_CHANGE',
45
48
  COURSES_PROGRESS_SUMMARY = 'COURSES_PROGRESS_SUMMARY',
46
49
  CUSTOM_NOTIFICATION = 'CUSTOM_NOTIFICATION',
47
50
  DEFAULT_TEMPLATE = 'DEFAULT_TEMPLATE',
@@ -57,6 +60,7 @@ export enum Type229Enum {
57
60
  REPORT_COMPLETED = 'REPORT_COMPLETED',
58
61
  ROLE_CHANGE = 'ROLE_CHANGE',
59
62
  SKILL_MASTERY_CHANGE = 'SKILL_MASTERY_CHANGE',
63
+ SUBSECTION_GRADE_UPDATE = 'SUBSECTION_GRADE_UPDATE',
60
64
  USER_LICENSE_ASSIGNMENT = 'USER_LICENSE_ASSIGNMENT',
61
65
  USER_LICENSE_GROUP_ASSIGNMENT = 'USER_LICENSE_GROUP_ASSIGNMENT',
62
66
  USER_NOTIF_COURSE_COMPLETION = 'USER_NOTIF_COURSE_COMPLETION',
@@ -502,10 +502,12 @@ export class SkillsService {
502
502
  * user_id (str): The username of the user to retrieve skill information for
503
503
  *
504
504
  * Returns:
505
- * The user's self-reported skills information.
505
+ * The user's self-reported skills information. When the user is not
506
+ * linked to the platform or has no reported skills, an empty
507
+ * ``{"skills": []}`` payload is returned with a 200 status so callers
508
+ * can distinguish "no data" from a request error.
506
509
  *
507
510
  * Error Responses:
508
- * 400 Bad Request: If the user doesn't exist in the platform or has no reported skills
509
511
  * 404 Not Found: If the specified platform doesn't exist
510
512
  *
511
513
  * Access Control: