@novu/api 0.6.2 → 0.7.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 (253) hide show
  1. package/FUNCTIONS.md +12 -3
  2. package/README.md +143 -30
  3. package/bin/mcp-server.js +644 -433
  4. package/bin/mcp-server.js.map +53 -48
  5. package/docs/sdks/novu/README.md +142 -24
  6. package/jsr.json +1 -1
  7. package/lib/config.d.ts +4 -4
  8. package/lib/config.js +4 -4
  9. package/lib/config.js.map +1 -1
  10. package/lib/matchers.d.ts +3 -1
  11. package/lib/matchers.d.ts.map +1 -1
  12. package/lib/matchers.js +13 -1
  13. package/lib/matchers.js.map +1 -1
  14. package/lib/sdks.d.ts +3 -1
  15. package/lib/sdks.d.ts.map +1 -1
  16. package/lib/sdks.js +13 -13
  17. package/lib/sdks.js.map +1 -1
  18. package/mcp-server/mcp-server.js +1 -1
  19. package/mcp-server/prompts.d.ts.map +1 -1
  20. package/mcp-server/prompts.js +5 -1
  21. package/mcp-server/prompts.js.map +1 -1
  22. package/mcp-server/resources.d.ts.map +1 -1
  23. package/mcp-server/resources.js +10 -2
  24. package/mcp-server/resources.js.map +1 -1
  25. package/mcp-server/server.d.ts.map +1 -1
  26. package/mcp-server/server.js +2 -3
  27. package/mcp-server/server.js.map +1 -1
  28. package/mcp-server/tools.d.ts.map +1 -1
  29. package/mcp-server/tools.js +4 -3
  30. package/mcp-server/tools.js.map +1 -1
  31. package/models/components/activitynotificationjobresponsedto.d.ts +15 -15
  32. package/models/components/activitynotificationjobresponsedto.d.ts.map +1 -1
  33. package/models/components/activitynotificationjobresponsedto.js +19 -18
  34. package/models/components/activitynotificationjobresponsedto.js.map +1 -1
  35. package/models/components/activitynotificationstepresponsedto.d.ts +15 -15
  36. package/models/components/activitynotificationstepresponsedto.d.ts.map +1 -1
  37. package/models/components/activitynotificationstepresponsedto.js +18 -18
  38. package/models/components/activitynotificationstepresponsedto.js.map +1 -1
  39. package/models/components/channelsettingsdto.d.ts +2 -78
  40. package/models/components/channelsettingsdto.d.ts.map +1 -1
  41. package/models/components/channelsettingsdto.js +4 -41
  42. package/models/components/channelsettingsdto.js.map +1 -1
  43. package/models/components/chatorpushproviderenum.d.ts +79 -0
  44. package/models/components/chatorpushproviderenum.d.ts.map +1 -0
  45. package/models/components/chatorpushproviderenum.js +68 -0
  46. package/models/components/chatorpushproviderenum.js.map +1 -0
  47. package/models/components/constraintvalidation.d.ts +115 -0
  48. package/models/components/constraintvalidation.d.ts.map +1 -0
  49. package/models/components/constraintvalidation.js +157 -0
  50. package/models/components/constraintvalidation.js.map +1 -0
  51. package/models/components/digestmetadatadto.d.ts +8 -8
  52. package/models/components/digestmetadatadto.d.ts.map +1 -1
  53. package/models/components/digestmetadatadto.js +13 -13
  54. package/models/components/digestmetadatadto.js.map +1 -1
  55. package/models/components/digestregularmetadata.d.ts +16 -16
  56. package/models/components/digestregularmetadata.d.ts.map +1 -1
  57. package/models/components/digestregularmetadata.js +25 -25
  58. package/models/components/digestregularmetadata.js.map +1 -1
  59. package/models/components/digesttimedconfigdto.d.ts +8 -8
  60. package/models/components/digesttimedconfigdto.d.ts.map +1 -1
  61. package/models/components/digesttimedconfigdto.js +13 -14
  62. package/models/components/digesttimedconfigdto.js.map +1 -1
  63. package/models/components/getsubscriberpreferencesdto.d.ts +6 -6
  64. package/models/components/getsubscriberpreferencesdto.d.ts.map +1 -1
  65. package/models/components/getsubscriberpreferencesdto.js +6 -6
  66. package/models/components/getsubscriberpreferencesdto.js.map +1 -1
  67. package/models/components/index.d.ts +10 -5
  68. package/models/components/index.d.ts.map +1 -1
  69. package/models/components/index.js +10 -5
  70. package/models/components/index.js.map +1 -1
  71. package/models/components/integrationresponsedto.d.ts +8 -8
  72. package/models/components/integrationresponsedto.d.ts.map +1 -1
  73. package/models/components/integrationresponsedto.js +14 -13
  74. package/models/components/integrationresponsedto.js.map +1 -1
  75. package/models/components/messageactionresult.d.ts +15 -15
  76. package/models/components/messageactionresult.d.ts.map +1 -1
  77. package/models/components/messageactionresult.js +18 -18
  78. package/models/components/messageactionresult.js.map +1 -1
  79. package/models/components/messagecta.d.ts +2 -2
  80. package/models/components/messagecta.d.ts.map +1 -1
  81. package/models/components/messagecta.js +2 -2
  82. package/models/components/messagecta.js.map +1 -1
  83. package/models/components/messageresponsedto.d.ts +14 -4
  84. package/models/components/messageresponsedto.d.ts.map +1 -1
  85. package/models/components/messageresponsedto.js +8 -4
  86. package/models/components/messageresponsedto.js.map +1 -1
  87. package/models/components/messagesresponsedto.d.ts +53 -0
  88. package/models/components/messagesresponsedto.d.ts.map +1 -0
  89. package/models/components/messagesresponsedto.js +68 -0
  90. package/models/components/messagesresponsedto.js.map +1 -0
  91. package/models/components/notificationfeeditemdto.d.ts +0 -5
  92. package/models/components/notificationfeeditemdto.d.ts.map +1 -1
  93. package/models/components/notificationfeeditemdto.js +0 -2
  94. package/models/components/notificationfeeditemdto.js.map +1 -1
  95. package/models/components/notificationstepdto.d.ts +13 -13
  96. package/models/components/notificationstepdto.d.ts.map +1 -1
  97. package/models/components/notificationstepdto.js +16 -16
  98. package/models/components/notificationstepdto.js.map +1 -1
  99. package/models/components/notificationtriggerdto.d.ts +8 -8
  100. package/models/components/notificationtriggerdto.d.ts.map +1 -1
  101. package/models/components/notificationtriggerdto.js +13 -13
  102. package/models/components/notificationtriggerdto.js.map +1 -1
  103. package/models/components/patchsubscriberpreferencesdto.d.ts +1 -1
  104. package/models/components/preferenceoverridesourceenum.d.ts +37 -0
  105. package/models/components/preferenceoverridesourceenum.d.ts.map +1 -0
  106. package/models/components/preferenceoverridesourceenum.js +54 -0
  107. package/models/components/preferenceoverridesourceenum.js.map +1 -0
  108. package/models/components/providersidenum.d.ts +3 -0
  109. package/models/components/providersidenum.d.ts.map +1 -1
  110. package/models/components/providersidenum.js +1 -0
  111. package/models/components/providersidenum.js.map +1 -1
  112. package/models/components/stepfilterdto.d.ts +8 -8
  113. package/models/components/stepfilterdto.d.ts.map +1 -1
  114. package/models/components/stepfilterdto.js +13 -13
  115. package/models/components/stepfilterdto.js.map +1 -1
  116. package/models/components/stepsoverrides.d.ts +40 -0
  117. package/models/components/stepsoverrides.d.ts.map +1 -0
  118. package/models/components/{workflowinfodto.js → stepsoverrides.js} +19 -25
  119. package/models/components/stepsoverrides.js.map +1 -0
  120. package/models/components/steptypeenum.d.ts +2 -2
  121. package/models/components/steptypeenum.js +1 -1
  122. package/models/components/subscriberchanneldto.d.ts +8 -8
  123. package/models/components/subscriberchanneldto.d.ts.map +1 -1
  124. package/models/components/subscriberchanneldto.js +14 -13
  125. package/models/components/subscriberchanneldto.js.map +1 -1
  126. package/models/components/subscriberglobalpreferencedto.d.ts +38 -0
  127. package/models/components/subscriberglobalpreferencedto.d.ts.map +1 -0
  128. package/models/components/subscriberglobalpreferencedto.js +62 -0
  129. package/models/components/subscriberglobalpreferencedto.js.map +1 -0
  130. package/models/components/subscriberpreferencechannels.d.ts +52 -0
  131. package/models/components/subscriberpreferencechannels.d.ts.map +1 -0
  132. package/models/components/{preferencechannels.js → subscriberpreferencechannels.js} +17 -17
  133. package/models/components/subscriberpreferencechannels.js.map +1 -0
  134. package/models/components/subscriberpreferenceoverridedto.d.ts +39 -0
  135. package/models/components/subscriberpreferenceoverridedto.d.ts.map +1 -0
  136. package/models/components/subscriberpreferenceoverridedto.js +63 -0
  137. package/models/components/subscriberpreferenceoverridedto.js.map +1 -0
  138. package/models/components/subscriberpreferencesworkflowinfodto.d.ts +47 -0
  139. package/models/components/subscriberpreferencesworkflowinfodto.d.ts.map +1 -0
  140. package/models/components/subscriberpreferencesworkflowinfodto.js +65 -0
  141. package/models/components/subscriberpreferencesworkflowinfodto.js.map +1 -0
  142. package/models/components/subscriberresponsedto.d.ts +26 -26
  143. package/models/components/subscriberresponsedto.d.ts.map +1 -1
  144. package/models/components/subscriberresponsedto.js +12 -12
  145. package/models/components/subscriberresponsedto.js.map +1 -1
  146. package/models/components/subscriberworkflowpreferencedto.d.ts +50 -0
  147. package/models/components/subscriberworkflowpreferencedto.d.ts.map +1 -0
  148. package/models/components/subscriberworkflowpreferencedto.js +68 -0
  149. package/models/components/subscriberworkflowpreferencedto.js.map +1 -0
  150. package/models/components/timedconfig.d.ts +8 -8
  151. package/models/components/timedconfig.d.ts.map +1 -1
  152. package/models/components/timedconfig.js +14 -13
  153. package/models/components/timedconfig.js.map +1 -1
  154. package/models/components/triggereventrequestdto.d.ts +102 -10
  155. package/models/components/triggereventrequestdto.d.ts.map +1 -1
  156. package/models/components/triggereventrequestdto.js +43 -3
  157. package/models/components/triggereventrequestdto.js.map +1 -1
  158. package/models/components/triggereventtoallrequestdto.d.ts +84 -2
  159. package/models/components/triggereventtoallrequestdto.d.ts.map +1 -1
  160. package/models/components/triggereventtoallrequestdto.js +28 -2
  161. package/models/components/triggereventtoallrequestdto.js.map +1 -1
  162. package/models/components/updatesubscriberchannelrequestdto.d.ts +2 -78
  163. package/models/components/updatesubscriberchannelrequestdto.d.ts.map +1 -1
  164. package/models/components/updatesubscriberchannelrequestdto.js +4 -41
  165. package/models/components/updatesubscriberchannelrequestdto.js.map +1 -1
  166. package/models/components/workflowresponse.d.ts +3 -3
  167. package/models/components/workflowresponse.d.ts.map +1 -1
  168. package/models/components/workflowresponse.js +3 -3
  169. package/models/components/workflowresponse.js.map +1 -1
  170. package/models/errors/errordto.d.ts +83 -3
  171. package/models/errors/errordto.d.ts.map +1 -1
  172. package/models/errors/errordto.js +99 -3
  173. package/models/errors/errordto.js.map +1 -1
  174. package/models/errors/validationerrordto.d.ts +66 -51
  175. package/models/errors/validationerrordto.d.ts.map +1 -1
  176. package/models/errors/validationerrordto.js +83 -67
  177. package/models/errors/validationerrordto.js.map +1 -1
  178. package/models/operations/messagescontrollergetmessages.d.ts +2 -2
  179. package/models/operations/messagescontrollergetmessages.d.ts.map +1 -1
  180. package/models/operations/messagescontrollergetmessages.js +2 -2
  181. package/models/operations/messagescontrollergetmessages.js.map +1 -1
  182. package/package.json +3 -3
  183. package/sources/json-development.json +2037 -305
  184. package/src/lib/config.ts +4 -4
  185. package/src/lib/matchers.ts +20 -0
  186. package/src/lib/sdks.ts +19 -13
  187. package/src/mcp-server/mcp-server.ts +1 -1
  188. package/src/mcp-server/prompts.ts +8 -1
  189. package/src/mcp-server/resources.ts +16 -2
  190. package/src/mcp-server/server.ts +3 -3
  191. package/src/mcp-server/tools.ts +6 -3
  192. package/src/models/components/activitynotificationjobresponsedto.ts +48 -26
  193. package/src/models/components/activitynotificationstepresponsedto.ts +50 -29
  194. package/src/models/components/channelsettingsdto.ts +8 -50
  195. package/src/models/components/chatorpushproviderenum.ts +54 -0
  196. package/src/models/components/constraintvalidation.ts +270 -0
  197. package/src/models/components/digestmetadatadto.ts +16 -15
  198. package/src/models/components/digestregularmetadata.ts +30 -36
  199. package/src/models/components/digesttimedconfigdto.ts +18 -14
  200. package/src/models/components/getsubscriberpreferencesdto.ts +18 -18
  201. package/src/models/components/index.ts +10 -5
  202. package/src/models/components/integrationresponsedto.ts +14 -18
  203. package/src/models/components/messageactionresult.ts +24 -31
  204. package/src/models/components/messagecta.ts +4 -4
  205. package/src/models/components/messageresponsedto.ts +22 -8
  206. package/src/models/components/messagesresponsedto.ts +103 -0
  207. package/src/models/components/notificationfeeditemdto.ts +0 -7
  208. package/src/models/components/notificationstepdto.ts +20 -26
  209. package/src/models/components/notificationtriggerdto.ts +18 -15
  210. package/src/models/components/patchsubscriberpreferencesdto.ts +1 -1
  211. package/src/models/components/preferenceoverridesourceenum.ts +42 -0
  212. package/src/models/components/providersidenum.ts +1 -0
  213. package/src/models/components/stepfilterdto.ts +16 -15
  214. package/src/models/components/stepsoverrides.ts +65 -0
  215. package/src/models/components/steptypeenum.ts +2 -2
  216. package/src/models/components/subscriberchanneldto.ts +14 -18
  217. package/src/models/components/subscriberglobalpreferencedto.ts +84 -0
  218. package/src/models/components/subscriberpreferencechannels.ts +108 -0
  219. package/src/models/components/subscriberpreferenceoverridedto.ts +88 -0
  220. package/src/models/components/subscriberpreferencesworkflowinfodto.ts +95 -0
  221. package/src/models/components/subscriberresponsedto.ts +34 -34
  222. package/src/models/components/subscriberworkflowpreferencedto.ts +110 -0
  223. package/src/models/components/timedconfig.ts +14 -16
  224. package/src/models/components/triggereventrequestdto.ts +122 -4
  225. package/src/models/components/triggereventtoallrequestdto.ts +92 -5
  226. package/src/models/components/updatesubscriberchannelrequestdto.ts +8 -56
  227. package/src/models/components/workflowresponse.ts +9 -9
  228. package/src/models/errors/errordto.ts +202 -5
  229. package/src/models/errors/validationerrordto.ts +178 -110
  230. package/src/models/operations/messagescontrollergetmessages.ts +4 -4
  231. package/models/components/globalpreferencedto.d.ts +0 -38
  232. package/models/components/globalpreferencedto.d.ts.map +0 -1
  233. package/models/components/globalpreferencedto.js +0 -62
  234. package/models/components/globalpreferencedto.js.map +0 -1
  235. package/models/components/overrides.d.ts +0 -112
  236. package/models/components/overrides.d.ts.map +0 -1
  237. package/models/components/overrides.js +0 -111
  238. package/models/components/overrides.js.map +0 -1
  239. package/models/components/preferencechannels.d.ts +0 -37
  240. package/models/components/preferencechannels.d.ts.map +0 -1
  241. package/models/components/preferencechannels.js.map +0 -1
  242. package/models/components/workflowinfodto.d.ts +0 -47
  243. package/models/components/workflowinfodto.d.ts.map +0 -1
  244. package/models/components/workflowinfodto.js.map +0 -1
  245. package/models/components/workflowpreferencedto.d.ts +0 -50
  246. package/models/components/workflowpreferencedto.d.ts.map +0 -1
  247. package/models/components/workflowpreferencedto.js +0 -68
  248. package/models/components/workflowpreferencedto.js.map +0 -1
  249. package/src/models/components/globalpreferencedto.ts +0 -82
  250. package/src/models/components/overrides.ts +0 -139
  251. package/src/models/components/preferencechannels.ts +0 -91
  252. package/src/models/components/workflowinfodto.ts +0 -88
  253. package/src/models/components/workflowpreferencedto.ts +0 -108
