@thinkai/tai-api-contract 2.147.1 → 2.149.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.
@@ -1,7 +1,7 @@
1
1
  openapi: 3.0.3
2
2
  info:
3
3
  title: ThinkAI API
4
- version: 2.147.1
4
+ version: 2.149.0
5
5
  description: >
6
6
  Contract surface for the AI Driven SDLC backend used by ThinkAI.
7
7
  Workspace-scoped routes use `/workspaces/{workspaceId}/...`.
@@ -9204,15 +9204,42 @@ paths:
9204
9204
  get:
9205
9205
  tags: [Notifications]
9206
9206
  summary: Paginated notifications
9207
+ description: >
9208
+ Inbox for the current user in this workspace. Applies the same notification-type
9209
+ preference filter and routine-title exclusion as the unread badge. `view` defaults to
9210
+ `all` so a client that omits it still receives success rows. Severity is the stored
9211
+ column and is not recomputed per request.
9207
9212
  operationId: listNotifications
9208
9213
  parameters:
9209
9214
  - $ref: "#/components/parameters/WorkspaceId"
9210
9215
  - name: limit
9211
9216
  in: query
9212
- schema: { type: integer, minimum: 1 }
9217
+ schema:
9218
+ type: integer
9219
+ minimum: 1
9220
+ maximum: 100
9221
+ default: 50
9213
9222
  - name: offset
9214
9223
  in: query
9215
- schema: { type: integer, minimum: 0 }
9224
+ schema:
9225
+ type: integer
9226
+ minimum: 0
9227
+ default: 0
9228
+ - name: view
9229
+ in: query
9230
+ description: >
9231
+ `all` returns every severity. `needs_action` returns only `warning` and
9232
+ `destructive`. Omitted is `all`.
9233
+ schema:
9234
+ type: string
9235
+ enum: [all, needs_action]
9236
+ default: all
9237
+ - name: unread
9238
+ in: query
9239
+ description: >
9240
+ Omit to include read and unread rows. `true` is unread only. `false` is read only.
9241
+ schema:
9242
+ type: boolean
9216
9243
  responses:
9217
9244
  "200":
9218
9245
  description: Page of notifications
@@ -9220,6 +9247,12 @@ paths:
9220
9247
  application/json:
9221
9248
  schema:
9222
9249
  $ref: "#/components/schemas/NotificationListDto"
9250
+ "400":
9251
+ description: Invalid `view` or `unread`
9252
+ content:
9253
+ application/json:
9254
+ schema:
9255
+ $ref: "#/components/schemas/ErrorMessageDto"
9223
9256
  "401":
9224
9257
  $ref: "#/components/responses/Unauthorized"
9225
9258
 
@@ -9227,6 +9260,10 @@ paths:
9227
9260
  get:
9228
9261
  tags: [Notifications]
9229
9262
  summary: Unread notification count
9263
+ description: >
9264
+ Unread rows for the current user in this workspace after the notification-type
9265
+ preference filter and the routine-title exclusion. `count` is not capped.
9266
+ `hasUnreadCritical` is true when at least one of those rows has severity `destructive`.
9230
9267
  operationId: getNotificationUnreadCount
9231
9268
  parameters:
9232
9269
  - $ref: "#/components/parameters/WorkspaceId"
@@ -9363,6 +9400,9 @@ paths:
9363
9400
  get:
9364
9401
  tags: [Preferences]
9365
9402
  summary: Get preferences for current user
9403
+ description: >
9404
+ Returns saved preferences, including `notificationChannels`. An empty or missing
9405
+ profile returns defaults (`email.status` is `digest`; every other channel cell is `off`).
9366
9406
  operationId: getMyPreferences
9367
9407
  responses:
9368
9408
  "200":
@@ -9376,13 +9416,20 @@ paths:
9376
9416
  put:
9377
9417
  tags: [Preferences]
9378
9418
  summary: Upsert preferences
9419
+ description: >
9420
+ Replaces the saved preferences object. Omitting `notificationChannels` keeps the
9421
+ stored cells, or the defaults when none are stored. A body that includes
9422
+ `notificationChannels` replaces those cells; any missing key inside it uses the
9423
+ default (`email.status` = `digest`, every other cell = `off`). Setting
9424
+ `email.status` to `off` returns 400 `notification_channel_required`. In-app
9425
+ `notifications` booleans are independent of these cells.
9379
9426
  operationId: putMyPreferences
