magicbell-js 0.0.3 → 0.0.4

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 (292) hide show
  1. package/package.json +2 -1
  2. package/src/project-client/http/client.ts +71 -0
  3. package/src/project-client/http/environment.ts +3 -0
  4. package/src/project-client/http/error.ts +14 -0
  5. package/src/project-client/http/errors/validation-error.ts +25 -0
  6. package/src/project-client/http/handlers/handler-chain.ts +30 -0
  7. package/src/project-client/http/handlers/hook-handler.ts +78 -0
  8. package/src/project-client/http/handlers/request-validation-handler.ts +111 -0
  9. package/src/project-client/http/handlers/response-validation-handler.ts +203 -0
  10. package/src/project-client/http/handlers/retry-handler.ts +60 -0
  11. package/src/project-client/http/handlers/terminating-handler.ts +14 -0
  12. package/src/project-client/http/hooks/custom-hook.ts +25 -0
  13. package/src/project-client/http/hooks/hook.ts +41 -0
  14. package/src/project-client/http/index.ts +11 -0
  15. package/src/project-client/http/serialization/base-serializer.ts +139 -0
  16. package/src/project-client/http/serialization/header-serializer.ts +19 -0
  17. package/src/project-client/http/serialization/path-serializer.ts +12 -0
  18. package/src/project-client/http/serialization/query-serializer.ts +18 -0
  19. package/src/project-client/http/transport/request-builder.ts +242 -0
  20. package/src/project-client/http/transport/request-fetch-adapter.ts +131 -0
  21. package/src/project-client/http/transport/request.ts +222 -0
  22. package/src/project-client/http/transport/transport-hook-adapter.ts +91 -0
  23. package/src/project-client/http/transport/types.ts +50 -0
  24. package/src/project-client/http/types.ts +74 -0
  25. package/src/project-client/http/utils/content-type.ts +33 -0
  26. package/src/project-client/http/utils/line-decoder.ts +35 -0
  27. package/src/project-client/http/utils/response-matcher.ts +25 -0
  28. package/src/project-client/index.ts +94 -0
  29. package/src/project-client/services/base-service.ts +27 -0
  30. package/src/project-client/services/broadcasts/broadcasts-service.ts +115 -0
  31. package/src/project-client/services/broadcasts/index.ts +2 -0
  32. package/src/project-client/services/broadcasts/models/broadcast-collection.ts +54 -0
  33. package/src/project-client/services/broadcasts/models/broadcast-status.ts +60 -0
  34. package/src/project-client/services/broadcasts/models/broadcast.ts +143 -0
  35. package/src/project-client/services/broadcasts/models/email.ts +57 -0
  36. package/src/project-client/services/broadcasts/models/errors.ts +45 -0
  37. package/src/project-client/services/broadcasts/models/in-app.ts +57 -0
  38. package/src/project-client/services/broadcasts/models/index.ts +15 -0
  39. package/src/project-client/services/broadcasts/models/mobile-push.ts +57 -0
  40. package/src/project-client/services/broadcasts/models/overrides-channels.ts +82 -0
  41. package/src/project-client/services/broadcasts/models/overrides.ts +59 -0
  42. package/src/project-client/services/broadcasts/models/providers.ts +81 -0
  43. package/src/project-client/services/broadcasts/models/slack.ts +57 -0
  44. package/src/project-client/services/broadcasts/models/sms.ts +57 -0
  45. package/src/project-client/services/broadcasts/models/status-status.ts +7 -0
  46. package/src/project-client/services/broadcasts/models/summary.ts +51 -0
  47. package/src/project-client/services/broadcasts/models/web-push.ts +57 -0
  48. package/src/project-client/services/broadcasts/request-params.ts +5 -0
  49. package/src/project-client/services/channels/channels-service.ts +1017 -0
  50. package/src/project-client/services/channels/index.ts +2 -0
  51. package/src/project-client/services/channels/models/apns-token-collection.ts +54 -0
  52. package/src/project-client/services/channels/models/apns-token-installation-id.ts +6 -0
  53. package/src/project-client/services/channels/models/apns-token.ts +90 -0
  54. package/src/project-client/services/channels/models/category-delivery-config-channels.ts +57 -0
  55. package/src/project-client/services/channels/models/category-delivery-config.ts +73 -0
  56. package/src/project-client/services/channels/models/channel.ts +11 -0
  57. package/src/project-client/services/channels/models/discard-result.ts +51 -0
  58. package/src/project-client/services/channels/models/expo-token-collection.ts +54 -0
  59. package/src/project-client/services/channels/models/expo-token.ts +69 -0
  60. package/src/project-client/services/channels/models/fcm-token-collection.ts +54 -0
  61. package/src/project-client/services/channels/models/fcm-token-installation-id.ts +6 -0
  62. package/src/project-client/services/channels/models/fcm-token.ts +75 -0
  63. package/src/project-client/services/channels/models/inbox-token-response-collection.ts +59 -0
  64. package/src/project-client/services/channels/models/inbox-token-response.ts +75 -0
  65. package/src/project-client/services/channels/models/index.ts +24 -0
  66. package/src/project-client/services/channels/models/keys.ts +51 -0
  67. package/src/project-client/services/channels/models/oauth.ts +57 -0
  68. package/src/project-client/services/channels/models/slack-token-collection.ts +54 -0
  69. package/src/project-client/services/channels/models/slack-token-webhook.ts +45 -0
  70. package/src/project-client/services/channels/models/slack-token.ts +83 -0
  71. package/src/project-client/services/channels/models/teams-token-collection.ts +54 -0
  72. package/src/project-client/services/channels/models/teams-token-webhook.ts +45 -0
  73. package/src/project-client/services/channels/models/teams-token.ts +76 -0
  74. package/src/project-client/services/channels/models/web-push-token-collection.ts +54 -0
  75. package/src/project-client/services/channels/models/web-push-token.ts +77 -0
  76. package/src/project-client/services/channels/request-params.ts +45 -0
  77. package/src/project-client/services/common/index.ts +1 -0
  78. package/src/project-client/services/common/links.ts +57 -0
  79. package/src/project-client/services/events/events-service.ts +84 -0
  80. package/src/project-client/services/events/index.ts +2 -0
  81. package/src/project-client/services/events/models/event-collection.ts +54 -0
  82. package/src/project-client/services/events/models/event.ts +81 -0
  83. package/src/project-client/services/events/models/index.ts +2 -0
  84. package/src/project-client/services/events/request-params.ts +5 -0
  85. package/src/project-client/services/integrations/index.ts +2 -0
  86. package/src/project-client/services/integrations/integrations-service.ts +1965 -0
  87. package/src/project-client/services/integrations/models/apns-config-collection.ts +54 -0
  88. package/src/project-client/services/integrations/models/apns-config-payload.ts +81 -0
  89. package/src/project-client/services/integrations/models/apns-config.ts +64 -0
  90. package/src/project-client/services/integrations/models/awssns-config-collection.ts +54 -0
  91. package/src/project-client/services/integrations/models/awssns-config-payload.ts +45 -0
  92. package/src/project-client/services/integrations/models/awssns-config.ts +64 -0
  93. package/src/project-client/services/integrations/models/badge.ts +6 -0
  94. package/src/project-client/services/integrations/models/banner.ts +63 -0
  95. package/src/project-client/services/integrations/models/default-hover.ts +45 -0
  96. package/src/project-client/services/integrations/models/default-state.ts +45 -0
  97. package/src/project-client/services/integrations/models/default_.ts +90 -0
  98. package/src/project-client/services/integrations/models/dialog.ts +57 -0
  99. package/src/project-client/services/integrations/models/event-source-config-collection.ts +59 -0
  100. package/src/project-client/services/integrations/models/event-source-config-payload.ts +45 -0
  101. package/src/project-client/services/integrations/models/event-source-config.ts +64 -0
  102. package/src/project-client/services/integrations/models/expo-config-collection.ts +54 -0
  103. package/src/project-client/services/integrations/models/expo-config-payload.ts +45 -0
  104. package/src/project-client/services/integrations/models/expo-config.ts +64 -0
  105. package/src/project-client/services/integrations/models/fcm-config-collection.ts +54 -0
  106. package/src/project-client/services/integrations/models/fcm-config-payload.ts +105 -0
  107. package/src/project-client/services/integrations/models/fcm-config.ts +64 -0
  108. package/src/project-client/services/integrations/models/footer.ts +63 -0
  109. package/src/project-client/services/integrations/models/github-config-collection.ts +54 -0
  110. package/src/project-client/services/integrations/models/github-config-payload.ts +45 -0
  111. package/src/project-client/services/integrations/models/github-config.ts +64 -0
  112. package/src/project-client/services/integrations/models/header.ts +69 -0
  113. package/src/project-client/services/integrations/models/icon.ts +51 -0
  114. package/src/project-client/services/integrations/models/images.ts +45 -0
  115. package/src/project-client/services/integrations/models/inbox-config-collection.ts +54 -0
  116. package/src/project-client/services/integrations/models/inbox-config-payload.ts +60 -0
  117. package/src/project-client/services/integrations/models/inbox-config.ts +64 -0
  118. package/src/project-client/services/integrations/models/index.ts +75 -0
  119. package/src/project-client/services/integrations/models/integration-config-collection.ts +59 -0
  120. package/src/project-client/services/integrations/models/integration-config.ts +57 -0
  121. package/src/project-client/services/integrations/models/mailgun-config-collection.ts +54 -0
  122. package/src/project-client/services/integrations/models/mailgun-config-payload-from.ts +51 -0
  123. package/src/project-client/services/integrations/models/mailgun-config-payload.ts +70 -0
  124. package/src/project-client/services/integrations/models/mailgun-config.ts +64 -0
  125. package/src/project-client/services/integrations/models/notification.ts +61 -0
  126. package/src/project-client/services/integrations/models/payload-version.ts +6 -0
  127. package/src/project-client/services/integrations/models/ping-config-collection.ts +54 -0
  128. package/src/project-client/services/integrations/models/ping-config-payload.ts +45 -0
  129. package/src/project-client/services/integrations/models/ping-config.ts +64 -0
  130. package/src/project-client/services/integrations/models/region.ts +6 -0
  131. package/src/project-client/services/integrations/models/reply-to.ts +51 -0
  132. package/src/project-client/services/integrations/models/sendgrid-config-collection.ts +54 -0
  133. package/src/project-client/services/integrations/models/sendgrid-config-payload-from.ts +51 -0
  134. package/src/project-client/services/integrations/models/sendgrid-config-payload.ts +65 -0
  135. package/src/project-client/services/integrations/models/sendgrid-config.ts +64 -0
  136. package/src/project-client/services/integrations/models/ses-config-collection.ts +54 -0
  137. package/src/project-client/services/integrations/models/ses-config-payload-from.ts +51 -0
  138. package/src/project-client/services/integrations/models/ses-config-payload.ts +70 -0
  139. package/src/project-client/services/integrations/models/ses-config.ts +64 -0
  140. package/src/project-client/services/integrations/models/slack-config-collection.ts +54 -0
  141. package/src/project-client/services/integrations/models/slack-config-payload.ts +63 -0
  142. package/src/project-client/services/integrations/models/slack-config.ts +64 -0
  143. package/src/project-client/services/integrations/models/stripe-config-collection.ts +54 -0
  144. package/src/project-client/services/integrations/models/stripe-config-payload.ts +45 -0
  145. package/src/project-client/services/integrations/models/stripe-config.ts +64 -0
  146. package/src/project-client/services/integrations/models/templates-config-collection.ts +59 -0
  147. package/src/project-client/services/integrations/models/templates-config.ts +57 -0
  148. package/src/project-client/services/integrations/models/theme.ts +89 -0
  149. package/src/project-client/services/integrations/models/twilio-config-collection.ts +54 -0
  150. package/src/project-client/services/integrations/models/twilio-config-payload.ts +75 -0
  151. package/src/project-client/services/integrations/models/twilio-config.ts +64 -0
  152. package/src/project-client/services/integrations/models/type_.ts +5 -0
  153. package/src/project-client/services/integrations/models/unread-hover.ts +45 -0
  154. package/src/project-client/services/integrations/models/unread-state.ts +45 -0
  155. package/src/project-client/services/integrations/models/unread.ts +66 -0
  156. package/src/project-client/services/integrations/models/unseen-badge.ts +45 -0
  157. package/src/project-client/services/integrations/models/unseen-hover.ts +45 -0
  158. package/src/project-client/services/integrations/models/unseen-state.ts +45 -0
  159. package/src/project-client/services/integrations/models/unseen.ts +66 -0
  160. package/src/project-client/services/integrations/models/webpush-config-collection.ts +54 -0
  161. package/src/project-client/services/integrations/models/webpush-config-payload.ts +51 -0
  162. package/src/project-client/services/integrations/models/webpush-config.ts +64 -0
  163. package/src/project-client/services/integrations/request-params.ts +5 -0
  164. package/src/project-client/services/jwt/index.ts +2 -0
  165. package/src/project-client/services/jwt/jwt-service.ts +233 -0
  166. package/src/project-client/services/jwt/models/access-token-collection.ts +54 -0
  167. package/src/project-client/services/jwt/models/access-token.ts +69 -0
  168. package/src/project-client/services/jwt/models/create-project-token-request.ts +51 -0
  169. package/src/project-client/services/jwt/models/create-token-response.ts +63 -0
  170. package/src/project-client/services/jwt/models/create-user-token-request.ts +63 -0
  171. package/src/project-client/services/jwt/models/discard-token-response.ts +51 -0
  172. package/src/project-client/services/jwt/models/index.ts +6 -0
  173. package/src/project-client/services/jwt/request-params.ts +11 -0
  174. package/src/project-client/services/notifications/index.ts +2 -0
  175. package/src/project-client/services/notifications/models/delivery-plan-collection.ts +54 -0
  176. package/src/project-client/services/notifications/models/delivery-plan.ts +93 -0
  177. package/src/project-client/services/notifications/models/index.ts +2 -0
  178. package/src/project-client/services/notifications/notifications-service.ts +44 -0
  179. package/src/project-client/services/users/index.ts +2 -0
  180. package/src/project-client/services/users/models/index.ts +2 -0
  181. package/src/project-client/services/users/models/user-collection.ts +54 -0
  182. package/src/project-client/services/users/models/user.ts +99 -0
  183. package/src/project-client/services/users/request-params.ts +6 -0
  184. package/src/project-client/services/users/users-service.ts +117 -0
  185. package/src/project-client.ts +1 -0
  186. package/src/user-client/http/client.ts +71 -0
  187. package/src/user-client/http/environment.ts +3 -0
  188. package/src/user-client/http/error.ts +14 -0
  189. package/src/user-client/http/errors/validation-error.ts +25 -0
  190. package/src/user-client/http/handlers/handler-chain.ts +30 -0
  191. package/src/user-client/http/handlers/hook-handler.ts +78 -0
  192. package/src/user-client/http/handlers/request-validation-handler.ts +111 -0
  193. package/src/user-client/http/handlers/response-validation-handler.ts +203 -0
  194. package/src/user-client/http/handlers/retry-handler.ts +60 -0
  195. package/src/user-client/http/handlers/terminating-handler.ts +14 -0
  196. package/src/user-client/http/hooks/custom-hook.ts +25 -0
  197. package/src/user-client/http/hooks/hook.ts +41 -0
  198. package/src/user-client/http/index.ts +11 -0
  199. package/src/user-client/http/serialization/base-serializer.ts +139 -0
  200. package/src/user-client/http/serialization/header-serializer.ts +19 -0
  201. package/src/user-client/http/serialization/path-serializer.ts +12 -0
  202. package/src/user-client/http/serialization/query-serializer.ts +18 -0
  203. package/src/user-client/http/transport/request-builder.ts +242 -0
  204. package/src/user-client/http/transport/request-fetch-adapter.ts +131 -0
  205. package/src/user-client/http/transport/request.ts +222 -0
  206. package/src/user-client/http/transport/transport-hook-adapter.ts +91 -0
  207. package/src/user-client/http/transport/types.ts +50 -0
  208. package/src/user-client/http/types.ts +74 -0
  209. package/src/user-client/http/utils/content-type.ts +33 -0
  210. package/src/user-client/http/utils/line-decoder.ts +35 -0
  211. package/src/user-client/http/utils/response-matcher.ts +25 -0
  212. package/src/user-client/index.ts +54 -0
  213. package/src/user-client/services/base-service.ts +27 -0
  214. package/src/user-client/services/channels/channels-service.ts +1020 -0
  215. package/src/user-client/services/channels/index.ts +2 -0
  216. package/src/user-client/services/channels/models/apns-token-collection.ts +54 -0
  217. package/src/user-client/services/channels/models/apns-token-installation-id.ts +6 -0
  218. package/src/user-client/services/channels/models/apns-token-payload-installation-id.ts +6 -0
  219. package/src/user-client/services/channels/models/apns-token-payload.ts +66 -0
  220. package/src/user-client/services/channels/models/apns-token.ts +90 -0
  221. package/src/user-client/services/channels/models/discard-result.ts +51 -0
  222. package/src/user-client/services/channels/models/expo-token-collection.ts +54 -0
  223. package/src/user-client/services/channels/models/expo-token-payload.ts +45 -0
  224. package/src/user-client/services/channels/models/expo-token.ts +69 -0
  225. package/src/user-client/services/channels/models/fcm-token-collection.ts +54 -0
  226. package/src/user-client/services/channels/models/fcm-token-installation-id.ts +6 -0
  227. package/src/user-client/services/channels/models/fcm-token-payload-installation-id.ts +6 -0
  228. package/src/user-client/services/channels/models/fcm-token-payload.ts +51 -0
  229. package/src/user-client/services/channels/models/fcm-token.ts +75 -0
  230. package/src/user-client/services/channels/models/inbox-token-response-collection.ts +59 -0
  231. package/src/user-client/services/channels/models/inbox-token-response.ts +75 -0
  232. package/src/user-client/services/channels/models/inbox-token.ts +51 -0
  233. package/src/user-client/services/channels/models/index.ts +33 -0
  234. package/src/user-client/services/channels/models/slack-token-collection.ts +54 -0
  235. package/src/user-client/services/channels/models/slack-token-oauth.ts +57 -0
  236. package/src/user-client/services/channels/models/slack-token-payload-oauth.ts +57 -0
  237. package/src/user-client/services/channels/models/slack-token-payload-webhook.ts +45 -0
  238. package/src/user-client/services/channels/models/slack-token-payload.ts +64 -0
  239. package/src/user-client/services/channels/models/slack-token-webhook.ts +45 -0
  240. package/src/user-client/services/channels/models/slack-token.ts +88 -0
  241. package/src/user-client/services/channels/models/teams-token-collection.ts +54 -0
  242. package/src/user-client/services/channels/models/teams-token-payload-webhook.ts +45 -0
  243. package/src/user-client/services/channels/models/teams-token-payload.ts +52 -0
  244. package/src/user-client/services/channels/models/teams-token-webhook.ts +45 -0
  245. package/src/user-client/services/channels/models/teams-token.ts +76 -0
  246. package/src/user-client/services/channels/models/web-push-token-collection.ts +54 -0
  247. package/src/user-client/services/channels/models/web-push-token-keys.ts +51 -0
  248. package/src/user-client/services/channels/models/web-push-token-payload-keys.ts +51 -0
  249. package/src/user-client/services/channels/models/web-push-token.ts +82 -0
  250. package/src/user-client/services/channels/request-params.ts +41 -0
  251. package/src/user-client/services/common/index.ts +2 -0
  252. package/src/user-client/services/common/links.ts +57 -0
  253. package/src/user-client/services/common/web-push-token-payload.ts +58 -0
  254. package/src/user-client/services/integrations/index.ts +2 -0
  255. package/src/user-client/services/integrations/integrations-service.ts +278 -0
  256. package/src/user-client/services/integrations/models/authed-user.ts +75 -0
  257. package/src/user-client/services/integrations/models/banner.ts +63 -0
  258. package/src/user-client/services/integrations/models/default-hover.ts +45 -0
  259. package/src/user-client/services/integrations/models/default-state.ts +45 -0
  260. package/src/user-client/services/integrations/models/default_.ts +90 -0
  261. package/src/user-client/services/integrations/models/dialog.ts +57 -0
  262. package/src/user-client/services/integrations/models/enterprise.ts +51 -0
  263. package/src/user-client/services/integrations/models/footer.ts +63 -0
  264. package/src/user-client/services/integrations/models/header.ts +69 -0
  265. package/src/user-client/services/integrations/models/icon.ts +51 -0
  266. package/src/user-client/services/integrations/models/images.ts +45 -0
  267. package/src/user-client/services/integrations/models/inbox-config-payload.ts +60 -0
  268. package/src/user-client/services/integrations/models/incoming-webhook.ts +57 -0
  269. package/src/user-client/services/integrations/models/index.ts +29 -0
  270. package/src/user-client/services/integrations/models/slack-finish-install-response.ts +57 -0
  271. package/src/user-client/services/integrations/models/slack-installation.ts +136 -0
  272. package/src/user-client/services/integrations/models/slack-start-install-response-content.ts +57 -0
  273. package/src/user-client/services/integrations/models/slack-start-install.ts +63 -0
  274. package/src/user-client/services/integrations/models/team.ts +51 -0
  275. package/src/user-client/services/integrations/models/templates-installation.ts +57 -0
  276. package/src/user-client/services/integrations/models/theme-notification.ts +61 -0
  277. package/src/user-client/services/integrations/models/theme.ts +94 -0
  278. package/src/user-client/services/integrations/models/unread-hover.ts +45 -0
  279. package/src/user-client/services/integrations/models/unread-state.ts +45 -0
  280. package/src/user-client/services/integrations/models/unread.ts +66 -0
  281. package/src/user-client/services/integrations/models/unseen-badge.ts +45 -0
  282. package/src/user-client/services/integrations/models/unseen-hover.ts +45 -0
  283. package/src/user-client/services/integrations/models/unseen-state.ts +45 -0
  284. package/src/user-client/services/integrations/models/unseen.ts +66 -0
  285. package/src/user-client/services/integrations/models/web-push-start-installation-response.ts +51 -0
  286. package/src/user-client/services/notifications/index.ts +2 -0
  287. package/src/user-client/services/notifications/models/index.ts +2 -0
  288. package/src/user-client/services/notifications/models/notification-collection.ts +54 -0
  289. package/src/user-client/services/notifications/models/notification.ts +129 -0
  290. package/src/user-client/services/notifications/notifications-service.ts +189 -0
  291. package/src/user-client/services/notifications/request-params.ts +7 -0
  292. package/src/user-client.ts +1 -0
