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
@@ -0,0 +1,211 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class LinkEventPayload < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute record_id
7
+ # The link's public identifier — the eight-character code in the short URL, for
8
+ # example A78B2BU0. Unique across both kinds, and never reused, so it is the
9
+ # stable key to group one link's events by.
10
+ #
11
+ # @return [String]
12
+ required :record_id, String
13
+
14
+ # @!attribute access_country
15
+ # Where the request appeared to come from, as an ISO 3166-1 alpha-2 code. Named
16
+ # separately from the country on a channel event, which is a destination market
17
+ # the customer registered for — this one is a property of a single visitor and is
18
+ # absent when the edge could not resolve it.
19
+ #
20
+ # @return [String, nil]
21
+ optional :access_country, String, nil?: true
22
+
23
+ # @!attribute access_outcome
24
+ # How the request was served, when the edge recorded it. Free text describing the
25
+ # outcome — show it to a human rather than branching on it.
26
+ #
27
+ # @return [String, nil]
28
+ optional :access_outcome, String, nil?: true
29
+
30
+ # @!attribute browser
31
+ # The requesting browser family, for example chrome or safari, or unknown. Derived
32
+ # from the user agent.
33
+ #
34
+ # @return [String, nil]
35
+ optional :browser, String, nil?: true
36
+
37
+ # @!attribute bytes_served
38
+ # How many bytes were served, for a file access. A ranged request reports the
39
+ # bytes in that range, not the size of the file, so several accesses of one file
40
+ # can each report a part.
41
+ #
42
+ # @return [Integer, nil]
43
+ optional :bytes_served, Integer, nil?: true
44
+
45
+ # @!attribute channel
46
+ # The channel the message carrying this link went out on: sms, whatsapp, or rcs.
47
+ #
48
+ # @return [String, nil]
49
+ optional :channel, String, nil?: true
50
+
51
+ # @!attribute customer_id
52
+ # The organization the link belongs to. Always the parent account, never a sender
53
+ # profile — read SenderProfileId for that.
54
+ #
55
+ # This family publishes the owner as an explicit pair rather than the single
56
+ # account_id the other families use. The pair says which organization and which
57
+ # profile without the subscriber deriving either, which is the trade: one more key
58
+ # against not having to know that account_id silently becomes the profile when one
59
+ # exists.
60
+ #
61
+ # @return [String, nil]
62
+ optional :customer_id, String
63
+
64
+ # @!attribute device
65
+ # The requesting device class: mobile, tablet, desktop or unknown. Derived from
66
+ # the user agent.
67
+ #
68
+ # @return [String, nil]
69
+ optional :device, String, nil?: true
70
+
71
+ # @!attribute link_kind
72
+ # What the link points at: url for a destination the customer supplied, file for
73
+ # media Sent hosts. Always present, and implied by the event — link.clicked is
74
+ # always url and link.downloaded always file — but published as its own field so a
75
+ # subscriber can branch on the kind without parsing the event name, the same
76
+ # separation the channel family keeps between its event and its status.
77
+ #
78
+ # @return [String, nil]
79
+ optional :link_kind, String
80
+
81
+ # @!attribute message_id
82
+ # The message the link was published in.
83
+ #
84
+ # The event can arrive before the message is readable through GET /v3/messages: a
85
+ # provider may fetch a link within milliseconds of the send, and nothing here
86
+ # waits for the message row. Retry the read rather than treating an unknown id as
87
+ # an error.
88
+ #
89
+ # @return [String, nil]
90
+ optional :message_id, String, nil?: true
91
+
92
+ # @!attribute occurred_at
93
+ # When the access or lifecycle change actually happened, in UTC
94
+ # (yyyy-MM-ddTHH:mm:ssZ). The envelope's timestamp is when Sent emitted the event;
95
+ # this is when the thing occurred, and the two differ by the ingest delay.
96
+ #
97
+ # @return [String, nil]
98
+ optional :occurred_at, String
99
+
100
+ # @!attribute reference_key
101
+ # The caller-supplied label tying this link back to a position in the message, for
102
+ # example body:0 for the first link in the body. Present when the link was created
103
+ # with one.
104
+ #
105
+ # @return [String, nil]
106
+ optional :reference_key, String, nil?: true
107
+
108
+ # @!attribute referrer_host
109
+ # The host of the page that linked here, when the request supplied one. The host
110
+ # only — never a full referring URL.
111
+ #
112
+ # @return [String, nil]
113
+ optional :referrer_host, String, nil?: true
114
+
115
+ # @!attribute request_method
116
+ # The HTTP method of the request that was served, for an access event. Omitted on
117
+ # link.expired and link.revoked, which describe no request.
118
+ #
119
+ # @return [String, nil]
120
+ optional :request_method, String, nil?: true
121
+
122
+ # @!attribute sender_profile_id
123
+ # The sender profile that owns the link, or null when the organization owns it
124
+ # directly. Always on the wire so a handler reads one shape rather than branching
125
+ # on whether the key arrived.
126
+ #
127
+ # sender_profile_id, not profile_id: the API already publishes
128
+ # messaging_profile_id and sending_phone_number_profile_id for provider-side
129
+ # profiles, which are a different thing entirely. The unqualified name would read
130
+ # as one of those.
131
+ #
132
+ # @return [String, nil]
133
+ optional :sender_profile_id, String, nil?: true
134
+
135
+ # @!attribute status_code
136
+ # The HTTP status Sent answered the request with: 302 for a link, 200 or 206 for a
137
+ # file. Omitted on lifecycle events.
138
+ #
139
+ # @return [Integer, nil]
140
+ optional :status_code, Integer, nil?: true
141
+
142
+ # @!attribute traffic_class
143
+ # A coarse guess at what made the request: likely_human, provider (a messaging
144
+ # platform prefetching the link), bot, or unknown. Derived from the user agent, so
145
+ # it is a hint for filtering noise rather than a fact to bill or report on.
146
+ #
147
+ # @return [String, nil]
148
+ optional :traffic_class, String, nil?: true
149
+
150
+ # @!method initialize(record_id:, access_country: nil, access_outcome: nil, browser: nil, bytes_served: nil, channel: nil, customer_id: nil, device: nil, link_kind: nil, message_id: nil, occurred_at: nil, reference_key: nil, referrer_host: nil, request_method: nil, sender_profile_id: nil, status_code: nil, traffic_class: nil)
151
+ # Some parameter documentations has been truncated, see
152
+ # {Sentdm::Models::LinkEventPayload} for more details.
153
+ #
154
+ # Body of a link event: something happened to a tracked link Sent published on the
155
+ # customer's behalf. A link points either at a URL the customer supplied or at a
156
+ # file Sent hosts for them; LinkKind says which. Delivered when an eligible
157
+ # request is served, or when a published link reaches the end of its life.
158
+ #
159
+ # A click is a request, not a read receipt. link.clicked means the redirect was
160
+ # served; link.downloaded means bytes went out. Neither proves a person saw
161
+ # anything — messaging providers and link scanners fetch URLs on their own, which
162
+ # is what TrafficClass exists to tell apart. Filter on it before reporting a
163
+ # click-through rate; treat likely_human as a hint, never as delivery
164
+ # confirmation.
165
+ #
166
+ # RecordId identifies the link; the X-Webhook-Event-ID header identifies the
167
+ # delivery. One link is hit many times, so those are the two keys a subscriber
168
+ # needs: group by the first, deduplicate on the second — exactly as on every other
169
+ # family. The payload carries no event identifier of its own, for the same reason
170
+ # none of the others do.
171
+ #
172
+ # Nothing here identifies the visitor. No IP address and no visitor token crosses
173
+ # this boundary. Country, Device and Browser are coarse buckets derived at the
174
+ # edge and are absent whenever the request did not supply enough to derive them.
175
+ #
176
+ # @param record_id [String] The link's public identifier — the eight-character code in the short URL, for ex
177
+ #
178
+ # @param access_country [String, nil] Where the request appeared to come from, as an ISO 3166-1 alpha-2 code. Named se
179
+ #
180
+ # @param access_outcome [String, nil] How the request was served, when the edge recorded it. Free text describing the
181
+ #
182
+ # @param browser [String, nil] The requesting browser family, for example chrome or safari, or
183
+ #
184
+ # @param bytes_served [Integer, nil] How many bytes were served, for a file access. A ranged request reports the byte
185
+ #
186
+ # @param channel [String, nil] The channel the message carrying this link went out on: sms, whatsapp, or
187
+ #
188
+ # @param customer_id [String] The organization the link belongs to. Always the parent account, never a sender
189
+ #
190
+ # @param device [String, nil] The requesting device class: mobile, tablet, desktop or
191
+ #
192
+ # @param link_kind [String] What the link points at: url for a destination the customer supplied, file for
193
+ #
194
+ # @param message_id [String, nil] The message the link was published in.
195
+ #
196
+ # @param occurred_at [String] When the access or lifecycle change actually happened, in UTC
197
+ #
198
+ # @param reference_key [String, nil] The caller-supplied label tying this link back to a position in the message, for
199
+ #
200
+ # @param referrer_host [String, nil] The host of the page that linked here, when the request supplied one. The host o
201
+ #
202
+ # @param request_method [String, nil] The HTTP method of the request that was served, for an access event. Omitted on
203
+ #
204
+ # @param sender_profile_id [String, nil] The sender profile that owns the link, or null when the organization owns it dir
205
+ #
206
+ # @param status_code [Integer, nil] The HTTP status Sent answered the request with: 302 for a link, 200 or
207
+ #
208
+ # @param traffic_class [String, nil] A coarse guess at what made the request: likely_human, provider (a messaging
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,168 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class Message < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ #
8
+ # @return [String, nil]
9
+ optional :id, String
10
+
11
+ # @!attribute active_contact_price
12
+ #
13
+ # @return [Float, nil]
14
+ optional :active_contact_price, Float, nil?: true
15
+
16
+ # @!attribute channel
17
+ #
18
+ # @return [String, nil]
19
+ optional :channel, String
20
+
21
+ # @!attribute contact_id
22
+ #
23
+ # @return [String, nil]
24
+ optional :contact_id, String
25
+
26
+ # @!attribute created_at
27
+ #
28
+ # @return [Time, nil]
29
+ optional :created_at, Time
30
+
31
+ # @!attribute customer_id
32
+ #
33
+ # @return [String, nil]
34
+ optional :customer_id, String
35
+
36
+ # @!attribute direction
37
+ #
38
+ # @return [String, nil]
39
+ optional :direction, String
40
+
41
+ # @!attribute events
42
+ #
43
+ # @return [Array<Sentdm::Models::MessageStatusEvent>, nil]
44
+ optional :events, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::MessageStatusEvent] }, nil?: true
45
+
46
+ # @!attribute message_body
47
+ # Structured message body format for database storage. Preserves channel-specific
48
+ # components (header, header media, body, footer, buttons, MMS subject and media).
49
+ #
50
+ # Persisted as the messageBody jsonb column on Messages. Every write path goes
51
+ # through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
52
+ # shape is stable regardless of channel or status. Anything that rebuilds this
53
+ # object field by field — the four IMessageBodyStrategy implementations and
54
+ # MessageUtils.BuildSegmentBody — has to carry every member, or that member is
55
+ # silently dropped on whichever path forgot it.
56
+ #
57
+ # @return [Sentdm::Models::MessageBody, nil]
58
+ optional :message_body, -> { Sentdm::MessageBody }, nil?: true
59
+
60
+ # @!attribute phone
61
+ #
62
+ # @return [String, nil]
63
+ optional :phone, String
64
+
65
+ # @!attribute phone_international
66
+ #
67
+ # @return [String, nil]
68
+ optional :phone_international, String
69
+
70
+ # @!attribute price
71
+ #
72
+ # @return [Float, nil]
73
+ optional :price, Float, nil?: true
74
+
75
+ # @!attribute reason
76
+ # A human-readable sentence for reason_code, for example "Insufficient balance".
77
+ # Omitted whenever reason_code is.
78
+ #
79
+ # @return [String, nil]
80
+ optional :reason, String, nil?: true
81
+
82
+ # @!attribute reason_code
83
+ # Why the message is at its current status, as a stable platform code such as
84
+ # DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
85
+ # FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
86
+ # Switch on this rather than on reason: the code is stable, the wording may be
87
+ # improved. It is the platform's classification of the outcome, never a carrier or
88
+ # vendor code.
89
+ #
90
+ # @return [String, nil]
91
+ optional :reason_code, String, nil?: true
92
+
93
+ # @!attribute region_code
94
+ #
95
+ # @return [String, nil]
96
+ optional :region_code, String
97
+
98
+ # @!attribute status
99
+ #
100
+ # @return [String, nil]
101
+ optional :status, String
102
+
103
+ # @!attribute template_category
104
+ #
105
+ # @return [String, nil]
106
+ optional :template_category, String, nil?: true
107
+
108
+ # @!attribute template_id
109
+ #
110
+ # @return [String, nil]
111
+ optional :template_id, String, nil?: true
112
+
113
+ # @!attribute template_name
114
+ #
115
+ # @return [String, nil]
116
+ optional :template_name, String, nil?: true
117
+
118
+ # @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, direction: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, reason: nil, reason_code: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
119
+ # Some parameter documentations has been truncated, see {Sentdm::Models::Message}
120
+ # for more details.
121
+ #
122
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions.
123
+ #
124
+ # The shape of a message that was sent immediately: it never has a scheduled_at
125
+ # key. A message that is or was held for a later instant is a
126
+ # ScheduledMessageResponse, and the endpoint decides which of the two to answer
127
+ # with. From always returns this type.
128
+ #
129
+ # @param id [String]
130
+ #
131
+ # @param active_contact_price [Float, nil]
132
+ #
133
+ # @param channel [String]
134
+ #
135
+ # @param contact_id [String]
136
+ #
137
+ # @param created_at [Time]
138
+ #
139
+ # @param customer_id [String]
140
+ #
141
+ # @param direction [String]
142
+ #
143
+ # @param events [Array<Sentdm::Models::MessageStatusEvent>, nil]
144
+ #
145
+ # @param message_body [Sentdm::Models::MessageBody, nil] Structured message body format for database storage.
146
+ #
147
+ # @param phone [String]
148
+ #
149
+ # @param phone_international [String]
150
+ #
151
+ # @param price [Float, nil]
152
+ #
153
+ # @param reason [String, nil] A human-readable sentence for reason_code, for example "Insufficient balance". O
154
+ #
155
+ # @param reason_code [String, nil] Why the message is at its current status, as a stable platform code such as
156
+ #
157
+ # @param region_code [String]
158
+ #
159
+ # @param status [String]
160
+ #
161
+ # @param template_category [String, nil]
162
+ #
163
+ # @param template_id [String, nil]
164
+ #
165
+ # @param template_name [String, nil]
166
+ end
167
+ end
168
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageActivities < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute activities
7
+ # List of activity events ordered by most recent first
8
+ #
9
+ # @return [Array<Sentdm::Models::MessageActivity>, nil]
10
+ optional :activities, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::MessageActivity] }
11
+
12
+ # @!attribute message_id
13
+ # The message ID these activities belong to
14
+ #
15
+ # @return [String, nil]
16
+ optional :message_id, String
17
+
18
+ # @!attribute pagination
19
+ # Pagination metadata for list responses
20
+ #
21
+ # @return [Sentdm::Models::PaginationMeta, nil]
22
+ optional :pagination, -> { Sentdm::PaginationMeta }
23
+
24
+ # @!method initialize(activities: nil, message_id: nil, pagination: nil)
25
+ # Response for GET /messages/{id}/activities
26
+ #
27
+ # @param activities [Array<Sentdm::Models::MessageActivity>] List of activity events ordered by most recent first
28
+ #
29
+ # @param message_id [String] The message ID these activities belong to
30
+ #
31
+ # @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,105 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageActivity < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute active_contact_price
7
+ # Active contact markup applied on top of the channel cost, formatted to 4 decimal
8
+ # places.
9
+ #
10
+ # @return [String, nil]
11
+ optional :active_contact_price, String, nil?: true
12
+
13
+ # @!attribute description
14
+ # Human-readable description of the activity
15
+ #
16
+ # @return [String, nil]
17
+ optional :description, String
18
+
19
+ # @!attribute from
20
+ # Sender phone number for this activity (the customer's sending number for
21
+ # outbound, the external sender for inbound). Null when not reported by the
22
+ # provider.
23
+ #
24
+ # @return [String, nil]
25
+ optional :from, String, nil?: true
26
+
27
+ # @!attribute price
28
+ # Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
29
+ # 4 decimal places.
30
+ #
31
+ # @return [String, nil]
32
+ optional :price, String, nil?: true
33
+
34
+ # @!attribute reason
35
+ # A human-readable sentence for reason_code, for example "The recipient is not
36
+ # registered on this channel" Omitted whenever reason_code is.
37
+ #
38
+ # @return [String, nil]
39
+ optional :reason, String, nil?: true
40
+
41
+ # @!attribute reason_code
42
+ # Why the message reached this status, as a stable platform code such as
43
+ # DELIVERY_007 or BUSINESS_003. Present on FAILED, FILTERED and BLOCKED
44
+ # activities; omitted on every status that needs no explanation. Switch on this
45
+ # rather than on reason: the code is stable, the wording may be improved. Same
46
+ # wire name and vocabulary as on the message and the webhook.
47
+ #
48
+ # @return [String, nil]
49
+ optional :reason_code, String, nil?: true
50
+
51
+ # @!attribute scheduled_at
52
+ # SCHEDULED and CANCELLED activities only, in UTC: on a SCHEDULED entry, when the
53
+ # held message will be released for delivery; on a CANCELLED entry, the instant
54
+ # that was called off. Same wire name as on the send response, the message and the
55
+ # webhook. Omitted on every other activity. A message that quiet hours moved at
56
+ # release has two SCHEDULED entries, each carrying the instant as it stood at that
57
+ # moment.
58
+ #
59
+ # @return [Time, nil]
60
+ optional :scheduled_at, Time, nil?: true
61
+
62
+ # @!attribute status
63
+ # Activity status. Outbound: QUEUED, PROCESSED, ROUTED, SCHEDULED, SENT,
64
+ # DELIVERED, READ, FAILED. Inbound (from contact): RECEIVED (terminal).
65
+ #
66
+ # @return [String, nil]
67
+ optional :status, String
68
+
69
+ # @!attribute timestamp
70
+ # When this activity occurred
71
+ #
72
+ # @return [Time, nil]
73
+ optional :timestamp, Time
74
+
75
+ # @!method initialize(active_contact_price: nil, description: nil, from: nil, price: nil, reason: nil, reason_code: nil, scheduled_at: nil, status: nil, timestamp: nil)
76
+ # Some parameter documentations has been truncated, see
77
+ # {Sentdm::Models::MessageActivity} for more details.
78
+ #
79
+ # A single message activity event for v3 API.
80
+ #
81
+ # The activity list mixes statuses, so unlike a message it is one shape rather
82
+ # than two: a SCHEDULED entry carries scheduled_at, and every other entry has no
83
+ # such key.
84
+ #
85
+ # @param active_contact_price [String, nil] Active contact markup applied on top of the channel cost, formatted to 4 decimal
86
+ #
87
+ # @param description [String] Human-readable description of the activity
88
+ #
89
+ # @param from [String, nil] Sender phone number for this activity (the customer's sending number for outboun
90
+ #
91
+ # @param price [String, nil] Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
92
+ #
93
+ # @param reason [String, nil] A human-readable sentence for reason_code, for example "The recipient is not reg
94
+ #
95
+ # @param reason_code [String, nil] Why the message reached this status, as a stable platform code such as
96
+ # DELIVERY\_
97
+ #
98
+ # @param scheduled_at [Time, nil] SCHEDULED and CANCELLED activities only, in UTC: on a SCHEDULED entry, when the
99
+ #
100
+ # @param status [String] Activity status. Outbound: QUEUED, PROCESSED, ROUTED, SCHEDULED, SENT, DELIVERED
101
+ #
102
+ # @param timestamp [Time] When this activity occurred
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageBody < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute buttons
7
+ #
8
+ # @return [Array<Sentdm::Models::MessageButton>, nil]
9
+ optional :buttons, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::MessageButton] }, nil?: true
10
+
11
+ # @!attribute content
12
+ #
13
+ # @return [String, nil]
14
+ optional :content, String
15
+
16
+ # @!attribute footer
17
+ #
18
+ # @return [String, nil]
19
+ optional :footer, String, nil?: true
20
+
21
+ # @!attribute header
22
+ #
23
+ # @return [String, nil]
24
+ optional :header, String, nil?: true
25
+
26
+ # @!attribute header_media
27
+ # The media asset that rode a message's header, recorded as sent.
28
+ #
29
+ # @return [Sentdm::Models::MessageHeaderMedia, nil]
30
+ optional :header_media, -> { Sentdm::MessageHeaderMedia }, api_name: :headerMedia, nil?: true
31
+
32
+ # @!attribute media
33
+ # MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
34
+ # every other channel.
35
+ #
36
+ # Persisted rather than derived because a resend and a curfew release rebuild the
37
+ # send from the stored row — MessageReplayCommandBuilder reads templateId and
38
+ # templateVariables and nothing else — so media that lives only on the original
39
+ # request would silently turn a replayed MMS into a text message.
40
+ #
41
+ # @return [Array<Sentdm::Models::MessageMedia>, nil]
42
+ optional :media, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::MessageMedia] }, nil?: true
43
+
44
+ # @!attribute subject
45
+ # MMS subject line. Null on every other channel.
46
+ #
47
+ # @return [String, nil]
48
+ optional :subject, String, nil?: true
49
+
50
+ # @!method initialize(buttons: nil, content: nil, footer: nil, header: nil, header_media: nil, media: nil, subject: nil)
51
+ # Some parameter documentations has been truncated, see
52
+ # {Sentdm::Models::MessageBody} for more details.
53
+ #
54
+ # Structured message body format for database storage. Preserves channel-specific
55
+ # components (header, header media, body, footer, buttons, MMS subject and media).
56
+ #
57
+ # Persisted as the messageBody jsonb column on Messages. Every write path goes
58
+ # through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
59
+ # shape is stable regardless of channel or status. Anything that rebuilds this
60
+ # object field by field — the four IMessageBodyStrategy implementations and
61
+ # MessageUtils.BuildSegmentBody — has to carry every member, or that member is
62
+ # silently dropped on whichever path forgot it.
63
+ #
64
+ # @param buttons [Array<Sentdm::Models::MessageButton>, nil]
65
+ #
66
+ # @param content [String]
67
+ #
68
+ # @param footer [String, nil]
69
+ #
70
+ # @param header [String, nil]
71
+ #
72
+ # @param header_media [Sentdm::Models::MessageHeaderMedia, nil] The media asset that rode a message's header, recorded as sent.
73
+ #
74
+ # @param media [Array<Sentdm::Models::MessageMedia>, nil] MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on e
75
+ #
76
+ # @param subject [String, nil] MMS subject line. Null on every other channel.
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageButton < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute postback_data
7
+ #
8
+ # @return [String, nil]
9
+ optional :postback_data, String, api_name: :postbackData, nil?: true
10
+
11
+ # @!attribute text
12
+ #
13
+ # @return [String, nil]
14
+ optional :text, String, nil?: true
15
+
16
+ # @!attribute type
17
+ #
18
+ # @return [String, nil]
19
+ optional :type, String
20
+
21
+ # @!attribute value
22
+ #
23
+ # @return [String, nil]
24
+ optional :value, String
25
+
26
+ # @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
27
+ # @param postback_data [String, nil]
28
+ # @param text [String, nil]
29
+ # @param type [String]
30
+ # @param value [String]
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Messages#cancel
6
+ class MessageCancelParams < Sentdm::Models::MutationRequest
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ # @!attribute id
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!attribute idempotency_key
16
+ #
17
+ # @return [String, nil]
18
+ optional :idempotency_key, String
19
+
20
+ # @!attribute x_profile_id
21
+ #
22
+ # @return [String, nil]
23
+ optional :x_profile_id, String
24
+
25
+ # @!method initialize(id:, idempotency_key: nil, x_profile_id: nil, request_options: {})
26
+ # @param id [String]
27
+ # @param idempotency_key [String]
28
+ # @param x_profile_id [String]
29
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
30
+ end
31
+ end
32
+ end