sentdm 0.45.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 (476) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -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_header_media.rb +31 -0
  84. data/lib/sentdm/models/message_media.rb +74 -0
  85. data/lib/sentdm/models/message_recipient.rb +46 -0
  86. data/lib/sentdm/models/message_send_params.rb +6 -90
  87. data/lib/sentdm/models/message_send_response.rb +3 -95
  88. data/lib/sentdm/models/message_send_result.rb +55 -0
  89. data/lib/sentdm/models/message_status_event.rb +54 -0
  90. data/lib/sentdm/models/mms_market.rb +48 -0
  91. data/lib/sentdm/models/number_lookup_result.rb +63 -0
  92. data/lib/sentdm/models/pagination_cursors.rb +27 -0
  93. data/lib/sentdm/models/pagination_meta.rb +3 -27
  94. data/lib/sentdm/models/profile_completion_accepted.rb +20 -0
  95. data/lib/sentdm/models/profile_completion_result.rb +31 -0
  96. data/lib/sentdm/models/profile_detail.rb +6 -408
  97. data/lib/sentdm/models/profiles/brand_campaign.rb +3 -15
  98. data/lib/sentdm/models/profiles_list.rb +26 -0
  99. data/lib/sentdm/models/sender_profile.rb +138 -0
  100. data/lib/sentdm/models/sender_profile_billing.rb +21 -0
  101. data/lib/sentdm/models/sender_profile_billing_request.rb +33 -0
  102. data/lib/sentdm/models/sender_profile_channels.rb +90 -0
  103. data/lib/sentdm/models/sender_profile_create_params.rb +116 -0
  104. data/lib/sentdm/models/sender_profile_delete_params.rb +20 -0
  105. data/lib/sentdm/models/sender_profile_list_params.rb +30 -0
  106. data/lib/sentdm/models/sender_profile_rcs.rb +209 -0
  107. data/lib/sentdm/models/sender_profile_retrieve_params.rb +20 -0
  108. data/lib/sentdm/models/sender_profile_sms.rb +106 -0
  109. data/lib/sentdm/models/sender_profile_update_params.rb +71 -0
  110. data/lib/sentdm/models/sender_profile_whatsapp.rb +61 -0
  111. data/lib/sentdm/models/sender_profiles_list.rb +26 -0
  112. data/lib/sentdm/models/tcr_brand_identity_status.rb +17 -0
  113. data/lib/sentdm/models/tcr_brand_status.rb +16 -0
  114. data/lib/sentdm/models/tcr_campaign_status.rb +16 -0
  115. data/lib/sentdm/models/template_body.rb +3 -70
  116. data/lib/sentdm/models/template_header.rb +3 -37
  117. data/lib/sentdm/models/template_header_location.rb +38 -0
  118. data/lib/sentdm/models/template_media_item.rb +34 -0
  119. data/lib/sentdm/models/template_mms_body_content.rb +49 -0
  120. data/lib/sentdm/models/template_ref.rb +51 -0
  121. data/lib/sentdm/models/template_variable.rb +3 -64
  122. data/lib/sentdm/models/template_variable_props.rb +65 -0
  123. data/lib/sentdm/models/templates_list.rb +26 -0
  124. data/lib/sentdm/models/users_list.rb +26 -0
  125. data/lib/sentdm/models/voice/call.rb +3 -54
  126. data/lib/sentdm/models/voice/call_leg.rb +58 -0
  127. data/lib/sentdm/models/webhook_create_params.rb +3 -25
  128. data/lib/sentdm/models/webhook_delivery.rb +160 -0
  129. data/lib/sentdm/models/webhook_event_types_list.rb +26 -0
  130. data/lib/sentdm/models/webhook_events_list.rb +26 -0
  131. data/lib/sentdm/models/webhook_response.rb +3 -28
  132. data/lib/sentdm/models/webhook_secret.rb +15 -0
  133. data/lib/sentdm/models/webhook_sender_profile.rb +29 -0
  134. data/lib/sentdm/models/webhook_sender_profile_config.rb +27 -0
  135. data/lib/sentdm/models/webhook_test.rb +21 -0
  136. data/lib/sentdm/models/webhook_update_params.rb +3 -25
  137. data/lib/sentdm/models/webhooks_list.rb +26 -0
  138. data/lib/sentdm/models.rb +188 -0
  139. data/lib/sentdm/resources/channels/rcs.rb +177 -0
  140. data/lib/sentdm/resources/channels/sms.rb +417 -0
  141. data/lib/sentdm/resources/channels/whatsapp.rb +106 -0
  142. data/lib/sentdm/resources/channels.rb +162 -0
  143. data/lib/sentdm/resources/compliance.rb +127 -0
  144. data/lib/sentdm/resources/conversations.rb +4 -4
  145. data/lib/sentdm/resources/me.rb +2 -2
  146. data/lib/sentdm/resources/messages.rb +71 -6
  147. data/lib/sentdm/resources/numbers.rb +2 -2
  148. data/lib/sentdm/resources/profiles.rb +4 -4
  149. data/lib/sentdm/resources/sender_profiles.rb +463 -0
  150. data/lib/sentdm/resources/users.rb +2 -2
  151. data/lib/sentdm/resources/webhooks.rb +10 -10
  152. data/lib/sentdm/version.rb +1 -1
  153. data/lib/sentdm.rb +120 -11
  154. data/rbi/sentdm/client.rbi +64 -0
  155. data/rbi/sentdm/internal/sender_profiles_page.rbi +122 -0
  156. data/rbi/sentdm/models/account.rbi +242 -0
  157. data/rbi/sentdm/models/account_channels.rbi +66 -0
  158. data/rbi/sentdm/models/account_profile.rbi +116 -0
  159. data/rbi/sentdm/models/account_rcs_channel.rbi +45 -0
  160. data/rbi/sentdm/models/account_sms_channel.rbi +45 -0
  161. data/rbi/sentdm/models/account_whatsapp_channel.rbi +58 -0
  162. data/rbi/sentdm/models/api_response_of_account.rbi +78 -0
  163. data/rbi/sentdm/models/{webhook_rotate_secret_response.rbi → api_response_of_cancelled_message.rbi} +6 -41
  164. data/rbi/sentdm/models/api_response_of_channels_state.rbi +78 -0
  165. data/rbi/sentdm/models/api_response_of_compliance_requirements.rbi +81 -0
  166. data/rbi/sentdm/models/api_response_of_contacts_list.rbi +74 -0
  167. data/rbi/sentdm/models/api_response_of_message.rbi +84 -0
  168. data/rbi/sentdm/models/api_response_of_message_activities.rbi +77 -0
  169. data/rbi/sentdm/models/{webhook_test_response.rbi → api_response_of_number_lookup_result.rbi} +9 -43
  170. data/rbi/sentdm/models/api_response_of_profile_completion_accepted.rbi +83 -0
  171. data/rbi/sentdm/models/{profile_complete_response.rbi → api_response_of_profile_completion_result.rbi} +6 -52
  172. data/rbi/sentdm/models/api_response_of_profiles_list.rbi +74 -0
  173. data/rbi/sentdm/models/api_response_of_sender_profile.rbi +90 -0
  174. data/rbi/sentdm/models/api_response_of_sender_profiles_list.rbi +77 -0
  175. data/rbi/sentdm/models/api_response_of_templates_list.rbi +74 -0
  176. data/rbi/sentdm/models/api_response_of_users_list.rbi +74 -0
  177. data/rbi/sentdm/models/api_response_of_webhook_event_types_list.rbi +79 -0
  178. data/rbi/sentdm/models/api_response_of_webhook_events_list.rbi +77 -0
  179. data/rbi/sentdm/models/api_response_of_webhook_secret.rbi +74 -0
  180. data/rbi/sentdm/models/api_response_of_webhook_test.rbi +74 -0
  181. data/rbi/sentdm/models/api_response_of_webhooks_list.rbi +74 -0
  182. data/rbi/sentdm/models/billing_contact.rbi +49 -0
  183. data/rbi/sentdm/models/brand_business.rbi +115 -0
  184. data/rbi/sentdm/models/brand_business_info.rbi +3 -49
  185. data/rbi/sentdm/models/brand_compliance.rbi +108 -0
  186. data/rbi/sentdm/models/brand_contact.rbi +78 -0
  187. data/rbi/sentdm/models/brand_with_kyc.rbi +167 -0
  188. data/rbi/sentdm/models/cancelled_message.rbi +37 -0
  189. data/rbi/sentdm/models/channel_event_payload.rbi +4 -204
  190. data/rbi/sentdm/models/channel_list_params.rbi +38 -0
  191. data/rbi/sentdm/models/channel_score.rbi +56 -0
  192. data/rbi/sentdm/models/channels/api_response_of_list_of_sms_market.rbi +76 -0
  193. data/rbi/sentdm/models/channels/api_response_of_rcs_agent.rbi +103 -0
  194. data/rbi/sentdm/models/channels/api_response_of_sms_market.rbi +93 -0
  195. data/rbi/sentdm/models/channels/api_response_of_whatsapp_channel.rbi +85 -0
  196. data/rbi/sentdm/models/channels/market_compliance.rbi +770 -0
  197. data/rbi/sentdm/models/channels/rc_create_params.rbi +397 -0
  198. data/rbi/sentdm/models/channels/rcs_address.rbi +62 -0
  199. data/rbi/sentdm/models/channels/rcs_agent.rbi +320 -0
  200. data/rbi/sentdm/models/channels/sms_create_params.rbi +291 -0
  201. data/rbi/sentdm/models/channels/sms_list_params.rbi +40 -0
  202. data/rbi/sentdm/models/channels/sms_market.rbi +247 -0
  203. data/rbi/sentdm/models/channels/sms_number.rbi +60 -0
  204. data/rbi/sentdm/models/channels/sms_number_request.rbi +48 -0
  205. data/rbi/sentdm/models/channels/sms_retrieve_params.rbi +56 -0
  206. data/rbi/sentdm/models/channels/sms_update_params.rbi +93 -0
  207. data/rbi/sentdm/models/channels/supplied_compliance.rbi +140 -0
  208. data/rbi/sentdm/models/channels/supplied_document.rbi +57 -0
  209. data/rbi/sentdm/models/channels/whatsapp_channel.rbi +172 -0
  210. data/rbi/sentdm/models/channels/whatsapp_create_params.rbi +104 -0
  211. data/rbi/sentdm/models/channels_state.rbi +151 -0
  212. data/rbi/sentdm/models/compliance_attachment_template.rbi +56 -0
  213. data/rbi/sentdm/models/compliance_requirement.rbi +149 -0
  214. data/rbi/sentdm/models/compliance_requirements.rbi +165 -0
  215. data/rbi/sentdm/models/compliance_retrieve_requirements_params.rbi +79 -0
  216. data/rbi/sentdm/models/compliance_setup_step.rbi +115 -0
  217. data/rbi/sentdm/models/contact_message_summary.rbi +4 -69
  218. data/rbi/sentdm/models/contacts_list.rbi +50 -0
  219. data/rbi/sentdm/models/conversation_messages_list.rbi +4 -669
  220. data/rbi/sentdm/models/entity_type.rbi +23 -0
  221. data/rbi/sentdm/models/inbound_media.rbi +76 -0
  222. data/rbi/sentdm/models/inbound_message_event_payload.rbi +3 -85
  223. data/rbi/sentdm/models/link_event.rbi +128 -0
  224. data/rbi/sentdm/models/link_event_payload.rbi +279 -0
  225. data/rbi/sentdm/models/message.rbi +214 -0
  226. data/rbi/sentdm/models/message_activities.rbi +63 -0
  227. data/rbi/sentdm/models/message_activity.rbi +145 -0
  228. data/rbi/sentdm/models/message_body.rbi +104 -0
  229. data/rbi/sentdm/models/message_button.rbi +52 -0
  230. data/rbi/sentdm/models/message_cancel_params.rbi +59 -0
  231. data/rbi/sentdm/models/message_channel_options.rbi +65 -0
  232. data/rbi/sentdm/models/message_header_media.rbi +44 -0
  233. data/rbi/sentdm/models/message_media.rbi +95 -0
  234. data/rbi/sentdm/models/message_recipient.rbi +70 -0
  235. data/rbi/sentdm/models/message_send_params.rbi +7 -155
  236. data/rbi/sentdm/models/message_send_response.rbi +4 -163
  237. data/rbi/sentdm/models/message_send_result.rbi +85 -0
  238. data/rbi/sentdm/models/message_status_event.rbi +70 -0
  239. data/rbi/sentdm/models/mms_market.rbi +66 -0
  240. data/rbi/sentdm/models/number_lookup_result.rbi +89 -0
  241. data/rbi/sentdm/models/pagination_cursors.rbi +42 -0
  242. data/rbi/sentdm/models/pagination_meta.rbi +4 -43
  243. data/rbi/sentdm/models/profile_completion_accepted.rbi +33 -0
  244. data/rbi/sentdm/models/profile_completion_result.rbi +43 -0
  245. data/rbi/sentdm/models/profile_detail.rbi +8 -621
  246. data/rbi/sentdm/models/profiles/brand_campaign.rbi +3 -45
  247. data/rbi/sentdm/models/profiles_list.rbi +50 -0
  248. data/rbi/sentdm/models/sender_profile.rbi +204 -0
  249. data/rbi/sentdm/models/sender_profile_billing.rbi +34 -0
  250. data/rbi/sentdm/models/sender_profile_billing_request.rbi +46 -0
  251. data/rbi/sentdm/models/sender_profile_channels.rbi +163 -0
  252. data/rbi/sentdm/models/sender_profile_create_params.rbi +190 -0
  253. data/rbi/sentdm/models/sender_profile_delete_params.rbi +35 -0
  254. data/rbi/sentdm/models/sender_profile_list_params.rbi +57 -0
  255. data/rbi/sentdm/models/sender_profile_rcs.rbi +211 -0
  256. data/rbi/sentdm/models/sender_profile_retrieve_params.rbi +35 -0
  257. data/rbi/sentdm/models/sender_profile_sms.rbi +156 -0
  258. data/rbi/sentdm/models/sender_profile_update_params.rbi +96 -0
  259. data/rbi/sentdm/models/sender_profile_whatsapp.rbi +83 -0
  260. data/rbi/sentdm/models/sender_profiles_list.rbi +54 -0
  261. data/rbi/sentdm/models/tcr_brand_identity_status.rbi +27 -0
  262. data/rbi/sentdm/models/tcr_brand_status.rbi +20 -0
  263. data/rbi/sentdm/models/tcr_campaign_status.rbi +23 -0
  264. data/rbi/sentdm/models/template_body.rbi +6 -114
  265. data/rbi/sentdm/models/template_header.rbi +4 -53
  266. data/rbi/sentdm/models/template_header_location.rbi +47 -0
  267. data/rbi/sentdm/models/template_media_item.rbi +51 -0
  268. data/rbi/sentdm/models/template_mms_body_content.rbi +73 -0
  269. data/rbi/sentdm/models/template_ref.rbi +79 -0
  270. data/rbi/sentdm/models/template_variable.rbi +4 -80
  271. data/rbi/sentdm/models/template_variable_props.rbi +81 -0
  272. data/rbi/sentdm/models/templates_list.rbi +50 -0
  273. data/rbi/sentdm/models/users_list.rbi +50 -0
  274. data/rbi/sentdm/models/voice/call.rbi +3 -86
  275. data/rbi/sentdm/models/voice/call_leg.rbi +90 -0
  276. data/rbi/sentdm/models/webhook_create_params.rbi +4 -49
  277. data/rbi/sentdm/models/webhook_delivery.rbi +211 -0
  278. data/rbi/sentdm/models/webhook_event_types_list.rbi +54 -0
  279. data/rbi/sentdm/models/webhook_events_list.rbi +52 -0
  280. data/rbi/sentdm/models/webhook_response.rbi +4 -50
  281. data/rbi/sentdm/models/webhook_secret.rbi +24 -0
  282. data/rbi/sentdm/models/webhook_sender_profile.rbi +46 -0
  283. data/rbi/sentdm/models/webhook_sender_profile_config.rbi +44 -0
  284. data/rbi/sentdm/models/webhook_test.rbi +32 -0
  285. data/rbi/sentdm/models/webhook_update_params.rbi +4 -49
  286. data/rbi/sentdm/models/webhooks_list.rbi +50 -0
  287. data/rbi/sentdm/models.rbi +197 -0
  288. data/rbi/sentdm/resources/channels/rcs.rbi +208 -0
  289. data/rbi/sentdm/resources/channels/sms.rbi +437 -0
  290. data/rbi/sentdm/resources/channels/whatsapp.rbi +108 -0
  291. data/rbi/sentdm/resources/channels.rbi +149 -0
  292. data/rbi/sentdm/resources/compliance.rbi +121 -0
  293. data/rbi/sentdm/resources/conversations.rbi +2 -10
  294. data/rbi/sentdm/resources/me.rbi +1 -1
  295. data/rbi/sentdm/resources/messages.rbi +64 -7
  296. data/rbi/sentdm/resources/numbers.rbi +1 -1
  297. data/rbi/sentdm/resources/profiles.rbi +2 -2
  298. data/rbi/sentdm/resources/sender_profiles.rbi +461 -0
  299. data/rbi/sentdm/resources/users.rbi +1 -1
  300. data/rbi/sentdm/resources/webhooks.rbi +6 -12
  301. data/sig/sentdm/client.rbs +4 -0
  302. data/sig/sentdm/internal/sender_profiles_page.rbs +80 -0
  303. data/sig/sentdm/models/account.rbs +111 -0
  304. data/sig/sentdm/models/account_channels.rbs +38 -0
  305. data/sig/sentdm/models/account_profile.rbs +68 -0
  306. data/sig/sentdm/models/account_rcs_channel.rbs +17 -0
  307. data/sig/sentdm/models/account_sms_channel.rbs +17 -0
  308. data/sig/sentdm/models/account_whatsapp_channel.rbs +28 -0
  309. data/sig/sentdm/models/api_response_of_account.rbs +39 -0
  310. data/sig/sentdm/models/api_response_of_cancelled_message.rbs +39 -0
  311. data/sig/sentdm/models/api_response_of_channels_state.rbs +39 -0
  312. data/sig/sentdm/models/api_response_of_compliance_requirements.rbs +39 -0
  313. data/sig/sentdm/models/api_response_of_contacts_list.rbs +39 -0
  314. data/sig/sentdm/models/api_response_of_message.rbs +39 -0
  315. data/sig/sentdm/models/api_response_of_message_activities.rbs +39 -0
  316. data/sig/sentdm/models/api_response_of_number_lookup_result.rbs +39 -0
  317. data/sig/sentdm/models/api_response_of_profile_completion_accepted.rbs +39 -0
  318. data/sig/sentdm/models/api_response_of_profile_completion_result.rbs +39 -0
  319. data/sig/sentdm/models/api_response_of_profiles_list.rbs +39 -0
  320. data/sig/sentdm/models/api_response_of_sender_profile.rbs +39 -0
  321. data/sig/sentdm/models/api_response_of_sender_profiles_list.rbs +39 -0
  322. data/sig/sentdm/models/api_response_of_templates_list.rbs +39 -0
  323. data/sig/sentdm/models/api_response_of_users_list.rbs +39 -0
  324. data/sig/sentdm/models/api_response_of_webhook_event_types_list.rbs +39 -0
  325. data/sig/sentdm/models/api_response_of_webhook_events_list.rbs +39 -0
  326. data/sig/sentdm/models/api_response_of_webhook_secret.rbs +39 -0
  327. data/sig/sentdm/models/api_response_of_webhook_test.rbs +39 -0
  328. data/sig/sentdm/models/api_response_of_webhooks_list.rbs +39 -0
  329. data/sig/sentdm/models/billing_contact.rbs +30 -0
  330. data/sig/sentdm/models/brand_business.rbs +70 -0
  331. data/sig/sentdm/models/brand_business_info.rbs +4 -23
  332. data/sig/sentdm/models/brand_compliance.rbs +56 -0
  333. data/sig/sentdm/models/brand_contact.rbs +47 -0
  334. data/sig/sentdm/models/brand_with_kyc.rbs +93 -0
  335. data/sig/sentdm/models/cancelled_message.rbs +15 -0
  336. data/sig/sentdm/models/channel_event_payload.rbs +4 -56
  337. data/sig/sentdm/models/channel_list_params.rbs +25 -0
  338. data/sig/sentdm/models/channel_score.rbs +32 -0
  339. data/sig/sentdm/models/channels/api_response_of_list_of_sms_market.rbs +41 -0
  340. data/sig/sentdm/models/channels/api_response_of_rcs_agent.rbs +41 -0
  341. data/sig/sentdm/models/channels/api_response_of_sms_market.rbs +41 -0
  342. data/sig/sentdm/models/channels/api_response_of_whatsapp_channel.rbs +43 -0
  343. data/sig/sentdm/models/channels/market_compliance.rbs +338 -0
  344. data/sig/sentdm/models/channels/rc_create_params.rbs +242 -0
  345. data/sig/sentdm/models/channels/rcs_address.rbs +42 -0
  346. data/sig/sentdm/models/channels/rcs_agent.rbs +181 -0
  347. data/sig/sentdm/models/channels/sms_create_params.rbs +116 -0
  348. data/sig/sentdm/models/channels/sms_list_params.rbs +27 -0
  349. data/sig/sentdm/models/channels/sms_market.rbs +85 -0
  350. data/sig/sentdm/models/channels/sms_number.rbs +28 -0
  351. data/sig/sentdm/models/channels/sms_number_request.rbs +17 -0
  352. data/sig/sentdm/models/channels/sms_retrieve_params.rbs +36 -0
  353. data/sig/sentdm/models/channels/sms_update_params.rbs +63 -0
  354. data/sig/sentdm/models/channels/supplied_compliance.rbs +32 -0
  355. data/sig/sentdm/models/channels/supplied_document.rbs +30 -0
  356. data/sig/sentdm/models/channels/whatsapp_channel.rbs +78 -0
  357. data/sig/sentdm/models/channels/whatsapp_create_params.rbs +56 -0
  358. data/sig/sentdm/models/channels_state.rbs +55 -0
  359. data/sig/sentdm/models/compliance_attachment_template.rbs +26 -0
  360. data/sig/sentdm/models/compliance_requirement.rbs +76 -0
  361. data/sig/sentdm/models/compliance_requirements.rbs +66 -0
  362. data/sig/sentdm/models/compliance_retrieve_requirements_params.rbs +43 -0
  363. data/sig/sentdm/models/compliance_setup_step.rbs +62 -0
  364. data/sig/sentdm/models/contact_message_summary.rbs +6 -35
  365. data/sig/sentdm/models/contacts_list.rbs +31 -0
  366. data/sig/sentdm/models/conversation_messages_list.rbs +5 -312
  367. data/sig/sentdm/models/entity_type.rbs +22 -0
  368. data/sig/sentdm/models/inbound_media.rbs +35 -0
  369. data/sig/sentdm/models/inbound_message_event_payload.rbs +4 -36
  370. data/sig/sentdm/models/link_event.rbs +44 -0
  371. data/sig/sentdm/models/link_event_payload.rbs +106 -0
  372. data/sig/sentdm/models/message.rbs +130 -0
  373. data/sig/sentdm/models/message_activities.rbs +38 -0
  374. data/sig/sentdm/models/message_activity.rbs +66 -0
  375. data/sig/sentdm/models/message_body.rbs +52 -0
  376. data/sig/sentdm/models/message_button.rbs +34 -0
  377. data/sig/sentdm/models/message_cancel_params.rbs +38 -0
  378. data/sig/sentdm/models/message_channel_options.rbs +26 -0
  379. data/sig/sentdm/models/message_header_media.rbs +19 -0
  380. data/sig/sentdm/models/message_media.rbs +40 -0
  381. data/sig/sentdm/models/message_recipient.rbs +34 -0
  382. data/sig/sentdm/models/message_send_params.rbs +8 -54
  383. data/sig/sentdm/models/message_send_response.rbs +4 -77
  384. data/sig/sentdm/models/message_send_result.rbs +45 -0
  385. data/sig/sentdm/models/message_status_event.rbs +40 -0
  386. data/sig/sentdm/models/mms_market.rbs +35 -0
  387. data/sig/sentdm/models/number_lookup_result.rbs +64 -0
  388. data/sig/sentdm/models/pagination_cursors.rbs +15 -0
  389. data/sig/sentdm/models/pagination_meta.rbs +4 -16
  390. data/sig/sentdm/models/profile_completion_accepted.rbs +15 -0
  391. data/sig/sentdm/models/profile_completion_result.rbs +19 -0
  392. data/sig/sentdm/models/profile_detail.rbs +8 -315
  393. data/sig/sentdm/models/profiles/brand_campaign.rbs +4 -16
  394. data/sig/sentdm/models/profiles_list.rbs +31 -0
  395. data/sig/sentdm/models/sender_profile.rbs +76 -0
  396. data/sig/sentdm/models/sender_profile_billing.rbs +15 -0
  397. data/sig/sentdm/models/sender_profile_billing_request.rbs +15 -0
  398. data/sig/sentdm/models/sender_profile_channels.rbs +30 -0
  399. data/sig/sentdm/models/sender_profile_create_params.rbs +78 -0
  400. data/sig/sentdm/models/sender_profile_delete_params.rbs +20 -0
  401. data/sig/sentdm/models/sender_profile_list_params.rbs +32 -0
  402. data/sig/sentdm/models/sender_profile_rcs.rbs +150 -0
  403. data/sig/sentdm/models/sender_profile_retrieve_params.rbs +20 -0
  404. data/sig/sentdm/models/sender_profile_sms.rbs +40 -0
  405. data/sig/sentdm/models/sender_profile_update_params.rbs +62 -0
  406. data/sig/sentdm/models/sender_profile_whatsapp.rbs +16 -0
  407. data/sig/sentdm/models/sender_profiles_list.rbs +31 -0
  408. data/sig/sentdm/models/tcr_brand_identity_status.rbs +17 -0
  409. data/sig/sentdm/models/tcr_brand_status.rbs +15 -0
  410. data/sig/sentdm/models/tcr_campaign_status.rbs +15 -0
  411. data/sig/sentdm/models/template_body.rbs +4 -43
  412. data/sig/sentdm/models/template_header.rbs +4 -31
  413. data/sig/sentdm/models/template_header_location.rbs +30 -0
  414. data/sig/sentdm/models/template_media_item.rbs +17 -0
  415. data/sig/sentdm/models/template_mms_body_content.rbs +28 -0
  416. data/sig/sentdm/models/template_ref.rbs +26 -0
  417. data/sig/sentdm/models/template_variable.rbs +4 -51
  418. data/sig/sentdm/models/template_variable_props.rbs +50 -0
  419. data/sig/sentdm/models/templates_list.rbs +29 -0
  420. data/sig/sentdm/models/users_list.rbs +31 -0
  421. data/sig/sentdm/models/voice/call.rbs +4 -49
  422. data/sig/sentdm/models/voice/call_leg.rbs +50 -0
  423. data/sig/sentdm/models/webhook_create_params.rbs +4 -28
  424. data/sig/sentdm/models/webhook_delivery.rbs +99 -0
  425. data/sig/sentdm/models/webhook_event_types_list.rbs +31 -0
  426. data/sig/sentdm/models/webhook_events_list.rbs +31 -0
  427. data/sig/sentdm/models/webhook_response.rbs +4 -28
  428. data/sig/sentdm/models/webhook_secret.rbs +15 -0
  429. data/sig/sentdm/models/webhook_sender_profile.rbs +27 -0
  430. data/sig/sentdm/models/webhook_sender_profile_config.rbs +27 -0
  431. data/sig/sentdm/models/webhook_test.rbs +19 -0
  432. data/sig/sentdm/models/webhook_update_params.rbs +4 -28
  433. data/sig/sentdm/models/webhooks_list.rbs +31 -0
  434. data/sig/sentdm/models.rbs +188 -0
  435. data/sig/sentdm/resources/channels/rcs.rbs +41 -0
  436. data/sig/sentdm/resources/channels/sms.rbs +44 -0
  437. data/sig/sentdm/resources/channels/whatsapp.rbs +18 -0
  438. data/sig/sentdm/resources/channels.rbs +11 -0
  439. data/sig/sentdm/resources/compliance.rbs +15 -0
  440. data/sig/sentdm/resources/conversations.rbs +2 -2
  441. data/sig/sentdm/resources/me.rbs +1 -1
  442. data/sig/sentdm/resources/messages.rbs +12 -4
  443. data/sig/sentdm/resources/numbers.rbs +1 -1
  444. data/sig/sentdm/resources/profiles.rbs +2 -2
  445. data/sig/sentdm/resources/sender_profiles.rbs +44 -0
  446. data/sig/sentdm/resources/users.rbs +1 -1
  447. data/sig/sentdm/resources/webhooks.rbs +6 -6
  448. metadata +362 -35
  449. data/lib/sentdm/models/me_retrieve_response.rb +0 -409
  450. data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
  451. data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
  452. data/lib/sentdm/models/number_lookup_response.rb +0 -104
  453. data/lib/sentdm/models/profile_complete_response.rb +0 -74
  454. data/lib/sentdm/models/profile_list_response.rb +0 -65
  455. data/lib/sentdm/models/user_list_response.rb +0 -65
  456. data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
  457. data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
  458. data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
  459. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
  460. data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
  461. data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
  462. data/rbi/sentdm/models/profile_list_response.rbi +0 -128
  463. data/rbi/sentdm/models/user_list_response.rbi +0 -128
  464. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
  465. data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
  466. data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
  467. data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
  468. data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
  469. data/sig/sentdm/models/number_lookup_response.rbs +0 -100
  470. data/sig/sentdm/models/profile_complete_response.rbs +0 -55
  471. data/sig/sentdm/models/profile_list_response.rbs +0 -67
  472. data/sig/sentdm/models/user_list_response.rbs +0 -67
  473. data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
  474. data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
  475. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
  476. data/sig/sentdm/models/webhook_test_response.rbs +0 -55