@@ -0,0 +1,1020 @@
1
+ import { z } from 'zod';
2
+
3
+ import { Environment } from '../../http/environment.js';
4
+ import { SerializationStyle } from '../../http/serialization/base-serializer.js';
5
+ import { RequestBuilder } from '../../http/transport/request-builder.js';
6
+ import { ContentType, HttpResponse, RequestConfig } from '../../http/types.js';
7
+ import { BaseService } from '../base-service.js';
8
+ import {
9
+ WebPushTokenPayload,
10
+ webPushTokenPayloadRequest,
11
+ webPushTokenPayloadResponse,
12
+ } from '../common/web-push-token-payload.js';
13
+ import { ApnsToken, apnsTokenResponse } from './models/apns-token.js';
14
+ import { ApnsTokenCollection, apnsTokenCollectionResponse } from './models/apns-token-collection.js';
15
+ import { ApnsTokenPayload, apnsTokenPayloadRequest, apnsTokenPayloadResponse } from './models/apns-token-payload.js';
16
+ import { DiscardResult, discardResultResponse } from './models/discard-result.js';
17
+ import { ExpoToken, expoTokenResponse } from './models/expo-token.js';
18
+ import { ExpoTokenCollection, expoTokenCollectionResponse } from './models/expo-token-collection.js';
19
+ import { ExpoTokenPayload, expoTokenPayloadRequest, expoTokenPayloadResponse } from './models/expo-token-payload.js';
20
+ import { FcmToken, fcmTokenResponse } from './models/fcm-token.js';
21
+ import { FcmTokenCollection, fcmTokenCollectionResponse } from './models/fcm-token-collection.js';
22
+ import { FcmTokenPayload, fcmTokenPayloadRequest, fcmTokenPayloadResponse } from './models/fcm-token-payload.js';
23
+ import { InboxToken, inboxTokenRequest, inboxTokenResponse1 } from './models/inbox-token.js';
24
+ import { InboxTokenResponse, inboxTokenResponseResponse } from './models/inbox-token-response.js';
25
+ import {
26
+ InboxTokenResponseCollection,
27
+ inboxTokenResponseCollectionResponse,
28
+ } from './models/inbox-token-response-collection.js';
29
+ import { SlackToken, slackTokenResponse } from './models/slack-token.js';
30
+ import { SlackTokenCollection, slackTokenCollectionResponse } from './models/slack-token-collection.js';
31
+ import {
32
+ SlackTokenPayload,
33
+ slackTokenPayloadRequest,
34
+ slackTokenPayloadResponse,
35
+ } from './models/slack-token-payload.js';
36
+ import { TeamsToken, teamsTokenResponse } from './models/teams-token.js';
37
+ import { TeamsTokenCollection, teamsTokenCollectionResponse } from './models/teams-token-collection.js';
38
+ import {
39
+ TeamsTokenPayload,
40
+ teamsTokenPayloadRequest,
41
+ teamsTokenPayloadResponse,
42
+ } from './models/teams-token-payload.js';
43
+ import { WebPushToken, webPushTokenResponse } from './models/web-push-token.js';
44
+ import { WebPushTokenCollection, webPushTokenCollectionResponse } from './models/web-push-token-collection.js';
45
+ import {
46
+ GetInAppInboxTokensParams,
47
+ GetMobilePushApnsTokensParams,
48
+ GetMobilePushExpoTokensParams,
49
+ GetMobilePushFcmTokensParams,
50
+ GetSlackTokensParams,
51
+ GetTeamsTokensParams,
52
+ GetWebPushTokensParams,
53
+ } from './request-params.js';
54
+
55
+ export class ChannelsService extends BaseService {
56
+ /**
57
+ * Lists all in_app tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
58
+ * @param {number} [params.limit] -
59
+ * @param {string} [params.startingAfter] -
60
+ * @param {string} [params.endingBefore] -
61
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
62
+ * @returns {Promise<HttpResponse<InboxTokenResponseCollection>>} OK
63
+ */
64
+ async getInAppInboxTokens(
65
+ params?: GetInAppInboxTokensParams,
66
+ requestConfig?: RequestConfig,
67
+ ): Promise<HttpResponse<InboxTokenResponseCollection>> {
68
+ const request = new RequestBuilder()
69
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
70
+ .setConfig(this.config)
71
+ .setMethod('GET')
72
+ .setPath('/channels/in_app/inbox/tokens')
73
+ .setRequestSchema(z.any())
74
+ .addAccessTokenAuth(this.config.token, 'Bearer')
75
+ .setRequestContentType(ContentType.Json)
76
+ .addResponse({
77
+ schema: inboxTokenResponseCollectionResponse,
78
+ contentType: ContentType.Json,
79
+ status: 200,
80
+ })
81
+ .setRetryAttempts(this.config, requestConfig)
82
+ .setRetryDelayMs(this.config, requestConfig)
83
+ .setResponseValidation(this.config, requestConfig)
84
+ .addQueryParam({
85
+ key: 'limit',
86
+ value: params?.limit,
87
+ })
88
+ .addQueryParam({
89
+ key: 'starting_after',
90
+ value: params?.startingAfter,
91
+ })
92
+ .addQueryParam({
93
+ key: 'ending_before',
94
+ value: params?.endingBefore,
95
+ })
96
+ .build();
97
+ return this.client.call<InboxTokenResponseCollection>(request);
98
+ }
99
+
100
+ /**
101
+ * Saves a in_app token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
102
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
103
+ * @returns {Promise<HttpResponse<InboxToken>>} Created
104
+ */
105
+ async saveInAppInboxToken(body: InboxToken, requestConfig?: RequestConfig): Promise<HttpResponse<InboxToken>> {
106
+ const request = new RequestBuilder()
107
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
108
+ .setConfig(this.config)
109
+ .setMethod('POST')
110
+ .setPath('/channels/in_app/inbox/tokens')
111
+ .setRequestSchema(inboxTokenRequest)
112
+ .addAccessTokenAuth(this.config.token, 'Bearer')
113
+ .setRequestContentType(ContentType.Json)
114
+ .addResponse({
115
+ schema: inboxTokenResponse1,
116
+ contentType: ContentType.Json,
117
+ status: 201,
118
+ })
119
+ .setRetryAttempts(this.config, requestConfig)
120
+ .setRetryDelayMs(this.config, requestConfig)
121
+ .setResponseValidation(this.config, requestConfig)
122
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
123
+ .addBody(body)
124
+ .build();
125
+ return this.client.call<InboxToken>(request);
126
+ }
127
+
128
+ /**
129
+ * Retrieves details of a specific in_app token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
130
+ * @param {string} tokenId -
131
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
132
+ * @returns {Promise<HttpResponse<InboxTokenResponse>>} OK
133
+ */
134
+ async getInAppInboxToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<InboxTokenResponse>> {
135
+ const request = new RequestBuilder()
136
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
137
+ .setConfig(this.config)
138
+ .setMethod('GET')
139
+ .setPath('/channels/in_app/inbox/tokens/{token_id}')
140
+ .setRequestSchema(z.any())
141
+ .addAccessTokenAuth(this.config.token, 'Bearer')
142
+ .setRequestContentType(ContentType.Json)
143
+ .addResponse({
144
+ schema: inboxTokenResponseResponse,
145
+ contentType: ContentType.Json,
146
+ status: 200,
147
+ })
148
+ .setRetryAttempts(this.config, requestConfig)
149
+ .setRetryDelayMs(this.config, requestConfig)
150
+ .setResponseValidation(this.config, requestConfig)
151
+ .addPathParam({
152
+ key: 'token_id',
153
+ value: tokenId,
154
+ })
155
+ .build();
156
+ return this.client.call<InboxTokenResponse>(request);
157
+ }
158
+
159
+ /**
160
+ * Revokes one of the authenticated user's in_app tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
161
+ * @param {string} tokenId -
162
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
163
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
164
+ */
165
+ async discardInAppInboxToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<DiscardResult>> {
166
+ const request = new RequestBuilder()
167
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
168
+ .setConfig(this.config)
169
+ .setMethod('DELETE')
170
+ .setPath('/channels/in_app/inbox/tokens/{token_id}')
171
+ .setRequestSchema(z.any())
172
+ .addAccessTokenAuth(this.config.token, 'Bearer')
173
+ .setRequestContentType(ContentType.Json)
174
+ .addResponse({
175
+ schema: discardResultResponse,
176
+ contentType: ContentType.Json,
177
+ status: 200,
178
+ })
179
+ .setRetryAttempts(this.config, requestConfig)
180
+ .setRetryDelayMs(this.config, requestConfig)
181
+ .setResponseValidation(this.config, requestConfig)
182
+ .addPathParam({
183
+ key: 'token_id',
184
+ value: tokenId,
185
+ })
186
+ .build();
187
+ return this.client.call<DiscardResult>(request);
188
+ }
189
+
190
+ /**
191
+ * Lists all mobile_push tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
192
+ * @param {number} [params.limit] -
193
+ * @param {string} [params.startingAfter] -
194
+ * @param {string} [params.endingBefore] -
195
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
196
+ * @returns {Promise<HttpResponse<ApnsTokenCollection>>} OK
197
+ */
198
+ async getMobilePushApnsTokens(
199
+ params?: GetMobilePushApnsTokensParams,
200
+ requestConfig?: RequestConfig,
201
+ ): Promise<HttpResponse<ApnsTokenCollection>> {
202
+ const request = new RequestBuilder()
203
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
204
+ .setConfig(this.config)
205
+ .setMethod('GET')
206
+ .setPath('/channels/mobile_push/apns/tokens')
207
+ .setRequestSchema(z.any())
208
+ .addAccessTokenAuth(this.config.token, 'Bearer')
209
+ .setRequestContentType(ContentType.Json)
210
+ .addResponse({
211
+ schema: apnsTokenCollectionResponse,
212
+ contentType: ContentType.Json,
213
+ status: 200,
214
+ })
215
+ .setRetryAttempts(this.config, requestConfig)
216
+ .setRetryDelayMs(this.config, requestConfig)
217
+ .setResponseValidation(this.config, requestConfig)
218
+ .addQueryParam({
219
+ key: 'limit',
220
+ value: params?.limit,
221
+ })
222
+ .addQueryParam({
223
+ key: 'starting_after',
224
+ value: params?.startingAfter,
225
+ })
226
+ .addQueryParam({
227
+ key: 'ending_before',
228
+ value: params?.endingBefore,
229
+ })
230
+ .build();
231
+ return this.client.call<ApnsTokenCollection>(request);
232
+ }
233
+
234
+ /**
235
+ * Saves a mobile_push token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
236
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
237
+ * @returns {Promise<HttpResponse<ApnsTokenPayload>>} Created
238
+ */
239
+ async saveMobilePushApnsToken(
240
+ body: ApnsTokenPayload,
241
+ requestConfig?: RequestConfig,
242
+ ): Promise<HttpResponse<ApnsTokenPayload>> {
243
+ const request = new RequestBuilder()
244
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
245
+ .setConfig(this.config)
246
+ .setMethod('POST')
247
+ .setPath('/channels/mobile_push/apns/tokens')
248
+ .setRequestSchema(apnsTokenPayloadRequest)
249
+ .addAccessTokenAuth(this.config.token, 'Bearer')
250
+ .setRequestContentType(ContentType.Json)
251
+ .addResponse({
252
+ schema: apnsTokenPayloadResponse,
253
+ contentType: ContentType.Json,
254
+ status: 201,
255
+ })
256
+ .setRetryAttempts(this.config, requestConfig)
257
+ .setRetryDelayMs(this.config, requestConfig)
258
+ .setResponseValidation(this.config, requestConfig)
259
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
260
+ .addBody(body)
261
+ .build();
262
+ return this.client.call<ApnsTokenPayload>(request);
263
+ }
264
+
265
+ /**
266
+ * Retrieves details of a specific mobile_push token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
267
+ * @param {string} tokenId -
268
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
269
+ * @returns {Promise<HttpResponse<ApnsToken>>} OK
270
+ */
271
+ async getMobilePushApnsToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<ApnsToken>> {
272
+ const request = new RequestBuilder()
273
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
274
+ .setConfig(this.config)
275
+ .setMethod('GET')
276
+ .setPath('/channels/mobile_push/apns/tokens/{token_id}')
277
+ .setRequestSchema(z.any())
278
+ .addAccessTokenAuth(this.config.token, 'Bearer')
279
+ .setRequestContentType(ContentType.Json)
280
+ .addResponse({
281
+ schema: apnsTokenResponse,
282
+ contentType: ContentType.Json,
283
+ status: 200,
284
+ })
285
+ .setRetryAttempts(this.config, requestConfig)
286
+ .setRetryDelayMs(this.config, requestConfig)
287
+ .setResponseValidation(this.config, requestConfig)
288
+ .addPathParam({
289
+ key: 'token_id',
290
+ value: tokenId,
291
+ })
292
+ .build();
293
+ return this.client.call<ApnsToken>(request);
294
+ }
295
+
296
+ /**
297
+ * Revokes one of the authenticated user's mobile_push tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
298
+ * @param {string} tokenId -
299
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
300
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
301
+ */
302
+ async discardMobilePushApnsToken(
303
+ tokenId: string,
304
+ requestConfig?: RequestConfig,
305
+ ): Promise<HttpResponse<DiscardResult>> {
306
+ const request = new RequestBuilder()
307
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
308
+ .setConfig(this.config)
309
+ .setMethod('DELETE')
310
+ .setPath('/channels/mobile_push/apns/tokens/{token_id}')
311
+ .setRequestSchema(z.any())
312
+ .addAccessTokenAuth(this.config.token, 'Bearer')
313
+ .setRequestContentType(ContentType.Json)
314
+ .addResponse({
315
+ schema: discardResultResponse,
316
+ contentType: ContentType.Json,
317
+ status: 200,
318
+ })
319
+ .setRetryAttempts(this.config, requestConfig)
320
+ .setRetryDelayMs(this.config, requestConfig)
321
+ .setResponseValidation(this.config, requestConfig)
322
+ .addPathParam({
323
+ key: 'token_id',
324
+ value: tokenId,
325
+ })
326
+ .build();
327
+ return this.client.call<DiscardResult>(request);
328
+ }
329
+
330
+ /**
331
+ * Lists all mobile_push tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
332
+ * @param {number} [params.limit] -
333
+ * @param {string} [params.startingAfter] -
334
+ * @param {string} [params.endingBefore] -
335
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
336
+ * @returns {Promise<HttpResponse<ExpoTokenCollection>>} OK
337
+ */
338
+ async getMobilePushExpoTokens(
339
+ params?: GetMobilePushExpoTokensParams,
340
+ requestConfig?: RequestConfig,
341
+ ): Promise<HttpResponse<ExpoTokenCollection>> {
342
+ const request = new RequestBuilder()
343
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
344
+ .setConfig(this.config)
345
+ .setMethod('GET')
346
+ .setPath('/channels/mobile_push/expo/tokens')
347
+ .setRequestSchema(z.any())
348
+ .addAccessTokenAuth(this.config.token, 'Bearer')
349
+ .setRequestContentType(ContentType.Json)
350
+ .addResponse({
351
+ schema: expoTokenCollectionResponse,
352
+ contentType: ContentType.Json,
353
+ status: 200,
354
+ })
355
+ .setRetryAttempts(this.config, requestConfig)
356
+ .setRetryDelayMs(this.config, requestConfig)
357
+ .setResponseValidation(this.config, requestConfig)
358
+ .addQueryParam({
359
+ key: 'limit',
360
+ value: params?.limit,
361
+ })
362
+ .addQueryParam({
363
+ key: 'starting_after',
364
+ value: params?.startingAfter,
365
+ })
366
+ .addQueryParam({
367
+ key: 'ending_before',
368
+ value: params?.endingBefore,
369
+ })
370
+ .build();
371
+ return this.client.call<ExpoTokenCollection>(request);
372
+ }
373
+
374
+ /**
375
+ * Saves a mobile_push token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
376
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
377
+ * @returns {Promise<HttpResponse<ExpoTokenPayload>>} Created
378
+ */
379
+ async saveMobilePushExpoToken(
380
+ body: ExpoTokenPayload,
381
+ requestConfig?: RequestConfig,
382
+ ): Promise<HttpResponse<ExpoTokenPayload>> {
383
+ const request = new RequestBuilder()
384
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
385
+ .setConfig(this.config)
386
+ .setMethod('POST')
387
+ .setPath('/channels/mobile_push/expo/tokens')
388
+ .setRequestSchema(expoTokenPayloadRequest)
389
+ .addAccessTokenAuth(this.config.token, 'Bearer')
390
+ .setRequestContentType(ContentType.Json)
391
+ .addResponse({
392
+ schema: expoTokenPayloadResponse,
393
+ contentType: ContentType.Json,
394
+ status: 201,
395
+ })
396
+ .setRetryAttempts(this.config, requestConfig)
397
+ .setRetryDelayMs(this.config, requestConfig)
398
+ .setResponseValidation(this.config, requestConfig)
399
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
400
+ .addBody(body)
401
+ .build();
402
+ return this.client.call<ExpoTokenPayload>(request);
403
+ }
404
+
405
+ /**
406
+ * Retrieves details of a specific mobile_push token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
407
+ * @param {string} tokenId -
408
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
409
+ * @returns {Promise<HttpResponse<ExpoToken>>} OK
410
+ */
411
+ async getMobilePushExpoToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<ExpoToken>> {
412
+ const request = new RequestBuilder()
413
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
414
+ .setConfig(this.config)
415
+ .setMethod('GET')
416
+ .setPath('/channels/mobile_push/expo/tokens/{token_id}')
417
+ .setRequestSchema(z.any())
418
+ .addAccessTokenAuth(this.config.token, 'Bearer')
419
+ .setRequestContentType(ContentType.Json)
420
+ .addResponse({
421
+ schema: expoTokenResponse,
422
+ contentType: ContentType.Json,
423
+ status: 200,
424
+ })
425
+ .setRetryAttempts(this.config, requestConfig)
426
+ .setRetryDelayMs(this.config, requestConfig)
427
+ .setResponseValidation(this.config, requestConfig)
428
+ .addPathParam({
429
+ key: 'token_id',
430
+ value: tokenId,
431
+ })
432
+ .build();
433
+ return this.client.call<ExpoToken>(request);
434
+ }
435
+
436
+ /**
437
+ * Revokes one of the authenticated user's mobile_push tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
438
+ * @param {string} tokenId -
439
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
440
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
441
+ */
442
+ async discardMobilePushExpoToken(
443
+ tokenId: string,
444
+ requestConfig?: RequestConfig,
445
+ ): Promise<HttpResponse<DiscardResult>> {
446
+ const request = new RequestBuilder()
447
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
448
+ .setConfig(this.config)
449
+ .setMethod('DELETE')
450
+ .setPath('/channels/mobile_push/expo/tokens/{token_id}')
451
+ .setRequestSchema(z.any())
452
+ .addAccessTokenAuth(this.config.token, 'Bearer')
453
+ .setRequestContentType(ContentType.Json)
454
+ .addResponse({
455
+ schema: discardResultResponse,
456
+ contentType: ContentType.Json,
457
+ status: 200,
458
+ })
459
+ .setRetryAttempts(this.config, requestConfig)
460
+ .setRetryDelayMs(this.config, requestConfig)
461
+ .setResponseValidation(this.config, requestConfig)
462
+ .addPathParam({
463
+ key: 'token_id',
464
+ value: tokenId,
465
+ })
466
+ .build();
467
+ return this.client.call<DiscardResult>(request);
468
+ }
469
+
470
+ /**
471
+ * Lists all mobile_push tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
472
+ * @param {number} [params.limit] -
473
+ * @param {string} [params.startingAfter] -
474
+ * @param {string} [params.endingBefore] -
475
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
476
+ * @returns {Promise<HttpResponse<FcmTokenCollection>>} OK
477
+ */
478
+ async getMobilePushFcmTokens(
479
+ params?: GetMobilePushFcmTokensParams,
480
+ requestConfig?: RequestConfig,
481
+ ): Promise<HttpResponse<FcmTokenCollection>> {
482
+ const request = new RequestBuilder()
483
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
484
+ .setConfig(this.config)
485
+ .setMethod('GET')
486
+ .setPath('/channels/mobile_push/fcm/tokens')
487
+ .setRequestSchema(z.any())
488
+ .addAccessTokenAuth(this.config.token, 'Bearer')
489
+ .setRequestContentType(ContentType.Json)
490
+ .addResponse({
491
+ schema: fcmTokenCollectionResponse,
492
+ contentType: ContentType.Json,
493
+ status: 200,
494
+ })
495
+ .setRetryAttempts(this.config, requestConfig)
496
+ .setRetryDelayMs(this.config, requestConfig)
497
+ .setResponseValidation(this.config, requestConfig)
498
+ .addQueryParam({
499
+ key: 'limit',
500
+ value: params?.limit,
501
+ })
502
+ .addQueryParam({
503
+ key: 'starting_after',
504
+ value: params?.startingAfter,
505
+ })
506
+ .addQueryParam({
507
+ key: 'ending_before',
508
+ value: params?.endingBefore,
509
+ })
510
+ .build();
511
+ return this.client.call<FcmTokenCollection>(request);
512
+ }
513
+
514
+ /**
515
+ * Saves a mobile_push token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
516
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
517
+ * @returns {Promise<HttpResponse<FcmTokenPayload>>} Created
518
+ */
519
+ async saveMobilePushFcmToken(
520
+ body: FcmTokenPayload,
521
+ requestConfig?: RequestConfig,
522
+ ): Promise<HttpResponse<FcmTokenPayload>> {
523
+ const request = new RequestBuilder()
524
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
525
+ .setConfig(this.config)
526
+ .setMethod('POST')
527
+ .setPath('/channels/mobile_push/fcm/tokens')
528
+ .setRequestSchema(fcmTokenPayloadRequest)
529
+ .addAccessTokenAuth(this.config.token, 'Bearer')
530
+ .setRequestContentType(ContentType.Json)
531
+ .addResponse({
532
+ schema: fcmTokenPayloadResponse,
533
+ contentType: ContentType.Json,
534
+ status: 201,
535
+ })
536
+ .setRetryAttempts(this.config, requestConfig)
537
+ .setRetryDelayMs(this.config, requestConfig)
538
+ .setResponseValidation(this.config, requestConfig)
539
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
540
+ .addBody(body)
541
+ .build();
542
+ return this.client.call<FcmTokenPayload>(request);
543
+ }
544
+
545
+ /**
546
+ * Retrieves details of a specific mobile_push token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
547
+ * @param {string} tokenId -
548
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
549
+ * @returns {Promise<HttpResponse<FcmToken>>} OK
550
+ */
551
+ async getMobilePushFcmToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<FcmToken>> {
552
+ const request = new RequestBuilder()
553
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
554
+ .setConfig(this.config)
555
+ .setMethod('GET')
556
+ .setPath('/channels/mobile_push/fcm/tokens/{token_id}')
557
+ .setRequestSchema(z.any())
558
+ .addAccessTokenAuth(this.config.token, 'Bearer')
559
+ .setRequestContentType(ContentType.Json)
560
+ .addResponse({
561
+ schema: fcmTokenResponse,
562
+ contentType: ContentType.Json,
563
+ status: 200,
564
+ })
565
+ .setRetryAttempts(this.config, requestConfig)
566
+ .setRetryDelayMs(this.config, requestConfig)
567
+ .setResponseValidation(this.config, requestConfig)
568
+ .addPathParam({
569
+ key: 'token_id',
570
+ value: tokenId,
571
+ })
572
+ .build();
573
+ return this.client.call<FcmToken>(request);
574
+ }
575
+
576
+ /**
577
+ * Revokes one of the authenticated user's mobile_push tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
578
+ * @param {string} tokenId -
579
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
580
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
581
+ */
582
+ async discardMobilePushFcmToken(
583
+ tokenId: string,
584
+ requestConfig?: RequestConfig,
585
+ ): Promise<HttpResponse<DiscardResult>> {
586
+ const request = new RequestBuilder()
587
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
588
+ .setConfig(this.config)
589
+ .setMethod('DELETE')
590
+ .setPath('/channels/mobile_push/fcm/tokens/{token_id}')
591
+ .setRequestSchema(z.any())
592
+ .addAccessTokenAuth(this.config.token, 'Bearer')
593
+ .setRequestContentType(ContentType.Json)
594
+ .addResponse({
595
+ schema: discardResultResponse,
596
+ contentType: ContentType.Json,
597
+ status: 200,
598
+ })
599
+ .setRetryAttempts(this.config, requestConfig)
600
+ .setRetryDelayMs(this.config, requestConfig)
601
+ .setResponseValidation(this.config, requestConfig)
602
+ .addPathParam({
603
+ key: 'token_id',
604
+ value: tokenId,
605
+ })
606
+ .build();
607
+ return this.client.call<DiscardResult>(request);
608
+ }
609
+
610
+ /**
611
+ * Lists all slack tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
612
+ * @param {number} [params.limit] -
613
+ * @param {string} [params.startingAfter] -
614
+ * @param {string} [params.endingBefore] -
615
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
616
+ * @returns {Promise<HttpResponse<SlackTokenCollection>>} OK
617
+ */
618
+ async getSlackTokens(
619
+ params?: GetSlackTokensParams,
620
+ requestConfig?: RequestConfig,
621
+ ): Promise<HttpResponse<SlackTokenCollection>> {
622
+ const request = new RequestBuilder()
623
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
624
+ .setConfig(this.config)
625
+ .setMethod('GET')
626
+ .setPath('/channels/slack/tokens')
627
+ .setRequestSchema(z.any())
628
+ .addAccessTokenAuth(this.config.token, 'Bearer')
629
+ .setRequestContentType(ContentType.Json)
630
+ .addResponse({
631
+ schema: slackTokenCollectionResponse,
632
+ contentType: ContentType.Json,
633
+ status: 200,
634
+ })
635
+ .setRetryAttempts(this.config, requestConfig)
636
+ .setRetryDelayMs(this.config, requestConfig)
637
+ .setResponseValidation(this.config, requestConfig)
638
+ .addQueryParam({
639
+ key: 'limit',
640
+ value: params?.limit,
641
+ })
642
+ .addQueryParam({
643
+ key: 'starting_after',
644
+ value: params?.startingAfter,
645
+ })
646
+ .addQueryParam({
647
+ key: 'ending_before',
648
+ value: params?.endingBefore,
649
+ })
650
+ .build();
651
+ return this.client.call<SlackTokenCollection>(request);
652
+ }
653
+
654
+ /**
655
+ * Saves a slack token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
656
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
657
+ * @returns {Promise<HttpResponse<SlackTokenPayload>>} Created
658
+ */
659
+ async saveSlackToken(
660
+ body: SlackTokenPayload,
661
+ requestConfig?: RequestConfig,
662
+ ): Promise<HttpResponse<SlackTokenPayload>> {
663
+ const request = new RequestBuilder()
664
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
665
+ .setConfig(this.config)
666
+ .setMethod('POST')
667
+ .setPath('/channels/slack/tokens')
668
+ .setRequestSchema(slackTokenPayloadRequest)
669
+ .addAccessTokenAuth(this.config.token, 'Bearer')
670
+ .setRequestContentType(ContentType.Json)
671
+ .addResponse({
672
+ schema: slackTokenPayloadResponse,
673
+ contentType: ContentType.Json,
674
+ status: 201,
675
+ })
676
+ .setRetryAttempts(this.config, requestConfig)
677
+ .setRetryDelayMs(this.config, requestConfig)
678
+ .setResponseValidation(this.config, requestConfig)
679
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
680
+ .addBody(body)
681
+ .build();
682
+ return this.client.call<SlackTokenPayload>(request);
683
+ }
684
+
685
+ /**
686
+ * Retrieves details of a specific slack token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
687
+ * @param {string} tokenId -
688
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
689
+ * @returns {Promise<HttpResponse<SlackToken>>} OK
690
+ */
691
+ async getSlackToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<SlackToken>> {
692
+ const request = new RequestBuilder()
693
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
694
+ .setConfig(this.config)
695
+ .setMethod('GET')
696
+ .setPath('/channels/slack/tokens/{token_id}')
697
+ .setRequestSchema(z.any())
698
+ .addAccessTokenAuth(this.config.token, 'Bearer')
699
+ .setRequestContentType(ContentType.Json)
700
+ .addResponse({
701
+ schema: slackTokenResponse,
702
+ contentType: ContentType.Json,
703
+ status: 200,
704
+ })
705
+ .setRetryAttempts(this.config, requestConfig)
706
+ .setRetryDelayMs(this.config, requestConfig)
707
+ .setResponseValidation(this.config, requestConfig)
708
+ .addPathParam({
709
+ key: 'token_id',
710
+ value: tokenId,
711
+ })
712
+ .build();
713
+ return this.client.call<SlackToken>(request);
714
+ }
715
+
716
+ /**
717
+ * Revokes one of the authenticated user's slack tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
718
+ * @param {string} tokenId -
719
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
720
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
721
+ */
722
+ async discardSlackToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<DiscardResult>> {
723
+ const request = new RequestBuilder()
724
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
725
+ .setConfig(this.config)
726
+ .setMethod('DELETE')
727
+ .setPath('/channels/slack/tokens/{token_id}')
728
+ .setRequestSchema(z.any())
729
+ .addAccessTokenAuth(this.config.token, 'Bearer')
730
+ .setRequestContentType(ContentType.Json)
731
+ .addResponse({
732
+ schema: discardResultResponse,
733
+ contentType: ContentType.Json,
734
+ status: 200,
735
+ })
736
+ .setRetryAttempts(this.config, requestConfig)
737
+ .setRetryDelayMs(this.config, requestConfig)
738
+ .setResponseValidation(this.config, requestConfig)
739
+ .addPathParam({
740
+ key: 'token_id',
741
+ value: tokenId,
742
+ })
743
+ .build();
744
+ return this.client.call<DiscardResult>(request);
745
+ }
746
+
747
+ /**
748
+ * Lists all teams tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
749
+ * @param {number} [params.limit] -
750
+ * @param {string} [params.startingAfter] -
751
+ * @param {string} [params.endingBefore] -
752
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
753
+ * @returns {Promise<HttpResponse<TeamsTokenCollection>>} OK
754
+ */
755
+ async getTeamsTokens(
756
+ params?: GetTeamsTokensParams,
757
+ requestConfig?: RequestConfig,
758
+ ): Promise<HttpResponse<TeamsTokenCollection>> {
759
+ const request = new RequestBuilder()
760
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
761
+ .setConfig(this.config)
762
+ .setMethod('GET')
763
+ .setPath('/channels/teams/tokens')
764
+ .setRequestSchema(z.any())
765
+ .addAccessTokenAuth(this.config.token, 'Bearer')
766
+ .setRequestContentType(ContentType.Json)
767
+ .addResponse({
768
+ schema: teamsTokenCollectionResponse,
769
+ contentType: ContentType.Json,
770
+ status: 200,
771
+ })
772
+ .setRetryAttempts(this.config, requestConfig)
773
+ .setRetryDelayMs(this.config, requestConfig)
774
+ .setResponseValidation(this.config, requestConfig)
775
+ .addQueryParam({
776
+ key: 'limit',
777
+ value: params?.limit,
778
+ })
779
+ .addQueryParam({
780
+ key: 'starting_after',
781
+ value: params?.startingAfter,
782
+ })
783
+ .addQueryParam({
784
+ key: 'ending_before',
785
+ value: params?.endingBefore,
786
+ })
787
+ .build();
788
+ return this.client.call<TeamsTokenCollection>(request);
789
+ }
790
+
791
+ /**
792
+ * Saves a teams token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
793
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
794
+ * @returns {Promise<HttpResponse<TeamsTokenPayload>>} Created
795
+ */
796
+ async saveTeamsToken(
797
+ body: TeamsTokenPayload,
798
+ requestConfig?: RequestConfig,
799
+ ): Promise<HttpResponse<TeamsTokenPayload>> {
800
+ const request = new RequestBuilder()
801
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
802
+ .setConfig(this.config)
803
+ .setMethod('POST')
804
+ .setPath('/channels/teams/tokens')
805
+ .setRequestSchema(teamsTokenPayloadRequest)
806
+ .addAccessTokenAuth(this.config.token, 'Bearer')
807
+ .setRequestContentType(ContentType.Json)
808
+ .addResponse({
809
+ schema: teamsTokenPayloadResponse,
810
+ contentType: ContentType.Json,
811
+ status: 201,
812
+ })
813
+ .setRetryAttempts(this.config, requestConfig)
814
+ .setRetryDelayMs(this.config, requestConfig)
815
+ .setResponseValidation(this.config, requestConfig)
816
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
817
+ .addBody(body)
818
+ .build();
819
+ return this.client.call<TeamsTokenPayload>(request);
820
+ }
821
+
822
+ /**
823
+ * Retrieves details of a specific teams token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
824
+ * @param {string} tokenId -
825
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
826
+ * @returns {Promise<HttpResponse<TeamsToken>>} OK
827
+ */
828
+ async getTeamsToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<TeamsToken>> {
829
+ const request = new RequestBuilder()
830
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
831
+ .setConfig(this.config)
832
+ .setMethod('GET')
833
+ .setPath('/channels/teams/tokens/{token_id}')
834
+ .setRequestSchema(z.any())
835
+ .addAccessTokenAuth(this.config.token, 'Bearer')
836
+ .setRequestContentType(ContentType.Json)
837
+ .addResponse({
838
+ schema: teamsTokenResponse,
839
+ contentType: ContentType.Json,
840
+ status: 200,
841
+ })
842
+ .setRetryAttempts(this.config, requestConfig)
843
+ .setRetryDelayMs(this.config, requestConfig)
844
+ .setResponseValidation(this.config, requestConfig)
845
+ .addPathParam({
846
+ key: 'token_id',
847
+ value: tokenId,
848
+ })
849
+ .build();
850
+ return this.client.call<TeamsToken>(request);
851
+ }
852
+
853
+ /**
854
+ * Revokes one of the authenticated user's teams tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
855
+ * @param {string} tokenId -
856
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
857
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
858
+ */
859
+ async discardTeamsToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<DiscardResult>> {
860
+ const request = new RequestBuilder()
861
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
862
+ .setConfig(this.config)
863
+ .setMethod('DELETE')
864
+ .setPath('/channels/teams/tokens/{token_id}')
865
+ .setRequestSchema(z.any())
866
+ .addAccessTokenAuth(this.config.token, 'Bearer')
867
+ .setRequestContentType(ContentType.Json)
868
+ .addResponse({
869
+ schema: discardResultResponse,
870
+ contentType: ContentType.Json,
871
+ status: 200,
872
+ })
873
+ .setRetryAttempts(this.config, requestConfig)
874
+ .setRetryDelayMs(this.config, requestConfig)
875
+ .setResponseValidation(this.config, requestConfig)
876
+ .addPathParam({
877
+ key: 'token_id',
878
+ value: tokenId,
879
+ })
880
+ .build();
881
+ return this.client.call<DiscardResult>(request);
882
+ }
883
+
884
+ /**
885
+ * Lists all web_push tokens belonging to the authenticated user. Returns a paginated list of tokens, including their status, creation dates, and associated metadata.
886
+ * @param {number} [params.limit] -
887
+ * @param {string} [params.startingAfter] -
888
+ * @param {string} [params.endingBefore] -
889
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
890
+ * @returns {Promise<HttpResponse<WebPushTokenCollection>>} OK
891
+ */
892
+ async getWebPushTokens(
893
+ params?: GetWebPushTokensParams,
894
+ requestConfig?: RequestConfig,
895
+ ): Promise<HttpResponse<WebPushTokenCollection>> {
896
+ const request = new RequestBuilder()
897
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
898
+ .setConfig(this.config)
899
+ .setMethod('GET')
900
+ .setPath('/channels/web_push/tokens')
901
+ .setRequestSchema(z.any())
902
+ .addAccessTokenAuth(this.config.token, 'Bearer')
903
+ .setRequestContentType(ContentType.Json)
904
+ .addResponse({
905
+ schema: webPushTokenCollectionResponse,
906
+ contentType: ContentType.Json,
907
+ status: 200,
908
+ })
909
+ .setRetryAttempts(this.config, requestConfig)
910
+ .setRetryDelayMs(this.config, requestConfig)
911
+ .setResponseValidation(this.config, requestConfig)
912
+ .addQueryParam({
913
+ key: 'limit',
914
+ value: params?.limit,
915
+ })
916
+ .addQueryParam({
917
+ key: 'starting_after',
918
+ value: params?.startingAfter,
919
+ })
920
+ .addQueryParam({
921
+ key: 'ending_before',
922
+ value: params?.endingBefore,
923
+ })
924
+ .build();
925
+ return this.client.call<WebPushTokenCollection>(request);
926
+ }
927
+
928
+ /**
929
+ * Saves a web_push token for the authenticated user. This token serves as a credential for accessing channel-specific functionality. Each token is unique to the user and channel combination, allowing for direct communication with the user via the channel.
930
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
931
+ * @returns {Promise<HttpResponse<WebPushTokenPayload>>} Created
932
+ */
933
+ async saveWebPushToken(
934
+ body: WebPushTokenPayload,
935
+ requestConfig?: RequestConfig,
936
+ ): Promise<HttpResponse<WebPushTokenPayload>> {
937
+ const request = new RequestBuilder()
938
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
939
+ .setConfig(this.config)
940
+ .setMethod('POST')
941
+ .setPath('/channels/web_push/tokens')
942
+ .setRequestSchema(webPushTokenPayloadRequest)
943
+ .addAccessTokenAuth(this.config.token, 'Bearer')
944
+ .setRequestContentType(ContentType.Json)
945
+ .addResponse({
946
+ schema: webPushTokenPayloadResponse,
947
+ contentType: ContentType.Json,
948
+ status: 201,
949
+ })
950
+ .setRetryAttempts(this.config, requestConfig)
951
+ .setRetryDelayMs(this.config, requestConfig)
952
+ .setResponseValidation(this.config, requestConfig)
953
+ .addHeaderParam({ key: 'Content-Type', value: 'application/json' })
954
+ .addBody(body)
955
+ .build();
956
+ return this.client.call<WebPushTokenPayload>(request);
957
+ }
958
+
959
+ /**
960
+ * Retrieves details of a specific web_push token belonging to the authenticated user. Returns information about the token's status, creation date, and any associated metadata. Users can only access their own tokens.
961
+ * @param {string} tokenId -
962
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
963
+ * @returns {Promise<HttpResponse<WebPushToken>>} OK
964
+ */
965
+ async getWebPushToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<WebPushToken>> {
966
+ const request = new RequestBuilder()
967
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
968
+ .setConfig(this.config)
969
+ .setMethod('GET')
970
+ .setPath('/channels/web_push/tokens/{token_id}')
971
+ .setRequestSchema(z.any())
972
+ .addAccessTokenAuth(this.config.token, 'Bearer')
973
+ .setRequestContentType(ContentType.Json)
974
+ .addResponse({
975
+ schema: webPushTokenResponse,
976
+ contentType: ContentType.Json,
977
+ status: 200,
978
+ })
979
+ .setRetryAttempts(this.config, requestConfig)
980
+ .setRetryDelayMs(this.config, requestConfig)
981
+ .setResponseValidation(this.config, requestConfig)
982
+ .addPathParam({
983
+ key: 'token_id',
984
+ value: tokenId,
985
+ })
986
+ .build();
987
+ return this.client.call<WebPushToken>(request);
988
+ }
989
+
990
+ /**
991
+ * Revokes one of the authenticated user's web_push tokens. This permanently invalidates the specified token, preventing it from being used for future channel access. This action cannot be undone. Users can only revoke their own tokens.
992
+ * @param {string} tokenId -
993
+ * @param {RequestConfig} requestConfig - (Optional) The request configuration for retry and validation.
994
+ * @returns {Promise<HttpResponse<DiscardResult>>} OK
995
+ */
996
+ async discardWebPushToken(tokenId: string, requestConfig?: RequestConfig): Promise<HttpResponse<DiscardResult>> {
997
+ const request = new RequestBuilder()
998
+ .setBaseUrl(requestConfig?.baseUrl || this.config.baseUrl || this.config.environment || Environment.DEFAULT)
999
+ .setConfig(this.config)
1000
+ .setMethod('DELETE')
1001
+ .setPath('/channels/web_push/tokens/{token_id}')
1002
+ .setRequestSchema(z.any())
1003
+ .addAccessTokenAuth(this.config.token, 'Bearer')
1004
+ .setRequestContentType(ContentType.Json)
1005
+ .addResponse({
1006
+ schema: discardResultResponse,
1007
+ contentType: ContentType.Json,
1008
+ status: 200,
1009
+ })
1010
+ .setRetryAttempts(this.config, requestConfig)
1011
+ .setRetryDelayMs(this.config, requestConfig)
1012
+ .setResponseValidation(this.config, requestConfig)
1013
+ .addPathParam({
1014
+ key: 'token_id',
1015
+ value: tokenId,
1016
+ })
1017
+ .build();
1018
+ return this.client.call<DiscardResult>(request);
1019
+ }
1020
+ }