@@ -8942,7 +8942,7 @@
8942
8942
  "content": {
8943
8943
  "application/json": {
8944
8944
  "schema": {
8945
- "$ref": "#/components/schemas/ActivitiesResponseDto"
8945
+ "$ref": "#/components/schemas/MessagesResponseDto"
8946
8946
  }
8947
8947
  }
8948
8948
  }
@@ -23357,7 +23357,7 @@
23357
23357
  "info": {
23358
23358
  "title": "Novu API",
23359
23359
  "description": "Novu REST API. Please see https://docs.novu.co/api-reference for more details.",
23360
- "version": "1.0",
23360
+ "version": "2.1.13",
23361
23361
  "contact": {
23362
23362
  "name": "Novu Support",
23363
23363
  "url": "https://discord.gg/novu",
@@ -23391,13 +23391,6 @@
23391
23391
  "url": "https://docs.novu.co/subscribers/topics"
23392
23392
  }
23393
23393
  },
23394
- {
23395
- "name": "Notification",
23396
- "description": "A notification conveys information from source to recipient, triggered by a workflow acting as a message blueprint. Notifications can be individual or bundled as digest for user-friendliness.",
23397
- "externalDocs": {
23398
- "url": "https://docs.novu.co/getting-started/introduction"
23399
- }
23400
- },
23401
23394
  {
23402
23395
  "name": "Integrations",
23403
23396
  "description": "With the help of the Integration Store, you can easily integrate your favorite delivery provider. During the runtime of the API, the Integrations Store is responsible for storing the configurations of all the providers.",
@@ -23405,90 +23398,12 @@
23405
23398
  "url": "https://docs.novu.co/channels-and-providers/integration-store"
23406
23399
  }
23407
23400
  },
23408
- {
23409
- "name": "Layouts",
23410
- "description": "Novu allows the creation of layouts - a specific HTML design or structure to wrap content of email notifications. Layouts can be manipulated and assigned to new or existing workflows within the Novu platform, allowing users to create, manage, and assign these layouts to workflows, so they can be reused to structure the appearance of notifications sent through the platform.",
23411
- "externalDocs": {
23412
- "url": "https://docs.novu.co/content-creation-design/layouts"
23413
- }
23414
- },
23415
- {
23416
- "name": "Workflows",
23417
- "description": "All notifications are sent via a workflow. Each workflow acts as a container for the logic and blueprint that are associated with a type of notification in your system.",
23418
- "externalDocs": {
23419
- "url": "https://docs.novu.co/workflows"
23420
- }
23421
- },
23422
- {
23423
- "name": "Notification Templates",
23424
- "description": "Deprecated. Use Workflows (/workflows) instead, which provide the same functionality under a new name."
23425
- },
23426
- {
23427
- "name": "Workflow groups",
23428
- "description": "Workflow groups are used to organize workflows into logical groups."
23429
- },
23430
- {
23431
- "name": "Changes",
23432
- "description": "Changes represent a change in state of an environment. They are analagous to a pending pull request in git, enabling you to test changes before they are applied to your environment and atomically apply them when you are ready.",
23433
- "externalDocs": {
23434
- "url": "https://docs.novu.co/platform/environments#promoting-pending-changes-to-production"
23435
- }
23436
- },
23437
- {
23438
- "name": "Environments",
23439
- "description": "Novu uses the concept of environments to ensure logical separation of your data and configuration. This means that subscribers, and preferences created in one environment are never accessible to another.",
23440
- "externalDocs": {
23441
- "url": "https://docs.novu.co/platform/environments"
23442
- }
23443
- },
23444
- {
23445
- "name": "Inbound Parse",
23446
- "description": "Inbound Webhook is a feature that allows processing of incoming emails for a domain or subdomain. The feature parses the contents of the email and POSTs the information to a specified URL in a multipart/form-data format.",
23447
- "externalDocs": {
23448
- "url": "https://docs.novu.co/platform/inbound-parse-webhook"
23449
- }
23450
- },
23451
- {
23452
- "name": "Feeds",
23453
- "description": "Novu provides a notification activity feed that monitors every outgoing message associated with its relevant metadata. This can be used to monitor activity and discover potential issues with a specific provider or a channel type.",
23454
- "externalDocs": {
23455
- "url": "https://docs.novu.co/activity-feed"
23456
- }
23457
- },
23458
- {
23459
- "name": "Tenants",
23460
- "description": "A tenant represents a group of users. As a developer, when your apps have organizations, they are referred to as tenants. Tenants in Novu provides the ability to tailor specific notification experiences to users of different groups or organizations.",
23461
- "externalDocs": {
23462
- "url": "https://docs.novu.co/tenants"
23463
- }
23464
- },
23465
23401
  {
23466
23402
  "name": "Messages",
23467
23403
  "description": "A message in Novu represents a notification delivered to a recipient on a particular channel. Messages contain information about the request that triggered its delivery, a view of the data sent to the recipient, and a timeline of its lifecycle events. Learn more about messages.",
23468
23404
  "externalDocs": {
23469
23405
  "url": "https://docs.novu.co/workflows/messages"
23470
23406
  }
23471
- },
23472
- {
23473
- "name": "Organizations",
23474
- "description": "An organization serves as a separate entity within your Novu account. Each organization you create has its own separate integration store, workflows, subscribers, and API keys. This separation of resources allows you to manage multi-tenant environments and separate domains within a single account.",
23475
- "externalDocs": {
23476
- "url": "https://docs.novu.co/platform/organizations"
23477
- }
23478
- },
23479
- {
23480
- "name": "Execution Details",
23481
- "description": "Execution details are used to track the execution of a workflow. They provided detailed information on the execution of a workflow, including the status of each step, the input and output of each step, and the overall status of the execution.",
23482
- "externalDocs": {
23483
- "url": "https://docs.novu.co/activity-feed"
23484
- }
23485
- },
23486
- {
23487
- "name": "Translations",
23488
- "description": "Translations are used to localize your messages for different languages and regions. Novu provides a way to create and manage translations for your messages. You can create translations for your messages in different languages and regions, and assign them to your subscribers based on their preferences.",
23489
- "externalDocs": {
23490
- "url": "https://docs.novu.co/content-creation-design/translations"
23491
- }
23492
23407
  }
23493
23408
  ],
23494
23409
  "servers": [
@@ -23540,9 +23455,45 @@
23540
23455
  "example": "/api/v1/resource"
23541
23456
  },
23542
23457
  "message": {
23543
- "type": "string",
23544
- "description": "A detailed error message.",
23545
- "example": "Resource not found."
23458
+ "description": "Value that failed validation",
23459
+ "oneOf": [
23460
+ {
23461
+ "type": "string",
23462
+ "nullable": true
23463
+ },
23464
+ {
23465
+ "type": "number"
23466
+ },
23467
+ {
23468
+ "type": "boolean"
23469
+ },
23470
+ {
23471
+ "type": "object",
23472
+ "nullable": true
23473
+ },
23474
+ {
23475
+ "type": "array",
23476
+ "items": {
23477
+ "anyOf": [
23478
+ {
23479
+ "type": "string",
23480
+ "nullable": true
23481
+ },
23482
+ {
23483
+ "type": "number"
23484
+ },
23485
+ {
23486
+ "type": "boolean"
23487
+ },
23488
+ {
23489
+ "type": "object",
23490
+ "additionalProperties": true
23491
+ }
23492
+ ]
23493
+ }
23494
+ }
23495
+ ],
23496
+ "example": "xx xx xx "
23546
23497
  },
23547
23498
  "ctx": {
23548
23499
  "type": "object",
@@ -23562,8 +23513,66 @@
23562
23513
  "required": [
23563
23514
  "statusCode",
23564
23515
  "timestamp",
23565
- "path",
23566
- "message"
23516
+ "path"
23517
+ ]
23518
+ },
23519
+ "ConstraintValidation": {
23520
+ "type": "object",
23521
+ "properties": {
23522
+ "messages": {
23523
+ "type": "array",
23524
+ "items": {
23525
+ "type": "string"
23526
+ },
23527
+ "description": "List of validation error messages",
23528
+ "example": [
23529
+ "Field is required",
23530
+ "Invalid format"
23531
+ ]
23532
+ },
23533
+ "value": {
23534
+ "description": "Value that failed validation",
23535
+ "oneOf": [
23536
+ {
23537
+ "type": "string",
23538
+ "nullable": true
23539
+ },
23540
+ {
23541
+ "type": "number"
23542
+ },
23543
+ {
23544
+ "type": "boolean"
23545
+ },
23546
+ {
23547
+ "type": "object"
23548
+ },
23549
+ {
23550
+ "type": "array",
23551
+ "items": {
23552
+ "anyOf": [
23553
+ {
23554
+ "type": "string",
23555
+ "nullable": true
23556
+ },
23557
+ {
23558
+ "type": "number"
23559
+ },
23560
+ {
23561
+ "type": "boolean"
23562
+ },
23563
+ {
23564
+ "type": "object",
23565
+ "additionalProperties": true
23566
+ }
23567
+ ]
23568
+ }
23569
+ }
23570
+ ],
23571
+ "example": "xx xx xx "
23572
+ }
23573
+ },
23574
+ "required": [
23575
+ "messages"
23567
23576
  ]
23568
23577
  },
