sentdm 0.27.0 → 0.29.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 (284) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -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_payload.rb +17 -17
  15. data/lib/sentdm/models/me_retrieve_response.rb +273 -13
  16. data/lib/sentdm/models/message_event_payload.rb +11 -11
  17. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  18. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  19. data/lib/sentdm/models/message_send_response.rb +113 -28
  20. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  21. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  22. data/lib/sentdm/models/profile_create_params.rb +378 -26
  23. data/lib/sentdm/models/profile_create_response.rb +760 -0
  24. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  25. data/lib/sentdm/models/profile_list_response.rb +825 -14
  26. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  27. data/lib/sentdm/models/profile_update_params.rb +391 -24
  28. data/lib/sentdm/models/profile_update_response.rb +760 -0
  29. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  30. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  31. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  32. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  33. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  34. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  35. data/lib/sentdm/models/template_create_response.rb +209 -0
  36. data/lib/sentdm/models/template_event_payload.rb +18 -18
  37. data/lib/sentdm/models/template_list_params.rb +9 -2
  38. data/lib/sentdm/models/template_list_response.rb +262 -16
  39. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  40. data/lib/sentdm/models/template_update_response.rb +209 -0
  41. data/lib/sentdm/models/user_invite_response.rb +201 -0
  42. data/lib/sentdm/models/user_list_response.rb +259 -14
  43. data/lib/sentdm/models/user_remove_params.rb +16 -2
  44. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  45. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  46. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  47. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  48. data/lib/sentdm/models/webhook_list_events_response.rb +162 -13
  49. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  50. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  51. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  52. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  53. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  54. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  55. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  56. data/lib/sentdm/models.rb +0 -52
  57. data/lib/sentdm/resources/contacts.rb +30 -13
  58. data/lib/sentdm/resources/conversations.rb +12 -4
  59. data/lib/sentdm/resources/me.rb +17 -1
  60. data/lib/sentdm/resources/messages.rb +11 -1
  61. data/lib/sentdm/resources/numbers.rb +6 -1
  62. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  63. data/lib/sentdm/resources/profiles.rb +134 -58
  64. data/lib/sentdm/resources/templates.rb +14 -8
  65. data/lib/sentdm/resources/users.rb +12 -7
  66. data/lib/sentdm/resources/webhooks.rb +19 -9
  67. data/lib/sentdm/version.rb +1 -1
  68. data/lib/sentdm.rb +22 -32
  69. data/rbi/sentdm/client.rbi +71 -8
  70. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  71. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  72. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  73. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  74. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  75. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  76. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  77. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  78. data/rbi/sentdm/models/inbound_message_event_payload.rbi +16 -22
  79. data/rbi/sentdm/models/me_retrieve_response.rbi +411 -16
  80. data/rbi/sentdm/models/message_event_payload.rbi +12 -15
  81. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  82. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  83. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  84. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  85. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  86. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  87. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  88. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  89. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  90. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  91. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  92. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  94. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  95. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  96. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  97. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  98. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  99. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  100. data/rbi/sentdm/models/template_event_payload.rbi +21 -27
  101. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  102. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  103. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  104. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  105. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  106. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  107. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  108. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  109. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  110. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  111. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  112. data/rbi/sentdm/models/webhook_list_events_response.rbi +319 -15
  113. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  114. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  115. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  116. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  117. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  118. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  119. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  120. data/rbi/sentdm/models.rbi +0 -54
  121. data/rbi/sentdm/resources/contacts.rbi +24 -9
  122. data/rbi/sentdm/resources/conversations.rbi +10 -2
  123. data/rbi/sentdm/resources/me.rbi +17 -1
  124. data/rbi/sentdm/resources/messages.rbi +11 -1
  125. data/rbi/sentdm/resources/numbers.rbi +6 -1
  126. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  127. data/rbi/sentdm/resources/profiles.rbi +174 -66
  128. data/rbi/sentdm/resources/templates.rbi +15 -5
  129. data/rbi/sentdm/resources/users.rbi +9 -4
  130. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  131. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  132. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  133. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  134. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  135. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  136. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  137. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  138. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  139. data/sig/sentdm/models/inbound_message_event_payload.rbs +10 -14
  140. data/sig/sentdm/models/me_retrieve_response.rbs +186 -18
  141. data/sig/sentdm/models/message_event_payload.rbs +5 -7
  142. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  143. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  144. data/sig/sentdm/models/message_send_response.rbs +71 -9
  145. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  146. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  147. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  148. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  149. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  150. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  151. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  152. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  153. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  154. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  155. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  156. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  157. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  158. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  159. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  160. data/sig/sentdm/models/template_create_response.rbs +182 -0
  161. data/sig/sentdm/models/template_event_payload.rbs +13 -17
  162. data/sig/sentdm/models/template_list_response.rbs +230 -19
  163. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  164. data/sig/sentdm/models/template_update_response.rbs +182 -0
  165. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  166. data/sig/sentdm/models/user_list_response.rbs +233 -15
  167. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  168. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  169. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  170. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  171. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  172. data/sig/sentdm/models/webhook_list_events_response.rbs +142 -14
  173. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  174. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  175. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  176. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  177. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  178. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  179. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  180. data/sig/sentdm/models.rbs +0 -52
  181. data/sig/sentdm/resources/contacts.rbs +4 -4
  182. data/sig/sentdm/resources/conversations.rbs +2 -2
  183. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  184. data/sig/sentdm/resources/profiles.rbs +11 -11
  185. data/sig/sentdm/resources/templates.rbs +3 -3
  186. data/sig/sentdm/resources/users.rbs +3 -3
  187. data/sig/sentdm/resources/webhooks.rbs +4 -4
  188. metadata +68 -98
  189. data/lib/sentdm/models/api_meta.rb +0 -34
  190. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  191. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  192. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  193. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  194. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  195. data/lib/sentdm/models/api_response_template.rb +0 -43
  196. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  197. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  198. data/lib/sentdm/models/brand_business_info.rb +0 -114
  199. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  200. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  201. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  202. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  203. data/lib/sentdm/models/contact_response.rb +0 -126
  204. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  205. data/lib/sentdm/models/error_detail.rb +0 -42
  206. data/lib/sentdm/models/mutation_request.rb +0 -20
  207. data/lib/sentdm/models/pagination_meta.rb +0 -80
  208. data/lib/sentdm/models/payment_details.rb +0 -44
  209. data/lib/sentdm/models/profile_detail.rb +0 -605
  210. data/lib/sentdm/models/profile_settings.rb +0 -66
  211. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  212. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  213. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  214. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  215. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  216. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  217. data/lib/sentdm/models/template.rb +0 -90
  218. data/lib/sentdm/models/user_response.rb +0 -82
  219. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  220. data/lib/sentdm/models/webhook_response.rb +0 -95
  221. data/rbi/sentdm/models/api_meta.rbi +0 -55
  222. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  223. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  224. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  225. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  226. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  227. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  228. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  229. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  230. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  231. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  232. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  233. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  234. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  235. data/rbi/sentdm/models/contact_response.rbi +0 -183
  236. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  237. data/rbi/sentdm/models/error_detail.rbi +0 -66
  238. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  239. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  240. data/rbi/sentdm/models/payment_details.rbi +0 -59
  241. data/rbi/sentdm/models/profile_detail.rbi +0 -872
  242. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  243. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  244. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  245. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  246. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  247. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  248. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  249. data/rbi/sentdm/models/template.rbi +0 -129
  250. data/rbi/sentdm/models/user_response.rbi +0 -118
  251. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  252. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  253. data/sig/sentdm/models/api_meta.rbs +0 -27
  254. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  255. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  256. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  257. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  258. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  259. data/sig/sentdm/models/api_response_template.rbs +0 -39
  260. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  261. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  262. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  263. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  264. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  265. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  266. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  267. data/sig/sentdm/models/contact_response.rbs +0 -111
  268. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  269. data/sig/sentdm/models/error_detail.rbs +0 -39
  270. data/sig/sentdm/models/mutation_request.rbs +0 -15
  271. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  272. data/sig/sentdm/models/payment_details.rbs +0 -30
  273. data/sig/sentdm/models/profile_detail.rbs +0 -469
  274. data/sig/sentdm/models/profile_settings.rbs +0 -50
  275. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  276. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  277. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  278. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  279. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  280. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  281. data/sig/sentdm/models/template.rbs +0 -79
  282. data/sig/sentdm/models/user_response.rbs +0 -72
  283. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  284. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -8,6 +8,14 @@ module Sentdm
