sentdm 0.26.0 → 0.28.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -3,19 +3,31 @@
3
3
  module Sentdm
4
4
  module Resources
5
5
  class Profiles
6
- # Manage organization profiles
6
+ # **Deprecated use Sender Profiles.**
7
+ #
8
+ # The original profile resource, kept because it has live callers. It still works,
9
+ # and its replacement is `/v3/sender-profiles`, which takes the identity and the
10
+ # campaign in one call instead of across three.
11
+ #
12
+ # New integrations should not start here.
7
13
  class Campaigns
14
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
15
+ # removed in a future release. It still behaves exactly as before, so nothing
16
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
17
+ # which models a profile's markets, compliance, brand, campaigns and billing
18
+ # explicitly.
19
+ #
8
20
  # Creates a new campaign scoped under the brand of the specified profile. Each
9
21
  # campaign must include at least one use case with sample messages.
10
22
  sig do
11
23
  params(
12
24
  profile_id: String,
13
- campaign: Sentdm::Profiles::CampaignData::OrHash,
25
+ campaign: Sentdm::Profiles::CampaignCreateParams::Campaign::OrHash,
14
26
  sandbox: T::Boolean,
15
27
  idempotency_key: String,
16
28
  x_profile_id: String,
17
29
  request_options: Sentdm::RequestOptions::OrHash
18
- ).returns(Sentdm::Profiles::APIResponseOfBrandCampaign)
30
+ ).returns(Sentdm::Models::Profiles::CampaignCreateResponse)
19
31
  end
20
32
  def create(
21
33
  # Path param: Profile ID from route
@@ -37,18 +49,24 @@ module Sentdm
37
49
  )
38
50
  end
39
51
 
52
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
53
+ # removed in a future release. It still behaves exactly as before, so nothing
54
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
55
+ # which models a profile's markets, compliance, brand, campaigns and billing
56
+ # explicitly.
57
+ #
40
58
  # Updates an existing campaign under the brand of the specified profile. Cannot
41
59
  # update campaigns that have already been submitted to TCR.
42
60
  sig do
43
61
  params(
44
62
  campaign_id: String,
45
63
  profile_id: String,
46
- campaign: Sentdm::Profiles::CampaignData::OrHash,
64
+ campaign: Sentdm::Profiles::CampaignUpdateParams::Campaign::OrHash,
47
65
  sandbox: T::Boolean,
48
66
  idempotency_key: String,
49
67
  x_profile_id: String,
50
68
  request_options: Sentdm::RequestOptions::OrHash
51
- ).returns(Sentdm::Profiles::APIResponseOfBrandCampaign)
69
+ ).returns(Sentdm::Models::Profiles::CampaignUpdateResponse)
52
70
  end
53
71
  def update(
54
72
  # Path param: Campaign ID from route
@@ -72,6 +90,12 @@ module Sentdm
72
90
  )
73
91
  end
74
92
 
93
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
94
+ # removed in a future release. It still behaves exactly as before, so nothing
95
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
96
+ # which models a profile's markets, compliance, brand, campaigns and billing
97
+ # explicitly.
98
+ #
75
99
  # Retrieves all campaigns linked to the profile's brand, including use cases and
76
100
  # sample messages. Returns inherited campaigns if inherit_tcr_campaign=true.
77
101
  sig do
@@ -79,7 +103,7 @@ module Sentdm
79
103
  profile_id: String,
80
104
  x_profile_id: String,
81
105
  request_options: Sentdm::RequestOptions::OrHash
82
- ).returns(Sentdm::Profiles::APIResponseOfListOfBrandCampaign)
106
+ ).returns(Sentdm::Models::Profiles::CampaignListResponse)
83
107
  end
84
108
  def list(
85
109
  # Profile ID from route
@@ -91,6 +115,12 @@ module Sentdm
91
115
  )
92
116
  end
93
117
 
118
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
119
+ # removed in a future release. It still behaves exactly as before, so nothing
120
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
121
+ # which models a profile's markets, compliance, brand, campaigns and billing
122
+ # explicitly.
123
+ #
94
124
  # Deletes a campaign by ID from the brand of the specified profile. The profile
95
125
  # must belong to the authenticated organization.
96
126
  sig do
