sentdm 0.27.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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -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/me_retrieve_response.rb +242 -12
  15. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  16. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  17. data/lib/sentdm/models/message_send_response.rb +113 -28
  18. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  19. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  20. data/lib/sentdm/models/profile_create_params.rb +378 -26
  21. data/lib/sentdm/models/profile_create_response.rb +760 -0
  22. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  23. data/lib/sentdm/models/profile_list_response.rb +825 -14
  24. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  25. data/lib/sentdm/models/profile_update_params.rb +391 -24
  26. data/lib/sentdm/models/profile_update_response.rb +760 -0
  27. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  28. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  29. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  30. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  31. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  33. data/lib/sentdm/models/template_create_response.rb +209 -0
  34. data/lib/sentdm/models/template_list_params.rb +9 -2
  35. data/lib/sentdm/models/template_list_response.rb +262 -16
  36. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  37. data/lib/sentdm/models/template_update_response.rb +209 -0
  38. data/lib/sentdm/models/user_invite_response.rb +201 -0
  39. data/lib/sentdm/models/user_list_response.rb +259 -14
  40. data/lib/sentdm/models/user_remove_params.rb +16 -2
  41. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  42. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  43. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  44. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  45. data/lib/sentdm/models/webhook_list_events_response.rb +162 -13
  46. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  47. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  48. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  49. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  50. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  51. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  52. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  53. data/lib/sentdm/models.rb +0 -52
  54. data/lib/sentdm/resources/contacts.rb +30 -13
  55. data/lib/sentdm/resources/conversations.rb +12 -4
  56. data/lib/sentdm/resources/me.rb +6 -1
  57. data/lib/sentdm/resources/messages.rb +11 -1
  58. data/lib/sentdm/resources/numbers.rb +6 -1
  59. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  60. data/lib/sentdm/resources/profiles.rb +134 -58
  61. data/lib/sentdm/resources/templates.rb +14 -8
  62. data/lib/sentdm/resources/users.rb +12 -7
  63. data/lib/sentdm/resources/webhooks.rb +19 -9
  64. data/lib/sentdm/version.rb +1 -1
  65. data/lib/sentdm.rb +22 -32
  66. data/rbi/sentdm/client.rbi +71 -8
  67. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  68. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  69. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  70. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  71. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  72. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  73. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  74. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  75. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  76. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  77. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  78. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  79. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  80. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  81. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  82. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  83. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  84. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  85. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  86. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  87. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  88. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  89. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  90. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  91. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  92. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  93. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  94. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  95. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  96. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  97. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  98. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  99. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  100. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  101. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  102. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  103. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  104. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  105. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  106. data/rbi/sentdm/models/webhook_list_events_response.rbi +319 -15
  107. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  108. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  109. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  110. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  111. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  112. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  113. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  114. data/rbi/sentdm/models.rbi +0 -54
  115. data/rbi/sentdm/resources/contacts.rbi +24 -9
  116. data/rbi/sentdm/resources/conversations.rbi +10 -2
  117. data/rbi/sentdm/resources/me.rbi +6 -1
  118. data/rbi/sentdm/resources/messages.rbi +11 -1
  119. data/rbi/sentdm/resources/numbers.rbi +6 -1
  120. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  121. data/rbi/sentdm/resources/profiles.rbi +174 -66
  122. data/rbi/sentdm/resources/templates.rbi +15 -5
  123. data/rbi/sentdm/resources/users.rbi +9 -4
  124. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  125. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  126. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  127. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  128. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  129. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  130. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  131. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  132. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  133. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  134. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  135. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  136. data/sig/sentdm/models/message_send_response.rbs +71 -9
  137. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  138. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  139. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  140. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  141. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  142. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  143. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  144. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  145. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  146. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  147. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  148. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  149. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  150. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  151. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  152. data/sig/sentdm/models/template_create_response.rbs +182 -0
  153. data/sig/sentdm/models/template_list_response.rbs +230 -19
  154. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  155. data/sig/sentdm/models/template_update_response.rbs +182 -0
  156. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  157. data/sig/sentdm/models/user_list_response.rbs +233 -15
  158. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  159. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  160. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  161. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  162. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  163. data/sig/sentdm/models/webhook_list_events_response.rbs +142 -14
  164. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  165. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  166. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  167. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  168. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  169. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  170. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  171. data/sig/sentdm/models.rbs +0 -52
  172. data/sig/sentdm/resources/contacts.rbs +4 -4
  173. data/sig/sentdm/resources/conversations.rbs +2 -2
  174. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  175. data/sig/sentdm/resources/profiles.rbs +11 -11
  176. data/sig/sentdm/resources/templates.rbs +3 -3
  177. data/sig/sentdm/resources/users.rbs +3 -3
  178. data/sig/sentdm/resources/webhooks.rbs +4 -4
  179. metadata +68 -98
  180. data/lib/sentdm/models/api_meta.rb +0 -34
  181. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  182. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  183. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  184. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  185. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  186. data/lib/sentdm/models/api_response_template.rb +0 -43
  187. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  188. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  189. data/lib/sentdm/models/brand_business_info.rb +0 -114
  190. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  191. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  192. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  193. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  194. data/lib/sentdm/models/contact_response.rb +0 -126
  195. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  196. data/lib/sentdm/models/error_detail.rb +0 -42
  197. data/lib/sentdm/models/mutation_request.rb +0 -20
  198. data/lib/sentdm/models/pagination_meta.rb +0 -80
  199. data/lib/sentdm/models/payment_details.rb +0 -44
  200. data/lib/sentdm/models/profile_detail.rb +0 -605
  201. data/lib/sentdm/models/profile_settings.rb +0 -66
  202. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  203. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  204. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  205. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  206. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  207. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  208. data/lib/sentdm/models/template.rb +0 -90
  209. data/lib/sentdm/models/user_response.rb +0 -82
  210. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  211. data/lib/sentdm/models/webhook_response.rb +0 -95
  212. data/rbi/sentdm/models/api_meta.rbi +0 -55
  213. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  214. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  215. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  216. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  217. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  218. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  219. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  220. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  221. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  222. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  223. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  224. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  225. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  226. data/rbi/sentdm/models/contact_response.rbi +0 -183
  227. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  228. data/rbi/sentdm/models/error_detail.rbi +0 -66
  229. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  230. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  231. data/rbi/sentdm/models/payment_details.rbi +0 -59
  232. data/rbi/sentdm/models/profile_detail.rbi +0 -872
  233. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  234. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  235. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  236. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  237. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  238. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  239. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  240. data/rbi/sentdm/models/template.rbi +0 -129
  241. data/rbi/sentdm/models/user_response.rbi +0 -118
  242. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  243. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  244. data/sig/sentdm/models/api_meta.rbs +0 -27
  245. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  246. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  247. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  248. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  249. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  250. data/sig/sentdm/models/api_response_template.rbs +0 -39
  251. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  252. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  253. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  254. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  255. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  256. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  257. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  258. data/sig/sentdm/models/contact_response.rbs +0 -111
  259. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  260. data/sig/sentdm/models/error_detail.rbs +0 -39
  261. data/sig/sentdm/models/mutation_request.rbs +0 -15
  262. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  263. data/sig/sentdm/models/payment_details.rbs +0 -30
  264. data/sig/sentdm/models/profile_detail.rbs +0 -469
  265. data/sig/sentdm/models/profile_settings.rbs +0 -50
  266. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  267. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  268. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  269. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  270. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  271. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  272. data/sig/sentdm/models/template.rbs +0 -79
  273. data/sig/sentdm/models/user_response.rbs +0 -72
  274. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  275. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -2,6 +2,14 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