8
8
  T.any(Sentdm::InboundMessageEventPayload, Sentdm::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # The contact's number in E.164 format, meaning the number the message came from.
12
+ sig { returns(String) }
13
+ attr_accessor :inbound_number
14
+
15
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
16
+ sig { returns(String) }
17
+ attr_accessor :received_at
18
+
11
19
  # The account the message belongs to.
12
20
  sig { returns(T.nilable(String)) }
13
21
  attr_reader :account_id
@@ -22,13 +30,6 @@ module Sentdm
22
30
  sig { params(channel: String).void }
23
31
  attr_writer :channel
24
32
 
25
- # The contact's number in E.164 format, meaning the number the message came from.
26
- sig { returns(T.nilable(String)) }
27
- attr_reader :inbound_number
28
-
29
- sig { params(inbound_number: String).void }
30
- attr_writer :inbound_number
31
-
32
33
  # The inbound message.
33
34
  sig { returns(T.nilable(String)) }
34
35
  attr_reader :message_id
@@ -43,13 +44,6 @@ module Sentdm
43
44
  sig { params(outbound_number: String).void }
44
45
  attr_writer :outbound_number
45
46
 
46
- # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
47
- sig { returns(T.nilable(String)) }
48
- attr_reader :received_at
49
-
50
- sig { params(received_at: String).void }
51
- attr_writer :received_at
52
-
53
47
  # The message body. Sent as null when the inbound message carried no text, for
54
48
  # example a media-only message. The field is always present, so read it and check
55
49
  # for null rather than checking whether the key exists.
@@ -68,29 +62,29 @@ module Sentdm
68
62
  # numbers.
69
63
  sig do
70
64
  params(
65
+ inbound_number: String,
66
+ received_at: String,
71
67
  account_id: String,
72
68
  channel: String,
73
- inbound_number: String,
74
69
  message_id: String,
75
70
  outbound_number: String,
76
- received_at: String,
77
71
  text: T.nilable(String),
78
72
  updated_at: String
79
73
  ).returns(T.attached_class)
80
74
  end
81
75
  def self.new(
76
+ # The contact's number in E.164 format, meaning the number the message came from.
77
+ inbound_number:,
78
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
79
+ received_at:,
82
80
  # The account the message belongs to.
83
81
  account_id: nil,
84
82
  # The channel the message arrived on, for example sms or whatsapp.
85
83
  channel: nil,
86
- # The contact's number in E.164 format, meaning the number the message came from.
87
- inbound_number: nil,
88
84
  # The inbound message.
89
85
  message_id: nil,
90
86
  # Your number in E.164 format, meaning the number the message was addressed to.
91
87
  outbound_number: nil,
92
- # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
93
- received_at: nil,
94
88
  # The message body. Sent as null when the inbound message carried no text, for
95
89
  # example a media-only message. The field is always present, so read it and check
96
90
  # for null rather than checking whether the key exists.
@@ -104,12 +98,12 @@ module Sentdm
104
98
  sig do
105
99
  override.returns(
106
100
  {
101
+ inbound_number: String,
102
+ received_at: String,
107
103
  account_id: String,
108
104
  channel: String,
109
- inbound_number: String,
110
105
  message_id: String,
111
106
  outbound_number: String,
112
- received_at: String,
113
107
  text: T.nilable(String),
114
108
  updated_at: String
115
109
  }
@@ -22,17 +22,23 @@ module Sentdm
22
22
  attr_writer :data
23
23
 
24
24
  # Error information
25
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
25
+ sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Error)) }
26
26
  attr_reader :error