9380
9427
  requestBody:
9381
9428
  required: true
9382
9429
  content:
9383
9430
  application/json:
9384
9431
  schema:
9385
- $ref: "#/components/schemas/PreferencesDto"
9432
+ $ref: "#/components/schemas/PutPreferencesBodyDto"
9386
9433
  responses:
9387
9434
  "200":
9388
9435
  description: Saved preferences
@@ -9391,11 +9438,15 @@ paths:
9391
9438
  schema:
9392
9439
  $ref: "#/components/schemas/PreferencesDto"
9393
9440
  "400":
9394
- description: Validation failed
9441
+ description: >
9442
+ Validation failed, or Status email was set to off
9443
+ (`code` `notification_channel_required`).
9395
9444
  content:
9396
9445
  application/json:
9397
9446
  schema:
9398
- $ref: "#/components/schemas/PreferencesValidationErrorDto"
9447
+ oneOf:
9448
+ - $ref: "#/components/schemas/PreferencesValidationErrorDto"
9449
+ - $ref: "#/components/schemas/NotificationChannelRequiredErrorDto"
9399
9450
  "401":
9400
9451
  $ref: "#/components/responses/Unauthorized"
9401
9452
 
@@ -9450,9 +9501,10 @@ paths:
9450
9501
  tags: [Me]
9451
9502
  summary: App chrome bootstrap payload
9452
9503
  description: >
9453
- Returns the authenticated user's profile, workspace list, and preferences in one response.
9504
+ Returns the authenticated user's profile, workspace list, and preferences
9505
+ (including `notificationChannels`) in one response.
9454
9506
  When `workspaceId` is provided and resolves to a workspace the caller belongs to, also
9455
- returns platform banner, unread notification count, journey progress, and connectors
9507
+ returns platform banner, unread notification count (`count` and `hasUnreadCritical`), journey progress, and connectors
9456
9508
  snapshot. Invalid, unknown, or non-member `workspaceId` values do not produce 403/404 —
9457
9509
  the response is still 200 with only `me`, `workspaces`, and `preferences` (workspace-scoped
9458
9510
  fields omitted).
@@ -18501,7 +18553,7 @@ components:
18501
18553
 
18502
18554
  NotificationDto:
18503
18555
  type: object
18504
- required: [id, type, title, message, read, createdAt]
18556
+ required: [id, type, title, message, read, createdAt, severity]
18505
18557
  properties:
18506
18558
  id:
18507
18559
  type: string
@@ -18522,6 +18574,8 @@ components:
18522
18574
  severity:
18523
18575
  type: string
18524
18576
  enum: [success, warning, destructive, muted, neutral]
18577
+ description: >
18578
+ Stored on the notification row at fan-out. `destructive` is the only critical severity.
18525
18579
  triggeredBy:
18526
18580
  type: string
18527
18581
  nullable: true
@@ -18539,11 +18593,17 @@ components:
18539
18593
 
18540
18594
  NotificationUnreadCountDto:
18541
18595
  type: object
18542
- required: [count]
18596
+ required: [count, hasUnreadCritical]
18543
18597
  properties:
18544
18598
  count:
18545
18599
  type: integer
18546
18600
  minimum: 0
18601
+ description: >
18602
+ Unread rows after the type-preference filter and routine-title exclusion. Not capped.
18603
+ hasUnreadCritical:
18604
+ type: boolean
18605
+ description: >
18606
+ True when at least one of those unread rows has severity `destructive`.
18547
18607
 
18548
18608
  EffectiveTaskRowDto:
18549
18609
  type: object
@@ -18708,9 +18768,156 @@ components:
18708
18768
  type: boolean
18709
18769
  description: System / platform announcements.
18710
18770
 