@@ -2,35 +2,45 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Manage organization profiles
5
+ # **Deprecated use Sender Profiles.**
6
+ #
7
+ # The original profile resource, kept because it has live callers. It still works,
8
+ # and its replacement is `/v3/sender-profiles`, which takes the identity and the
9
+ # campaign in one call instead of across three.
10
+ #
11
+ # New integrations should not start here.
6
12
  class Profiles
7
- # Manage organization profiles
13
+ # **Deprecated use Sender Profiles.**
14
+ #
15
+ # The original profile resource, kept because it has live callers. It still works,
16
+ # and its replacement is `/v3/sender-profiles`, which takes the identity and the
17
+ # campaign in one call instead of across three.
18
+ #
19
+ # New integrations should not start here.
8
20
  sig { returns(Sentdm::Resources::Profiles::Campaigns) }
9
21
  attr_reader :campaigns
10
22
 
23
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
24
+ # removed in a future release. It still behaves exactly as before, so nothing
25
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
26
+ # which models a profile's markets, compliance, brand, campaigns and billing
27
+ # explicitly.
28
+ #
11
29
  # Creates a new sender profile within an organization. Profiles represent
12
30
  # different brands, departments, or use cases, each with their own messaging
13
31
  # configuration and settings. Requires admin role in the organization.
14
32
  #
15
33
  # ## WhatsApp Business Account
16
34
  #
17
- # Every profile must be linked to a WhatsApp Business Account. There are two ways
18
- # to do this:
35
+ # Every profile owns its own WhatsApp Business Account accounts are never shared
36
+ # between profiles or inherited from the organization. Provide a
37
+ # `whatsapp_business_account` object with `waba_id`, `phone_number_id`, and
38
+ # `access_token`. Obtain these from Meta Business Manager by creating a System
39
+ # User with `whatsapp_business_messaging` and `whatsapp_business_management`
40
+ # permissions.
19
41
  #
20
- # **1. Inherit from organization (default)** Omit the
21
- # `whatsapp_business_account` field. The profile will share the organization's
22
- # WhatsApp Business Account, which must have been set up via WhatsApp Embedded
23
- # Signup. This is the recommended path for most use cases.
24
- #
25
- # **2. Direct credentials** — Provide a `whatsapp_business_account` object with
26
- # `waba_id`, `phone_number_id`, and `access_token`. Use this when the profile
27
- # needs its own independent WhatsApp Business Account. Obtain these from Meta
28
- # Business Manager by creating a System User with `whatsapp_business_messaging`
29
- # and `whatsapp_business_management` permissions.
30
- #
31
- # If the `whatsapp_business_account` field is omitted and the organization has no
32
- # WhatsApp Business Account configured, the request will be rejected with
33
- # HTTP 422.
42
+ # Omit the field and the profile is created without WhatsApp, staying incomplete
43
+ # until it has an account of its own.
34
44
  #
35
45
  # ## Brand
36
46
  #
@@ -46,11 +56,12 @@ module Sentdm
46
56
  # when `billing_model` is `"organization"` is not allowed.
47
57
  sig do
48
58
  params(
49
- allow_contact_sharing: T::Boolean,
50
- allow_template_sharing: T::Boolean,
51
- billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash),
59
+ allow_contact_sharing: T.nilable(T::Boolean),
60
+ allow_template_sharing: T.nilable(T::Boolean),
61
+ billing_contact:
62
+ T.nilable(Sentdm::ProfileCreateParams::BillingContact::OrHash),
52
63
  billing_model: T.nilable(String),
53
- brand: T.nilable(Sentdm::BrandsBrandData::OrHash),
64
+ brand: T.nilable(Sentdm::ProfileCreateParams::Brand::OrHash),
54
65
  description: T.nilable(String),
55
66
  icon: T.nilable(String),
56
67
  inherit_contacts: T.nilable(T::Boolean),
@@ -58,7 +69,8 @@ module Sentdm
58
69
  inherit_tcr_campaign: T.nilable(T::Boolean),
59
70
  inherit_templates: T.nilable(T::Boolean),
60
71
  name: String,
61
- payment_details: T.nilable(Sentdm::PaymentDetails::OrHash),
72
+ payment_details:
73
+ T.nilable(Sentdm::ProfileCreateParams::PaymentDetails::OrHash),
62
74
  sandbox: T::Boolean,
63
75
  short_name: T.nilable(String),
64
76
  whatsapp_business_account:
@@ -68,12 +80,27 @@ module Sentdm
68
80
  idempotency_key: String,
69
81
  x_profile_id: String,
70
82
  request_options: Sentdm::RequestOptions::OrHash
71
- ).returns(Sentdm::APIResponseOfProfileDetail)
83
+ ).returns(Sentdm::Models::ProfileCreateResponse)
72
84
  end
73
85
  def create(
74
- # Body param: Whether contacts are shared across profiles (default: false)
86
+ # Body param: Deprecated. Accepted and ignored. Contact and template sharing
87
+ # between sender profiles is gone — a profile sees only what it owns, and the
88
+ # organization still sees all of its profiles' contacts and templates through
89
+ # read-time widening. The four columns behind these flags were dropped by
90
+ # M260720120000.
91
+ #
92
+ # Bound rather than dropped so the properties survive on the wire and in a
93
+ # generated client: an SDK that assigns them keeps compiling, which is the
94
+ # compatibility this exists for. Deliberately not refused either — a 400 would
95
+ # break an integration that is otherwise working, and the capability they ask for
96
+ # is gone either way. Same rule as SendingPhoneNumberProfileId.
97
+ #
98
+ # The read is what makes this survivable: every profile reports all four as false,
99
+ # so a caller that checks its own write can see it did not take. Requests carrying
100
+ # one are logged, so we can tell when nobody sends them any more and the fields
101
+ # can go for real.
75
102
  allow_contact_sharing: nil,
76
- # Body param: Whether templates are shared across profiles (default: false)
103
+ # Body param
77
104
  allow_template_sharing: nil,
78
105
  # Body param: Billing contact information for a profile. Required when
79
106
  # billing_model is "profile" or "profile_and_organization".
@@ -94,23 +121,21 @@ module Sentdm
94
121
  description: nil,
95
122
  # Body param: Profile icon URL (optional)
96
123
  icon: nil,
97
- # Body param: Whether this profile inherits contacts from organization (default:
98
- # true)
124
+ # Body param
99
125
  inherit_contacts: nil,
100
126
  # Body param: Whether this profile inherits TCR brand from organization (default:
101
- # true)
127
+ # false)
102
128
  inherit_tcr_brand: nil,
103
129
  # Body param: Whether this profile inherits TCR campaign from organization
104
- # (default: true)
130
+ # (default: false)
105
131
  inherit_tcr_campaign: nil,
106
- # Body param: Whether this profile inherits templates from organization (default:
107
- # true)
132
+ # Body param
108
133
  inherit_templates: nil,
109
134
  # Body param: Profile name (required)
110
135
  name: nil,
111
- # Body param: Payment card details for a profile. Accepted when billing_model is
112
- # "profile" or "profile_and_organization". These details are not stored on our
113
- # servers and will be forwarded to the payment processor.
136
+ # Body param: Payment card details for this profile (optional). Accepted when
137
+ # billing_model is "profile" or "profile_and_organization". Not persisted on our
138
+ # servers forwarded to the payment processor.
114
139
  payment_details: nil,
115
140
  # Body param: Sandbox flag - when true, the operation is simulated without side
116
141
  # effects Useful for testing integrations without actual execution
@@ -137,6 +162,12 @@ module Sentdm
137
162
  )
138
163
  end
139
164
 
165
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
166
+ # removed in a future release. It still behaves exactly as before, so nothing
167
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
168
+ # which models a profile's markets, compliance, brand, campaigns and billing
169
+ # explicitly.
170
+ #
140
171
  # Retrieves detailed information about a specific sender profile within an
141
172
  # organization, including brand and KYC information if a brand has been
142
173
  # configured.
@@ -145,9 +176,10 @@ module Sentdm
145
176
  profile_id: String,
146
177
  x_profile_id: String,
147
178
  request_options: Sentdm::RequestOptions::OrHash
148
- ).returns(Sentdm::APIResponseOfProfileDetail)
179
+ ).returns(Sentdm::Models::ProfileRetrieveResponse)
149
180
  end
150
181
  def retrieve(
182
+ # Profile ID from route parameter
151
183
  profile_id,
152
184
  # Profile UUID to scope the request to a child profile. Only organization API keys
153
185
  # can use this header. The profile must belong to the calling organization.
@@ -156,6 +188,12 @@ module Sentdm
156
188
  )
157
189
  end