+ # Inbound and outbound messages, grouped by the person they are with.
6
+ #
7
+ # A conversation is the thread for one contact across every channel — a reply by
8
+ # SMS and one by WhatsApp belong to the same conversation, because they are the
9
+ # same person talking to you.
10
+ #
11
+ # Read-only. Sending is **Messages**; a reply arrives here and through your
12
+ # webhooks.
5
13
  class Conversations
6
14
  # Some parameter documentations has been truncated, see
7
15
  # {Sentdm::Models::ConversationListParams} for more details.
@@ -19,7 +27,7 @@ module Sentdm
19
27
  #
20
28
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
21
29
  #
22
- # @return [Sentdm::Models::APIResponseOfConversationMessagesList]
30
+ # @return [Sentdm::Models::ConversationListResponse]
23
31
  #
24
32
  # @see Sentdm::Models::ConversationListParams
25
33
  def list(params)
@@ -31,7 +39,7 @@ module Sentdm
31
39
  path: "v3/conversations",
32
40
  query: query,
33
41
  headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
34
- model: Sentdm::APIResponseOfConversationMessagesList,
42
+ model: Sentdm::Models::ConversationListResponse,
35
43
  options: options
36
44
  )
37
45
  end
@@ -54,7 +62,7 @@ module Sentdm
54
62
  #
55
63
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
56
64
  #
57
- # @return [Sentdm::Models::APIResponseOfConversationMessagesList]
65
+ # @return [Sentdm::Models::ConversationListMessagesResponse]
58
66
  #
59
67
  # @see Sentdm::Models::ConversationListMessagesParams
60
68
  def list_messages(id, params)
@@ -66,7 +74,7 @@ module Sentdm
66
74
  path: ["v3/conversations/%1$s", id],
67
75
  query: query,
68
76
  headers: parsed.except(*query_params).transform_keys(x_profile_id: "x-profile-id"),
69
- model: Sentdm::APIResponseOfConversationMessagesList,
77
+ model: Sentdm::Models::ConversationListMessagesResponse,
70
78
  options: options
71
79
  )
72
80
  end
@@ -2,7 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Retrieve account details
5
+ # Who the current key is.
6
+ #
7
+ # `GET /v3/me` answers with the account the key authenticates as, which is the
8
+ # quickest way to tell a live key from a test one, an organization key from a
9
+ # sender profile's, and to confirm `x-profile-id` resolved to the profile you
10
+ # meant.
6
11
  class Me
7
12
  # Some parameter documentations has been truncated, see
8
13
  # {Sentdm::Models::MeRetrieveParams} for more details.
@@ -2,7 +2,17 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Send and track SMS and WhatsApp messages
5
+ # Send a message and follow what happened to it.
6
+ #
7
+ # One endpoint sends on any channel: pass `channel: "sent"` and we pick between
8
+ # SMS, WhatsApp and RCS per recipient using your routing rules, or name a channel
9
+ # to pin it. A send is accepted asynchronously — `POST /v3/messages` returns an
10
+ # id, and delivery is reported through `GET /v3/messages/{id}`, its activities, or
11
+ # a webhook.
12
+ #
13
+ # **A message needs a sender.** What you can send, where, and at what cost is
14
+ # decided by the markets under **Channels** — so a recipient in a country you hold
15
+ # no sender for is refused here rather than queued.
6
16
  class Messages
7
17
  # Some parameter documentations has been truncated, see
8
18
  # {Sentdm::Models::MessageRetrieveActivitiesParams} for more details.
@@ -2,7 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Manage and lookup phone numbers
5
+ # What a phone number actually is, before you send to it.
6
+ #
7
+ # A lookup returns the number's country, line type and carrier, which is what
8
+ # decides whether it is reachable on a channel and what it costs. Worth doing on
9
+ # import rather than on send: a landline in a contact list is a message that can
10
+ # never be delivered.
6
11
  class Numbers
7
12
  # Some parameter documentations has been truncated, see
8
13
  # {Sentdm::Models::NumberLookupParams} for more details.
@@ -3,11 +3,25 @@
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
15
+ #
8
16
  # Some parameter documentations has been truncated, see
9
17
  # {Sentdm::Models::Profiles::CampaignCreateParams} for more details.
10
18
  #
19
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
20
+ # removed in a future release. It still behaves exactly as before, so nothing
21
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
22
+ # which models a profile's markets, compliance, brand, campaigns and billing
23
+ # explicitly.
24
+ #
11
25
  # Creates a new campaign scoped under the brand of the specified profile. Each
12
26
  # campaign must include at least one use case with sample messages.
13
27
  #
@@ -15,7 +29,7 @@ module Sentdm
15
29
  #
16
30
  # @param profile_id [String] Path param: Profile ID from route
17
31
  #
18
- # @param campaign [Sentdm::Models::Profiles::CampaignData] Body param: Campaign data for create or update operation
32
+ # @param campaign [Sentdm::Models::Profiles::CampaignCreateParams::Campaign] Body param: Campaign data for create or update operation
19
33
  #
20
34
  # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
21
35
  #
@@ -25,7 +39,7 @@ module Sentdm
25
39
  #
26
40
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
27
41
  #
28
- # @return [Sentdm::Models::Profiles::APIResponseOfBrandCampaign]
42
+ # @return [Sentdm::Models::Profiles::CampaignCreateResponse]
29
43
  #
30
44
  # @see Sentdm::Models::Profiles::CampaignCreateParams
31
45
  def create(profile_id, params)
@@ -36,14 +50,22 @@ module Sentdm
36
50
  path: ["v3/profiles/%1$s/campaigns", profile_id],
37
51
  headers: parsed.slice(*header_params.keys).transform_keys(header_params),
38
52
  body: parsed.except(*header_params.keys),
39
- model: Sentdm::Profiles::APIResponseOfBrandCampaign,
53
+ model: Sentdm::Models::Profiles::CampaignCreateResponse,
40
54
  options: options
41
55
  )
42
56
  end
43
57
 
58
+ # @deprecated
59
+ #
44
60
  # Some parameter documentations has been truncated, see
45
61
  # {Sentdm::Models::Profiles::CampaignUpdateParams} for more details.
46
62
  #
63
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
64
+ # removed in a future release. It still behaves exactly as before, so nothing
65
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
66
+ # which models a profile's markets, compliance, brand, campaigns and billing
67
+ # explicitly.
68
+ #
47
69
  # Updates an existing campaign under the brand of the specified profile. Cannot
48
70
  # update campaigns that have already been submitted to TCR.
49
71
  #
@@ -53,7 +75,7 @@ module Sentdm
53
75
  #
54
76
  # @param profile_id [String] Path param: Profile ID from route
55
77
  #
56
- # @param campaign [Sentdm::Models::Profiles::CampaignData] Body param: Campaign data for create or update operation
78
+ # @param campaign [Sentdm::Models::Profiles::CampaignUpdateParams::Campaign] Body param: Campaign data for create or update operation
57
79
  #
58
80
  # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
59
81
  #
@@ -63,7 +85,7 @@ module Sentdm
63
85
  #
64
86
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
65
87
  #
66
- # @return [Sentdm::Models::Profiles::APIResponseOfBrandCampaign]
88
+ # @return [Sentdm::Models::Profiles::CampaignUpdateResponse]
67
89
  #
68
90
  # @see Sentdm::Models::Profiles::CampaignUpdateParams
69
91
  def update(campaign_id, params)
@@ -78,14 +100,22 @@ module Sentdm
78
100
  path: ["v3/profiles/%1$s/campaigns/%2$s", profile_id, campaign_id],
79
101
  headers: parsed.slice(*header_params.keys).transform_keys(header_params),
80
102
  body: parsed.except(*header_params.keys),
81
- model: Sentdm::Profiles::APIResponseOfBrandCampaign,
103
+ model: Sentdm::Models::Profiles::CampaignUpdateResponse,
82
104
  options: options
83
105
  )
84
106
  end
85
107
 
108
+ # @deprecated
109
+ #
86
110
  # Some parameter documentations has been truncated, see
87
111
  # {Sentdm::Models::Profiles::CampaignListParams} for more details.
88
112
  #
113
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
114
+ # removed in a future release. It still behaves exactly as before, so nothing
115
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
116
+ # which models a profile's markets, compliance, brand, campaigns and billing
117
+ # explicitly.
118
+ #
89
119
  # Retrieves all campaigns linked to the profile's brand, including use cases and
90
120
  # sample messages. Returns inherited campaigns if inherit_tcr_campaign=true.
91
121
  #
@@ -97,7 +127,7 @@ module Sentdm
97
127
  #
98
128
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
99
129
  #
100
- # @return [Sentdm::Models::Profiles::APIResponseOfListOfBrandCampaign]
130
+ # @return [Sentdm::Models::Profiles::CampaignListResponse]
101
131
  #
102
132
  # @see Sentdm::Models::Profiles::CampaignListParams
103
133
  def list(profile_id, params = {})
@@ -106,14 +136,22 @@ module Sentdm
106
136
  method: :get,
107
137
  path: ["v3/profiles/%1$s/campaigns", profile_id],
108
138
  headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
109
- model: Sentdm::Profiles::APIResponseOfListOfBrandCampaign,
139
+ model: Sentdm::Models::Profiles::CampaignListResponse,
110
140
  options: options
111
141
  )
112
142
  end
113
143
 
144
+ # @deprecated
145
+ #
114
146
  # Some parameter documentations has been truncated, see
115
147
  # {Sentdm::Models::Profiles::CampaignDeleteParams} for more details.
116
148
  #
149
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
150
+ # removed in a future release. It still behaves exactly as before, so nothing
151
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
152
+ # which models a profile's markets, compliance, brand, campaigns and billing
153
+ # explicitly.
154
+ #
117
155
  # Deletes a campaign by ID from the brand of the specified profile. The profile
118
156
  # must belong to the authenticated organization.
119
157
  #
@@ -2,38 +2,50 @@
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
  # @return [Sentdm::Resources::Profiles::Campaigns]
9
21
  attr_reader :campaigns
10
22
 
23
+ # @deprecated
24
+ #
11
25
  # Some parameter documentations has been truncated, see
12
26
  # {Sentdm::Models::ProfileCreateParams} for more details.
13
27
  #
28
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
29
+ # removed in a future release. It still behaves exactly as before, so nothing
30
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
31
+ # which models a profile's markets, compliance, brand, campaigns and billing
32
+ # explicitly.
33
+ #
14
34
  # Creates a new sender profile within an organization. Profiles represent
15
35
  # different brands, departments, or use cases, each with their own messaging
16
36
  # configuration and settings. Requires admin role in the organization.
17
37
  #
18
38
  # ## WhatsApp Business Account
19
39
  #
20
- # Every profile must be linked to a WhatsApp Business Account. There are two ways
21
- # to do this:
22
- #
23
- # **1. Inherit from organization (default)** Omit the
24
- # `whatsapp_business_account` field. The profile will share the organization's
25
- # WhatsApp Business Account, which must have been set up via WhatsApp Embedded
26
- # Signup. This is the recommended path for most use cases.
27
- #
28
- # **2. Direct credentials** — Provide a `whatsapp_business_account` object with
29
- # `waba_id`, `phone_number_id`, and `access_token`. Use this when the profile
30
- # needs its own independent WhatsApp Business Account. Obtain these from Meta
31
- # Business Manager by creating a System User with `whatsapp_business_messaging`
32
- # and `whatsapp_business_management` permissions.
40
+ # Every profile owns its own WhatsApp Business Account accounts are never shared
41
+ # between profiles or inherited from the organization. Provide a
42
+ # `whatsapp_business_account` object with `waba_id`, `phone_number_id`, and
43
+ # `access_token`. Obtain these from Meta Business Manager by creating a System
44
+ # User with `whatsapp_business_messaging` and `whatsapp_business_management`
45
+ # permissions.
33
46
  #
34
- # If the `whatsapp_business_account` field is omitted and the organization has no
35
- # WhatsApp Business Account configured, the request will be rejected with
36
- # HTTP 422.
47
+ # Omit the field and the profile is created without WhatsApp, staying incomplete
48
+ # until it has an account of its own.
37
49
  #
38
50
  # ## Brand
39
51
  #
@@ -50,31 +62,31 @@ module Sentdm
50
62
  #
51
63
  # @overload create(allow_contact_sharing: nil, allow_template_sharing: nil, billing_contact: nil, billing_model: nil, brand: nil, description: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, payment_details: nil, sandbox: nil, short_name: nil, whatsapp_business_account: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
52
64
  #
53
- # @param allow_contact_sharing [Boolean] Body param: Whether contacts are shared across profiles (default: false)
65
+ # @param allow_contact_sharing [Boolean, nil] Body param: Deprecated. Accepted and ignored. Contact and template sharing betwe
54
66
  #
55
- # @param allow_template_sharing [Boolean] Body param: Whether templates are shared across profiles (default: false)
67
+ # @param allow_template_sharing [Boolean, nil] Body param
56
68
  #
57
- # @param billing_contact [Sentdm::Models::BillingContactInfo, nil] Body param: Billing contact information for a profile.
69
+ # @param billing_contact [Sentdm::Models::ProfileCreateParams::BillingContact, nil] Body param: Billing contact information for a profile.
58
70
  #
59
71
  # @param billing_model [String, nil] Body param: Billing model: profile, organization, or profile_and_organization (d
60
72
  #
61
- # @param brand [Sentdm::Models::BrandsBrandData, nil] Body param: Brand and KYC data grouped into contact, business, and compliance se
73
+ # @param brand [Sentdm::Models::ProfileCreateParams::Brand, nil] Body param: Brand and KYC data grouped into contact, business, and compliance se
62
74
  #
63
75
  # @param description [String, nil] Body param: Profile description (optional)
64
76
  #
65
77
  # @param icon [String, nil] Body param: Profile icon URL (optional)
66
78
  #
67
- # @param inherit_contacts [Boolean, nil] Body param: Whether this profile inherits contacts from organization (default: t
79
+ # @param inherit_contacts [Boolean, nil] Body param
68
80
  #
69
81
  # @param inherit_tcr_brand [Boolean, nil] Body param: Whether this profile inherits TCR brand from organization (default:
70
82
  #
71
83
  # @param inherit_tcr_campaign [Boolean, nil] Body param: Whether this profile inherits TCR campaign from organization (defaul
72
84
  #
73
- # @param inherit_templates [Boolean, nil] Body param: Whether this profile inherits templates from organization (default:
85
+ # @param inherit_templates [Boolean, nil] Body param
74
86
  #
75
87
  # @param name [String] Body param: Profile name (required)
76
88
  #
77
- # @param payment_details [Sentdm::Models::PaymentDetails, nil] Body param: Payment card details for a profile.
89
+ # @param payment_details [Sentdm::Models::ProfileCreateParams::PaymentDetails, nil] Body param: Payment card details for this profile (optional).
78
90
  #
79
91
  # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
80
92
  #
@@ -88,7 +100,7 @@ module Sentdm
88
100
  #
89
101
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
90
102
  #
91
- # @return [Sentdm::Models::APIResponseOfProfileDetail]
103
+ # @return [Sentdm::Models::ProfileCreateResponse]
92
104
  #
93
105
  # @see Sentdm::Models::ProfileCreateParams
94
106
  def create(params = {})
@@ -99,14 +111,22 @@ module Sentdm
99
111
  path: "v3/profiles",
100
112
  headers: parsed.slice(*header_params.keys).transform_keys(header_params),
101
113
  body: parsed.except(*header_params.keys),
102
- model: Sentdm::APIResponseOfProfileDetail,
114
+ model: Sentdm::Models::ProfileCreateResponse,
103
115
  options: options
104
116
  )
105
117
  end
106
118
 
119
+ # @deprecated
120
+ #
107
121
  # Some parameter documentations has been truncated, see
108
122
  # {Sentdm::Models::ProfileRetrieveParams} for more details.
109
123
  #
124
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
125
+ # removed in a future release. It still behaves exactly as before, so nothing
126
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
127
+ # which models a profile's markets, compliance, brand, campaigns and billing
128
+ # explicitly.
129
+ #
110
130
  # Retrieves detailed information about a specific sender profile within an
111
131
  # organization, including brand and KYC information if a brand has been
112
132
  # configured.
@@ -119,7 +139,7 @@ module Sentdm
119
139
  #
120
140
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
121
141
  #
122
- # @return [Sentdm::Models::APIResponseOfProfileDetail]
142
+ # @return [Sentdm::Models::ProfileRetrieveResponse]
123
143
  #
124
144
  # @see Sentdm::Models::ProfileRetrieveParams
125
145
  def retrieve(profile_id, params = {})
@@ -128,14 +148,22 @@ module Sentdm
128
148
  method: :get,
129
149
  path: ["v3/profiles/%1$s", profile_id],
130
150
  headers: parsed.transform_keys(x_profile_id: "x-profile-id"),
131
- model: Sentdm::APIResponseOfProfileDetail,
151
+ model: Sentdm::Models::ProfileRetrieveResponse,
132
152
  options: options
133
153
  )
134
154
  end
135
155
 
156
+ # @deprecated
157
+ #
136
158
  # Some parameter documentations has been truncated, see
137
159
  # {Sentdm::Models::ProfileUpdateParams} for more details.
138
160
  #
161
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
162
+ # removed in a future release. It still behaves exactly as before, so nothing
163
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
164
+ # which models a profile's markets, compliance, brand, campaigns and billing
165
+ # explicitly.
166
+ #
139
167
  # Updates a profile's configuration and settings. Requires admin role in the
140
168
  # organization. Only provided fields will be updated (partial update).
141
169
  #
@@ -155,45 +183,59 @@ module Sentdm
155
183
  # and are forwarded directly to the payment processor. Providing `payment_details`
156
184
  # when `billing_model` is `"organization"` is not allowed.
157
185
  #
186
+ # ## Deprecated fields
187
+ #
188
+ # `sending_phone_number_profile_id` and `sending_whatsapp_number_profile_id` are
189
+ # **accepted and ignored**. Sender borrowing is gone: a profile cannot send from
190
+ # another profile's number, because two profiles behind one sender makes an
191
+ # inbound reply and a delivery receipt ambiguous about whose they are.
192
+ #
193
+ # Sending either **changes nothing and still returns `200`** — they are kept on
194
+ # the contract so an existing integration keeps working. Reads carry both keys too
195
+ # and always answer `null`, which is how you can confirm the value did not take.
196
+ #
197
+ # Give the profile a sender of its own instead — `POST /v3/channels/sms` or
198
+ # `POST /v3/channels/whatsapp`, sent with the `x-profile-id` header naming it.
199
+ #
158
200
  # @overload update(profile_id, allow_contact_sharing: nil, allow_number_change_during_onboarding: nil, allow_template_sharing: nil, billing_contact: nil, billing_model: nil, brand: nil, description: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, payment_details: nil, sandbox: nil, sending_phone_number: nil, sending_phone_number_profile_id: nil, sending_whatsapp_number_profile_id: nil, short_name: nil, whatsapp_phone_number: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
159
201
  #
160
202
  # @param profile_id [String] Path param: Profile ID from route parameter
161
203
  #
162
- # @param allow_contact_sharing [Boolean, nil] Body param: Whether contacts are shared across profiles (optional)
204
+ # @param allow_contact_sharing [Boolean, nil] Body param: Deprecated. Accepted and ignored. Contact and template sharing betwe
163
205
  #
164
206
  # @param allow_number_change_during_onboarding [Boolean, nil] Body param: Whether number changes are allowed during onboarding (optional)
165
207
  #
166
- # @param allow_template_sharing [Boolean, nil] Body param: Whether templates are shared across profiles (optional)
208
+ # @param allow_template_sharing [Boolean, nil] Body param
167
209
  #
168
- # @param billing_contact [Sentdm::Models::BillingContactInfo, nil] Body param: Billing contact information for a profile.
210
+ # @param billing_contact [Sentdm::Models::ProfileUpdateParams::BillingContact, nil] Body param: Billing contact information for a profile.
169
211
  #
170
212
  # @param billing_model [String, nil] Body param: Billing model: profile, organization, or profile_and_organization (o
171
213
  #
172
- # @param brand [Sentdm::Models::BrandsBrandData, nil] Body param: Brand and KYC data grouped into contact, business, and compliance se
214
+ # @param brand [Sentdm::Models::ProfileUpdateParams::Brand, nil] Body param: Brand and KYC data grouped into contact, business, and compliance se
173
215
  #
174
216
  # @param description [String, nil] Body param: Profile description (optional)
175
217
  #
176
218
  # @param icon [String, nil] Body param: Profile icon URL (optional)
177
219
  #
178
- # @param inherit_contacts [Boolean, nil] Body param: Whether this profile inherits contacts from organization (optional)
220
+ # @param inherit_contacts [Boolean, nil] Body param
179
221
  #
180
222
  # @param inherit_tcr_brand [Boolean, nil] Body param: Whether this profile inherits TCR brand from organization (optional)
181
223
  #
182
224
  # @param inherit_tcr_campaign [Boolean, nil] Body param: Whether this profile inherits TCR campaign from organization (option
183
225
  #
184
- # @param inherit_templates [Boolean, nil] Body param: Whether this profile inherits templates from organization (optional)
226
+ # @param inherit_templates [Boolean, nil] Body param
185
227
  #
186
228
  # @param name [String, nil] Body param: Profile name (optional)
187
229
  #
188
- # @param payment_details [Sentdm::Models::PaymentDetails, nil] Body param: Payment card details for a profile.
230
+ # @param payment_details [Sentdm::Models::ProfileUpdateParams::PaymentDetails, nil] Body param: Payment card details for this profile (optional).
189
231
  #
190
232
  # @param sandbox [Boolean] Body param: Sandbox flag - when true, the operation is simulated without side ef
191
233
  #
192
234
  # @param sending_phone_number [String, nil] Body param: Direct phone number for SMS sending (optional)
193
235
  #
194
- # @param sending_phone_number_profile_id [String, nil] Body param: Reference to another profile to use for SMS configuration (optional)
236
+ # @param sending_phone_number_profile_id [String, nil] Body param: Deprecated. Accepted and ignored. Sender borrowing is gone: a profil
195
237
  #
196
- # @param sending_whatsapp_number_profile_id [String, nil] Body param: Reference to another profile to use for WhatsApp configuration (opti
238
+ # @param sending_whatsapp_number_profile_id [String, nil] Body param
197
239
  #
198
240
  # @param short_name [String, nil] Body param: Profile short name/abbreviation (optional). Must be 3–11 characters,
199
241
  #
@@ -205,7 +247,7 @@ module Sentdm
205
247
  #
206
248
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}, nil]
207
249
  #
208
- # @return [Sentdm::Models::APIResponseOfProfileDetail]
250
+ # @return [Sentdm::Models::ProfileUpdateResponse]
209
251
  #
210
252
  # @see Sentdm::Models::ProfileUpdateParams
211
253
  def update(profile_id, params = {})
@@ -216,14 +258,22 @@ module Sentdm
216
258
  path: ["v3/profiles/%1$s", profile_id],
217
259
  headers: parsed.slice(*header_params.keys).transform_keys(header_params),
218
260
  body: parsed.except(*header_params.keys),
219
- model: Sentdm::APIResponseOfProfileDetail,
261
+ model: Sentdm::Models::ProfileUpdateResponse,
220
262
  options: options
221
263
  )
222
264
  end
223
265
 
266
+ # @deprecated
267
+ #
224
268
  # Some parameter documentations has been truncated, see
225
269
  # {Sentdm::Models::ProfileListParams} for more details.
226
270
  #
271
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
272
+ # removed in a future release. It still behaves exactly as before, so nothing
273
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
274
+ # which models a profile's markets, compliance, brand, campaigns and billing
275
+ # explicitly.
276
+ #
227
277
  # Retrieves all sender profiles within an organization, including brand
228
278
  # information for each profile. Profiles represent different brands, departments,