@@ -6,8 +6,8 @@ module Sentdm
6
6
  # @!attribute messages
7
7
  # The messages on this page.
8
8
  #
9
- # @return [Array<Sentdm::Models::ConversationMessagesList::Message>, nil]
10
- optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message] }
9
+ # @return [Array<Sentdm::Models::Message>, nil]
10
+ optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Message] }
11
11
 
12
12
  # @!attribute pagination
13
13
  # Pagination metadata for list responses
@@ -18,436 +18,9 @@ module Sentdm
18
18
  # @!method initialize(messages: nil, pagination: nil)
19
19
  # A paginated list of messages — used by both conversation read endpoints.
20
20
  #
21
- # @param messages [Array<Sentdm::Models::ConversationMessagesList::Message>] The messages on this page.
21
+ # @param messages [Array<Sentdm::Models::Message>] The messages on this page.
22
22
  #
23
23
  # @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
24
-
25
- class Message < Sentdm::Internal::Type::BaseModel
26
- # @!attribute id
27
- #
28
- # @return [String, nil]
29
- optional :id, String
30
-
31
- # @!attribute active_contact_price
32
- #
33
- # @return [Float, nil]
34
- optional :active_contact_price, Float, nil?: true
35
-
36
- # @!attribute channel
37
- #
38
- # @return [String, nil]
39
- optional :channel, String
40
-
41
- # @!attribute contact_id
42
- #
43
- # @return [String, nil]
44
- optional :contact_id, String
45
-
46
- # @!attribute created_at
47
- #
48
- # @return [Time, nil]
49
- optional :created_at, Time
50
-
51
- # @!attribute customer_id
52
- #
53
- # @return [String, nil]
54
- optional :customer_id, String
55
-
56
- # @!attribute direction
57
- #
58
- # @return [String, nil]
59
- optional :direction, String
60
-
61
- # @!attribute events
62
- #
63
- # @return [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
64
- optional :events,
65
- -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::Event] },
66
- nil?: true
67
-
68
- # @!attribute message_body
69
- # Structured message body format for database storage. Preserves channel-specific
70
- # components (header, header media, body, footer, buttons, MMS subject and media).
71
- #
72
- # Persisted as the messageBody jsonb column on Messages. Every write path goes
73
- # through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
74
- # shape is stable regardless of channel or status. Anything that rebuilds this
75
- # object field by field — the four IMessageBodyStrategy implementations and
76
- # MessageUtils.BuildSegmentBody — has to carry every member, or that member is
77
- # silently dropped on whichever path forgot it.
78
- #
79
- # @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil]
80
- optional :message_body, -> { Sentdm::ConversationMessagesList::Message::MessageBody }, nil?: true
81
-
82
- # @!attribute phone
83
- #
84
- # @return [String, nil]
85
- optional :phone, String
86
-
87
- # @!attribute phone_international
88
- #
89
- # @return [String, nil]
90
- optional :phone_international, String
91
-
92
- # @!attribute price
93
- #
94
- # @return [Float, nil]
95
- optional :price, Float, nil?: true
96
-
97
- # @!attribute reason
98
- # A human-readable sentence for reason_code, for example "Insufficient balance".
99
- # Omitted whenever reason_code is.
100
- #
101
- # @return [String, nil]
102
- optional :reason, String, nil?: true
103
-
104
- # @!attribute reason_code
105
- # Why the message is at its current status, as a stable platform code such as
106
- # DELIVERY_007, BUSINESS_003 or DELIVERY_003. Present when the current status is
107
- # FAILED, FILTERED or BLOCKED and the lifecycle was loaded; omitted otherwise.
108
- # Switch on this rather than on reason: the code is stable, the wording may be
109
- # improved. It is the platform's classification of the outcome, never a carrier or
110
- # vendor code.
111
- #
112
- # @return [String, nil]
113
- optional :reason_code, String, nil?: true
114
-
115
- # @!attribute region_code
116
- #
117
- # @return [String, nil]
118
- optional :region_code, String
119
-
120
- # @!attribute status
121
- #
122
- # @return [String, nil]
123
- optional :status, String
124
-
125
- # @!attribute template_category
126
- #
127
- # @return [String, nil]
128
- optional :template_category, String, nil?: true
129
-
130
- # @!attribute template_id
131
- #
132
- # @return [String, nil]
133
- optional :template_id, String, nil?: true
134
-
135
- # @!attribute template_name
136
- #
137
- # @return [String, nil]
138
- optional :template_name, String, nil?: true
139
-
140
- # @!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)
141
- # Some parameter documentations has been truncated, see
142
- # {Sentdm::Models::ConversationMessagesList::Message} for more details.
143
- #
144
- # Message response for v3 API — same shape as v2 with snake_case JSON conventions.
145
- #
146
- # The shape of a message that was sent immediately: it never has a scheduled_at
147
- # key. A message that is or was held for a later instant is a
148
- # ScheduledMessageResponse, and the endpoint decides which of the two to answer
149
- # with. From always returns this type.
150
- #
151
- # @param id [String]
152
- #
153
- # @param active_contact_price [Float, nil]
154
- #
155
- # @param channel [String]
156
- #
157
- # @param contact_id [String]
158
- #
159
- # @param created_at [Time]
160
- #
161
- # @param customer_id [String]
162
- #
163
- # @param direction [String]
164
- #
165
- # @param events [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
166
- #
167
- # @param message_body [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil] Structured message body format for database storage.
168
- #
169
- # @param phone [String]
170
- #
171
- # @param phone_international [String]
172
- #
173
- # @param price [Float, nil]
174
- #
175
- # @param reason [String, nil] A human-readable sentence for reason_code, for example "Insufficient balance". O
176
- #
177
- # @param reason_code [String, nil] Why the message is at its current status, as a stable platform code such as
178
- #
179
- # @param region_code [String]
180
- #
181
- # @param status [String]
182
- #
183
- # @param template_category [String, nil]
184
- #
185
- # @param template_id [String, nil]
186
- #
187
- # @param template_name [String, nil]
188
-
189
- class Event < Sentdm::Internal::Type::BaseModel
190
- # @!attribute status
191
- #
192
- # @return [String]
193
- required :status, String
194
-
195
- # @!attribute timestamp
196
- #
197
- # @return [Time]
198
- required :timestamp, Time
199
-
200
- # @!attribute description
201
- #
202
- # @return [String, nil]
203
- optional :description, String, nil?: true
204
-
205
- # @!attribute reason
206
- # A human-readable sentence for reason_code. Omitted whenever reason_code is.
207
- #
208
- # @return [String, nil]
209
- optional :reason, String, nil?: true
210
-
211
- # @!attribute reason_code
212
- # Why the message reached this status, as a stable platform code such as
213
- # DELIVERY_007. Present on FAILED, FILTERED and BLOCKED events; omitted on every
214
- # status that needs no explanation. Same wire name and vocabulary as on the
215
- # activities list and the webhook.
216
- #
217
- # @return [String, nil]
218
- optional :reason_code, String, nil?: true
219
-
220
- # @!method initialize(status:, timestamp:, description: nil, reason: nil, reason_code: nil)
221
- # Some parameter documentations has been truncated, see
222
- # {Sentdm::Models::ConversationMessagesList::Message::Event} for more details.
223
- #
224
- # Represents a status change event in a message's lifecycle (v3)
225
- #
226
- # @param status [String]
227
- #
228
- # @param timestamp [Time]
229
- #
230
- # @param description [String, nil]
231
- #
232
- # @param reason [String, nil] A human-readable sentence for reason_code. Omitted whenever reason_code is.
233
- #
234
- # @param reason_code [String, nil] Why the message reached this status, as a stable platform code such as
235
- # DELIVERY\_
236
- end
237
-
238
- # @see Sentdm::Models::ConversationMessagesList::Message#message_body
239
- class MessageBody < Sentdm::Internal::Type::BaseModel
240
- # @!attribute buttons
241
- #
242
- # @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
243
- optional :buttons,
244
- -> {
245
- Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Button]
246
- },
247
- nil?: true
248
-
249
- # @!attribute content
250
- #
251
- # @return [String, nil]
252
- optional :content, String
253
-
254
- # @!attribute footer
255
- #
256
- # @return [String, nil]
257
- optional :footer, String, nil?: true
258
-
259
- # @!attribute header
260
- #
261
- # @return [String, nil]
262
- optional :header, String, nil?: true
263
-
264
- # @!attribute header_media
265
- # The media asset that rode a message's header, recorded as sent.
266
- #
267
- # @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia, nil]
268
- optional :header_media,
269
- -> { Sentdm::ConversationMessagesList::Message::MessageBody::HeaderMedia },
270
- api_name: :headerMedia,
271
- nil?: true
272
-
273
- # @!attribute media
274
- # MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on
275
- # every other channel.
276
- #
277
- # Persisted rather than derived because a resend and a curfew release rebuild the
278
- # send from the stored row — MessageReplayCommandBuilder reads templateId and
279
- # templateVariables and nothing else — so media that lives only on the original
280
- # request would silently turn a replayed MMS into a text message.
281
- #
282
- # @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media>, nil]
283
- optional :media,
284
- -> {
285
- Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Media]
286
- },
287
- nil?: true
288
-
289
- # @!attribute subject
290
- # MMS subject line. Null on every other channel.
291
- #
292
- # @return [String, nil]
293
- optional :subject, String, nil?: true
294
-
295
- # @!method initialize(buttons: nil, content: nil, footer: nil, header: nil, header_media: nil, media: nil, subject: nil)
296
- # Some parameter documentations has been truncated, see
297
- # {Sentdm::Models::ConversationMessagesList::Message::MessageBody} for more
298
- # details.
299
- #
300
- # Structured message body format for database storage. Preserves channel-specific
301
- # components (header, header media, body, footer, buttons, MMS subject and media).
302
- #
303
- # Persisted as the messageBody jsonb column on Messages. Every write path goes
304
- # through MessageUtils.MessageBodyJsonOptions, which writes nulls, so the envelope
305
- # shape is stable regardless of channel or status. Anything that rebuilds this
306
- # object field by field — the four IMessageBodyStrategy implementations and
307
- # MessageUtils.BuildSegmentBody — has to carry every member, or that member is
308
- # silently dropped on whichever path forgot it.
309
- #
310
- # @param buttons [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
311
- #
312
- # @param content [String]
313
- #
314
- # @param footer [String, nil]
315
- #
316
- # @param header [String, nil]
317
- #
318
- # @param header_media [Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia, nil] The media asset that rode a message's header, recorded as sent.
319
- #
320
- # @param media [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media>, nil] MMS attachments, as the publicly fetchable URLs handed to the carrier. Null on e
321
- #
322
- # @param subject [String, nil] MMS subject line. Null on every other channel.
323
-
324
- class Button < Sentdm::Internal::Type::BaseModel
325
- # @!attribute postback_data
326
- #
327
- # @return [String, nil]
328
- optional :postback_data, String, api_name: :postbackData, nil?: true
329
-
330
- # @!attribute text
331
- #
332
- # @return [String, nil]
333
- optional :text, String, nil?: true
334
-
335
- # @!attribute type
336
- #
337
- # @return [String, nil]
338
- optional :type, String
339
-
340
- # @!attribute value
341
- #
342
- # @return [String, nil]
343
- optional :value, String
344
-
345
- # @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
346
- # @param postback_data [String, nil]
347
- # @param text [String, nil]
348
- # @param type [String]
349
- # @param value [String]
350
- end
351
-
352
- # @see Sentdm::Models::ConversationMessagesList::Message::MessageBody#header_media
353
- class HeaderMedia < Sentdm::Internal::Type::BaseModel
354
- # @!attribute type
355
- # "image", "video" or "document" — taken from the header's media variable.
356
- #
357
- # @return [String, nil]
358
- optional :type, String
359
-
360
- # @!attribute url
361
- # The https URL the caller supplied for this send. Never the template's stored
362
- # props.sample, which is Meta's expiring header_handle rather than what was
363
- # delivered.
364
- #
365
- # @return [String, nil]
366
- optional :url, String
367
-
368
- # @!method initialize(type: nil, url: nil)
369
- # Some parameter documentations has been truncated, see
370
- # {Sentdm::Models::ConversationMessagesList::Message::MessageBody::HeaderMedia}
371
- # for more details.
372
- #
373
- # The media asset that rode a message's header, recorded as sent.
374
- #
375
- # @param type [String] "image", "video" or "document" — taken from the header's media variable.
376
- #
377
- # @param url [String] The https URL the caller supplied for this send. Never the template's stored
378
- end
379
-
380
- class Media < Sentdm::Internal::Type::BaseModel
381
- # @!attribute media_type
382
- # One of MmsMediaTypes when the content type is known. Advisory — a reader should
383
- # trust the fetched object's own Content-Type.
384
- #
385
- # @return [String, nil]
386
- optional :media_type, String, api_name: :mediaType, nil?: true
387
-
388
- # @!attribute mime_type
389
- # Content type as the provider declared it. Null when it declared none.
390
- #
391
- # @return [String, nil]
392
- optional :mime_type, String, api_name: :mimeType, nil?: true
393
-
394
- # @!attribute size_bytes
395
- # Size as the provider declared it. Never measured here — nothing downloads the
396
- # file.
397
- #
398
- # @return [Integer, nil]
399
- optional :size_bytes, Integer, api_name: :sizeBytes, nil?: true
400
-
401
- # @!attribute source_hash_sha256
402
- # Inbound only: the SHA-256 the provider declared alongside the attachment, when
403
- # it declared one. Relayed to the customer so they can verify what they fetch
404
- # matches what the carrier said it sent. It is the only integrity signal available
405
- # on an attachment nobody here has read.
406
- #
407
- # @return [String, nil]
408
- optional :source_hash_sha256, String, api_name: :sourceHashSha256, nil?: true
409
-
410
- # @!attribute url
411
- # Where the file lives. Outbound: the URL the customer gave us and the carrier
412
- # fetched. Inbound: the URL the carrier hosts it at, relayed unchanged.
413
- #
414
- # @return [String, nil]
415
- optional :url, String, nil?: true
416
-
417
- # @!method initialize(media_type: nil, mime_type: nil, size_bytes: nil, source_hash_sha256: nil, url: nil)
418
- # Some parameter documentations has been truncated, see
419
- # {Sentdm::Models::ConversationMessagesList::Message::MessageBody::Media} for more
420
- # details.
421
- #
422
- # One attachment on a message, in either direction — and in both, a URL somebody
423
- # else hosts.
424
- #
425
- # Outbound: the customer supplied a public URL and we handed it to the carrier.
426
- # Inbound: the carrier hosts the file and we record where. sent.dm never holds the
427
- # bytes, so there is no key, no expiry bookkeeping and nothing minted per read —
428
- # what is stored is what is served.
429
- #
430
- # An inbound link expires on the carrier's own schedule and is unauthenticated.
431
- # That is the customer's to manage, and it is documented where they will see it
432
- # rather than only here — a recipient who needs an attachment to outlive that
433
- # window copies it on receipt.
434
- #
435
- # Storing a presigned URL is the specific mistake this shape still avoids:
436
- # M260826130000 and M260826140000 exist because RCS assets were stored as signed
437
- # URLs and went stale. Nothing here is signed.
438
- #
439
- # @param media_type [String, nil] One of MmsMediaTypes when the content type is known. Advisory — a reader should
440
- #
441
- # @param mime_type [String, nil] Content type as the provider declared it. Null when it declared none.
442
- #
443
- # @param size_bytes [Integer, nil] Size as the provider declared it. Never measured here — nothing downloads the fi
444
- #
445
- # @param source_hash_sha256 [String, nil] Inbound only: the SHA-256 the provider declared alongside the attachment, when i
446
- #
447
- # @param url [String, nil] Where the file lives. Outbound: the URL the customer gave us and the carrier fet
448
- end
449
- end
450
- end
451
24
  end