158
190
 
191
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
192
+ # removed in a future release. It still behaves exactly as before, so nothing
193
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
194
+ # which models a profile's markets, compliance, brand, campaigns and billing
195
+ # explicitly.
196
+ #
159
197
  # Updates a profile's configuration and settings. Requires admin role in the
160
198
  # organization. Only provided fields will be updated (partial update).
161
199
  #
@@ -174,15 +212,30 @@ module Sentdm
174
212
  # CVC, and billing ZIP code. Payment details are **never stored** on our servers
175
213
  # and are forwarded directly to the payment processor. Providing `payment_details`
176
214
  # when `billing_model` is `"organization"` is not allowed.
215
+ #
216
+ # ## Deprecated fields
217
+ #
218
+ # `sending_phone_number_profile_id` and `sending_whatsapp_number_profile_id` are
219
+ # **accepted and ignored**. Sender borrowing is gone: a profile cannot send from
220
+ # another profile's number, because two profiles behind one sender makes an
221
+ # inbound reply and a delivery receipt ambiguous about whose they are.
222
+ #
223
+ # Sending either **changes nothing and still returns `200`** — they are kept on
224
+ # the contract so an existing integration keeps working. Reads carry both keys too
225
+ # and always answer `null`, which is how you can confirm the value did not take.
226
+ #
227
+ # Give the profile a sender of its own instead — `POST /v3/channels/sms` or
228
+ # `POST /v3/channels/whatsapp`, sent with the `x-profile-id` header naming it.
177
229
  sig do
178
230
  params(
179
231
  profile_id: String,
180
232
  allow_contact_sharing: T.nilable(T::Boolean),
181
233
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
182
234
  allow_template_sharing: T.nilable(T::Boolean),
183
- billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash),
235
+ billing_contact:
236
+ T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash),
184
237
  billing_model: T.nilable(String),
185
- brand: T.nilable(Sentdm::BrandsBrandData::OrHash),
238
+ brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash),
186
239
  description: T.nilable(String),
187
240
  icon: T.nilable(String),
188
241
  inherit_contacts: T.nilable(T::Boolean),
@@ -190,7 +243,8 @@ module Sentdm
190
243
  inherit_tcr_campaign: T.nilable(T::Boolean),
191
244
  inherit_templates: T.nilable(T::Boolean),
192
245
  name: T.nilable(String),
193
- payment_details: T.nilable(Sentdm::PaymentDetails::OrHash),
246
+ payment_details:
247
+ T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash),
194
248
  sandbox: T::Boolean,
195
249
  sending_phone_number: T.nilable(String),
196
250
  sending_phone_number_profile_id: T.nilable(String),
@@ -200,16 +254,26 @@ module Sentdm
200
254
  idempotency_key: String,
201
255
  x_profile_id: String,
202
256
  request_options: Sentdm::RequestOptions::OrHash
203
- ).returns(Sentdm::APIResponseOfProfileDetail)
257
+ ).returns(Sentdm::Models::ProfileUpdateResponse)
204
258
  end
