trycourier 4.7.1 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +63 -0
  3. data/README.md +25 -235
  4. data/lib/courier/client.rb +12 -0
  5. data/lib/courier/internal/util.rb +50 -6
  6. data/lib/courier/models/audience_delete_params.rb +7 -1
  7. data/lib/courier/models/audience_list_members_params.rb +8 -1
  8. data/lib/courier/models/audience_retrieve_params.rb +7 -1
  9. data/lib/courier/models/audience_update_params.rb +8 -1
  10. data/lib/courier/models/audit_event_retrieve_params.rb +7 -1
  11. data/lib/courier/models/automations/invoke_invoke_by_template_params.rb +7 -1
  12. data/lib/courier/models/brand_delete_params.rb +7 -1
  13. data/lib/courier/models/brand_retrieve_params.rb +7 -1
  14. data/lib/courier/models/brand_update_params.rb +8 -1
  15. data/lib/courier/models/bulk_add_users_params.rb +7 -1
  16. data/lib/courier/models/bulk_list_users_params.rb +8 -1
  17. data/lib/courier/models/bulk_retrieve_job_params.rb +7 -1
  18. data/lib/courier/models/bulk_run_job_params.rb +7 -1
  19. data/lib/courier/models/channel.rb +75 -0
  20. data/lib/courier/models/channel_metadata.rb +15 -0
  21. data/lib/courier/models/elemental_content.rb +3 -10
  22. data/lib/courier/models/elemental_html_node_with_type.rb +24 -0
  23. data/lib/courier/models/elemental_node.rb +3 -1
  24. data/lib/courier/models/journey.rb +63 -0
  25. data/lib/courier/models/journey_invoke_params.rb +20 -0
  26. data/lib/courier/models/journey_list_params.rb +47 -0
  27. data/lib/courier/models/journeys_invoke_request.rb +49 -0
  28. data/lib/courier/models/journeys_invoke_response.rb +17 -0
  29. data/lib/courier/models/journeys_list_response.rb +24 -0
  30. data/lib/courier/models/list_delete_params.rb +7 -1
  31. data/lib/courier/models/list_restore_params.rb +7 -1
  32. data/lib/courier/models/list_retrieve_params.rb +7 -1
  33. data/lib/courier/models/list_update_params.rb +7 -1
  34. data/lib/courier/models/lists/subscription_add_params.rb +7 -1
  35. data/lib/courier/models/lists/subscription_list_params.rb +8 -1
  36. data/lib/courier/models/lists/subscription_subscribe_params.rb +7 -1
  37. data/lib/courier/models/lists/subscription_subscribe_user_params.rb +7 -1
  38. data/lib/courier/models/lists/subscription_unsubscribe_user_params.rb +7 -1
  39. data/lib/courier/models/message_cancel_params.rb +7 -1
  40. data/lib/courier/models/message_channels.rb +8 -0
  41. data/lib/courier/models/message_content_params.rb +7 -1
  42. data/lib/courier/models/message_details.rb +37 -37
  43. data/lib/courier/models/message_history_params.rb +8 -1
  44. data/lib/courier/models/message_providers.rb +8 -0
  45. data/lib/courier/models/message_providers_type.rb +38 -0
  46. data/lib/courier/models/message_retrieve_params.rb +7 -1
  47. data/lib/courier/models/metadata.rb +15 -0
  48. data/lib/courier/models/notification_archive_params.rb +20 -0
  49. data/lib/courier/models/notification_create_params.rb +14 -0
  50. data/lib/courier/models/notification_list_params.rb +13 -4
  51. data/lib/courier/models/notification_list_response.rb +108 -93
  52. data/lib/courier/models/notification_list_versions_params.rb +37 -0
  53. data/lib/courier/models/notification_publish_params.rb +20 -0
  54. data/lib/courier/models/notification_replace_params.rb +20 -0
  55. data/lib/courier/models/notification_retrieve_content_params.rb +7 -1
  56. data/lib/courier/models/notification_retrieve_params.rb +33 -0
  57. data/lib/courier/models/notification_template_create_request.rb +45 -0
  58. data/lib/courier/models/notification_template_get_response.rb +92 -0
  59. data/lib/courier/models/notification_template_mutation_response.rb +51 -0
  60. data/lib/courier/models/notification_template_payload.rb +98 -0
  61. data/lib/courier/models/notification_template_publish_request.rb +19 -0
  62. data/lib/courier/models/notification_template_summary.rb +81 -0
  63. data/lib/courier/models/notification_template_update_request.rb +46 -0
  64. data/lib/courier/models/notification_template_version_list_response.rb +22 -0
  65. data/lib/courier/models/notifications/check_delete_params.rb +7 -1
  66. data/lib/courier/models/notifications/check_list_params.rb +7 -1
  67. data/lib/courier/models/notifications/check_update_params.rb +7 -1
  68. data/lib/courier/models/notifications/draft_retrieve_content_params.rb +7 -1
  69. data/lib/courier/models/profile_create_params.rb +7 -1
  70. data/lib/courier/models/profile_delete_params.rb +7 -1
  71. data/lib/courier/models/profile_replace_params.rb +7 -1
  72. data/lib/courier/models/profile_retrieve_params.rb +7 -1
  73. data/lib/courier/models/profile_update_params.rb +8 -1
  74. data/lib/courier/models/profiles/list_delete_params.rb +7 -1
  75. data/lib/courier/models/profiles/list_retrieve_params.rb +8 -1
  76. data/lib/courier/models/profiles/list_subscribe_params.rb +7 -1
  77. data/lib/courier/models/provider.rb +67 -0
  78. data/lib/courier/models/provider_create_params.rb +52 -0
  79. data/lib/courier/models/provider_delete_params.rb +20 -0
  80. data/lib/courier/models/provider_list_params.rb +22 -0
  81. data/lib/courier/models/provider_list_response.rb +24 -0
  82. data/lib/courier/models/provider_retrieve_params.rb +20 -0
  83. data/lib/courier/models/provider_update_params.rb +58 -0
  84. data/lib/courier/models/providers/catalog_list_params.rb +44 -0
  85. data/lib/courier/models/providers/catalog_list_response.rb +26 -0
  86. data/lib/courier/models/providers_catalog_entry.rb +86 -0
  87. data/lib/courier/models/request_archive_params.rb +7 -1
  88. data/lib/courier/models/routing_strategy_archive_params.rb +20 -0
  89. data/lib/courier/models/routing_strategy_create_params.rb +14 -0
  90. data/lib/courier/models/routing_strategy_create_request.rb +58 -0
  91. data/lib/courier/models/routing_strategy_get_response.rb +99 -0
  92. data/lib/courier/models/routing_strategy_list_params.rb +30 -0
  93. data/lib/courier/models/routing_strategy_list_response.rb +24 -0
  94. data/lib/courier/models/routing_strategy_mutation_response.rb +19 -0
  95. data/lib/courier/models/routing_strategy_replace_params.rb +20 -0
  96. data/lib/courier/models/routing_strategy_replace_request.rb +59 -0
  97. data/lib/courier/models/routing_strategy_retrieve_params.rb +20 -0
  98. data/lib/courier/models/routing_strategy_summary.rb +75 -0
  99. data/lib/courier/models/send_message_params.rb +6 -154
  100. data/lib/courier/models/tenant_delete_params.rb +7 -1
  101. data/lib/courier/models/tenant_list_users_params.rb +8 -1
  102. data/lib/courier/models/tenant_retrieve_params.rb +7 -1
  103. data/lib/courier/models/tenant_template_input.rb +6 -152
  104. data/lib/courier/models/tenant_update_params.rb +8 -1
  105. data/lib/courier/models/tenants/preferences/item_delete_params.rb +7 -1
  106. data/lib/courier/models/tenants/preferences/item_update_params.rb +7 -1
  107. data/lib/courier/models/tenants/template_list_params.rb +8 -1
  108. data/lib/courier/models/tenants/template_publish_params.rb +7 -1
  109. data/lib/courier/models/tenants/template_replace_params.rb +7 -1
  110. data/lib/courier/models/tenants/template_retrieve_params.rb +7 -1
  111. data/lib/courier/models/tenants/templates/version_retrieve_params.rb +7 -1
  112. data/lib/courier/models/timeouts.rb +21 -0
  113. data/lib/courier/models/translation_retrieve_params.rb +7 -1
  114. data/lib/courier/models/translation_update_params.rb +7 -1
  115. data/lib/courier/models/users/preference_retrieve_params.rb +8 -1
  116. data/lib/courier/models/users/preference_retrieve_topic_params.rb +8 -1
  117. data/lib/courier/models/users/preference_update_or_create_topic_params.rb +8 -1
  118. data/lib/courier/models/users/tenant_add_multiple_params.rb +7 -1
  119. data/lib/courier/models/users/tenant_add_single_params.rb +7 -1
  120. data/lib/courier/models/users/tenant_list_params.rb +8 -1
  121. data/lib/courier/models/users/tenant_remove_all_params.rb +7 -1
  122. data/lib/courier/models/users/tenant_remove_single_params.rb +7 -1
  123. data/lib/courier/models/users/token_add_multiple_params.rb +7 -1
  124. data/lib/courier/models/users/token_add_single_params.rb +168 -2
  125. data/lib/courier/models/users/token_delete_params.rb +7 -1
  126. data/lib/courier/models/users/token_list_params.rb +7 -1
  127. data/lib/courier/models/users/token_retrieve_params.rb +7 -1
  128. data/lib/courier/models/users/token_update_params.rb +7 -1
  129. data/lib/courier/models/version_node.rb +46 -0
  130. data/lib/courier/models.rb +98 -0
  131. data/lib/courier/resources/audiences.rb +4 -2
  132. data/lib/courier/resources/audit_events.rb +2 -1
  133. data/lib/courier/resources/automations.rb +2 -1
  134. data/lib/courier/resources/brands.rb +2 -1
  135. data/lib/courier/resources/bulk.rb +2 -1
  136. data/lib/courier/resources/journeys.rb +73 -0
  137. data/lib/courier/resources/lists/subscriptions.rb +2 -1
  138. data/lib/courier/resources/lists.rb +2 -1
  139. data/lib/courier/resources/messages.rb +4 -2
  140. data/lib/courier/resources/notifications.rb +167 -4
  141. data/lib/courier/resources/profiles/lists.rb +2 -1
  142. data/lib/courier/resources/providers/catalog.rb +49 -0
  143. data/lib/courier/resources/providers.rb +150 -0
  144. data/lib/courier/resources/routing_strategies.rb +151 -0
  145. data/lib/courier/resources/tenants/templates.rb +2 -1
  146. data/lib/courier/resources/tenants.rb +4 -2
  147. data/lib/courier/resources/users/preferences.rb +7 -4
  148. data/lib/courier/resources/users/tenants.rb +2 -1
  149. data/lib/courier/resources/users/tokens.rb +7 -9
  150. data/lib/courier/version.rb +1 -1
  151. data/lib/courier.rb +54 -0
  152. data/rbi/courier/client.rbi +9 -0
  153. data/rbi/courier/internal/util.rbi +28 -0
  154. data/rbi/courier/models/audience_delete_params.rbi +13 -5
  155. data/rbi/courier/models/audience_list_members_params.rbi +6 -0
  156. data/rbi/courier/models/audience_retrieve_params.rbi +13 -5
  157. data/rbi/courier/models/audience_update_params.rbi +6 -0
  158. data/rbi/courier/models/audit_event_retrieve_params.rbi +13 -5
  159. data/rbi/courier/models/automations/invoke_invoke_by_template_params.rbi +6 -0
  160. data/rbi/courier/models/brand_delete_params.rbi +13 -5
  161. data/rbi/courier/models/brand_retrieve_params.rbi +13 -5
  162. data/rbi/courier/models/brand_update_params.rbi +6 -0
  163. data/rbi/courier/models/bulk_add_users_params.rbi +6 -1
  164. data/rbi/courier/models/bulk_list_users_params.rbi +6 -0
  165. data/rbi/courier/models/bulk_retrieve_job_params.rbi +13 -5
  166. data/rbi/courier/models/bulk_run_job_params.rbi +13 -5
  167. data/rbi/courier/models/channel.rbi +106 -0
  168. data/rbi/courier/models/channel_metadata.rbi +28 -0
  169. data/rbi/courier/models/elemental_content.rbi +9 -12
  170. data/rbi/courier/models/elemental_html_node_with_type.rbi +59 -0
  171. data/rbi/courier/models/elemental_node.rbi +2 -1
  172. data/rbi/courier/models/journey.rbi +91 -0
  173. data/rbi/courier/models/journey_invoke_params.rbi +35 -0
  174. data/rbi/courier/models/journey_list_params.rbi +85 -0
  175. data/rbi/courier/models/journeys_invoke_request.rbi +84 -0
  176. data/rbi/courier/models/journeys_invoke_response.rbi +27 -0
  177. data/rbi/courier/models/journeys_list_response.rbi +46 -0
  178. data/rbi/courier/models/list_delete_params.rbi +13 -5
  179. data/rbi/courier/models/list_restore_params.rbi +13 -5
  180. data/rbi/courier/models/list_retrieve_params.rbi +13 -5
  181. data/rbi/courier/models/list_update_params.rbi +6 -1
  182. data/rbi/courier/models/lists/subscription_add_params.rbi +6 -1
  183. data/rbi/courier/models/lists/subscription_list_params.rbi +6 -0
  184. data/rbi/courier/models/lists/subscription_subscribe_params.rbi +6 -1
  185. data/rbi/courier/models/lists/subscription_subscribe_user_params.rbi +6 -1
  186. data/rbi/courier/models/lists/subscription_unsubscribe_user_params.rbi +10 -2
  187. data/rbi/courier/models/message_cancel_params.rbi +13 -5
  188. data/rbi/courier/models/message_channels.rbi +11 -0
  189. data/rbi/courier/models/message_content_params.rbi +13 -5
  190. data/rbi/courier/models/message_details.rbi +55 -43
  191. data/rbi/courier/models/message_history_params.rbi +10 -1
  192. data/rbi/courier/models/message_providers.rbi +11 -0
  193. data/rbi/courier/models/message_providers_type.rbi +60 -0
  194. data/rbi/courier/models/message_retrieve_params.rbi +13 -5
  195. data/rbi/courier/models/metadata.rbi +26 -0
  196. data/rbi/courier/models/notification_archive_params.rbi +35 -0
  197. data/rbi/courier/models/notification_create_params.rbi +27 -0
  198. data/rbi/courier/models/notification_list_params.rbi +15 -2
  199. data/rbi/courier/models/notification_list_response.rbi +159 -119
  200. data/rbi/courier/models/notification_list_versions_params.rbi +66 -0
  201. data/rbi/courier/models/notification_publish_params.rbi +35 -0
  202. data/rbi/courier/models/notification_replace_params.rbi +35 -0
  203. data/rbi/courier/models/notification_retrieve_content_params.rbi +13 -5
  204. data/rbi/courier/models/notification_retrieve_params.rbi +54 -0
  205. data/rbi/courier/models/notification_template_create_request.rbi +102 -0
  206. data/rbi/courier/models/notification_template_get_response.rbi +162 -0
  207. data/rbi/courier/models/notification_template_mutation_response.rbi +121 -0
  208. data/rbi/courier/models/notification_template_payload.rbi +183 -0
  209. data/rbi/courier/models/notification_template_publish_request.rbi +35 -0
  210. data/rbi/courier/models/notification_template_summary.rbi +124 -0
  211. data/rbi/courier/models/notification_template_update_request.rbi +103 -0
  212. data/rbi/courier/models/notification_template_version_list_response.rbi +41 -0
  213. data/rbi/courier/models/notifications/check_delete_params.rbi +10 -2
  214. data/rbi/courier/models/notifications/check_list_params.rbi +10 -2
  215. data/rbi/courier/models/notifications/check_update_params.rbi +6 -1
  216. data/rbi/courier/models/notifications/draft_retrieve_content_params.rbi +13 -5
  217. data/rbi/courier/models/profile_create_params.rbi +6 -1
  218. data/rbi/courier/models/profile_delete_params.rbi +13 -5
  219. data/rbi/courier/models/profile_replace_params.rbi +6 -1
  220. data/rbi/courier/models/profile_retrieve_params.rbi +13 -5
  221. data/rbi/courier/models/profile_update_params.rbi +6 -0
  222. data/rbi/courier/models/profiles/list_delete_params.rbi +13 -5
  223. data/rbi/courier/models/profiles/list_retrieve_params.rbi +6 -0
  224. data/rbi/courier/models/profiles/list_subscribe_params.rbi +6 -1
  225. data/rbi/courier/models/provider.rbi +87 -0
  226. data/rbi/courier/models/provider_create_params.rbi +82 -0
  227. data/rbi/courier/models/provider_delete_params.rbi +35 -0
  228. data/rbi/courier/models/provider_list_params.rbi +43 -0
  229. data/rbi/courier/models/provider_list_response.rbi +42 -0
  230. data/rbi/courier/models/provider_retrieve_params.rbi +35 -0
  231. data/rbi/courier/models/provider_update_params.rbi +86 -0
  232. data/rbi/courier/models/providers/catalog_list_params.rbi +75 -0
  233. data/rbi/courier/models/providers/catalog_list_response.rbi +47 -0
  234. data/rbi/courier/models/providers_catalog_entry.rbi +129 -0
  235. data/rbi/courier/models/request_archive_params.rbi +13 -5
  236. data/rbi/courier/models/routing_strategy_archive_params.rbi +38 -0
  237. data/rbi/courier/models/routing_strategy_create_params.rbi +30 -0
  238. data/rbi/courier/models/routing_strategy_create_request.rbi +86 -0
  239. data/rbi/courier/models/routing_strategy_get_response.rbi +121 -0
  240. data/rbi/courier/models/routing_strategy_list_params.rbi +54 -0
  241. data/rbi/courier/models/routing_strategy_list_response.rbi +45 -0
  242. data/rbi/courier/models/routing_strategy_mutation_response.rbi +31 -0
  243. data/rbi/courier/models/routing_strategy_replace_params.rbi +38 -0
  244. data/rbi/courier/models/routing_strategy_replace_request.rbi +87 -0
  245. data/rbi/courier/models/routing_strategy_retrieve_params.rbi +38 -0
  246. data/rbi/courier/models/routing_strategy_summary.rbi +95 -0
  247. data/rbi/courier/models/send_message_params.rbi +6 -362
  248. data/rbi/courier/models/tenant_delete_params.rbi +13 -5
  249. data/rbi/courier/models/tenant_list_users_params.rbi +6 -0
  250. data/rbi/courier/models/tenant_retrieve_params.rbi +13 -5
  251. data/rbi/courier/models/tenant_template_input.rbi +8 -336
  252. data/rbi/courier/models/tenant_update_params.rbi +6 -0
  253. data/rbi/courier/models/tenants/preferences/item_delete_params.rbi +10 -2
  254. data/rbi/courier/models/tenants/preferences/item_update_params.rbi +10 -2
  255. data/rbi/courier/models/tenants/template_list_params.rbi +6 -0
  256. data/rbi/courier/models/tenants/template_publish_params.rbi +10 -2
  257. data/rbi/courier/models/tenants/template_replace_params.rbi +10 -2
  258. data/rbi/courier/models/tenants/template_retrieve_params.rbi +10 -2
  259. data/rbi/courier/models/tenants/templates/version_retrieve_params.rbi +6 -1
  260. data/rbi/courier/models/timeouts.rbi +33 -0
  261. data/rbi/courier/models/translation_retrieve_params.rbi +10 -2
  262. data/rbi/courier/models/translation_update_params.rbi +6 -1
  263. data/rbi/courier/models/users/preference_retrieve_params.rbi +6 -0
  264. data/rbi/courier/models/users/preference_retrieve_topic_params.rbi +6 -0
  265. data/rbi/courier/models/users/preference_update_or_create_topic_params.rbi +6 -0
  266. data/rbi/courier/models/users/tenant_add_multiple_params.rbi +6 -1
  267. data/rbi/courier/models/users/tenant_add_single_params.rbi +6 -1
  268. data/rbi/courier/models/users/tenant_list_params.rbi +6 -0
  269. data/rbi/courier/models/users/tenant_remove_all_params.rbi +13 -5
  270. data/rbi/courier/models/users/tenant_remove_single_params.rbi +10 -2
  271. data/rbi/courier/models/users/token_add_multiple_params.rbi +13 -5
  272. data/rbi/courier/models/users/token_add_single_params.rbi +290 -3
  273. data/rbi/courier/models/users/token_delete_params.rbi +10 -2
  274. data/rbi/courier/models/users/token_list_params.rbi +13 -5
  275. data/rbi/courier/models/users/token_retrieve_params.rbi +10 -2
  276. data/rbi/courier/models/users/token_update_params.rbi +6 -1
  277. data/rbi/courier/models/version_node.rbi +65 -0
  278. data/rbi/courier/models.rbi +106 -0
  279. data/rbi/courier/resources/journeys.rbi +64 -0
  280. data/rbi/courier/resources/notifications.rbi +119 -1
  281. data/rbi/courier/resources/providers/catalog.rbi +38 -0
  282. data/rbi/courier/resources/providers.rbi +116 -0
  283. data/rbi/courier/resources/routing_strategies.rbi +126 -0
  284. data/rbi/courier/resources/users/tokens.rbi +11 -9
  285. data/sig/courier/client.rbs +6 -0
  286. data/sig/courier/internal/util.rbs +14 -0
  287. data/sig/courier/models/audience_delete_params.rbs +11 -3
  288. data/sig/courier/models/audience_list_members_params.rbs +6 -1
  289. data/sig/courier/models/audience_retrieve_params.rbs +11 -3
  290. data/sig/courier/models/audience_update_params.rbs +5 -0
  291. data/sig/courier/models/audit_event_retrieve_params.rbs +11 -3
  292. data/sig/courier/models/automations/invoke_invoke_by_template_params.rbs +5 -0
  293. data/sig/courier/models/brand_delete_params.rbs +11 -3
  294. data/sig/courier/models/brand_retrieve_params.rbs +11 -3
  295. data/sig/courier/models/brand_update_params.rbs +5 -0
  296. data/sig/courier/models/bulk_add_users_params.rbs +5 -1
  297. data/sig/courier/models/bulk_list_users_params.rbs +6 -1
  298. data/sig/courier/models/bulk_retrieve_job_params.rbs +11 -3
  299. data/sig/courier/models/bulk_run_job_params.rbs +11 -3
  300. data/sig/courier/models/channel.rbs +61 -0
  301. data/sig/courier/models/channel_metadata.rbs +13 -0
  302. data/sig/courier/models/elemental_content.rbs +3 -11
  303. data/sig/courier/models/elemental_html_node_with_type.rbs +32 -0
  304. data/sig/courier/models/elemental_node.rbs +1 -0
  305. data/sig/courier/models/journey.rbs +55 -0
  306. data/sig/courier/models/journey_invoke_params.rbs +25 -0
  307. data/sig/courier/models/journey_list_params.rbs +45 -0
  308. data/sig/courier/models/journeys_invoke_request.rbs +36 -0
  309. data/sig/courier/models/journeys_invoke_response.rbs +13 -0
  310. data/sig/courier/models/journeys_list_response.rbs +23 -0
  311. data/sig/courier/models/list_delete_params.rbs +12 -3
  312. data/sig/courier/models/list_restore_params.rbs +11 -3
  313. data/sig/courier/models/list_retrieve_params.rbs +11 -3
  314. data/sig/courier/models/list_update_params.rbs +9 -1
  315. data/sig/courier/models/lists/subscription_add_params.rbs +8 -1
  316. data/sig/courier/models/lists/subscription_list_params.rbs +6 -1
  317. data/sig/courier/models/lists/subscription_subscribe_params.rbs +8 -1
  318. data/sig/courier/models/lists/subscription_subscribe_user_params.rbs +9 -1
  319. data/sig/courier/models/lists/subscription_unsubscribe_user_params.rbs +6 -1
  320. data/sig/courier/models/message_cancel_params.rbs +11 -3
  321. data/sig/courier/models/message_channels.rbs +7 -0
  322. data/sig/courier/models/message_content_params.rbs +11 -3
  323. data/sig/courier/models/message_details.rbs +31 -23
  324. data/sig/courier/models/message_history_params.rbs +6 -1
  325. data/sig/courier/models/message_providers.rbs +7 -0
  326. data/sig/courier/models/message_providers_type.rbs +35 -0
  327. data/sig/courier/models/message_retrieve_params.rbs +11 -3
  328. data/sig/courier/models/metadata.rbs +13 -0
  329. data/sig/courier/models/notification_archive_params.rbs +20 -0
  330. data/sig/courier/models/notification_create_params.rbs +15 -0
  331. data/sig/courier/models/notification_list_params.rbs +7 -1
  332. data/sig/courier/models/notification_list_response.rbs +81 -71
  333. data/sig/courier/models/notification_list_versions_params.rbs +36 -0
  334. data/sig/courier/models/notification_publish_params.rbs +22 -0
  335. data/sig/courier/models/notification_replace_params.rbs +22 -0
  336. data/sig/courier/models/notification_retrieve_content_params.rbs +8 -3
  337. data/sig/courier/models/notification_retrieve_params.rbs +30 -0
  338. data/sig/courier/models/notification_template_create_request.rbs +40 -0
  339. data/sig/courier/models/notification_template_get_response.rbs +72 -0
  340. data/sig/courier/models/notification_template_mutation_response.rbs +46 -0
  341. data/sig/courier/models/notification_template_payload.rbs +75 -0
  342. data/sig/courier/models/notification_template_publish_request.rbs +15 -0
  343. data/sig/courier/models/notification_template_summary.rbs +70 -0
  344. data/sig/courier/models/notification_template_update_request.rbs +40 -0
  345. data/sig/courier/models/notification_template_version_list_response.rbs +22 -0
  346. data/sig/courier/models/notifications/check_delete_params.rbs +10 -2
  347. data/sig/courier/models/notifications/check_list_params.rbs +10 -2
  348. data/sig/courier/models/notifications/check_update_params.rbs +9 -1
  349. data/sig/courier/models/notifications/draft_retrieve_content_params.rbs +8 -3
  350. data/sig/courier/models/profile_create_params.rbs +5 -1
  351. data/sig/courier/models/profile_delete_params.rbs +11 -3
  352. data/sig/courier/models/profile_replace_params.rbs +5 -1
  353. data/sig/courier/models/profile_retrieve_params.rbs +11 -3
  354. data/sig/courier/models/profile_update_params.rbs +5 -1
  355. data/sig/courier/models/profiles/list_delete_params.rbs +11 -3
  356. data/sig/courier/models/profiles/list_retrieve_params.rbs +6 -1
  357. data/sig/courier/models/profiles/list_subscribe_params.rbs +8 -1
  358. data/sig/courier/models/provider.rbs +52 -0
  359. data/sig/courier/models/provider_create_params.rbs +47 -0
  360. data/sig/courier/models/provider_delete_params.rbs +20 -0
  361. data/sig/courier/models/provider_list_params.rbs +25 -0
  362. data/sig/courier/models/provider_list_response.rbs +22 -0
  363. data/sig/courier/models/provider_retrieve_params.rbs +20 -0
  364. data/sig/courier/models/provider_update_params.rbs +52 -0
  365. data/sig/courier/models/providers/catalog_list_params.rbs +40 -0
  366. data/sig/courier/models/providers/catalog_list_response.rbs +27 -0
  367. data/sig/courier/models/providers_catalog_entry.rbs +64 -0
  368. data/sig/courier/models/request_archive_params.rbs +11 -3
  369. data/sig/courier/models/routing_strategy_archive_params.rbs +20 -0
  370. data/sig/courier/models/routing_strategy_create_params.rbs +15 -0
  371. data/sig/courier/models/routing_strategy_create_request.rbs +45 -0
  372. data/sig/courier/models/routing_strategy_get_response.rbs +70 -0
  373. data/sig/courier/models/routing_strategy_list_params.rbs +30 -0
  374. data/sig/courier/models/routing_strategy_list_response.rbs +25 -0
  375. data/sig/courier/models/routing_strategy_mutation_response.rbs +13 -0
  376. data/sig/courier/models/routing_strategy_replace_params.rbs +22 -0
  377. data/sig/courier/models/routing_strategy_replace_request.rbs +45 -0
  378. data/sig/courier/models/routing_strategy_retrieve_params.rbs +20 -0
  379. data/sig/courier/models/routing_strategy_summary.rbs +55 -0
  380. data/sig/courier/models/send_message_params.rbs +8 -130
  381. data/sig/courier/models/tenant_delete_params.rbs +11 -3
  382. data/sig/courier/models/tenant_list_users_params.rbs +5 -1
  383. data/sig/courier/models/tenant_retrieve_params.rbs +11 -3
  384. data/sig/courier/models/tenant_template_input.rbs +12 -134
  385. data/sig/courier/models/tenant_update_params.rbs +5 -0
  386. data/sig/courier/models/tenants/preferences/item_delete_params.rbs +6 -1
  387. data/sig/courier/models/tenants/preferences/item_update_params.rbs +8 -1
  388. data/sig/courier/models/tenants/template_list_params.rbs +5 -1
  389. data/sig/courier/models/tenants/template_publish_params.rbs +8 -1
  390. data/sig/courier/models/tenants/template_replace_params.rbs +8 -1
  391. data/sig/courier/models/tenants/template_retrieve_params.rbs +6 -1
  392. data/sig/courier/models/tenants/templates/version_retrieve_params.rbs +5 -1
  393. data/sig/courier/models/timeouts.rbs +15 -0
  394. data/sig/courier/models/translation_retrieve_params.rbs +6 -1
  395. data/sig/courier/models/translation_update_params.rbs +5 -1
  396. data/sig/courier/models/users/preference_retrieve_params.rbs +6 -1
  397. data/sig/courier/models/users/preference_retrieve_topic_params.rbs +5 -1
  398. data/sig/courier/models/users/preference_update_or_create_topic_params.rbs +5 -0
  399. data/sig/courier/models/users/tenant_add_multiple_params.rbs +5 -1
  400. data/sig/courier/models/users/tenant_add_single_params.rbs +5 -1
  401. data/sig/courier/models/users/tenant_list_params.rbs +5 -1
  402. data/sig/courier/models/users/tenant_remove_all_params.rbs +11 -3
  403. data/sig/courier/models/users/tenant_remove_single_params.rbs +6 -1
  404. data/sig/courier/models/users/token_add_multiple_params.rbs +11 -3
  405. data/sig/courier/models/users/token_add_single_params.rbs +127 -4
  406. data/sig/courier/models/users/token_delete_params.rbs +6 -1
  407. data/sig/courier/models/users/token_list_params.rbs +11 -3
  408. data/sig/courier/models/users/token_retrieve_params.rbs +6 -1
  409. data/sig/courier/models/users/token_update_params.rbs +5 -0
  410. data/sig/courier/models/version_node.rbs +32 -0
  411. data/sig/courier/models.rbs +96 -0
  412. data/sig/courier/resources/journeys.rbs +21 -0
  413. data/sig/courier/resources/notifications.rbs +35 -0
  414. data/sig/courier/resources/providers/catalog.rbs +16 -0
  415. data/sig/courier/resources/providers.rbs +38 -0
  416. data/sig/courier/resources/routing_strategies.rbs +41 -0
  417. data/sig/courier/resources/users/tokens.rbs +5 -6
  418. metadata +164 -2