452
25
  end
453
26
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module EntityType
6
+ extend Sentdm::Internal::Type::Enum
7
+
8
+ PRIVATE_PROFIT = :PRIVATE_PROFIT
9
+ PUBLIC_PROFIT = :PUBLIC_PROFIT
10
+ NON_PROFIT = :NON_PROFIT
11
+ SOLE_PROPRIETOR = :SOLE_PROPRIETOR
12
+ GOVERNMENT = :GOVERNMENT
13
+
14
+ # @!method self.values
15
+ # @return [Array<Symbol>]
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMedia < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute hash_sha256
7
+ # SHA-256 of the file as the carrier declared it, when it declares one. Verify
8
+ # what you download against this — sent.dm never reads the bytes, so it is the
9
+ # only integrity signal available.
10
+ #
11
+ # @return [String, nil]
12
+ optional :hash_sha256, String, nil?: true
13
+
14
+ # @!attribute mime_type
15
+ # Content type as the carrier reported it, for example image/jpeg.
16
+ #
17
+ # @return [String, nil]
18
+ optional :mime_type, String, nil?: true
19
+
20
+ # @!attribute size_bytes
21
+ # Size in bytes as the carrier declared it. Absent when it declared none.
22
+ #
23
+ # @return [Integer, nil]
24
+ optional :size_bytes, Integer, nil?: true
25
+
26
+ # @!attribute url
27
+ # Where the carrier hosts the attachment.
28
+ #
29
+ # This link expires and is not authenticated. sent.dm relays it rather than
30
+ # copying the file, so how long it stays fetchable is the carrier's decision and
31
+ # differs between them — assume days, not months. Anyone holding the URL can fetch
32
+ # it until it lapses. Copy the file on receipt if you need it to outlive that
33
+ # window; do not store this URL as a permanent reference.
34
+ #
35
+ # @return [String, nil]
36
+ optional :url, String, nil?: true
37
+
38
+ # @!method initialize(hash_sha256: nil, mime_type: nil, size_bytes: nil, url: nil)
39
+ # Some parameter documentations has been truncated, see
40
+ # {Sentdm::Models::InboundMedia} for more details.
41
+ #
42
+ # One attachment on an inbound message.
43
+ #
44
+ # @param hash_sha256 [String, nil] SHA-256 of the file as the carrier declared it, when it declares one. Verify wha
45
+ #
46
+ # @param mime_type [String, nil] Content type as the carrier reported it, for example image/jpeg.
47
+ #
48
+ # @param size_bytes [Integer, nil] Size in bytes as the carrier declared it. Absent when it declared none.
49
+ #
50
+ # @param url [String, nil] Where the carrier hosts the attachment.
51
+ end
52
+ end
53
+ end
@@ -39,10 +39,8 @@ module Sentdm
39
39
  # lapses the entry remains with whatever the carrier declared about the file but
