@iblai/iblai-api 4.59.3-core → 4.60.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.
Files changed (39) hide show
  1. package/dist/index.cjs.js +187 -18
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +188 -19
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.umd.js +187 -18
  6. package/dist/index.umd.js.map +1 -1
  7. package/dist/types/index.d.ts +12 -1
  8. package/dist/types/models/ConsumerChannel.d.ts +7 -0
  9. package/dist/types/models/NotificationSource.d.ts +2 -2
  10. package/dist/types/models/{TypeEnum.d.ts → NotificationSourceTypeEnum.d.ts} +1 -1
  11. package/dist/types/models/NotificationTemplateDetail.d.ts +86 -0
  12. package/dist/types/models/NotificationTemplateList.d.ts +59 -0
  13. package/dist/types/models/NotificationTemplateTest.d.ts +13 -0
  14. package/dist/types/models/NotificationTemplateTestResponse.d.ts +17 -0
  15. package/dist/types/models/NotificationToggle.d.ts +6 -0
  16. package/dist/types/models/NullEnum.d.ts +1 -0
  17. package/dist/types/models/PatchedNotificationTemplateDetail.d.ts +86 -0
  18. package/dist/types/models/PatchedNotificationToggle.d.ts +6 -0
  19. package/dist/types/models/Spa.d.ts +14 -0
  20. package/dist/types/models/TypeA81Enum.d.ts +42 -0
  21. package/dist/types/services/NotificationsService.d.ts +72 -0
  22. package/package.json +1 -1
  23. package/sdk_schema.yml +688 -17
  24. package/src/core/OpenAPI.ts +1 -1
  25. package/src/index.ts +12 -1
  26. package/src/models/ConsumerChannel.ts +12 -0
  27. package/src/models/NotificationSource.ts +2 -2
  28. package/src/models/{TypeEnum.ts → NotificationSourceTypeEnum.ts} +1 -1
  29. package/src/models/NotificationTemplateDetail.ts +91 -0
  30. package/src/models/NotificationTemplateList.ts +64 -0
  31. package/src/models/NotificationTemplateTest.ts +18 -0
  32. package/src/models/NotificationTemplateTestResponse.ts +22 -0
  33. package/src/models/NotificationToggle.ts +11 -0
  34. package/src/models/NullEnum.ts +7 -0
  35. package/src/models/PatchedNotificationTemplateDetail.ts +91 -0
  36. package/src/models/PatchedNotificationToggle.ts +11 -0
  37. package/src/models/Spa.ts +19 -0
  38. package/src/models/TypeA81Enum.ts +46 -0
  39. package/src/services/NotificationsService.ts +151 -0
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.59.3-core
4
+ version: 4.60.0-core
5
5
  description: API for iblai
6
6
  paths:
7
7
  /api/analytics/content/:
@@ -22804,6 +22804,226 @@ paths:
22804
22804
  schema:
22805
22805
  $ref: '#/components/schemas/TestSMTPResponse'
22806
22806
  description: ''