@@ -0,0 +1,87 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class Provider < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Courier::Provider, Courier::Internal::AnyHash) }
8
+
9
+ # A unique identifier for the provider configuration.
10
+ sig { returns(String) }
11
+ attr_accessor :id
12
+
13
+ # Unix timestamp (ms) of when the provider was created.
14
+ sig { returns(Integer) }
15
+ attr_accessor :created
16
+
17
+ # The provider key (e.g. "sendgrid", "twilio", "slack").
18
+ sig { returns(String) }
19
+ attr_accessor :provider
20
+
21
+ # Provider-specific settings (snake_case keys on the wire).
22
+ sig { returns(T::Hash[Symbol, T.anything]) }
23
+ attr_accessor :settings
24
+
25
+ # Display title. Defaults to "Default Configuration" when not explicitly set.
26
+ sig { returns(String) }
27
+ attr_accessor :title
28
+
29
+ # Optional alias for this configuration.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_reader :alias_
32
+
33
+ sig { params(alias_: String).void }
34
+ attr_writer :alias_
35
+
36
+ # Unix timestamp (ms) of when the provider was last updated.
37
+ sig { returns(T.nilable(Integer)) }
38
+ attr_accessor :updated
39
+
40
+ # A configured provider in the workspace.
41
+ sig do
42
+ params(
43
+ id: String,
44
+ created: Integer,
45
+ provider: String,
46
+ settings: T::Hash[Symbol, T.anything],
47
+ title: String,
48
+ alias_: String,
49
+ updated: T.nilable(Integer)
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # A unique identifier for the provider configuration.
54
+ id:,
55
+ # Unix timestamp (ms) of when the provider was created.
56
+ created:,
57
+ # The provider key (e.g. "sendgrid", "twilio", "slack").
58
+ provider:,
59
+ # Provider-specific settings (snake_case keys on the wire).
60
+ settings:,
61
+ # Display title. Defaults to "Default Configuration" when not explicitly set.
62
+ title:,
63
+ # Optional alias for this configuration.
64
+ alias_: nil,
65
+ # Unix timestamp (ms) of when the provider was last updated.
66
+ updated: nil
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ id: String,
74
+ created: Integer,
75
+ provider: String,
76
+ settings: T::Hash[Symbol, T.anything],
77
+ title: String,
78
+ alias_: String,
79
+ updated: T.nilable(Integer)
80
+ }
81
+ )
82
+ end
83
+ def to_hash
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,82 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderCreateParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::ProviderCreateParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ # The provider key identifying the type (e.g. "sendgrid", "twilio"). Must be a
15
+ # known Courier provider — see the catalog endpoint for valid keys.
16
+ sig { returns(String) }
17
+ attr_accessor :provider
18
+
19
+ # Optional alias for this configuration.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :alias_
22
+
23
+ sig { params(alias_: String).void }
24
+ attr_writer :alias_
25
+
26
+ # Provider-specific settings (snake_case keys). Defaults to an empty object when
27
+ # omitted. Use the catalog endpoint to discover required fields for a given
28
+ # provider — omitting a required field returns a 400 validation error.
29
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
30
+ attr_reader :settings
31
+
32
+ sig { params(settings: T::Hash[Symbol, T.anything]).void }
33
+ attr_writer :settings
34
+
35
+ # Optional display title. Omit to use "Default Configuration".
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :title
38
+
39
+ sig { params(title: String).void }
40
+ attr_writer :title
41
+
42
+ sig do
43
+ params(
44
+ provider: String,
45
+ alias_: String,
46
+ settings: T::Hash[Symbol, T.anything],
47
+ title: String,
48
+ request_options: Courier::RequestOptions::OrHash
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ # The provider key identifying the type (e.g. "sendgrid", "twilio"). Must be a
53
+ # known Courier provider — see the catalog endpoint for valid keys.
54
+ provider:,
55
+ # Optional alias for this configuration.
56
+ alias_: nil,
57
+ # Provider-specific settings (snake_case keys). Defaults to an empty object when
58
+ # omitted. Use the catalog endpoint to discover required fields for a given
59
+ # provider — omitting a required field returns a 400 validation error.
60
+ settings: nil,
61
+ # Optional display title. Omit to use "Default Configuration".
62
+ title: nil,
63
+ request_options: {}
64
+ )
65
+ end
66
+
67
+ sig do
68
+ override.returns(
69
+ {
70
+ provider: String,
71
+ alias_: String,
72
+ settings: T::Hash[Symbol, T.anything],
73
+ title: String,
74
+ request_options: Courier::RequestOptions
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderDeleteParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::ProviderDeleteParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig do
18
+ params(
19
+ id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderListParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::ProviderListParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ # Opaque cursor for fetching the next page.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :cursor
17
+
18
+ sig { params(cursor: String).void }
19
+ attr_writer :cursor
20
+
21
+ sig do
22
+ params(
23
+ cursor: String,
24
+ request_options: Courier::RequestOptions::OrHash
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(
28
+ # Opaque cursor for fetching the next page.
29
+ cursor: nil,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ { cursor: String, request_options: Courier::RequestOptions }
37
+ )
38
+ end
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderListResponse < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Courier::Models::ProviderListResponse,
10
+ Courier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Courier::Paging) }
15
+ attr_reader :paging
16
+
17
+ sig { params(paging: Courier::Paging::OrHash).void }
18
+ attr_writer :paging
19
+
20
+ sig { returns(T::Array[Courier::Provider]) }
21
+ attr_accessor :results
22
+
23
+ # Paginated list of provider configurations.
24
+ sig do
25
+ params(
26
+ paging: Courier::Paging::OrHash,
27
+ results: T::Array[Courier::Provider::OrHash]
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(paging:, results:)
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ { paging: Courier::Paging, results: T::Array[Courier::Provider] }
36
+ )
37
+ end
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderRetrieveParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::ProviderRetrieveParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig do
18
+ params(
19
+ id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,86 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProviderUpdateParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::ProviderUpdateParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ # The provider key identifying the type.
18
+ sig { returns(String) }
19
+ attr_accessor :provider
20
+
21
+ # Updated alias. Omit to clear.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :alias_
24
+
25
+ sig { params(alias_: String).void }
26
+ attr_writer :alias_
27
+
28
+ # Provider-specific settings (snake_case keys). Replaces the full settings object
29
+ # — omitted settings fields are removed. Use the catalog endpoint to check
30
+ # required fields.
31
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
32
+ attr_reader :settings
33
+
34
+ sig { params(settings: T::Hash[Symbol, T.anything]).void }
35
+ attr_writer :settings
36
+
37
+ # Updated display title.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :title
40
+
41
+ sig { params(title: String).void }
42
+ attr_writer :title
43
+
44
+ sig do
45
+ params(
46
+ id: String,
47
+ provider: String,
48
+ alias_: String,
49
+ settings: T::Hash[Symbol, T.anything],
50
+ title: String,
51
+ request_options: Courier::RequestOptions::OrHash
52
+ ).returns(T.attached_class)
53
+ end
54
+ def self.new(
55
+ id:,
56
+ # The provider key identifying the type.
57
+ provider:,
58
+ # Updated alias. Omit to clear.
59
+ alias_: nil,
60
+ # Provider-specific settings (snake_case keys). Replaces the full settings object
61
+ # — omitted settings fields are removed. Use the catalog endpoint to check
62
+ # required fields.
63
+ settings: nil,
64
+ # Updated display title.
65
+ title: nil,
66
+ request_options: {}
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ id: String,
74
+ provider: String,
75
+ alias_: String,
76
+ settings: T::Hash[Symbol, T.anything],
77
+ title: String,
78
+ request_options: Courier::RequestOptions
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,75 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ module Providers
6
+ class CatalogListParams < Courier::Internal::Type::BaseModel
7
+ extend Courier::Internal::Type::RequestParameters::Converter
8
+ include Courier::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Courier::Providers::CatalogListParams,
14
+ Courier::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Exact match (case-insensitive) against the provider channel taxonomy (e.g.
19
+ # `email`, `sms`, `push`).
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :channel
22
+
23
+ sig { params(channel: String).void }
24
+ attr_writer :channel
25
+
26
+ # Comma-separated provider keys to filter by (e.g. `sendgrid,twilio`).
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :keys
29
+
30
+ sig { params(keys: String).void }
31
+ attr_writer :keys
32
+
33
+ # Case-insensitive substring match against the provider display name.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :name
36
+
37
+ sig { params(name: String).void }
38
+ attr_writer :name
39
+
40
+ sig do
41
+ params(
42
+ channel: String,
43
+ keys: String,
44
+ name: String,
45
+ request_options: Courier::RequestOptions::OrHash
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # Exact match (case-insensitive) against the provider channel taxonomy (e.g.
50
+ # `email`, `sms`, `push`).
51
+ channel: nil,
52
+ # Comma-separated provider keys to filter by (e.g. `sendgrid,twilio`).
53
+ keys: nil,
54
+ # Case-insensitive substring match against the provider display name.
55
+ name: nil,
56
+ request_options: {}
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ channel: String,
64
+ keys: String,
65
+ name: String,
66
+ request_options: Courier::RequestOptions
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,47 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ module Providers
6
+ class CatalogListResponse < Courier::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Courier::Models::Providers::CatalogListResponse,
11
+ Courier::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(Courier::Paging) }
16
+ attr_reader :paging
17
+
18
+ sig { params(paging: Courier::Paging::OrHash).void }
19
+ attr_writer :paging
20
+
21
+ sig { returns(T::Array[Courier::ProvidersCatalogEntry]) }
22
+ attr_accessor :results
23
+
24
+ # Paginated list of available provider types with their configuration schemas.
25
+ sig do
26
+ params(
27
+ paging: Courier::Paging::OrHash,
28
+ results: T::Array[Courier::ProvidersCatalogEntry::OrHash]
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(paging:, results:)
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ paging: Courier::Paging,
38
+ results: T::Array[Courier::ProvidersCatalogEntry]
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,129 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ProvidersCatalogEntry < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::ProvidersCatalogEntry, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # Courier taxonomy channel (e.g. email, push, sms, direct_message, inbox,
12
+ # webhook).
13
+ sig { returns(String) }
14
+ attr_accessor :channel
15
+
16
+ # Short description of the provider.
17
+ sig { returns(String) }
18
+ attr_accessor :description
19
+
20
+ # Human-readable display name.
21
+ sig { returns(String) }
22
+ attr_accessor :name
23
+
24
+ # The provider key (e.g. "sendgrid", "twilio").
25
+ sig { returns(String) }
26
+ attr_accessor :provider
27
+
28
+ # Map of setting field names (snake_case) to their schema descriptors. Each
29
+ # descriptor has `type` and `required`. Empty when the provider has no
30
+ # configurable schema.
31
+ sig { returns(T::Hash[Symbol, Courier::ProvidersCatalogEntry::Setting]) }
32
+ attr_accessor :settings
33
+
34
+ # A provider type from the catalog. Contains the key, display name, description,
35
+ # and a `settings` object describing configuration schema fields.
36
+ sig do
37
+ params(
38
+ channel: String,
39
+ description: String,
40
+ name: String,
41
+ provider: String,
42
+ settings:
43
+ T::Hash[Symbol, Courier::ProvidersCatalogEntry::Setting::OrHash]
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # Courier taxonomy channel (e.g. email, push, sms, direct_message, inbox,
48
+ # webhook).
49
+ channel:,
50
+ # Short description of the provider.
51
+ description:,
52
+ # Human-readable display name.
53
+ name:,
54
+ # The provider key (e.g. "sendgrid", "twilio").
55
+ provider:,
56
+ # Map of setting field names (snake_case) to their schema descriptors. Each
57
+ # descriptor has `type` and `required`. Empty when the provider has no
58
+ # configurable schema.
59
+ settings:
60
+ )
61
+ end
62
+
63
+ sig do
64
+ override.returns(
65
+ {
66
+ channel: String,
67
+ description: String,
68
+ name: String,
69
+ provider: String,
70
+ settings: T::Hash[Symbol, Courier::ProvidersCatalogEntry::Setting]
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+
77
+ class Setting < Courier::Internal::Type::BaseModel
78
+ OrHash =
79
+ T.type_alias do
80
+ T.any(
81
+ Courier::ProvidersCatalogEntry::Setting,
82
+ Courier::Internal::AnyHash
83
+ )
84
+ end
85
+
86
+ # Whether this field is required when configuring the provider.
87
+ sig { returns(T::Boolean) }
88
+ attr_accessor :required
89
+
90
+ # The field's data type (e.g. "string", "boolean", "enum").
91
+ sig { returns(String) }
92
+ attr_accessor :type
93
+
94
+ # Allowed values when `type` is "enum".
95
+ sig { returns(T.nilable(T::Array[String])) }
96
+ attr_reader :values
97
+
98
+ sig { params(values: T::Array[String]).void }
99
+ attr_writer :values
100
+
101
+ # Describes a single configuration field in the provider catalog.
102
+ sig do
103
+ params(
104
+ required: T::Boolean,
105
+ type: String,
106
+ values: T::Array[String]
107
+ ).returns(T.attached_class)
108
+ end
109
+ def self.new(
110
+ # Whether this field is required when configuring the provider.
111
+ required:,
112
+ # The field's data type (e.g. "string", "boolean", "enum").
113
+ type:,
114
+ # Allowed values when `type` is "enum".
115
+ values: nil
116
+ )
117
+ end
118
+
119
+ sig do
120
+ override.returns(
121
+ { required: T::Boolean, type: String, values: T::Array[String] }
122
+ )
123
+ end
124
+ def to_hash
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
@@ -11,15 +11,23 @@ module Courier
11
11
  T.any(Courier::RequestArchiveParams, Courier::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :request_id
16
+
14
17
  sig do
15
- params(request_options: Courier::RequestOptions::OrHash).returns(
16
- T.attached_class
17
- )
18
+ params(
19
+ request_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
18
22
  end
19
- def self.new(request_options: {})
23
+ def self.new(request_id:, request_options: {})
20
24
  end
21
25
 
22
- sig { override.returns({ request_options: Courier::RequestOptions }) }
26
+ sig do
27
+ override.returns(
28
+ { request_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
23
31
  def to_hash
24
32
  end
25
33
  end