40
40
  # the file is no longer reachable.
41
41
  #
42
- # @return [Array<Sentdm::Models::InboundMessageEventPayload::Media>, nil]
43
- optional :media,
44
- -> { Sentdm::Internal::Type::ArrayOf[Sentdm::InboundMessageEventPayload::Media] },
45
- nil?: true
42
+ # @return [Array<Sentdm::Models::InboundMedia>, nil]
43
+ optional :media, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::InboundMedia] }, nil?: true
46
44
 
47
45
  # @!attribute message_id
48
46
  # The inbound message.
@@ -100,7 +98,7 @@ module Sentdm
100
98
  #
101
99
  # @param channel [String] The channel the message arrived on, for example sms or mms.
102
100
  #
103
- # @param media [Array<Sentdm::Models::InboundMessageEventPayload::Media>, nil] Attachments the contact sent, present only on channels that carry them (mms toda
101
+ # @param media [Array<Sentdm::Models::InboundMedia>, nil] Attachments the contact sent, present only on channels that carry them (mms toda
104
102
  #
105
103
  # @param message_id [String] The inbound message.
106
104
  #
@@ -111,54 +109,6 @@ module Sentdm
111
109
  # @param text [String, nil] The message body. Sent as null when the inbound message carried no text, for
112
110
  #