205
259
  def update(
206
- # Path param
260
+ # Path param: Profile ID from route parameter
207
261
  profile_id,
208
- # Body param: Whether contacts are shared across profiles (optional)
262
+ # Body param: Deprecated. Accepted and ignored. Contact and template sharing
263
+ # between sender profiles is gone — a profile sees only what it owns, and the
264
+ # organization still sees all of its profiles' contacts and templates through
265
+ # read-time widening. The four columns behind these flags were dropped by
266
+ # M260720120000.
267
+ #
268
+ # Retired the same way as SendingPhoneNumberProfileId, and for the same reason:
269
+ # the properties stay bound so an SDK that assigns them keeps compiling, and a 400
270
+ # would break a working integration over a capability that is gone regardless.
271
+ # Every profile reports all four as false, so a caller that checks its own write
272
+ # can see it did not take.
209
273
  allow_contact_sharing: nil,
210
274
  # Body param: Whether number changes are allowed during onboarding (optional)
211
275
  allow_number_change_during_onboarding: nil,
212
- # Body param: Whether templates are shared across profiles (optional)
276
+ # Body param
213
277
  allow_template_sharing: nil,
214
278
  # Body param: Billing contact information for a profile. Required when
215
279
  # billing_model is "profile" or "profile_and_organization".
@@ -230,30 +294,47 @@ module Sentdm
230
294
  description: nil,
231
295
  # Body param: Profile icon URL (optional)
232
296
  icon: nil,
233
- # Body param: Whether this profile inherits contacts from organization (optional)
297
+ # Body param
234
298
  inherit_contacts: nil,
235
299
  # Body param: Whether this profile inherits TCR brand from organization (optional)
236
300
  inherit_tcr_brand: nil,
237
301
  # Body param: Whether this profile inherits TCR campaign from organization
238
302
  # (optional)
239
303
  inherit_tcr_campaign: nil,
240
- # Body param: Whether this profile inherits templates from organization (optional)
304
+ # Body param
241
305
  inherit_templates: nil,
242
306
  # Body param: Profile name (optional)
243
307
  name: nil,
244
- # Body param: Payment card details for a profile. Accepted when billing_model is
245
- # "profile" or "profile_and_organization". These details are not stored on our
246
- # servers and will be forwarded to the payment processor.
308
+ # Body param: Payment card details for this profile (optional). Accepted when
309
+ # billing_model is "profile" or "profile_and_organization". Not persisted on our
310
+ # servers forwarded to the payment processor.
247
311
  payment_details: nil,
248
312
  # Body param: Sandbox flag - when true, the operation is simulated without side
249
313
  # effects Useful for testing integrations without actual execution
250
314
  sandbox: nil,
251
315
  # Body param: Direct phone number for SMS sending (optional)
252
316
  sending_phone_number: nil,
253
- # Body param: Reference to another profile to use for SMS configuration (optional)
317
+ # Body param: Deprecated. Accepted and ignored. Sender borrowing is gone: a
318
+ # profile cannot send from another profile's SMS number. Supplying this changes
319
+ # nothing and the request still succeeds.
320
+ #
321
+ # Bound rather than dropped so the property survives on the wire and in a
322
+ # generated client — an SDK that assigns it keeps compiling, which is the
323
+ # compatibility this exists for. It is deliberately not refused: a 400 here would
324
+ # break an integration that is otherwise working, and the capability it asks for
325
+ # is gone either way.
326
+ #
327
+ # The trade-off, stated plainly. A caller asking for borrowing is told it
328
+ # succeeded when nothing happened. What makes that survivable is the read:
329
+ # sending_phone_number_profile_id comes back null on every profile, so a caller
330
+ # that checks its own write can see it did not take. Every request that carries
331
+ # one is logged, so we can tell when nobody is sending it any more and the field
332
+ # can go for real.
333
+ #
334
+ # Give the profile a sender of its own instead: POST /v3/channels/sms with the
335
+ # x-profile-id header naming it.
254
336
  sending_phone_number_profile_id: nil,
255
- # Body param: Reference to another profile to use for WhatsApp configuration
256
- # (optional)
337
+ # Body param
257
338
  sending_whatsapp_number_profile_id: nil,
258
339
  # Body param: Profile short name/abbreviation (optional). Must be 3–11 characters,
259
340
  # contain only letters, numbers, and spaces, and include at least one letter.
@@ -273,6 +354,12 @@ module Sentdm
273
354
  )
274
355
  end
275
356
 
357
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
358
+ # removed in a future release. It still behaves exactly as before, so nothing
359
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
360
+ # which models a profile's markets, compliance, brand, campaigns and billing
361
+ # explicitly.
362
+ #
276
363
  # Retrieves all sender profiles within an organization, including brand
277
364
  # information for each profile. Profiles represent different brands, departments,
278
365
  # or use cases within an organization, each with their own messaging
@@ -291,8 +378,17 @@ module Sentdm
291
378
  )
292
379
  end
293
380
 
381
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
382
+ # removed in a future release. It still behaves exactly as before, so nothing
383
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
384
+ # which models a profile's markets, compliance, brand, campaigns and billing
385
+ # explicitly.
386
+ #
294
387
  # Soft deletes a sender profile. The profile will be marked as deleted but data is
295
- # retained. Requires admin role in the organization.
388
+ # retained. Anything it still held is released first: phone numbers return to our
389
+ # inventory and can go to whoever asks next, its own WhatsApp account is
390
+ # deregistered, and its routing rules stop being used. Requires admin role in the
391
+ # organization.
296
392
  sig do
