sentdm 0.44.0 → 0.46.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 (484) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +11 -11
  4. data/lib/sentdm/client.rb +66 -0
  5. data/lib/sentdm/internal/sender_profiles_page.rb +140 -0
  6. data/lib/sentdm/internal/type/enum.rb +11 -11
  7. data/lib/sentdm/models/account.rb +173 -0
  8. data/lib/sentdm/models/account_channels.rb +39 -0
  9. data/lib/sentdm/models/account_profile.rb +86 -0
  10. data/lib/sentdm/models/account_rcs_channel.rb +26 -0
  11. data/lib/sentdm/models/account_sms_channel.rb +26 -0
  12. data/lib/sentdm/models/account_whatsapp_channel.rb +35 -0
  13. data/lib/sentdm/models/api_response_of_account.rb +48 -0
  14. data/lib/sentdm/models/api_response_of_cancelled_message.rb +43 -0
  15. data/lib/sentdm/models/api_response_of_channels_state.rb +48 -0
  16. data/lib/sentdm/models/api_response_of_compliance_requirements.rb +47 -0
  17. data/lib/sentdm/models/api_response_of_contacts_list.rb +42 -0
  18. data/lib/sentdm/models/api_response_of_message.rb +51 -0
  19. data/lib/sentdm/models/api_response_of_message_activities.rb +43 -0
  20. data/lib/sentdm/models/api_response_of_number_lookup_result.rb +43 -0
  21. data/lib/sentdm/models/api_response_of_profile_completion_accepted.rb +47 -0
  22. data/lib/sentdm/models/api_response_of_profile_completion_result.rb +47 -0
  23. data/lib/sentdm/models/api_response_of_profiles_list.rb +43 -0
  24. data/lib/sentdm/models/api_response_of_sender_profile.rb +54 -0
  25. data/lib/sentdm/models/api_response_of_sender_profiles_list.rb +42 -0
  26. data/lib/sentdm/models/api_response_of_templates_list.rb +42 -0
  27. data/lib/sentdm/models/api_response_of_users_list.rb +43 -0
  28. data/lib/sentdm/models/api_response_of_webhook_event_types_list.rb +43 -0
  29. data/lib/sentdm/models/api_response_of_webhook_events_list.rb +42 -0
  30. data/lib/sentdm/models/{webhook_rotate_secret_response.rb → api_response_of_webhook_secret.rb} +4 -17
  31. data/lib/sentdm/models/{webhook_test_response.rb → api_response_of_webhook_test.rb} +4 -23
  32. data/lib/sentdm/models/api_response_of_webhooks_list.rb +42 -0
  33. data/lib/sentdm/models/billing_contact.rb +35 -0
  34. data/lib/sentdm/models/brand_business.rb +96 -0
  35. data/lib/sentdm/models/brand_business_info.rb +3 -20
  36. data/lib/sentdm/models/brand_compliance.rb +75 -0
  37. data/lib/sentdm/models/brand_contact.rb +56 -0
  38. data/lib/sentdm/models/brand_with_kyc.rb +129 -0
  39. data/lib/sentdm/models/cancelled_message.rb +28 -0
  40. data/lib/sentdm/models/channel_event_payload.rb +3 -114
  41. data/lib/sentdm/models/channel_list_params.rb +20 -0
  42. data/lib/sentdm/models/channel_score.rb +35 -0
  43. data/lib/sentdm/models/channels/api_response_of_list_of_sms_market.rb +45 -0
  44. data/lib/sentdm/models/channels/api_response_of_rcs_agent.rb +60 -0
  45. data/lib/sentdm/models/channels/api_response_of_sms_market.rb +54 -0
  46. data/lib/sentdm/models/channels/api_response_of_whatsapp_channel.rb +47 -0
  47. data/lib/sentdm/models/channels/market_compliance.rb +409 -0
  48. data/lib/sentdm/models/channels/rc_create_params.rb +260 -0
  49. data/lib/sentdm/models/channels/rcs_address.rb +43 -0
  50. data/lib/sentdm/models/channels/rcs_agent.rb +278 -0
  51. data/lib/sentdm/models/channels/sms_create_params.rb +173 -0
  52. data/lib/sentdm/models/channels/sms_list_params.rb +22 -0
  53. data/lib/sentdm/models/channels/sms_market.rb +158 -0
  54. data/lib/sentdm/models/channels/sms_number.rb +41 -0
  55. data/lib/sentdm/models/channels/sms_number_request.rb +33 -0
  56. data/lib/sentdm/models/channels/sms_retrieve_params.rb +34 -0
  57. data/lib/sentdm/models/channels/sms_update_params.rb +64 -0
  58. data/lib/sentdm/models/channels/supplied_compliance.rb +89 -0
  59. data/lib/sentdm/models/channels/supplied_document.rb +35 -0
  60. data/lib/sentdm/models/channels/whatsapp_channel.rb +109 -0
  61. data/lib/sentdm/models/channels/whatsapp_create_params.rb +65 -0
  62. data/lib/sentdm/models/channels_state.rb +89 -0
  63. data/lib/sentdm/models/compliance_attachment_template.rb +36 -0
  64. data/lib/sentdm/models/compliance_requirement.rb +112 -0
  65. data/lib/sentdm/models/compliance_requirements.rb +98 -0
  66. data/lib/sentdm/models/compliance_retrieve_requirements_params.rb +52 -0
  67. data/lib/sentdm/models/compliance_setup_step.rb +78 -0
  68. data/lib/sentdm/models/contact_message_summary.rb +3 -34
  69. data/lib/sentdm/models/contacts_list.rb +26 -0
  70. data/lib/sentdm/models/conversation_messages_list.rb +3 -430
  71. data/lib/sentdm/models/entity_type.rb +18 -0
  72. data/lib/sentdm/models/inbound_media.rb +53 -0
  73. data/lib/sentdm/models/inbound_message_event_payload.rb +3 -53
  74. data/lib/sentdm/models/link_event.rb +79 -0
  75. data/lib/sentdm/models/link_event_payload.rb +211 -0
  76. data/lib/sentdm/models/message.rb +168 -0
  77. data/lib/sentdm/models/message_activities.rb +34 -0
  78. data/lib/sentdm/models/message_activity.rb +105 -0
  79. data/lib/sentdm/models/message_body.rb +79 -0
  80. data/lib/sentdm/models/message_button.rb +33 -0
  81. data/lib/sentdm/models/message_cancel_params.rb +32 -0
  82. data/lib/sentdm/models/message_channel_options.rb +43 -0
  83. data/lib/sentdm/models/message_event_payload.rb +3 -2
  84. data/lib/sentdm/models/message_header_media.rb +31 -0
  85. data/lib/sentdm/models/message_media.rb +74 -0
  86. data/lib/sentdm/models/message_recipient.rb +46 -0
  87. data/lib/sentdm/models/message_send_params.rb +6 -90
  88. data/lib/sentdm/models/message_send_response.rb +3 -95
  89. data/lib/sentdm/models/message_send_result.rb +55 -0
  90. data/lib/sentdm/models/message_status_event.rb +54 -0
  91. data/lib/sentdm/models/mms_market.rb +48 -0
  92. data/lib/sentdm/models/number_lookup_result.rb +63 -0
  93. data/lib/sentdm/models/pagination_cursors.rb +27 -0
  94. data/lib/sentdm/models/pagination_meta.rb +3 -27
  95. data/lib/sentdm/models/profile_completion_accepted.rb +20 -0
  96. data/lib/sentdm/models/profile_completion_result.rb +31 -0
  97. data/lib/sentdm/models/profile_detail.rb +6 -408
  98. data/lib/sentdm/models/profiles/brand_campaign.rb +3 -15
  99. data/lib/sentdm/models/profiles_list.rb +26 -0
  100. data/lib/sentdm/models/sender_profile.rb +138 -0
  101. data/lib/sentdm/models/sender_profile_billing.rb +21 -0
  102. data/lib/sentdm/models/sender_profile_billing_request.rb +33 -0
  103. data/lib/sentdm/models/sender_profile_channels.rb +90 -0
  104. data/lib/sentdm/models/sender_profile_create_params.rb +116 -0
  105. data/lib/sentdm/models/sender_profile_delete_params.rb +20 -0
  106. data/lib/sentdm/models/sender_profile_list_params.rb +30 -0
  107. data/lib/sentdm/models/sender_profile_rcs.rb +209 -0
  108. data/lib/sentdm/models/sender_profile_retrieve_params.rb +20 -0
  109. data/lib/sentdm/models/sender_profile_sms.rb +106 -0
  110. data/lib/sentdm/models/sender_profile_update_params.rb +71 -0
  111. data/lib/sentdm/models/sender_profile_whatsapp.rb +61 -0
  112. data/lib/sentdm/models/sender_profiles_list.rb +26 -0
  113. data/lib/sentdm/models/tcr_brand_identity_status.rb +17 -0
  114. data/lib/sentdm/models/tcr_brand_status.rb +16 -0
  115. data/lib/sentdm/models/tcr_campaign_status.rb +16 -0
  116. data/lib/sentdm/models/template_body.rb +3 -70
  117. data/lib/sentdm/models/template_create_params.rb +11 -1
  118. data/lib/sentdm/models/template_header.rb +3 -37
  119. data/lib/sentdm/models/template_header_location.rb +38 -0
  120. data/lib/sentdm/models/template_media_item.rb +34 -0
  121. data/lib/sentdm/models/template_mms_body_content.rb +49 -0
  122. data/lib/sentdm/models/template_ref.rb +51 -0
  123. data/lib/sentdm/models/template_variable.rb +3 -64
  124. data/lib/sentdm/models/template_variable_props.rb +65 -0
  125. data/lib/sentdm/models/templates_list.rb +26 -0
  126. data/lib/sentdm/models/users_list.rb +26 -0
  127. data/lib/sentdm/models/voice/call.rb +3 -54
  128. data/lib/sentdm/models/voice/call_leg.rb +58 -0
  129. data/lib/sentdm/models/webhook_create_params.rb +3 -25
  130. data/lib/sentdm/models/webhook_delivery.rb +160 -0
  131. data/lib/sentdm/models/webhook_event_types_list.rb +26 -0
  132. data/lib/sentdm/models/webhook_events_list.rb +26 -0
  133. data/lib/sentdm/models/webhook_response.rb +3 -28
  134. data/lib/sentdm/models/webhook_secret.rb +15 -0
  135. data/lib/sentdm/models/webhook_sender_profile.rb +29 -0
  136. data/lib/sentdm/models/webhook_sender_profile_config.rb +27 -0
  137. data/lib/sentdm/models/webhook_test.rb +21 -0
  138. data/lib/sentdm/models/webhook_update_params.rb +3 -25
  139. data/lib/sentdm/models/webhooks_list.rb +26 -0
  140. data/lib/sentdm/models.rb +188 -0
  141. data/lib/sentdm/resources/channels/rcs.rb +177 -0
  142. data/lib/sentdm/resources/channels/sms.rb +417 -0
  143. data/lib/sentdm/resources/channels/whatsapp.rb +106 -0
  144. data/lib/sentdm/resources/channels.rb +162 -0
  145. data/lib/sentdm/resources/compliance.rb +127 -0
  146. data/lib/sentdm/resources/conversations.rb +4 -4
  147. data/lib/sentdm/resources/me.rb +2 -2
  148. data/lib/sentdm/resources/messages.rb +73 -7
  149. data/lib/sentdm/resources/numbers.rb +2 -2
  150. data/lib/sentdm/resources/profiles.rb +4 -4
  151. data/lib/sentdm/resources/sender_profiles.rb +463 -0
  152. data/lib/sentdm/resources/templates.rb +5 -3
  153. data/lib/sentdm/resources/users.rb +2 -2
  154. data/lib/sentdm/resources/webhooks.rb +10 -10
  155. data/lib/sentdm/version.rb +1 -1
  156. data/lib/sentdm.rb +120 -11
  157. data/rbi/sentdm/client.rbi +64 -0
  158. data/rbi/sentdm/internal/sender_profiles_page.rbi +122 -0
  159. data/rbi/sentdm/models/account.rbi +242 -0
  160. data/rbi/sentdm/models/account_channels.rbi +66 -0
  161. data/rbi/sentdm/models/account_profile.rbi +116 -0
  162. data/rbi/sentdm/models/account_rcs_channel.rbi +45 -0
  163. data/rbi/sentdm/models/account_sms_channel.rbi +45 -0
  164. data/rbi/sentdm/models/account_whatsapp_channel.rbi +58 -0
  165. data/rbi/sentdm/models/api_response_of_account.rbi +78 -0
  166. data/rbi/sentdm/models/{webhook_rotate_secret_response.rbi → api_response_of_cancelled_message.rbi} +6 -41
  167. data/rbi/sentdm/models/api_response_of_channels_state.rbi +78 -0
  168. data/rbi/sentdm/models/api_response_of_compliance_requirements.rbi +81 -0
  169. data/rbi/sentdm/models/api_response_of_contacts_list.rbi +74 -0
  170. data/rbi/sentdm/models/api_response_of_message.rbi +84 -0
  171. data/rbi/sentdm/models/api_response_of_message_activities.rbi +77 -0
  172. data/rbi/sentdm/models/{webhook_test_response.rbi → api_response_of_number_lookup_result.rbi} +9 -43
  173. data/rbi/sentdm/models/api_response_of_profile_completion_accepted.rbi +83 -0
  174. data/rbi/sentdm/models/{profile_complete_response.rbi → api_response_of_profile_completion_result.rbi} +6 -52
  175. data/rbi/sentdm/models/api_response_of_profiles_list.rbi +74 -0
  176. data/rbi/sentdm/models/api_response_of_sender_profile.rbi +90 -0
  177. data/rbi/sentdm/models/api_response_of_sender_profiles_list.rbi +77 -0
  178. data/rbi/sentdm/models/api_response_of_templates_list.rbi +74 -0
  179. data/rbi/sentdm/models/api_response_of_users_list.rbi +74 -0
  180. data/rbi/sentdm/models/api_response_of_webhook_event_types_list.rbi +79 -0
  181. data/rbi/sentdm/models/api_response_of_webhook_events_list.rbi +77 -0
  182. data/rbi/sentdm/models/api_response_of_webhook_secret.rbi +74 -0
  183. data/rbi/sentdm/models/api_response_of_webhook_test.rbi +74 -0
  184. data/rbi/sentdm/models/api_response_of_webhooks_list.rbi +74 -0
  185. data/rbi/sentdm/models/billing_contact.rbi +49 -0
  186. data/rbi/sentdm/models/brand_business.rbi +115 -0
  187. data/rbi/sentdm/models/brand_business_info.rbi +3 -49
  188. data/rbi/sentdm/models/brand_compliance.rbi +108 -0
  189. data/rbi/sentdm/models/brand_contact.rbi +78 -0
  190. data/rbi/sentdm/models/brand_with_kyc.rbi +167 -0
  191. data/rbi/sentdm/models/cancelled_message.rbi +37 -0
  192. data/rbi/sentdm/models/channel_event_payload.rbi +4 -204
  193. data/rbi/sentdm/models/channel_list_params.rbi +38 -0
  194. data/rbi/sentdm/models/channel_score.rbi +56 -0
  195. data/rbi/sentdm/models/channels/api_response_of_list_of_sms_market.rbi +76 -0
  196. data/rbi/sentdm/models/channels/api_response_of_rcs_agent.rbi +103 -0
  197. data/rbi/sentdm/models/channels/api_response_of_sms_market.rbi +93 -0
  198. data/rbi/sentdm/models/channels/api_response_of_whatsapp_channel.rbi +85 -0
  199. data/rbi/sentdm/models/channels/market_compliance.rbi +770 -0
  200. data/rbi/sentdm/models/channels/rc_create_params.rbi +397 -0
  201. data/rbi/sentdm/models/channels/rcs_address.rbi +62 -0
  202. data/rbi/sentdm/models/channels/rcs_agent.rbi +320 -0
  203. data/rbi/sentdm/models/channels/sms_create_params.rbi +291 -0
  204. data/rbi/sentdm/models/channels/sms_list_params.rbi +40 -0
  205. data/rbi/sentdm/models/channels/sms_market.rbi +247 -0
  206. data/rbi/sentdm/models/channels/sms_number.rbi +60 -0
  207. data/rbi/sentdm/models/channels/sms_number_request.rbi +48 -0
  208. data/rbi/sentdm/models/channels/sms_retrieve_params.rbi +56 -0
  209. data/rbi/sentdm/models/channels/sms_update_params.rbi +93 -0
  210. data/rbi/sentdm/models/channels/supplied_compliance.rbi +140 -0
  211. data/rbi/sentdm/models/channels/supplied_document.rbi +57 -0
  212. data/rbi/sentdm/models/channels/whatsapp_channel.rbi +172 -0
  213. data/rbi/sentdm/models/channels/whatsapp_create_params.rbi +104 -0
  214. data/rbi/sentdm/models/channels_state.rbi +151 -0
  215. data/rbi/sentdm/models/compliance_attachment_template.rbi +56 -0
  216. data/rbi/sentdm/models/compliance_requirement.rbi +149 -0
  217. data/rbi/sentdm/models/compliance_requirements.rbi +165 -0
  218. data/rbi/sentdm/models/compliance_retrieve_requirements_params.rbi +79 -0
  219. data/rbi/sentdm/models/compliance_setup_step.rbi +115 -0
  220. data/rbi/sentdm/models/contact_message_summary.rbi +4 -69
  221. data/rbi/sentdm/models/contacts_list.rbi +50 -0
  222. data/rbi/sentdm/models/conversation_messages_list.rbi +4 -669
  223. data/rbi/sentdm/models/entity_type.rbi +23 -0
  224. data/rbi/sentdm/models/inbound_media.rbi +76 -0
  225. data/rbi/sentdm/models/inbound_message_event_payload.rbi +3 -85
  226. data/rbi/sentdm/models/link_event.rbi +128 -0
  227. data/rbi/sentdm/models/link_event_payload.rbi +279 -0
  228. data/rbi/sentdm/models/message.rbi +214 -0
  229. data/rbi/sentdm/models/message_activities.rbi +63 -0
  230. data/rbi/sentdm/models/message_activity.rbi +145 -0
  231. data/rbi/sentdm/models/message_body.rbi +104 -0
  232. data/rbi/sentdm/models/message_button.rbi +52 -0
  233. data/rbi/sentdm/models/message_cancel_params.rbi +59 -0
  234. data/rbi/sentdm/models/message_channel_options.rbi +65 -0
  235. data/rbi/sentdm/models/message_event_payload.rbi +4 -2
  236. data/rbi/sentdm/models/message_header_media.rbi +44 -0
  237. data/rbi/sentdm/models/message_media.rbi +95 -0
  238. data/rbi/sentdm/models/message_recipient.rbi +70 -0
  239. data/rbi/sentdm/models/message_send_params.rbi +7 -155
  240. data/rbi/sentdm/models/message_send_response.rbi +4 -163
  241. data/rbi/sentdm/models/message_send_result.rbi +85 -0
  242. data/rbi/sentdm/models/message_status_event.rbi +70 -0
  243. data/rbi/sentdm/models/mms_market.rbi +66 -0
  244. data/rbi/sentdm/models/number_lookup_result.rbi +89 -0
  245. data/rbi/sentdm/models/pagination_cursors.rbi +42 -0
  246. data/rbi/sentdm/models/pagination_meta.rbi +4 -43
  247. data/rbi/sentdm/models/profile_completion_accepted.rbi +33 -0
  248. data/rbi/sentdm/models/profile_completion_result.rbi +43 -0
  249. data/rbi/sentdm/models/profile_detail.rbi +8 -621
  250. data/rbi/sentdm/models/profiles/brand_campaign.rbi +3 -45
  251. data/rbi/sentdm/models/profiles_list.rbi +50 -0
  252. data/rbi/sentdm/models/sender_profile.rbi +204 -0
  253. data/rbi/sentdm/models/sender_profile_billing.rbi +34 -0
  254. data/rbi/sentdm/models/sender_profile_billing_request.rbi +46 -0
  255. data/rbi/sentdm/models/sender_profile_channels.rbi +163 -0
  256. data/rbi/sentdm/models/sender_profile_create_params.rbi +190 -0
  257. data/rbi/sentdm/models/sender_profile_delete_params.rbi +35 -0
  258. data/rbi/sentdm/models/sender_profile_list_params.rbi +57 -0
  259. data/rbi/sentdm/models/sender_profile_rcs.rbi +211 -0
  260. data/rbi/sentdm/models/sender_profile_retrieve_params.rbi +35 -0
  261. data/rbi/sentdm/models/sender_profile_sms.rbi +156 -0
  262. data/rbi/sentdm/models/sender_profile_update_params.rbi +96 -0
  263. data/rbi/sentdm/models/sender_profile_whatsapp.rbi +83 -0
  264. data/rbi/sentdm/models/sender_profiles_list.rbi +54 -0
  265. data/rbi/sentdm/models/tcr_brand_identity_status.rbi +27 -0
  266. data/rbi/sentdm/models/tcr_brand_status.rbi +20 -0
  267. data/rbi/sentdm/models/tcr_campaign_status.rbi +23 -0
  268. data/rbi/sentdm/models/template_body.rbi +6 -114
  269. data/rbi/sentdm/models/template_create_params.rbi +12 -0
  270. data/rbi/sentdm/models/template_header.rbi +4 -53
  271. data/rbi/sentdm/models/template_header_location.rbi +47 -0
  272. data/rbi/sentdm/models/template_media_item.rbi +51 -0
  273. data/rbi/sentdm/models/template_mms_body_content.rbi +73 -0
  274. data/rbi/sentdm/models/template_ref.rbi +79 -0
  275. data/rbi/sentdm/models/template_variable.rbi +4 -80
  276. data/rbi/sentdm/models/template_variable_props.rbi +81 -0
  277. data/rbi/sentdm/models/templates_list.rbi +50 -0
  278. data/rbi/sentdm/models/users_list.rbi +50 -0
  279. data/rbi/sentdm/models/voice/call.rbi +3 -86
  280. data/rbi/sentdm/models/voice/call_leg.rbi +90 -0
  281. data/rbi/sentdm/models/webhook_create_params.rbi +4 -49
  282. data/rbi/sentdm/models/webhook_delivery.rbi +211 -0
  283. data/rbi/sentdm/models/webhook_event_types_list.rbi +54 -0
  284. data/rbi/sentdm/models/webhook_events_list.rbi +52 -0
  285. data/rbi/sentdm/models/webhook_response.rbi +4 -50
  286. data/rbi/sentdm/models/webhook_secret.rbi +24 -0
  287. data/rbi/sentdm/models/webhook_sender_profile.rbi +46 -0
  288. data/rbi/sentdm/models/webhook_sender_profile_config.rbi +44 -0
  289. data/rbi/sentdm/models/webhook_test.rbi +32 -0
  290. data/rbi/sentdm/models/webhook_update_params.rbi +4 -49
  291. data/rbi/sentdm/models/webhooks_list.rbi +50 -0
  292. data/rbi/sentdm/models.rbi +197 -0
  293. data/rbi/sentdm/resources/channels/rcs.rbi +208 -0
  294. data/rbi/sentdm/resources/channels/sms.rbi +437 -0
  295. data/rbi/sentdm/resources/channels/whatsapp.rbi +108 -0
  296. data/rbi/sentdm/resources/channels.rbi +149 -0
  297. data/rbi/sentdm/resources/compliance.rbi +121 -0
  298. data/rbi/sentdm/resources/conversations.rbi +2 -10
  299. data/rbi/sentdm/resources/me.rbi +1 -1
  300. data/rbi/sentdm/resources/messages.rbi +66 -8
  301. data/rbi/sentdm/resources/numbers.rbi +1 -1
  302. data/rbi/sentdm/resources/profiles.rbi +2 -2
  303. data/rbi/sentdm/resources/sender_profiles.rbi +461 -0
  304. data/rbi/sentdm/resources/templates.rbi +7 -2
  305. data/rbi/sentdm/resources/users.rbi +1 -1
  306. data/rbi/sentdm/resources/webhooks.rbi +6 -12
  307. data/sig/sentdm/client.rbs +4 -0
  308. data/sig/sentdm/internal/sender_profiles_page.rbs +80 -0
  309. data/sig/sentdm/models/account.rbs +111 -0
  310. data/sig/sentdm/models/account_channels.rbs +38 -0
  311. data/sig/sentdm/models/account_profile.rbs +68 -0
  312. data/sig/sentdm/models/account_rcs_channel.rbs +17 -0
  313. data/sig/sentdm/models/account_sms_channel.rbs +17 -0
  314. data/sig/sentdm/models/account_whatsapp_channel.rbs +28 -0
  315. data/sig/sentdm/models/api_response_of_account.rbs +39 -0
  316. data/sig/sentdm/models/api_response_of_cancelled_message.rbs +39 -0
  317. data/sig/sentdm/models/api_response_of_channels_state.rbs +39 -0
  318. data/sig/sentdm/models/api_response_of_compliance_requirements.rbs +39 -0
  319. data/sig/sentdm/models/api_response_of_contacts_list.rbs +39 -0
  320. data/sig/sentdm/models/api_response_of_message.rbs +39 -0
  321. data/sig/sentdm/models/api_response_of_message_activities.rbs +39 -0
  322. data/sig/sentdm/models/api_response_of_number_lookup_result.rbs +39 -0
  323. data/sig/sentdm/models/api_response_of_profile_completion_accepted.rbs +39 -0
  324. data/sig/sentdm/models/api_response_of_profile_completion_result.rbs +39 -0
  325. data/sig/sentdm/models/api_response_of_profiles_list.rbs +39 -0
  326. data/sig/sentdm/models/api_response_of_sender_profile.rbs +39 -0
  327. data/sig/sentdm/models/api_response_of_sender_profiles_list.rbs +39 -0
  328. data/sig/sentdm/models/api_response_of_templates_list.rbs +39 -0
  329. data/sig/sentdm/models/api_response_of_users_list.rbs +39 -0
  330. data/sig/sentdm/models/api_response_of_webhook_event_types_list.rbs +39 -0
  331. data/sig/sentdm/models/api_response_of_webhook_events_list.rbs +39 -0
  332. data/sig/sentdm/models/api_response_of_webhook_secret.rbs +39 -0
  333. data/sig/sentdm/models/api_response_of_webhook_test.rbs +39 -0
  334. data/sig/sentdm/models/api_response_of_webhooks_list.rbs +39 -0
  335. data/sig/sentdm/models/billing_contact.rbs +30 -0
  336. data/sig/sentdm/models/brand_business.rbs +70 -0
  337. data/sig/sentdm/models/brand_business_info.rbs +4 -23
  338. data/sig/sentdm/models/brand_compliance.rbs +56 -0
  339. data/sig/sentdm/models/brand_contact.rbs +47 -0
  340. data/sig/sentdm/models/brand_with_kyc.rbs +93 -0
  341. data/sig/sentdm/models/cancelled_message.rbs +15 -0
  342. data/sig/sentdm/models/channel_event_payload.rbs +4 -56
  343. data/sig/sentdm/models/channel_list_params.rbs +25 -0
  344. data/sig/sentdm/models/channel_score.rbs +32 -0
  345. data/sig/sentdm/models/channels/api_response_of_list_of_sms_market.rbs +41 -0
  346. data/sig/sentdm/models/channels/api_response_of_rcs_agent.rbs +41 -0
  347. data/sig/sentdm/models/channels/api_response_of_sms_market.rbs +41 -0
  348. data/sig/sentdm/models/channels/api_response_of_whatsapp_channel.rbs +43 -0
  349. data/sig/sentdm/models/channels/market_compliance.rbs +338 -0
  350. data/sig/sentdm/models/channels/rc_create_params.rbs +242 -0
  351. data/sig/sentdm/models/channels/rcs_address.rbs +42 -0
  352. data/sig/sentdm/models/channels/rcs_agent.rbs +181 -0
  353. data/sig/sentdm/models/channels/sms_create_params.rbs +116 -0
  354. data/sig/sentdm/models/channels/sms_list_params.rbs +27 -0
  355. data/sig/sentdm/models/channels/sms_market.rbs +85 -0
  356. data/sig/sentdm/models/channels/sms_number.rbs +28 -0
  357. data/sig/sentdm/models/channels/sms_number_request.rbs +17 -0
  358. data/sig/sentdm/models/channels/sms_retrieve_params.rbs +36 -0
  359. data/sig/sentdm/models/channels/sms_update_params.rbs +63 -0
  360. data/sig/sentdm/models/channels/supplied_compliance.rbs +32 -0
  361. data/sig/sentdm/models/channels/supplied_document.rbs +30 -0
  362. data/sig/sentdm/models/channels/whatsapp_channel.rbs +78 -0
  363. data/sig/sentdm/models/channels/whatsapp_create_params.rbs +56 -0
  364. data/sig/sentdm/models/channels_state.rbs +55 -0
  365. data/sig/sentdm/models/compliance_attachment_template.rbs +26 -0
  366. data/sig/sentdm/models/compliance_requirement.rbs +76 -0
  367. data/sig/sentdm/models/compliance_requirements.rbs +66 -0
  368. data/sig/sentdm/models/compliance_retrieve_requirements_params.rbs +43 -0
  369. data/sig/sentdm/models/compliance_setup_step.rbs +62 -0
  370. data/sig/sentdm/models/contact_message_summary.rbs +6 -35
  371. data/sig/sentdm/models/contacts_list.rbs +31 -0
  372. data/sig/sentdm/models/conversation_messages_list.rbs +5 -312
  373. data/sig/sentdm/models/entity_type.rbs +22 -0
  374. data/sig/sentdm/models/inbound_media.rbs +35 -0
  375. data/sig/sentdm/models/inbound_message_event_payload.rbs +4 -36
  376. data/sig/sentdm/models/link_event.rbs +44 -0
  377. data/sig/sentdm/models/link_event_payload.rbs +106 -0
  378. data/sig/sentdm/models/message.rbs +130 -0
  379. data/sig/sentdm/models/message_activities.rbs +38 -0
  380. data/sig/sentdm/models/message_activity.rbs +66 -0
  381. data/sig/sentdm/models/message_body.rbs +52 -0
  382. data/sig/sentdm/models/message_button.rbs +34 -0
  383. data/sig/sentdm/models/message_cancel_params.rbs +38 -0
  384. data/sig/sentdm/models/message_channel_options.rbs +26 -0
  385. data/sig/sentdm/models/message_header_media.rbs +19 -0
  386. data/sig/sentdm/models/message_media.rbs +40 -0
  387. data/sig/sentdm/models/message_recipient.rbs +34 -0
  388. data/sig/sentdm/models/message_send_params.rbs +8 -54
  389. data/sig/sentdm/models/message_send_response.rbs +4 -77
  390. data/sig/sentdm/models/message_send_result.rbs +45 -0
  391. data/sig/sentdm/models/message_status_event.rbs +40 -0
  392. data/sig/sentdm/models/mms_market.rbs +35 -0
  393. data/sig/sentdm/models/number_lookup_result.rbs +64 -0
  394. data/sig/sentdm/models/pagination_cursors.rbs +15 -0
  395. data/sig/sentdm/models/pagination_meta.rbs +4 -16
  396. data/sig/sentdm/models/profile_completion_accepted.rbs +15 -0
  397. data/sig/sentdm/models/profile_completion_result.rbs +19 -0
  398. data/sig/sentdm/models/profile_detail.rbs +8 -315
  399. data/sig/sentdm/models/profiles/brand_campaign.rbs +4 -16
  400. data/sig/sentdm/models/profiles_list.rbs +31 -0
  401. data/sig/sentdm/models/sender_profile.rbs +76 -0
  402. data/sig/sentdm/models/sender_profile_billing.rbs +15 -0
  403. data/sig/sentdm/models/sender_profile_billing_request.rbs +15 -0
  404. data/sig/sentdm/models/sender_profile_channels.rbs +30 -0
  405. data/sig/sentdm/models/sender_profile_create_params.rbs +78 -0
  406. data/sig/sentdm/models/sender_profile_delete_params.rbs +20 -0
  407. data/sig/sentdm/models/sender_profile_list_params.rbs +32 -0
  408. data/sig/sentdm/models/sender_profile_rcs.rbs +150 -0
  409. data/sig/sentdm/models/sender_profile_retrieve_params.rbs +20 -0
  410. data/sig/sentdm/models/sender_profile_sms.rbs +40 -0
  411. data/sig/sentdm/models/sender_profile_update_params.rbs +62 -0
  412. data/sig/sentdm/models/sender_profile_whatsapp.rbs +16 -0
  413. data/sig/sentdm/models/sender_profiles_list.rbs +31 -0
  414. data/sig/sentdm/models/tcr_brand_identity_status.rbs +17 -0
  415. data/sig/sentdm/models/tcr_brand_status.rbs +15 -0
  416. data/sig/sentdm/models/tcr_campaign_status.rbs +15 -0
  417. data/sig/sentdm/models/template_body.rbs +4 -43
  418. data/sig/sentdm/models/template_create_params.rbs +5 -0
  419. data/sig/sentdm/models/template_header.rbs +4 -31
  420. data/sig/sentdm/models/template_header_location.rbs +30 -0
  421. data/sig/sentdm/models/template_media_item.rbs +17 -0
  422. data/sig/sentdm/models/template_mms_body_content.rbs +28 -0
  423. data/sig/sentdm/models/template_ref.rbs +26 -0
  424. data/sig/sentdm/models/template_variable.rbs +4 -51
  425. data/sig/sentdm/models/template_variable_props.rbs +50 -0
  426. data/sig/sentdm/models/templates_list.rbs +29 -0
  427. data/sig/sentdm/models/users_list.rbs +31 -0
  428. data/sig/sentdm/models/voice/call.rbs +4 -49
  429. data/sig/sentdm/models/voice/call_leg.rbs +50 -0
  430. data/sig/sentdm/models/webhook_create_params.rbs +4 -28
  431. data/sig/sentdm/models/webhook_delivery.rbs +99 -0
  432. data/sig/sentdm/models/webhook_event_types_list.rbs +31 -0
  433. data/sig/sentdm/models/webhook_events_list.rbs +31 -0
  434. data/sig/sentdm/models/webhook_response.rbs +4 -28
  435. data/sig/sentdm/models/webhook_secret.rbs +15 -0
  436. data/sig/sentdm/models/webhook_sender_profile.rbs +27 -0
  437. data/sig/sentdm/models/webhook_sender_profile_config.rbs +27 -0
  438. data/sig/sentdm/models/webhook_test.rbs +19 -0
  439. data/sig/sentdm/models/webhook_update_params.rbs +4 -28
  440. data/sig/sentdm/models/webhooks_list.rbs +31 -0
  441. data/sig/sentdm/models.rbs +188 -0
  442. data/sig/sentdm/resources/channels/rcs.rbs +41 -0
  443. data/sig/sentdm/resources/channels/sms.rbs +44 -0
  444. data/sig/sentdm/resources/channels/whatsapp.rbs +18 -0
  445. data/sig/sentdm/resources/channels.rbs +11 -0
  446. data/sig/sentdm/resources/compliance.rbs +15 -0
  447. data/sig/sentdm/resources/conversations.rbs +2 -2
  448. data/sig/sentdm/resources/me.rbs +1 -1
  449. data/sig/sentdm/resources/messages.rbs +12 -4
  450. data/sig/sentdm/resources/numbers.rbs +1 -1
  451. data/sig/sentdm/resources/profiles.rbs +2 -2
  452. data/sig/sentdm/resources/sender_profiles.rbs +44 -0
  453. data/sig/sentdm/resources/templates.rbs +1 -0
  454. data/sig/sentdm/resources/users.rbs +1 -1
  455. data/sig/sentdm/resources/webhooks.rbs +6 -6
  456. metadata +362 -35
  457. data/lib/sentdm/models/me_retrieve_response.rb +0 -409
  458. data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
  459. data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
  460. data/lib/sentdm/models/number_lookup_response.rb +0 -104
  461. data/lib/sentdm/models/profile_complete_response.rb +0 -74
  462. data/lib/sentdm/models/profile_list_response.rb +0 -65
  463. data/lib/sentdm/models/user_list_response.rb +0 -65
  464. data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
  465. data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
  466. data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
  467. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
  468. data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
  469. data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
  470. data/rbi/sentdm/models/profile_list_response.rbi +0 -128
  471. data/rbi/sentdm/models/user_list_response.rbi +0 -128
  472. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
  473. data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
  474. data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
  475. data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
  476. data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
  477. data/sig/sentdm/models/number_lookup_response.rbs +0 -100
  478. data/sig/sentdm/models/profile_complete_response.rbs +0 -55
  479. data/sig/sentdm/models/profile_list_response.rbs +0 -67
  480. data/sig/sentdm/models/user_list_response.rbs +0 -67
  481. data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
  482. data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
  483. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
  484. data/sig/sentdm/models/webhook_test_response.rbs +0 -55
@@ -2,7 +2,124 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
+ # The senders you send from, one per channel.
6
+ #
7
+ # **SMS is a list of markets**, each keyed by `(country, number_type)` — a
8
+ # customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
9
+ # addressed by the pair rather than by country alone. **WhatsApp and RCS are
10
+ # single**: a customer has one business account and one agent. **Voice is per
11
+ # number**: each number you hold can carry phone calls on its own
12
+ # (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
13
+ # with its calls, one of them is the default line for calls placed from your app,
14
+ # and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
15
+ # numbers with `GET /v3/channels/voice` and change one with
16
+ # `PATCH /v3/channels/voice/{number}`.
17
+ #
18
+ # ## Compliance lives on the market
19
+ #
20
+ # Adding a market records everything that market registers with, in its
21
+ # `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
22
+ # Campaign Registry — and it is the only market whose compliance carries `brand`
23
+ # and `campaign`. Everywhere else compliance is documents, and many markets ask
24
+ # for none at all.
25
+ #
26
+ # `GET` and `PATCH` on a market return and accept the same shape, so what comes
27
+ # back can be sent back: an omitted key is left alone, and a key reported in
28
+ # `requirements` is the path into the body that clears it.
29
+ #
30
+ # Call `GET /v3/compliance/requirements` first — it answers what a market demands
31
+ # before you hold it, with a body you can fill in and post.
5
32
  class Channels
33
+ # The senders you send from, one per channel.
34
+ #
35
+ # **SMS is a list of markets**, each keyed by `(country, number_type)` — a
36
+ # customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
37
+ # addressed by the pair rather than by country alone. **WhatsApp and RCS are
38
+ # single**: a customer has one business account and one agent. **Voice is per
39
+ # number**: each number you hold can carry phone calls on its own
40
+ # (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
41
+ # with its calls, one of them is the default line for calls placed from your app,
42
+ # and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
43
+ # numbers with `GET /v3/channels/voice` and change one with
44
+ # `PATCH /v3/channels/voice/{number}`.
45
+ #
46
+ # ## Compliance lives on the market
47
+ #
48
+ # Adding a market records everything that market registers with, in its
49
+ # `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
50
+ # Campaign Registry — and it is the only market whose compliance carries `brand`
51
+ # and `campaign`. Everywhere else compliance is documents, and many markets ask
52
+ # for none at all.
53
+ #
54
+ # `GET` and `PATCH` on a market return and accept the same shape, so what comes
55
+ # back can be sent back: an omitted key is left alone, and a key reported in
56
+ # `requirements` is the path into the body that clears it.
57
+ #
58
+ # Call `GET /v3/compliance/requirements` first — it answers what a market demands
59
+ # before you hold it, with a body you can fill in and post.
60
+ sig { returns(Sentdm::Resources::Channels::SMS) }
61
+ attr_reader :sms
62
+
63
+ # The senders you send from, one per channel.
64
+ #
65
+ # **SMS is a list of markets**, each keyed by `(country, number_type)` — a
66
+ # customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
67
+ # addressed by the pair rather than by country alone. **WhatsApp and RCS are
68
+ # single**: a customer has one business account and one agent. **Voice is per
69
+ # number**: each number you hold can carry phone calls on its own
70
+ # (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
71
+ # with its calls, one of them is the default line for calls placed from your app,
72
+ # and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
73
+ # numbers with `GET /v3/channels/voice` and change one with
74
+ # `PATCH /v3/channels/voice/{number}`.
75
+ #
76
+ # ## Compliance lives on the market
77
+ #
78
+ # Adding a market records everything that market registers with, in its
79
+ # `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
80
+ # Campaign Registry — and it is the only market whose compliance carries `brand`
81
+ # and `campaign`. Everywhere else compliance is documents, and many markets ask
82
+ # for none at all.
83
+ #
84
+ # `GET` and `PATCH` on a market return and accept the same shape, so what comes
85
+ # back can be sent back: an omitted key is left alone, and a key reported in
86
+ # `requirements` is the path into the body that clears it.
87
+ #
88
+ # Call `GET /v3/compliance/requirements` first — it answers what a market demands
89
+ # before you hold it, with a body you can fill in and post.
90
+ sig { returns(Sentdm::Resources::Channels::Rcs) }
91
+ attr_reader :rcs
92
+
93
+ # The senders you send from, one per channel.
94
+ #
95
+ # **SMS is a list of markets**, each keyed by `(country, number_type)` — a
96
+ # customer can hold `us/10dlc` and `gb/alphanumeric` at once, so a market is
97
+ # addressed by the pair rather than by country alone. **WhatsApp and RCS are
98
+ # single**: a customer has one business account and one agent. **Voice is per
99
+ # number**: each number you hold can carry phone calls on its own
100
+ # (`POST /v3/channels/voice`), each with the callback URL Sent asks what to do
101
+ # with its calls, one of them is the default line for calls placed from your app,
102
+ # and voice tokens are minted with `POST /v3/voice/tokens`. Read your voice
103
+ # numbers with `GET /v3/channels/voice` and change one with
104
+ # `PATCH /v3/channels/voice/{number}`.
105
+ #
106
+ # ## Compliance lives on the market
107
+ #
108
+ # Adding a market records everything that market registers with, in its
109
+ # `compliance` object. Only **US `TEN_DLC`** registers with a regime — The
110
+ # Campaign Registry — and it is the only market whose compliance carries `brand`
111
+ # and `campaign`. Everywhere else compliance is documents, and many markets ask
112
+ # for none at all.
113
+ #
114
+ # `GET` and `PATCH` on a market return and accept the same shape, so what comes
115
+ # back can be sent back: an omitted key is left alone, and a key reported in
116
+ # `requirements` is the path into the body that clears it.
117
+ #
118
+ # Call `GET /v3/compliance/requirements` first — it answers what a market demands
119
+ # before you hold it, with a body you can fill in and post.
120
+ sig { returns(Sentdm::Resources::Channels::Whatsapp) }
121
+ attr_reader :whatsapp
122
+
6
123
  # The senders you send from, one per channel.
7
124
  #
8
125
  # **SMS is a list of markets**, each keyed by `(country, number_type)` — a
@@ -33,6 +150,38 @@ module Sentdm
33
150
  sig { returns(Sentdm::Resources::Channels::Voice) }
34
151
  attr_reader :voice
35
152
 
153
+ # Every market you send SMS in, your WhatsApp account, your RCS agent and the
154
+ # numbers you carry phone calls on — with each one's status, and what each market
155
+ # has supplied.
156
+ #
157
+ # **Status lives on the channel, never on you or your brand.** An identity has no
158
+ # lifecycle; what has one is the registration of a sender in a market and the
159
+ # approval of a channel. So a customer live in one country and mid-registration in
160
+ # another reports exactly that, rather than one flattened answer.
161
+ #
162
+ # `sms[n].compliance` carries what each market holds: `brand` and `campaign` for
163
+ # markets that register with a compliance regime such as US TEN_DLC, and
164
+ # `documents` for markets that pre-register an alphanumeric or similar sender.
165
+ # Absent means the market registers with nobody and nothing has been supplied.
166
+ # `GET /v3/compliance/requirements` says what a market demands of any new
167
+ # customer; this says what you gave it.
168
+ #
169
+ # Send `x-profile-id` with an organization key to read one of your profiles'
170
+ # channels.
171
+ sig do
172
+ params(
173
+ x_profile_id: String,
174
+ request_options: Sentdm::RequestOptions::OrHash
175
+ ).returns(Sentdm::APIResponseOfChannelsState)
176
+ end
177
+ def list(
178
+ # Profile UUID to scope the request to a child profile. Only organization API keys
179
+ # can use this header. The profile must belong to the calling organization.
180
+ x_profile_id: nil,
181
+ request_options: {}
182
+ )
183
+ end
184
+
36
185
  # @api private
37
186
  sig { params(client: Sentdm::Client).returns(T.attached_class) }
38
187
  def self.new(client:)
@@ -0,0 +1,121 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Resources
5
+ # What a market demands, before you have it.
6
+ #
7
+ # Requirements vary enormously and change without notice. US `TEN_DLC` registers a
8
+ # brand and a campaign with The Campaign Registry and asks a substantial set of
9
+ # questions; an alphanumeric sender pre-registers with documents in one country
10
+ # and needs nothing in another.
11
+ #
12
+ # This is the authoritative answer for whichever market you ask about, and it is
13
+ # generated from the same declaration that validates the calls themselves — so it
14
+ # cannot drift from what is actually enforced. The response includes the request
15
+ # body to send, with every key that market wants already present and blank.
16
+ #
17
+ # What you supplied, as opposed to what is asked of you, is reported on the market
18
+ # under **Channels**.
19
+ class Compliance
20
+ # **Call this first.** It returns what a channel, country and sender type demand
21
+ # before you can send there — and `setup[]`, the calls that satisfy those demands,
22
+ # in order, each with a body you can copy and send as it stands. You never have to
23
+ # track forty countries' rules yourself.
24
+ #
25
+ # ## Channel
26
+ #
27
+ # `channel` is `sms`, `whatsapp` or `rcs`, and **defaults to `sms`** — so a caller
28
+ # that omits it gets exactly what this endpoint has always returned.
29
+ #
30
+ # `sms` is the only one answered today; the other two are `501` until their
31
+ # requirements are declared. They are refused rather than answered with an empty
32
+ # requirement set, because empty would say the channel demands nothing, and both
33
+ # demand plenty — WhatsApp a business verification and a display name review, RCS
34
+ # a carrier approval. Saying "not yet" is the true answer and the same one
35
+ # `POST /v3/sender-profiles` gives for `channels.whatsapp`.
36
+ #
37
+ # `type` is an SMS sender type, and SMS is the only channel whose senders have
38
+ # one.
39
+ #
40
+ # Requirements vary enormously. US `TEN_DLC` registers a brand and a campaign with
41
+ # The Campaign Registry and asks for a substantial set of values. An alphanumeric
42
+ # sender in one country pre-registers with supporting documents; in another it
43
+ # needs nothing at all. This is the authoritative answer for whichever market you
44
+ # are asking about, and it is the same declaration used to validate the calls
45
+ # themselves — so it can never drift from what is actually enforced.
46
+ #
47
+ # ## `setup[]` — what to do
48
+ #
49
+ # **One step.** `POST /v3/channels/sms` adds the market and records everything it
50
+ # registers with — the identity in `compliance.brand`, the programme in
51
+ # `compliance.campaign`. There were three, in a load-bearing order, while the
52
+ # identity and the campaign were resources of their own; they are members of this
53
+ # call's body now, so there is nothing to sequence.
54
+ #
55
+ # Correct any of it afterwards with `PATCH /v3/channels/sms/{country}/{type}`,
56
+ # which takes the same `compliance` object one key at a time.
57
+ #
58
+ # Each step's `body` has every key that market wants already present, with the
59
+ # values left **blank**. Blank rather than filled with placeholders, because the
60
+ # body is meant to be sent: a null value counts as not supplied, so posting a step
61
+ # verbatim comes back naming every blank you left. `attachments[]` lists files to
62
+ # send as multipart on the channel call, each under the field name given — a file
63
+ # cannot be a JSON value, so documents are never listed in `compliance[]`.
64
+ #
65
+ # Every step is a call for whoever holds the key. To set a **sender profile** up
66
+ # instead, send the same requests with the `x-profile-id` header naming it; there
67
+ # is no separate path.
68
+ #
69
+ # ## `requirements[]` — what each value means
70
+ #
71
+ # Each entry names a key for the `compliance` array, its value type, and whether
72
+ # it is required. `required_when` marks values needed only in certain cases —
73
+ # evaluate it against your own payload, e.g. `brand.entity_type == PUBLIC_PROFIT`.
74
+ # `options` lists accepted values where the market constrains them, and `label` is
75
+ # suitable for rendering a form field.
76
+ #
77
+ # Values Sent supplies on your behalf are never listed: correlation ids,
78
+ # environment flags, carrier elections, and booleans derivable from what you
79
+ # already send.
80
+ #
81
+ # ## When nothing is required
82
+ #
83
+ # `required` is `false` and `requirements` is empty, and the single `setup` step
84
+ # carries no `compliance` array at all. A `sender_id_pattern` may still be present
85
+ # — many markets constrain the sender string without registering anything.
86
+ sig do
87
+ params(
88
+ channel: T.nilable(String),
89
+ country: T.nilable(String),
90
+ type: T.nilable(String),
91
+ x_profile_id: String,
92
+ request_options: Sentdm::RequestOptions::OrHash
93
+ ).returns(Sentdm::APIResponseOfComplianceRequirements)
94
+ end
95
+ def retrieve_requirements(
96
+ # Query param: Channel the sender is for: sms, whatsapp or rcs. Defaults to sms,
97
+ # which is the only one answered today — the other two are 501 until their
98
+ # requirements are declared.
99
+ channel: nil,
100
+ # Query param: ISO 3166-1 alpha-2 country code, e.g. US, XK, IN
101
+ country: nil,
102
+ # Query param: Sender type: LOCAL, MOBILE, TEN_DLC, TOLL_FREE, SHORT_CODE,
103
+ # ALPHANUMERIC. 10DLC is accepted as a synonym of TEN_DLC, the same as on POST
104
+ # /v3/sender-profiles. Applies to channel=sms, the only channel whose senders have
105
+ # a type.
106
+ type: nil,
107
+ # Header param: Profile UUID to scope the request to a child profile. Only
108
+ # organization API keys can use this header. The profile must belong to the
109
+ # calling organization.
110
+ x_profile_id: nil,
111
+ request_options: {}
112
+ )
113
+ end
114
+
115
+ # @api private
116
+ sig { params(client: Sentdm::Client).returns(T.attached_class) }
117
+ def self.new(client:)
118
+ end
119
+ end
120
+ end
121
+ end
@@ -19,11 +19,7 @@ module Sentdm
19
19
  page_size: Integer,
20
20
  x_profile_id: String,
21
21
  request_options: Sentdm::RequestOptions::OrHash
22
- ).returns(
23
- Sentdm::Internal::ConversationsPage[
24
- Sentdm::ConversationMessagesList::Message
25
- ]
26
- )
22
+ ).returns(Sentdm::Internal::ConversationsPage[Sentdm::Message])
27
23
  end
28
24
  def list(
29
25
  # Query param
@@ -47,11 +43,7 @@ module Sentdm
47
43
  page_size: Integer,
48
44
  x_profile_id: String,
49
45
  request_options: Sentdm::RequestOptions::OrHash
50
- ).returns(
51
- Sentdm::Internal::ConversationsPage[
52
- Sentdm::ConversationMessagesList::Message
53
- ]
54
- )
46
+ ).returns(Sentdm::Internal::ConversationsPage[Sentdm::Message])
55
47
  end
56
48
  def list_messages(
57
49
  # Path param: Conversation id from the route.
@@ -44,7 +44,7 @@ module Sentdm
44
44
  params(
45
45
  x_profile_id: String,
46
46
  request_options: Sentdm::RequestOptions::OrHash
47
- ).returns(Sentdm::Models::MeRetrieveResponse)
47
+ ).returns(Sentdm::APIResponseOfAccount)
48
48
  end
49
49
  def retrieve(
50
50
  # Profile UUID to scope the request to a child profile. Only organization API keys
@@ -25,6 +25,66 @@ module Sentdm
25
25
  # released yet. Cancelling is free, fires `message.cancelled`, and is final — a
26
26
  # cancelled message cannot be resent.
27
27
  class Messages
28
+ # Calls off a message you scheduled with `scheduled_at`, before it is released for
29
+ # sending. The message moves to `CANCELLED`, which is terminal, and it is never
30
+ # sent.
31
+ #
32
+ # **Only a SCHEDULED message can be cancelled.** A message that has already been
33
+ # released — queued, in flight, or finished — returns 409. The release sweeper
34
+ # runs continuously, so a cancellation sent within about a minute of the scheduled
35
+ # instant can lose that race and be refused; cancel with time to spare.
36
+ #
37
+ # **One message per call.** A send to many recipients, or on several channels,
38
+ # becomes one message per recipient × channel, each with its own id; cancel the
39
+ # ones you want stopped. There is no bulk cancellation.
40
+ #
41
+ # **Cancelling is free**, and nothing was charged for the hold in the first place
42
+ # — a scheduled message is only priced and billed at release.
43
+ #
44
+ # **A cancellation fires `message.cancelled`** on your webhook, exactly once,
45
+ # carrying the `scheduled_at` that was called off so a consumer can un-record the
46
+ # send it was expecting. Cancelling the same message again returns this same
47
+ # response and fires no second event. `Idempotency-Key` is honoured.
48
+ #
49
+ # A cancelled message cannot be resent — send a new one.
50
+ #
51
+ # The response is the message itself, in the same shape `GET /v3/messages/{id}`
52
+ # returns, so the `status` you read back is the one now stored on the row, and
53
+ # `scheduled_at` is the time it would have gone out. `GET /v3/messages/{id}` keeps
54
+ # reporting both afterwards.
55
+ #
56
+ # `events` is the message lifecycle as it stood immediately before the
57
+ # cancellation: the CANCELLED entry is written asynchronously and lands a moment
58
+ # later, so read `status` for the outcome. If you need the entry itself, re-fetch
59
+ # the message after a few seconds — `GET /v3/messages/{id}` is cached briefly, so
60
+ # an immediate re-fetch can still show the pre-cancellation state.
61
+ sig do
62
+ params(
63
+ id: String,
64
+ sandbox: T::Boolean,
65
+ idempotency_key: String,
66
+ x_profile_id: String,
67
+ request_options: Sentdm::RequestOptions::OrHash
68
+ ).returns(Sentdm::APIResponseOfCancelledMessage)
69
+ end
70
+ def cancel(
71
+ # Path param: Message ID
72
+ id,
73
+ # Body param: Sandbox flag - when true, the operation is simulated without side
74
+ # effects Useful for testing integrations without actual execution
75
+ sandbox: nil,
76
+ # Header param: Unique key to ensure idempotent request processing. Must be 1-255
77
+ # alphanumeric characters, hyphens, or underscores. Responses are cached for 24
78
+ # hours per key per customer.
79
+ idempotency_key: nil,
80
+ # Header param: Profile UUID to scope the request to a child profile. Only
81
+ # organization API keys can use this header. The profile must belong to the
82
+ # calling organization.
83
+ x_profile_id: nil,
84
+ request_options: {}
85
+ )
86
+ end
87
+
28
88
  # Resends a message you already sent, on the same message id, without rebuilding
29
89
  # the request. The typical use is recovering a BLOCKED message — for example one
30
90
  # refused for insufficient balance — after the account has been topped up.
@@ -90,7 +150,7 @@ module Sentdm
90
150
  id: String,
91
151
  x_profile_id: String,
92
152
  request_options: Sentdm::RequestOptions::OrHash
93
- ).returns(Sentdm::Models::MessageRetrieveActivitiesResponse)
153
+ ).returns(Sentdm::APIResponseOfMessageActivities)
94
154
  end
95
155
  def retrieve_activities(
96
156
  # Message ID from route parameter
@@ -114,7 +174,7 @@ module Sentdm
114
174
  id: String,
115
175
  x_profile_id: String,
116
176
  request_options: Sentdm::RequestOptions::OrHash
117
- ).returns(Sentdm::Models::MessageRetrieveStatusResponse)
177
+ ).returns(Sentdm::APIResponseOfMessage)
118
178
  end
119
179
  def retrieve_status(
120
180
  # Message ID
@@ -159,22 +219,20 @@ module Sentdm
159
219
  # accepted: if the time falls inside a legally protected quiet-hours window for a
160
220
  # recipient, that message is moved to the next allowed time at release and a
161
221
  # second message.scheduled webhook reports the new scheduled_at. An account may
162
- # hold at most 1,000,000 scheduled messages at once (429 LIMIT_001).
222
+ # hold at most 1,000,000 scheduled messages at once: a message scheduled past that
223
+ # is reported as BLOCKED (LIMIT_001) instead of being held.
163
224
  sig do
164
225
  params(
165
226
  channel: T.nilable(T::Array[String]),
166
227
  channels:
167
228
  T.nilable(
168
- T::Hash[
169
- Symbol,
170
- T::Array[Sentdm::MessageSendParams::Channel::OrHash]
171
- ]
229
+ T::Hash[Symbol, T::Array[Sentdm::MessageChannelOptions::OrHash]]
172
230
  ),
173
231
  media_urls: T.nilable(T::Array[String]),
174
232
  sandbox: T::Boolean,
175
233
  scheduled_at: T.nilable(Time),
176
234
  subject: T.nilable(String),
177
- template: T.nilable(Sentdm::MessageSendParams::Template::OrHash),
235
+ template: T.nilable(Sentdm::TemplateRef::OrHash),
178
236
  text: T.nilable(String),
179
237
  to: T::Array[String],
180
238
  idempotency_key: String,
@@ -17,7 +17,7 @@ module Sentdm
17
17
  phone_number: String,
18
18
  x_profile_id: String,
19
19
  request_options: Sentdm::RequestOptions::OrHash
20
- ).returns(Sentdm::Models::NumberLookupResponse)
20
+ ).returns(Sentdm::APIResponseOfNumberLookupResult)
21
21
  end
22
22
  def lookup(
23
23
  phone_number,
@@ -364,7 +364,7 @@ module Sentdm
364
364
  params(
365
365
  x_profile_id: String,
366
366
  request_options: Sentdm::RequestOptions::OrHash
367
- ).returns(Sentdm::Models::ProfileListResponse)
367
+ ).returns(Sentdm::APIResponseOfProfilesList)
368
368
  end
369
369
  def list(
370
370
  # Profile UUID to scope the request to a child profile. Only organization API keys
@@ -465,7 +465,7 @@ module Sentdm
465
465
  idempotency_key: String,
466
466
  x_profile_id: String,
467
467
  request_options: Sentdm::RequestOptions::OrHash
468
- ).returns(Sentdm::Models::ProfileCompleteResponse)
468
+ ).returns(Sentdm::APIResponseOfProfileCompletionResult)
469
469
  end
470
470
  def complete(
471
471
  # Path param: Profile ID from route