sentdm 0.28.0 → 0.30.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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +27 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_meta.rb +34 -0
  6. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  7. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  10. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  11. data/lib/sentdm/models/api_response_template.rb +43 -0
  12. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  13. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  14. data/lib/sentdm/models/brand_business_info.rb +114 -0
  15. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  16. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  17. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  18. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  19. data/lib/sentdm/models/contact_list_response.rb +12 -295
  20. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  21. data/lib/sentdm/models/contact_response.rb +139 -0
  22. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  23. data/lib/sentdm/models/error_detail.rb +42 -0
  24. data/lib/sentdm/models/inbound_message_event_payload.rb +17 -17
  25. data/lib/sentdm/models/me_retrieve_response.rb +43 -243
  26. data/lib/sentdm/models/message_event_payload.rb +11 -11
  27. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  28. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  29. data/lib/sentdm/models/message_send_response.rb +6 -74
  30. data/lib/sentdm/models/mutation_request.rb +20 -0
  31. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  32. data/lib/sentdm/models/pagination_meta.rb +84 -0
  33. data/lib/sentdm/models/payment_details.rb +40 -0
  34. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  35. data/lib/sentdm/models/profile_create_params.rb +9 -345
  36. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  37. data/lib/sentdm/models/profile_detail.rb +650 -0
  38. data/lib/sentdm/models/profile_list_response.rb +12 -815
  39. data/lib/sentdm/models/profile_settings.rb +85 -0
  40. data/lib/sentdm/models/profile_update_params.rb +9 -345
  41. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  42. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  43. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  44. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  45. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  46. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  47. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  48. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  49. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  50. data/lib/sentdm/models/template.rb +102 -0
  51. data/lib/sentdm/models/template_event_payload.rb +18 -18
  52. data/lib/sentdm/models/template_list_response.rb +12 -258
  53. data/lib/sentdm/models/user_list_response.rb +12 -249
  54. data/lib/sentdm/models/user_remove_params.rb +2 -16
  55. data/lib/sentdm/models/user_response.rb +94 -0
  56. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  57. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  58. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  59. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  60. data/lib/sentdm/models/webhook_response.rb +120 -0
  61. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  62. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  63. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  64. data/lib/sentdm/models.rb +52 -0
  65. data/lib/sentdm/resources/contacts.rb +8 -8
  66. data/lib/sentdm/resources/conversations.rb +4 -4
  67. data/lib/sentdm/resources/me.rb +11 -0
  68. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  69. data/lib/sentdm/resources/profiles.rb +12 -12
  70. data/lib/sentdm/resources/templates.rb +6 -6
  71. data/lib/sentdm/resources/users.rb +6 -6
  72. data/lib/sentdm/resources/webhooks.rb +8 -8
  73. data/lib/sentdm/version.rb +1 -1
  74. data/lib/sentdm.rb +32 -22
  75. data/rbi/sentdm/models/api_meta.rbi +55 -0
  76. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  78. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  79. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  80. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  81. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  82. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  83. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  84. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  85. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  86. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  87. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  88. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  89. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  90. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  91. data/rbi/sentdm/models/contact_response.rbi +200 -0
  92. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  93. data/rbi/sentdm/models/error_detail.rbi +66 -0
  94. data/rbi/sentdm/models/inbound_message_event_payload.rbi +16 -22
  95. data/rbi/sentdm/models/me_retrieve_response.rbi +60 -367
  96. data/rbi/sentdm/models/message_event_payload.rbi +12 -15
  97. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  98. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  99. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  100. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  101. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  102. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  103. data/rbi/sentdm/models/payment_details.rbi +56 -0
  104. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  105. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  106. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  107. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  108. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  109. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  110. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  111. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  112. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  113. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  114. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  115. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  116. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  117. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  118. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  119. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  120. data/rbi/sentdm/models/template.rbi +139 -0
  121. data/rbi/sentdm/models/template_event_payload.rbi +21 -27
  122. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  123. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  124. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  125. data/rbi/sentdm/models/user_response.rbi +131 -0
  126. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  127. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  128. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  129. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  130. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  131. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  132. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  133. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  134. data/rbi/sentdm/models.rbi +54 -0
  135. data/rbi/sentdm/resources/contacts.rbi +4 -4
  136. data/rbi/sentdm/resources/conversations.rbi +2 -2
  137. data/rbi/sentdm/resources/me.rbi +11 -0
  138. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  139. data/rbi/sentdm/resources/profiles.rbi +9 -13
  140. data/rbi/sentdm/resources/templates.rbi +3 -3
  141. data/rbi/sentdm/resources/users.rbi +3 -3
  142. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  143. data/sig/sentdm/models/api_meta.rbs +27 -0
  144. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  145. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  146. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  147. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  148. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  149. data/sig/sentdm/models/api_response_template.rbs +39 -0
  150. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  151. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  152. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  153. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  154. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  155. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  156. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  157. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  158. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  159. data/sig/sentdm/models/contact_response.rbs +118 -0
  160. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  161. data/sig/sentdm/models/error_detail.rbs +39 -0
  162. data/sig/sentdm/models/inbound_message_event_payload.rbs +10 -14
  163. data/sig/sentdm/models/me_retrieve_response.rbs +28 -176
  164. data/sig/sentdm/models/message_event_payload.rbs +5 -7
  165. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  166. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  167. data/sig/sentdm/models/message_send_response.rbs +9 -71
  168. data/sig/sentdm/models/mutation_request.rbs +15 -0
  169. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  170. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  171. data/sig/sentdm/models/payment_details.rbs +30 -0
  172. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  173. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  174. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  175. data/sig/sentdm/models/profile_detail.rbs +461 -0
  176. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  177. data/sig/sentdm/models/profile_settings.rbs +50 -0
  178. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  179. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  180. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  181. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  182. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  183. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  184. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  185. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  186. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  187. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  188. data/sig/sentdm/models/template.rbs +84 -0
  189. data/sig/sentdm/models/template_event_payload.rbs +13 -17
  190. data/sig/sentdm/models/template_list_response.rbs +19 -230
  191. data/sig/sentdm/models/user_list_response.rbs +20 -224
  192. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  193. data/sig/sentdm/models/user_response.rbs +79 -0
  194. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  195. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  196. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  197. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  198. data/sig/sentdm/models/webhook_response.rbs +110 -0
  199. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  200. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  201. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  202. data/sig/sentdm/models.rbs +52 -0
  203. data/sig/sentdm/resources/contacts.rbs +4 -4
  204. data/sig/sentdm/resources/conversations.rbs +2 -2
  205. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  206. data/sig/sentdm/resources/profiles.rbs +9 -9
  207. data/sig/sentdm/resources/templates.rbs +3 -3
  208. data/sig/sentdm/resources/users.rbs +3 -3
  209. data/sig/sentdm/resources/webhooks.rbs +4 -4
  210. metadata +98 -68
  211. data/lib/sentdm/models/contact_create_response.rb +0 -249
  212. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  213. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  214. data/lib/sentdm/models/contact_update_response.rb +0 -249
  215. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  216. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  217. data/lib/sentdm/models/profile_create_response.rb +0 -760
  218. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  219. data/lib/sentdm/models/profile_update_response.rb +0 -760
  220. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  221. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  222. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  223. data/lib/sentdm/models/template_create_response.rb +0 -209
  224. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  225. data/lib/sentdm/models/template_update_response.rb +0 -209
  226. data/lib/sentdm/models/user_invite_response.rb +0 -201
  227. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  228. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  229. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  230. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  231. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  232. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  233. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  234. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  235. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  236. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  237. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  238. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  239. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  240. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  241. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  242. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  243. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  244. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  245. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  246. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  247. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  248. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  249. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  250. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  251. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  252. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  253. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  254. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  255. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  256. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  257. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  258. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  259. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  260. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  261. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  262. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  263. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  264. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  265. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  266. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  267. data/sig/sentdm/models/template_create_response.rbs +0 -182
  268. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  269. data/sig/sentdm/models/template_update_response.rbs +0 -182
  270. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  271. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  272. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  273. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  274. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  275. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  276. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -0,0 +1,245 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ConversationMessagesList < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute messages
7
+ # The messages on this page.
8
+ #
9
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message>, nil]
10
+ optional :messages, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message] }
11
+
12
+ # @!attribute pagination
13
+ # Pagination metadata for list responses
14
+ #
15
+ # @return [Sentdm::Models::PaginationMeta, nil]
16
+ optional :pagination, -> { Sentdm::PaginationMeta }
17
+
18
+ # @!method initialize(messages: nil, pagination: nil)
19
+ # A paginated list of messages — used by both conversation read endpoints.
20
+ #
21
+ # @param messages [Array<Sentdm::Models::ConversationMessagesList::Message>] The messages on this page.
22
+ #
23
+ # @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
24
+
25
+ class Message < Sentdm::Internal::Type::BaseModel
26
+ # @!attribute id
27
+ #
28
+ # @return [String, nil]
29
+ optional :id, String
30
+
31
+ # @!attribute active_contact_price
32
+ #
33
+ # @return [Float, nil]
34
+ optional :active_contact_price, Float, nil?: true
35
+
36
+ # @!attribute channel
37
+ #
38
+ # @return [String, nil]
39
+ optional :channel, String
40
+
41
+ # @!attribute contact_id
42
+ #
43
+ # @return [String, nil]
44
+ optional :contact_id, String
45
+
46
+ # @!attribute created_at
47
+ #
48
+ # @return [Time, nil]
49
+ optional :created_at, Time
50
+
51
+ # @!attribute customer_id
52
+ #
53
+ # @return [String, nil]
54
+ optional :customer_id, String
55
+
56
+ # @!attribute direction
57
+ #
58
+ # @return [String, nil]
59
+ optional :direction, String
60
+
61
+ # @!attribute events
62
+ #
63
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
64
+ optional :events,
65
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::Event] },
66
+ nil?: true
67
+
68
+ # @!attribute message_body
69
+ # Structured message body format for database storage. Preserves channel-specific
70
+ # components (header, body, footer, buttons).
71
+ #
72
+ # @return [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil]
73
+ optional :message_body, -> { Sentdm::ConversationMessagesList::Message::MessageBody }, nil?: true
74
+
75
+ # @!attribute phone
76
+ #
77
+ # @return [String, nil]
78
+ optional :phone, String
79
+
80
+ # @!attribute phone_international
81
+ #
82
+ # @return [String, nil]
83
+ optional :phone_international, String
84
+
85
+ # @!attribute price
86
+ #
87
+ # @return [Float, nil]
88
+ optional :price, Float, nil?: true
89
+
90
+ # @!attribute region_code
91
+ #
92
+ # @return [String, nil]
93
+ optional :region_code, String
94
+
95
+ # @!attribute status
96
+ #
97
+ # @return [String, nil]
98
+ optional :status, String
99
+
100
+ # @!attribute template_category
101
+ #
102
+ # @return [String, nil]
103
+ optional :template_category, String, nil?: true
104
+
105
+ # @!attribute template_id
106
+ #
107
+ # @return [String, nil]
108
+ optional :template_id, String, nil?: true
109
+
110
+ # @!attribute template_name
111
+ #
112
+ # @return [String, nil]
113
+ optional :template_name, String, nil?: true
114
+
115
+ # @!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)
116
+ # Some parameter documentations has been truncated, see
117
+ # {Sentdm::Models::ConversationMessagesList::Message} for more details.
118
+ #
119
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions
120
+ #
121
+ # @param id [String]
122
+ #
123
+ # @param active_contact_price [Float, nil]
124
+ #
125
+ # @param channel [String]
126
+ #
127
+ # @param contact_id [String]
128
+ #
129
+ # @param created_at [Time]
130
+ #
131
+ # @param customer_id [String]
132
+ #
133
+ # @param direction [String]
134
+ #
135
+ # @param events [Array<Sentdm::Models::ConversationMessagesList::Message::Event>, nil]
136
+ #
137
+ # @param message_body [Sentdm::Models::ConversationMessagesList::Message::MessageBody, nil] Structured message body format for database storage.
138
+ #
139
+ # @param phone [String]
140
+ #
141
+ # @param phone_international [String]
142
+ #
143
+ # @param price [Float, nil]
144
+ #
145
+ # @param region_code [String]
146
+ #
147
+ # @param status [String]
148
+ #
149
+ # @param template_category [String, nil]
150
+ #
151
+ # @param template_id [String, nil]
152
+ #
153
+ # @param template_name [String, nil]
154
+
155
+ class Event < Sentdm::Internal::Type::BaseModel
156
+ # @!attribute status
157
+ #
158
+ # @return [String]
159
+ required :status, String
160
+
161
+ # @!attribute timestamp
162
+ #
163
+ # @return [Time]
164
+ required :timestamp, Time
165
+
166
+ # @!attribute description
167
+ #
168
+ # @return [String, nil]
169
+ optional :description, String, nil?: true
170
+
171
+ # @!method initialize(status:, timestamp:, description: nil)
172
+ # Represents a status change event in a message's lifecycle (v3)
173
+ #
174
+ # @param status [String]
175
+ # @param timestamp [Time]
176
+ # @param description [String, nil]
177
+ end
178
+
179
+ # @see Sentdm::Models::ConversationMessagesList::Message#message_body
180
+ class MessageBody < Sentdm::Internal::Type::BaseModel
181
+ # @!attribute buttons
182
+ #
183
+ # @return [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
184
+ optional :buttons,
185
+ -> {
186
+ Sentdm::Internal::Type::ArrayOf[Sentdm::ConversationMessagesList::Message::MessageBody::Button]
187
+ },
188
+ nil?: true
189
+
190
+ # @!attribute content
191
+ #
192
+ # @return [String, nil]
193
+ optional :content, String
194
+
195
+ # @!attribute footer
196
+ #
197
+ # @return [String, nil]
198
+ optional :footer, String, nil?: true
199
+
200
+ # @!attribute header
201
+ #
202
+ # @return [String, nil]
203
+ optional :header, String, nil?: true
204
+
205
+ # @!method initialize(buttons: nil, content: nil, footer: nil, header: nil)
206
+ # Structured message body format for database storage. Preserves channel-specific
207
+ # components (header, body, footer, buttons).
208
+ #
209
+ # @param buttons [Array<Sentdm::Models::ConversationMessagesList::Message::MessageBody::Button>, nil]
210
+ # @param content [String]
211
+ # @param footer [String, nil]
212
+ # @param header [String, nil]
213
+
214
+ class Button < Sentdm::Internal::Type::BaseModel
215
+ # @!attribute postback_data
216
+ #
217
+ # @return [String, nil]
218
+ optional :postback_data, String, api_name: :postbackData, nil?: true
219
+
220
+ # @!attribute text
221
+ #
222
+ # @return [String, nil]
223
+ optional :text, String, nil?: true
224
+
225
+ # @!attribute type
226
+ #
227
+ # @return [String, nil]
228
+ optional :type, String
229
+
230
+ # @!attribute value
231
+ #
232
+ # @return [String, nil]
233
+ optional :value, String
234
+
235
+ # @!method initialize(postback_data: nil, text: nil, type: nil, value: nil)
236
+ # @param postback_data [String, nil]
237
+ # @param text [String, nil]
238
+ # @param type [String]
239
+ # @param value [String]
240
+ end
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ErrorDetail < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute code
7
+ # Machine-readable error code (e.g., "RESOURCE_001")
8
+ #
9
+ # @return [String, nil]
10
+ optional :code, String
11
+
12
+ # @!attribute details
13
+ # Additional validation error details (field-level errors)
14
+ #
15
+ # @return [Hash{Symbol=>Array<String>}, nil]
16
+ optional :details, Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]], nil?: true
17
+
18
+ # @!attribute doc_url
19
+ # URL to documentation about this error
20
+ #
21
+ # @return [String, nil]
22
+ optional :doc_url, String, nil?: true
23
+
24
+ # @!attribute message
25
+ # Human-readable error message
26
+ #
27
+ # @return [String, nil]
28
+ optional :message, String
29
+
30
+ # @!method initialize(code: nil, details: nil, doc_url: nil, message: nil)
31
+ # Error information
32
+ #
33
+ # @param code [String] Machine-readable error code (e.g., "RESOURCE_001")
34
+ #
35
+ # @param details [Hash{Symbol=>Array<String>}, nil] Additional validation error details (field-level errors)
36
+ #
37
+ # @param doc_url [String, nil] URL to documentation about this error
38
+ #
39
+ # @param message [String] Human-readable error message
40
+ end
41
+ end
42
+ 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