27
27
 
28
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
28
+ sig do
29
+ params(
30
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash)
31
+ ).void
32
+ end
29
33
  attr_writer :error
30
34
 
31
35
  # Request and response metadata
32
- sig { returns(T.nilable(Sentdm::APIMeta)) }
36
+ sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Meta)) }
33
37
  attr_reader :meta
34
38
 
35
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
39
+ sig do
40
+ params(meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash).void
41
+ end
36
42
  attr_writer :meta
37
43
 
38
44
  # Indicates whether the request was successful
@@ -46,8 +52,8 @@ module Sentdm
46
52
  sig do
47
53
  params(
48
54
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data::OrHash),
49
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
50
- meta: Sentdm::APIMeta::OrHash,
55
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash),
56
+ meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash,
51
57
  success: T::Boolean
52
58
  ).returns(T.attached_class)
53
59
  end
@@ -69,8 +75,8 @@ module Sentdm
69
75
  override.returns(
70
76
  {
71
77
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data),
72
- error: T.nilable(Sentdm::ErrorDetail),
73
- meta: Sentdm::APIMeta,
78
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error),
79
+ meta: Sentdm::Models::MeRetrieveResponse::Meta,
74
80
  success: T::Boolean
75
81
  }
76
82
  )
@@ -159,12 +165,41 @@ module Sentdm
159
165
  end