22807
+ /api/notification/v1/platforms/{platform_key}/templates/:
22808
+ get:
22809
+ operationId: notification_v1_platforms_templates_list
22810
+ description: Get all notification templates for the platform. Includes both
22811
+ platform-specific and inherited templates from main.
22812
+ summary: List notification templates
22813
+ parameters:
22814
+ - in: path
22815
+ name: platform_key
22816
+ schema:
22817
+ type: string
22818
+ required: true
22819
+ tags:
22820
+ - notifications
22821
+ security:
22822
+ - PlatformApiKeyAuthentication: []
22823
+ responses:
22824
+ '200':
22825
+ content:
22826
+ application/json:
22827
+ schema:
22828
+ type: array
22829
+ items:
22830
+ $ref: '#/components/schemas/NotificationTemplateList'
22831
+ description: ''
22832
+ /api/notification/v1/platforms/{platform_key}/templates/{notification_type}/:
22833
+ get:
22834
+ operationId: notification_v1_platforms_templates_retrieve
22835
+ description: Get detailed view of a notification template by type. Returns platform-specific
22836
+ template if exists, otherwise main template.
22837
+ summary: Get notification template details
22838
+ parameters:
22839
+ - in: path
22840
+ name: notification_type
22841
+ schema:
22842
+ type: string
22843
+ required: true
22844
+ - in: path
22845
+ name: platform_key
22846
+ schema:
22847
+ type: string
22848
+ required: true
22849
+ tags:
22850
+ - notifications
22851
+ security:
22852
+ - PlatformApiKeyAuthentication: []
22853
+ responses:
22854
+ '200':
22855
+ content:
22856
+ application/json:
22857
+ schema:
22858
+ $ref: '#/components/schemas/NotificationTemplateDetail'
22859
+ description: ''
22860
+ patch:
22861
+ operationId: notification_v1_platforms_templates_partial_update
22862
+ description: Update notification template. Creates platform-specific copy on
22863
+ first edit.
22864
+ summary: Update notification template
22865
+ parameters:
22866
+ - in: path
22867
+ name: notification_type
22868
+ schema:
22869
+ type: string
22870
+ required: true
22871
+ - in: path
22872
+ name: platform_key
22873
+ schema:
22874
+ type: string
22875
+ required: true
22876
+ tags:
22877
+ - notifications
22878
+ requestBody:
22879
+ content:
22880
+ application/json:
22881
+ schema:
22882
+ $ref: '#/components/schemas/PatchedNotificationTemplateDetail'
22883
+ application/scim+json:
22884
+ schema:
22885
+ $ref: '#/components/schemas/PatchedNotificationTemplateDetail'
22886
+ application/x-www-form-urlencoded:
22887
+ schema:
22888
+ $ref: '#/components/schemas/PatchedNotificationTemplateDetail'
22889
+ multipart/form-data:
22890
+ schema:
22891
+ $ref: '#/components/schemas/PatchedNotificationTemplateDetail'
22892
+ '*/*':
22893
+ schema:
22894
+ $ref: '#/components/schemas/PatchedNotificationTemplateDetail'
22895
+ security:
22896
+ - PlatformApiKeyAuthentication: []
22897
+ responses:
22898
+ '200':
22899
+ content:
22900
+ application/json:
22901
+ schema:
22902
+ $ref: '#/components/schemas/NotificationTemplateDetail'
22903
+ description: ''
22904
+ /api/notification/v1/platforms/{platform_key}/templates/{notification_type}/reset/:
22905
+ post:
22906
+ operationId: notification_v1_platforms_templates_reset_create
22907
+ description: Delete platform-specific template override and revert to main template.
22908
+ Notification preference (on/off) is preserved.
22909
+ summary: Reset template to default
22910
+ parameters:
22911
+ - in: path
22912
+ name: notification_type
22913
+ schema:
22914
+ type: string
22915
+ required: true
22916
+ - in: path
22917
+ name: platform_key
22918
+ schema:
22919
+ type: string
22920
+ required: true
22921
+ tags:
22922
+ - notifications
22923
+ security:
22924
+ - PlatformApiKeyAuthentication: []
22925
+ responses:
22926
+ '200':
22927
+ content:
22928
+ application/json:
22929
+ schema:
22930
+ type: object
22931
+ properties:
22932
+ message:
22933
+ type: string
22934
+ deleted:
22935
+ type: boolean
22936
+ description: ''
22937
+ /api/notification/v1/platforms/{platform_key}/templates/{notification_type}/test/:
22938
+ post:
22939
+ operationId: notification_v1_platforms_templates_test_create
22940
+ description: Send a test notification to verify template rendering and delivery.
22941
+ Sends to the requesting admin's email or a specified test email.
22942
+ summary: Send test notification
22943
+ parameters:
22944
+ - in: path
22945
+ name: notification_type
22946
+ schema:
22947
+ type: string
22948
+ required: true
22949
+ - in: path
22950
+ name: platform_key
22951
+ schema:
22952
+ type: string
22953
+ required: true
22954
+ tags:
22955
+ - notifications
22956
+ requestBody:
22957
+ content:
22958
+ application/json:
22959
+ schema:
22960
+ $ref: '#/components/schemas/NotificationTemplateTest'
22961
+ application/scim+json:
22962
+ schema:
22963
+ $ref: '#/components/schemas/NotificationTemplateTest'
22964
+ application/x-www-form-urlencoded:
22965
+ schema:
22966
+ $ref: '#/components/schemas/NotificationTemplateTest'
22967
+ multipart/form-data:
22968
+ schema:
22969
+ $ref: '#/components/schemas/NotificationTemplateTest'
22970
+ '*/*':
22971
+ schema:
22972
+ $ref: '#/components/schemas/NotificationTemplateTest'
22973
+ security:
22974
+ - PlatformApiKeyAuthentication: []
22975
+ responses:
22976
+ '200':
22977
+ content:
22978
+ application/json:
22979
+ schema:
22980
+ $ref: '#/components/schemas/NotificationTemplateTestResponse'
22981
+ description: ''
22982
+ /api/notification/v1/platforms/{platform_key}/templates/{notification_type}/toggle/:
22983
+ patch:
22984
+ operationId: notification_v1_platforms_templates_toggle_partial_update
22985
+ description: Enable or disable a notification type for the platform. This sets
22986
+ the NotificationPreference, not the template.
22987
+ summary: Toggle notification preference
22988
+ parameters:
22989
+ - in: path
22990
+ name: notification_type
22991
+ schema:
22992
+ type: string
22993
+ required: true
22994
+ - in: path
22995
+ name: platform_key
22996
+ schema:
22997
+ type: string
22998
+ required: true
22999
+ tags:
23000
+ - notifications
23001
+ requestBody:
23002
+ content:
23003
+ application/json:
23004
+ schema:
23005
+ $ref: '#/components/schemas/PatchedNotificationToggle'
23006
+ application/scim+json:
23007
+ schema:
23008
+ $ref: '#/components/schemas/PatchedNotificationToggle'
23009
+ application/x-www-form-urlencoded:
23010
+ schema:
23011
+ $ref: '#/components/schemas/PatchedNotificationToggle'
23012
+ multipart/form-data:
23013
+ schema:
23014
+ $ref: '#/components/schemas/PatchedNotificationToggle'
23015
+ '*/*':
23016
+ schema:
23017
+ $ref: '#/components/schemas/PatchedNotificationToggle'
23018
+ security:
23019
+ - PlatformApiKeyAuthentication: []
23020
+ responses:
23021
+ '200':
23022
+ content:
23023
+ application/json:
23024
+ schema:
23025
+ $ref: '#/components/schemas/NotificationToggle'
23026
+ description: ''
22807
23027
  /api/orgs/{platform_key}/scim/v2/Groups:
22808
23028
  get:
22809
23029
  operationId: list_groups
@@ -31501,6 +31721,19 @@ components:
31501
31721
  required:
31502
31722
  - key
31503
31723
  - value
31724
+ ConsumerChannel:
31725
+ type: object
31726
+ description: Serializer for channel
31727
+ properties:
31728
+ id:
31729
+ type: integer
31730
+ readOnly: true
31731
+ name:
31732
+ type: string
31733
+ title: Channel name
31734
+ maxLength: 255
31735
+ required:
31736
+ - id
31504
31737
  ContentAnalytics:
31505
31738
  type: object
31506
31739
  description: Serializer for individual content item analytics.
@@ -35068,12 +35301,30 @@ components:
35068
35301
  description: Request serializer for source validation
35069
35302
  properties:
35070
35303
  type:
35071
- $ref: '#/components/schemas/TypeEnum'
35304
+ $ref: '#/components/schemas/NotificationSourceTypeEnum'
35072
35305
  data:
35073
35306
  nullable: true
35074
35307
  required:
35075
35308
  - data
35076
35309
  - type
35310
+ NotificationSourceTypeEnum:
35311
+ enum:
35312
+ - email
35313
+ - username
35314
+ - platform
35315
+ - csv
35316
+ - department
35317
+ - pathway
35318
+ - program
35319
+ type: string
35320
+ description: |-
35321
+ * `email` - email
35322
+ * `username` - username
35323
+ * `platform` - platform
35324
+ * `csv` - csv
35325
+ * `department` - department
35326
+ * `pathway` - pathway
35327
+ * `program` - program
35077
35328
  NotificationStatusEnum:
35078
35329
  enum:
35079
35330
  - READ
@@ -35101,6 +35352,261 @@ components:
35101
35352
  \ and <anything passed into context dictionary>\n ```\n\n "
35102
35353
  required:
35103
35354
  - message_body
35355
+ NotificationTemplateDetail:
35356
+ type: object
35357
+ description: Serializer for detailed template view and editing
35358
+ properties:
35359
+ id:
35360
+ type: string
35361
+ format: uuid
35362
+ readOnly: true
35363
+ description: Unique identifier for this notification template.
35364
+ type:
35365
+ readOnly: true
35366
+ nullable: true
35367
+ description: |-
35368
+ Select the type of notification from the available options.
35369
+
35370
+ * `APP_REGISTRATION` - App Registration
35371
+ * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
35372
+ * `USER_NOTIF_COURSE_ENROLLMENT` - User Notif Course Enrollment
35373
+ * `ADMIN_NOTIF_COURSE_ENROLLMENT` - Admin Notif Course Enrollment
35374
+ * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
35375
+ * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
35376
+ * `USER_NOTIF_CREDENTIALS` - User Notif Credentials
35377
+ * `CUSTOM_NOTIFICATION` - Custom Notification
35378
+ * `PLATFORM_INVITATION` - Platform Invitation
35379
+ * `PROGRAM_INVITATION` - Program Invitation
35380
+ * `COURSE_INVITATION` - Course Invitation
35381
+ * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
35382
+ * `ROLE_CHANGE` - Role Change
35383
+ * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
35384
+ * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
35385
+ * `PROGRAM_LICENSE_ASSIGNMENT` - Program License Assignment
35386
+ * `PROGRAM_LICENSE_GROUP_ASSIGNMENT` - Program License Group Assignment
35387
+ * `USER_LICENSE_ASSIGNMENT` - User License Assignment
35388
+ * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
35389
+ oneOf:
35390
+ - $ref: '#/components/schemas/TypeA81Enum'
35391
+ - $ref: '#/components/schemas/NullEnum'
35392
+ name:
35393
+ type: string
35394
+ nullable: true
35395
+ description: A friendly name for the notification template.
35396
+ maxLength: 255
35397
+ description:
35398
+ type: string
35399
+ description: Admin-friendly description of what this notification does,
35400
+ when it triggers, and what data it needs
35401
+ message_title:
35402
+ type: string
35403
+ nullable: true
35404
+ description: The title for the notification message.
35405
+ maxLength: 255
35406
+ message_body:
35407
+ type: string
35408
+ description: The full notification message body.
35409
+ short_message_body:
35410
+ type: string
35411
+ description: A short version of the notification message body.
35412
+ email_subject:
35413
+ type: string
35414
+ nullable: true
35415
+ description: Email subject line (supports Django template syntax)
35416
+ maxLength: 255
35417
+ email_from_address:
35418
+ type: string
35419
+ nullable: true
35420
+ description: 'Sender email address (default: IBL <noreply@ibl.ai>)'
35421
+ maxLength: 255
35422
+ email_html_template:
35423
+ type: string
35424
+ nullable: true
35425
+ description: Full HTML template for email body
35426
+ spas_detail:
35427
+ type: array
35428
+ items:
35429
+ $ref: '#/components/schemas/Spa'
35430
+ readOnly: true
35431
+ allowed_channels_detail:
35432
+ type: array
35433
+ items:
35434
+ $ref: '#/components/schemas/ConsumerChannel'
35435
+ readOnly: true
35436
+ spa_ids:
35437
+ type: array
35438
+ items:
35439
+ type: integer
35440
+ writeOnly: true
35441
+ writeOnly: true
35442
+ channel_ids:
35443
+ type: array
35444
+ items:
35445
+ type: integer
35446
+ writeOnly: true
35447
+ writeOnly: true
35448
+ is_inherited:
35449
+ type: boolean
35450
+ readOnly: true
35451
+ is_enabled:
35452
+ type: boolean
35453
+ readOnly: true
35454
+ source_platform:
35455
+ type: string
35456
+ readOnly: true
35457
+ metadata: {}
35458
+ available_context:
35459
+ type: string
35460
+ readOnly: true
35461
+ created_at:
35462
+ type: string
35463
+ format: date-time
35464
+ readOnly: true
35465
+ description: Timestamp when this template was created
35466
+ updated_at:
35467
+ type: string
35468
+ format: date-time
35469
+ readOnly: true
35470
+ description: Timestamp when this template was last updated
35471
+ required:
35472
+ - allowed_channels_detail
35473
+ - available_context
35474
+ - created_at
35475
+ - id
35476
+ - is_enabled
35477
+ - is_inherited
35478
+ - source_platform
35479
+ - spas_detail
35480
+ - type
35481
+ - updated_at
35482
+ NotificationTemplateList:
35483
+ type: object
35484
+ description: Serializer for listing notification templates with inheritance
35485
+ info
35486
+ properties:
35487
+ id:
35488
+ type: string
35489
+ format: uuid
35490
+ readOnly: true
35491
+ description: Unique identifier for this notification template.
35492
+ type:
35493
+ nullable: true
35494
+ description: |-
35495
+ Select the type of notification from the available options.
35496
+
35497
+ * `APP_REGISTRATION` - App Registration
35498
+ * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
35499
+ * `USER_NOTIF_COURSE_ENROLLMENT` - User Notif Course Enrollment
35500
+ * `ADMIN_NOTIF_COURSE_ENROLLMENT` - Admin Notif Course Enrollment
35501
+ * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
35502
+ * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
35503
+ * `USER_NOTIF_CREDENTIALS` - User Notif Credentials
35504
+ * `CUSTOM_NOTIFICATION` - Custom Notification
35505
+ * `PLATFORM_INVITATION` - Platform Invitation
35506
+ * `PROGRAM_INVITATION` - Program Invitation
35507
+ * `COURSE_INVITATION` - Course Invitation
35508
+ * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
35509
+ * `ROLE_CHANGE` - Role Change
35510
+ * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
35511
+ * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
35512
+ * `PROGRAM_LICENSE_ASSIGNMENT` - Program License Assignment
35513
+ * `PROGRAM_LICENSE_GROUP_ASSIGNMENT` - Program License Group Assignment
35514
+ * `USER_LICENSE_ASSIGNMENT` - User License Assignment
35515
+ * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
35516
+ oneOf:
35517
+ - $ref: '#/components/schemas/TypeA81Enum'
35518
+ - $ref: '#/components/schemas/BlankEnum'
35519
+ - $ref: '#/components/schemas/NullEnum'
35520
+ name:
35521
+ type: string
35522
+ nullable: true
35523
+ description: A friendly name for the notification template.
35524
+ maxLength: 255
35525
+ description:
35526
+ type: string
35527
+ description: Admin-friendly description of what this notification does,
35528
+ when it triggers, and what data it needs
35529
+ is_inherited:
35530
+ type: boolean
35531
+ readOnly: true
35532
+ source_platform:
35533
+ type: string
35534
+ readOnly: true
35535
+ is_enabled:
35536
+ type: boolean
35537
+ readOnly: true
35538
+ can_customize:
35539
+ type: boolean
35540
+ readOnly: true
35541
+ message_title:
35542
+ type: string
35543
+ nullable: true
35544
+ description: The title for the notification message.
35545
+ maxLength: 255
35546
+ email_subject:
35547
+ type: string
35548
+ nullable: true
35549
+ description: Email subject line (supports Django template syntax)
35550
+ maxLength: 255
35551
+ spas:
35552
+ type: string
35553
+ readOnly: true
35554
+ allowed_channels:
35555
+ type: string
35556
+ readOnly: true
35557
+ available_context:
35558
+ type: string
35559
+ readOnly: true
35560
+ required:
35561
+ - allowed_channels
35562
+ - available_context
35563
+ - can_customize
35564
+ - id
35565
+ - is_enabled
35566
+ - is_inherited
35567
+ - source_platform
35568
+ - spas
35569
+ NotificationTemplateTest:
35570
+ type: object
35571
+ description: Serializer for testing notification template
35572
+ properties:
35573
+ test_email:
35574
+ type: string
35575
+ format: email
35576
+ description: Email address to send test notification to. Defaults to requesting
35577
+ user's email.
35578
+ context:
35579
+ description: 'Optional context variables for template rendering (e.g., {''course_name'':
35580
+ ''Test Course''})'
35581
+ NotificationTemplateTestResponse:
35582
+ type: object
35583
+ description: Serializer for test notification response
35584
+ properties:
35585
+ success:
35586
+ type: boolean
35587
+ description: Whether the test email was sent successfully
35588
+ message:
35589
+ type: string
35590
+ description: Description of the result
35591
+ recipient:
35592
+ type: string
35593
+ format: email
35594
+ description: Email address the test was sent to
35595
+ required:
35596
+ - message
35597
+ - recipient
35598
+ - success
35599
+ NotificationToggle:
35600
+ type: object
35601
+ description: Serializer for toggling notification preference
35602
+ properties:
35603
+ allow_notification:
35604
+ type: boolean
35605
+ required:
35606
+ - allow_notification
35607
+ NullEnum:
35608
+ enum:
35609
+ - null
35104
35610
  OnboardingStatusUpdate:
35105
35611
  type: object
35106
35612
  properties:
@@ -36087,6 +36593,128 @@ components:
36087
36593
  type: string
36088
36594
  format: date-time
36089
36595
  readOnly: true
36596
+ PatchedNotificationTemplateDetail:
36597
+ type: object
36598
+ description: Serializer for detailed template view and editing
36599
+ properties:
36600
+ id:
36601
+ type: string
36602
+ format: uuid
36603
+ readOnly: true
36604
+ description: Unique identifier for this notification template.
36605
+ type:
36606
+ readOnly: true
36607
+ nullable: true
36608
+ description: |-
36609
+ Select the type of notification from the available options.
36610
+
36611
+ * `APP_REGISTRATION` - App Registration
36612
+ * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
36613
+ * `USER_NOTIF_COURSE_ENROLLMENT` - User Notif Course Enrollment
36614
+ * `ADMIN_NOTIF_COURSE_ENROLLMENT` - Admin Notif Course Enrollment
36615
+ * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
36616
+ * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
36617
+ * `USER_NOTIF_CREDENTIALS` - User Notif Credentials
36618
+ * `CUSTOM_NOTIFICATION` - Custom Notification
36619
+ * `PLATFORM_INVITATION` - Platform Invitation
36620
+ * `PROGRAM_INVITATION` - Program Invitation
36621
+ * `COURSE_INVITATION` - Course Invitation
36622
+ * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
36623
+ * `ROLE_CHANGE` - Role Change
36624
+ * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
36625
+ * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
36626
+ * `PROGRAM_LICENSE_ASSIGNMENT` - Program License Assignment
36627
+ * `PROGRAM_LICENSE_GROUP_ASSIGNMENT` - Program License Group Assignment
36628
+ * `USER_LICENSE_ASSIGNMENT` - User License Assignment
36629
+ * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
36630
+ oneOf:
36631
+ - $ref: '#/components/schemas/TypeA81Enum'
36632
+ - $ref: '#/components/schemas/NullEnum'
36633
+ name:
36634
+ type: string
36635
+ nullable: true
36636
+ description: A friendly name for the notification template.
36637
+ maxLength: 255
36638
+ description:
36639
+ type: string
36640
+ description: Admin-friendly description of what this notification does,
36641
+ when it triggers, and what data it needs
36642
+ message_title:
36643
+ type: string
36644
+ nullable: true
36645
+ description: The title for the notification message.
36646
+ maxLength: 255
36647
+ message_body:
36648
+ type: string
36649
+ description: The full notification message body.
36650
+ short_message_body:
36651
+ type: string
36652
+ description: A short version of the notification message body.
36653
+ email_subject:
36654
+ type: string
36655
+ nullable: true
36656
+ description: Email subject line (supports Django template syntax)
36657
+ maxLength: 255
36658
+ email_from_address:
36659
+ type: string
36660
+ nullable: true
36661
+ description: 'Sender email address (default: IBL <noreply@ibl.ai>)'
36662
+ maxLength: 255
36663
+ email_html_template:
36664
+ type: string
36665
+ nullable: true
36666
+ description: Full HTML template for email body
36667
+ spas_detail:
36668
+ type: array
36669
+ items:
36670
+ $ref: '#/components/schemas/Spa'
36671
+ readOnly: true
36672
+ allowed_channels_detail:
36673
+ type: array
36674
+ items:
36675
+ $ref: '#/components/schemas/ConsumerChannel'
36676
+ readOnly: true
36677
+ spa_ids:
36678
+ type: array
36679
+ items:
36680
+ type: integer
36681
+ writeOnly: true
36682
+ writeOnly: true
36683
+ channel_ids:
36684
+ type: array
36685
+ items:
36686
+ type: integer
36687
+ writeOnly: true
36688
+ writeOnly: true
36689
+ is_inherited:
36690
+ type: boolean
36691
+ readOnly: true
36692
+ is_enabled:
36693
+ type: boolean
36694
+ readOnly: true
36695
+ source_platform:
36696
+ type: string
36697
+ readOnly: true
36698
+ metadata: {}
36699
+ available_context:
36700
+ type: string
36701
+ readOnly: true
36702
+ created_at:
36703
+ type: string
36704
+ format: date-time
36705
+ readOnly: true
36706
+ description: Timestamp when this template was created
36707
+ updated_at:
36708
+ type: string
36709
+ format: date-time
36710
+ readOnly: true
36711
+ description: Timestamp when this template was last updated
36712
+ PatchedNotificationToggle:
36713
+ type: object
36714
+ description: Serializer for toggling notification preference
36715
+ properties:
36716
+ allow_notification:
36717
+ type: boolean
36090
36718
  PatchedPlatformPublicMetadata:
36091
36719
  type: object
36092
36720
  properties:
@@ -40713,6 +41341,25 @@ components:
40713
41341
  - desired
40714
41342
  - reported
40715
41343
  - total
41344
+ Spa:
41345
+ type: object
41346
+ description: Serializer for SPA
41347
+ properties:
41348
+ id:
41349
+ type: integer
41350
+ readOnly: true
41351
+ name:
41352
+ type: string
41353
+ description: Unique identifier for the SPA (e.g., 'skills', 'mentor', 'admin',
41354
+ 'mobile')
41355
+ maxLength: 100
41356
+ description:
41357
+ type: string
41358
+ description: Human-friendly description of this SPA
41359
+ maxLength: 255
41360
+ required:
41361
+ - id
41362
+ - name
40716
41363
  StateEnum:
40717
41364
  enum:
40718
41365
  - pending
@@ -41516,24 +42163,48 @@ components:
41516
42163
  - course_identifier
41517
42164
  - course_name
41518
42165
  - time_spent_seconds
41519
- TypeEnum:
42166
+ TypeA81Enum:
41520
42167
  enum:
41521
- - email
41522
- - username
41523
- - platform
41524
- - csv
41525
- - department
41526
- - pathway
41527
- - program
42168
+ - APP_REGISTRATION
42169
+ - USER_NOTIF_USER_REGISTRATION
42170
+ - USER_NOTIF_COURSE_ENROLLMENT
42171
+ - ADMIN_NOTIF_COURSE_ENROLLMENT
42172
+ - USER_NOTIF_USER_INACTIVITY
42173
+ - USER_NOTIF_COURSE_COMPLETION
42174
+ - USER_NOTIF_CREDENTIALS
42175
+ - CUSTOM_NOTIFICATION
42176
+ - PLATFORM_INVITATION
42177
+ - PROGRAM_INVITATION
42178
+ - COURSE_INVITATION
42179
+ - USER_NOTIF_LEARNER_PROGRESS
42180
+ - ROLE_CHANGE
42181
+ - COURSE_LICENSE_ASSIGNMENT
42182
+ - COURSE_LICENSE_GROUP_ASSIGNMENT
42183
+ - PROGRAM_LICENSE_ASSIGNMENT
42184
+ - PROGRAM_LICENSE_GROUP_ASSIGNMENT
42185
+ - USER_LICENSE_ASSIGNMENT
42186
+ - USER_LICENSE_GROUP_ASSIGNMENT
41528
42187
  type: string
41529
42188
  description: |-
41530
- * `email` - email
41531
- * `username` - username
41532
- * `platform` - platform
41533
- * `csv` - csv
41534
- * `department` - department
41535
- * `pathway` - pathway
41536
- * `program` - program
42189
+ * `APP_REGISTRATION` - App Registration
42190
+ * `USER_NOTIF_USER_REGISTRATION` - User Notif User Registration
42191
+ * `USER_NOTIF_COURSE_ENROLLMENT` - User Notif Course Enrollment
42192
+ * `ADMIN_NOTIF_COURSE_ENROLLMENT` - Admin Notif Course Enrollment
42193
+ * `USER_NOTIF_USER_INACTIVITY` - User Notif User Inactivity
42194
+ * `USER_NOTIF_COURSE_COMPLETION` - User Notif Course Completion
42195
+ * `USER_NOTIF_CREDENTIALS` - User Notif Credentials
42196
+ * `CUSTOM_NOTIFICATION` - Custom Notification
42197
+ * `PLATFORM_INVITATION` - Platform Invitation
42198
+ * `PROGRAM_INVITATION` - Program Invitation
42199
+ * `COURSE_INVITATION` - Course Invitation
42200
+ * `USER_NOTIF_LEARNER_PROGRESS` - User Notif Learner Progress
42201
+ * `ROLE_CHANGE` - Role Change
42202
+ * `COURSE_LICENSE_ASSIGNMENT` - Course License Assignment
42203
+ * `COURSE_LICENSE_GROUP_ASSIGNMENT` - Course License Group Assignment
42204
+ * `PROGRAM_LICENSE_ASSIGNMENT` - Program License Assignment
42205
+ * `PROGRAM_LICENSE_GROUP_ASSIGNMENT` - Program License Group Assignment
42206
+ * `USER_LICENSE_ASSIGNMENT` - User License Assignment
42207
+ * `USER_LICENSE_GROUP_ASSIGNMENT` - User License Group Assignment
41537
42208
  UploadedImage:
41538
42209
  type: object
41539
42210
  properties: