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,433 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Conversations#list
6
+ class ConversationListResponse < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # A paginated list of messages — used by both conversation read endpoints.
9
+ #
10
+ # @return [Sentdm::Models::ConversationListResponse::Data, nil]
11
+ optional :data, -> { Sentdm::Models::ConversationListResponse::Data }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ConversationListResponse::Error, nil]
17
+ optional :error, -> { Sentdm::Models::ConversationListResponse::Error }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::ConversationListResponse::Meta, nil]
23
+ optional :meta, -> { Sentdm::Models::ConversationListResponse::Meta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::ConversationListResponse::Data, nil] A paginated list of messages — used by both conversation read endpoints.
35
+ #
36
+ # @param error [Sentdm::Models::ConversationListResponse::Error, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::ConversationListResponse::Meta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+
42
+ # @see Sentdm::Models::ConversationListResponse#data
43
+ class Data < Sentdm::Internal::Type::BaseModel
44
+ # @!attribute messages
45
+ # The messages on this page.
46
+ #
47
+ # @return [Array<Sentdm::Models::ConversationListResponse::Data::Message>, nil]
48
+ optional :messages,
49
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::ConversationListResponse::Data::Message] }
50
+
51
+ # @!attribute pagination
52
+ # Pagination metadata for list responses
53
+ #
54
+ # @return [Sentdm::Models::ConversationListResponse::Data::Pagination, nil]
55
+ optional :pagination, -> { Sentdm::Models::ConversationListResponse::Data::Pagination }
56
+
57
+ # @!method initialize(messages: nil, pagination: nil)
58
+ # A paginated list of messages — used by both conversation read endpoints.
59
+ #
60
+ # @param messages [Array<Sentdm::Models::ConversationListResponse::Data::Message>] The messages on this page.
61
+ #
62
+ # @param pagination [Sentdm::Models::ConversationListResponse::Data::Pagination] Pagination metadata for list responses
63
+
64
+ class Message < Sentdm::Internal::Type::BaseModel
65
+ # @!attribute id
66
+ #
67
+ # @return [String, nil]
68
+ optional :id, String
69
+
70
+ # @!attribute active_contact_price
71
+ #
72
+ # @return [Float, nil]
73
+ optional :active_contact_price, Float, nil?: true
74
+
75
+ # @!attribute channel
76
+ #
77
+ # @return [String, nil]
78
+ optional :channel, String
79
+
80
+ # @!attribute contact_id
81
+ #
82
+ # @return [String, nil]
83
+ optional :contact_id, String
84
+
85
+ # @!attribute created_at
86
+ #
87
+ # @return [Time, nil]
88
+ optional :created_at, Time
89
+
90
+ # @!attribute customer_id
91
+ #
92
+ # @return [String, nil]
93
+ optional :customer_id, String
94
+
95
+ # @!attribute direction
96
+ #
97
+ # @return [String, nil]
98
+ optional :direction, String
99
+
100
+ # @!attribute events
101
+ #
102
+ # @return [Array<Sentdm::Models::ConversationListResponse::Data::Message::Event>, nil]
103
+ optional :events,
104
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::ConversationListResponse::Data::Message::Event] },
105
+ nil?: true
106
+
107
+ # @!attribute message_body
108
+ # Structured message body format for database storage. Preserves channel-specific
109
+ # components (header, body, footer, buttons).
110
+ #
111
+ # @return [Sentdm::Models::ConversationListResponse::Data::Message::MessageBody, nil]
112
+ optional :message_body,
113
+ -> { Sentdm::Models::ConversationListResponse::Data::Message::MessageBody },
114
+ nil?: true
115
+
116
+ # @!attribute phone
117
+ #
118
+ # @return [String, nil]
119
+ optional :phone, String
120
+
121
+ # @!attribute phone_international
122
+ #
123
+ # @return [String, nil]
124
+ optional :phone_international, String
125
+
126
+ # @!attribute price
127
+ #
128
+ # @return [Float, nil]
129
+ optional :price, Float, nil?: true
130
+
131
+ # @!attribute region_code
132
+ #
133
+ # @return [String, nil]
134
+ optional :region_code, String
135
+
136
+ # @!attribute status
137
+ #
138
+ # @return [String, nil]
139
+ optional :status, String
140
+
141
+ # @!attribute template_category
142
+ #
143
+ # @return [String, nil]
144
+ optional :template_category, String, nil?: true
145
+
146
+ # @!attribute template_id
147
+ #
148
+ # @return [String, nil]
149
+ optional :template_id, String, nil?: true
150
+
151
+ # @!attribute template_name
152
+ #
153
+ # @return [String, nil]
154
+ optional :template_name, String, nil?: true
155
+
156
+ # @!method initialize(id: nil, active_contact_price: nil, channel: nil, contact_id: nil, created_at: nil, customer_id: nil, direction: nil, events: nil, message_body: nil, phone: nil, phone_international: nil, price: nil, region_code: nil, status: nil, template_category: nil, template_id: nil, template_name: nil)
157
+ # Some parameter documentations has been truncated, see
158
+ # {Sentdm::Models::ConversationListResponse::Data::Message} for more details.
159
+ #
160
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions
161
+ #
162
+ # @param id [String]
163
+ #
164
+ # @param active_contact_price [Float, nil]
165
+ #
166
+ # @param channel [String]
167
+ #
168
+ # @param contact_id [String]
169
+ #
170
+ # @param created_at [Time]
171
+ #
172
+ # @param customer_id [String]
173
+ #
174
+ # @param direction [String]
175
+ #
176
+ # @param events [Array<Sentdm::Models::ConversationListResponse::Data::Message::Event>, nil]
177
+ #
178
+ # @param message_body [Sentdm::Models::ConversationListResponse::Data::Message::MessageBody, nil] Structured message body format for database storage.
179
+ #
180
+ # @param phone [String]
181
+ #
182
+ # @param phone_international [String]
183
+ #
184
+ # @param price [Float, nil]
185
+ #
186
+ # @param region_code [String]
187
+ #
188
+ # @param status [String]
189
+ #
190
+ # @param template_category [String, nil]
191
+ #
192
+ # @param template_id [String, nil]
193
+ #
194
+ # @param template_name [String, nil]
195
+
196
+ class Event < Sentdm::Internal::Type::BaseModel
197
+ # @!attribute status
198
+ #
199
+ # @return [String]
200
+ required :status, String
201
+
202
+ # @!attribute timestamp
203
+ #
204
+ # @return [Time]
205
+ required :timestamp, Time
206
+
207
+ # @!attribute description
208
+ #
209
+ # @return [String, nil]
210
+ optional :description, String, nil?: true
211
+
212
+ # @!method initialize(status:, timestamp:, description: nil)
213
+ # Represents a status change event in a message's lifecycle (v3)
214
+ #
215
+ # @param status [String]
216
+ # @param timestamp [Time]
217
+ # @param description [String, nil]
218
+ end
219
+
220
+ # @see Sentdm::Models::ConversationListResponse::Data::Message#message_body
221
+ class MessageBody < Sentdm::Internal::Type::BaseModel
222
+ # @!attribute buttons
223
+ #
224
+ # @return [Array<Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button>, nil]
225
+ optional :buttons,
226
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button] },
227
+ nil?: true
228
+
229
+ # @!attribute content
230
+ #
231
+ # @return [String, nil]
232
+ optional :content, String
233
+
234
+ # @!attribute footer
235
+ #
236
+ # @return [String, nil]
237
+ optional :footer, String, nil?: true
238
+
239
+ # @!attribute header
240
+ #
241
+ # @return [String, nil]
242
+ optional :header, String, nil?: true
243
+
244
+ # @!method initialize(buttons: nil, content: nil, footer: nil, header: nil)
245
+ # Structured message body format for database storage. Preserves channel-specific
246
+ # components (header, body, footer, buttons).
247
+ #
248
+ # @param buttons [Array<Sentdm::Models::ConversationListResponse::Data::Message::MessageBody::Button>, nil]
249
+ # @param content [String]
250
+ # @param footer [String, nil]
251
+ # @param header [String, nil]
252
+
253
+ class Button < Sentdm::Internal::Type::BaseModel
254
+ # @!attribute postback_data
255
+ #
256
+ # @return [String, nil]
257
+ optional :postback_data, String, api_name: :postbackData, nil?: true
258
+
259
+ # @!attribute text
260
+ #
261
+ # @return [String, nil]
262
+ optional :text, String, nil?: true
263
+
264
+ # @!attribute type
265
+ #
266
+ # @return [String, nil]
267
+ optional :type, String
268
+
269
+ # @!attribute value
270
+ #
271
+ # @return [String, nil]
272
+ optional :value, String
273
+
274
+ # @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
275
+ # @param postback_data [String, nil]
276
+ # @param text [String, nil]
277
+ # @param type [String]
278
+ # @param value [String]
279
+ end
280
+ end
281
+ end
282
+
283
+ # @see Sentdm::Models::ConversationListResponse::Data#pagination
284
+ class Pagination < Sentdm::Internal::Type::BaseModel
285
+ # @!attribute cursors
286
+ # @deprecated
287
+ #
288
+ # Cursor-based pagination. Never populated — see Cursors.
289
+ #
290
+ # @return [Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors, nil]
291
+ optional :cursors, -> { Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors }, nil?: true
292
+
293
+ # @!attribute has_more
294
+ # Whether there are more pages after this one
295
+ #
296
+ # @return [Boolean, nil]
297
+ optional :has_more, Sentdm::Internal::Type::Boolean
298
+
299
+ # @!attribute page
300
+ # Current page number (1-indexed)
301
+ #
302
+ # @return [Integer, nil]
303
+ optional :page, Integer
304
+
305
+ # @!attribute page_size
306
+ # Number of items per page
307
+ #
308
+ # @return [Integer, nil]
309
+ optional :page_size, Integer
310
+
311
+ # @!attribute total_count
312
+ # Total number of items across all pages
313
+ #
314
+ # @return [Integer, nil]
315
+ optional :total_count, Integer
316
+
317
+ # @!attribute total_pages
318
+ # Total number of pages
319
+ #
320
+ # @return [Integer, nil]
321
+ optional :total_pages, Integer
322
+
323
+ # @!method initialize(cursors: nil, has_more: nil, page: nil, page_size: nil, total_count: nil, total_pages: nil)
324
+ # Pagination metadata for list responses
325
+ #
326
+ # @param cursors [Sentdm::Models::ConversationListResponse::Data::Pagination::Cursors, nil] Cursor-based pagination. Never populated — see Cursors.
327
+ #
328
+ # @param has_more [Boolean] Whether there are more pages after this one
329
+ #
330
+ # @param page [Integer] Current page number (1-indexed)
331
+ #
332
+ # @param page_size [Integer] Number of items per page
333
+ #
334
+ # @param total_count [Integer] Total number of items across all pages
335
+ #
336
+ # @param total_pages [Integer] Total number of pages
337
+
338
+ # @deprecated
339
+ #
340
+ # @see Sentdm::Models::ConversationListResponse::Data::Pagination#cursors
341
+ class Cursors < Sentdm::Internal::Type::BaseModel
342
+ # @!attribute after
343
+ # Cursor to fetch the next page.
344
+ #
345
+ # @return [String, nil]
346
+ optional :after, String, nil?: true
347
+
348
+ # @!attribute before
349
+ # Cursor to fetch the previous page.
350
+ #
351
+ # @return [String, nil]
352
+ optional :before, String, nil?: true
353
+
354
+ # @!method initialize(after: nil, before: nil)
355
+ # Cursor-based pagination. Never populated — see Cursors.
356
+ #
357
+ # @param after [String, nil] Cursor to fetch the next page.
358
+ #
359
+ # @param before [String, nil] Cursor to fetch the previous page.
360
+ end
361
+ end
362
+ end
363
+
364
+ # @see Sentdm::Models::ConversationListResponse#error
365
+ class Error < Sentdm::Internal::Type::BaseModel
366
+ # @!attribute code
367
+ # Machine-readable error code (e.g., "RESOURCE_001")
368
+ #
369
+ # @return [String, nil]
370
+ optional :code, String
371
+
372
+ # @!attribute details
373
+ # Additional validation error details (field-level errors)
374
+ #
375
+ # @return [Hash{Symbol=>Array<String>}, nil]
376
+ optional :details, Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]], nil?: true
377
+
378
+ # @!attribute doc_url
379
+ # URL to documentation about this error
380
+ #
381
+ # @return [String, nil]
382
+ optional :doc_url, String, nil?: true
383
+
384
+ # @!attribute message
385
+ # Human-readable error message
386
+ #
387
+ # @return [String, nil]
388
+ optional :message, String
389
+
390
+ # @!method initialize(code: nil, details: nil, doc_url: nil, message: nil)
391
+ # Error information
392
+ #
393
+ # @param code [String] Machine-readable error code (e.g., "RESOURCE_001")
394
+ #
395
+ # @param details [Hash{Symbol=>Array<String>}, nil] Additional validation error details (field-level errors)
396
+ #
397
+ # @param doc_url [String, nil] URL to documentation about this error
398
+ #
399
+ # @param message [String] Human-readable error message
400
+ end
401
+
402
+ # @see Sentdm::Models::ConversationListResponse#meta
403
+ class Meta < Sentdm::Internal::Type::BaseModel
404
+ # @!attribute request_id
405
+ # Unique identifier for this request (for tracing and support)
406
+ #
407
+ # @return [String, nil]
408
+ optional :request_id, String
409
+
410
+ # @!attribute timestamp
411
+ # Server timestamp when the response was generated
412
+ #
413
+ # @return [Time, nil]
414
+ optional :timestamp, Time
415
+
416
+ # @!attribute version
417
+ # API version used for this request
418
+ #
419
+ # @return [String, nil]
420
+ optional :version, String
421
+
422
+ # @!method initialize(request_id: nil, timestamp: nil, version: nil)
423
+ # Request and response metadata
424
+ #
425
+ # @param request_id [String] Unique identifier for this request (for tracing and support)
426
+ #
427
+ # @param timestamp [Time] Server timestamp when the response was generated
428
+ #
429
+ # @param version [String] API version used for this request
430
+ end
431
+ end
432
+ end
433
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEvent < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute event
7
+ # The specific event within the family, for example message.delivered or
8
+ # message.received. Absent on events that have no subtype, so treat it as
9
+ # optional.
10
+ #
11
+ # @return [String, nil]
12
+ optional :event, String, nil?: true
13
+
14
+ # @!attribute field
15
+ # The event family, for example message or templates. Route on this first, then on
16
+ # event for the specific change.
17
+ #
18
+ # @return [String, nil]
19
+ optional :field, String
20
+
21
+ # @!attribute payload
22
+ # Body of a message.received event. Delivered when a contact messages one of your
23
+ # numbers.
24
+ #
25
+ # @return [Sentdm::Models::InboundMessageEventPayload, nil]
26
+ optional :payload, -> { Sentdm::InboundMessageEventPayload }, nil?: true
27
+
28
+ # @!attribute timestamp
29
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
30
+ # time, not the time the underlying change happened. Use the timestamp inside the
31
+ # payload for the latter.
32
+ #
33
+ # @return [String, nil]
34
+ optional :timestamp, String
35
+
36
+ # @!method initialize(event: nil, field: nil, payload: nil, timestamp: nil)
37
+ # Some parameter documentations has been truncated, see
38
+ # {Sentdm::Models::InboundMessageEvent} for more details.
39
+ #
40
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
41
+ # this shape and varies only in Payload.
42
+ #
43
+ # @param event [String, nil] The specific event within the family, for example message.delivered or
44
+ #
45
+ # @param field [String] The event family, for example message or templates. Route on this first, then
46
+ #
47
+ # @param payload [Sentdm::Models::InboundMessageEventPayload, nil] Body of a message.received event. Delivered when a contact messages one of your
48
+ #
49
+ # @param timestamp [String] When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute account_id
7
+ # The account the message belongs to.
8
+ #
9
+ # @return [String, nil]
10
+ optional :account_id, String
11
+
12
+ # @!attribute channel
13
+ # The channel the message arrived on, for example sms or whatsapp.
14
+ #
15
+ # @return [String, nil]
16
+ optional :channel, String
17
+
18
+ # @!attribute inbound_number
19
+ # The contact's number in E.164 format, meaning the number the message came from.
20
+ #
21
+ # @return [String, nil]
22
+ optional :inbound_number, String
23
+
24
+ # @!attribute message_id
25
+ # The inbound message.
26
+ #
27
+ # @return [String, nil]
28
+ optional :message_id, String
29
+
30
+ # @!attribute outbound_number
31
+ # Your number in E.164 format, meaning the number the message was addressed to.
32
+ #
33
+ # @return [String, nil]
34
+ optional :outbound_number, String
35
+
36
+ # @!attribute received_at
37
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
38
+ #
39
+ # @return [String, nil]
40
+ optional :received_at, String
41
+
42
+ # @!attribute text
43
+ # The message body. Sent as null when the inbound message carried no text, for
44
+ # example a media-only message. The field is always present, so read it and check
45
+ # for null rather than checking whether the key exists.
46
+ #
47
+ # @return [String, nil]
48
+ optional :text, String, nil?: true
49
+
50
+ # @!attribute updated_at
51
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
52
+ # ReceivedAt, kept for envelope consistency with outbound events.
53
+ #
54
+ # @return [String, nil]
55
+ optional :updated_at, String
56
+
57
+ # @!method initialize(account_id: nil, channel: nil, inbound_number: nil, message_id: nil, outbound_number: nil, received_at: nil, text: nil, updated_at: nil)
58
+ # Some parameter documentations has been truncated, see
59
+ # {Sentdm::Models::InboundMessageEventPayload} for more details.
60
+ #
61
+ # Body of a message.received event. Delivered when a contact messages one of your
62
+ # numbers.
63
+ #
64
+ # @param account_id [String] The account the message belongs to.
65
+ #
66
+ # @param channel [String] The channel the message arrived on, for example sms or whatsapp.
67
+ #
68
+ # @param inbound_number [String] The contact's number in E.164 format, meaning the number the message came from.
69
+ #
70
+ # @param message_id [String] The inbound message.
71
+ #
72
+ # @param outbound_number [String] Your number in E.164 format, meaning the number the message was addressed to.
73
+ #
74
+ # @param received_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
75
+ #
76
+ # @param text [String, nil] The message body. Sent as null when the inbound message carried no text, for
77
+ #
78
+ # @param updated_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
79
+ end
80
+ end
81
+ end