160
166
  attr_writer :profiles
161
167
 
168
+ # The SMS sender this account sends from in the United States, in E.164 form. Null
169
+ # when the account has no US SMS sender.
170
+ #
171
+ # The same value as channels.sms.phone_number, published under both names on
172
+ # purpose: sending_phone_number is what this value is already called on GET
173
+ # /v3/profiles, so the same key answers the same question whichever of the two
174
+ # endpoints you ask. Neither name is preferred over the other and neither is
175
+ # deprecated.
176
+ #
177
+ # The same value, not the same presence: this key is always written, including as
178
+ # null, whereas channels.sms.phone_number is left out entirely when there is no
179
+ # sender.
180
+ sig { returns(T.nilable(String)) }
181
+ attr_accessor :sending_phone_number
182
+
183
+ # The account that holds sending_phone_number in number inventory: normally this
184
+ # account itself, and a different account when the number is held elsewhere. Null
185
+ # when there is no US sender, or when the sender is not a number drawn from
186
+ # inventory — an alphanumeric sender ID or a short code.
187
+ sig { returns(T.nilable(String)) }
188
+ attr_accessor :sending_phone_number_profile_id
189
+
162
190
  # Profile configuration settings
163
- sig { returns(T.nilable(Sentdm::ProfileSettings)) }
191
+ sig do
192
+ returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings))
193
+ end
164
194
  attr_reader :settings
165
195
 
166
196
  sig do
167
- params(settings: T.nilable(Sentdm::ProfileSettings::OrHash)).void
197
+ params(
198
+ settings:
199
+ T.nilable(
200
+ Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
201
+ )
202
+ ).void
168
203
  end
169
204
  attr_writer :settings
170
205
 
@@ -203,7 +238,12 @@ module Sentdm
203
238
  T::Array[
204
239
  Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
205
240
  ],
206
- settings: T.nilable(Sentdm::ProfileSettings::OrHash),
241
+ sending_phone_number: T.nilable(String),
242
+ sending_phone_number_profile_id: T.nilable(String),
243
+ settings:
244
+ T.nilable(
245
+ Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
246
+ ),
207
247
  short_name: T.nilable(String),
208
248
  status: T.nilable(String),
209
249
  type: String
@@ -230,6 +270,24 @@ module Sentdm
230
270
  # List of profiles (populated for organization type, empty for user and profile
231
271
  # types)
232
272
  profiles: nil,
273
+ # The SMS sender this account sends from in the United States, in E.164 form. Null
274
+ # when the account has no US SMS sender.
275
+ #
276
+ # The same value as channels.sms.phone_number, published under both names on
277
+ # purpose: sending_phone_number is what this value is already called on GET
278
+ # /v3/profiles, so the same key answers the same question whichever of the two
279
+ # endpoints you ask. Neither name is preferred over the other and neither is
280
+ # deprecated.
281
+ #
282
+ # The same value, not the same presence: this key is always written, including as
283
+ # null, whereas channels.sms.phone_number is left out entirely when there is no
284
+ # sender.
285
+ sending_phone_number: nil,
286
+ # The account that holds sending_phone_number in number inventory: normally this
287
+ # account itself, and a different account when the number is held elsewhere. Null
288
+ # when there is no US sender, or when the sender is not a number drawn from
289
+ # inventory — an alphanumeric sender ID or a short code.
290
+ sending_phone_number_profile_id: nil,
233
291
  # Profile configuration settings
234
292
  settings: nil,