297
393
  params(
298
394
  profile_id: String,
@@ -302,7 +398,7 @@ module Sentdm
302
398
  ).void
303
399
  end
304
400
  def delete(
305
- # Path param
401
+ # Path param: Profile ID from route parameter
306
402
  profile_id,
307
403
  # Body param: Sandbox flag - when true, the operation is simulated without side
308
404
  # effects Useful for testing integrations without actual execution
@@ -315,15 +411,27 @@ module Sentdm
315
411
  )
316
412
  end
317
413
 
414
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
415
+ # removed in a future release. It still behaves exactly as before, so nothing
416
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
417
+ # which models a profile's markets, compliance, brand, campaigns and billing
418
+ # explicitly.
419
+ #
318
420
  # Final step in the profile compliance workflow. Validates all prerequisites (KYC,
319
421
  # brand, campaigns, required documents), connects the profile to the SMS and
320
- # WhatsApp channels, and sets its status based on configuration. Prerequisites are
321
- # always validated first: if any fail the call returns 400. If they pass and the
322
- # profile is already completed, the call returns 200 and does nothing. Otherwise
323
- # it returns 202 and calls the provided webhook URL when background processing
324
- # finishes.
422
+ # WhatsApp channels, and marks it onboarded. Prerequisites are always validated
423
+ # first: if any fail the call returns 400 naming every unmet one, and nothing is
424
+ # started. If they pass and the profile is already onboarded, the call returns 200
425
+ # and does nothing. Otherwise it returns 202 and calls the provided webhook URL
426
+ # when background processing finishes.
427
+ #
428
+ # Callable with the organization's API key or the profile's own key. The key's
429
+ # user must be an admin or owner of the profile, or of the organization it belongs
430
+ # to.
325
431
  #
326
- # Prerequisites:
432
+ # Prerequisites (all but the last are checked before the already-onboarded
433
+ # short-circuit, matching the previous contract; the last is checked after it, so
434
+ # a profile that is already onboarded is never rejected by it):
327
435
  #
328
436
  # - Profile must have a name, short name, and description (short name max 50
329
437
  # characters, description max 5000)
@@ -334,17 +442,18 @@ module Sentdm
334
442
  # - TCR applications must have at least one campaign, own or inherited
335
443
  # - Destination countries marked as main must have their required compliance
336
444
  # documents uploaded
445
+ # - TCR applications must state whether they inherit the organization's TCR brand
446
+ # and campaign
337
447
  #
338
- # Resulting status:
448
+ # Outcome:
339
449
  #
340
- # - If either the SMS or WhatsApp channel is unconfigured, the profile is
341
- # SUBMITTED
342
- # - For a TCR application that inherits both its brand and its campaigns, the
343
- # profile is COMPLETED
344
- # - For a TCR application that owns either its brand or its campaigns, the profile
345
- # is COMPLETED once both have been submitted to TCR, and SUBMITTED until then
346
- # - For a non-TCR application, the profile is SUBMITTED when a main destination
347
- # country is set, and COMPLETED otherwise
450
+ # - Once the prerequisites pass and background processing succeeds, the profile's
451
+ # conversionFlowStatus becomes ONBOARDED and its public status reads `approved`
452
+ # - A profile with no WhatsApp channel, or one still awaiting TCR registration or
453
+ # country documents, is onboarded like any other. Those are answered by the
454
+ # brand and campaign records, not by a status on the profile
455
+ # - If background processing fails, the profile keeps the status it already had
456
+ # and the webhook reports the reason
348
457
  sig do
349
458
  params(
350
459
  profile_id: String,
@@ -2,7 +2,13 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Manage message templates with variable substitution
5
+ # Reusable message bodies with named variables.
6
+ #
7
+ # A template is substituted at send time from the values you pass, so the copy
8
+ # lives here rather than in your application. WhatsApp templates additionally need
9
+ # Meta's approval before they can be sent, and a template's channel status reports
10
+ # where that stands — an approved SMS template and an unapproved WhatsApp one are
11
+ # the same template in two states.
6
12
  class Templates
7
13
  # Creates a new message template with header, body, footer, and buttons. The
8
14
  # template can be submitted for review immediately or saved as draft for later
@@ -18,7 +24,7 @@ module Sentdm
18
24
  idempotency_key: String,
19
25
  x_profile_id: String,
20
26
  request_options: Sentdm::RequestOptions::OrHash
21
- ).returns(Sentdm::APIResponseTemplate)
27
+ ).returns(Sentdm::Models::TemplateCreateResponse)
22
28
  end