23569
23578
  "ValidationErrorDto": {
@@ -23585,9 +23594,45 @@
23585
23594
  "example": "/api/v1/resource"
23586
23595
  },
23587
23596
  "message": {
23588
- "type": "string",
23589
- "description": "A detailed error message.",
23590
- "example": "Resource not found."
23597
+ "description": "Value that failed validation",
23598
+ "oneOf": [
23599
+ {
23600
+ "type": "string",
23601
+ "nullable": true
23602
+ },
23603
+ {
23604
+ "type": "number"
23605
+ },
23606
+ {
23607
+ "type": "boolean"
23608
+ },
23609
+ {
23610
+ "type": "object",
23611
+ "nullable": true
23612
+ },
23613
+ {
23614
+ "type": "array",
23615
+ "items": {
23616
+ "anyOf": [
23617
+ {
23618
+ "type": "string",
23619
+ "nullable": true
23620
+ },
23621
+ {
23622
+ "type": "number"
23623
+ },
23624
+ {
23625
+ "type": "boolean"
23626
+ },
23627
+ {
23628
+ "type": "object",
23629
+ "additionalProperties": true
23630
+ }
23631
+ ]
23632
+ }
23633
+ }
23634
+ ],
23635
+ "example": "xx xx xx "
23591
23636
  },
23592
23637
  "ctx": {
23593
23638
  "type": "object",
@@ -23607,51 +23652,7 @@
23607
23652
  "type": "object",
23608
23653
  "description": "A record of validation errors keyed by field name",
23609
23654
  "additionalProperties": {
23610
- "type": "object",
23611
- "properties": {
23612
- "messages": {
23613
- "type": "array",
23614
- "items": {
23615
- "type": "string"
23616
- }
23617
- },
23618
- "value": {
23619
- "oneOf": [
23620
- {
23621
- "type": "string",
23622
- "nullable": true
23623
- },
23624
- {
23625
- "type": "number"
23626
- },
23627
- {
23628
- "type": "boolean"
23629
- },
23630
- {
23631
- "type": "object",
23632
- "additionalProperties": true
23633
- },
23634
- {
23635
- "type": "array",
23636
- "items": {
23637
- "type": "object",
23638
- "additionalProperties": true
23639
- }
23640
- }
23641
- ]
23642
- }
23643
- },
23644
- "required": [
23645
- "messages",
23646
- "value"
23647
- ],
23648
- "example": {
23649
- "messages": [
23650
- "Field is required",
23651
- "Invalid format"
23652
- ],
23653
- "value": "xx xx xx "
23654
- }
23655
+ "$ref": "#/components/schemas/ConstraintValidation"
23655
23656
  },
23656
23657
  "example": {
23657
23658
  "fieldName1": {
@@ -23680,6 +23681,17 @@
23680
23681
  "value": {
23681
23682
  "key": "value"
23682
23683
  }
23684
+ },
23685
+ "fieldName5": {
23686
+ "messages": [
23687
+ "Field is missing"
23688
+ ],
23689
+ "value": null
23690
+ },
23691
+ "fieldName6": {
23692
+ "messages": [
23693
+ "Undefined value"
23694
+ ]
23683
23695
  }
23684
23696
  }
23685
23697
  }
@@ -23688,7 +23700,6 @@
23688
23700
  "statusCode",
23689
23701
  "timestamp",
23690
23702
  "path",
23691
- "message",
23692
23703
  "errors"
23693
23704
  ]
23694
23705
  },
@@ -23991,59 +24002,143 @@
23991
24002
  "type"
23992
24003
  ]
23993
24004
  },