235
293
  # Short name / abbreviation (only for profile type)
@@ -256,7 +314,10 @@ module Sentdm
256
314
  organization_id: T.nilable(String),
257
315
  profiles:
258
316
  T::Array[Sentdm::Models::MeRetrieveResponse::Data::Profile],
259
- settings: T.nilable(Sentdm::ProfileSettings),
317
+ sending_phone_number: T.nilable(String),
318
+ sending_phone_number_profile_id: T.nilable(String),
319
+ settings:
320
+ T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings),
260
321
  short_name: T.nilable(String),
261
322
  status: T.nilable(String),
262
323
  type: String
@@ -551,10 +612,21 @@ module Sentdm
551
612
  attr_accessor :role
552
613
 
553
614
  # Profile configuration settings
554
- sig { returns(T.nilable(Sentdm::ProfileSettings)) }
615
+ sig do
616
+ returns(
617
+ T.nilable(
618
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings
619
+ )
620
+ )
621
+ end
555
622
  attr_reader :settings
556
623
 
557
- sig { params(settings: Sentdm::ProfileSettings::OrHash).void }
624
+ sig do
625
+ params(
626
+ settings:
627
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash
628
+ ).void
629
+ end
558
630
  attr_writer :settings
559
631
 
560
632
  # Profile short name (abbreviation)
@@ -574,7 +646,8 @@ module Sentdm
574
646
  icon: T.nilable(String),
575
647
  name: String,
576
648
  role: T.nilable(String),
577
- settings: Sentdm::ProfileSettings::OrHash,
649
+ settings:
650
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash,
578
651
  short_name: T.nilable(String),
579
652
  status: T.nilable(String)
580
653
  ).returns(T.attached_class)
@@ -611,7 +684,8 @@ module Sentdm
611
684
  icon: T.nilable(String),
612
685
  name: String,
613
686
  role: T.nilable(String),
614
- settings: Sentdm::ProfileSettings,
687
+ settings:
688
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
615
689
  short_name: T.nilable(String),
616
690
  status: T.nilable(String)
617
691
  }
@@ -619,6 +693,327 @@ module Sentdm
619
693
  end
620
694
  def to_hash
621
695
  end