113
111
  # @param updated_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
114
-
115
- class Media < Sentdm::Internal::Type::BaseModel
116
- # @!attribute hash_sha256
117
- # SHA-256 of the file as the carrier declared it, when it declares one. Verify
118
- # what you download against this — sent.dm never reads the bytes, so it is the
119
- # only integrity signal available.
120
- #
121
- # @return [String, nil]
122
- optional :hash_sha256, String, nil?: true
123
-
124
- # @!attribute mime_type
125
- # Content type as the carrier reported it, for example image/jpeg.
126
- #
127
- # @return [String, nil]
128
- optional :mime_type, String, nil?: true
129
-
130
- # @!attribute size_bytes
131
- # Size in bytes as the carrier declared it. Absent when it declared none.
132
- #
133
- # @return [Integer, nil]
134
- optional :size_bytes, Integer, nil?: true
135
-
136
- # @!attribute url
137
- # Where the carrier hosts the attachment.
138
- #
139
- # This link expires and is not authenticated. sent.dm relays it rather than
140
- # copying the file, so how long it stays fetchable is the carrier's decision and
141
- # differs between them — assume days, not months. Anyone holding the URL can fetch
142
- # it until it lapses. Copy the file on receipt if you need it to outlive that
143
- # window; do not store this URL as a permanent reference.
144
- #
145
- # @return [String, nil]
146
- optional :url, String, nil?: true
147
-
148
- # @!method initialize(hash_sha256: nil, mime_type: nil, size_bytes: nil, url: nil)
149
- # Some parameter documentations has been truncated, see
150
- # {Sentdm::Models::InboundMessageEventPayload::Media} for more details.
151
- #
152
- # One attachment on an inbound message.
153
- #
154
- # @param hash_sha256 [String, nil] SHA-256 of the file as the carrier declared it, when it declares one. Verify wha
155
- #
156
- # @param mime_type [String, nil] Content type as the carrier reported it, for example image/jpeg.
157
- #
158
- # @param size_bytes [Integer, nil] Size in bytes as the carrier declared it. Absent when it declared none.
159
- #
160
- # @param url [String, nil] Where the carrier hosts the attachment.
161
- end
162
112
  end