18771
+ NotificationEmailStatusMode:
18772
+ type: string
18773
+ description: >
18774
+ Status email delivery. `digest` (default) is the weekly mail. `immediate`
18775
+ sends as events arrive. `off` is not allowed.
18776
+ enum: [immediate, digest]
18777
+
18778
+ NotificationEmailDeliveryMode:
18779
+ type: string
18780
+ description: >
18781
+ Email delivery for comment, activity, or system. Default `off`.
18782
+ `immediate` sends as events arrive. `digest` is the weekly mail.
18783
+ enum: [off, immediate, digest]
18784
+
18785
+ NotificationChatDeliveryMode:
18786
+ type: string
18787
+ description: >
18788
+ Slack or Teams delivery for one category. Default `off` until that member
18789
+ changes the cell. `dm` is a direct message. `channel` posts to the workspace
18790
+ channel an admin saved. Connecting chat does not turn cells on.
18791
+ enum: [off, dm, channel]
18792
+
18793
+ NotificationEmailChannelsDto:
18794
+ type: object
18795
+ additionalProperties: false
18796
+ required: [status, comment, activity, system]
18797
+ properties:
18798
+ status:
18799
+ $ref: "#/components/schemas/NotificationEmailStatusMode"
18800
+ comment:
18801
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18802
+ activity:
18803
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18804
+ system:
18805
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18806
+
18807
+ NotificationChatChannelsDto:
18808
+ type: object
18809
+ additionalProperties: false
18810
+ required: [status, comment, activity, system]
18811
+ properties:
18812
+ status:
18813
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18814
+ comment:
18815
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18816
+ activity:
18817
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18818
+ system:
18819
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18820
+
18821
+ NotificationChannelsDto:
18822
+ type: object
18823
+ additionalProperties: false
18824
+ required: [email, slack, teams]
18825
+ description: >
18826
+ Delivery cells beside the in-app Message Center switches. Defaults:
18827
+ `email.status` is `digest`; every other cell is `off`. Inbox rows whose
18828
+ type is `integration` use the `status` cell.
18829
+ properties:
18830
+ email:
18831
+ $ref: "#/components/schemas/NotificationEmailChannelsDto"
18832
+ slack:
18833
+ $ref: "#/components/schemas/NotificationChatChannelsDto"
18834
+ teams:
18835
+ $ref: "#/components/schemas/NotificationChatChannelsDto"
18836
+
18837
+ PutNotificationEmailChannelsDto:
18838
+ type: object
18839
+ additionalProperties: false
18840
+ description: >
18841
+ Partial email cells. Omitted keys are filled with defaults on save
18842
+ (`status` = `digest`, other keys = `off`).
18843
+ properties:
18844
+ status:
18845
+ $ref: "#/components/schemas/NotificationEmailStatusMode"
18846
+ comment:
18847
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18848
+ activity:
18849
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18850
+ system:
18851
+ $ref: "#/components/schemas/NotificationEmailDeliveryMode"
18852
+
18853
+ PutNotificationChatChannelsDto:
18854
+ type: object
18855
+ additionalProperties: false
18856
+ description: Partial chat cells. Omitted keys default to `off` on save.
18857
+ properties:
18858
+ status:
18859
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18860
+ comment:
18861
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18862
+ activity:
18863
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18864
+ system:
18865
+ $ref: "#/components/schemas/NotificationChatDeliveryMode"
18866
+
18867
+ PutNotificationChannelsDto:
18868
+ type: object
18869
+ additionalProperties: false
18870
+ description: >
18871
+ Replaces stored channel cells when present on `PUT /me/preferences`.
18872
+ Omitted `email`, `slack`, or `teams` objects are filled with defaults.
18873
+ properties:
18874
+ email:
18875
+ $ref: "#/components/schemas/PutNotificationEmailChannelsDto"
18876
+ slack:
18877
+ $ref: "#/components/schemas/PutNotificationChatChannelsDto"
18878
+ teams:
18879
+ $ref: "#/components/schemas/PutNotificationChatChannelsDto"
18880
+
18711
18881
  PreferencesDto:
18712
18882
  type: object
18713
18883
  additionalProperties: false
