@novu/api 0.5.0 → 0.6.1

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 (225) hide show
  1. package/README.md +124 -68
  2. package/bin/mcp-server.js +223 -173
  3. package/bin/mcp-server.js.map +65 -64
  4. package/docs/sdks/authentication/README.md +17 -17
  5. package/docs/sdks/integrations/README.md +55 -55
  6. package/docs/sdks/novu/README.md +146 -146
  7. package/docs/sdks/novumessages/README.md +34 -34
  8. package/docs/sdks/stats/README.md +14 -14
  9. package/docs/sdks/subscribers/README.md +82 -82
  10. package/jsr.json +1 -1
  11. package/lib/config.d.ts +3 -3
  12. package/lib/config.js +3 -3
  13. package/lib/sdks.d.ts.map +1 -1
  14. package/lib/sdks.js +2 -8
  15. package/lib/sdks.js.map +1 -1
  16. package/lib/security.d.ts +4 -3
  17. package/lib/security.d.ts.map +1 -1
  18. package/lib/security.js +6 -1
  19. package/lib/security.js.map +1 -1
  20. package/mcp-server/extensions.d.ts +11 -0
  21. package/mcp-server/extensions.d.ts.map +1 -0
  22. package/mcp-server/extensions.js +6 -0
  23. package/mcp-server/extensions.js.map +1 -0
  24. package/mcp-server/mcp-server.js +1 -1
  25. package/mcp-server/prompts.d.ts +26 -0
  26. package/mcp-server/prompts.d.ts.map +1 -0
  27. package/mcp-server/prompts.js +48 -0
  28. package/mcp-server/prompts.js.map +1 -0
  29. package/mcp-server/resources.d.ts +9 -4
  30. package/mcp-server/resources.d.ts.map +1 -1
  31. package/mcp-server/resources.js +38 -10
  32. package/mcp-server/resources.js.map +1 -1
  33. package/mcp-server/server.d.ts.map +1 -1
  34. package/mcp-server/server.js +31 -24
  35. package/mcp-server/server.js.map +1 -1
  36. package/mcp-server/tools/integrationsCreate.js +1 -1
  37. package/mcp-server/tools/integrationsDelete.js +1 -1
  38. package/mcp-server/tools/integrationsList.js +1 -1
  39. package/mcp-server/tools/integrationsListActive.js +1 -1
  40. package/mcp-server/tools/integrationsSetAsPrimary.js +1 -1
  41. package/mcp-server/tools/integrationsUpdate.js +1 -1
  42. package/mcp-server/tools/integrationsWebhooksRetrieve.js +1 -1
  43. package/mcp-server/tools/messagesDelete.js +1 -1
  44. package/mcp-server/tools/messagesDeleteByTransactionId.js +1 -1
  45. package/mcp-server/tools/messagesRetrieve.js +1 -1
  46. package/mcp-server/tools/notificationsList.js +1 -1
  47. package/mcp-server/tools/notificationsRetrieve.js +1 -1
  48. package/mcp-server/tools/notificationsStatsGraph.js +1 -1
  49. package/mcp-server/tools/notificationsStatsRetrieve.js +1 -1
  50. package/mcp-server/tools/subscribersAuthenticationChatAccessOauth.js +1 -1
  51. package/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.js +1 -1
  52. package/mcp-server/tools/subscribersCreate.js +1 -1
  53. package/mcp-server/tools/subscribersCreateBulk.js +1 -1
  54. package/mcp-server/tools/subscribersCredentialsAppend.js +1 -1
  55. package/mcp-server/tools/subscribersCredentialsDelete.js +1 -1
  56. package/mcp-server/tools/subscribersCredentialsUpdate.js +1 -1
  57. package/mcp-server/tools/subscribersDelete.js +1 -1
  58. package/mcp-server/tools/subscribersList.js +1 -1
  59. package/mcp-server/tools/subscribersMessagesMarkAll.js +1 -1
  60. package/mcp-server/tools/subscribersMessagesMarkAllAs.js +1 -1
  61. package/mcp-server/tools/subscribersMessagesUpdateAsSeen.js +1 -1
  62. package/mcp-server/tools/subscribersNotificationsFeed.js +1 -1
  63. package/mcp-server/tools/subscribersNotificationsUnseenCount.js +1 -1
  64. package/mcp-server/tools/subscribersPatch.js +1 -1
  65. package/mcp-server/tools/subscribersPreferencesList.js +1 -1
  66. package/mcp-server/tools/subscribersPreferencesUpdate.js +1 -1
  67. package/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.js +1 -1
  68. package/mcp-server/tools/subscribersRetrieve.js +1 -1
  69. package/mcp-server/tools/subscribersSearch.js +1 -1
  70. package/mcp-server/tools/topicsCreate.js +1 -1
  71. package/mcp-server/tools/topicsDelete.js +1 -1
  72. package/mcp-server/tools/topicsList.js +1 -1
  73. package/mcp-server/tools/topicsRename.js +1 -1
  74. package/mcp-server/tools/topicsRetrieve.js +1 -1
  75. package/mcp-server/tools/topicsSubscribersAssign.js +1 -1
  76. package/mcp-server/tools/topicsSubscribersRemove.js +1 -1
  77. package/mcp-server/tools/topicsSubscribersRetrieve.js +1 -1
  78. package/mcp-server/tools.d.ts.map +1 -1
  79. package/mcp-server/tools.js +4 -0
  80. package/mcp-server/tools.js.map +1 -1
  81. package/models/components/activitynotificationjobresponsedto.d.ts +9 -0
  82. package/models/components/activitynotificationjobresponsedto.d.ts.map +1 -1
  83. package/models/components/activitynotificationjobresponsedto.js +2 -0
  84. package/models/components/activitynotificationjobresponsedto.js.map +1 -1
  85. package/models/components/channelsettingsdto.d.ts +8 -8
  86. package/models/components/channelsettingsdto.d.ts.map +1 -1
  87. package/models/components/channelsettingsdto.js +14 -13
  88. package/models/components/channelsettingsdto.js.map +1 -1
  89. package/models/components/index.d.ts +0 -1
  90. package/models/components/index.d.ts.map +1 -1
  91. package/models/components/index.js +0 -1
  92. package/models/components/index.js.map +1 -1
  93. package/models/components/integrationresponsedto.d.ts +8 -8
  94. package/models/components/integrationresponsedto.d.ts.map +1 -1
  95. package/models/components/integrationresponsedto.js +13 -14
  96. package/models/components/integrationresponsedto.js.map +1 -1
  97. package/models/components/markallmessageasrequestdto.d.ts +8 -8
  98. package/models/components/markallmessageasrequestdto.d.ts.map +1 -1
  99. package/models/components/markallmessageasrequestdto.js +14 -13
  100. package/models/components/markallmessageasrequestdto.js.map +1 -1
  101. package/models/components/messagemarkasrequestdto.d.ts +8 -8
  102. package/models/components/messagemarkasrequestdto.d.ts.map +1 -1
  103. package/models/components/messagemarkasrequestdto.js +13 -14
  104. package/models/components/messagemarkasrequestdto.js.map +1 -1
  105. package/models/components/overrides.d.ts +8 -8
  106. package/models/components/overrides.d.ts.map +1 -1
  107. package/models/components/overrides.js +14 -13
  108. package/models/components/overrides.js.map +1 -1
  109. package/models/components/patchsubscriberrequestdto.d.ts +15 -15
  110. package/models/components/patchsubscriberrequestdto.d.ts.map +1 -1
  111. package/models/components/patchsubscriberrequestdto.js +19 -20
  112. package/models/components/patchsubscriberrequestdto.js.map +1 -1
  113. package/models/components/subscriberchanneldto.d.ts +8 -8
  114. package/models/components/subscriberchanneldto.d.ts.map +1 -1
  115. package/models/components/subscriberchanneldto.js +13 -14
  116. package/models/components/subscriberchanneldto.js.map +1 -1
  117. package/models/components/subscriberpayloaddto.d.ts +13 -13
  118. package/models/components/subscriberpayloaddto.d.ts.map +1 -1
  119. package/models/components/subscriberpayloaddto.js +16 -17
  120. package/models/components/subscriberpayloaddto.js.map +1 -1
  121. package/models/operations/eventscontrollercancel.d.ts +2 -3
  122. package/models/operations/eventscontrollercancel.d.ts.map +1 -1
  123. package/models/operations/eventscontrollercancel.js +2 -3
  124. package/models/operations/eventscontrollercancel.js.map +1 -1
  125. package/models/operations/notificationscontrollerlistnotifications.d.ts +2 -2
  126. package/package.json +2 -2
  127. package/sdk/authentication.d.ts +4 -4
  128. package/sdk/authentication.d.ts.map +1 -1
  129. package/sdk/authentication.js +6 -6
  130. package/sdk/authentication.js.map +1 -1
  131. package/sdk/integrations.d.ts +7 -7
  132. package/sdk/integrations.d.ts.map +1 -1
  133. package/sdk/integrations.js +9 -9
  134. package/sdk/integrations.js.map +1 -1
  135. package/sdk/novumessages.d.ts +4 -4
  136. package/sdk/novumessages.d.ts.map +1 -1
  137. package/sdk/novumessages.js +6 -6
  138. package/sdk/novumessages.js.map +1 -1
  139. package/sdk/sdk.d.ts +12 -12
  140. package/sdk/sdk.d.ts.map +1 -1
  141. package/sdk/sdk.js +15 -15
  142. package/sdk/sdk.js.map +1 -1
  143. package/sdk/stats.d.ts +4 -4
  144. package/sdk/stats.d.ts.map +1 -1
  145. package/sdk/stats.js +6 -6
  146. package/sdk/stats.js.map +1 -1
  147. package/sdk/subscribers.d.ts +26 -26
  148. package/sdk/subscribers.d.ts.map +1 -1
  149. package/sdk/subscribers.js +29 -29
  150. package/sdk/subscribers.js.map +1 -1
  151. package/sources/json-development.json +1146 -1148
  152. package/src/lib/config.ts +3 -3
  153. package/src/lib/sdks.ts +2 -7
  154. package/src/lib/security.ts +11 -3
  155. package/src/mcp-server/extensions.ts +17 -0
  156. package/src/mcp-server/mcp-server.ts +1 -1
  157. package/src/mcp-server/prompts.ts +110 -0
  158. package/src/mcp-server/resources.ts +76 -14
  159. package/src/mcp-server/server.ts +41 -24
  160. package/src/mcp-server/tools/integrationsCreate.ts +1 -1
  161. package/src/mcp-server/tools/integrationsDelete.ts +1 -1
  162. package/src/mcp-server/tools/integrationsList.ts +1 -1
  163. package/src/mcp-server/tools/integrationsListActive.ts +1 -1
  164. package/src/mcp-server/tools/integrationsSetAsPrimary.ts +1 -1
  165. package/src/mcp-server/tools/integrationsUpdate.ts +1 -1
  166. package/src/mcp-server/tools/integrationsWebhooksRetrieve.ts +1 -1
  167. package/src/mcp-server/tools/messagesDelete.ts +1 -1
  168. package/src/mcp-server/tools/messagesDeleteByTransactionId.ts +1 -1
  169. package/src/mcp-server/tools/messagesRetrieve.ts +1 -1
  170. package/src/mcp-server/tools/notificationsList.ts +1 -1
  171. package/src/mcp-server/tools/notificationsRetrieve.ts +1 -1
  172. package/src/mcp-server/tools/notificationsStatsGraph.ts +1 -1
  173. package/src/mcp-server/tools/notificationsStatsRetrieve.ts +1 -1
  174. package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauth.ts +1 -1
  175. package/src/mcp-server/tools/subscribersAuthenticationChatAccessOauthCallBack.ts +1 -1
  176. package/src/mcp-server/tools/subscribersCreate.ts +1 -1
  177. package/src/mcp-server/tools/subscribersCreateBulk.ts +1 -1
  178. package/src/mcp-server/tools/subscribersCredentialsAppend.ts +1 -1
  179. package/src/mcp-server/tools/subscribersCredentialsDelete.ts +1 -1
  180. package/src/mcp-server/tools/subscribersCredentialsUpdate.ts +1 -1
  181. package/src/mcp-server/tools/subscribersDelete.ts +1 -1
  182. package/src/mcp-server/tools/subscribersList.ts +1 -1
  183. package/src/mcp-server/tools/subscribersMessagesMarkAll.ts +1 -1
  184. package/src/mcp-server/tools/subscribersMessagesMarkAllAs.ts +1 -1
  185. package/src/mcp-server/tools/subscribersMessagesUpdateAsSeen.ts +1 -1
  186. package/src/mcp-server/tools/subscribersNotificationsFeed.ts +1 -1
  187. package/src/mcp-server/tools/subscribersNotificationsUnseenCount.ts +1 -1
  188. package/src/mcp-server/tools/subscribersPatch.ts +1 -1
  189. package/src/mcp-server/tools/subscribersPreferencesList.ts +1 -1
  190. package/src/mcp-server/tools/subscribersPreferencesUpdate.ts +1 -1
  191. package/src/mcp-server/tools/subscribersPropertiesUpdateOnlineFlag.ts +1 -1
  192. package/src/mcp-server/tools/subscribersRetrieve.ts +1 -1
  193. package/src/mcp-server/tools/subscribersSearch.ts +1 -1
  194. package/src/mcp-server/tools/topicsCreate.ts +1 -1
  195. package/src/mcp-server/tools/topicsDelete.ts +1 -1
  196. package/src/mcp-server/tools/topicsList.ts +1 -1
  197. package/src/mcp-server/tools/topicsRename.ts +1 -1
  198. package/src/mcp-server/tools/topicsRetrieve.ts +1 -1
  199. package/src/mcp-server/tools/topicsSubscribersAssign.ts +1 -1
  200. package/src/mcp-server/tools/topicsSubscribersRemove.ts +1 -1
  201. package/src/mcp-server/tools/topicsSubscribersRetrieve.ts +1 -1
  202. package/src/mcp-server/tools.ts +5 -0
  203. package/src/models/components/activitynotificationjobresponsedto.ts +7 -0
  204. package/src/models/components/channelsettingsdto.ts +14 -18
  205. package/src/models/components/index.ts +0 -1
  206. package/src/models/components/integrationresponsedto.ts +18 -14
  207. package/src/models/components/markallmessageasrequestdto.ts +14 -18
  208. package/src/models/components/messagemarkasrequestdto.ts +18 -14
  209. package/src/models/components/overrides.ts +14 -16
  210. package/src/models/components/patchsubscriberrequestdto.ts +23 -37
  211. package/src/models/components/subscriberchanneldto.ts +18 -14
  212. package/src/models/components/subscriberpayloaddto.ts +37 -19
  213. package/src/models/operations/eventscontrollercancel.ts +4 -5
  214. package/src/models/operations/notificationscontrollerlistnotifications.ts +2 -2
  215. package/src/sdk/authentication.ts +16 -16
  216. package/src/sdk/integrations.ts +17 -17
  217. package/src/sdk/novumessages.ts +16 -16
  218. package/src/sdk/sdk.ts +24 -24
  219. package/src/sdk/stats.ts +10 -10
  220. package/src/sdk/subscribers.ts +61 -61
  221. package/models/components/databooleandto.d.ts +0 -29
  222. package/models/components/databooleandto.d.ts.map +0 -1
  223. package/models/components/databooleandto.js +0 -59
  224. package/models/components/databooleandto.js.map +0 -1
  225. package/src/models/components/databooleandto.ts +0 -62