696
+
697
+ class Settings < Sentdm::Internal::Type::BaseModel
698
+ OrHash =
699
+ T.type_alias do
700
+ T.any(
701
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
702
+ Sentdm::Internal::AnyHash
703
+ )
704
+ end
705
+
706
+ # Always false. A profile no longer shares contacts with sibling profiles — it
707
+ # sees only what it owns. Retained so existing v3 clients reading
708
+ # allow_contact_sharing keep deserializing; it carries no information.
709
+ sig { returns(T.nilable(T::Boolean)) }
710
+ attr_accessor :allow_contact_sharing
711
+
712
+ # Always false. A profile no longer shares templates with sibling profiles.
713
+ # Retained so existing v3 clients reading allow_template_sharing keep
714
+ # deserializing; it carries no information.
715
+ sig { returns(T.nilable(T::Boolean)) }
716
+ attr_accessor :allow_template_sharing
717
+
718
+ # Billing model: profile, organization, or profile_and_organization
719
+ sig { returns(T.nilable(String)) }
720
+ attr_accessor :billing_model
721
+
722
+ # Always false. A profile no longer inherits its organization's contacts. Retained
723
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
724
+ # no information.
725
+ sig { returns(T.nilable(T::Boolean)) }
726
+ attr_accessor :inherit_contacts
727
+
728
+ # Whether this profile inherits TCR brand from the organization
729
+ sig { returns(T.nilable(T::Boolean)) }
730
+ attr_accessor :inherit_tcr_brand
731
+
732
+ # Whether this profile inherits TCR campaign from the organization
733
+ sig { returns(T.nilable(T::Boolean)) }
734
+ attr_accessor :inherit_tcr_campaign
735
+
736
+ # Always false. A profile no longer inherits its organization's templates.
737
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
738
+ # carries no information.
739
+ sig { returns(T.nilable(T::Boolean)) }
740
+ attr_accessor :inherit_templates
741
+
742
+ # Profile configuration settings
743
+ sig do
744
+ params(
745
+ allow_contact_sharing: T.nilable(T::Boolean),
746
+ allow_template_sharing: T.nilable(T::Boolean),
747
+ billing_model: T.nilable(String),
748
+ inherit_contacts: T.nilable(T::Boolean),
749
+ inherit_tcr_brand: T.nilable(T::Boolean),
750
+ inherit_tcr_campaign: T.nilable(T::Boolean),
751
+ inherit_templates: T.nilable(T::Boolean)
752
+ ).returns(T.attached_class)
753
+ end
754
+ def self.new(
755
+ # Always false. A profile no longer shares contacts with sibling profiles — it
756
+ # sees only what it owns. Retained so existing v3 clients reading
757
+ # allow_contact_sharing keep deserializing; it carries no information.
758
+ allow_contact_sharing: nil,
759
+ # Always false. A profile no longer shares templates with sibling profiles.
760
+ # Retained so existing v3 clients reading allow_template_sharing keep
761
+ # deserializing; it carries no information.
762
+ allow_template_sharing: nil,
763
+ # Billing model: profile, organization, or profile_and_organization
764
+ billing_model: nil,
765
+ # Always false. A profile no longer inherits its organization's contacts. Retained
766
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
767
+ # no information.
768
+ inherit_contacts: nil,
769
+ # Whether this profile inherits TCR brand from the organization
770
+ inherit_tcr_brand: nil,
771
+ # Whether this profile inherits TCR campaign from the organization
772
+ inherit_tcr_campaign: nil,
773
+ # Always false. A profile no longer inherits its organization's templates.
774
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
775
+ # carries no information.
776
+ inherit_templates: nil
777
+ )
778
+ end
779
+
780
+ sig do
781
+ override.returns(
782
+ {
783
+ allow_contact_sharing: T.nilable(T::Boolean),
784
+ allow_template_sharing: T.nilable(T::Boolean),
785
+ billing_model: T.nilable(String),
786
+ inherit_contacts: T.nilable(T::Boolean),
787
+ inherit_tcr_brand: T.nilable(T::Boolean),
788
+ inherit_tcr_campaign: T.nilable(T::Boolean),
789
+ inherit_templates: T.nilable(T::Boolean)
790
+ }
791
+ )
792
+ end
793
+ def to_hash
794
+ end
795
+ end
796
+ end
797
+
798
+ class Settings < Sentdm::Internal::Type::BaseModel
799
+ OrHash =
800
+ T.type_alias do
801
+ T.any(
802
+ Sentdm::Models::MeRetrieveResponse::Data::Settings,
803
+ Sentdm::Internal::AnyHash
804
+ )
805
+ end
806
+
807
+ # Always false. A profile no longer shares contacts with sibling profiles — it
808
+ # sees only what it owns. Retained so existing v3 clients reading
809
+ # allow_contact_sharing keep deserializing; it carries no information.
810
+ sig { returns(T.nilable(T::Boolean)) }
811
+ attr_accessor :allow_contact_sharing
812
+
813
+ # Always false. A profile no longer shares templates with sibling profiles.
814
+ # Retained so existing v3 clients reading allow_template_sharing keep
815
+ # deserializing; it carries no information.
816
+ sig { returns(T.nilable(T::Boolean)) }
817
+ attr_accessor :allow_template_sharing
818
+
819
+ # Billing model: profile, organization, or profile_and_organization
820
+ sig { returns(T.nilable(String)) }
821
+ attr_accessor :billing_model
822
+
823
+ # Always false. A profile no longer inherits its organization's contacts. Retained
824
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
825
+ # no information.
826
+ sig { returns(T.nilable(T::Boolean)) }
827
+ attr_accessor :inherit_contacts
828
+
829
+ # Whether this profile inherits TCR brand from the organization
830
+ sig { returns(T.nilable(T::Boolean)) }
831
+ attr_accessor :inherit_tcr_brand
832
+
833
+ # Whether this profile inherits TCR campaign from the organization
834
+ sig { returns(T.nilable(T::Boolean)) }
835
+ attr_accessor :inherit_tcr_campaign
836
+
837
+ # Always false. A profile no longer inherits its organization's templates.
838
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
839
+ # carries no information.
840
+ sig { returns(T.nilable(T::Boolean)) }
841
+ attr_accessor :inherit_templates
842
+
843
+ # Profile configuration settings
844
+ sig do
845
+ params(
846
+ allow_contact_sharing: T.nilable(T::Boolean),
847
+ allow_template_sharing: T.nilable(T::Boolean),
848
+ billing_model: T.nilable(String),
849
+ inherit_contacts: T.nilable(T::Boolean),
850
+ inherit_tcr_brand: T.nilable(T::Boolean),
851
+ inherit_tcr_campaign: T.nilable(T::Boolean),
852
+ inherit_templates: T.nilable(T::Boolean)
853
+ ).returns(T.attached_class)
854
+ end
855
+ def self.new(
856
+ # Always false. A profile no longer shares contacts with sibling profiles — it
857
+ # sees only what it owns. Retained so existing v3 clients reading
858
+ # allow_contact_sharing keep deserializing; it carries no information.
859
+ allow_contact_sharing: nil,
860
+ # Always false. A profile no longer shares templates with sibling profiles.
861
+ # Retained so existing v3 clients reading allow_template_sharing keep
862
+ # deserializing; it carries no information.
863
+ allow_template_sharing: nil,
864
+ # Billing model: profile, organization, or profile_and_organization
865
+ billing_model: nil,
866
+ # Always false. A profile no longer inherits its organization's contacts. Retained
867
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
868
+ # no information.
869
+ inherit_contacts: nil,
870
+ # Whether this profile inherits TCR brand from the organization
871
+ inherit_tcr_brand: nil,
872
+ # Whether this profile inherits TCR campaign from the organization
873
+ inherit_tcr_campaign: nil,
874
+ # Always false. A profile no longer inherits its organization's templates.
875
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
876
+ # carries no information.
877
+ inherit_templates: nil
878
+ )
879
+ end
880
+
881
+ sig do
882
+ override.returns(
883
+ {
884
+ allow_contact_sharing: T.nilable(T::Boolean),
885
+ allow_template_sharing: T.nilable(T::Boolean),
886
+ billing_model: T.nilable(String),
887
+ inherit_contacts: T.nilable(T::Boolean),
888
+ inherit_tcr_brand: T.nilable(T::Boolean),
889
+ inherit_tcr_campaign: T.nilable(T::Boolean),
890
+ inherit_templates: T.nilable(T::Boolean)
891
+ }
892
+ )
893
+ end
894
+ def to_hash
895
+ end
896
+ end
897
+ end
898
+
899
+ class Error < Sentdm::Internal::Type::BaseModel
900
+ OrHash =
901
+ T.type_alias do
902
+ T.any(
903
+ Sentdm::Models::MeRetrieveResponse::Error,
904
+ Sentdm::Internal::AnyHash
905
+ )
906
+ end
907
+
908
+ # Machine-readable error code (e.g., "RESOURCE_001")
909
+ sig { returns(T.nilable(String)) }
910
+ attr_reader :code
911
+
912
+ sig { params(code: String).void }
913
+ attr_writer :code
914
+
915
+ # Additional validation error details (field-level errors)
916
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
917
+ attr_accessor :details
918
+
919
+ # URL to documentation about this error
920
+ sig { returns(T.nilable(String)) }
921
+ attr_accessor :doc_url
922
+
923
+ # Human-readable error message
924
+ sig { returns(T.nilable(String)) }
925
+ attr_reader :message
926
+
927
+ sig { params(message: String).void }
928
+ attr_writer :message
929
+
930
+ # Error information
931
+ sig do
932
+ params(
933
+ code: String,
934
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
935
+ doc_url: T.nilable(String),
936
+ message: String
937
+ ).returns(T.attached_class)
938
+ end
939
+ def self.new(
940
+ # Machine-readable error code (e.g., "RESOURCE_001")
941
+ code: nil,
942
+ # Additional validation error details (field-level errors)
943
+ details: nil,
944
+ # URL to documentation about this error
945
+ doc_url: nil,
946
+ # Human-readable error message
947
+ message: nil
948
+ )
949
+ end
950
+
951
+ sig do
952
+ override.returns(
953
+ {
954
+ code: String,
955
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
956
+ doc_url: T.nilable(String),
957
+ message: String
958
+ }
959
+ )
960
+ end
961
+ def to_hash
962
+ end
963
+ end
964
+
965
+ class Meta < Sentdm::Internal::Type::BaseModel
966
+ OrHash =
967
+ T.type_alias do
968
+ T.any(
969
+ Sentdm::Models::MeRetrieveResponse::Meta,
970
+ Sentdm::Internal::AnyHash
971
+ )
972
+ end
973
+
974
+ # Unique identifier for this request (for tracing and support)
975
+ sig { returns(T.nilable(String)) }
976
+ attr_reader :request_id
977
+
978
+ sig { params(request_id: String).void }
979
+ attr_writer :request_id
980
+
981
+ # Server timestamp when the response was generated
982
+ sig { returns(T.nilable(Time)) }
983
+ attr_reader :timestamp
984
+
985
+ sig { params(timestamp: Time).void }
986
+ attr_writer :timestamp
987
+
988
+ # API version used for this request
989
+ sig { returns(T.nilable(String)) }
990
+ attr_reader :version
991
+
992
+ sig { params(version: String).void }
993
+ attr_writer :version
994
+
995
+ # Request and response metadata
996
+ sig do
997
+ params(request_id: String, timestamp: Time, version: String).returns(
998
+ T.attached_class
999
+ )
1000
+ end
1001
+ def self.new(
1002
+ # Unique identifier for this request (for tracing and support)
1003
+ request_id: nil,
1004
+ # Server timestamp when the response was generated
1005
+ timestamp: nil,
1006
+ # API version used for this request
1007
+ version: nil
1008
+ )
1009
+ end
1010
+
1011
+ sig do
1012
+ override.returns(
1013
+ { request_id: String, timestamp: Time, version: String }
1014
+ )
1015
+ end
1016
+ def to_hash
622
1017
  end