163
113
  end
164
114
  end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class LinkEvent < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute event
7
+ # The specific event within the family, for example message.delivered,
8
+ # message.received or contact.opt_out. Absent on events that have no subtype, so
9
+ # treat it as optional.
10
+ #
11
+ # @return [String, nil]
12
+ optional :event, String, nil?: true
13
+
14
+ # @!attribute field
15
+ # The event family, for example message, templates or contact. Route on this
16
+ # first, then on event for the specific change.
17
+ #
18
+ # @return [String, nil]
19
+ optional :field, String
20
+
21
+ # @!attribute payload
22
+ # Body of a link event: something happened to a tracked link Sent published on the
23
+ # customer's behalf. A link points either at a URL the customer supplied or at a
24
+ # file Sent hosts for them; LinkKind says which. Delivered when an eligible
25
+ # request is served, or when a published link reaches the end of its life.
26
+ #
27
+ # A click is a request, not a read receipt. link.clicked means the redirect was
28
+ # served; link.downloaded means bytes went out. Neither proves a person saw
29
+ # anything — messaging providers and link scanners fetch URLs on their own, which
30
+ # is what TrafficClass exists to tell apart. Filter on it before reporting a
31
+ # click-through rate; treat likely_human as a hint, never as delivery
32
+ # confirmation.
33
+ #
34
+ # RecordId identifies the link; the X-Webhook-Event-ID header identifies the
35
+ # delivery. One link is hit many times, so those are the two keys a subscriber
36
+ # needs: group by the first, deduplicate on the second — exactly as on every other
37
+ # family. The payload carries no event identifier of its own, for the same reason
38
+ # none of the others do.
39
+ #
40
+ # Nothing here identifies the visitor. No IP address and no visitor token crosses
41
+ # this boundary. Country, Device and Browser are coarse buckets derived at the
42
+ # edge and are absent whenever the request did not supply enough to derive them.
43
+ #
44
+ # @return [Sentdm::Models::LinkEventPayload, nil]
45
+ optional :payload, -> { Sentdm::LinkEventPayload }, nil?: true
46
+
47
+ # @!attribute request_id
48
+ # The event-specific body.
49
+ #
50
+ # @return [String, nil]
51
+ optional :request_id, String, nil?: true
52
+
53
+ # @!attribute timestamp
54
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
55
+ # time, not the time the underlying change happened. Use the timestamp inside the
56
+ # payload for the latter.
57
+ #
58
+ # @return [String, nil]
59
+ optional :timestamp, String
60
+
61
+ # @!method initialize(event: nil, field: nil, payload: nil, request_id: nil, timestamp: nil)
62
+ # Some parameter documentations has been truncated, see
63
+ # {Sentdm::Models::LinkEvent} for more details.
64
+ #
65
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
66
+ # this shape and varies only in Payload.
67
+ #
68
+ # @param event [String, nil] The specific event within the family, for example message.delivered,
69
+ #
70
+ # @param field [String] The event family, for example message, templates or contact. Route on
71
+ #
72
+ # @param payload [Sentdm::Models::LinkEventPayload, nil] Body of a link event: something happened to a tracked link Sent published on the
73
+ #
74
+ # @param request_id [String, nil] The event-specific body.
75
+ #
76
+ # @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
77
+ end
78
+ end
79
+ end