@@ -1,17 +1,92 @@
1
1
  {
2
2
  "openapi": "3.0.0",
3
3
  "paths": {
4
- "/v1/events/trigger": {
5
- "post": {
6
- "operationId": "EventsController_trigger",
7
- "x-speakeasy-group": "",
8
- "x-speakeasy-usage-example": {
9
- "title": "Trigger Notification Event"
10
- },
11
- "x-speakeasy-name-override": "trigger",
12
- "summary": "Trigger event",
13
- "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ",
4
+ "/v2/subscribers": {
5
+ "get": {
6
+ "operationId": "SubscribersController_searchSubscribers",
7
+ "x-speakeasy-name-override": "search",
8
+ "summary": "Search for subscribers",
14
9
  "parameters": [
10
+ {
11
+ "name": "after",
12
+ "required": false,
13
+ "in": "query",
14
+ "description": "Cursor for pagination indicating the starting point after which to fetch results.",
15
+ "schema": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ {
20
+ "name": "before",
21
+ "required": false,
22
+ "in": "query",
23
+ "description": "Cursor for pagination indicating the ending point before which to fetch results.",
24
+ "schema": {
25
+ "type": "string"
26
+ }
27
+ },
28
+ {
29
+ "name": "email",
30
+ "required": false,
31
+ "in": "query",
32
+ "description": "Email address of the subscriber to filter results.",
33
+ "schema": {
34
+ "type": "string"
35
+ }
36
+ },
37
+ {
38
+ "name": "name",
39
+ "required": false,
40
+ "in": "query",
41
+ "description": "Name of the subscriber to filter results.",
42
+ "schema": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ {
47
+ "name": "phone",
48
+ "required": false,
49
+ "in": "query",
50
+ "description": "Phone number of the subscriber to filter results.",
51
+ "schema": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ {
56
+ "name": "subscriberId",
57
+ "required": false,
58
+ "in": "query",
59
+ "description": "Unique identifier of the subscriber to filter results.",
60
+ "schema": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ {
65
+ "name": "limit",
66
+ "required": false,
67
+ "in": "query",
68
+ "schema": {
69
+ "type": "number"
70
+ }
71
+ },
72
+ {
73
+ "name": "orderDirection",
74
+ "required": false,
75
+ "in": "query",
76
+ "schema": {
77
+ "enum": [
78
+ "ASC",
79
+ "DESC"
80
+ ],
81
+ "type": "string"
82
+ }
83
+ },
84
+ {
85
+ "name": "orderBy",
86
+ "required": false,
87
+ "in": "query",
88
+ "schema": {}
89
+ },
15
90
  {
16
91
  "name": "idempotency-key",
17
92
  "in": "header",
@@ -22,19 +97,9 @@
22
97
  }
23
98
  }
24
99
  ],
25
- "requestBody": {
26
- "required": true,
27
- "content": {
28
- "application/json": {
29
- "schema": {
30
- "$ref": "#/components/schemas/TriggerEventRequestDto"
31
- }
32
- }
33
- }
34
- },
35
100
  "responses": {
36
- "201": {
37
- "description": "Created",
101
+ "200": {
102
+ "description": "OK",
38
103
  "headers": {
39
104
  "Content-Type": {
40
105
  "$ref": "#/components/headers/Content-Type"
@@ -61,7 +126,7 @@
61
126
  "content": {
62
127
  "application/json": {
63
128
  "schema": {
64
- "$ref": "#/components/schemas/TriggerEventResponseDto"
129
+ "$ref": "#/components/schemas/ListSubscribersResponseDto"
65
130
  }
66
131
  }
67
132
  }
@@ -482,25 +547,19 @@
482
547
  }
483
548
  },
484
549
  "tags": [
485
- "Events"
550
+ "Subscribers"
486
551
  ],
487
552
  "security": [
488
553
  {
489
554
  "secretKey": []
490
555
  }
491
556
  ]
492
- }
493
- },
494
- "/v1/events/trigger/bulk": {
557
+ },
495
558
  "post": {
496
- "operationId": "EventsController_triggerBulk",
497
- "x-speakeasy-group": "",
498
- "x-speakeasy-usage-example": {
499
- "title": "Trigger Notification Events in Bulk"
500
- },
501
- "x-speakeasy-name-override": "triggerBulk",
502
- "summary": "Bulk trigger event",
503
- "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ",
559
+ "operationId": "SubscribersController_createSubscriber",
560
+ "x-speakeasy-name-override": "create",
561
+ "summary": "Create subscriber",
562
+ "description": "Create subscriber with the given data",
504
563
  "parameters": [
505
564
  {
506
565
  "name": "idempotency-key",
@@ -517,7 +576,7 @@
517
576
  "content": {
518
577
  "application/json": {
519
578
  "schema": {
520
- "$ref": "#/components/schemas/BulkTriggerEventDto"
579
+ "$ref": "#/components/schemas/CreateSubscriberRequestDto"
521
580
  }
522
581
  }
523
582
  }
@@ -551,10 +610,7 @@
551
610
  "content": {
552
611
  "application/json": {
553
612
  "schema": {
554
- "type": "array",
555
- "items": {
556
- "$ref": "#/components/schemas/TriggerEventResponseDto"
557
- }
613
+ "$ref": "#/components/schemas/SubscriberResponseDto"
558
614
  }
559
615
  }
560
616
  }
@@ -975,7 +1031,7 @@
975
1031
  }
976
1032
  },
977
1033
  "tags": [
978
- "Events"
1034
+ "Subscribers"
979
1035
  ],
980
1036
  "security": [
981
1037
  {
@@ -984,17 +1040,21 @@
984
1040
  ]
985
1041
  }
986
1042
  },
987
- "/v1/events/trigger/broadcast": {
988
- "post": {
989
- "operationId": "EventsController_broadcastEventToAll",
990
- "x-speakeasy-group": "",
991
- "x-speakeasy-usage-example": {
992
- "title": "Broadcast Event to All"
993
- },
994
- "x-speakeasy-name-override": "triggerBroadcast",
995
- "summary": "Broadcast event to all",
996
- "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n In the future could be used to trigger events to a subset of subscribers based on defined filters.",
1043
+ "/v2/subscribers/{subscriberId}": {
1044
+ "get": {
1045
+ "operationId": "SubscribersController_getSubscriber",
1046
+ "x-speakeasy-name-override": "retrieve",
1047
+ "summary": "Get subscriber",
1048
+ "description": "Get subscriber by your internal id used to identify the subscriber",
997
1049
  "parameters": [
1050
+ {
1051
+ "name": "subscriberId",
1052
+ "required": true,
1053
+ "in": "path",
1054
+ "schema": {
1055
+ "type": "string"
1056
+ }
1057
+ },
998
1058
  {
999
1059
  "name": "idempotency-key",
1000
1060
  "in": "header",
@@ -1005,16 +1065,6 @@
1005
1065
  }
1006
1066
  }
1007
1067
  ],
1008
- "requestBody": {
1009
- "required": true,
1010
- "content": {
1011
- "application/json": {
1012
- "schema": {
1013
- "$ref": "#/components/schemas/TriggerEventToAllRequestDto"
1014
- }
1015
- }
1016
- }
1017
- },
1018
1068
  "responses": {
1019
1069
  "200": {
1020
1070
  "description": "OK",
@@ -1044,40 +1094,7 @@
1044
1094
  "content": {
1045
1095
  "application/json": {
1046
1096
  "schema": {
1047
- "$ref": "#/components/schemas/TriggerEventResponseDto"
1048
- }
1049
- }
1050
- }
1051
- },
1052
- "201": {
1053
- "description": "Broadcast request has been registered successfully ",
1054
- "headers": {
1055
- "Content-Type": {
1056
- "$ref": "#/components/headers/Content-Type"
1057
- },
1058
- "RateLimit-Limit": {
1059
- "$ref": "#/components/headers/RateLimit-Limit"
1060
- },
1061
- "RateLimit-Remaining": {
1062
- "$ref": "#/components/headers/RateLimit-Remaining"
1063
- },
1064
- "RateLimit-Reset": {
1065
- "$ref": "#/components/headers/RateLimit-Reset"
1066
- },
1067
- "RateLimit-Policy": {
1068
- "$ref": "#/components/headers/RateLimit-Policy"
1069
- },
1070
- "Idempotency-Key": {
1071
- "$ref": "#/components/headers/Idempotency-Key"
1072
- },
1073
- "Idempotency-Replay": {
1074
- "$ref": "#/components/headers/Idempotency-Replay"
1075
- }
1076
- },
1077
- "content": {
1078
- "application/json": {
1079
- "schema": {
1080
- "$ref": "#/components/schemas/TriggerEventResponseDto"
1097
+ "$ref": "#/components/schemas/SubscriberResponseDto"
1081
1098
  }
1082
1099
  }
1083
1100
  }
@@ -1498,28 +1515,22 @@
1498
1515
  }
1499
1516
  },
1500
1517
  "tags": [
1501
- "Events"
1518
+ "Subscribers"
1502
1519
  ],
1503
1520
  "security": [
1504
1521
  {
1505
1522
  "secretKey": []
1506
1523
  }
1507
1524
  ]
1508
- }
1509
- },
1510
- "/v1/events/trigger/{transactionId}": {
1511
- "delete": {
1512
- "operationId": "EventsController_cancel",
1513
- "x-speakeasy-group": "",
1514
- "x-speakeasy-usage-example": {
1515
- "title": "Cancel Triggered Event"
1516
- },
1517
- "x-speakeasy-name-override": "cancel",
1518
- "summary": "Cancel triggered event",
1519
- "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ",
1525
+ },
1526
+ "patch": {
1527
+ "operationId": "SubscribersController_patchSubscriber",
1528
+ "x-speakeasy-name-override": "patch",
1529
+ "summary": "Patch subscriber",
1530
+ "description": "Patch subscriber by your internal id used to identify the subscriber",
1520
1531
  "parameters": [
1521
1532
  {
1522
- "name": "transactionId",
1533
+ "name": "subscriberId",
1523
1534
  "required": true,
1524
1535
  "in": "path",
1525
1536
  "schema": {
@@ -1536,8 +1547,19 @@
1536
1547
  }
1537
1548
  }
1538
1549
  ],
1550
+ "requestBody": {
1551
+ "required": true,
1552
+ "content": {
1553
+ "application/json": {
1554
+ "schema": {
1555
+ "$ref": "#/components/schemas/PatchSubscriberRequestDto"
1556
+ }
1557
+ }
1558
+ }
1559
+ },
1539
1560
  "responses": {
1540
1561
  "200": {
1562
+ "description": "OK",
1541
1563
  "headers": {
1542
1564
  "Content-Type": {
1543
1565
  "$ref": "#/components/headers/Content-Type"
@@ -1561,11 +1583,10 @@
1561
1583
  "$ref": "#/components/headers/Idempotency-Replay"
1562
1584
  }
1563
1585
  },
1564
- "description": "",
1565
1586
  "content": {
1566
1587
  "application/json": {
1567
1588
  "schema": {
1568
- "$ref": "#/components/schemas/DataBooleanDto"
1589
+ "$ref": "#/components/schemas/SubscriberResponseDto"
1569
1590
  }
1570
1591
  }
1571
1592
  }
@@ -1986,124 +2007,24 @@
1986
2007
  }
1987
2008
  },
1988
2009
  "tags": [
1989
- "Events"
2010
+ "Subscribers"
1990
2011
  ],
1991
2012
  "security": [
1992
2013
  {
1993
2014
  "secretKey": []
1994
2015
  }
1995
2016
  ]
1996
- }
1997
- },
1998
- "/v1/notifications": {
1999
- "get": {
2000
- "operationId": "NotificationsController_listNotifications",
2001
- "summary": "Get notifications",
2017
+ },
2018
+ "delete": {
2019
+ "operationId": "SubscribersController_removeSubscriber",
2020
+ "x-speakeasy-name-override": "delete",
2021
+ "summary": "Delete subscriber",
2022
+ "description": "Deletes a subscriber entity from the Novu platform",
2002
2023
  "parameters": [
2003
2024
  {
2004
- "name": "channels",
2005
- "required": false,
2006
- "in": "query",
2007
- "description": "Array of channel types",
2008
- "schema": {
2009
- "type": "array",
2010
- "items": {
2011
- "$ref": "#/components/schemas/ChannelTypeEnum"
2012
- }
2013
- }
2014
- },
2015
- {
2016
- "name": "templates",
2017
- "required": false,
2018
- "in": "query",
2019
- "description": "Array of template IDs or a single template ID",
2020
- "schema": {
2021
- "type": "array",
2022
- "items": {
2023
- "type": "string"
2024
- }
2025
- }
2026
- },
2027
- {
2028
- "name": "emails",
2029
- "required": false,
2030
- "in": "query",
2031
- "description": "Array of email addresses or a single email address",
2032
- "schema": {
2033
- "type": "array",
2034
- "items": {
2035
- "type": "string"
2036
- }
2037
- }
2038
- },
2039
- {
2040
- "name": "search",
2041
- "required": false,
2042
- "in": "query",
2043
- "deprecated": true,
2044
- "description": "Search term (deprecated)",
2045
- "schema": {
2046
- "type": "string"
2047
- }
2048
- },
2049
- {
2050
- "name": "subscriberIds",
2051
- "required": false,
2052
- "in": "query",
2053
- "description": "Array of subscriber IDs or a single subscriber ID",
2054
- "schema": {
2055
- "type": "array",
2056
- "items": {
2057
- "type": "string"
2058
- }
2059
- }
2060
- },
2061
- {
2062
- "name": "page",
2063
- "required": false,
2064
- "in": "query",
2065
- "description": "Page number for pagination",
2066
- "schema": {
2067
- "minimum": 0,
2068
- "default": 0,
2069
- "type": "number"
2070
- }
2071
- },
2072
- {
2073
- "name": "limit",
2074
- "required": false,
2075
- "in": "query",
2076
- "description": "Limit for pagination",
2077
- "schema": {
2078
- "minimum": 1,
2079
- "maximum": 50,
2080
- "default": 10,
2081
- "type": "number"
2082
- }
2083
- },
2084
- {
2085
- "name": "transactionId",
2086
- "required": false,
2087
- "in": "query",
2088
- "description": "Transaction ID for filtering",
2089
- "schema": {
2090
- "type": "string"
2091
- }
2092
- },
2093
- {
2094
- "name": "after",
2095
- "required": false,
2096
- "in": "query",
2097
- "description": "Date filter for records after this timestamp",
2098
- "schema": {
2099
- "type": "string"
2100
- }
2101
- },
2102
- {
2103
- "name": "before",
2104
- "required": false,
2105
- "in": "query",
2106
- "description": "Date filter for records before this timestamp",
2025
+ "name": "subscriberId",
2026
+ "required": true,
2027
+ "in": "path",
2107
2028
  "schema": {
2108
2029
  "type": "string"
2109
2030
  }
@@ -2120,6 +2041,7 @@
2120
2041
  ],
2121
2042
  "responses": {
2122
2043
  "200": {
2044
+ "description": "OK",
2123
2045
  "headers": {
2124
2046
  "Content-Type": {
2125
2047
  "$ref": "#/components/headers/Content-Type"
@@ -2143,11 +2065,10 @@
2143
2065
  "$ref": "#/components/headers/Idempotency-Replay"
2144
2066
  }
2145
2067
  },
2146
- "description": "",
2147
2068
  "content": {
2148
2069
  "application/json": {
2149
2070
  "schema": {
2150
- "$ref": "#/components/schemas/ActivitiesResponseDto"
2071
+ "$ref": "#/components/schemas/RemoveSubscriberResponseDto"
2151
2072
  }
2152
2073
  }
2153
2074
  }
@@ -2568,7 +2489,7 @@
2568
2489
  }
2569
2490
  },
2570
2491
  "tags": [
2571
- "Notifications"
2492
+ "Subscribers"
2572
2493
  ],
2573
2494
  "security": [
2574
2495
  {
@@ -2577,12 +2498,22 @@
2577
2498
  ]
2578
2499
  }
2579
2500
  },
2580
- "/v1/notifications/stats": {
2501
+ "/v2/subscribers/{subscriberId}/preferences": {
2581
2502
  "get": {
2582
- "operationId": "NotificationsController_getActivityStats",
2583
- "x-speakeasy-group": "Notifications.Stats",
2584
- "summary": "Get notification statistics",
2503
+ "operationId": "SubscribersController_getSubscriberPreferences",
2504
+ "x-speakeasy-name-override": "list",
2505
+ "x-speakeasy-group": "Subscribers.Preferences",
2506
+ "summary": "Get subscriber preferences",
2507
+ "description": "Get subscriber global and workflow specific preferences",
2585
2508
  "parameters": [
2509
+ {
2510
+ "name": "subscriberId",
2511
+ "required": true,
2512
+ "in": "path",
2513
+ "schema": {
2514
+ "type": "string"
2515
+ }
2516
+ },
2586
2517
  {
2587
2518
  "name": "idempotency-key",
2588
2519
  "in": "header",
@@ -2622,7 +2553,7 @@
2622
2553
  "content": {
2623
2554
  "application/json": {
2624
2555
  "schema": {
2625
- "$ref": "#/components/schemas/ActivityStatsResponseDto"
2556
+ "$ref": "#/components/schemas/GetSubscriberPreferencesDto"
2626
2557
  }
2627
2558
  }
2628
2559
  }
@@ -3043,28 +2974,27 @@
3043
2974
  }
3044
2975
  },
3045
2976
  "tags": [
3046
- "Notifications"
2977
+ "Subscribers"
3047
2978
  ],
3048
2979
  "security": [
3049
2980
  {
3050
2981
  "secretKey": []
3051
2982
  }
3052
2983
  ]
3053
- }
3054
- },
3055
- "/v1/notifications/graph/stats": {
3056
- "get": {
3057
- "operationId": "NotificationsController_getActivityGraphStats",
3058
- "x-speakeasy-name-override": "graph",
3059
- "x-speakeasy-group": "Notifications.Stats",
3060
- "summary": "Get notification graph statistics",
2984
+ },
2985
+ "patch": {
2986
+ "operationId": "SubscribersController_updateSubscriberPreferences",
2987
+ "x-speakeasy-name-override": "update",
2988
+ "x-speakeasy-group": "Subscribers.Preferences",
2989
+ "summary": "Update subscriber global or workflow specific preferences",
2990
+ "description": "Update subscriber global or workflow specific preferences",
3061
2991
  "parameters": [
3062
2992
  {
3063
- "name": "days",
3064
- "required": false,
3065
- "in": "query",
2993
+ "name": "subscriberId",
2994
+ "required": true,
2995
+ "in": "path",
3066
2996
  "schema": {
3067
- "type": "number"
2997
+ "type": "string"
3068
2998
  }
3069
2999
  },
3070
3000
  {
@@ -3077,6 +3007,16 @@
3077
3007
  }
3078
3008
  }
3079
3009
  ],
3010
+ "requestBody": {
3011
+ "required": true,
3012
+ "content": {
3013
+ "application/json": {
3014
+ "schema": {
3015
+ "$ref": "#/components/schemas/PatchSubscriberPreferencesDto"
3016
+ }
3017
+ }
3018
+ }
3019
+ },
3080
3020
  "responses": {
3081
3021
  "200": {
3082
3022
  "description": "OK",
@@ -3106,10 +3046,7 @@
3106
3046
  "content": {
3107
3047
  "application/json": {
3108
3048
  "schema": {
3109
- "type": "array",
3110
- "items": {
3111
- "$ref": "#/components/schemas/ActivityGraphStatesResponse"
3112
- }
3049
+ "$ref": "#/components/schemas/GetSubscriberPreferencesDto"
3113
3050
  }
3114
3051
  }
3115
3052
  }
@@ -3530,7 +3467,7 @@
3530
3467
  }
3531
3468
  },
3532
3469
  "tags": [
3533
- "Notifications"
3470
+ "Subscribers"
3534
3471
  ],
3535
3472
  "security": [
3536
3473
  {
@@ -3539,19 +3476,17 @@
3539
3476
  ]
3540
3477
  }
3541
3478
  },
3542
- "/v1/notifications/{notificationId}": {
3543
- "get": {
3544
- "operationId": "NotificationsController_getNotification",
3545
- "summary": "Get notification",
3479
+ "/v1/events/trigger": {
3480
+ "post": {
3481
+ "operationId": "EventsController_trigger",
3482
+ "x-speakeasy-group": "",
3483
+ "x-speakeasy-usage-example": {
3484
+ "title": "Trigger Notification Event"
3485
+ },
3486
+ "x-speakeasy-name-override": "trigger",
3487
+ "summary": "Trigger event",
3488
+ "description": "\n Trigger event is the main (and only) way to send notifications to subscribers. \n The trigger identifier is used to match the particular workflow associated with it. \n Additional information can be passed according the body interface below.\n ",
3546
3489
  "parameters": [
3547
- {
3548
- "name": "notificationId",
3549
- "required": true,
3550
- "in": "path",
3551
- "schema": {
3552
- "type": "string"
3553
- }
3554
- },
3555
3490
  {
3556
3491
  "name": "idempotency-key",
3557
3492
  "in": "header",
@@ -3562,9 +3497,19 @@
3562
3497
  }
3563
3498
  }
3564
3499
  ],
3500
+ "requestBody": {
3501
+ "required": true,
3502
+ "content": {
3503
+ "application/json": {
3504
+ "schema": {
3505
+ "$ref": "#/components/schemas/TriggerEventRequestDto"
3506
+ }
3507
+ }
3508
+ }
3509
+ },
3565
3510
  "responses": {
3566
- "200": {
3567
- "description": "OK",
3511
+ "201": {
3512
+ "description": "Created",
3568
3513
  "headers": {
3569
3514
  "Content-Type": {
3570
3515
  "$ref": "#/components/headers/Content-Type"
@@ -3591,7 +3536,7 @@
3591
3536
  "content": {
3592
3537
  "application/json": {
3593
3538
  "schema": {
3594
- "$ref": "#/components/schemas/ActivityNotificationResponseDto"
3539
+ "$ref": "#/components/schemas/TriggerEventResponseDto"
3595
3540
  }
3596
3541
  }
3597
3542
  }
@@ -4012,7 +3957,7 @@
4012
3957
  }
4013
3958
  },
4014
3959
  "tags": [
4015
- "Notifications"
3960
+ "Events"
4016
3961
  ],
4017
3962
  "security": [
4018
3963
  {
@@ -4021,12 +3966,25 @@
4021
3966
  ]
4022
3967
  }
4023
3968
  },
4024
- "/v1/integrations": {
4025
- "get": {
4026
- "operationId": "IntegrationsController_listIntegrations",
4027
- "summary": "Get integrations",
4028
- "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change",
3969
+ "/v1/events/trigger/{transactionId}": {
3970
+ "delete": {
3971
+ "operationId": "EventsController_cancel",
3972
+ "x-speakeasy-group": "",
3973
+ "x-speakeasy-usage-example": {
3974
+ "title": "Cancel Triggered Event"
3975
+ },
3976
+ "x-speakeasy-name-override": "cancel",
3977
+ "summary": "Cancel triggered event",
3978
+ "description": "\n Using a previously generated transactionId during the event trigger,\n will cancel any active or pending workflows. This is useful to cancel active digests, delays etc...\n ",
4029
3979
  "parameters": [
3980
+ {
3981
+ "name": "transactionId",
3982
+ "required": true,
3983
+ "in": "path",
3984
+ "schema": {
3985
+ "type": "string"
3986
+ }
3987
+ },
4030
3988
  {
4031
3989
  "name": "idempotency-key",
4032
3990
  "in": "header",
@@ -4039,7 +3997,6 @@
4039
3997
  ],
4040
3998
  "responses": {
4041
3999
  "200": {
4042
- "description": "The list of integrations belonging to the organization that are successfully returned.",
4043
4000
  "headers": {
4044
4001
  "Content-Type": {
4045
4002
  "$ref": "#/components/headers/Content-Type"
@@ -4063,13 +4020,11 @@
4063
4020
  "$ref": "#/components/headers/Idempotency-Replay"
4064
4021
  }
4065
4022
  },
4023
+ "description": "",
4066
4024
  "content": {
4067
4025
  "application/json": {
4068
4026
  "schema": {
4069
- "type": "array",
4070
- "items": {
4071
- "$ref": "#/components/schemas/IntegrationResponseDto"
4072
- }
4027
+ "type": "boolean"
4073
4028
  }
4074
4029
  }
4075
4030
  }
@@ -4490,23 +4445,30 @@
4490
4445
  }
4491
4446
  },
4492
4447
  "tags": [
4493
- "Integrations"
4448
+ "Events"
4494
4449
  ],
4495
4450
  "security": [
4496
4451
  {
4497
4452
  "secretKey": []
4498
4453
  }
4499
4454
  ]
4500
- },
4455
+ }
4456
+ },
4457
+ "/v1/events/trigger/broadcast": {
4501
4458
  "post": {
4502
- "operationId": "IntegrationsController_createIntegration",
4503
- "summary": "Create integration",
4504
- "description": "Create an integration for the current environment the user is based on the API key provided",
4505
- "parameters": [
4506
- {
4507
- "name": "idempotency-key",
4508
- "in": "header",
4509
- "description": "A header for idempotency purposes",
4459
+ "operationId": "EventsController_broadcastEventToAll",
4460
+ "x-speakeasy-group": "",
4461
+ "x-speakeasy-usage-example": {
4462
+ "title": "Broadcast Event to All"
4463
+ },
4464
+ "x-speakeasy-name-override": "triggerBroadcast",
4465
+ "summary": "Broadcast event to all",
4466
+ "description": "Trigger a broadcast event to all existing subscribers, could be used to send announcements, etc.\n In the future could be used to trigger events to a subset of subscribers based on defined filters.",
4467
+ "parameters": [
4468
+ {
4469
+ "name": "idempotency-key",
4470
+ "in": "header",
4471
+ "description": "A header for idempotency purposes",
4510
4472
  "required": false,
4511
4473
  "schema": {
4512
4474
  "type": "string"
@@ -4518,14 +4480,47 @@
4518
4480
  "content": {
4519
4481
  "application/json": {
4520
4482
  "schema": {
4521
- "$ref": "#/components/schemas/CreateIntegrationRequestDto"
4483
+ "$ref": "#/components/schemas/TriggerEventToAllRequestDto"
4522
4484
  }
4523
4485
  }
4524
4486
  }
4525
4487
  },
4526
4488
  "responses": {
4489
+ "200": {
4490
+ "description": "OK",
4491
+ "headers": {
4492
+ "Content-Type": {
4493
+ "$ref": "#/components/headers/Content-Type"
4494
+ },
4495
+ "RateLimit-Limit": {
4496
+ "$ref": "#/components/headers/RateLimit-Limit"
4497
+ },
4498
+ "RateLimit-Remaining": {
4499
+ "$ref": "#/components/headers/RateLimit-Remaining"
4500
+ },
4501
+ "RateLimit-Reset": {
4502
+ "$ref": "#/components/headers/RateLimit-Reset"
4503
+ },
4504
+ "RateLimit-Policy": {
4505
+ "$ref": "#/components/headers/RateLimit-Policy"
4506
+ },
4507
+ "Idempotency-Key": {
4508
+ "$ref": "#/components/headers/Idempotency-Key"
4509
+ },
4510
+ "Idempotency-Replay": {
4511
+ "$ref": "#/components/headers/Idempotency-Replay"
4512
+ }
4513
+ },
4514
+ "content": {
4515
+ "application/json": {
4516
+ "schema": {
4517
+ "$ref": "#/components/schemas/TriggerEventResponseDto"
4518
+ }
4519
+ }
4520
+ }
4521
+ },
4527
4522
  "201": {
4528
- "description": "Created",
4523
+ "description": "Broadcast request has been registered successfully ",
4529
4524
  "headers": {
4530
4525
  "Content-Type": {
4531
4526
  "$ref": "#/components/headers/Content-Type"
@@ -4552,7 +4547,7 @@
4552
4547
  "content": {
4553
4548
  "application/json": {
4554
4549
  "schema": {
4555
- "$ref": "#/components/schemas/IntegrationResponseDto"
4550
+ "$ref": "#/components/schemas/TriggerEventResponseDto"
4556
4551
  }
4557
4552
  }
4558
4553
  }
@@ -4973,7 +4968,7 @@
4973
4968
  }
4974
4969
  },
4975
4970
  "tags": [
4976
- "Integrations"
4971
+ "Events"
4977
4972
  ],
4978
4973
  "security": [
4979
4974
  {
@@ -4982,12 +4977,16 @@
4982
4977
  ]
4983
4978
  }
4984
4979
  },
4985
- "/v1/integrations/active": {
4986
- "get": {
4987
- "operationId": "IntegrationsController_getActiveIntegrations",
4988
- "x-speakeasy-name-override": "listActive",
4989
- "summary": "Get active integrations",
4990
- "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change",
4980
+ "/v1/events/trigger/bulk": {
4981
+ "post": {
4982
+ "operationId": "EventsController_triggerBulk",
4983
+ "x-speakeasy-group": "",
4984
+ "x-speakeasy-usage-example": {
4985
+ "title": "Trigger Notification Events in Bulk"
4986
+ },
4987
+ "x-speakeasy-name-override": "triggerBulk",
4988
+ "summary": "Bulk trigger event",
4989
+ "description": "\n Using this endpoint you can trigger multiple events at once, to avoid multiple calls to the API.\n The bulk API is limited to 100 events per request.\n ",
4991
4990
  "parameters": [
4992
4991
  {
4993
4992
  "name": "idempotency-key",
@@ -4999,9 +4998,19 @@
4999
4998
  }
5000
4999
  }
5001
5000
  ],
5001
+ "requestBody": {
5002
+ "required": true,
5003
+ "content": {
5004
+ "application/json": {
5005
+ "schema": {
5006
+ "$ref": "#/components/schemas/BulkTriggerEventDto"
5007
+ }
5008
+ }
5009
+ }
5010
+ },
5002
5011
  "responses": {
5003
- "200": {
5004
- "description": "The list of active integrations belonging to the organization that are successfully returned.",
5012
+ "201": {
5013
+ "description": "Created",
5005
5014
  "headers": {
5006
5015
  "Content-Type": {
5007
5016
  "$ref": "#/components/headers/Content-Type"
@@ -5030,7 +5039,7 @@
5030
5039
  "schema": {
5031
5040
  "type": "array",
5032
5041
  "items": {
5033
- "$ref": "#/components/schemas/IntegrationResponseDto"
5042
+ "$ref": "#/components/schemas/TriggerEventResponseDto"
5034
5043
  }
5035
5044
  }
5036
5045
  }
@@ -5452,7 +5461,7 @@
5452
5461
  }
5453
5462
  },
5454
5463
  "tags": [
5455
- "Integrations"
5464
+ "Events"
5456
5465
  ],
5457
5466
  "security": [
5458
5467
  {
@@ -5461,21 +5470,12 @@
5461
5470
  ]
5462
5471
  }
5463
5472
  },
5464
- "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": {
5473
+ "/v1/integrations": {
5465
5474
  "get": {
5466
- "operationId": "IntegrationsController_getWebhookSupportStatus",
5467
- "x-speakeasy-group": "Integrations.Webhooks",
5468
- "summary": "Get webhook support status for provider",
5469
- "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value",
5475
+ "operationId": "IntegrationsController_listIntegrations",
5476
+ "summary": "Get integrations",
5477
+ "description": "Return all the integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change",
5470
5478
  "parameters": [
5471
- {
5472
- "name": "providerOrIntegrationId",
5473
- "required": true,
5474
- "in": "path",
5475
- "schema": {
5476
- "type": "string"
5477
- }
5478
- },
5479
5479
  {
5480
5480
  "name": "idempotency-key",
5481
5481
  "in": "header",
@@ -5488,7 +5488,7 @@
5488
5488
  ],
5489
5489
  "responses": {
5490
5490
  "200": {
5491
- "description": "The status of the webhook for the provider requested",
5491
+ "description": "The list of integrations belonging to the organization that are successfully returned.",
5492
5492
  "headers": {
5493
5493
  "Content-Type": {
5494
5494
  "$ref": "#/components/headers/Content-Type"
@@ -5515,7 +5515,10 @@
5515
5515
  "content": {
5516
5516
  "application/json": {
5517
5517
  "schema": {
5518
- "type": "boolean"
5518
+ "type": "array",
5519
+ "items": {
5520
+ "$ref": "#/components/schemas/IntegrationResponseDto"
5521
+ }
5519
5522
  }
5520
5523
  }
5521
5524
  }
@@ -5943,21 +5946,12 @@
5943
5946
  "secretKey": []
5944
5947
  }
5945
5948
  ]
5946
- }
5947
- },
5948
- "/v1/integrations/{integrationId}": {
5949
- "put": {
5950
- "operationId": "IntegrationsController_updateIntegrationById",
5951
- "summary": "Update integration",
5949
+ },
5950
+ "post": {
5951
+ "operationId": "IntegrationsController_createIntegration",
5952
+ "summary": "Create integration",
5953
+ "description": "Create an integration for the current environment the user is based on the API key provided",
5952
5954
  "parameters": [
5953
- {
5954
- "name": "integrationId",
5955
- "required": true,
5956
- "in": "path",
5957
- "schema": {
5958
- "type": "string"
5959
- }
5960
- },
5961
5955
  {
5962
5956
  "name": "idempotency-key",
5963
5957
  "in": "header",
@@ -5973,14 +5967,14 @@
5973
5967
  "content": {
5974
5968
  "application/json": {
5975
5969
  "schema": {
5976
- "$ref": "#/components/schemas/UpdateIntegrationRequestDto"
5970
+ "$ref": "#/components/schemas/CreateIntegrationRequestDto"
5977
5971
  }
5978
5972
  }
5979
5973
  }
5980
5974
  },
5981
5975
  "responses": {
5982
- "200": {
5983
- "description": "OK",
5976
+ "201": {
5977
+ "description": "Created",
5984
5978
  "headers": {
5985
5979
  "Content-Type": {
5986
5980
  "$ref": "#/components/headers/Content-Type"
@@ -6112,7 +6106,7 @@
6112
6106
  }
6113
6107
  },
6114
6108
  "404": {
6115
- "description": "The integration with the integrationId provided does not exist in the database.",
6109
+ "description": "Not Found",
6116
6110
  "headers": {
6117
6111
  "Content-Type": {
6118
6112
  "$ref": "#/components/headers/Content-Type"
@@ -6135,6 +6129,13 @@
6135
6129
  "Idempotency-Replay": {
6136
6130
  "$ref": "#/components/headers/Idempotency-Replay"
6137
6131
  }
6132
+ },
6133
+ "content": {
6134
+ "application/json": {
6135
+ "schema": {
6136
+ "$ref": "#/components/schemas/ErrorDto"
6137
+ }
6138
+ }
6138
6139
  }
6139
6140
  },
6140
6141
  "405": {
@@ -6428,10 +6429,12 @@
6428
6429
  "secretKey": []
6429
6430
  }
6430
6431
  ]
6431
- },
6432
- "delete": {
6433
- "operationId": "IntegrationsController_removeIntegration",
6434
- "summary": "Delete integration",
6432
+ }
6433
+ },
6434
+ "/v1/integrations/{integrationId}": {
6435
+ "put": {
6436
+ "operationId": "IntegrationsController_updateIntegrationById",
6437
+ "summary": "Update integration",
6435
6438
  "parameters": [
6436
6439
  {
6437
6440
  "name": "integrationId",
@@ -6451,6 +6454,16 @@
6451
6454
  }
6452
6455
  }
6453
6456
  ],
6457
+ "requestBody": {
6458
+ "required": true,
6459
+ "content": {
6460
+ "application/json": {
6461
+ "schema": {
6462
+ "$ref": "#/components/schemas/UpdateIntegrationRequestDto"
6463
+ }
6464
+ }
6465
+ }
6466
+ },
6454
6467
  "responses": {
6455
6468
  "200": {
6456
6469
  "description": "OK",
@@ -6480,10 +6493,7 @@
6480
6493
  "content": {
6481
6494
  "application/json": {
6482
6495
  "schema": {
6483
- "type": "array",
6484
- "items": {
6485
- "$ref": "#/components/schemas/IntegrationResponseDto"
6486
- }
6496
+ "$ref": "#/components/schemas/IntegrationResponseDto"
6487
6497
  }
6488
6498
  }
6489
6499
  }
@@ -6588,7 +6598,7 @@
6588
6598
  }
6589
6599
  },
6590
6600
  "404": {
6591
- "description": "Not Found",
6601
+ "description": "The integration with the integrationId provided does not exist in the database.",
6592
6602
  "headers": {
6593
6603
  "Content-Type": {
6594
6604
  "$ref": "#/components/headers/Content-Type"
@@ -6611,13 +6621,6 @@
6611
6621
  "Idempotency-Replay": {
6612
6622
  "$ref": "#/components/headers/Idempotency-Replay"
6613
6623
  }
6614
- },
6615
- "content": {
6616
- "application/json": {
6617
- "schema": {
6618
- "$ref": "#/components/schemas/ErrorDto"
6619
- }
6620
- }
6621
6624
  }
6622
6625
  },
6623
6626
  "405": {
@@ -6911,13 +6914,10 @@
6911
6914
  "secretKey": []
6912
6915
  }
6913
6916
  ]
6914
- }
6915
- },
6916
- "/v1/integrations/{integrationId}/set-primary": {
6917
- "post": {
6918
- "operationId": "IntegrationsController_setIntegrationAsPrimary",
6919
- "x-speakeasy-name-override": "setAsPrimary",
6920
- "summary": "Set integration as primary",
6917
+ },
6918
+ "delete": {
6919
+ "operationId": "IntegrationsController_removeIntegration",
6920
+ "summary": "Delete integration",
6921
6921
  "parameters": [
6922
6922
  {
6923
6923
  "name": "integrationId",
@@ -6966,7 +6966,10 @@
6966
6966
  "content": {
6967
6967
  "application/json": {
6968
6968
  "schema": {
6969
- "$ref": "#/components/schemas/IntegrationResponseDto"
6969
+ "type": "array",
6970
+ "items": {
6971
+ "$ref": "#/components/schemas/IntegrationResponseDto"
6972
+ }
6970
6973
  }
6971
6974
  }
6972
6975
  }
@@ -7071,7 +7074,7 @@
7071
7074
  }
7072
7075
  },
7073
7076
  "404": {
7074
- "description": "The integration with the integrationId provided does not exist in the database.",
7077
+ "description": "Not Found",
7075
7078
  "headers": {
7076
7079
  "Content-Type": {
7077
7080
  "$ref": "#/components/headers/Content-Type"
@@ -7094,6 +7097,13 @@
7094
7097
  "Idempotency-Replay": {
7095
7098
  "$ref": "#/components/headers/Idempotency-Replay"
7096
7099
  }
7100
+ },
7101
+ "content": {
7102
+ "application/json": {
7103
+ "schema": {
7104
+ "$ref": "#/components/schemas/ErrorDto"
7105
+ }
7106
+ }
7097
7107
  }
7098
7108
  },
7099
7109
  "405": {
@@ -7389,46 +7399,18 @@
7389
7399
  ]
7390
7400
  }
7391
7401
  },
7392
- "/v1/subscribers": {
7393
- "get": {
7394
- "operationId": "SubscribersV1Controller_listSubscribers",
7395
- "x-speakeasy-pagination": {
7396
- "type": "offsetLimit",
7397
- "inputs": [
7398
- {
7399
- "name": "page",
7400
- "in": "parameters",
7401
- "type": "page"
7402
- },
7403
- {
7404
- "name": "limit",
7405
- "in": "parameters",
7406
- "type": "limit"
7407
- }
7408
- ],
7409
- "outputs": {
7410
- "results": "$.data.resultArray"
7411
- }
7412
- },
7413
- "summary": "Get subscribers",
7414
- "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter",
7402
+ "/v1/integrations/{integrationId}/set-primary": {
7403
+ "post": {
7404
+ "operationId": "IntegrationsController_setIntegrationAsPrimary",
7405
+ "x-speakeasy-name-override": "setAsPrimary",
7406
+ "summary": "Set integration as primary",
7415
7407
  "parameters": [
7416
7408
  {
7417
- "name": "page",
7418
- "required": false,
7419
- "in": "query",
7420
- "schema": {
7421
- "type": "number"
7422
- }
7423
- },
7424
- {
7425
- "name": "limit",
7426
- "required": false,
7427
- "in": "query",
7409
+ "name": "integrationId",
7410
+ "required": true,
7411
+ "in": "path",
7428
7412
  "schema": {
7429
- "maximum": 100,
7430
- "default": 10,
7431
- "type": "number"
7413
+ "type": "string"
7432
7414
  }
7433
7415
  },
7434
7416
  {
@@ -7443,6 +7425,7 @@
7443
7425
  ],
7444
7426
  "responses": {
7445
7427
  "200": {
7428
+ "description": "OK",
7446
7429
  "headers": {
7447
7430
  "Content-Type": {
7448
7431
  "$ref": "#/components/headers/Content-Type"
@@ -7466,25 +7449,10 @@
7466
7449
  "$ref": "#/components/headers/Idempotency-Replay"
7467
7450
  }
7468
7451
  },
7469
- "description": "",
7470
7452
  "content": {
7471
7453
  "application/json": {
7472
7454
  "schema": {
7473
- "allOf": [
7474
- {
7475
- "$ref": "#/components/schemas/PaginatedResponseDto"
7476
- },
7477
- {
7478
- "properties": {
7479
- "data": {
7480
- "type": "array",
7481
- "items": {
7482
- "$ref": "#/components/schemas/SubscriberResponseDto"
7483
- }
7484
- }
7485
- }
7486
- }
7487
- ]
7455
+ "$ref": "#/components/schemas/IntegrationResponseDto"
7488
7456
  }
7489
7457
  }
7490
7458
  }
@@ -7589,7 +7557,7 @@
7589
7557
  }
7590
7558
  },
7591
7559
  "404": {
7592
- "description": "Not Found",
7560
+ "description": "The integration with the integrationId provided does not exist in the database.",
7593
7561
  "headers": {
7594
7562
  "Content-Type": {
7595
7563
  "$ref": "#/components/headers/Content-Type"
@@ -7612,13 +7580,6 @@
7612
7580
  "Idempotency-Replay": {
7613
7581
  "$ref": "#/components/headers/Idempotency-Replay"
7614
7582
  }
7615
- },
7616
- "content": {
7617
- "application/json": {
7618
- "schema": {
7619
- "$ref": "#/components/schemas/ErrorDto"
7620
- }
7621
- }
7622
7583
  }
7623
7584
  },
7624
7585
  "405": {
@@ -7905,7 +7866,7 @@
7905
7866
  }
7906
7867
  },
7907
7868
  "tags": [
7908
- "Subscribers"
7869
+ "Integrations"
7909
7870
  ],
7910
7871
  "security": [
7911
7872
  {
@@ -7914,12 +7875,12 @@
7914
7875
  ]
7915
7876
  }
7916
7877
  },
7917
- "/v1/subscribers/bulk": {
7918
- "post": {
7919
- "operationId": "SubscribersV1Controller_bulkCreateSubscribers",
7920
- "x-speakeasy-name-override": "createBulk",
7921
- "summary": "Bulk create subscribers",
7922
- "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ",
7878
+ "/v1/integrations/active": {
7879
+ "get": {
7880
+ "operationId": "IntegrationsController_getActiveIntegrations",
7881
+ "x-speakeasy-name-override": "listActive",
7882
+ "summary": "Get active integrations",
7883
+ "description": "Return all the active integrations the user has created for that organization. Review v.0.17.0 changelog for a breaking change",
7923
7884
  "parameters": [
7924
7885
  {
7925
7886
  "name": "idempotency-key",
@@ -7931,19 +7892,9 @@
7931
7892
  }
7932
7893
  }
7933
7894
  ],
7934
- "requestBody": {
7935
- "required": true,
7936
- "content": {
7937
- "application/json": {
7938
- "schema": {
7939
- "$ref": "#/components/schemas/BulkSubscriberCreateDto"
7940
- }
7941
- }
7942
- }
7943
- },
7944
7895
  "responses": {
7945
- "201": {
7946
- "description": "Created",
7896
+ "200": {
7897
+ "description": "The list of active integrations belonging to the organization that are successfully returned.",
7947
7898
  "headers": {
7948
7899
  "Content-Type": {
7949
7900
  "$ref": "#/components/headers/Content-Type"
@@ -7970,7 +7921,10 @@
7970
7921
  "content": {
7971
7922
  "application/json": {
7972
7923
  "schema": {
7973
- "$ref": "#/components/schemas/BulkCreateSubscriberResponseDto"
7924
+ "type": "array",
7925
+ "items": {
7926
+ "$ref": "#/components/schemas/IntegrationResponseDto"
7927
+ }
7974
7928
  }
7975
7929
  }
7976
7930
  }
@@ -8391,7 +8345,7 @@
8391
8345
  }
8392
8346
  },
8393
8347
  "tags": [
8394
- "Subscribers"
8348
+ "Integrations"
8395
8349
  ],
8396
8350
  "security": [
8397
8351
  {
@@ -8400,15 +8354,15 @@
8400
8354
  ]
8401
8355
  }
8402
8356
  },
8403
- "/v1/subscribers/{subscriberId}/credentials": {
8404
- "put": {
8405
- "operationId": "SubscribersV1Controller_updateSubscriberChannel",
8406
- "x-speakeasy-group": "Subscribers.Credentials",
8407
- "summary": "Update subscriber credentials",
8408
- "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.",
8357
+ "/v1/integrations/webhook/provider/{providerOrIntegrationId}/status": {
8358
+ "get": {
8359
+ "operationId": "IntegrationsController_getWebhookSupportStatus",
8360
+ "x-speakeasy-group": "Integrations.Webhooks",
8361
+ "summary": "Get webhook support status for provider",
8362
+ "description": "Return the status of the webhook for this provider, if it is supported or if it is not based on a boolean value",
8409
8363
  "parameters": [
8410
8364
  {
8411
- "name": "subscriberId",
8365
+ "name": "providerOrIntegrationId",
8412
8366
  "required": true,
8413
8367
  "in": "path",
8414
8368
  "schema": {
@@ -8425,19 +8379,9 @@
8425
8379
  }
8426
8380
  }
8427
8381
  ],
8428
- "requestBody": {
8429
- "required": true,
8430
- "content": {
8431
- "application/json": {
8432
- "schema": {
8433
- "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"
8434
- }
8435
- }
8436
- }
8437
- },
8438
8382
  "responses": {
8439
8383
  "200": {
8440
- "description": "OK",
8384
+ "description": "The status of the webhook for the provider requested",
8441
8385
  "headers": {
8442
8386
  "Content-Type": {
8443
8387
  "$ref": "#/components/headers/Content-Type"
@@ -8464,7 +8408,7 @@
8464
8408
  "content": {
8465
8409
  "application/json": {
8466
8410
  "schema": {
8467
- "$ref": "#/components/schemas/SubscriberResponseDto"
8411
+ "type": "boolean"
8468
8412
  }
8469
8413
  }
8470
8414
  }
@@ -8885,29 +8829,66 @@
8885
8829
  }
8886
8830
  },
8887
8831
  "tags": [
8888
- "Subscribers"
8832
+ "Integrations"
8889
8833
  ],
8890
8834
  "security": [
8891
8835
  {
8892
8836
  "secretKey": []
8893
8837
  }
8894
8838
  ]
8895
- },
8896
- "patch": {
8897
- "operationId": "SubscribersV1Controller_modifySubscriberChannel",
8898
- "x-speakeasy-name-override": "append",
8899
- "x-speakeasy-group": "Subscribers.Credentials",
8900
- "summary": "Modify subscriber credentials",
8901
- "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n This endpoint appends provided credentials and deviceTokens to the existing ones.",
8839
+ }
8840
+ },
8841
+ "/v1/messages": {
8842
+ "get": {
8843
+ "operationId": "MessagesController_getMessages",
8844
+ "summary": "Get messages",
8845
+ "description": "Returns a list of messages, could paginate using the `page` query parameter",
8902
8846
  "parameters": [
8847
+ {
8848
+ "name": "channel",
8849
+ "required": false,
8850
+ "in": "query",
8851
+ "schema": {
8852
+ "$ref": "#/components/schemas/ChannelTypeEnum"
8853
+ }
8854
+ },
8903
8855
  {
8904
8856
  "name": "subscriberId",
8905
- "required": true,
8906
- "in": "path",
8857
+ "required": false,
8858
+ "in": "query",
8907
8859
  "schema": {
8908
8860
  "type": "string"
8909
8861
  }
8910
8862
  },
8863
+ {
8864
+ "name": "transactionId",
8865
+ "required": false,
8866
+ "in": "query",
8867
+ "schema": {
8868
+ "type": "array",
8869
+ "items": {
8870
+ "type": "string"
8871
+ }
8872
+ }
8873
+ },
8874
+ {
8875
+ "name": "page",
8876
+ "required": false,
8877
+ "in": "query",
8878
+ "schema": {
8879
+ "default": 0,
8880
+ "type": "number"
8881
+ }
8882
+ },
8883
+ {
8884
+ "name": "limit",
8885
+ "required": false,
8886
+ "in": "query",
8887
+ "schema": {
8888
+ "default": 10,
8889
+ "type": "number"
8890
+ }
8891
+ },
8911
8892
  {
8912
8893
  "name": "idempotency-key",
8913
8894
  "in": "header",
@@ -8918,19 +8899,8 @@
8918
8899
  }
8919
8900
  }
8920
8901
  ],
8921
- "requestBody": {
8922
- "required": true,
8923
- "content": {
8924
- "application/json": {
8925
- "schema": {
8926
- "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"
8927
- }
8928
- }
8929
- }
8930
- },
8931
8902
  "responses": {
8932
8903
  "200": {
8933
- "description": "OK",
8934
8904
  "headers": {
8935
8905
  "Content-Type": {
8936
8906
  "$ref": "#/components/headers/Content-Type"
@@ -8954,10 +8924,11 @@
8954
8924
  "$ref": "#/components/headers/Idempotency-Replay"
8955
8925
  }
8956
8926
  },
8927
+ "description": "",
8957
8928
  "content": {
8958
8929
  "application/json": {
8959
8930
  "schema": {
8960
- "$ref": "#/components/schemas/SubscriberResponseDto"
8931
+ "$ref": "#/components/schemas/ActivitiesResponseDto"
8961
8932
  }
8962
8933
  }
8963
8934
  }
@@ -9378,7 +9349,7 @@
9378
9349
  }
9379
9350
  },
9380
9351
  "tags": [
9381
- "Subscribers"
9352
+ "Messages"
9382
9353
  ],
9383
9354
  "security": [
9384
9355
  {
@@ -9387,23 +9358,14 @@
9387
9358
  ]
9388
9359
  }
9389
9360
  },
9390
- "/v1/subscribers/{subscriberId}/credentials/{providerId}": {
9361
+ "/v1/messages/{messageId}": {
9391
9362
  "delete": {
9392
- "operationId": "SubscribersV1Controller_deleteSubscriberCredentials",
9393
- "x-speakeasy-group": "Subscribers.Credentials",
9394
- "summary": "Delete subscriber credentials by providerId",
9395
- "description": "Delete subscriber credentials such as slack and expo tokens.",
9363
+ "operationId": "MessagesController_deleteMessage",
9364
+ "summary": "Delete message",
9365
+ "description": "Deletes a message entity from the Novu platform",
9396
9366
  "parameters": [
9397
9367
  {
9398
- "name": "subscriberId",
9399
- "required": true,
9400
- "in": "path",
9401
- "schema": {
9402
- "type": "string"
9403
- }
9404
- },
9405
- {
9406
- "name": "providerId",
9368
+ "name": "messageId",
9407
9369
  "required": true,
9408
9370
  "in": "path",
9409
9371
  "schema": {
@@ -9421,7 +9383,8 @@
9421
9383
  }
9422
9384
  ],
9423
9385
  "responses": {
9424
- "204": {
9386
+ "200": {
9387
+ "description": "OK",
9425
9388
  "headers": {
9426
9389
  "Content-Type": {
9427
9390
  "$ref": "#/components/headers/Content-Type"
@@ -9445,7 +9408,13 @@
9445
9408
  "$ref": "#/components/headers/Idempotency-Replay"
9446
9409
  }
9447
9410
  },
9448
- "description": ""
9411
+ "content": {
9412
+ "application/json": {
9413
+ "schema": {
9414
+ "$ref": "#/components/schemas/DeleteMessageResponseDto"
9415
+ }
9416
+ }
9417
+ }
9449
9418
  },
9450
9419
  "400": {
9451
9420
  "description": "Bad Request",
@@ -9863,7 +9832,7 @@
9863
9832
  }
9864
9833
  },
9865
9834
  "tags": [
9866
- "Subscribers"
9835
+ "Messages"
9867
9836
  ],
9868
9837
  "security": [
9869
9838
  {
@@ -9872,16 +9841,31 @@
9872
9841
  ]
9873
9842
  }
9874
9843
  },
9875
- "/v1/subscribers/{subscriberId}/online-status": {
9876
- "patch": {
9877
- "operationId": "SubscribersV1Controller_updateSubscriberOnlineFlag",
9878
- "x-speakeasy-name-override": "updateOnlineFlag",
9879
- "x-speakeasy-group": "Subscribers.properties",
9880
- "summary": "Update subscriber online status",
9881
- "description": "Used to update the subscriber isOnline flag.",
9844
+ "/v1/messages/transaction/{transactionId}": {
9845
+ "delete": {
9846
+ "operationId": "MessagesController_deleteMessagesByTransactionId",
9847
+ "x-speakeasy-name-override": "deleteByTransactionId",
9848
+ "summary": "Delete messages by transactionId",
9849
+ "description": "Deletes messages entity from the Novu platform using TransactionId of message",
9882
9850
  "parameters": [
9883
9851
  {
9884
- "name": "subscriberId",
9852
+ "name": "channel",
9853
+ "required": false,
9854
+ "in": "query",
9855
+ "description": "The channel of the message to be deleted",
9856
+ "schema": {
9857
+ "enum": [
9858
+ "in_app",
9859
+ "email",
9860
+ "sms",
9861
+ "chat",
9862
+ "push"
9863
+ ],
9864
+ "type": "string"
9865
+ }
9866
+ },
9867
+ {
9868
+ "name": "transactionId",
9885
9869
  "required": true,
9886
9870
  "in": "path",
9887
9871
  "schema": {
@@ -9898,19 +9882,8 @@
9898
9882
  }
9899
9883
  }
9900
9884
  ],
9901
- "requestBody": {
9902
- "required": true,
9903
- "content": {
9904
- "application/json": {
9905
- "schema": {
9906
- "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto"
9907
- }
9908
- }
9909
- }
9910
- },
9911
9885
  "responses": {
9912
- "200": {
9913
- "description": "OK",
9886
+ "204": {
9914
9887
  "headers": {
9915
9888
  "Content-Type": {
9916
9889
  "$ref": "#/components/headers/Content-Type"
@@ -9934,13 +9907,7 @@
9934
9907
  "$ref": "#/components/headers/Idempotency-Replay"
9935
9908
  }
9936
9909
  },
9937
- "content": {
9938
- "application/json": {
9939
- "schema": {
9940
- "$ref": "#/components/schemas/SubscriberResponseDto"
9941
- }
9942
- }
9943
- }
9910
+ "description": ""
9944
9911
  },
9945
9912
  "400": {
9946
9913
  "description": "Bad Request",
@@ -10358,7 +10325,7 @@
10358
10325
  }
10359
10326
  },
10360
10327
  "tags": [
10361
- "Subscribers"
10328
+ "Messages"
10362
10329
  ],
10363
10330
  "security": [
10364
10331
  {
@@ -10367,26 +10334,77 @@
10367
10334
  ]
10368
10335
  }
10369
10336
  },
10370
- "/v1/subscribers/{subscriberId}/notifications/feed": {
10337
+ "/v1/notifications": {
10371
10338
  "get": {
10372
- "operationId": "SubscribersV1Controller_getNotificationsFeed",
10373
- "x-speakeasy-name-override": "feed",
10374
- "x-speakeasy-group": "Subscribers.Notifications",
10375
- "summary": "Get in-app notification feed for a particular subscriber",
10339
+ "operationId": "NotificationsController_listNotifications",
10340
+ "summary": "Get notifications",
10376
10341
  "parameters": [
10377
10342
  {
10378
- "name": "subscriberId",
10379
- "required": true,
10380
- "in": "path",
10381
- "schema": {
10343
+ "name": "channels",
10344
+ "required": false,
10345
+ "in": "query",
10346
+ "description": "Array of channel types",
10347
+ "schema": {
10348
+ "type": "array",
10349
+ "items": {
10350
+ "$ref": "#/components/schemas/ChannelTypeEnum"
10351
+ }
10352
+ }
10353
+ },
10354
+ {
10355
+ "name": "templates",
10356
+ "required": false,
10357
+ "in": "query",
10358
+ "description": "Array of template IDs or a single template ID",
10359
+ "schema": {
10360
+ "type": "array",
10361
+ "items": {
10362
+ "type": "string"
10363
+ }
10364
+ }
10365
+ },
10366
+ {
10367
+ "name": "emails",
10368
+ "required": false,
10369
+ "in": "query",
10370
+ "description": "Array of email addresses or a single email address",
10371
+ "schema": {
10372
+ "type": "array",
10373
+ "items": {
10374
+ "type": "string"
10375
+ }
10376
+ }
10377
+ },
10378
+ {
10379
+ "name": "search",
10380
+ "required": false,
10381
+ "in": "query",
10382
+ "deprecated": true,
10383
+ "description": "Search term (deprecated)",
10384
+ "schema": {
10382
10385
  "type": "string"
10383
10386
  }
10384
10387
  },
10388
+ {
10389
+ "name": "subscriberIds",
10390
+ "required": false,
10391
+ "in": "query",
10392
+ "description": "Array of subscriber IDs or a single subscriber ID",
10393
+ "schema": {
10394
+ "type": "array",
10395
+ "items": {
10396
+ "type": "string"
10397
+ }
10398
+ }
10399
+ },
10385
10400
  {
10386
10401
  "name": "page",
10387
10402
  "required": false,
10388
10403
  "in": "query",
10404
+ "description": "Page number for pagination",
10389
10405
  "schema": {
10406
+ "minimum": 0,
10407
+ "default": 0,
10390
10408
  "type": "number"
10391
10409
  }
10392
10410
  },
@@ -10394,34 +10412,37 @@
10394
10412
  "name": "limit",
10395
10413
  "required": false,
10396
10414
  "in": "query",
10415
+ "description": "Limit for pagination",
10397
10416
  "schema": {
10398
- "maximum": 100,
10417
+ "minimum": 1,
10418
+ "maximum": 50,
10399
10419
  "default": 10,
10400
10420
  "type": "number"
10401
10421
  }
10402
10422
  },
10403
10423
  {
10404
- "name": "read",
10424
+ "name": "transactionId",
10405
10425
  "required": false,
10406
10426
  "in": "query",
10427
+ "description": "Transaction ID for filtering",
10407
10428
  "schema": {
10408
- "type": "boolean"
10429
+ "type": "string"
10409
10430
  }
10410
10431
  },
10411
10432
  {
10412
- "name": "seen",
10433
+ "name": "after",
10413
10434
  "required": false,
10414
10435
  "in": "query",
10436
+ "description": "Date filter for records after this timestamp. Defaults to earliest date allowed by subscription plan",
10415
10437
  "schema": {
10416
- "type": "boolean"
10438
+ "type": "string"
10417
10439
  }
10418
10440
  },
10419
10441
  {
10420
- "name": "payload",
10442
+ "name": "before",
10421
10443
  "required": false,
10422
10444
  "in": "query",
10423
- "description": "Base64 encoded string of the partial payload JSON object",
10424
- "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=",
10445
+ "description": "Date filter for records before this timestamp. Defaults to current time of request (now)",
10425
10446
  "schema": {
10426
10447
  "type": "string"
10427
10448
  }
@@ -10438,7 +10459,6 @@
10438
10459
  ],
10439
10460
  "responses": {
10440
10461
  "200": {
10441
- "description": "OK",
10442
10462
  "headers": {
10443
10463
  "Content-Type": {
10444
10464
  "$ref": "#/components/headers/Content-Type"
@@ -10462,10 +10482,11 @@
10462
10482
  "$ref": "#/components/headers/Idempotency-Replay"
10463
10483
  }
10464
10484
  },
10485
+ "description": "",
10465
10486
  "content": {
10466
10487
  "application/json": {
10467
10488
  "schema": {
10468
- "$ref": "#/components/schemas/FeedResponseDto"
10489
+ "$ref": "#/components/schemas/ActivitiesResponseDto"
10469
10490
  }
10470
10491
  }
10471
10492
  }
@@ -10886,7 +10907,7 @@
10886
10907
  }
10887
10908
  },
10888
10909
  "tags": [
10889
- "Subscribers"
10910
+ "Notifications"
10890
10911
  ],
10891
10912
  "security": [
10892
10913
  {
@@ -10895,41 +10916,19 @@
10895
10916
  ]
10896
10917
  }
10897
10918
  },
10898
- "/v1/subscribers/{subscriberId}/notifications/unseen": {
10919
+ "/v1/notifications/{notificationId}": {
10899
10920
  "get": {
10900
- "operationId": "SubscribersV1Controller_getUnseenCount",
10901
- "x-speakeasy-name-override": "unseenCount",
10902
- "x-speakeasy-group": "Subscribers.Notifications",
10903
- "summary": "Get the unseen in-app notifications count for subscribers feed",
10921
+ "operationId": "NotificationsController_getNotification",
10922
+ "summary": "Get notification",
10904
10923
  "parameters": [
10905
10924
  {
10906
- "name": "subscriberId",
10925
+ "name": "notificationId",
10907
10926
  "required": true,
10908
10927
  "in": "path",
10909
10928
  "schema": {
10910
10929
  "type": "string"
10911
10930
  }
10912
10931
  },
10913
- {
10914
- "name": "seen",
10915
- "required": false,
10916
- "in": "query",
10917
- "description": "Indicates whether to count seen notifications.",
10918
- "schema": {
10919
- "default": false,
10920
- "type": "boolean"
10921
- }
10922
- },
10923
- {
10924
- "name": "limit",
10925
- "required": false,
10926
- "in": "query",
10927
- "description": "The maximum number of notifications to return.",
10928
- "schema": {
10929
- "default": 100,
10930
- "type": "number"
10931
- }
10932
- },
10933
10932
  {
10934
10933
  "name": "idempotency-key",
10935
10934
  "in": "header",
@@ -10969,7 +10968,7 @@
10969
10968
  "content": {
10970
10969
  "application/json": {
10971
10970
  "schema": {
10972
- "$ref": "#/components/schemas/UnseenCountResponse"
10971
+ "$ref": "#/components/schemas/ActivityNotificationResponseDto"
10973
10972
  }
10974
10973
  }
10975
10974
  }
@@ -11390,7 +11389,7 @@
11390
11389
  }
11391
11390
  },
11392
11391
  "tags": [
11393
- "Subscribers"
11392
+ "Notifications"
11394
11393
  ],
11395
11394
  "security": [
11396
11395
  {
@@ -11399,19 +11398,19 @@
11399
11398
  ]
11400
11399
  }
11401
11400
  },
11402
- "/v1/subscribers/{subscriberId}/messages/mark-as": {
11403
- "post": {
11404
- "operationId": "SubscribersV1Controller_markMessagesAs",
11405
- "x-speakeasy-name-override": "markAllAs",
11406
- "x-speakeasy-group": "Subscribers.Messages",
11407
- "summary": "Mark a subscriber messages as seen, read, unseen or unread",
11401
+ "/v1/notifications/graph/stats": {
11402
+ "get": {
11403
+ "operationId": "NotificationsController_getActivityGraphStats",
11404
+ "x-speakeasy-name-override": "graph",
11405
+ "x-speakeasy-group": "Notifications.Stats",
11406
+ "summary": "Get notification graph statistics",
11408
11407
  "parameters": [
11409
11408
  {
11410
- "name": "subscriberId",
11411
- "required": true,
11412
- "in": "path",
11409
+ "name": "days",
11410
+ "required": false,
11411
+ "in": "query",
11413
11412
  "schema": {
11414
- "type": "string"
11413
+ "type": "number"
11415
11414
  }
11416
11415
  },
11417
11416
  {
@@ -11424,19 +11423,9 @@
11424
11423
  }
11425
11424
  }
11426
11425
  ],
11427
- "requestBody": {
11428
- "required": true,
11429
- "content": {
11430
- "application/json": {
11431
- "schema": {
11432
- "$ref": "#/components/schemas/MessageMarkAsRequestDto"
11433
- }
11434
- }
11435
- }
11436
- },
11437
11426
  "responses": {
11438
- "201": {
11439
- "description": "Created",
11427
+ "200": {
11428
+ "description": "OK",
11440
11429
  "headers": {
11441
11430
  "Content-Type": {
11442
11431
  "$ref": "#/components/headers/Content-Type"
@@ -11465,7 +11454,7 @@
11465
11454
  "schema": {
11466
11455
  "type": "array",
11467
11456
  "items": {
11468
- "$ref": "#/components/schemas/MessageResponseDto"
11457
+ "$ref": "#/components/schemas/ActivityGraphStatesResponse"
11469
11458
  }
11470
11459
  }
11471
11460
  }
@@ -11887,7 +11876,7 @@
11887
11876
  }
11888
11877
  },
11889
11878
  "tags": [
11890
- "Subscribers"
11879
+ "Notifications"
11891
11880
  ],
11892
11881
  "security": [
11893
11882
  {
@@ -11896,21 +11885,12 @@
11896
11885
  ]
11897
11886
  }
11898
11887
  },
11899
- "/v1/subscribers/{subscriberId}/messages/mark-all": {
11900
- "post": {
11901
- "operationId": "SubscribersV1Controller_markAllUnreadAsRead",
11902
- "x-speakeasy-name-override": "markAll",
11903
- "x-speakeasy-group": "Subscribers.Messages",
11904
- "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.",
11888
+ "/v1/notifications/stats": {
11889
+ "get": {
11890
+ "operationId": "NotificationsController_getActivityStats",
11891
+ "x-speakeasy-group": "Notifications.Stats",
11892
+ "summary": "Get notification statistics",
11905
11893
  "parameters": [
11906
- {
11907
- "name": "subscriberId",
11908
- "required": true,
11909
- "in": "path",
11910
- "schema": {
11911
- "type": "string"
11912
- }
11913
- },
11914
11894
  {
11915
11895
  "name": "idempotency-key",
11916
11896
  "in": "header",
@@ -11921,18 +11901,9 @@
11921
11901
  }
11922
11902
  }
11923
11903
  ],
11924
- "requestBody": {
11925
- "required": true,
11926
- "content": {
11927
- "application/json": {
11928
- "schema": {
11929
- "$ref": "#/components/schemas/MarkAllMessageAsRequestDto"
11930
- }
11931
- }
11932
- }
11933
- },
11934
11904
  "responses": {
11935
- "201": {
11905
+ "200": {
11906
+ "description": "OK",
11936
11907
  "headers": {
11937
11908
  "Content-Type": {
11938
11909
  "$ref": "#/components/headers/Content-Type"
@@ -11956,11 +11927,10 @@
11956
11927
  "$ref": "#/components/headers/Idempotency-Replay"
11957
11928
  }
11958
11929
  },
11959
- "description": "",
11960
11930
  "content": {
11961
11931
  "application/json": {
11962
11932
  "schema": {
11963
- "type": "number"
11933
+ "$ref": "#/components/schemas/ActivityStatsResponseDto"
11964
11934
  }
11965
11935
  }
11966
11936
  }
@@ -12381,7 +12351,7 @@
12381
12351
  }
12382
12352
  },
12383
12353
  "tags": [
12384
- "Subscribers"
12354
+ "Notifications"
12385
12355
  ],
12386
12356
  "security": [
12387
12357
  {
@@ -12390,33 +12360,46 @@
12390
12360
  ]
12391
12361
  }
12392
12362
  },
12393
- "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": {
12394
- "post": {
12395
- "operationId": "SubscribersV1Controller_markActionAsSeen",
12396
- "x-speakeasy-name-override": "updateAsSeen",
12397
- "x-speakeasy-group": "Subscribers.Messages",
12398
- "summary": "Mark message action as seen",
12363
+ "/v1/subscribers": {
12364
+ "get": {
12365
+ "operationId": "SubscribersV1Controller_listSubscribers",
12366
+ "x-speakeasy-pagination": {
12367
+ "type": "offsetLimit",
12368
+ "inputs": [
12369
+ {
12370
+ "name": "page",
12371
+ "in": "parameters",
12372
+ "type": "page"
12373
+ },
12374
+ {
12375
+ "name": "limit",
12376
+ "in": "parameters",
12377
+ "type": "limit"
12378
+ }
12379
+ ],
12380
+ "outputs": {
12381
+ "results": "$.data.resultArray"
12382
+ }
12383
+ },
12384
+ "summary": "Get subscribers",
12385
+ "description": "Returns a list of subscribers, could paginated using the `page` and `limit` query parameter",
12399
12386
  "parameters": [
12400
12387
  {
12401
- "name": "messageId",
12402
- "required": true,
12403
- "in": "path",
12388
+ "name": "page",
12389
+ "required": false,
12390
+ "in": "query",
12404
12391
  "schema": {
12405
- "type": "string"
12392
+ "type": "number"
12406
12393
  }
12407
12394
  },
12408
12395
  {
12409
- "name": "type",
12410
- "required": true,
12411
- "in": "path",
12412
- "schema": {}
12413
- },
12414
- {
12415
- "name": "subscriberId",
12416
- "required": true,
12417
- "in": "path",
12396
+ "name": "limit",
12397
+ "required": false,
12398
+ "in": "query",
12418
12399
  "schema": {
12419
- "type": "string"
12400
+ "maximum": 100,
12401
+ "default": 10,
12402
+ "type": "number"
12420
12403
  }
12421
12404
  },
12422
12405
  {
@@ -12429,19 +12412,8 @@
12429
12412
  }
12430
12413
  }
12431
12414
  ],
12432
- "requestBody": {
12433
- "required": true,
12434
- "content": {
12435
- "application/json": {
12436
- "schema": {
12437
- "$ref": "#/components/schemas/MarkMessageActionAsSeenDto"
12438
- }
12439
- }
12440
- }
12441
- },
12442
12415
  "responses": {
12443
- "201": {
12444
- "description": "Created",
12416
+ "200": {
12445
12417
  "headers": {
12446
12418
  "Content-Type": {
12447
12419
  "$ref": "#/components/headers/Content-Type"
@@ -12465,10 +12437,25 @@
12465
12437
  "$ref": "#/components/headers/Idempotency-Replay"
12466
12438
  }
12467
12439
  },
12440
+ "description": "",
12468
12441
  "content": {
12469
12442
  "application/json": {
12470
12443
  "schema": {
12471
- "$ref": "#/components/schemas/MessageResponseDto"
12444
+ "allOf": [
12445
+ {
12446
+ "$ref": "#/components/schemas/PaginatedResponseDto"
12447
+ },
12448
+ {
12449
+ "properties": {
12450
+ "data": {
12451
+ "type": "array",
12452
+ "items": {
12453
+ "$ref": "#/components/schemas/SubscriberResponseDto"
12454
+ }
12455
+ }
12456
+ }
12457
+ }
12458
+ ]
12472
12459
  }
12473
12460
  }
12474
12461
  }
@@ -12898,12 +12885,12 @@
12898
12885
  ]
12899
12886
  }
12900
12887
  },
12901
- "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": {
12902
- "get": {
12903
- "operationId": "SubscribersV1Controller_chatOauthCallback",
12904
- "x-speakeasy-name-override": "chatAccessOauthCallBack",
12905
- "x-speakeasy-group": "Subscribers.Authentication",
12906
- "summary": "Handle providers oauth redirect",
12888
+ "/v1/subscribers/{subscriberId}/credentials": {
12889
+ "put": {
12890
+ "operationId": "SubscribersV1Controller_updateSubscriberChannel",
12891
+ "x-speakeasy-group": "Subscribers.Credentials",
12892
+ "summary": "Update subscriber credentials",
12893
+ "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.",
12907
12894
  "parameters": [
12908
12895
  {
12909
12896
  "name": "subscriberId",
@@ -12913,48 +12900,6 @@
12913
12900
  "type": "string"
12914
12901
  }
12915
12902
  },
12916
- {
12917
- "name": "providerId",
12918
- "required": true,
12919
- "in": "path",
12920
- "schema": {}
12921
- },
12922
- {
12923
- "name": "hmacHash",
12924
- "required": true,
12925
- "in": "query",
12926
- "description": "HMAC hash for the request",
12927
- "schema": {
12928
- "type": "string"
12929
- }
12930
- },
12931
- {
12932
- "name": "environmentId",
12933
- "required": true,
12934
- "in": "query",
12935
- "description": "The ID of the environment, must be a valid MongoDB ID",
12936
- "schema": {
12937
- "type": "string"
12938
- }
12939
- },
12940
- {
12941
- "name": "integrationIdentifier",
12942
- "required": false,
12943
- "in": "query",
12944
- "description": "Optional integration identifier",
12945
- "schema": {
12946
- "type": "string"
12947
- }
12948
- },
12949
- {
12950
- "name": "code",
12951
- "required": true,
12952
- "in": "query",
12953
- "description": "Optional authorization code returned from the OAuth provider",
12954
- "schema": {
12955
- "type": "string"
12956
- }
12957
- },
12958
12903
  {
12959
12904
  "name": "idempotency-key",
12960
12905
  "in": "header",
@@ -12965,42 +12910,19 @@
12965
12910
  }
12966
12911
  }
12967
12912
  ],
12968
- "responses": {
12969
- "200": {
12970
- "description": "Returns plain text response.",
12971
- "content": {
12972
- "text/html": {
12973
- "schema": {
12974
- "type": "string"
12975
- }
12976
- }
12977
- },
12978
- "headers": {
12979
- "Content-Type": {
12980
- "$ref": "#/components/headers/Content-Type"
12981
- },
12982
- "RateLimit-Limit": {
12983
- "$ref": "#/components/headers/RateLimit-Limit"
12984
- },
12985
- "RateLimit-Remaining": {
12986
- "$ref": "#/components/headers/RateLimit-Remaining"
12987
- },
12988
- "RateLimit-Reset": {
12989
- "$ref": "#/components/headers/RateLimit-Reset"
12990
- },
12991
- "RateLimit-Policy": {
12992
- "$ref": "#/components/headers/RateLimit-Policy"
12993
- },
12994
- "Idempotency-Key": {
12995
- "$ref": "#/components/headers/Idempotency-Key"
12996
- },
12997
- "Idempotency-Replay": {
12998
- "$ref": "#/components/headers/Idempotency-Replay"
12913
+ "requestBody": {
12914
+ "required": true,
12915
+ "content": {
12916
+ "application/json": {
12917
+ "schema": {
12918
+ "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"
12999
12919
  }
13000
12920
  }
13001
- },
13002
- "302": {
13003
- "description": "Redirects to the specified URL.",
12921
+ }
12922
+ },
12923
+ "responses": {
12924
+ "200": {
12925
+ "description": "OK",
13004
12926
  "headers": {
13005
12927
  "Content-Type": {
13006
12928
  "$ref": "#/components/headers/Content-Type"
@@ -13022,19 +12944,12 @@
13022
12944
  },
13023
12945
  "Idempotency-Replay": {
13024
12946
  "$ref": "#/components/headers/Idempotency-Replay"
13025
- },
13026
- "Location": {
13027
- "description": "The URL to redirect to.",
13028
- "schema": {
13029
- "type": "string",
13030
- "example": "https://www.novu.co"
13031
- }
13032
12947
  }
13033
12948
  },
13034
12949
  "content": {
13035
12950
  "application/json": {
13036
12951
  "schema": {
13037
- "type": "string"
12952
+ "$ref": "#/components/schemas/SubscriberResponseDto"
13038
12953
  }
13039
12954
  }
13040
12955
  }
@@ -13462,14 +13377,13 @@
13462
13377
  "secretKey": []
13463
13378
  }
13464
13379
  ]
13465
- }
13466
- },
13467
- "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": {
13468
- "get": {
13469
- "operationId": "SubscribersV1Controller_chatAccessOauth",
13470
- "x-speakeasy-name-override": "chatAccessOauth",
13471
- "x-speakeasy-group": "Subscribers.Authentication",
13472
- "summary": "Handle chat oauth",
13380
+ },
13381
+ "patch": {
13382
+ "operationId": "SubscribersV1Controller_modifySubscriberChannel",
13383
+ "x-speakeasy-name-override": "append",
13384
+ "x-speakeasy-group": "Subscribers.Credentials",
13385
+ "summary": "Modify subscriber credentials",
13386
+ "description": "Subscriber credentials associated to the delivery methods such as slack and push tokens.\n This endpoint appends provided credentials and deviceTokens to the existing ones.",
13473
13387
  "parameters": [
13474
13388
  {
13475
13389
  "name": "subscriberId",
@@ -13479,39 +13393,6 @@
13479
13393
  "type": "string"
13480
13394
  }
13481
13395
  },
13482
- {
13483
- "name": "providerId",
13484
- "required": true,
13485
- "in": "path",
13486
- "schema": {}
13487
- },
13488
- {
13489
- "name": "hmacHash",
13490
- "required": true,
13491
- "in": "query",
13492
- "description": "HMAC hash for the request",
13493
- "schema": {
13494
- "type": "string"
13495
- }
13496
- },
13497
- {
13498
- "name": "environmentId",
13499
- "required": true,
13500
- "in": "query",
13501
- "description": "The ID of the environment, must be a valid MongoDB ID",
13502
- "schema": {
13503
- "type": "string"
13504
- }
13505
- },
13506
- {
13507
- "name": "integrationIdentifier",
13508
- "required": false,
13509
- "in": "query",
13510
- "description": "Optional integration identifier",
13511
- "schema": {
13512
- "type": "string"
13513
- }
13514
- },
13515
13396
  {
13516
13397
  "name": "idempotency-key",
13517
13398
  "in": "header",
@@ -13522,9 +13403,49 @@
13522
13403
  }
13523
13404
  }
13524
13405
  ],
13406
+ "requestBody": {
13407
+ "required": true,
13408
+ "content": {
13409
+ "application/json": {
13410
+ "schema": {
13411
+ "$ref": "#/components/schemas/UpdateSubscriberChannelRequestDto"
13412
+ }
13413
+ }
13414
+ }
13415
+ },
13525
13416
  "responses": {
13526
13417
  "200": {
13527
- "description": ""
13418
+ "description": "OK",
13419
+ "headers": {
13420
+ "Content-Type": {
13421
+ "$ref": "#/components/headers/Content-Type"
13422
+ },
13423
+ "RateLimit-Limit": {
13424
+ "$ref": "#/components/headers/RateLimit-Limit"
13425
+ },
13426
+ "RateLimit-Remaining": {
13427
+ "$ref": "#/components/headers/RateLimit-Remaining"
13428
+ },
13429
+ "RateLimit-Reset": {
13430
+ "$ref": "#/components/headers/RateLimit-Reset"
13431
+ },
13432
+ "RateLimit-Policy": {
13433
+ "$ref": "#/components/headers/RateLimit-Policy"
13434
+ },
13435
+ "Idempotency-Key": {
13436
+ "$ref": "#/components/headers/Idempotency-Key"
13437
+ },
13438
+ "Idempotency-Replay": {
13439
+ "$ref": "#/components/headers/Idempotency-Replay"
13440
+ }
13441
+ },
13442
+ "content": {
13443
+ "application/json": {
13444
+ "schema": {
13445
+ "$ref": "#/components/schemas/SubscriberResponseDto"
13446
+ }
13447
+ }
13448
+ }
13528
13449
  },
13529
13450
  "400": {
13530
13451
  "description": "Bad Request",
@@ -13951,92 +13872,29 @@
13951
13872
  ]
13952
13873
  }
13953
13874
  },
13954
- "/v2/subscribers": {
13955
- "get": {
13956
- "operationId": "SubscribersController_searchSubscribers",
13957
- "x-speakeasy-name-override": "search",
13958
- "summary": "Search for subscribers",
13875
+ "/v1/subscribers/{subscriberId}/credentials/{providerId}": {
13876
+ "delete": {
13877
+ "operationId": "SubscribersV1Controller_deleteSubscriberCredentials",
13878
+ "x-speakeasy-group": "Subscribers.Credentials",
13879
+ "summary": "Delete subscriber credentials by providerId",
13880
+ "description": "Delete subscriber credentials such as slack and expo tokens.",
13959
13881
  "parameters": [
13960
- {
13961
- "name": "after",
13962
- "required": false,
13963
- "in": "query",
13964
- "description": "Cursor for pagination indicating the starting point after which to fetch results.",
13965
- "schema": {
13966
- "type": "string"
13967
- }
13968
- },
13969
- {
13970
- "name": "before",
13971
- "required": false,
13972
- "in": "query",
13973
- "description": "Cursor for pagination indicating the ending point before which to fetch results.",
13974
- "schema": {
13975
- "type": "string"
13976
- }
13977
- },
13978
- {
13979
- "name": "email",
13980
- "required": false,
13981
- "in": "query",
13982
- "description": "Email address of the subscriber to filter results.",
13983
- "schema": {
13984
- "type": "string"
13985
- }
13986
- },
13987
- {
13988
- "name": "name",
13989
- "required": false,
13990
- "in": "query",
13991
- "description": "Name of the subscriber to filter results.",
13992
- "schema": {
13993
- "type": "string"
13994
- }
13995
- },
13996
- {
13997
- "name": "phone",
13998
- "required": false,
13999
- "in": "query",
14000
- "description": "Phone number of the subscriber to filter results.",
14001
- "schema": {
14002
- "type": "string"
14003
- }
14004
- },
14005
13882
  {
14006
13883
  "name": "subscriberId",
14007
- "required": false,
14008
- "in": "query",
14009
- "description": "Unique identifier of the subscriber to filter results.",
13884
+ "required": true,
13885
+ "in": "path",
14010
13886
  "schema": {
14011
13887
  "type": "string"
14012
13888
  }
14013
13889
  },
14014
13890
  {
14015
- "name": "limit",
14016
- "required": false,
14017
- "in": "query",
14018
- "schema": {
14019
- "type": "number"
14020
- }
14021
- },
14022
- {
14023
- "name": "orderDirection",
14024
- "required": false,
14025
- "in": "query",
13891
+ "name": "providerId",
13892
+ "required": true,
13893
+ "in": "path",
14026
13894
  "schema": {
14027
- "enum": [
14028
- "ASC",
14029
- "DESC"
14030
- ],
14031
13895
  "type": "string"
14032
13896
  }
14033
13897
  },
14034
- {
14035
- "name": "orderBy",
14036
- "required": false,
14037
- "in": "query",
14038
- "schema": {}
14039
- },
14040
13898
  {
14041
13899
  "name": "idempotency-key",
14042
13900
  "in": "header",
@@ -14048,8 +13906,7 @@
14048
13906
  }
14049
13907
  ],
14050
13908
  "responses": {
14051
- "200": {
14052
- "description": "OK",
13909
+ "204": {
14053
13910
  "headers": {
14054
13911
  "Content-Type": {
14055
13912
  "$ref": "#/components/headers/Content-Type"
@@ -14073,13 +13930,7 @@
14073
13930
  "$ref": "#/components/headers/Idempotency-Replay"
14074
13931
  }
14075
13932
  },
14076
- "content": {
14077
- "application/json": {
14078
- "schema": {
14079
- "$ref": "#/components/schemas/ListSubscribersResponseDto"
14080
- }
14081
- }
14082
- }
13933
+ "description": ""
14083
13934
  },
14084
13935
  "400": {
14085
13936
  "description": "Bad Request",
@@ -14504,13 +14355,56 @@
14504
14355
  "secretKey": []
14505
14356
  }
14506
14357
  ]
14507
- },
14508
- "post": {
14509
- "operationId": "SubscribersController_createSubscriber",
14510
- "x-speakeasy-name-override": "create",
14511
- "summary": "Create subscriber",
14512
- "description": "Create subscriber with the given data",
14358
+ }
14359
+ },
14360
+ "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth": {
14361
+ "get": {
14362
+ "operationId": "SubscribersV1Controller_chatAccessOauth",
14363
+ "x-speakeasy-name-override": "chatAccessOauth",
14364
+ "x-speakeasy-group": "Subscribers.Authentication",
14365
+ "summary": "Handle chat oauth",
14513
14366
  "parameters": [
14367
+ {
14368
+ "name": "subscriberId",
14369
+ "required": true,
14370
+ "in": "path",
14371
+ "schema": {
14372
+ "type": "string"
14373
+ }
14374
+ },
14375
+ {
14376
+ "name": "providerId",
14377
+ "required": true,
14378
+ "in": "path",
14379
+ "schema": {}
14380
+ },
14381
+ {
14382
+ "name": "hmacHash",
14383
+ "required": true,
14384
+ "in": "query",
14385
+ "description": "HMAC hash for the request",
14386
+ "schema": {
14387
+ "type": "string"
14388
+ }
14389
+ },
14390
+ {
14391
+ "name": "environmentId",
14392
+ "required": true,
14393
+ "in": "query",
14394
+ "description": "The ID of the environment, must be a valid MongoDB ID",
14395
+ "schema": {
14396
+ "type": "string"
14397
+ }
14398
+ },
14399
+ {
14400
+ "name": "integrationIdentifier",
14401
+ "required": false,
14402
+ "in": "query",
14403
+ "description": "Optional integration identifier",
14404
+ "schema": {
14405
+ "type": "string"
14406
+ }
14407
+ },
14514
14408
  {
14515
14409
  "name": "idempotency-key",
14516
14410
  "in": "header",
@@ -14521,49 +14415,9 @@
14521
14415
  }
14522
14416
  }
14523
14417
  ],
14524
- "requestBody": {
14525
- "required": true,
14526
- "content": {
14527
- "application/json": {
14528
- "schema": {
14529
- "$ref": "#/components/schemas/CreateSubscriberRequestDto"
14530
- }
14531
- }
14532
- }
14533
- },
14534
14418
  "responses": {
14535
- "201": {
14536
- "description": "Created",
14537
- "headers": {
14538
- "Content-Type": {
14539
- "$ref": "#/components/headers/Content-Type"
14540
- },
14541
- "RateLimit-Limit": {
14542
- "$ref": "#/components/headers/RateLimit-Limit"
14543
- },
14544
- "RateLimit-Remaining": {
14545
- "$ref": "#/components/headers/RateLimit-Remaining"
14546
- },
14547
- "RateLimit-Reset": {
14548
- "$ref": "#/components/headers/RateLimit-Reset"
14549
- },
14550
- "RateLimit-Policy": {
14551
- "$ref": "#/components/headers/RateLimit-Policy"
14552
- },
14553
- "Idempotency-Key": {
14554
- "$ref": "#/components/headers/Idempotency-Key"
14555
- },
14556
- "Idempotency-Replay": {
14557
- "$ref": "#/components/headers/Idempotency-Replay"
14558
- }
14559
- },
14560
- "content": {
14561
- "application/json": {
14562
- "schema": {
14563
- "$ref": "#/components/schemas/SubscriberResponseDto"
14564
- }
14565
- }
14566
- }
14419
+ "200": {
14420
+ "description": ""
14567
14421
  },
14568
14422
  "400": {
14569
14423
  "description": "Bad Request",
@@ -14990,12 +14844,12 @@
14990
14844
  ]
14991
14845
  }
14992
14846
  },
14993
- "/v2/subscribers/{subscriberId}": {
14847
+ "/v1/subscribers/{subscriberId}/credentials/{providerId}/oauth/callback": {
14994
14848
  "get": {
14995
- "operationId": "SubscribersController_getSubscriber",
14996
- "x-speakeasy-name-override": "retrieve",
14997
- "summary": "Get subscriber",
14998
- "description": "Get subscriber by your internal id used to identify the subscriber",
14849
+ "operationId": "SubscribersV1Controller_chatOauthCallback",
14850
+ "x-speakeasy-name-override": "chatAccessOauthCallBack",
14851
+ "x-speakeasy-group": "Subscribers.Authentication",
14852
+ "summary": "Handle providers oauth redirect",
14999
14853
  "parameters": [
15000
14854
  {
15001
14855
  "name": "subscriberId",
@@ -15005,6 +14859,48 @@
15005
14859
  "type": "string"
15006
14860
  }
15007
14861
  },
14862
+ {
14863
+ "name": "providerId",
14864
+ "required": true,
14865
+ "in": "path",
14866
+ "schema": {}
14867
+ },
14868
+ {
14869
+ "name": "hmacHash",
14870
+ "required": true,
14871
+ "in": "query",
14872
+ "description": "HMAC hash for the request",
14873
+ "schema": {
14874
+ "type": "string"
14875
+ }
14876
+ },
14877
+ {
14878
+ "name": "environmentId",
14879
+ "required": true,
14880
+ "in": "query",
14881
+ "description": "The ID of the environment, must be a valid MongoDB ID",
14882
+ "schema": {
14883
+ "type": "string"
14884
+ }
14885
+ },
14886
+ {
14887
+ "name": "integrationIdentifier",
14888
+ "required": false,
14889
+ "in": "query",
14890
+ "description": "Optional integration identifier",
14891
+ "schema": {
14892
+ "type": "string"
14893
+ }
14894
+ },
14895
+ {
14896
+ "name": "code",
14897
+ "required": true,
14898
+ "in": "query",
14899
+ "description": "Optional authorization code returned from the OAuth provider",
14900
+ "schema": {
14901
+ "type": "string"
14902
+ }
14903
+ },
15008
14904
  {
15009
14905
  "name": "idempotency-key",
15010
14906
  "in": "header",
@@ -15013,11 +14909,44 @@
15013
14909
  "schema": {
15014
14910
  "type": "string"
15015
14911
  }
15016
- }
15017
- ],
15018
- "responses": {
15019
- "200": {
15020
- "description": "OK",
14912
+ }
14913
+ ],
14914
+ "responses": {
14915
+ "200": {
14916
+ "description": "Returns plain text response.",
14917
+ "content": {
14918
+ "text/html": {
14919
+ "schema": {
14920
+ "type": "string"
14921
+ }
14922
+ }
14923
+ },
14924
+ "headers": {
14925
+ "Content-Type": {
14926
+ "$ref": "#/components/headers/Content-Type"
14927
+ },
14928
+ "RateLimit-Limit": {
14929
+ "$ref": "#/components/headers/RateLimit-Limit"
14930
+ },
14931
+ "RateLimit-Remaining": {
14932
+ "$ref": "#/components/headers/RateLimit-Remaining"
14933
+ },
14934
+ "RateLimit-Reset": {
14935
+ "$ref": "#/components/headers/RateLimit-Reset"
14936
+ },
14937
+ "RateLimit-Policy": {
14938
+ "$ref": "#/components/headers/RateLimit-Policy"
14939
+ },
14940
+ "Idempotency-Key": {
14941
+ "$ref": "#/components/headers/Idempotency-Key"
14942
+ },
14943
+ "Idempotency-Replay": {
14944
+ "$ref": "#/components/headers/Idempotency-Replay"
14945
+ }
14946
+ }
14947
+ },
14948
+ "302": {
14949
+ "description": "Redirects to the specified URL.",
15021
14950
  "headers": {
15022
14951
  "Content-Type": {
15023
14952
  "$ref": "#/components/headers/Content-Type"
@@ -15039,12 +14968,19 @@
15039
14968
  },
15040
14969
  "Idempotency-Replay": {
15041
14970
  "$ref": "#/components/headers/Idempotency-Replay"
14971
+ },
14972
+ "Location": {
14973
+ "description": "The URL to redirect to.",
14974
+ "schema": {
14975
+ "type": "string",
14976
+ "example": "https://www.novu.co"
14977
+ }
15042
14978
  }
15043
14979
  },
15044
14980
  "content": {
15045
14981
  "application/json": {
15046
14982
  "schema": {
15047
- "$ref": "#/components/schemas/SubscriberResponseDto"
14983
+ "type": "string"
15048
14984
  }
15049
14985
  }
15050
14986
  }
@@ -15472,13 +15408,29 @@
15472
15408
  "secretKey": []
15473
15409
  }
15474
15410
  ]
15475
- },
15476
- "patch": {
15477
- "operationId": "SubscribersController_patchSubscriber",
15478
- "x-speakeasy-name-override": "patch",
15479
- "summary": "Patch subscriber",
15480
- "description": "Patch subscriber by your internal id used to identify the subscriber",
15411
+ }
15412
+ },
15413
+ "/v1/subscribers/{subscriberId}/messages/{messageId}/actions/{type}": {
15414
+ "post": {
15415
+ "operationId": "SubscribersV1Controller_markActionAsSeen",
15416
+ "x-speakeasy-name-override": "updateAsSeen",
15417
+ "x-speakeasy-group": "Subscribers.Messages",
15418
+ "summary": "Mark message action as seen",
15481
15419
  "parameters": [
15420
+ {
15421
+ "name": "messageId",
15422
+ "required": true,
15423
+ "in": "path",
15424
+ "schema": {
15425
+ "type": "string"
15426
+ }
15427
+ },
15428
+ {
15429
+ "name": "type",
15430
+ "required": true,
15431
+ "in": "path",
15432
+ "schema": {}
15433
+ },
15482
15434
  {
15483
15435
  "name": "subscriberId",
15484
15436
  "required": true,
@@ -15502,14 +15454,14 @@
15502
15454
  "content": {
15503
15455
  "application/json": {
15504
15456
  "schema": {
15505
- "$ref": "#/components/schemas/PatchSubscriberRequestDto"
15457
+ "$ref": "#/components/schemas/MarkMessageActionAsSeenDto"
15506
15458
  }
15507
15459
  }
15508
15460
  }
15509
15461
  },
15510
15462
  "responses": {
15511
- "200": {
15512
- "description": "OK",
15463
+ "201": {
15464
+ "description": "Created",
15513
15465
  "headers": {
15514
15466
  "Content-Type": {
15515
15467
  "$ref": "#/components/headers/Content-Type"
@@ -15536,7 +15488,7 @@
15536
15488
  "content": {
15537
15489
  "application/json": {
15538
15490
  "schema": {
15539
- "$ref": "#/components/schemas/SubscriberResponseDto"
15491
+ "$ref": "#/components/schemas/MessageResponseDto"
15540
15492
  }
15541
15493
  }
15542
15494
  }
@@ -15964,12 +15916,14 @@
15964
15916
  "secretKey": []
15965
15917
  }
15966
15918
  ]
15967
- },
15968
- "delete": {
15969
- "operationId": "SubscribersController_removeSubscriber",
15970
- "x-speakeasy-name-override": "delete",
15971
- "summary": "Delete subscriber",
15972
- "description": "Deletes a subscriber entity from the Novu platform",
15919
+ }
15920
+ },
15921
+ "/v1/subscribers/{subscriberId}/messages/mark-all": {
15922
+ "post": {
15923
+ "operationId": "SubscribersV1Controller_markAllUnreadAsRead",
15924
+ "x-speakeasy-name-override": "markAll",
15925
+ "x-speakeasy-group": "Subscribers.Messages",
15926
+ "summary": "Marks all the subscriber messages as read, unread, seen or unseen. Optionally you can pass feed id (or array) to mark messages of a particular feed.",
15973
15927
  "parameters": [
15974
15928
  {
15975
15929
  "name": "subscriberId",
@@ -15989,9 +15943,18 @@
15989
15943
  }
15990
15944
  }
15991
15945
  ],
15946
+ "requestBody": {
15947
+ "required": true,
15948
+ "content": {
15949
+ "application/json": {
15950
+ "schema": {
15951
+ "$ref": "#/components/schemas/MarkAllMessageAsRequestDto"
15952
+ }
15953
+ }
15954
+ }
15955
+ },
15992
15956
  "responses": {
15993
- "200": {
15994
- "description": "OK",
15957
+ "201": {
15995
15958
  "headers": {
15996
15959
  "Content-Type": {
15997
15960
  "$ref": "#/components/headers/Content-Type"
@@ -16015,10 +15978,11 @@
16015
15978
  "$ref": "#/components/headers/Idempotency-Replay"
16016
15979
  }
16017
15980
  },
15981
+ "description": "",
16018
15982
  "content": {
16019
15983
  "application/json": {
16020
15984
  "schema": {
16021
- "$ref": "#/components/schemas/RemoveSubscriberResponseDto"
15985
+ "type": "number"
16022
15986
  }
16023
15987
  }
16024
15988
  }
@@ -16448,13 +16412,12 @@
16448
16412
  ]
16449
16413
  }
16450
16414
  },
16451
- "/v2/subscribers/{subscriberId}/preferences": {
16452
- "get": {
16453
- "operationId": "SubscribersController_getSubscriberPreferences",
16454
- "x-speakeasy-name-override": "list",
16455
- "x-speakeasy-group": "Subscribers.Preferences",
16456
- "summary": "Get subscriber preferences",
16457
- "description": "Get subscriber global and workflow specific preferences",
16415
+ "/v1/subscribers/{subscriberId}/messages/mark-as": {
16416
+ "post": {
16417
+ "operationId": "SubscribersV1Controller_markMessagesAs",
16418
+ "x-speakeasy-name-override": "markAllAs",
16419
+ "x-speakeasy-group": "Subscribers.Messages",
16420
+ "summary": "Mark a subscriber messages as seen, read, unseen or unread",
16458
16421
  "parameters": [
16459
16422
  {
16460
16423
  "name": "subscriberId",
@@ -16474,9 +16437,19 @@
16474
16437
  }
16475
16438
  }
16476
16439
  ],
16440
+ "requestBody": {
16441
+ "required": true,
16442
+ "content": {
16443
+ "application/json": {
16444
+ "schema": {
16445
+ "$ref": "#/components/schemas/MessageMarkAsRequestDto"
16446
+ }
16447
+ }
16448
+ }
16449
+ },
16477
16450
  "responses": {
16478
- "200": {
16479
- "description": "OK",
16451
+ "201": {
16452
+ "description": "Created",
16480
16453
  "headers": {
16481
16454
  "Content-Type": {
16482
16455
  "$ref": "#/components/headers/Content-Type"
@@ -16503,7 +16476,10 @@
16503
16476
  "content": {
16504
16477
  "application/json": {
16505
16478
  "schema": {
16506
- "$ref": "#/components/schemas/GetSubscriberPreferencesDto"
16479
+ "type": "array",
16480
+ "items": {
16481
+ "$ref": "#/components/schemas/MessageResponseDto"
16482
+ }
16507
16483
  }
16508
16484
  }
16509
16485
  }
@@ -16931,13 +16907,14 @@
16931
16907
  "secretKey": []
16932
16908
  }
16933
16909
  ]
16934
- },
16935
- "patch": {
16936
- "operationId": "SubscribersController_updateSubscriberPreferences",
16937
- "x-speakeasy-name-override": "update",
16938
- "x-speakeasy-group": "Subscribers.Preferences",
16939
- "summary": "Update subscriber global or workflow specific preferences",
16940
- "description": "Update subscriber global or workflow specific preferences",
16910
+ }
16911
+ },
16912
+ "/v1/subscribers/{subscriberId}/notifications/feed": {
16913
+ "get": {
16914
+ "operationId": "SubscribersV1Controller_getNotificationsFeed",
16915
+ "x-speakeasy-name-override": "feed",
16916
+ "x-speakeasy-group": "Subscribers.Notifications",
16917
+ "summary": "Get in-app notification feed for a particular subscriber",
16941
16918
  "parameters": [
16942
16919
  {
16943
16920
  "name": "subscriberId",
@@ -16947,6 +16924,50 @@
16947
16924
  "type": "string"
16948
16925
  }
16949
16926
  },
16927
+ {
16928
+ "name": "page",
16929
+ "required": false,
16930
+ "in": "query",
16931
+ "schema": {
16932
+ "type": "number"
16933
+ }
16934
+ },
16935
+ {
16936
+ "name": "limit",
16937
+ "required": false,
16938
+ "in": "query",
16939
+ "schema": {
16940
+ "maximum": 100,
16941
+ "default": 10,
16942
+ "type": "number"
16943
+ }
16944
+ },
16945
+ {
16946
+ "name": "read",
16947
+ "required": false,
16948
+ "in": "query",
16949
+ "schema": {
16950
+ "type": "boolean"
16951
+ }
16952
+ },
16953
+ {
16954
+ "name": "seen",
16955
+ "required": false,
16956
+ "in": "query",
16957
+ "schema": {
16958
+ "type": "boolean"
16959
+ }
16960
+ },
16961
+ {
16962
+ "name": "payload",
16963
+ "required": false,
16964
+ "in": "query",
16965
+ "description": "Base64 encoded string of the partial payload JSON object",
16966
+ "example": "btoa(JSON.stringify({ foo: 123 })) results in base64 encoded string like eyJmb28iOjEyM30=",
16967
+ "schema": {
16968
+ "type": "string"
16969
+ }
16970
+ },
16950
16971
  {
16951
16972
  "name": "idempotency-key",
16952
16973
  "in": "header",
@@ -16957,16 +16978,6 @@
16957
16978
  }
16958
16979
  }
16959
16980
  ],
16960
- "requestBody": {
16961
- "required": true,
16962
- "content": {
16963
- "application/json": {
16964
- "schema": {
16965
- "$ref": "#/components/schemas/PatchSubscriberPreferencesDto"
16966
- }
16967
- }
16968
- }
16969
- },
16970
16981
  "responses": {
16971
16982
  "200": {
16972
16983
  "description": "OK",
@@ -16996,7 +17007,7 @@
16996
17007
  "content": {
16997
17008
  "application/json": {
16998
17009
  "schema": {
16999
- "$ref": "#/components/schemas/GetSubscriberPreferencesDto"
17010
+ "$ref": "#/components/schemas/FeedResponseDto"
17000
17011
  }
17001
17012
  }
17002
17013
  }
@@ -17426,54 +17437,38 @@
17426
17437
  ]
17427
17438
  }
17428
17439
  },
17429
- "/v1/messages": {
17440
+ "/v1/subscribers/{subscriberId}/notifications/unseen": {
17430
17441
  "get": {
17431
- "operationId": "MessagesController_getMessages",
17432
- "summary": "Get messages",
17433
- "description": "Returns a list of messages, could paginate using the `page` query parameter",
17442
+ "operationId": "SubscribersV1Controller_getUnseenCount",
17443
+ "x-speakeasy-name-override": "unseenCount",
17444
+ "x-speakeasy-group": "Subscribers.Notifications",
17445
+ "summary": "Get the unseen in-app notifications count for subscribers feed",
17434
17446
  "parameters": [
17435
- {
17436
- "name": "channel",
17437
- "required": false,
17438
- "in": "query",
17439
- "schema": {
17440
- "$ref": "#/components/schemas/ChannelTypeEnum"
17441
- }
17442
- },
17443
17447
  {
17444
17448
  "name": "subscriberId",
17445
- "required": false,
17446
- "in": "query",
17449
+ "required": true,
17450
+ "in": "path",
17447
17451
  "schema": {
17448
17452
  "type": "string"
17449
17453
  }
17450
17454
  },
17451
17455
  {
17452
- "name": "transactionId",
17453
- "required": false,
17454
- "in": "query",
17455
- "schema": {
17456
- "type": "array",
17457
- "items": {
17458
- "type": "string"
17459
- }
17460
- }
17461
- },
17462
- {
17463
- "name": "page",
17456
+ "name": "seen",
17464
17457
  "required": false,
17465
17458
  "in": "query",
17459
+ "description": "Indicates whether to count seen notifications.",
17466
17460
  "schema": {
17467
- "default": 0,
17468
- "type": "number"
17461
+ "default": false,
17462
+ "type": "boolean"
17469
17463
  }
17470
17464
  },
17471
17465
  {
17472
17466
  "name": "limit",
17473
17467
  "required": false,
17474
17468
  "in": "query",
17469
+ "description": "The maximum number of notifications to return.",
17475
17470
  "schema": {
17476
- "default": 10,
17471
+ "default": 100,
17477
17472
  "type": "number"
17478
17473
  }
17479
17474
  },
@@ -17489,6 +17484,7 @@
17489
17484
  ],
17490
17485
  "responses": {
17491
17486
  "200": {
17487
+ "description": "OK",
17492
17488
  "headers": {
17493
17489
  "Content-Type": {
17494
17490
  "$ref": "#/components/headers/Content-Type"
@@ -17512,11 +17508,10 @@
17512
17508
  "$ref": "#/components/headers/Idempotency-Replay"
17513
17509
  }
17514
17510
  },
17515
- "description": "",
17516
17511
  "content": {
17517
17512
  "application/json": {
17518
17513
  "schema": {
17519
- "$ref": "#/components/schemas/ActivitiesResponseDto"
17514
+ "$ref": "#/components/schemas/UnseenCountResponse"
17520
17515
  }
17521
17516
  }
17522
17517
  }
@@ -17937,7 +17932,7 @@
17937
17932
  }
17938
17933
  },
17939
17934
  "tags": [
17940
- "Messages"
17935
+ "Subscribers"
17941
17936
  ],
17942
17937
  "security": [
17943
17938
  {
@@ -17946,14 +17941,16 @@
17946
17941
  ]
17947
17942
  }
17948
17943
  },
17949
- "/v1/messages/{messageId}": {
17950
- "delete": {
17951
- "operationId": "MessagesController_deleteMessage",
17952
- "summary": "Delete message",
17953
- "description": "Deletes a message entity from the Novu platform",
17944
+ "/v1/subscribers/{subscriberId}/online-status": {
17945
+ "patch": {
17946
+ "operationId": "SubscribersV1Controller_updateSubscriberOnlineFlag",
17947
+ "x-speakeasy-name-override": "updateOnlineFlag",
17948
+ "x-speakeasy-group": "Subscribers.properties",
17949
+ "summary": "Update subscriber online status",
17950
+ "description": "Used to update the subscriber isOnline flag.",
17954
17951
  "parameters": [
17955
17952
  {
17956
- "name": "messageId",
17953
+ "name": "subscriberId",
17957
17954
  "required": true,
17958
17955
  "in": "path",
17959
17956
  "schema": {
@@ -17969,7 +17966,17 @@
17969
17966
  "type": "string"
17970
17967
  }
17971
17968
  }
17972
- ],
17969
+ ],
17970
+ "requestBody": {
17971
+ "required": true,
17972
+ "content": {
17973
+ "application/json": {
17974
+ "schema": {
17975
+ "$ref": "#/components/schemas/UpdateSubscriberOnlineFlagRequestDto"
17976
+ }
17977
+ }
17978
+ }
17979
+ },
17973
17980
  "responses": {
17974
17981
  "200": {
17975
17982
  "description": "OK",
@@ -17999,7 +18006,7 @@
17999
18006
  "content": {
18000
18007
  "application/json": {
18001
18008
  "schema": {
18002
- "$ref": "#/components/schemas/DeleteMessageResponseDto"
18009
+ "$ref": "#/components/schemas/SubscriberResponseDto"
18003
18010
  }
18004
18011
  }
18005
18012
  }
@@ -18420,7 +18427,7 @@
18420
18427
  }
18421
18428
  },
18422
18429
  "tags": [
18423
- "Messages"
18430
+ "Subscribers"
18424
18431
  ],
18425
18432
  "security": [
18426
18433
  {
@@ -18429,37 +18436,13 @@
18429
18436
  ]
18430
18437
  }
18431
18438
  },
18432
- "/v1/messages/transaction/{transactionId}": {
18433
- "delete": {
18434
- "operationId": "MessagesController_deleteMessagesByTransactionId",
18435
- "x-speakeasy-name-override": "deleteByTransactionId",
18436
- "summary": "Delete messages by transactionId",
18437
- "description": "Deletes messages entity from the Novu platform using TransactionId of message",
18439
+ "/v1/subscribers/bulk": {
18440
+ "post": {
18441
+ "operationId": "SubscribersV1Controller_bulkCreateSubscribers",
18442
+ "x-speakeasy-name-override": "createBulk",
18443
+ "summary": "Bulk create subscribers",
18444
+ "description": "\n Using this endpoint you can create multiple subscribers at once, to avoid multiple calls to the API.\n The bulk API is limited to 500 subscribers per request.\n ",
18438
18445
  "parameters": [
18439
- {
18440
- "name": "channel",
18441
- "required": false,
18442
- "in": "query",
18443
- "description": "The channel of the message to be deleted",
18444
- "schema": {
18445
- "enum": [
18446
- "in_app",
18447
- "email",
18448
- "sms",
18449
- "chat",
18450
- "push"
18451
- ],
18452
- "type": "string"
18453
- }
18454
- },
18455
- {
18456
- "name": "transactionId",
18457
- "required": true,
18458
- "in": "path",
18459
- "schema": {
18460
- "type": "string"
18461
- }
18462
- },
18463
18446
  {
18464
18447
  "name": "idempotency-key",
18465
18448
  "in": "header",
@@ -18470,8 +18453,19 @@
18470
18453
  }
18471
18454
  }
18472
18455
  ],
18456
+ "requestBody": {
18457
+ "required": true,
18458
+ "content": {
18459
+ "application/json": {
18460
+ "schema": {
18461
+ "$ref": "#/components/schemas/BulkSubscriberCreateDto"
18462
+ }
18463
+ }
18464
+ }
18465
+ },
18473
18466
  "responses": {
18474
- "204": {
18467
+ "201": {
18468
+ "description": "Created",
18475
18469
  "headers": {
18476
18470
  "Content-Type": {
18477
18471
  "$ref": "#/components/headers/Content-Type"
@@ -18495,7 +18489,13 @@
18495
18489
  "$ref": "#/components/headers/Idempotency-Replay"
18496
18490
  }
18497
18491
  },
18498
- "description": ""
18492
+ "content": {
18493
+ "application/json": {
18494
+ "schema": {
18495
+ "$ref": "#/components/schemas/BulkCreateSubscriberResponseDto"
18496
+ }
18497
+ }
18498
+ }
18499
18499
  },
18500
18500
  "400": {
18501
18501
  "description": "Bad Request",
@@ -18913,7 +18913,7 @@
18913
18913
  }
18914
18914
  },
18915
18915
  "tags": [
18916
- "Messages"
18916
+ "Subscribers"
18917
18917
  ],
18918
18918
  "security": [
18919
18919
  {
@@ -19914,13 +19914,11 @@
19914
19914
  ]
19915
19915
  }
19916
19916
  },
19917
- "/v1/topics/{topicKey}/subscribers": {
19918
- "post": {
19919
- "operationId": "TopicsController_assign",
19920
- "x-speakeasy-name-override": "assign",
19921
- "x-speakeasy-group": "Topics.Subscribers",
19922
- "summary": "Subscribers addition",
19923
- "description": "Add subscribers to a topic by key",
19917
+ "/v1/topics/{topicKey}": {
19918
+ "delete": {
19919
+ "operationId": "TopicsController_deleteTopic",
19920
+ "summary": "Delete topic",
19921
+ "description": "Delete a topic by its topic key if it has no subscribers",
19924
19922
  "parameters": [
19925
19923
  {
19926
19924
  "name": "topicKey",
@@ -19941,18 +19939,9 @@
19941
19939
  }
19942
19940
  }
19943
19941
  ],
19944
- "requestBody": {
19945
- "required": true,
19946
- "content": {
19947
- "application/json": {
19948
- "schema": {
19949
- "$ref": "#/components/schemas/AddSubscribersRequestDto"
19950
- }
19951
- }
19952
- }
19953
- },
19954
19942
  "responses": {
19955
- "200": {
19943
+ "204": {
19944
+ "description": "The topic has been deleted correctly",
19956
19945
  "headers": {
19957
19946
  "Content-Type": {
19958
19947
  "$ref": "#/components/headers/Content-Type"
@@ -19975,14 +19964,6 @@
19975
19964
  "Idempotency-Replay": {
19976
19965
  "$ref": "#/components/headers/Idempotency-Replay"
19977
19966
  }
19978
- },
19979
- "description": "",
19980
- "content": {
19981
- "application/json": {
19982
- "schema": {
19983
- "$ref": "#/components/schemas/AssignSubscriberToTopicDto"
19984
- }
19985
- }
19986
19967
  }
19987
19968
  },
19988
19969
  "400": {
@@ -20408,24 +20389,12 @@
20408
20389
  "secretKey": []
20409
20390
  }
20410
20391
  ]
20411
- }
20412
- },
20413
- "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": {
20392
+ },
20414
20393
  "get": {
20415
- "operationId": "TopicsController_getTopicSubscriber",
20416
- "x-speakeasy-group": "Topics.Subscribers",
20417
- "summary": "Check topic subscriber",
20418
- "description": "Check if a subscriber belongs to a certain topic",
20394
+ "operationId": "TopicsController_getTopic",
20395
+ "summary": "Get topic",
20396
+ "description": "Get a topic by its topic key",
20419
20397
  "parameters": [
20420
- {
20421
- "name": "externalSubscriberId",
20422
- "required": true,
20423
- "in": "path",
20424
- "description": "The external subscriber id",
20425
- "schema": {
20426
- "type": "string"
20427
- }
20428
- },
20429
20398
  {
20430
20399
  "name": "topicKey",
20431
20400
  "required": true,
@@ -20447,6 +20416,7 @@
20447
20416
  ],
20448
20417
  "responses": {
20449
20418
  "200": {
20419
+ "description": "OK",
20450
20420
  "headers": {
20451
20421
  "Content-Type": {
20452
20422
  "$ref": "#/components/headers/Content-Type"
@@ -20470,11 +20440,10 @@
20470
20440
  "$ref": "#/components/headers/Idempotency-Replay"
20471
20441
  }
20472
20442
  },
20473
- "description": "",
20474
20443
  "content": {
20475
20444
  "application/json": {
20476
20445
  "schema": {
20477
- "$ref": "#/components/schemas/TopicSubscriberDto"
20446
+ "$ref": "#/components/schemas/GetTopicResponseDto"
20478
20447
  }
20479
20448
  }
20480
20449
  }
@@ -20902,15 +20871,12 @@
20902
20871
  "secretKey": []
20903
20872
  }
20904
20873
  ]
20905
- }
20906
- },
20907
- "/v1/topics/{topicKey}/subscribers/removal": {
20908
- "post": {
20909
- "operationId": "TopicsController_removeSubscribers",
20910
- "x-speakeasy-name-override": "remove",
20911
- "x-speakeasy-group": "Topics.Subscribers",
20912
- "summary": "Subscribers removal",
20913
- "description": "Remove subscribers from a topic",
20874
+ },
20875
+ "patch": {
20876
+ "operationId": "TopicsController_renameTopic",
20877
+ "x-speakeasy-name-override": "rename",
20878
+ "summary": "Rename a topic",
20879
+ "description": "Rename a topic by providing a new name",
20914
20880
  "parameters": [
20915
20881
  {
20916
20882
  "name": "topicKey",
@@ -20936,13 +20902,14 @@
20936
20902
  "content": {
20937
20903
  "application/json": {
20938
20904
  "schema": {
20939
- "$ref": "#/components/schemas/RemoveSubscribersRequestDto"
20905
+ "$ref": "#/components/schemas/RenameTopicRequestDto"
20940
20906
  }
20941
20907
  }
20942
20908
  }
20943
20909
  },
20944
20910
  "responses": {
20945
- "204": {
20911
+ "200": {
20912
+ "description": "OK",
20946
20913
  "headers": {
20947
20914
  "Content-Type": {
20948
20915
  "$ref": "#/components/headers/Content-Type"
@@ -20966,7 +20933,13 @@
20966
20933
  "$ref": "#/components/headers/Idempotency-Replay"
20967
20934
  }
20968
20935
  },
20969
- "description": ""
20936
+ "content": {
20937
+ "application/json": {
20938
+ "schema": {
20939
+ "$ref": "#/components/schemas/RenameTopicResponseDto"
20940
+ }
20941
+ }
20942
+ }
20970
20943
  },
20971
20944
  "400": {
20972
20945
  "description": "Bad Request",
@@ -21393,11 +21366,13 @@
21393
21366
  ]
21394
21367
  }
21395
21368
  },
21396
- "/v1/topics/{topicKey}": {
21397
- "delete": {
21398
- "operationId": "TopicsController_deleteTopic",
21399
- "summary": "Delete topic",
21400
- "description": "Delete a topic by its topic key if it has no subscribers",
21369
+ "/v1/topics/{topicKey}/subscribers": {
21370
+ "post": {
21371
+ "operationId": "TopicsController_assign",
21372
+ "x-speakeasy-name-override": "assign",
21373
+ "x-speakeasy-group": "Topics.Subscribers",
21374
+ "summary": "Subscribers addition",
21375
+ "description": "Add subscribers to a topic by key",
21401
21376
  "parameters": [
21402
21377
  {
21403
21378
  "name": "topicKey",
@@ -21418,9 +21393,18 @@
21418
21393
  }
21419
21394
  }
21420
21395
  ],
21396
+ "requestBody": {
21397
+ "required": true,
21398
+ "content": {
21399
+ "application/json": {
21400
+ "schema": {
21401
+ "$ref": "#/components/schemas/AddSubscribersRequestDto"
21402
+ }
21403
+ }
21404
+ }
21405
+ },
21421
21406
  "responses": {
21422
- "204": {
21423
- "description": "The topic has been deleted correctly",
21407
+ "200": {
21424
21408
  "headers": {
21425
21409
  "Content-Type": {
21426
21410
  "$ref": "#/components/headers/Content-Type"
@@ -21443,6 +21427,14 @@
21443
21427
  "Idempotency-Replay": {
21444
21428
  "$ref": "#/components/headers/Idempotency-Replay"
21445
21429
  }
21430
+ },
21431
+ "description": "",
21432
+ "content": {
21433
+ "application/json": {
21434
+ "schema": {
21435
+ "$ref": "#/components/schemas/AssignSubscriberToTopicDto"
21436
+ }
21437
+ }
21446
21438
  }
21447
21439
  },
21448
21440
  "400": {
@@ -21868,12 +21860,24 @@
21868
21860
  "secretKey": []
21869
21861
  }
21870
21862
  ]
21871
- },
21863
+ }
21864
+ },
21865
+ "/v1/topics/{topicKey}/subscribers/{externalSubscriberId}": {
21872
21866
  "get": {
21873
- "operationId": "TopicsController_getTopic",
21874
- "summary": "Get topic",
21875
- "description": "Get a topic by its topic key",
21867
+ "operationId": "TopicsController_getTopicSubscriber",
21868
+ "x-speakeasy-group": "Topics.Subscribers",
21869
+ "summary": "Check topic subscriber",
21870
+ "description": "Check if a subscriber belongs to a certain topic",
21876
21871
  "parameters": [
21872
+ {
21873
+ "name": "externalSubscriberId",
21874
+ "required": true,
21875
+ "in": "path",
21876
+ "description": "The external subscriber id",
21877
+ "schema": {
21878
+ "type": "string"
21879
+ }
21880
+ },
21877
21881
  {
21878
21882
  "name": "topicKey",
21879
21883
  "required": true,
@@ -21895,7 +21899,6 @@
21895
21899
  ],
21896
21900
  "responses": {
21897
21901
  "200": {
21898
- "description": "OK",
21899
21902
  "headers": {
21900
21903
  "Content-Type": {
21901
21904
  "$ref": "#/components/headers/Content-Type"
@@ -21919,10 +21922,11 @@
21919
21922
  "$ref": "#/components/headers/Idempotency-Replay"
21920
21923
  }
21921
21924
  },
21925
+ "description": "",
21922
21926
  "content": {
21923
21927
  "application/json": {
21924
21928
  "schema": {
21925
- "$ref": "#/components/schemas/GetTopicResponseDto"
21929
+ "$ref": "#/components/schemas/TopicSubscriberDto"
21926
21930
  }
21927
21931
  }
21928
21932
  }
@@ -22350,12 +22354,15 @@
22350
22354
  "secretKey": []
22351
22355
  }
22352
22356
  ]
22353
- },
22354
- "patch": {
22355
- "operationId": "TopicsController_renameTopic",
22356
- "x-speakeasy-name-override": "rename",
22357
- "summary": "Rename a topic",
22358
- "description": "Rename a topic by providing a new name",
22357
+ }
22358
+ },
22359
+ "/v1/topics/{topicKey}/subscribers/removal": {
22360
+ "post": {
22361
+ "operationId": "TopicsController_removeSubscribers",
22362
+ "x-speakeasy-name-override": "remove",
22363
+ "x-speakeasy-group": "Topics.Subscribers",
22364
+ "summary": "Subscribers removal",
22365
+ "description": "Remove subscribers from a topic",
22359
22366
  "parameters": [
22360
22367
  {
22361
22368
  "name": "topicKey",
@@ -22381,14 +22388,13 @@
22381
22388
  "content": {
22382
22389
  "application/json": {
22383
22390
  "schema": {
22384
- "$ref": "#/components/schemas/RenameTopicRequestDto"
22391
+ "$ref": "#/components/schemas/RemoveSubscribersRequestDto"
22385
22392
  }
22386
22393
  }
22387
22394
  }
22388
22395
  },
22389
22396
  "responses": {
22390
- "200": {
22391
- "description": "OK",
22397
+ "204": {
22392
22398
  "headers": {
22393
22399
  "Content-Type": {
22394
22400
  "$ref": "#/components/headers/Content-Type"
@@ -22412,13 +22418,7 @@
22412
22418
  "$ref": "#/components/headers/Idempotency-Replay"
22413
22419
  }
22414
22420
  },
22415
- "content": {
22416
- "application/json": {
22417
- "schema": {
22418
- "$ref": "#/components/schemas/RenameTopicResponseDto"
22419
- }
22420
- }
22421
- }
22421
+ "description": ""
22422
22422
  },
22423
22423
  "400": {
22424
22424
  "description": "Bad Request",
@@ -23663,17 +23663,6 @@
23663
23663
  "payload"
23664
23664
  ]
23665
23665
  },
23666
- "DataBooleanDto": {
23667
- "type": "object",
23668
- "properties": {
23669
- "data": {
23670
- "type": "boolean"
23671
- }
23672
- },
23673
- "required": [
23674
- "data"
23675
- ]
23676
- },
23677
23666
  "ChannelTypeEnum": {
23678
23667
  "type": "string",
23679
23668
  "description": "Channel type through which the message is sent",
@@ -24330,6 +24319,15 @@
24330
24319
  }
24331
24320
  ]
24332
24321
  },
24322
+ "overrides": {
24323
+ "type": "object",
24324
+ "description": "Optional context object for additional error details.",
24325
+ "additionalProperties": true,
24326
+ "example": {
24327
+ "workflowId": "some_wf_id",
24328
+ "stepId": "some_wf_id"
24329
+ }
24330
+ },
24333
24331
  "payload": {
24334
24332
  "type": "object",
24335
24333
  "description": "Optional payload for the job"