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,819 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ConversationListResponse < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::Models::ConversationListResponse,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # A paginated list of messages — used by both conversation read endpoints.
15
+ sig { returns(T.nilable(Sentdm::Models::ConversationListResponse::Data)) }
16
+ attr_reader :data
17
+
18
+ sig do
19
+ params(
20
+ data:
21
+ T.nilable(Sentdm::Models::ConversationListResponse::Data::OrHash)
22
+ ).void
23
+ end
24
+ attr_writer :data
25
+
26
+ # Error information
27
+ sig do
28
+ returns(T.nilable(Sentdm::Models::ConversationListResponse::Error))
29
+ end
30
+ attr_reader :error
31
+
32
+ sig do
33
+ params(
34
+ error:
35
+ T.nilable(Sentdm::Models::ConversationListResponse::Error::OrHash)
36
+ ).void
37
+ end
38
+ attr_writer :error
39
+
40
+ # Request and response metadata
41
+ sig { returns(T.nilable(Sentdm::Models::ConversationListResponse::Meta)) }
42
+ attr_reader :meta
43
+
44
+ sig do
45
+ params(
46
+ meta: Sentdm::Models::ConversationListResponse::Meta::OrHash
47
+ ).void
48
+ end
49
+ attr_writer :meta
50
+
51
+ # Indicates whether the request was successful
52
+ sig { returns(T.nilable(T::Boolean)) }
53
+ attr_reader :success
54
+
55
+ sig { params(success: T::Boolean).void }
56
+ attr_writer :success
57
+
58
+ # Standard API response envelope for all v3 endpoints
59
+ sig do
60
+ params(
61
+ data:
62
+ T.nilable(Sentdm::Models::ConversationListResponse::Data::OrHash),
63
+ error:
64
+ T.nilable(Sentdm::Models::ConversationListResponse::Error::OrHash),
65
+ meta: Sentdm::Models::ConversationListResponse::Meta::OrHash,
66
+ success: T::Boolean
67
+ ).returns(T.attached_class)
68
+ end
69
+ def self.new(
70
+ # A paginated list of messages — used by both conversation read endpoints.
71
+ data: nil,
72
+ # Error information
73
+ error: nil,
74
+ # Request and response metadata
75
+ meta: nil,
76
+ # Indicates whether the request was successful
77
+ success: nil
78
+ )
79
+ end
80
+
81
+ sig do
82
+ override.returns(
83
+ {
84
+ data: T.nilable(Sentdm::Models::ConversationListResponse::Data),
85
+ error: T.nilable(Sentdm::Models::ConversationListResponse::Error),
86
+ meta: Sentdm::Models::ConversationListResponse::Meta,
87
+ success: T::Boolean
88
+ }
89
+ )
90
+ end
91
+ def to_hash
92
+ end
93
+
94
+ class Data < Sentdm::Internal::Type::BaseModel
95
+ OrHash =
96
+ T.type_alias do
97
+ T.any(
98
+ Sentdm::Models::ConversationListResponse::Data,
99
+ Sentdm::Internal::AnyHash
100
+ )
101
+ end
102
+
103
+ # The messages on this page.
104
+ sig do
105
+ returns(
106
+ T.nilable(
107
+ T::Array[Sentdm::Models::ConversationListResponse::Data::Message]
108
+ )
109
+ )
110
+ end
111
+ attr_reader :messages
112
+
113
+ sig do
114
+ params(
115
+ messages:
116
+ T::Array[
117
+ Sentdm::Models::ConversationListResponse::Data::Message::OrHash
118
+ ]
119
+ ).void
120
+ end
121
+ attr_writer :messages
122
+
123
+ # Pagination metadata for list responses
124
+ sig do
125
+ returns(
126
+ T.nilable(
127
+ Sentdm::Models::ConversationListResponse::Data::Pagination
128
+ )
129
+ )
130
+ end
131
+ attr_reader :pagination
132
+
133
+ sig do
134
+ params(
135
+ pagination:
136
+ Sentdm::Models::ConversationListResponse::Data::Pagination::OrHash
137
+ ).void
138
+ end
139
+ attr_writer :pagination
140
+
141
+ # A paginated list of messages — used by both conversation read endpoints.
142
+ sig do
143
+ params(
144
+ messages:
145
+ T::Array[
146
+ Sentdm::Models::ConversationListResponse::Data::Message::OrHash
147
+ ],
148
+ pagination:
149
+ Sentdm::Models::ConversationListResponse::Data::Pagination::OrHash
150
+ ).returns(T.attached_class)
151
+ end
152
+ def self.new(
153
+ # The messages on this page.
154
+ messages: nil,
155
+ # Pagination metadata for list responses
156
+ pagination: nil
157
+ )
158
+ end
159
+
160
+ sig do
161
+ override.returns(
162
+ {
163
+ messages:
164
+ T::Array[
165
+ Sentdm::Models::ConversationListResponse::Data::Message
166
+ ],
167
+ pagination:
168
+ Sentdm::Models::ConversationListResponse::Data::Pagination
169
+ }
170
+ )
171
+ end
172
+ def to_hash
173
+ end
174
+
175
+ class Message < Sentdm::Internal::Type::BaseModel
176
+ OrHash =
177
+ T.type_alias do
178
+ T.any(
179
+ Sentdm::Models::ConversationListResponse::Data::Message,
180
+ Sentdm::Internal::AnyHash
181
+ )
182
+ end
183
+
184
+ sig { returns(T.nilable(String)) }
185
+ attr_reader :id
186
+
187
+ sig { params(id: String).void }
188
+ attr_writer :id
189
+
190
+ sig { returns(T.nilable(Float)) }
191
+ attr_accessor :active_contact_price
192
+
193
+ sig { returns(T.nilable(String)) }
194
+ attr_reader :channel
195
+
196
+ sig { params(channel: String).void }
197
+ attr_writer :channel
198
+
199
+ sig { returns(T.nilable(String)) }
200
+ attr_reader :contact_id
201
+
202
+ sig { params(contact_id: String).void }
203
+ attr_writer :contact_id
204
+
205
+ sig { returns(T.nilable(Time)) }
206
+ attr_reader :created_at
207
+
208
+ sig { params(created_at: Time).void }
209
+ attr_writer :created_at
210
+
211
+ sig { returns(T.nilable(String)) }
212
+ attr_reader :customer_id
213
+
214
+ sig { params(customer_id: String).void }
215
+ attr_writer :customer_id
216
+
217
+ sig { returns(T.nilable(String)) }
218
+ attr_reader :direction
219
+
220
+ sig { params(direction: String).void }
221
+ attr_writer :direction
222
+
223
+ sig do
224
+ returns(
225
+ T.nilable(
226
+ T::Array[
227
+ Sentdm::Models::ConversationListResponse::Data::Message::Event
228
+ ]
229
+ )
230
+ )
231
+ end
232
+ attr_accessor :events
233
+
234
+ # Structured message body format for database storage. Preserves channel-specific
235
+ # components (header, body, footer, buttons).
236
+ sig do
237
+ returns(
238
+ T.nilable(
239
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody
240
+ )
241
+ )
242
+ end
243
+ attr_reader :message_body
244
+
245
+ sig do
246
+ params(
247
+ message_body:
248
+ T.nilable(
249
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::OrHash
250
+ )
251
+ ).void
252
+ end
253
+ attr_writer :message_body
254
+
255
+ sig { returns(T.nilable(String)) }
256
+ attr_reader :phone
257
+
258
+ sig { params(phone: String).void }
259
+ attr_writer :phone
260
+
261
+ sig { returns(T.nilable(String)) }
262
+ attr_reader :phone_international
263
+
264
+ sig { params(phone_international: String).void }
265
+ attr_writer :phone_international
266
+
267
+ sig { returns(T.nilable(Float)) }
268
+ attr_accessor :price
269
+
270
+ sig { returns(T.nilable(String)) }
271
+ attr_reader :region_code
272
+
273
+ sig { params(region_code: String).void }
274
+ attr_writer :region_code
275
+
276
+ sig { returns(T.nilable(String)) }
277
+ attr_reader :status
278
+
279
+ sig { params(status: String).void }
280
+ attr_writer :status
281
+
282
+ sig { returns(T.nilable(String)) }
283
+ attr_accessor :template_category
284
+
285
+ sig { returns(T.nilable(String)) }
286
+ attr_accessor :template_id
287
+
288
+ sig { returns(T.nilable(String)) }
289
+ attr_accessor :template_name
290
+
291
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions
292
+ sig do
293
+ params(
294
+ id: String,
295
+ active_contact_price: T.nilable(Float),
296
+ channel: String,
297
+ contact_id: String,
298
+ created_at: Time,
299
+ customer_id: String,
300
+ direction: String,
301
+ events:
302
+ T.nilable(
303
+ T::Array[
304
+ Sentdm::Models::ConversationListResponse::Data::Message::Event::OrHash
305
+ ]
306
+ ),
307
+ message_body:
308
+ T.nilable(
309
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::OrHash
310
+ ),
311
+ phone: String,
312
+ phone_international: String,
313
+ price: T.nilable(Float),
314
+ region_code: String,
315
+ status: String,
316
+ template_category: T.nilable(String),
317
+ template_id: T.nilable(String),
318
+ template_name: T.nilable(String)
319
+ ).returns(T.attached_class)
320
+ end
321
+ def self.new(
322
+ id: nil,
323
+ active_contact_price: nil,
324
+ channel: nil,
325
+ contact_id: nil,
326
+ created_at: nil,
327
+ customer_id: nil,
328
+ direction: nil,
329
+ events: nil,
330
+ # Structured message body format for database storage. Preserves channel-specific
331
+ # components (header, body, footer, buttons).
332
+ message_body: nil,
333
+ phone: nil,
334
+ phone_international: nil,
335
+ price: nil,
336
+ region_code: nil,
337
+ status: nil,
338
+ template_category: nil,
339
+ template_id: nil,
340
+ template_name: nil
341
+ )
342
+ end
343
+
344
+ sig do
345
+ override.returns(
346
+ {
347
+ id: String,
348
+ active_contact_price: T.nilable(Float),
349
+ channel: String,
350
+ contact_id: String,
351
+ created_at: Time,
352
+ customer_id: String,
353
+ direction: String,
354
+ events:
355
+ T.nilable(
356
+ T::Array[
357
+ Sentdm::Models::ConversationListResponse::Data::Message::Event
358
+ ]
359
+ ),
360
+ message_body:
361
+ T.nilable(
362
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody
363
+ ),
364
+ phone: String,
365
+ phone_international: String,
366
+ price: T.nilable(Float),
367
+ region_code: String,
368
+ status: String,
369
+ template_category: T.nilable(String),
370
+ template_id: T.nilable(String),
371
+ template_name: T.nilable(String)
372
+ }
373
+ )
374
+ end
375
+ def to_hash
376
+ end
377
+
378
+ class Event < Sentdm::Internal::Type::BaseModel
379
+ OrHash =
380
+ T.type_alias do
381
+ T.any(
382
+ Sentdm::Models::ConversationListResponse::Data::Message::Event,
383
+ Sentdm::Internal::AnyHash
384
+ )
385
+ end
386
+
387
+ sig { returns(String) }
388
+ attr_accessor :status
389
+
390
+ sig { returns(Time) }
391
+ attr_accessor :timestamp
392
+
393
+ sig { returns(T.nilable(String)) }
394
+ attr_accessor :description
395
+
396
+ # Represents a status change event in a message's lifecycle (v3)
397
+ sig do
398
+ params(
399
+ status: String,
400
+ timestamp: Time,
401
+ description: T.nilable(String)
402
+ ).returns(T.attached_class)
403
+ end
404
+ def self.new(status:, timestamp:, description: nil)
405
+ end
406
+
407
+ sig do
408
+ override.returns(
409
+ {
410
+ status: String,
411
+ timestamp: Time,
412
+ description: T.nilable(String)
413
+ }
414
+ )
415
+ end
416
+ def to_hash
417
+ end
418
+ end
419
+
420
+ class MessageBody < Sentdm::Internal::Type::BaseModel
421
+ OrHash =
422
+ T.type_alias do
423
+ T.any(
424
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody,
425
+ Sentdm::Internal::AnyHash
426
+ )
427
+ end
428
+
429
+ sig do
430
+ returns(
431
+ T.nilable(
432
+ T::Array[
433
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button
434
+ ]
435
+ )
436
+ )
437
+ end
438
+ attr_accessor :buttons
439
+
440
+ sig { returns(T.nilable(String)) }
441
+ attr_reader :content
442
+
443
+ sig { params(content: String).void }
444
+ attr_writer :content
445
+
446
+ sig { returns(T.nilable(String)) }
447
+ attr_accessor :footer
448
+
449
+ sig { returns(T.nilable(String)) }
450
+ attr_accessor :header
451
+
452
+ # Structured message body format for database storage. Preserves channel-specific
453
+ # components (header, body, footer, buttons).
454
+ sig do
455
+ params(
456
+ buttons:
457
+ T.nilable(
458
+ T::Array[
459
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button::OrHash
460
+ ]
461
+ ),
462
+ content: String,
463
+ footer: T.nilable(String),
464
+ header: T.nilable(String)
465
+ ).returns(T.attached_class)
466
+ end
467
+ def self.new(buttons: nil, content: nil, footer: nil, header: nil)
468
+ end
469
+
470
+ sig do
471
+ override.returns(
472
+ {
473
+ buttons:
474
+ T.nilable(
475
+ T::Array[
476
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button
477
+ ]
478
+ ),
479
+ content: String,
480
+ footer: T.nilable(String),
481
+ header: T.nilable(String)
482
+ }
483
+ )
484
+ end
485
+ def to_hash
486
+ end
487
+
488
+ class Button < Sentdm::Internal::Type::BaseModel
489
+ OrHash =
490
+ T.type_alias do
491
+ T.any(
492
+ Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button,
493
+ Sentdm::Internal::AnyHash
494
+ )
495
+ end
496
+
497
+ sig { returns(T.nilable(String)) }
498
+ attr_accessor :postback_data
499
+
500
+ sig { returns(T.nilable(String)) }
501
+ attr_accessor :text
502
+
503
+ sig { returns(T.nilable(String)) }
504
+ attr_reader :type
505
+
506
+ sig { params(type: String).void }
507
+ attr_writer :type
508
+
509
+ sig { returns(T.nilable(String)) }
510
+ attr_reader :value
511
+
512
+ sig { params(value: String).void }
513
+ attr_writer :value
514
+
515
+ sig do
516
+ params(
517
+ postback_data: T.nilable(String),
518
+ text: T.nilable(String),
519
+ type: String,
520
+ value: String
521
+ ).returns(T.attached_class)
522
+ end
523
+ def self.new(postback_data: nil, text: nil, type: nil, value: nil)
524
+ end
525
+
526
+ sig do
527
+ override.returns(
528
+ {
529
+ postback_data: T.nilable(String),
530
+ text: T.nilable(String),
531
+ type: String,
532
+ value: String
533
+ }
534
+ )
535
+ end
536
+ def to_hash
537
+ end
538
+ end
539
+ end
540
+ end
541
+
542
+ class Pagination < Sentdm::Internal::Type::BaseModel
543
+ OrHash =
544
+ T.type_alias do
545
+ T.any(
546
+ Sentdm::Models::ConversationListResponse::Data::Pagination,
547
+ Sentdm::Internal::AnyHash
548
+ )
549
+ end
550
+
551
+ # Cursor-based pagination. Never populated — see Cursors.
552
+ sig do
553
+ returns(
554
+ T.nilable(
555
+ Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors
556
+ )
557
+ )
558
+ end
559
+ attr_reader :cursors
560
+
561
+ sig do
562
+ params(
563
+ cursors:
564
+ T.nilable(
565
+ Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors::OrHash
566
+ )
567
+ ).void
568
+ end
569
+ attr_writer :cursors
570
+
571
+ # Whether there are more pages after this one
572
+ sig { returns(T.nilable(T::Boolean)) }
573
+ attr_reader :has_more
574
+
575
+ sig { params(has_more: T::Boolean).void }
576
+ attr_writer :has_more
577
+
578
+ # Current page number (1-indexed)
579
+ sig { returns(T.nilable(Integer)) }
580
+ attr_reader :page
581
+
582
+ sig { params(page: Integer).void }
583
+ attr_writer :page
584
+
585
+ # Number of items per page
586
+ sig { returns(T.nilable(Integer)) }
587
+ attr_reader :page_size
588
+
589
+ sig { params(page_size: Integer).void }
590
+ attr_writer :page_size
591
+
592
+ # Total number of items across all pages
593
+ sig { returns(T.nilable(Integer)) }
594
+ attr_reader :total_count
595
+
596
+ sig { params(total_count: Integer).void }
597
+ attr_writer :total_count
598
+
599
+ # Total number of pages
600
+ sig { returns(T.nilable(Integer)) }
601
+ attr_reader :total_pages
602
+
603
+ sig { params(total_pages: Integer).void }
604
+ attr_writer :total_pages
605
+
606
+ # Pagination metadata for list responses
607
+ sig do
608
+ params(
609
+ cursors:
610
+ T.nilable(
611
+ Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors::OrHash
612
+ ),
613
+ has_more: T::Boolean,
614
+ page: Integer,
615
+ page_size: Integer,
616
+ total_count: Integer,
617
+ total_pages: Integer
618
+ ).returns(T.attached_class)
619
+ end
620
+ def self.new(
621
+ # Cursor-based pagination. Never populated — see Cursors.
622
+ cursors: nil,
623
+ # Whether there are more pages after this one
624
+ has_more: nil,
625
+ # Current page number (1-indexed)
626
+ page: nil,
627
+ # Number of items per page
628
+ page_size: nil,
629
+ # Total number of items across all pages
630
+ total_count: nil,
631
+ # Total number of pages
632
+ total_pages: nil
633
+ )
634
+ end
635
+
636
+ sig do
637
+ override.returns(
638
+ {
639
+ cursors:
640
+ T.nilable(
641
+ Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors
642
+ ),
643
+ has_more: T::Boolean,
644
+ page: Integer,
645
+ page_size: Integer,
646
+ total_count: Integer,
647
+ total_pages: Integer
648
+ }
649
+ )
650
+ end
651
+ def to_hash
652
+ end
653
+
654
+ class Cursors < Sentdm::Internal::Type::BaseModel
655
+ OrHash =
656
+ T.type_alias do
657
+ T.any(
658
+ Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors,
659
+ Sentdm::Internal::AnyHash
660
+ )
661
+ end
662
+
663
+ # Cursor to fetch the next page.
664
+ sig { returns(T.nilable(String)) }
665
+ attr_accessor :after
666
+
667
+ # Cursor to fetch the previous page.
668
+ sig { returns(T.nilable(String)) }
669
+ attr_accessor :before
670
+
671
+ # Cursor-based pagination. Never populated — see Cursors.
672
+ sig do
673
+ params(
674
+ after: T.nilable(String),
675
+ before: T.nilable(String)
676
+ ).returns(T.attached_class)
677
+ end
678
+ def self.new(
679
+ # Cursor to fetch the next page.
680
+ after: nil,
681
+ # Cursor to fetch the previous page.
682
+ before: nil
683
+ )
684
+ end
685
+
686
+ sig do
687
+ override.returns(
688
+ { after: T.nilable(String), before: T.nilable(String) }
689
+ )
690
+ end
691
+ def to_hash
692
+ end
693
+ end
694
+ end
695
+ end
696
+
697
+ class Error < Sentdm::Internal::Type::BaseModel
698
+ OrHash =
699
+ T.type_alias do
700
+ T.any(
701
+ Sentdm::Models::ConversationListResponse::Error,
702
+ Sentdm::Internal::AnyHash
703
+ )
704
+ end
705
+
706
+ # Machine-readable error code (e.g., "RESOURCE_001")
707
+ sig { returns(T.nilable(String)) }
708
+ attr_reader :code
709
+
710
+ sig { params(code: String).void }
711
+ attr_writer :code
712
+
713
+ # Additional validation error details (field-level errors)
714
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
715
+ attr_accessor :details
716
+
717
+ # URL to documentation about this error
718
+ sig { returns(T.nilable(String)) }
719
+ attr_accessor :doc_url
720
+
721
+ # Human-readable error message
722
+ sig { returns(T.nilable(String)) }
723
+ attr_reader :message
724
+
725
+ sig { params(message: String).void }
726
+ attr_writer :message
727
+
728
+ # Error information
729
+ sig do
730
+ params(
731
+ code: String,
732
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
733
+ doc_url: T.nilable(String),
734
+ message: String
735
+ ).returns(T.attached_class)
736
+ end
737
+ def self.new(
738
+ # Machine-readable error code (e.g., "RESOURCE_001")
739
+ code: nil,
740
+ # Additional validation error details (field-level errors)
741
+ details: nil,
742
+ # URL to documentation about this error
743
+ doc_url: nil,
744
+ # Human-readable error message
745
+ message: nil
746
+ )
747
+ end
748
+
749
+ sig do
750
+ override.returns(
751
+ {
752
+ code: String,
753
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
754
+ doc_url: T.nilable(String),
755
+ message: String
756
+ }
757
+ )
758
+ end
759
+ def to_hash
760
+ end
761
+ end
762
+
763
+ class Meta < Sentdm::Internal::Type::BaseModel
764
+ OrHash =
765
+ T.type_alias do
766
+ T.any(
767
+ Sentdm::Models::ConversationListResponse::Meta,
768
+ Sentdm::Internal::AnyHash
769
+ )
770
+ end
771
+
772
+ # Unique identifier for this request (for tracing and support)
773
+ sig { returns(T.nilable(String)) }
774
+ attr_reader :request_id
775
+
776
+ sig { params(request_id: String).void }
777
+ attr_writer :request_id
778
+
779
+ # Server timestamp when the response was generated
780
+ sig { returns(T.nilable(Time)) }
781
+ attr_reader :timestamp
782
+
783
+ sig { params(timestamp: Time).void }
784
+ attr_writer :timestamp
785
+
786
+ # API version used for this request
787
+ sig { returns(T.nilable(String)) }
788
+ attr_reader :version
789
+
790
+ sig { params(version: String).void }
791
+ attr_writer :version
792
+
793
+ # Request and response metadata
794
+ sig do
795
+ params(request_id: String, timestamp: Time, version: String).returns(
796
+ T.attached_class
797
+ )
798
+ end
799
+ def self.new(
800
+ # Unique identifier for this request (for tracing and support)
801
+ request_id: nil,
802
+ # Server timestamp when the response was generated
803
+ timestamp: nil,
804
+ # API version used for this request
805
+ version: nil
806
+ )
807
+ end
808
+
809
+ sig do
810
+ override.returns(
811
+ { request_id: String, timestamp: Time, version: String }
812
+ )
813
+ end
814
+ def to_hash
815
+ end
816
+ end
817
+ end
818
+ end
819
+ end