23
29
  def create(
24
30
  # Body param: Template category: MARKETING, UTILITY, AUTHENTICATION (optional,
@@ -57,7 +63,7 @@ module Sentdm
57
63
  id: String,
58
64
  x_profile_id: String,
59
65
  request_options: Sentdm::RequestOptions::OrHash
60
- ).returns(Sentdm::APIResponseTemplate)
66
+ ).returns(Sentdm::Models::TemplateRetrieveResponse)
61
67
  end
62
68
  def retrieve(
63
69
  # Template ID from route parameter
@@ -83,7 +89,7 @@ module Sentdm
83
89
  idempotency_key: String,
84
90
  x_profile_id: String,
85
91
  request_options: Sentdm::RequestOptions::OrHash
86
- ).returns(Sentdm::APIResponseTemplate)
92
+ ).returns(Sentdm::Models::TemplateUpdateResponse)
87
93
  end
88
94
  def update(
89
95
  # Path param: Template ID from route parameter
@@ -136,7 +142,11 @@ module Sentdm
136
142
  page_size:,
137
143
  # Query param: Optional category filter: MARKETING, UTILITY, AUTHENTICATION
138
144
  category: nil,
139
- # Query param: Optional filter by welcome playground flag
145
+ # Query param: Accepted and ignored. It used to filter on the welcome-playground
146
+ # marker inside a template's LOB details; that filter is gone and nothing reads
147
+ # this value, so sending it neither narrows nor widens the result. Retained only
148
+ # so a client still passing is_welcome_playground keeps binding instead of the
149
+ # request shape changing under it.
140
150
  is_welcome_playground: nil,
141
151
  # Query param: Optional search term for filtering templates
142
152
  search: nil,
@@ -2,7 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Invite, update, and manage organization users and roles
5
+ # The people who can sign in to your organization, and what each may do.
6
+ #
7
+ # Users are dashboard access and nothing else — they do not send, and removing one
8
+ # does not affect traffic. An API key is not a user: it belongs to the
9
+ # organization or to a sender profile, so revoking a person's access leaves your
10
+ # integration running.
6
11
  class Users
7
12
  # Retrieves detailed information about a specific user in an organization or
8
13
  # profile. Requires developer role or higher.
@@ -11,9 +16,10 @@ module Sentdm
11
16
  user_id: String,
12
17
  x_profile_id: String,
13
18
  request_options: Sentdm::RequestOptions::OrHash
14
- ).returns(Sentdm::APIResponseOfUser)
19
+ ).returns(Sentdm::Models::UserRetrieveResponse)
15
20
  end
16
21
  def retrieve(
22
+ # User ID from route parameter
17
23
  user_id,
18
24
  # Profile UUID to scope the request to a child profile. Only organization API keys
19
25
  # can use this header. The profile must belong to the calling organization.
@@ -51,7 +57,7 @@ module Sentdm
51
57
  idempotency_key: String,
52
58
  x_profile_id: String,
53
59
  request_options: Sentdm::RequestOptions::OrHash
54
- ).returns(Sentdm::APIResponseOfUser)
60
+ ).returns(Sentdm::Models::UserInviteResponse)
55
61
  end
56
62
  def invite(
57
63
  # Body param: User email address (required)
@@ -86,7 +92,7 @@ module Sentdm
86
92
  ).void
87
93
  end
88
94
  def remove(
89
- # Path param
95
+ # Path param: User ID from route parameter
90
96
  user_id,
91
97
  # Body param: Sandbox flag - when true, the operation is simulated without side
92
98
  # effects Useful for testing integrations without actual execution
@@ -109,10 +115,10 @@ module Sentdm
109
115
  idempotency_key: String,
110
116
  x_profile_id: String,
111
117
  request_options: Sentdm::RequestOptions::OrHash
112
- ).returns(Sentdm::APIResponseOfUser)
118
+ ).returns(Sentdm::Models::UserUpdateRoleResponse)
113
119
  end
114
120
  def update_role(
115
- # Path param
121
+ # Path param: User ID from route parameter
116
122
  user_id,
117
123
  # Body param: User role: admin, billing, or developer (required)
118
124
  role: nil,