18884
+ required:
18885
+ [
18886
+ theme,
18887
+ sidebarCollapsed,
18888
+ timezone,
18889
+ dataRefreshInterval,
18890
+ notifications,
18891
+ buddyEnabled,
18892
+ notificationChannels,
18893
+ ]
18894
+ properties:
18895
+ theme:
18896
+ $ref: "#/components/schemas/ThemePreference"
18897
+ sidebarCollapsed:
18898
+ type: boolean
18899
+ timezone:
18900
+ type: string
18901
+ description: IANA timezone name
18902
+ dataRefreshInterval:
18903
+ $ref: "#/components/schemas/DataRefreshInterval"
18904
+ notifications:
18905
+ $ref: "#/components/schemas/NotificationPreferencesDto"
18906
+ buddyEnabled:
18907
+ type: boolean
18908
+ default: false
18909
+ description: >
18910
+ When true, show the ThinkAI Buddy mascot. Default and missing stored
18911
+ values are false (opt-in only).
18912
+ notificationChannels:
18913
+ $ref: "#/components/schemas/NotificationChannelsDto"
18914
+
18915
+ PutPreferencesBodyDto:
18916
+ type: object
18917
+ additionalProperties: false
18918
+ description: >
18919
+ Body for `PUT /me/preferences`. `notificationChannels` may be omitted to keep
18920
+ stored cells.
18714
18921
  required:
18715
18922
  [theme, sidebarCollapsed, timezone, dataRefreshInterval, notifications, buddyEnabled]
18716
18923
  properties:
@@ -18731,6 +18938,20 @@ components:
18731
18938
  description: >
18732
18939
  When true, show the ThinkAI Buddy mascot. Default and missing stored
18733
18940
  values are false (opt-in only).
18941
+ notificationChannels:
18942
+ $ref: "#/components/schemas/PutNotificationChannelsDto"
18943
+
18944
+ NotificationChannelRequiredErrorDto:
18945
+ type: object
18946
+ additionalProperties: false
18947
+ required: [error, code]
18948
+ properties:
18949
+ error:
18950
+ type: string
18951
+ description: Status email cannot be turned off.
18952
+ code:
18953
+ type: string
18954
+ enum: [notification_channel_required]
18734
18955
 
18735
18956
  ValidationIssueDto:
18736
18957
  type: object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thinkai/tai-api-contract",
3
- "version": "2.147.1",
3
+ "version": "2.149.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -3708,7 +3708,10 @@ export interface paths {
3708
3708
  path?: never;
3709
3709
  cookie?: never;
3710
3710
  };
3711
- /** Paginated notifications */
3711
+ /**
3712
+ * Paginated notifications
3713
+ * @description Inbox for the current user in this workspace. Applies the same notification-type preference filter and routine-title exclusion as the unread badge. `view` defaults to `all` so a client that omits it still receives success rows. Severity is the stored column and is not recomputed per request.
3714
+ */
3712
3715
  get: operations["listNotifications"];
3713
3716
  put?: never;
3714
3717
  post?: never;
@@ -3725,7 +3728,10 @@ export interface paths {
3725
3728
  path?: never;
3726
3729
  cookie?: never;
3727
3730
  };
3728
- /** Unread notification count */
3731
+ /**
3732
+ * Unread notification count
3733
+ * @description Unread rows for the current user in this workspace after the notification-type preference filter and the routine-title exclusion. `count` is not capped. `hasUnreadCritical` is true when at least one of those rows has severity `destructive`.
3734
+ */
3729
3735
  get: operations["getNotificationUnreadCount"];
3730
3736
  put?: never;
3731
3737
  post?: never;
@@ -3814,9 +3820,15 @@ export interface paths {
3814
3820
  path?: never;
3815
3821
  cookie?: never;
3816
3822
  };
3817
- /** Get preferences for current user */
3823
+ /**
3824
+ * Get preferences for current user
3825
+ * @description Returns saved preferences, including `notificationChannels`. An empty or missing profile returns defaults (`email.status` is `digest`; every other channel cell is `off`).
3826
+ */
3818
3827
  get: operations["getMyPreferences"];
3819
- /** Upsert preferences */
3828
+ /**
3829
+ * Upsert preferences
3830
+ * @description Replaces the saved preferences object. Omitting `notificationChannels` keeps the stored cells, or the defaults when none are stored. A body that includes `notificationChannels` replaces those cells; any missing key inside it uses the default (`email.status` = `digest`, every other cell = `off`). Setting `email.status` to `off` returns 400 `notification_channel_required`. In-app `notifications` booleans are independent of these cells.
3831
+ */
3820
3832
  put: operations["putMyPreferences"];
