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
@@ -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
@@ -3,6 +3,18 @@
3
3
  module Sentdm
4
4
  module Models
5
5
  class InboundMessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute inbound_number
7
+ # The contact's number in E.164 format, meaning the number the message came from.
8
+ #
9
+ # @return [String]
10
+ required :inbound_number, String
11
+
12
+ # @!attribute received_at
13
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
14
+ #
15
+ # @return [String]
16
+ required :received_at, String
17
+
6
18
  # @!attribute account_id
7
19
  # The account the message belongs to.
8
20
  #
@@ -15,12 +27,6 @@ module Sentdm
15
27
  # @return [String, nil]
16
28
  optional :channel, String
17
29
 
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
30
  # @!attribute message_id
25
31
  # The inbound message.
26
32
  #
@@ -33,12 +39,6 @@ module Sentdm
33
39
  # @return [String, nil]
34
40
  optional :outbound_number, String
35
41
 
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
42
  # @!attribute text
43
43
  # The message body. Sent as null when the inbound message carried no text, for
44
44
  # example a media-only message. The field is always present, so read it and check
@@ -54,25 +54,25 @@ module Sentdm
54
54
  # @return [String, nil]
55
55
  optional :updated_at, String
56
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)
57
+ # @!method initialize(inbound_number:, received_at:, account_id: nil, channel: nil, message_id: nil, outbound_number: nil, text: nil, updated_at: nil)
58
58
  # Some parameter documentations has been truncated, see
59
59
  # {Sentdm::Models::InboundMessageEventPayload} for more details.
60
60
  #
61
61
  # Body of a message.received event. Delivered when a contact messages one of your
62
62
  # numbers.
63
63
  #
64
+ # @param inbound_number [String] The contact's number in E.164 format, meaning the number the message came from.
65
+ #
66
+ # @param received_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
67
+ #
64
68
  # @param account_id [String] The account the message belongs to.
65
69
  #
66
70
  # @param channel [String] The channel the message arrived on, for example sms or whatsapp.
67
71
  #
68
- # @param inbound_number [String] The contact's number in E.164 format, meaning the number the message came from.
69
- #
70
72
  # @param message_id [String] The inbound message.
71
73
  #
72
74
  # @param outbound_number [String] Your number in E.164 format, meaning the number the message was addressed to.
73
75
  #
74
- # @param received_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
75
- #
76
76
  # @param text [String, nil] The message body. Sent as null when the inbound message carried no text, for
77
77
  #
78
78
  # @param updated_at [String] When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as