23994
- "TriggerEventRequestDto": {
24005
+ "StepsOverrides": {
23995
24006
  "type": "object",
23996
24007
  "properties": {
23997
- "name": {
23998
- "type": "string",
23999
- "description": "The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page.",
24000
- "example": "workflow_identifier",
24001
- "x-speakeasy-name-override": "workflowId"
24002
- },
24003
- "payload": {
24008
+ "providers": {
24004
24009
  "type": "object",
24005
- "description": "The payload object is used to pass additional custom information that could be \n used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.",
24006
- "additionalProperties": true,
24010
+ "description": "Passing the provider id and the provider specific configurations",
24007
24011
  "example": {
24008
- "comment_id": "string",
24009
- "post": {
24010
- "text": "string"
24012
+ "sendgrid": {
24013
+ "templateId": "1234567890"
24011
24014
  }
24015
+ },
24016
+ "additionalProperties": {
24017
+ "type": "object",
24018
+ "additionalProperties": true
24012
24019
  }
24013
- },
24014
- "overrides": {
24020
+ }
24021
+ },
24022
+ "required": [
24023
+ "providers"
24024
+ ]
24025
+ },
24026
+ "TriggerOverrides": {
24027
+ "type": "object",
24028
+ "properties": {
24029
+ "steps": {
24015
24030
  "type": "object",
24016
24031
  "description": "This could be used to override provider specific configurations",
24017
24032
  "example": {
24018
- "fcm": {
24019
- "data": {
24020
- "key": "value"
24033
+ "email-step": {
24034
+ "providers": {
24035
+ "sendgrid": {
24036
+ "templateId": "1234567890"
24037
+ }
24021
24038
  }
24022
24039
  }
24023
24040
  },
24041
+ "additionalProperties": {
24042
+ "$ref": "#/components/schemas/StepsOverrides"
24043
+ }
24044
+ },
24045
+ "providers": {
24046
+ "type": "object",
24047
+ "description": "Overrides the provider configuration for the entire workflow and all steps",
24048
+ "example": {
24049
+ "sendgrid": {
24050
+ "templateId": "1234567890"
24051
+ }
24052
+ },
24024
24053
  "additionalProperties": {
24025
24054
  "type": "object",
24026
24055
  "additionalProperties": true
24027
24056
  }
24028
24057
  },
24029
- "to": {
24030
- "description": "The recipients list of people who will receive the notification.",
24031
- "oneOf": [
24032
- {
24033
- "type": "array",
24034
- "items": {
24035
- "oneOf": [
24036
- {
24037
- "$ref": "#/components/schemas/SubscriberPayloadDto"
24038
- },
24039
- {
24040
- "$ref": "#/components/schemas/TopicPayloadDto"
24041
- },
24042
- {
24043
- "type": "string",
24044
- "description": "Unique identifier of a subscriber in your systems",
24045
- "example": "SUBSCRIBER_ID"
24046
- }
24058
+ "email": {
24059
+ "type": "object",
24060
+ "description": "Override the email provider specific configurations for the entire workflow",
24061
+ "deprecated": true,
24062
+ "additionalProperties": true
24063
+ },
24064
+ "push": {
24065
+ "type": "object",
24066
+ "description": "Override the push provider specific configurations for the entire workflow",
24067
+ "deprecated": true,
24068
+ "additionalProperties": true
24069
+ },
24070
+ "sms": {
24071
+ "type": "object",
24072
+ "description": "Override the sms provider specific configurations for the entire workflow",
24073
+ "deprecated": true,
24074
+ "additionalProperties": true
24075
+ },
24076
+ "chat": {
24077
+ "type": "object",
24078
+ "description": "Override the chat provider specific configurations for the entire workflow",
24079
+ "deprecated": true,
24080
+ "additionalProperties": true
24081
+ },
24082
+ "layoutIdentifier": {
24083
+ "type": "string",
24084
+ "description": "Override the layout identifier for the entire workflow",
24085
+ "deprecated": true
24086
+ }
24087
+ }
24088
+ },
24089
+ "TriggerEventRequestDto": {
24090
+ "type": "object",
24091
+ "properties": {
24092
+ "name": {
24093
+ "type": "string",
24094
+ "description": "The trigger identifier of the workflow you wish to send. This identifier can be found on the workflow page.",
24095
+ "example": "workflow_identifier",
24096
+ "x-speakeasy-name-override": "workflowId"
24097
+ },
24098
+ "payload": {
24099
+ "type": "object",
24100
+ "description": "The payload object is used to pass additional custom information that could be \n used to render the workflow, or perform routing rules based on it. \n This data will also be available when fetching the notifications feed from the API to display certain parts of the UI.",
24101
+ "additionalProperties": true,
24102
+ "example": {
24103
+ "comment_id": "string",
24104
+ "post": {
24105
+ "text": "string"
24106
+ }
24107
+ }
24108
+ },
24109
+ "overrides": {
24110
+ "description": "This could be used to override provider specific configurations",
24111
+ "example": {
24112
+ "fcm": {
24113
+ "data": {
24114
+ "key": "value"
24115
+ }
24116
+ }
24117
+ },
24118
+ "allOf": [
24119
+ {
24120
+ "$ref": "#/components/schemas/TriggerOverrides"
24121
+ }
24122
+ ]
24123
+ },
24124
+ "to": {
24125
+ "description": "The recipients list of people who will receive the notification.",
24126
+ "oneOf": [
24127
+ {
24128
+ "type": "array",
24129
+ "items": {
24130
+ "oneOf": [
24131
+ {
24132
+ "$ref": "#/components/schemas/SubscriberPayloadDto"
24133
+ },
24134
+ {
24135
+ "$ref": "#/components/schemas/TopicPayloadDto"
24136
+ },
24137
+ {
24138
+ "type": "string",
24139
+ "description": "Unique identifier of a subscriber in your systems",
24140
+ "example": "SUBSCRIBER_ID"
24141
+ }
24047
24142
  ]
24048
24143
  }
24049
24144
  },
@@ -24127,7 +24222,6 @@
24127
24222
  "additionalProperties": true
24128
24223
  },
24129
24224
  "overrides": {
24130
- "type": "object",
24131
24225
  "description": "This could be used to override provider specific configurations",
24132
24226
  "example": {
24133
24227
  "fcm": {
@@ -24135,7 +24229,16 @@
24135
24229
  "key": "value"
24136
24230
  }
24137
24231
  }
24138
- }
24232
+ },
24233
+ "additionalProperties": {
24234
+ "type": "object",
24235
+ "additionalProperties": true
24236
+ },
24237
+ "allOf": [
24238
+ {
24239
+ "$ref": "#/components/schemas/TriggerOverrides"
24240
+ }
24241
+ ]
24139
24242
  },
24140
24243
  "transactionId": {
24141
24244
  "type": "string",
@@ -24184,7 +24287,7 @@
24184
24287
  },
24185
24288
  "StepTypeEnum": {
24186
24289
  "type": "string",
24187
- "description": "Channels of the notification",
24290
+ "description": "Type of the step",
24188
24291
  "enum": [
24189
24292
  "in_app",
24190
24293
  "email",
@@ -24544,6 +24647,7 @@
24544
24647
  "brevo-sms",
24545
24648
  "eazy-sms",
24546
24649
  "mobishastra",
24650
+ "afro-message",
24547
24651
  "fcm",
24548
24652
  "apns",
24549
24653
  "expo",
@@ -25379,6 +25483,29 @@
25379
25483
  "data"
25380
25484
  ]
25381
25485
  },
25486
+ "ChatOrPushProviderEnum": {
25487
+ "type": "string",
25488
+ "description": "The provider identifier for the credentials",
25489
+ "enum": [
25490
+ "slack",
25491
+ "discord",
25492
+ "msteams",
25493
+ "mattermost",
25494
+ "ryver",
25495
+ "zulip",
25496
+ "grafana-on-call",
25497
+ "getstream",
25498
+ "rocket-chat",
25499
+ "whatsapp-business",
25500
+ "fcm",
25501
+ "apns",
25502
+ "expo",
25503
+ "one-signal",
25504
+ "pushpad",
25505
+ "push-webhook",
25506
+ "pusher-beams"
25507
+ ]
25508
+ },
25382
25509
  "ChannelCredentials": {
25383
25510
  "type": "object",
25384
25511
  "properties": {
@@ -25435,27 +25562,7 @@
25435
25562
  "type": "object",
25436
25563
  "properties": {
25437
25564
  "providerId": {
25438
- "type": "string",
25439
- "enum": [
25440
- "slack",
25441
- "discord",
25442
- "msteams",
25443
- "mattermost",
25444
- "ryver",
25445
- "zulip",
25446
- "grafana-on-call",
25447
- "getstream",
25448
- "rocket-chat",
25449
- "whatsapp-business",
25450
- "fcm",
25451
- "apns",
25452
- "expo",
25453
- "one-signal",
25454
- "pushpad",
25455
- "push-webhook",
25456
- "pusher-beams"
25457
- ],
25458
- "description": "The provider identifier for the credentials"
25565
+ "$ref": "#/components/schemas/ChatOrPushProviderEnum"
25459
25566
  },
25460
25567
  "integrationIdentifier": {
25461
25568
  "type": "string",
@@ -25497,7 +25604,6 @@
25497
25604
  },
25498
25605
  "email": {
25499
25606
  "type": "string",
25500
- "nullable": true,
25501
25607
  "description": "The email address of the subscriber."
25502
25608
  },
25503
25609
  "phone": {
@@ -25512,10 +25618,6 @@
25512
25618
  "type": "string",
25513
25619
  "description": "The locale setting of the subscriber, indicating their preferred language or region."
25514
25620
  },
25515
- "subscriberId": {
25516
- "type": "string",
25517
- "description": "The identifier used to create this subscriber, which typically corresponds to the user ID in your system."
25518
- },
25519
25621
  "channels": {
25520
25622
  "description": "An array of channel settings associated with the subscriber.",
25521
25623
  "type": "array",
@@ -25539,6 +25641,24 @@
25539
25641
  "type": "string",
25540
25642
  "description": "The timestamp indicating when the subscriber was last online, in ISO 8601 format."
25541
25643
  },
25644
+ "__v": {
25645
+ "type": "number",
25646
+ "description": "The version of the subscriber document."
25647
+ },
25648
+ "data": {
25649
+ "type": "object",
25650
+ "description": "Additional custom data for the subscriber",
25651
+ "additionalProperties": true,
25652
+ "nullable": true
25653
+ },
25654
+ "timezone": {
25655
+ "type": "string",
25656
+ "description": "Timezone of the subscriber"
25657
+ },
25658
+ "subscriberId": {
25659
+ "type": "string",
25660
+ "description": "The identifier used to create this subscriber, which typically corresponds to the user ID in your system."
25661
+ },
25542
25662
  "_organizationId": {
25543
25663
  "type": "string",
25544
25664
  "description": "The unique identifier of the organization to which the subscriber belongs."
@@ -25558,20 +25678,6 @@
25558
25678
  "updatedAt": {
25559
25679
  "type": "string",
25560
25680
  "description": "The timestamp indicating when the subscriber was last updated, in ISO 8601 format."
25561
- },
25562
- "__v": {
25563
- "type": "number",
25564
- "description": "The version of the subscriber document."
25565
- },
25566
- "data": {
25567
- "type": "object",
25568
- "description": "Additional custom data for the subscriber",
25569
- "additionalProperties": true,
25570
- "nullable": true
25571
- },
25572
- "timezone": {
25573
- "type": "string",
25574
- "description": "Timezone of the subscriber"
25575
25681
  }
25576
25682
  },
25577
25683
  "required": [
@@ -25656,7 +25762,6 @@
25656
25762
  "properties": {
25657
25763
  "subscriberId": {
25658
25764
  "type": "string",
25659
- "pattern": "VALID_ID_REGEX",
25660
25765
  "description": "Unique identifier of the subscriber"
25661
25766
  },
25662
25767
  "firstName": {
@@ -25781,27 +25886,7 @@
25781
25886
  "type": "object",
25782
25887
  "properties": {
25783
25888
  "providerId": {
25784
- "type": "string",
25785
- "enum": [
25786
- "slack",
25787
- "discord",
25788
- "msteams",
25789
- "mattermost",
25790
- "ryver",
25791
- "zulip",
25792
- "grafana-on-call",
25793
- "getstream",
25794
- "rocket-chat",
25795
- "whatsapp-business",
25796
- "fcm",
25797
- "apns",
25798
- "expo",
25799
- "one-signal",
25800
- "pushpad",
25801
- "push-webhook",
25802
- "pusher-beams"
25803
- ],
25804
- "description": "The provider identifier for the credentials"
25889
+ "$ref": "#/components/schemas/ChatOrPushProviderEnum"
25805
25890
  },
25806
25891
  "integrationIdentifier": {
25807
25892
  "type": "string",
@@ -25997,10 +26082,7 @@
25997
26082
  }
25998
26083
  ]
25999
26084
  }
26000
- },
26001
- "required": [
26002
- "data"
26003
- ]
26085
+ }
26004
26086
  },
26005
26087
  "ActorTypeEnum": {
26006
26088
  "type": "string",
@@ -26177,11 +26259,6 @@
26177
26259
  "description": "Indicates whether the notification has been seen by the subscriber.",
26178
26260
  "example": true
26179
26261
  },
26180
- "deleted": {
26181
- "type": "boolean",
26182
- "description": "Indicates whether the notification has been deleted.",
26183
- "example": false
26184
- },
26185
26262
  "deviceTokens": {
26186
26263
  "nullable": true,
26187
26264
  "description": "Device tokens for push notifications, if applicable.",
@@ -26244,7 +26321,6 @@
26244
26321
  "channel",
26245
26322
  "read",
26246
26323
  "seen",
26247
- "deleted",
26248
26324
  "cta",
26249
26325
  "status"
26250
26326
  ]
@@ -26323,23 +26399,33 @@
26323
26399
  "_organizationId"
26324
26400
  ]
26325
26401
  },
26326
- "PreferenceChannels": {
26402
+ "SubscriberPreferenceChannels": {
26327
26403
  "type": "object",
26328
26404
  "properties": {
26329
26405
  "email": {
26330
- "type": "boolean"
26406
+ "type": "boolean",
26407
+ "description": "Email channel preference",
26408
+ "example": true
26331
26409
  },
26332
26410
  "sms": {
26333
- "type": "boolean"
26411
+ "type": "boolean",
26412
+ "description": "SMS channel preference",
26413
+ "example": false
26334
26414
  },
26335
26415
  "in_app": {
26336
- "type": "boolean"
26416
+ "type": "boolean",
26417
+ "description": "In-app channel preference",
26418
+ "example": true
26337
26419
  },
26338
26420
  "chat": {
26339
- "type": "boolean"
26421
+ "type": "boolean",
26422
+ "description": "Chat channel preference",
26423
+ "example": false
26340
26424
  },
26341
26425
  "push": {
26342
- "type": "boolean"
26426
+ "type": "boolean",
26427
+ "description": "Push notification channel preference",
26428
+ "example": true
26343
26429
  }
26344
26430
  }
26345
26431
  },
@@ -26756,7 +26842,7 @@
26756
26842
  "type": "boolean"
26757
26843
  },
26758
26844
  "preferenceSettings": {
26759
- "$ref": "#/components/schemas/PreferenceChannels"
26845
+ "$ref": "#/components/schemas/SubscriberPreferenceChannels"
26760
26846
  },
26761
26847
  "critical": {
26762
26848
  "type": "boolean"
@@ -26896,6 +26982,13 @@
26896
26982
  "type": "string",
26897
26983
  "description": "Creation date of the message"
26898
26984
  },
26985
+ "deliveredAt": {
26986
+ "description": "Array of delivery dates for the message, if the message has multiple delivery dates, for example after being snoozed",
26987
+ "type": "array",
26988
+ "items": {
26989
+ "type": "string"
26990
+ }
26991
+ },
26899
26992
  "lastSeenDate": {
26900
26993
  "type": "string",
26901
26994
  "description": "Last seen date of the message, if available"
@@ -26907,7 +27000,10 @@
26907
27000
  "content": {
26908
27001
  "oneOf": [
26909
27002
  {
26910
- "$ref": "#/components/schemas/EmailBlock"
27003
+ "type": "array",
27004
+ "items": {
27005
+ "$ref": "#/components/schemas/EmailBlock"
27006
+ }
26911
27007
  },
26912
27008
  {
26913
27009
  "type": "string",
@@ -26935,6 +27031,10 @@
26935
27031
  "type": "boolean",
26936
27032
  "description": "Indicates if the message has been seen"
26937
27033
  },
27034
+ "snoozedUntil": {
27035
+ "type": "string",
27036
+ "description": "Date when the message will be unsnoozed"
27037
+ },
26938
27038
  "email": {
26939
27039
  "type": "string",
26940
27040
  "description": "Email address associated with the message, if applicable"
@@ -27190,7 +27290,7 @@
27190
27290
  "status"
27191
27291
  ]
27192
27292
  },
27193
- "GlobalPreferenceDto": {
27293
+ "SubscriberGlobalPreferenceDto": {
27194
27294
  "type": "object",
27195
27295
  "properties": {
27196
27296
  "enabled": {
@@ -27201,7 +27301,7 @@
27201
27301
  "description": "Channel-specific preference settings",
27202
27302
  "allOf": [
27203
27303
  {
27204
- "$ref": "#/components/schemas/PreferenceChannels"
27304
+ "$ref": "#/components/schemas/SubscriberPreferenceChannels"
27205
27305
  }
27206
27306
  ]
27207
27307
  }
@@ -27211,28 +27311,23 @@
27211
27311
  "channels"
27212
27312
  ]
27213
27313
  },
27214
- "Overrides": {
27314
+ "PreferenceOverrideSourceEnum": {
27315
+ "type": "string",
27316
+ "description": "The source of overrides",
27317
+ "enum": [
27318
+ "subscriber",
27319
+ "template",
27320
+ "workflowOverride"
27321
+ ]
27322
+ },
27323
+ "SubscriberPreferenceOverrideDto": {
27215
27324
  "type": "object",
27216
27325
  "properties": {
27217
27326
  "channel": {
27218
- "enum": [
27219
- "in_app",
27220
- "email",
27221
- "sms",
27222
- "chat",
27223
- "push"
27224
- ],
27225
- "type": "string",
27226
- "description": "The channel type which is overridden"
27327
+ "$ref": "#/components/schemas/ChannelTypeEnum"
27227
27328
  },
27228
27329
  "source": {
27229
- "enum": [
27230
- "subscriber",
27231
- "template",
27232
- "workflowOverride"
27233
- ],
27234
- "type": "string",
27235
- "description": "The source of overrides"
27330
+ "$ref": "#/components/schemas/PreferenceOverrideSourceEnum"
27236
27331
  }
27237
27332
  },
27238
27333
  "required": [
@@ -27240,7 +27335,7 @@
27240
27335
  "source"
27241
27336
  ]
27242
27337
  },
27243
- "WorkflowInfoDto": {
27338
+ "SubscriberPreferencesWorkflowInfoDto": {
27244
27339
  "type": "object",
27245
27340
  "properties": {
27246
27341
  "slug": {
@@ -27266,7 +27361,7 @@
27266
27361
  "name"
27267
27362
  ]
27268
27363
  },
27269
- "WorkflowPreferenceDto": {
27364
+ "SubscriberWorkflowPreferenceDto": {
27270
27365
  "type": "object",
27271
27366
  "properties": {
27272
27367
  "enabled": {
@@ -27277,7 +27372,7 @@
27277
27372
  "description": "Channel-specific preference settings for this workflow",
27278
27373
  "allOf": [
27279
27374
  {
27280
- "$ref": "#/components/schemas/PreferenceChannels"
27375
+ "$ref": "#/components/schemas/SubscriberPreferenceChannels"
27281
27376
  }
27282
27377
  ]
27283
27378
  },
@@ -27285,14 +27380,14 @@
27285
27380
  "description": "List of preference overrides",
27286
27381
  "type": "array",
27287
27382
  "items": {
27288
- "$ref": "#/components/schemas/Overrides"
27383
+ "$ref": "#/components/schemas/SubscriberPreferenceOverrideDto"
27289
27384
  }
27290
27385
  },
27291
27386
  "workflow": {
27292
27387
  "description": "Workflow information",
27293
27388
  "allOf": [
27294
27389
  {
27295
- "$ref": "#/components/schemas/WorkflowInfoDto"
27390
+ "$ref": "#/components/schemas/SubscriberPreferencesWorkflowInfoDto"
27296
27391
  }
27297
27392
  ]
27298
27393
  }
@@ -27311,7 +27406,7 @@
27311
27406
  "description": "Global preference settings",
27312
27407
  "allOf": [
27313
27408
  {
27314
- "$ref": "#/components/schemas/GlobalPreferenceDto"
27409
+ "$ref": "#/components/schemas/SubscriberGlobalPreferenceDto"
27315
27410
  }
27316
27411
  ]
27317
27412
  },
@@ -27319,7 +27414,7 @@
27319
27414
  "description": "Workflow-specific preference settings",
27320
27415
  "type": "array",
27321
27416
  "items": {
27322
- "$ref": "#/components/schemas/WorkflowPreferenceDto"
27417
+ "$ref": "#/components/schemas/SubscriberWorkflowPreferenceDto"
27323
27418
  }
27324
27419
  }
27325
27420
  },
@@ -27366,33 +27461,67 @@
27366
27461
  },
27367
27462
  "workflowId": {
27368
27463
  "type": "string",
27369
- "description": "If provided, update workflow specific preferences, otherwise update global preferences"
27464
+ "description": "Workflow internal _id, identifier or slug. If provided, update workflow specific preferences, otherwise update global preferences"
27370
27465
  }
27371
27466
  },
27372
27467
  "required": [
27373
27468
  "channels"
27374
27469
  ]
27375
27470
  },
27376
- "DeleteMessageResponseDto": {
27471
+ "MessagesResponseDto": {
27377
27472
  "type": "object",
27378
27473
  "properties": {
27379
- "acknowledged": {
27474
+ "totalCount": {
27475
+ "type": "number",
27476
+ "description": "Total number of messages available"
27477
+ },
27478
+ "hasMore": {
27380
27479
  "type": "boolean",
27381
- "description": "A boolean stating the success of the action"
27480
+ "description": "Indicates if there are more messages available"
27382
27481
  },
27383
- "status": {
27384
- "type": "string",
27385
- "description": "The status enum for the performed action",
27386
- "enum": [
27387
- "deleted"
27388
- ]
27389
- }
27390
- },
27391
- "required": [
27392
- "acknowledged",
27393
- "status"
27394
- ]
27395
- },
27482
+ "data": {
27483
+ "description": "List of messages",
27484
+ "type": "array",
27485
+ "items": {
27486
+ "$ref": "#/components/schemas/MessageResponseDto"
27487
+ }
27488
+ },
27489
+ "pageSize": {
27490
+ "type": "number",
27491
+ "description": "Number of messages per page"
27492
+ },
27493
+ "page": {
27494
+ "type": "number",
27495
+ "description": "Current page number"
27496
+ }
27497
+ },
27498
+ "required": [
27499
+ "hasMore",
27500
+ "data",
27501
+ "pageSize",
27502
+ "page"
27503
+ ]
27504
+ },
27505
+ "DeleteMessageResponseDto": {
27506
+ "type": "object",
27507
+ "properties": {
27508
+ "acknowledged": {
27509
+ "type": "boolean",
27510
+ "description": "A boolean stating the success of the action"
27511
+ },
27512
+ "status": {
27513
+ "type": "string",
27514
+ "description": "The status enum for the performed action",
27515
+ "enum": [
27516
+ "deleted"
27517
+ ]
27518
+ }
27519
+ },
27520
+ "required": [
27521
+ "acknowledged",
27522
+ "status"
27523
+ ]
27524
+ },
27396
27525
  "CreateTopicResponseDto": {
27397
27526
  "type": "object",
27398
27527
  "properties": {
@@ -27679,9 +27808,1612 @@
27679
27808
  "name"
27680
27809
  ]
27681
27810
  },
27682
- "GeneratePreviewResponseDto": {
27811
+ "RuntimeIssueDto": {
27683
27812
  "type": "object",
27684
- "properties": {}
27813
+ "properties": {
27814
+ "issueType": {
27815
+ "enum": [
27816
+ "MISSING_VALUE",
27817
+ "MAX_LENGTH_ACCESSED",
27818
+ "WORKFLOW_ID_ALREADY_EXISTS",
27819
+ "DUPLICATED_VALUE",
27820
+ "LIMIT_REACHED"
27821
+ ],
27822
+ "type": "string"
27823
+ },
27824
+ "variableName": {
27825
+ "type": "string"
27826
+ },
27827
+ "message": {
27828
+ "type": "string"
27829
+ }
27830
+ },
27831
+ "required": [
27832
+ "issueType",
27833
+ "message"
27834
+ ]
27835
+ },
27836
+ "JsonSchemaTypeEnum": {
27837
+ "type": "string",
27838
+ "description": "JSON Schema type",
27839
+ "enum": [
27840
+ "string",
27841
+ "number",
27842
+ "integer",
27843
+ "boolean",
27844
+ "array",
27845
+ "object",
27846
+ "null"
27847
+ ]
27848
+ },
27849
+ "JsonSchemaFormatEnum": {
27850
+ "type": "string",
27851
+ "description": "Format validation for strings",
27852
+ "enum": [
27853
+ "date",
27854
+ "time",
27855
+ "date-time",
27856
+ "duration",
27857
+ "email",
27858
+ "hostname",
27859
+ "idn-hostname",
27860
+ "ipv4",
27861
+ "ipv6",
27862
+ "json-pointer",
27863
+ "relative-json-pointer",
27864
+ "regex",
27865
+ "uri",
27866
+ "uri-reference",
27867
+ "uri-template",
27868
+ "url",
27869
+ "uuid",
27870
+ "guid",
27871
+ "phone",
27872
+ "password",
27873
+ "color"
27874
+ ]
27875
+ },
27876
+ "JSONSchemaDto": {
27877
+ "type": "object",
27878
+ "properties": {
27879
+ "type": {
27880
+ "$ref": "#/components/schemas/JsonSchemaTypeEnum"
27881
+ },
27882
+ "format": {
27883
+ "$ref": "#/components/schemas/JsonSchemaFormatEnum"
27884
+ },
27885
+ "title": {
27886
+ "type": "string",
27887
+ "description": "Title of the schema"
27888
+ },
27889
+ "description": {
27890
+ "type": "string",
27891
+ "description": "Description of the schema"
27892
+ },
27893
+ "default": {
27894
+ "description": "Default value",
27895
+ "oneOf": [
27896
+ {
27897
+ "type": "string"
27898
+ },
27899
+ {
27900
+ "type": "number"
27901
+ },
27902
+ {
27903
+ "type": "boolean"
27904
+ }
27905
+ ]
27906
+ },
27907
+ "const": {
27908
+ "type": "object",
27909
+ "description": "Const value (exact match required)"
27910
+ },
27911
+ "minimum": {
27912
+ "type": "number",
27913
+ "description": "Minimum value for numbers"
27914
+ },
27915
+ "maximum": {
27916
+ "type": "number",
27917
+ "description": "Maximum value for numbers"
27918
+ },
27919
+ "exclusiveMinimum": {
27920
+ "type": "boolean",
27921
+ "description": "Exclusive minimum"
27922
+ },
27923
+ "exclusiveMaximum": {
27924
+ "type": "boolean",
27925
+ "description": "Exclusive maximum"
27926
+ },
27927
+ "minLength": {
27928
+ "type": "number",
27929
+ "description": "Minimum length for strings"
27930
+ },
27931
+ "maxLength": {
27932
+ "type": "number",
27933
+ "description": "Maximum length for strings"
27934
+ },
27935
+ "pattern": {
27936
+ "type": "string",
27937
+ "description": "Regular expression pattern"
27938
+ },
27939
+ "minItems": {
27940
+ "type": "number",
27941
+ "description": "Minimum number of items in array"
27942
+ },
27943
+ "maxItems": {
27944
+ "type": "number",
27945
+ "description": "Maximum number of items in array"
27946
+ },
27947
+ "uniqueItems": {
27948
+ "type": "boolean",
27949
+ "description": "Items must be unique"
27950
+ },
27951
+ "items": {
27952
+ "description": "Schema for array items",
27953
+ "oneOf": [
27954
+ {
27955
+ "$ref": "#/components/schemas/JSONSchemaDto"
27956
+ }
27957
+ ]
27958
+ },
27959
+ "required": {
27960
+ "type": "array",
27961
+ "description": "Required properties for object",
27962
+ "items": {
27963
+ "type": "string"
27964
+ }
27965
+ },
27966
+ "properties": {
27967
+ "type": "object",
27968
+ "description": "Object properties",
27969
+ "additionalProperties": {
27970
+ "oneOf": [
27971
+ {
27972
+ "$ref": "#/components/schemas/JSONSchemaDto"
27973
+ }
27974
+ ]
27975
+ }
27976
+ },
27977
+ "additionalProperties": {
27978
+ "description": "Additional properties schema",
27979
+ "oneOf": [
27980
+ {
27981
+ "$ref": "#/components/schemas/JSONSchemaDto"
27982
+ },
27983
+ {
27984
+ "type": "boolean"
27985
+ }
27986
+ ]
27987
+ },
27988
+ "enum": {
27989
+ "type": "array",
27990
+ "description": "Enumeration of possible values",
27991
+ "items": {
27992
+ "type": "string"
27993
+ }
27994
+ },
27995
+ "allOf": {
27996
+ "type": "array",
27997
+ "description": "Combination of schemas (allOf)",
27998
+ "items": {
27999
+ "oneOf": [
28000
+ {
28001
+ "$ref": "#/components/schemas/JSONSchemaDto"
28002
+ }
28003
+ ]
28004
+ }
28005
+ },
28006
+ "anyOf": {
28007
+ "type": "array",
28008
+ "description": "At least one schema must match (anyOf)",
28009
+ "items": {
28010
+ "oneOf": [
28011
+ {
28012
+ "$ref": "#/components/schemas/JSONSchemaDto"
28013
+ }
28014
+ ]
28015
+ }
28016
+ },
28017
+ "oneOf": {
28018
+ "type": "array",
28019
+ "description": "Only one schema must match (oneOf)",
28020
+ "items": {
28021
+ "oneOf": [
28022
+ {
28023
+ "$ref": "#/components/schemas/JSONSchemaDto"
28024
+ }
28025
+ ]
28026
+ }
28027
+ },
28028
+ "not": {
28029
+ "description": "Schema must not match (not)",
28030
+ "oneOf": [
28031
+ {
28032
+ "$ref": "#/components/schemas/JSONSchemaDto"
28033
+ }
28034
+ ]
28035
+ },
28036
+ "if": {
28037
+ "description": "Conditional validation schema (if condition)",
28038
+ "oneOf": [
28039
+ {
28040
+ "$ref": "#/components/schemas/JSONSchemaDto"
28041
+ }
28042
+ ]
28043
+ },
28044
+ "then": {
28045
+ "description": "Schema to apply if \"if\" condition is true",
28046
+ "oneOf": [
28047
+ {
28048
+ "$ref": "#/components/schemas/JSONSchemaDto"
28049
+ }
28050
+ ]
28051
+ },
28052
+ "else": {
28053
+ "description": "Schema to apply if \"if\" condition is false",
28054
+ "oneOf": [
28055
+ {
28056
+ "$ref": "#/components/schemas/JSONSchemaDto"
28057
+ }
28058
+ ]
28059
+ },
28060
+ "contentEncoding": {
28061
+ "type": "string",
28062
+ "description": "Content encoding (e.g., base64)"
28063
+ },
28064
+ "contentMediaType": {
28065
+ "type": "string",
28066
+ "description": "Content media type"
28067
+ },
28068
+ "dependentRequired": {
28069
+ "type": "object",
28070
+ "description": "Dependent required properties",
28071
+ "additionalProperties": {
28072
+ "type": "array",
28073
+ "items": {
28074
+ "type": "string"
28075
+ }
28076
+ }
28077
+ },
28078
+ "dependentSchemas": {
28079
+ "type": "object",
28080
+ "description": "Dependent schemas",
28081
+ "additionalProperties": {
28082
+ "oneOf": [
28083
+ {
28084
+ "$ref": "#/components/schemas/JSONSchemaDto"
28085
+ }
28086
+ ]
28087
+ }
28088
+ },
28089
+ "$schema": {
28090
+ "type": "string",
28091
+ "description": "JSON Schema version"
28092
+ },
28093
+ "$id": {
28094
+ "type": "string",
28095
+ "description": "Unique identifier for the schema"
28096
+ },
28097
+ "contentSchema": {
28098
+ "description": "Content schema for specific types",
28099
+ "oneOf": [
28100
+ {
28101
+ "$ref": "#/components/schemas/JSONSchemaDto"
28102
+ }
28103
+ ]
28104
+ },
28105
+ "examples": {
28106
+ "type": "array",
28107
+ "description": "Example values",
28108
+ "items": {
28109
+ "type": "object"
28110
+ }
28111
+ },
28112
+ "multipleOf": {
28113
+ "type": "number",
28114
+ "description": "Minimum number of decimal places"
28115
+ }
28116
+ }
28117
+ },
28118
+ "UiComponentEnum": {
28119
+ "type": "string",
28120
+ "description": "Component type for the UI Schema Property",
28121
+ "enum": [
28122
+ "BLOCK_EDITOR",
28123
+ "TEXT_FULL_LINE",
28124
+ "TEXT_INLINE_LABEL",
28125
+ "IN_APP_BODY",
28126
+ "IN_APP_AVATAR",
28127
+ "IN_APP_PRIMARY_SUBJECT",
28128
+ "IN_APP_BUTTON_DROPDOWN",
28129
+ "IN_APP_DISABLE_SANITIZATION_SWITCH",
28130
+ "DISABLE_SANITIZATION_SWITCH",
28131
+ "URL_TEXT_BOX",
28132
+ "DIGEST_AMOUNT",
28133
+ "DIGEST_UNIT",
28134
+ "DIGEST_KEY",
28135
+ "DIGEST_CRON",
28136
+ "DELAY_TYPE",
28137
+ "DELAY_AMOUNT",
28138
+ "DELAY_UNIT",
28139
+ "SMS_BODY",
28140
+ "CHAT_BODY",
28141
+ "PUSH_BODY",
28142
+ "PUSH_SUBJECT",
28143
+ "QUERY_EDITOR",
28144
+ "DATA"
28145
+ ]
28146
+ },
28147
+ "UiSchemaProperty": {
28148
+ "type": "object",
28149
+ "properties": {
28150
+ "placeholder": {
28151
+ "description": "Placeholder for the UI Schema Property",
28152
+ "anyOf": [
28153
+ {
28154
+ "type": "string"
28155
+ },
28156
+ {
28157
+ "type": "number"
28158
+ },
28159
+ {
28160
+ "type": "boolean"
28161
+ },
28162
+ {
28163
+ "type": "object",
28164
+ "additionalProperties": true
28165
+ },
28166
+ {
28167
+ "type": "array",
28168
+ "items": {
28169
+ "anyOf": [
28170
+ {
28171
+ "type": "string"
28172
+ },
28173
+ {
28174
+ "type": "number"
28175
+ },
28176
+ {
28177
+ "type": "boolean"
28178
+ },
28179
+ {
28180
+ "type": "object",
28181
+ "additionalProperties": true
28182
+ }
28183
+ ]
28184
+ }
28185
+ }
28186
+ ],
28187
+ "nullable": true
28188
+ },
28189
+ "component": {
28190
+ "$ref": "#/components/schemas/UiComponentEnum"
28191
+ }
28192
+ },
28193
+ "required": [
28194
+ "component"
28195
+ ]
28196
+ },
28197
+ "UiSchemaGroupEnum": {
28198
+ "type": "string",
28199
+ "description": "Group of the UI Schema",
28200
+ "enum": [
28201
+ "IN_APP",
28202
+ "EMAIL",
28203
+ "DIGEST",
28204
+ "DELAY",
28205
+ "SMS",
28206
+ "CHAT",
28207
+ "PUSH",
28208
+ "SKIP"
28209
+ ]
28210
+ },
28211
+ "UiSchema": {
28212
+ "type": "object",
28213
+ "properties": {
28214
+ "group": {
28215
+ "$ref": "#/components/schemas/UiSchemaGroupEnum"
28216
+ },
28217
+ "properties": {
28218
+ "type": "object",
28219
+ "description": "Properties of the UI Schema",
28220
+ "additionalProperties": {
28221
+ "$ref": "#/components/schemas/UiSchemaProperty"
28222
+ }
28223
+ }
28224
+ }
28225
+ },
28226
+ "ControlsMetadataDto": {
28227
+ "type": "object",
28228
+ "properties": {
28229
+ "dataSchema": {
28230
+ "description": "JSON Schema for data",
28231
+ "oneOf": [
28232
+ {
28233
+ "$ref": "#/components/schemas/JSONSchemaDto"
28234
+ }
28235
+ ],
28236
+ "allOf": [
28237
+ {
28238
+ "$ref": "#/components/schemas/JSONSchemaDto"
28239
+ }
28240
+ ]
28241
+ },
28242
+ "uiSchema": {
28243
+ "description": "UI Schema for rendering",
28244
+ "allOf": [
28245
+ {
28246
+ "$ref": "#/components/schemas/UiSchema"
28247
+ }
28248
+ ]
28249
+ },
28250
+ "values": {
28251
+ "type": "object",
28252
+ "description": "Control values",
28253
+ "additionalProperties": true
28254
+ }
28255
+ },
28256
+ "required": [
28257
+ "values"
28258
+ ]
28259
+ },
28260
+ "StepContentIssueEnum": {
28261
+ "type": "string",
28262
+ "description": "Type of step content issue",
28263
+ "enum": [
28264
+ "ILLEGAL_VARIABLE_IN_CONTROL_VALUE",
28265
+ "INVALID_FILTER_ARG_IN_VARIABLE",
28266
+ "MISSING_VALUE",
28267
+ "TIER_LIMIT_EXCEEDED"
28268
+ ]
28269
+ },
28270
+ "StepContentIssueDto": {
28271
+ "type": "object",
28272
+ "properties": {
28273
+ "issueType": {
28274
+ "$ref": "#/components/schemas/StepContentIssueEnum"
28275
+ },
28276
+ "variableName": {
28277
+ "type": "string",
28278
+ "description": "Name of the variable related to the issue"
28279
+ },
28280
+ "message": {
28281
+ "type": "string",
28282
+ "description": "Detailed message describing the issue"
28283
+ }
28284
+ },
28285
+ "required": [
28286
+ "issueType",
28287
+ "message"
28288
+ ]
28289
+ },
28290
+ "StepIntegrationIssueEnum": {
28291
+ "type": "string",
28292
+ "description": "Type of integration issue",
28293
+ "enum": [
28294
+ "MISSING_INTEGRATION"
28295
+ ]
28296
+ },
28297
+ "StepIntegrationIssue": {
28298
+ "type": "object",
28299
+ "properties": {
28300
+ "issueType": {
28301
+ "$ref": "#/components/schemas/StepIntegrationIssueEnum"
28302
+ },
28303
+ "variableName": {
28304
+ "type": "string",
28305
+ "description": "Name of the variable related to the issue"
28306
+ },
28307
+ "message": {
28308
+ "type": "string",
28309
+ "description": "Detailed message describing the issue"
28310
+ }
28311
+ },
28312
+ "required": [
28313
+ "issueType",
28314
+ "message"
28315
+ ]
28316
+ },
28317
+ "StepIssuesDto": {
28318
+ "type": "object",
28319
+ "properties": {
28320
+ "controls": {
28321
+ "type": "object",
28322
+ "description": "Controls-related issues",
28323
+ "additionalProperties": {
28324
+ "type": "array",
28325
+ "items": {
28326
+ "$ref": "#/components/schemas/StepContentIssueDto"
28327
+ }
28328
+ }
28329
+ },
28330
+ "integration": {
28331
+ "type": "object",
28332
+ "description": "Integration-related issues",
28333
+ "additionalProperties": {
28334
+ "type": "array",
28335
+ "items": {
28336
+ "$ref": "#/components/schemas/StepIntegrationIssue"
28337
+ }
28338
+ }
28339
+ }
28340
+ }
28341
+ },
28342
+ "StepResponseDto": {
28343
+ "type": "object",
28344
+ "properties": {
28345
+ "controls": {
28346
+ "description": "Controls metadata for the step",
28347
+ "allOf": [
28348
+ {
28349
+ "$ref": "#/components/schemas/ControlsMetadataDto"
28350
+ }
28351
+ ]
28352
+ },
28353
+ "variables": {
28354
+ "description": "JSON Schema for variables",
28355
+ "allOf": [
28356
+ {
28357
+ "$ref": "#/components/schemas/JSONSchemaDto"
28358
+ }
28359
+ ]
28360
+ },
28361
+ "stepId": {
28362
+ "type": "string",
28363
+ "description": "Unique identifier of the step"
28364
+ },
28365
+ "_id": {
28366
+ "type": "string",
28367
+ "description": "Database identifier of the step"
28368
+ },
28369
+ "name": {
28370
+ "type": "string",
28371
+ "description": "Name of the step"
28372
+ },
28373
+ "slug": {
28374
+ "type": "object",
28375
+ "description": "Slug of the step"
28376
+ },
28377
+ "type": {
28378
+ "$ref": "#/components/schemas/StepTypeEnum"
28379
+ },
28380
+ "origin": {
28381
+ "$ref": "#/components/schemas/WorkflowOriginEnum"
28382
+ },
28383
+ "workflowId": {
28384
+ "type": "string",
28385
+ "description": "Workflow identifier"
28386
+ },
28387
+ "workflowDatabaseId": {
28388
+ "type": "string",
28389
+ "description": "Workflow database identifier"
28390
+ },
28391
+ "issues": {
28392
+ "description": "Issues associated with the step",
28393
+ "allOf": [
28394
+ {
28395
+ "$ref": "#/components/schemas/StepIssuesDto"
28396
+ }
28397
+ ]
28398
+ }
28399
+ },
28400
+ "required": [
28401
+ "controls",
28402
+ "variables",
28403
+ "stepId",
28404
+ "_id",
28405
+ "name",
28406
+ "slug",
28407
+ "type",
28408
+ "origin",
28409
+ "workflowId",
28410
+ "workflowDatabaseId"
28411
+ ]
28412
+ },
28413
+ "WorkflowPreferenceDto": {
28414
+ "type": "object",
28415
+ "properties": {
28416
+ "enabled": {
28417
+ "type": "boolean",
28418
+ "default": true,
28419
+ "description": "A flag specifying if notification delivery is enabled for the workflow. If true, notification delivery is enabled by default for all channels. This setting can be overridden by the channel preferences."
28420
+ },
28421
+ "readOnly": {
28422
+ "type": "boolean",
28423
+ "default": false,
28424
+ "description": "A flag specifying if the preference is read-only. If true, the preference cannot be changed by the Subscriber."
28425
+ }
28426
+ },
28427
+ "required": [
28428
+ "enabled",
28429
+ "readOnly"
28430
+ ]
28431
+ },
28432
+ "ChannelPreferenceDto": {
28433
+ "type": "object",
28434
+ "properties": {
28435
+ "enabled": {
28436
+ "type": "boolean",
28437
+ "default": true,
28438
+ "description": "A flag specifying if notification delivery is enabled for the channel. If true, notification delivery is enabled."
28439
+ }
28440
+ },
28441
+ "required": [
28442
+ "enabled"
28443
+ ]
28444
+ },
28445
+ "WorkflowPreferencesDto": {
28446
+ "type": "object",
28447
+ "properties": {
28448
+ "all": {
28449
+ "description": "A preference for the workflow. The values specified here will be used if no preference is specified for a channel.",
28450
+ "oneOf": [
28451
+ {
28452
+ "$ref": "#/components/schemas/WorkflowPreferenceDto"
28453
+ }
28454
+ ],
28455
+ "allOf": [
28456
+ {
28457
+ "$ref": "#/components/schemas/WorkflowPreferenceDto"
28458
+ }
28459
+ ]
28460
+ },
28461
+ "channels": {
28462
+ "type": "object",
28463
+ "description": "Preferences for different communication channels",
28464
+ "additionalProperties": {
28465
+ "$ref": "#/components/schemas/ChannelPreferenceDto"
28466
+ },
28467
+ "example": {
28468
+ "email": {
28469
+ "enabled": true
28470
+ },
28471
+ "sms": {
28472
+ "enabled": false
28473
+ }
28474
+ }
28475
+ }
28476
+ },
28477
+ "required": [
28478
+ "all",
28479
+ "channels"
28480
+ ]
28481
+ },
28482
+ "WorkflowPreferencesResponseDto": {
28483
+ "type": "object",
28484
+ "properties": {
28485
+ "user": {
28486
+ "nullable": true,
28487
+ "description": "User-specific workflow preferences",
28488
+ "allOf": [
28489
+ {
28490
+ "$ref": "#/components/schemas/WorkflowPreferencesDto"
28491
+ }
28492
+ ]
28493
+ },
28494
+ "default": {
28495
+ "description": "Default workflow preferences",
28496
+ "allOf": [
28497
+ {
28498
+ "$ref": "#/components/schemas/WorkflowPreferencesDto"
28499
+ }
28500
+ ]
28501
+ }
28502
+ },
28503
+ "required": [
28504
+ "default"
28505
+ ]
28506
+ },
28507
+ "WorkflowStatusEnum": {
28508
+ "type": "string",
28509
+ "description": "Status of the workflow",
28510
+ "enum": [
28511
+ "ACTIVE",
28512
+ "INACTIVE",
28513
+ "ERROR"
28514
+ ]
28515
+ },
28516
+ "WorkflowResponseDto": {
28517
+ "type": "object",
28518
+ "properties": {
28519
+ "name": {
28520
+ "type": "string",
28521
+ "description": "Name of the workflow"
28522
+ },
28523
+ "description": {
28524
+ "type": "string",
28525
+ "description": "Description of the workflow"
28526
+ },
28527
+ "tags": {
28528
+ "description": "Tags associated with the workflow",
28529
+ "type": "array",
28530
+ "items": {
28531
+ "type": "string"
28532
+ }
28533
+ },
28534
+ "active": {
28535
+ "type": "boolean",
28536
+ "description": "Whether the workflow is active",
28537
+ "default": false
28538
+ },
28539
+ "_id": {
28540
+ "type": "string",
28541
+ "description": "Unique identifier of the workflow"
28542
+ },
28543
+ "workflowId": {
28544
+ "type": "string",
28545
+ "description": "Workflow identifier"
28546
+ },
28547
+ "slug": {
28548
+ "type": "object",
28549
+ "description": "Slug of the workflow"
28550
+ },
28551
+ "updatedAt": {
28552
+ "type": "string",
28553
+ "description": "Last updated timestamp"
28554
+ },
28555
+ "createdAt": {
28556
+ "type": "string",
28557
+ "description": "Creation timestamp"
28558
+ },
28559
+ "steps": {
28560
+ "description": "Steps of the workflow",
28561
+ "type": "array",
28562
+ "items": {
28563
+ "$ref": "#/components/schemas/StepResponseDto"
28564
+ }
28565
+ },
28566
+ "origin": {
28567
+ "$ref": "#/components/schemas/WorkflowOriginEnum"
28568
+ },
28569
+ "preferences": {
28570
+ "description": "Preferences for the workflow",
28571
+ "allOf": [
28572
+ {
28573
+ "$ref": "#/components/schemas/WorkflowPreferencesResponseDto"
28574
+ }
28575
+ ]
28576
+ },
28577
+ "status": {
28578
+ "$ref": "#/components/schemas/WorkflowStatusEnum"
28579
+ },
28580
+ "issues": {
28581
+ "type": "object",
28582
+ "description": "Runtime issues for workflow creation and update",
28583
+ "additionalProperties": {
28584
+ "$ref": "#/components/schemas/RuntimeIssueDto"
28585
+ }
28586
+ },
28587
+ "lastTriggeredAt": {
28588
+ "type": "string",
28589
+ "description": "Timestamp of the last workflow trigger",
28590
+ "nullable": true
28591
+ }
28592
+ },
28593
+ "required": [
28594
+ "name",
28595
+ "_id",
28596
+ "workflowId",
28597
+ "slug",
28598
+ "updatedAt",
28599
+ "createdAt",
28600
+ "steps",
28601
+ "origin",
28602
+ "preferences",
28603
+ "status"
28604
+ ]
28605
+ },
28606
+ "StepUpsertDto": {
28607
+ "type": "object",
28608
+ "properties": {
28609
+ "name": {
28610
+ "type": "string",
28611
+ "description": "Name of the step"
28612
+ },
28613
+ "_id": {
28614
+ "type": "string",
28615
+ "description": "Unique identifier of the step"
28616
+ },
28617
+ "type": {
28618
+ "$ref": "#/components/schemas/StepTypeEnum"
28619
+ },
28620
+ "controlValues": {
28621
+ "type": "object",
28622
+ "nullable": true,
28623
+ "description": "Control values for the step",
28624
+ "additionalProperties": true
28625
+ }
28626
+ },
28627
+ "required": [
28628
+ "name",
28629
+ "type"
28630
+ ]
28631
+ },
28632
+ "WorkflowCreationSourceEnum": {
28633
+ "type": "string",
28634
+ "description": "Source of workflow creation",
28635
+ "enum": [
28636
+ "template_store",
28637
+ "editor",
28638
+ "notification_directory",
28639
+ "onboarding_digest_demo",
28640
+ "onboarding_in_app",
28641
+ "empty_state",
28642
+ "dropdown",
28643
+ "onboarding_get_started",
28644
+ "bridge",
28645
+ "dashboard"
28646
+ ]
28647
+ },
28648
+ "PreferencesRequestDto": {
28649
+ "type": "object",
28650
+ "properties": {
28651
+ "user": {
28652
+ "nullable": true,
28653
+ "description": "User workflow preferences",
28654
+ "oneOf": [
28655
+ {
28656
+ "$ref": "#/components/schemas/WorkflowPreferencesDto"
28657
+ }
28658
+ ]
28659
+ },
28660
+ "workflow": {
28661
+ "nullable": true,
28662
+ "description": "Workflow-specific preferences",
28663
+ "allOf": [
28664
+ {
28665
+ "$ref": "#/components/schemas/WorkflowPreferencesDto"
28666
+ }
28667
+ ]
28668
+ }
28669
+ }
28670
+ },
28671
+ "CreateWorkflowDto": {
28672
+ "type": "object",
28673
+ "properties": {
28674
+ "name": {
28675
+ "type": "string",
28676
+ "description": "Name of the workflow"
28677
+ },
28678
+ "description": {
28679
+ "type": "string",
28680
+ "description": "Description of the workflow"
28681
+ },
28682
+ "tags": {
28683
+ "description": "Tags associated with the workflow",
28684
+ "type": "array",
28685
+ "items": {
28686
+ "type": "string"
28687
+ }
28688
+ },
28689
+ "active": {
28690
+ "type": "boolean",
28691
+ "description": "Whether the workflow is active",
28692
+ "default": false
28693
+ },
28694
+ "workflowId": {
28695
+ "type": "string",
28696
+ "description": "Unique identifier for the workflow"
28697
+ },
28698
+ "steps": {
28699
+ "description": "Steps of the workflow",
28700
+ "type": "array",
28701
+ "items": {
28702
+ "$ref": "#/components/schemas/StepUpsertDto"
28703
+ }
28704
+ },
28705
+ "__source": {
28706
+ "$ref": "#/components/schemas/WorkflowCreationSourceEnum"
28707
+ },
28708
+ "preferences": {
28709
+ "description": "Workflow preferences",
28710
+ "allOf": [
28711
+ {
28712
+ "$ref": "#/components/schemas/PreferencesRequestDto"
28713
+ }
28714
+ ]
28715
+ }
28716
+ },
28717
+ "required": [
28718
+ "name",
28719
+ "workflowId",
28720
+ "steps",
28721
+ "__source"
28722
+ ]
28723
+ },
28724
+ "SyncWorkflowDto": {
28725
+ "type": "object",
28726
+ "properties": {
28727
+ "targetEnvironmentId": {
28728
+ "type": "string",
28729
+ "description": "Target environment identifier to sync the workflow to"
28730
+ }
28731
+ },
28732
+ "required": [
28733
+ "targetEnvironmentId"
28734
+ ]
28735
+ },
28736
+ "UpdateWorkflowDto": {
28737
+ "type": "object",
28738
+ "properties": {
28739
+ "name": {
28740
+ "type": "string",
28741
+ "description": "Name of the workflow"
28742
+ },
28743
+ "description": {
28744
+ "type": "string",
28745
+ "description": "Description of the workflow"
28746
+ },
28747
+ "tags": {
28748
+ "description": "Tags associated with the workflow",
28749
+ "type": "array",
28750
+ "items": {
28751
+ "type": "string"
28752
+ }
28753
+ },
28754
+ "active": {
28755
+ "type": "boolean",
28756
+ "description": "Whether the workflow is active",
28757
+ "default": false
28758
+ },
28759
+ "workflowId": {
28760
+ "type": "string",
28761
+ "description": "Workflow ID (allowed only for code-first workflows)"
28762
+ },
28763
+ "steps": {
28764
+ "type": "array",
28765
+ "description": "Steps of the workflow",
28766
+ "items": {
28767
+ "$ref": "#/components/schemas/StepUpsertDto"
28768
+ }
28769
+ },
28770
+ "preferences": {
28771
+ "description": "Workflow preferences",
28772
+ "allOf": [
28773
+ {
28774
+ "$ref": "#/components/schemas/PreferencesRequestDto"
28775
+ }
28776
+ ]
28777
+ },
28778
+ "origin": {
28779
+ "$ref": "#/components/schemas/WorkflowOriginEnum"
28780
+ }
28781
+ },
28782
+ "required": [
28783
+ "name",
28784
+ "steps",
28785
+ "preferences",
28786
+ "origin"
28787
+ ]
28788
+ },
28789
+ "WorkflowListResponseDto": {
28790
+ "type": "object",
28791
+ "properties": {
28792
+ "name": {
28793
+ "type": "string",
28794
+ "description": "Name of the workflow"
28795
+ },
28796
+ "tags": {
28797
+ "type": "array",
28798
+ "description": "Tags associated with the workflow",
28799
+ "items": {
28800
+ "type": "string"
28801
+ }
28802
+ },
28803
+ "updatedAt": {
28804
+ "type": "string",
28805
+ "description": "Last updated timestamp"
28806
+ },
28807
+ "createdAt": {
28808
+ "type": "string",
28809
+ "description": "Creation timestamp"
28810
+ },
28811
+ "_id": {
28812
+ "type": "string",
28813
+ "description": "Unique database identifier"
28814
+ },
28815
+ "workflowId": {
28816
+ "type": "string",
28817
+ "description": "Workflow identifier"
28818
+ },
28819
+ "slug": {
28820
+ "type": "string",
28821
+ "description": "Workflow slug"
28822
+ },
28823
+ "status": {
28824
+ "$ref": "#/components/schemas/WorkflowStatusEnum"
28825
+ },
28826
+ "origin": {
28827
+ "$ref": "#/components/schemas/WorkflowOriginEnum"
28828
+ },
28829
+ "lastTriggeredAt": {
28830
+ "type": "string",
28831
+ "description": "Timestamp of the last workflow trigger",
28832
+ "nullable": true
28833
+ },
28834
+ "stepTypeOverviews": {
28835
+ "type": "array",
28836
+ "items": {
28837
+ "$ref": "#/components/schemas/StepTypeEnum"
28838
+ },
28839
+ "description": "Overview of step types in the workflow"
28840
+ }
28841
+ },
28842
+ "required": [
28843
+ "name",
28844
+ "updatedAt",
28845
+ "createdAt",
28846
+ "_id",
28847
+ "workflowId",
28848
+ "slug",
28849
+ "status",
28850
+ "origin",
28851
+ "stepTypeOverviews"
28852
+ ]
28853
+ },
28854
+ "ListWorkflowResponse": {
28855
+ "type": "object",
28856
+ "properties": {
28857
+ "workflows": {
28858
+ "description": "List of workflows",
28859
+ "type": "array",
28860
+ "items": {
28861
+ "$ref": "#/components/schemas/WorkflowListResponseDto"
28862
+ }
28863
+ },
28864
+ "totalCount": {
28865
+ "type": "number",
28866
+ "description": "Total number of workflows"
28867
+ }
28868
+ },
28869
+ "required": [
28870
+ "workflows",
28871
+ "totalCount"
28872
+ ]
28873
+ },
28874
+ "DirectionEnum": {
28875
+ "type": "string",
28876
+ "enum": [
28877
+ "ASC",
28878
+ "DESC"
28879
+ ]
28880
+ },
28881
+ "WorkflowResponseDtoSortField": {
28882
+ "type": "string",
28883
+ "enum": [
28884
+ "createdAt",
28885
+ "updatedAt",
28886
+ "name",
28887
+ "lastTriggeredAt"
28888
+ ]
28889
+ },
28890
+ "DuplicateWorkflowDto": {
28891
+ "type": "object",
28892
+ "properties": {
28893
+ "name": {
28894
+ "type": "string",
28895
+ "description": "Name of the workflow"
28896
+ },
28897
+ "tags": {
28898
+ "description": "Tags associated with the workflow",
28899
+ "type": "array",
28900
+ "items": {
28901
+ "type": "string"
28902
+ }
28903
+ },
28904
+ "description": {
28905
+ "type": "string",
28906
+ "description": "Description of the workflow"
28907
+ }
28908
+ }
28909
+ },
28910
+ "EmailRenderOutput": {
28911
+ "type": "object",
28912
+ "properties": {
28913
+ "subject": {
28914
+ "type": "string",
28915
+ "description": "Subject of the email"
28916
+ },
28917
+ "body": {
28918
+ "type": "string",
28919
+ "description": "Body of the email"
28920
+ }
28921
+ },
28922
+ "required": [
28923
+ "subject",
28924
+ "body"
28925
+ ]
28926
+ },
28927
+ "RedirectTargetEnum": {
28928
+ "type": "string",
28929
+ "description": "Target of the redirect",
28930
+ "enum": [
28931
+ "_self",
28932
+ "_blank",
28933
+ "_parent",
28934
+ "_top",
28935
+ "_unfencedTop"
28936
+ ]
28937
+ },
28938
+ "RedirectDto": {
28939
+ "type": "object",
28940
+ "properties": {
28941
+ "url": {
28942
+ "type": "string",
28943
+ "description": "URL to redirect to"
28944
+ },
28945
+ "target": {
28946
+ "$ref": "#/components/schemas/RedirectTargetEnum"
28947
+ }
28948
+ },
28949
+ "required": [
28950
+ "url"
28951
+ ]
28952
+ },
28953
+ "ActionDto": {
28954
+ "type": "object",
28955
+ "properties": {
28956
+ "label": {
28957
+ "type": "string",
28958
+ "description": "Label for the action"
28959
+ },
28960
+ "redirect": {
28961
+ "description": "Redirect details for the action",
28962
+ "allOf": [
28963
+ {
28964
+ "$ref": "#/components/schemas/RedirectDto"
28965
+ }
28966
+ ]
28967
+ }
28968
+ },
28969
+ "required": [
28970
+ "label"
28971
+ ]
28972
+ },
28973
+ "InAppRenderOutput": {
28974
+ "type": "object",
28975
+ "properties": {
28976
+ "subject": {
28977
+ "type": "string",
28978
+ "description": "Subject of the in-app notification"
28979
+ },
28980
+ "body": {
28981
+ "type": "string",
28982
+ "description": "Body of the in-app notification"
28983
+ },
28984
+ "avatar": {
28985
+ "type": "string",
28986
+ "description": "Avatar for the in-app notification"
28987
+ },
28988
+ "primaryAction": {
28989
+ "description": "Primary action details",
28990
+ "allOf": [
28991
+ {
28992
+ "$ref": "#/components/schemas/ActionDto"
28993
+ }
28994
+ ]
28995
+ },
28996
+ "secondaryAction": {
28997
+ "description": "Secondary action details",
28998
+ "allOf": [
28999
+ {
29000
+ "$ref": "#/components/schemas/ActionDto"
29001
+ }
29002
+ ]
29003
+ },
29004
+ "data": {
29005
+ "type": "object",
29006
+ "description": "Additional data",
29007
+ "additionalProperties": true
29008
+ },
29009
+ "redirect": {
29010
+ "description": "Redirect details",
29011
+ "allOf": [
29012
+ {
29013
+ "$ref": "#/components/schemas/RedirectDto"
29014
+ }
29015
+ ]
29016
+ }
29017
+ },
29018
+ "required": [
29019
+ "body"
29020
+ ]
29021
+ },
29022
+ "SmsRenderOutput": {
29023
+ "type": "object",
29024
+ "properties": {
29025
+ "body": {
29026
+ "type": "string",
29027
+ "description": "Body of the SMS message"
29028
+ }
29029
+ },
29030
+ "required": [
29031
+ "body"
29032
+ ]
29033
+ },
29034
+ "PushRenderOutput": {
29035
+ "type": "object",
29036
+ "properties": {
29037
+ "subject": {
29038
+ "type": "string",
29039
+ "description": "Subject of the push notification"
29040
+ },
29041
+ "body": {
29042
+ "type": "string",
29043
+ "description": "Body of the push notification"
29044
+ }
29045
+ },
29046
+ "required": [
29047
+ "subject",
29048
+ "body"
29049
+ ]
29050
+ },
29051
+ "ChatRenderOutput": {
29052
+ "type": "object",
29053
+ "properties": {
29054
+ "body": {
29055
+ "type": "string",
29056
+ "description": "Body of the chat message"
29057
+ }
29058
+ },
29059
+ "required": [
29060
+ "body"
29061
+ ]
29062
+ },
29063
+ "TimeUnitEnum": {
29064
+ "type": "string",
29065
+ "description": "Time unit",
29066
+ "enum": [
29067
+ "seconds",
29068
+ "minutes",
29069
+ "hours",
29070
+ "days",
29071
+ "weeks",
29072
+ "months"
29073
+ ]
29074
+ },
29075
+ "DigestRegularOutput": {
29076
+ "type": "object",
29077
+ "properties": {
29078
+ "amount": {
29079
+ "type": "number",
29080
+ "description": "Amount of time units"
29081
+ },
29082
+ "unit": {
29083
+ "$ref": "#/components/schemas/TimeUnitEnum"
29084
+ },
29085
+ "digestKey": {
29086
+ "type": "string",
29087
+ "description": "Optional digest key"
29088
+ },
29089
+ "lookBackWindow": {
29090
+ "type": "object",
29091
+ "description": "Look back window configuration"
29092
+ }
29093
+ },
29094
+ "required": [
29095
+ "amount",
29096
+ "unit"
29097
+ ]
29098
+ },
29099
+ "DigestTimedOutput": {
29100
+ "type": "object",
29101
+ "properties": {
29102
+ "cron": {
29103
+ "type": "string",
29104
+ "description": "Cron expression"
29105
+ },
29106
+ "digestKey": {
29107
+ "type": "string",
29108
+ "description": "Optional digest key"
29109
+ }
29110
+ },
29111
+ "required": [
29112
+ "cron"
29113
+ ]
29114
+ },
29115
+ "DelayRenderOutput": {
29116
+ "type": "object",
29117
+ "properties": {
29118
+ "type": {
29119
+ "type": "string",
29120
+ "description": "Type of delay"
29121
+ },
29122
+ "amount": {
29123
+ "type": "number",
29124
+ "description": "Amount of time units"
29125
+ },
29126
+ "unit": {
29127
+ "$ref": "#/components/schemas/TimeUnitEnum"
29128
+ }
29129
+ },
29130
+ "required": [
29131
+ "type",
29132
+ "amount",
29133
+ "unit"
29134
+ ]
29135
+ },
29136
+ "SubscriberResponseDtoOptional": {
29137
+ "type": "object",
29138
+ "properties": {
29139
+ "_id": {
29140
+ "type": "string",
29141
+ "description": "The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier."
29142
+ },
29143
+ "firstName": {
29144
+ "type": "string",
29145
+ "description": "The first name of the subscriber."
29146
+ },
29147
+ "lastName": {
29148
+ "type": "string",
29149
+ "description": "The last name of the subscriber."
29150
+ },
29151
+ "email": {
29152
+ "type": "string",
29153
+ "description": "The email address of the subscriber."
29154
+ },
29155
+ "phone": {
29156
+ "type": "string",
29157
+ "description": "The phone number of the subscriber."
29158
+ },
29159
+ "avatar": {
29160
+ "type": "string",
29161
+ "description": "The URL of the subscriber's avatar image."
29162
+ },
29163
+ "locale": {
29164
+ "type": "string",
29165
+ "description": "The locale setting of the subscriber, indicating their preferred language or region."
29166
+ },
29167
+ "channels": {
29168
+ "description": "An array of channel settings associated with the subscriber.",
29169
+ "type": "array",
29170
+ "items": {
29171
+ "$ref": "#/components/schemas/ChannelSettingsDto"
29172
+ }
29173
+ },
29174
+ "topics": {
29175
+ "description": "An array of topics that the subscriber is subscribed to.",
29176
+ "deprecated": true,
29177
+ "type": "array",
29178
+ "items": {
29179
+ "type": "string"
29180
+ }
29181
+ },
29182
+ "isOnline": {
29183
+ "type": "boolean",
29184
+ "description": "Indicates whether the subscriber is currently online."
29185
+ },
29186
+ "lastOnlineAt": {
29187
+ "type": "string",
29188
+ "description": "The timestamp indicating when the subscriber was last online, in ISO 8601 format."
29189
+ },
29190
+ "__v": {
29191
+ "type": "number",
29192
+ "description": "The version of the subscriber document."
29193
+ },
29194
+ "data": {
29195
+ "type": "object",
29196
+ "description": "Additional custom data for the subscriber",
29197
+ "additionalProperties": true,
29198
+ "nullable": true
29199
+ },
29200
+ "timezone": {
29201
+ "type": "string",
29202
+ "description": "Timezone of the subscriber"
29203
+ }
29204
+ }
29205
+ },
29206
+ "PreviewPayloadDto": {
29207
+ "type": "object",
29208
+ "properties": {
29209
+ "subscriber": {
29210
+ "description": "Partial subscriber information",
29211
+ "allOf": [
29212
+ {
29213
+ "$ref": "#/components/schemas/SubscriberResponseDtoOptional"
29214
+ }
29215
+ ]
29216
+ },
29217
+ "payload": {
29218
+ "type": "object",
29219
+ "description": "Payload data",
29220
+ "additionalProperties": true
29221
+ },
29222
+ "steps": {
29223
+ "type": "object",
29224
+ "description": "Steps data",
29225
+ "additionalProperties": true
29226
+ }
29227
+ }
29228
+ },
29229
+ "GeneratePreviewResponseDto": {
29230
+ "type": "object",
29231
+ "properties": {
29232
+ "previewPayloadExample": {
29233
+ "description": "Preview payload example",
29234
+ "allOf": [
29235
+ {
29236
+ "$ref": "#/components/schemas/PreviewPayloadDto"
29237
+ }
29238
+ ]
29239
+ },
29240
+ "result": {
29241
+ "description": "Preview result",
29242
+ "oneOf": [
29243
+ {
29244
+ "type": "object",
29245
+ "additionalProperties": true
29246
+ },
29247
+ {
29248
+ "properties": {
29249
+ "type": {
29250
+ "enum": [
29251
+ "email"
29252
+ ]
29253
+ },
29254
+ "preview": {
29255
+ "$ref": "#/components/schemas/EmailRenderOutput"
29256
+ }
29257
+ }
29258
+ },
29259
+ {
29260
+ "properties": {
29261
+ "type": {
29262
+ "enum": [
29263
+ "email"
29264
+ ]
29265
+ },
29266
+ "preview": {
29267
+ "$ref": "#/components/schemas/EmailRenderOutput"
29268
+ }
29269
+ }
29270
+ },
29271
+ {
29272
+ "properties": {
29273
+ "type": {
29274
+ "enum": [
29275
+ "in_app"
29276
+ ]
29277
+ },
29278
+ "preview": {
29279
+ "$ref": "#/components/schemas/InAppRenderOutput"
29280
+ }
29281
+ }
29282
+ },
29283
+ {
29284
+ "properties": {
29285
+ "type": {
29286
+ "enum": [
29287
+ "sms"
29288
+ ]
29289
+ },
29290
+ "preview": {
29291
+ "$ref": "#/components/schemas/SmsRenderOutput"
29292
+ }
29293
+ }
29294
+ },
29295
+ {
29296
+ "properties": {
29297
+ "type": {
29298
+ "enum": [
29299
+ "push"
29300
+ ]
29301
+ },
29302
+ "preview": {
29303
+ "$ref": "#/components/schemas/PushRenderOutput"
29304
+ }
29305
+ }
29306
+ },
29307
+ {
29308
+ "properties": {
29309
+ "type": {
29310
+ "enum": [
29311
+ "chat"
29312
+ ]
29313
+ },
29314
+ "preview": {
29315
+ "$ref": "#/components/schemas/ChatRenderOutput"
29316
+ }
29317
+ }
29318
+ },
29319
+ {
29320
+ "properties": {
29321
+ "type": {
29322
+ "enum": [
29323
+ "delay"
29324
+ ]
29325
+ },
29326
+ "preview": {
29327
+ "$ref": "#/components/schemas/DigestRegularOutput"
29328
+ }
29329
+ }
29330
+ },
29331
+ {
29332
+ "properties": {
29333
+ "type": {
29334
+ "enum": [
29335
+ "digest"
29336
+ ]
29337
+ },
29338
+ "preview": {
29339
+ "$ref": "#/components/schemas/DigestRegularOutput"
29340
+ }
29341
+ }
29342
+ }
29343
+ ]
29344
+ }
29345
+ },
29346
+ "required": [
29347
+ "previewPayloadExample",
29348
+ "result"
29349
+ ]
29350
+ },
29351
+ "GeneratePreviewRequestDto": {
29352
+ "type": "object",
29353
+ "properties": {
29354
+ "controlValues": {
29355
+ "type": "object",
29356
+ "description": "Optional control values",
29357
+ "additionalProperties": true
29358
+ },
29359
+ "previewPayload": {
29360
+ "description": "Optional payload for preview generation",
29361
+ "allOf": [
29362
+ {
29363
+ "$ref": "#/components/schemas/PreviewPayloadDto"
29364
+ }
29365
+ ]
29366
+ }
29367
+ }
29368
+ },
29369
+ "PatchWorkflowDto": {
29370
+ "type": "object",
29371
+ "properties": {
29372
+ "active": {
29373
+ "type": "boolean",
29374
+ "description": "Activate or deactivate the workflow"
29375
+ },
29376
+ "name": {
29377
+ "type": "string",
29378
+ "description": "New name for the workflow"
29379
+ },
29380
+ "description": {
29381
+ "type": "string",
29382
+ "description": "Updated description of the workflow"
29383
+ },
29384
+ "tags": {
29385
+ "type": "array",
29386
+ "description": "Tags associated with the workflow",
29387
+ "items": {
29388
+ "type": "string"
29389
+ }
29390
+ }
29391
+ }
29392
+ },
29393
+ "WorkflowTestDataResponseDto": {
29394
+ "type": "object",
29395
+ "properties": {
29396
+ "to": {
29397
+ "description": "JSON Schema for recipient data",
29398
+ "allOf": [
29399
+ {
29400
+ "$ref": "#/components/schemas/JSONSchemaDto"
29401
+ }
29402
+ ]
29403
+ },
29404
+ "payload": {
29405
+ "description": "JSON Schema for payload data",
29406
+ "allOf": [
29407
+ {
29408
+ "$ref": "#/components/schemas/JSONSchemaDto"
29409
+ }
29410
+ ]
29411
+ }
29412
+ },
29413
+ "required": [
29414
+ "to",
29415
+ "payload"
29416
+ ]
27685
29417
  }
27686
29418
  },
27687
29419
  "headers": {