sentdm 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -0,0 +1,86 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageEvent < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::MessageEvent, Sentdm::Internal::AnyHash) }
8
+
9
+ # The specific event within the family, for example message.delivered or
10
+ # message.received. Absent on events that have no subtype, so treat it as
11
+ # optional.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_accessor :event
14
+
15
+ # The event family, for example message or templates. Route on this first, then on
16
+ # event for the specific change.
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :field
19
+
20
+ sig { params(field: String).void }
21
+ attr_writer :field
22
+
23
+ # Body of an outbound message lifecycle event. Delivered once per status change,
24
+ # so a single message produces several of these as it moves toward a terminal
25
+ # status.
26
+ sig { returns(T.nilable(Sentdm::MessageEventPayload)) }
27
+ attr_reader :payload
28
+
29
+ sig do
30
+ params(payload: T.nilable(Sentdm::MessageEventPayload::OrHash)).void
31
+ end
32
+ attr_writer :payload
33
+
34
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
35
+ # time, not the time the underlying change happened. Use the timestamp inside the
36
+ # payload for the latter.
37
+ sig { returns(T.nilable(String)) }
38
+ attr_reader :timestamp
39
+
40
+ sig { params(timestamp: String).void }
41
+ attr_writer :timestamp
42
+
43
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
44
+ # this shape and varies only in Payload.
45
+ sig do
46
+ params(
47
+ event: T.nilable(String),
48
+ field: String,
49
+ payload: T.nilable(Sentdm::MessageEventPayload::OrHash),
50
+ timestamp: String
51
+ ).returns(T.attached_class)
52
+ end
53
+ def self.new(
54
+ # The specific event within the family, for example message.delivered or
55
+ # message.received. Absent on events that have no subtype, so treat it as
56
+ # optional.
57
+ event: nil,
58
+ # The event family, for example message or templates. Route on this first, then on
59
+ # event for the specific change.
60
+ field: nil,
61
+ # Body of an outbound message lifecycle event. Delivered once per status change,
62
+ # so a single message produces several of these as it moves toward a terminal
63
+ # status.
64
+ payload: nil,
65
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
66
+ # time, not the time the underlying change happened. Use the timestamp inside the
67
+ # payload for the latter.
68
+ timestamp: nil
69
+ )
70
+ end
71
+
72
+ sig do
73
+ override.returns(
74
+ {
75
+ event: T.nilable(String),
76
+ field: String,
77
+ payload: T.nilable(Sentdm::MessageEventPayload),
78
+ timestamp: String
79
+ }
80
+ )
81
+ end
82
+ def to_hash
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,132 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class MessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::MessageEventPayload, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The account the message belongs to.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :account_id
14
+
15
+ sig { params(account_id: String).void }
16
+ attr_writer :account_id
17
+
18
+ # The agent attributed to the send, when the send was attributed to one.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_accessor :agent_id
21
+
22
+ # The channel the message went out on, for example sms or whatsapp. A message that
23
+ # falls back to another channel reports the channel actually used.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_reader :channel
26
+
27
+ sig { params(channel: String).void }
28
+ attr_writer :channel
29
+
30
+ # The message this event describes. Stable across every event in the message's
31
+ # lifecycle, so use it to correlate them.
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :message_id
34
+
35
+ sig { params(message_id: String).void }
36
+ attr_writer :message_id
37
+
38
+ # The status the message just reached, for example SENT, DELIVERED, or FAILED.
39
+ # Sent means dispatched and delivered means confirmed, so treat them as distinct
40
+ # outcomes.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_reader :message_status
43
+
44
+ sig { params(message_status: String).void }
45
+ attr_writer :message_status
46
+
47
+ # The recipient's number in E.164 format.
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :outbound_number
50
+
51
+ sig { params(outbound_number: String).void }
52
+ attr_writer :outbound_number
53
+
54
+ # The template the message was sent from, when it was sent from one.
55
+ sig { returns(T.nilable(String)) }
56
+ attr_accessor :template_id
57
+
58
+ # Name of the template the message was sent from. Omitted when the message wasn't
59
+ # template-based.
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :template_name
62
+
63
+ # When the message reached MessageStatus, in UTC (yyyy-MM-ddTHH:mm:ssZ).
64
+ sig { returns(T.nilable(String)) }
65
+ attr_reader :updated_at
66
+
67
+ sig { params(updated_at: String).void }
68
+ attr_writer :updated_at
69
+
70
+ # Body of an outbound message lifecycle event. Delivered once per status change,
71
+ # so a single message produces several of these as it moves toward a terminal
72
+ # status.
73
+ sig do
74
+ params(
75
+ account_id: String,
76
+ agent_id: T.nilable(String),
77
+ channel: String,
78
+ message_id: String,
79
+ message_status: String,
80
+ outbound_number: String,
81
+ template_id: T.nilable(String),
82
+ template_name: T.nilable(String),
83
+ updated_at: String
84
+ ).returns(T.attached_class)
85
+ end
86
+ def self.new(
87
+ # The account the message belongs to.
88
+ account_id: nil,
89
+ # The agent attributed to the send, when the send was attributed to one.
90
+ agent_id: nil,
91
+ # The channel the message went out on, for example sms or whatsapp. A message that
92
+ # falls back to another channel reports the channel actually used.
93
+ channel: nil,
94
+ # The message this event describes. Stable across every event in the message's
95
+ # lifecycle, so use it to correlate them.
96
+ message_id: nil,
97
+ # The status the message just reached, for example SENT, DELIVERED, or FAILED.
98
+ # Sent means dispatched and delivered means confirmed, so treat them as distinct
99
+ # outcomes.
100
+ message_status: nil,
101
+ # The recipient's number in E.164 format.
102
+ outbound_number: nil,
103
+ # The template the message was sent from, when it was sent from one.
104
+ template_id: nil,
105
+ # Name of the template the message was sent from. Omitted when the message wasn't
106
+ # template-based.
107
+ template_name: nil,
108
+ # When the message reached MessageStatus, in UTC (yyyy-MM-ddTHH:mm:ssZ).
109
+ updated_at: nil
110
+ )
111
+ end
112
+
113
+ sig do
114
+ override.returns(
115
+ {
116
+ account_id: String,
117
+ agent_id: T.nilable(String),
118
+ channel: String,
119
+ message_id: String,
120
+ message_status: String,
121
+ outbound_number: String,
122
+ template_id: T.nilable(String),
123
+ template_name: T.nilable(String),
124
+ updated_at: String
125
+ }
126
+ )
127
+ end
128
+ def to_hash
129
+ end
130
+ end
131
+ end
132
+ end
@@ -30,17 +30,36 @@ module Sentdm
30
30
  attr_writer :data