3821
3833
  post?: never;
3822
3834
  delete?: never;
@@ -3852,7 +3864,7 @@ export interface paths {
3852
3864
  };
3853
3865
  /**
3854
3866
  * App chrome bootstrap payload
3855
- * @description Returns the authenticated user's profile, workspace list, and preferences in one response. When `workspaceId` is provided and resolves to a workspace the caller belongs to, also returns platform banner, unread notification count, journey progress, and connectors snapshot. Invalid, unknown, or non-member `workspaceId` values do not produce 403/404 — the response is still 200 with only `me`, `workspaces`, and `preferences` (workspace-scoped fields omitted).
3867
+ * @description Returns the authenticated user's profile, workspace list, and preferences (including `notificationChannels`) in one response. When `workspaceId` is provided and resolves to a workspace the caller belongs to, also returns platform banner, unread notification count (`count` and `hasUnreadCritical`), journey progress, and connectors snapshot. Invalid, unknown, or non-member `workspaceId` values do not produce 403/404 — the response is still 200 with only `me`, `workspaces`, and `preferences` (workspace-scoped fields omitted).
3856
3868
  */
3857
3869
  get: operations["getAppShell"];
3858
3870
  put?: never;
@@ -7880,8 +7892,11 @@ export interface components {
7880
7892
  /** Format: date-time */
7881
7893
  createdAt: string;
7882
7894
  route?: string;
7883
- /** @enum {string} */
7884
- severity?: "success" | "warning" | "destructive" | "muted" | "neutral";
7895
+ /**
7896
+ * @description Stored on the notification row at fan-out. `destructive` is the only critical severity.
7897
+ * @enum {string}
7898
+ */
7899
+ severity: "success" | "warning" | "destructive" | "muted" | "neutral";
7885
7900
  triggeredBy?: string | null;
7886
7901
  };