229
279
  # or use cases within an organization, each with their own messaging
@@ -249,11 +299,22 @@ module Sentdm
249
299
  )
250
300
  end
251
301
 
302
+ # @deprecated
303
+ #
252
304
  # Some parameter documentations has been truncated, see
253
305
  # {Sentdm::Models::ProfileDeleteParams} for more details.
254
306
  #
307
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
308
+ # removed in a future release. It still behaves exactly as before, so nothing
309
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
310
+ # which models a profile's markets, compliance, brand, campaigns and billing
311
+ # explicitly.
312
+ #
255
313
  # Soft deletes a sender profile. The profile will be marked as deleted but data is
256
- # retained. Requires admin role in the organization.
314
+ # retained. Anything it still held is released first: phone numbers return to our
315
+ # inventory and can go to whoever asks next, its own WhatsApp account is
316
+ # deregistered, and its routing rules stop being used. Requires admin role in the
317
+ # organization.
257
318
  #
258
319
  # @overload delete(profile_id, sandbox: nil, x_profile_id: nil, request_options: {})
259
320
  #
@@ -281,18 +342,32 @@ module Sentdm
281
342
  )
282
343
  end
283
344
 
345
+ # @deprecated
346
+ #
284
347
  # Some parameter documentations has been truncated, see
285
348
  # {Sentdm::Models::ProfileCompleteParams} for more details.
286
349
  #
350
+ # **Deprecated.** This endpoint is replaced by `/v3/sender-profiles` and will be
351
+ # removed in a future release. It still behaves exactly as before, so nothing
352
+ # needs to change today — but new integrations should use `/v3/sender-profiles`,
353
+ # which models a profile's markets, compliance, brand, campaigns and billing
354
+ # explicitly.
355
+ #
287
356
  # Final step in the profile compliance workflow. Validates all prerequisites (KYC,
288
357
  # brand, campaigns, required documents), connects the profile to the SMS and
289
- # WhatsApp channels, and sets its status based on configuration. Prerequisites are
290
- # always validated first: if any fail the call returns 400. If they pass and the
291
- # profile is already completed, the call returns 200 and does nothing. Otherwise
292
- # it returns 202 and calls the provided webhook URL when background processing
293
- # finishes.
358
+ # WhatsApp channels, and marks it onboarded. Prerequisites are always validated
359
+ # first: if any fail the call returns 400 naming every unmet one, and nothing is
360
+ # started. If they pass and the profile is already onboarded, the call returns 200
361
+ # and does nothing. Otherwise it returns 202 and calls the provided webhook URL
362
+ # when background processing finishes.
363
+ #
364
+ # Callable with the organization's API key or the profile's own key. The key's
365
+ # user must be an admin or owner of the profile, or of the organization it belongs
366
+ # to.
294
367
  #
295
- # Prerequisites:
368
+ # Prerequisites (all but the last are checked before the already-onboarded
369
+ # short-circuit, matching the previous contract; the last is checked after it, so
370
+ # a profile that is already onboarded is never rejected by it):
296
371
  #
297
372
  # - Profile must have a name, short name, and description (short name max 50
298
373
  # characters, description max 5000)
@@ -303,17 +378,18 @@ module Sentdm
303
378
  # - TCR applications must have at least one campaign, own or inherited
304
379
  # - Destination countries marked as main must have their required compliance
305
380
  # documents uploaded
306
- #
307
- # Resulting status:
308
- #
309
- # - If either the SMS or WhatsApp channel is unconfigured, the profile is
310
- # SUBMITTED
311
- # - For a TCR application that inherits both its brand and its campaigns, the
312
- # profile is COMPLETED
313
- # - For a TCR application that owns either its brand or its campaigns, the profile
314
- # is COMPLETED once both have been submitted to TCR, and SUBMITTED until then
315
- # - For a non-TCR application, the profile is SUBMITTED when a main destination
316
- # country is set, and COMPLETED otherwise
381
+ # - TCR applications must state whether they inherit the organization's TCR brand
382
+ # and campaign
383
+ #
384
+ # Outcome:
385
+ #
386
+ # - Once the prerequisites pass and background processing succeeds, the profile's
387
+ # conversionFlowStatus becomes ONBOARDED and its public status reads `approved`
388
+ # - A profile with no WhatsApp channel, or one still awaiting TCR registration or
389
+ # country documents, is onboarded like any other. Those are answered by the
390
+ # brand and campaign records, not by a status on the profile
391
+ # - If background processing fails, the profile keeps the status it already had
392
+ # and the webhook reports the reason
317
393
  #
318
394
  # @overload complete(profile_id, web_hook_url:, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
319
395
  #