31
31
 
32
32
  # Error information
33
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
33
+ sig do
34
+ returns(
35
+ T.nilable(Sentdm::Models::MessageRetrieveActivitiesResponse::Error)
36
+ )
37
+ end
34
38
  attr_reader :error
35
39
 
36
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
40
+ sig do
41
+ params(
42
+ error:
43
+ T.nilable(
44
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Error::OrHash
45
+ )
46
+ ).void
47
+ end
37
48
  attr_writer :error
38
49
 
39
50
  # Request and response metadata
40
- sig { returns(T.nilable(Sentdm::APIMeta)) }
51
+ sig do
52
+ returns(
53
+ T.nilable(Sentdm::Models::MessageRetrieveActivitiesResponse::Meta)
54
+ )
55
+ end
41
56
  attr_reader :meta
42
57
 
43
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
58
+ sig do
59
+ params(
60
+ meta: Sentdm::Models::MessageRetrieveActivitiesResponse::Meta::OrHash
61
+ ).void
62
+ end
44
63
  attr_writer :meta
45
64
 
46
65
  # Indicates whether the request was successful
@@ -57,8 +76,11 @@ module Sentdm
57
76
  T.nilable(
58
77
  Sentdm::Models::MessageRetrieveActivitiesResponse::Data::OrHash
59
78
  ),
60
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
61
- meta: Sentdm::APIMeta::OrHash,
79
+ error:
80
+ T.nilable(
81
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Error::OrHash
82
+ ),
83
+ meta: Sentdm::Models::MessageRetrieveActivitiesResponse::Meta::OrHash,
62
84
  success: T::Boolean
63
85
  ).returns(T.attached_class)
64
86
  end
@@ -81,8 +103,11 @@ module Sentdm
81
103
  T.nilable(
82
104
  Sentdm::Models::MessageRetrieveActivitiesResponse::Data
83
105
  ),
84
- error: T.nilable(Sentdm::ErrorDetail),
85
- meta: Sentdm::APIMeta,
106
+ error:
107
+ T.nilable(
108
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Error
109
+ ),
110
+ meta: Sentdm::Models::MessageRetrieveActivitiesResponse::Meta,
86
111
  success: T::Boolean
87
112
  }
88
113
  )
@@ -128,6 +153,24 @@ module Sentdm
128
153
  sig { params(message_id: String).void }
129
154
  attr_writer :message_id
130
155
 
156
+ # Pagination metadata for list responses
157
+ sig do
158
+ returns(
159
+ T.nilable(
160
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination
161
+ )
162
+ )
163
+ end
164
+ attr_reader :pagination
165
+
166
+ sig do
167
+ params(
168
+ pagination:
169
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::OrHash
170
+ ).void
171
+ end
172
+ attr_writer :pagination
173
+
131
174
  # Response for GET /messages/{id}/activities
132
175
  sig do
133
176
  params(
@@ -135,14 +178,18 @@ module Sentdm
135
178
  T::Array[
136
179
  Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Activity::OrHash
137
180
  ],
138
- message_id: String
181
+ message_id: String,
182
+ pagination:
183
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::OrHash
139
184
  ).returns(T.attached_class)
140
185
  end
141
186
  def self.new(
142
187
  # List of activity events ordered by most recent first
143
188
  activities: nil,
144
189
  # The message ID these activities belong to
145
- message_id: nil
190
+ message_id: nil,
191
+ # Pagination metadata for list responses
192
+ pagination: nil
146
193
  )
147
194
  end
148
195
 
@@ -153,7 +200,9 @@ module Sentdm
153
200
  T::Array[
154
201
  Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Activity
155
202
  ],
156
- message_id: String
203
+ message_id: String,
204
+ pagination:
205
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination
157
206
  }
158
207
  )
159
208
  end
@@ -254,6 +303,281 @@ module Sentdm
254
303
  def to_hash
255
304
  end
256
305
  end