623
1018
  end
624
1019
  end
@@ -8,6 +8,12 @@ module Sentdm
8
8
  T.any(Sentdm::MessageEventPayload, Sentdm::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # The status the message just reached, for example SENT, DELIVERED, or FAILED.
12
+ # Sent means dispatched and delivered means confirmed, so treat them as distinct
13
+ # outcomes.
14
+ sig { returns(String) }
15
+ attr_accessor :message_status
16
+
11
17
  # The account the message belongs to.
12
18
  sig { returns(T.nilable(String)) }
13
19
  attr_reader :account_id
@@ -35,15 +41,6 @@ module Sentdm
35
41
  sig { params(message_id: String).void }
36
42
  attr_writer :message_id
37
43
 
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
44
  # The recipient's number in E.164 format.
48
45
  sig { returns(T.nilable(String)) }
49
46
  attr_reader :outbound_number
@@ -72,11 +69,11 @@ module Sentdm
72
69
  # status.
73
70
  sig do
74
71
  params(
72
+ message_status: String,
75
73
  account_id: String,
76
74
  agent_id: T.nilable(String),
77
75
  channel: String,
78
76
  message_id: String,
79
- message_status: String,
80
77
  outbound_number: String,
81
78
  template_id: T.nilable(String),
82
79
  template_name: T.nilable(String),
@@ -84,6 +81,10 @@ module Sentdm
84
81
  ).returns(T.attached_class)
85
82
  end
86
83
  def self.new(
84
+ # The status the message just reached, for example SENT, DELIVERED, or FAILED.
85
+ # Sent means dispatched and delivered means confirmed, so treat them as distinct
86
+ # outcomes.
87
+ message_status:,
87
88
  # The account the message belongs to.
88
89
  account_id: nil,
89
90
  # The agent attributed to the send, when the send was attributed to one.
@@ -94,10 +95,6 @@ module Sentdm
94
95
  # The message this event describes. Stable across every event in the message's
95
96
  # lifecycle, so use it to correlate them.
96
97
  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
98
  # The recipient's number in E.164 format.
102
99
  outbound_number: nil,
103
100
  # The template the message was sent from, when it was sent from one.
@@ -113,11 +110,11 @@ module Sentdm
113
110
  sig do
114
111
  override.returns(
115
112
  {
113
+ message_status: String,
116
114
  account_id: String,
117
115
  agent_id: T.nilable(String),
118
116
  channel: String,
119
117
  message_id: String,
120
- message_status: String,
121
118
  outbound_number: String,
122
119
  template_id: T.nilable(String),
123
120
  template_name: T.nilable(String),