7887
7902
  NotificationListDto: {
@@ -7889,7 +7904,10 @@ export interface components {
7889
7904
  total: number;
7890
7905
  };
7891
7906
  NotificationUnreadCountDto: {
7907
+ /** @description Unread rows after the type-preference filter and routine-title exclusion. Not capped. */
7892
7908
  count: number;
7909
+ /** @description True when at least one of those unread rows has severity `destructive`. */
7910
+ hasUnreadCritical: boolean;
7893
7911
  };
7894
7912
  EffectiveTaskRowDto: {
7895
7913
  id: string;
@@ -7967,6 +7985,59 @@ export interface components {
7967
7985
  /** @description System / platform announcements. */
7968
7986
  system: boolean;
7969
7987
  };
7988
+ /**
7989
+ * @description Status email delivery. `digest` (default) is the weekly mail. `immediate` sends as events arrive. `off` is not allowed.
7990
+ * @enum {string}
7991
+ */
7992
+ NotificationEmailStatusMode: "immediate" | "digest";
7993
+ /**
7994
+ * @description Email delivery for comment, activity, or system. Default `off`. `immediate` sends as events arrive. `digest` is the weekly mail.
7995
+ * @enum {string}
7996
+ */
7997
+ NotificationEmailDeliveryMode: "off" | "immediate" | "digest";
7998
+ /**
7999
+ * @description Slack or Teams delivery for one category. Default `off` until that member changes the cell. `dm` is a direct message. `channel` posts to the workspace channel an admin saved. Connecting chat does not turn cells on.
8000
+ * @enum {string}
8001
+ */
8002
+ NotificationChatDeliveryMode: "off" | "dm" | "channel";
8003
+ NotificationEmailChannelsDto: {
8004
+ status: components["schemas"]["NotificationEmailStatusMode"];
8005
+ comment: components["schemas"]["NotificationEmailDeliveryMode"];
8006
+ activity: components["schemas"]["NotificationEmailDeliveryMode"];
8007
+ system: components["schemas"]["NotificationEmailDeliveryMode"];
8008
+ };
8009
+ NotificationChatChannelsDto: {
8010
+ status: components["schemas"]["NotificationChatDeliveryMode"];
8011
+ comment: components["schemas"]["NotificationChatDeliveryMode"];
8012
+ activity: components["schemas"]["NotificationChatDeliveryMode"];
8013
+ system: components["schemas"]["NotificationChatDeliveryMode"];
8014
+ };
8015
+ /** @description Delivery cells beside the in-app Message Center switches. Defaults: `email.status` is `digest`; every other cell is `off`. Inbox rows whose type is `integration` use the `status` cell. */
8016
+ NotificationChannelsDto: {
8017
+ email: components["schemas"]["NotificationEmailChannelsDto"];
8018
+ slack: components["schemas"]["NotificationChatChannelsDto"];
8019
+ teams: components["schemas"]["NotificationChatChannelsDto"];
8020
+ };
8021
+ /** @description Partial email cells. Omitted keys are filled with defaults on save (`status` = `digest`, other keys = `off`). */
8022
+ PutNotificationEmailChannelsDto: {
8023
+ status?: components["schemas"]["NotificationEmailStatusMode"];
8024
+ comment?: components["schemas"]["NotificationEmailDeliveryMode"];
8025
+ activity?: components["schemas"]["NotificationEmailDeliveryMode"];
8026
+ system?: components["schemas"]["NotificationEmailDeliveryMode"];
8027
+ };
8028
+ /** @description Partial chat cells. Omitted keys default to `off` on save. */
8029
+ PutNotificationChatChannelsDto: {
8030
+ status?: components["schemas"]["NotificationChatDeliveryMode"];
8031
+ comment?: components["schemas"]["NotificationChatDeliveryMode"];
8032
+ activity?: components["schemas"]["NotificationChatDeliveryMode"];
8033
+ system?: components["schemas"]["NotificationChatDeliveryMode"];
8034
+ };
8035
+ /** @description Replaces stored channel cells when present on `PUT /me/preferences`. Omitted `email`, `slack`, or `teams` objects are filled with defaults. */
8036
+ PutNotificationChannelsDto: {
8037
+ email?: components["schemas"]["PutNotificationEmailChannelsDto"];
8038
+ slack?: components["schemas"]["PutNotificationChatChannelsDto"];
8039
+ teams?: components["schemas"]["PutNotificationChatChannelsDto"];
8040
+ };
7970
8041
  PreferencesDto: {
7971
8042
  theme: components["schemas"]["ThemePreference"];
7972
8043
  sidebarCollapsed: boolean;
@@ -7979,6 +8050,28 @@ export interface components {
7979
8050
  * @default false
7980
8051
  */
7981
8052
  buddyEnabled: boolean;
8053
+ notificationChannels: components["schemas"]["NotificationChannelsDto"];
8054
+ };
8055
+ /** @description Body for `PUT /me/preferences`. `notificationChannels` may be omitted to keep stored cells. */
8056
+ PutPreferencesBodyDto: {
8057
+ theme: components["schemas"]["ThemePreference"];
8058
+ sidebarCollapsed: boolean;
8059
+ /** @description IANA timezone name */
8060
+ timezone: string;
8061
+ dataRefreshInterval: components["schemas"]["DataRefreshInterval"];
8062
+ notifications: components["schemas"]["NotificationPreferencesDto"];
8063
+ /**
8064
+ * @description When true, show the ThinkAI Buddy mascot. Default and missing stored values are false (opt-in only).
8065
+ * @default false
8066
+ */
8067
+ buddyEnabled: boolean;
8068
+ notificationChannels?: components["schemas"]["PutNotificationChannelsDto"];
8069
+ };
8070
+ NotificationChannelRequiredErrorDto: {
8071
+ /** @description Status email cannot be turned off. */
8072
+ error: string;
8073
+ /** @enum {string} */
8074
+ code: "notification_channel_required";
7982
8075
  };
7983
8076
  ValidationIssueDto: {
7984
8077
  path: (string | number)[];
@@ -10708,7 +10801,18 @@ export type JourneyProgressUpdateDto = components['schemas']['JourneyProgressUpd
10708
10801
  export type ThemePreference = components['schemas']['ThemePreference'];
10709
10802
  export type DataRefreshInterval = components['schemas']['DataRefreshInterval'];
10710
10803
  export type NotificationPreferencesDto = components['schemas']['NotificationPreferencesDto'];
10804
+ export type NotificationEmailStatusMode = components['schemas']['NotificationEmailStatusMode'];
10805
+ export type NotificationEmailDeliveryMode = components['schemas']['NotificationEmailDeliveryMode'];
10806
+ export type NotificationChatDeliveryMode = components['schemas']['NotificationChatDeliveryMode'];
10807
+ export type NotificationEmailChannelsDto = components['schemas']['NotificationEmailChannelsDto'];
10808
+ export type NotificationChatChannelsDto = components['schemas']['NotificationChatChannelsDto'];
10809
+ export type NotificationChannelsDto = components['schemas']['NotificationChannelsDto'];
10810
+ export type PutNotificationEmailChannelsDto = components['schemas']['PutNotificationEmailChannelsDto'];
10811
+ export type PutNotificationChatChannelsDto = components['schemas']['PutNotificationChatChannelsDto'];
10812
+ export type PutNotificationChannelsDto = components['schemas']['PutNotificationChannelsDto'];
10711
10813
  export type PreferencesDto = components['schemas']['PreferencesDto'];
10814
+ export type PutPreferencesBodyDto = components['schemas']['PutPreferencesBodyDto'];
10815
+ export type NotificationChannelRequiredErrorDto = components['schemas']['NotificationChannelRequiredErrorDto'];
10712
10816
  export type ValidationIssueDto = components['schemas']['ValidationIssueDto'];
10713
10817
  export type PreferencesValidationErrorDto = components['schemas']['PreferencesValidationErrorDto'];
10714
10818
  export type ConsentCategoriesDto = components['schemas']['ConsentCategoriesDto'];
@@ -20580,6 +20684,10 @@ export interface operations {
20580
20684
  query?: {
20581
20685
  limit?: number;
20582
20686
  offset?: number;
20687
+ /** @description `all` returns every severity. `needs_action` returns only `warning` and `destructive`. Omitted is `all`. */
20688
+ view?: "all" | "needs_action";
20689
+ /** @description Omit to include read and unread rows. `true` is unread only. `false` is read only. */
20690
+ unread?: boolean;
20583
20691
  };
20584
20692
  header?: never;
20585
20693
  path: {
@@ -20598,6 +20706,15 @@ export interface operations {
20598
20706
  "application/json": components["schemas"]["NotificationListDto"];
20599
20707
  };
20600
20708
  };
20709
+ /** @description Invalid `view` or `unread` */
20710
+ 400: {
20711
+ headers: {
20712
+ [name: string]: unknown;
20713
+ };
20714
+ content: {
20715
+ "application/json": components["schemas"]["ErrorMessageDto"];
20716
+ };
20717
+ };
20601
20718
  401: components["responses"]["Unauthorized"];
20602
20719
  };
20603
20720
  };
@@ -20812,7 +20929,7 @@ export interface operations {
20812
20929
  };
20813
20930
  requestBody: {
20814
20931
  content: {
20815
- "application/json": components["schemas"]["PreferencesDto"];
20932
+ "application/json": components["schemas"]["PutPreferencesBodyDto"];
20816
20933
  };
20817
20934
  };
20818
20935
  responses: {
@@ -20825,13 +20942,13 @@ export interface operations {
20825
20942
  "application/json": components["schemas"]["PreferencesDto"];
20826
20943
  };
20827
20944
  };
20828
- /** @description Validation failed */
20945
+ /** @description Validation failed, or Status email was set to off (`code` `notification_channel_required`). */
20829
20946
  400: {
20830
20947
  headers: {
20831
20948
  [name: string]: unknown;
20832
20949
  };
20833
20950
  content: {
20834
- "application/json": components["schemas"]["PreferencesValidationErrorDto"];
20951
+ "application/json": components["schemas"]["PreferencesValidationErrorDto"] | components["schemas"]["NotificationChannelRequiredErrorDto"];
20835
20952
  };
20836
20953
  };
20837
20954
  401: components["responses"]["Unauthorized"];