306
+
307
+ class Pagination < Sentdm::Internal::Type::BaseModel
308
+ OrHash =
309
+ T.type_alias do
310
+ T.any(
311
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination,
312
+ Sentdm::Internal::AnyHash
313
+ )
314
+ end
315
+
316
+ # Cursor-based pagination. Never populated — see Cursors.
317
+ sig do
318
+ returns(
319
+ T.nilable(
320
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::Cursors
321
+ )
322
+ )
323
+ end
324
+ attr_reader :cursors
325
+
326
+ sig do
327
+ params(
328
+ cursors:
329
+ T.nilable(
330
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::Cursors::OrHash
331
+ )
332
+ ).void
333
+ end
334
+ attr_writer :cursors
335
+
336
+ # Whether there are more pages after this one
337
+ sig { returns(T.nilable(T::Boolean)) }
338
+ attr_reader :has_more
339
+
340
+ sig { params(has_more: T::Boolean).void }
341
+ attr_writer :has_more
342
+
343
+ # Current page number (1-indexed)
344
+ sig { returns(T.nilable(Integer)) }
345
+ attr_reader :page
346
+
347
+ sig { params(page: Integer).void }
348
+ attr_writer :page
349
+
350
+ # Number of items per page
351
+ sig { returns(T.nilable(Integer)) }
352
+ attr_reader :page_size
353
+
354
+ sig { params(page_size: Integer).void }
355
+ attr_writer :page_size
356
+
357
+ # Total number of items across all pages
358
+ sig { returns(T.nilable(Integer)) }
359
+ attr_reader :total_count
360
+
361
+ sig { params(total_count: Integer).void }
362
+ attr_writer :total_count
363
+
364
+ # Total number of pages
365
+ sig { returns(T.nilable(Integer)) }
366
+ attr_reader :total_pages
367
+
368
+ sig { params(total_pages: Integer).void }
369
+ attr_writer :total_pages
370
+
371
+ # Pagination metadata for list responses
372
+ sig do
373
+ params(
374
+ cursors:
375
+ T.nilable(
376
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::Cursors::OrHash
377
+ ),
378
+ has_more: T::Boolean,
379
+ page: Integer,
380
+ page_size: Integer,
381
+ total_count: Integer,
382
+ total_pages: Integer
383
+ ).returns(T.attached_class)
384
+ end
385
+ def self.new(
386
+ # Cursor-based pagination. Never populated — see Cursors.
387
+ cursors: nil,
388
+ # Whether there are more pages after this one
389
+ has_more: nil,
390
+ # Current page number (1-indexed)
391
+ page: nil,
392
+ # Number of items per page
393
+ page_size: nil,
394
+ # Total number of items across all pages
395
+ total_count: nil,
396
+ # Total number of pages
397
+ total_pages: nil
398
+ )
399
+ end
400
+
401
+ sig do
402
+ override.returns(
403
+ {
404
+ cursors:
405
+ T.nilable(
406
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::Cursors
407
+ ),
408
+ has_more: T::Boolean,
409
+ page: Integer,
410
+ page_size: Integer,
411
+ total_count: Integer,
412
+ total_pages: Integer
413
+ }
414
+ )
415
+ end
416
+ def to_hash
417
+ end
418
+
419
+ class Cursors < Sentdm::Internal::Type::BaseModel
420
+ OrHash =
421
+ T.type_alias do
422
+ T.any(
423
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Data::Pagination::Cursors,
424
+ Sentdm::Internal::AnyHash
425
+ )
426
+ end
427
+
428
+ # Cursor to fetch the next page.
429
+ sig { returns(T.nilable(String)) }
430
+ attr_accessor :after
431
+
432
+ # Cursor to fetch the previous page.
433
+ sig { returns(T.nilable(String)) }
434
+ attr_accessor :before
435
+
436
+ # Cursor-based pagination. Never populated — see Cursors.
437
+ sig do
438
+ params(
439
+ after: T.nilable(String),
440
+ before: T.nilable(String)
441
+ ).returns(T.attached_class)
442
+ end
443
+ def self.new(
444
+ # Cursor to fetch the next page.
445
+ after: nil,
446
+ # Cursor to fetch the previous page.
447
+ before: nil
448
+ )
449
+ end
450
+
451
+ sig do
452
+ override.returns(
453
+ { after: T.nilable(String), before: T.nilable(String) }
454
+ )
455
+ end
456
+ def to_hash
457
+ end
458
+ end
459
+ end
460
+ end
461
+
462
+ class Error < Sentdm::Internal::Type::BaseModel
463
+ OrHash =
464
+ T.type_alias do
465
+ T.any(
466
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Error,
467
+ Sentdm::Internal::AnyHash
468
+ )
469
+ end
470
+
471
+ # Machine-readable error code (e.g., "RESOURCE_001")
472
+ sig { returns(T.nilable(String)) }
473
+ attr_reader :code
474
+
475
+ sig { params(code: String).void }
476
+ attr_writer :code
477
+
478
+ # Additional validation error details (field-level errors)
479
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
480
+ attr_accessor :details
481
+
482
+ # URL to documentation about this error
483
+ sig { returns(T.nilable(String)) }
484
+ attr_accessor :doc_url
485
+
486
+ # Human-readable error message
487
+ sig { returns(T.nilable(String)) }
488
+ attr_reader :message
489
+
490
+ sig { params(message: String).void }
491
+ attr_writer :message
492
+
493
+ # Error information
494
+ sig do
495
+ params(
496
+ code: String,
497
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
498
+ doc_url: T.nilable(String),
499
+ message: String
500
+ ).returns(T.attached_class)
501
+ end
502
+ def self.new(
503
+ # Machine-readable error code (e.g., "RESOURCE_001")
504
+ code: nil,
505
+ # Additional validation error details (field-level errors)
506
+ details: nil,
507
+ # URL to documentation about this error
508
+ doc_url: nil,
509
+ # Human-readable error message
510
+ message: nil
511
+ )
512
+ end
513
+
514
+ sig do
515
+ override.returns(
516
+ {
517
+ code: String,
518
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
519
+ doc_url: T.nilable(String),
520
+ message: String
521
+ }
522
+ )
523
+ end
524
+ def to_hash
525
+ end
526
+ end
527
+
528
+ class Meta < Sentdm::Internal::Type::BaseModel
529
+ OrHash =
530
+ T.type_alias do
531
+ T.any(
532
+ Sentdm::Models::MessageRetrieveActivitiesResponse::Meta,
533
+ Sentdm::Internal::AnyHash
534
+ )
535
+ end
536
+
537
+ # Unique identifier for this request (for tracing and support)
538
+ sig { returns(T.nilable(String)) }
539
+ attr_reader :request_id
540
+
541
+ sig { params(request_id: String).void }
542
+ attr_writer :request_id
543
+
544
+ # Server timestamp when the response was generated
545
+ sig { returns(T.nilable(Time)) }
546
+ attr_reader :timestamp
547
+
548
+ sig { params(timestamp: Time).void }
549
+ attr_writer :timestamp
550
+
551
+ # API version used for this request
552
+ sig { returns(T.nilable(String)) }
553
+ attr_reader :version
554
+
555
+ sig { params(version: String).void }
556
+ attr_writer :version
557
+
558
+ # Request and response metadata
559
+ sig do
560
+ params(request_id: String, timestamp: Time, version: String).returns(
561
+ T.attached_class
562
+ )
563
+ end
564
+ def self.new(
565
+ # Unique identifier for this request (for tracing and support)
566
+ request_id: nil,
567
+ # Server timestamp when the response was generated
568
+ timestamp: nil,
569
+ # API version used for this request
570
+ version: nil
571
+ )
572
+ end
573
+
574
+ sig do
575
+ override.returns(
576
+ { request_id: String, timestamp: Time, version: String }
577
+ )
578
+ end
579
+ def to_hash
580
+ end
257
581
  end
258
582
  end
259
583
  end