sentdm 0.29.0 → 0.31.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 (298) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +55 -1
  4. data/lib/sentdm/internal/contacts_page.rb +115 -0
  5. data/lib/sentdm/internal/conversations_page.rb +115 -0
  6. data/lib/sentdm/internal/templates_page.rb +115 -0
  7. data/lib/sentdm/internal/type/base_model.rb +5 -5
  8. data/lib/sentdm/internal/webhook_events_page.rb +115 -0
  9. data/lib/sentdm/internal/webhooks_page.rb +115 -0
  10. data/lib/sentdm/models/api_meta.rb +34 -0
  11. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  12. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  13. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +42 -0
  14. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  15. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  16. data/lib/sentdm/models/api_response_template.rb +43 -0
  17. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  18. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  19. data/lib/sentdm/models/brand_business_info.rb +114 -0
  20. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  21. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  22. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  23. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  24. data/lib/sentdm/models/contact_list_params.rb +13 -13
  25. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  26. data/lib/sentdm/models/contact_response.rb +140 -0
  27. data/lib/sentdm/models/conversation_list_messages_params.rb +5 -5
  28. data/lib/sentdm/models/conversation_list_params.rb +5 -5
  29. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  30. data/lib/sentdm/models/error_detail.rb +42 -0
  31. data/lib/sentdm/models/me_retrieve_response.rb +12 -242
  32. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  33. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  34. data/lib/sentdm/models/message_send_response.rb +6 -74
  35. data/lib/sentdm/models/mutation_request.rb +20 -0
  36. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  37. data/lib/sentdm/models/pagination_meta.rb +84 -0
  38. data/lib/sentdm/models/payment_details.rb +40 -0
  39. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  40. data/lib/sentdm/models/profile_create_params.rb +9 -345
  41. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  42. data/lib/sentdm/models/profile_detail.rb +650 -0
  43. data/lib/sentdm/models/profile_list_response.rb +12 -815
  44. data/lib/sentdm/models/profile_settings.rb +85 -0
  45. data/lib/sentdm/models/profile_update_params.rb +9 -345
  46. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  47. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  48. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  49. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  50. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  51. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  52. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  53. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  54. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  55. data/lib/sentdm/models/template.rb +103 -0
  56. data/lib/sentdm/models/template_list_params.rb +17 -17
  57. data/lib/sentdm/models/user_list_response.rb +12 -249
  58. data/lib/sentdm/models/user_remove_params.rb +2 -16
  59. data/lib/sentdm/models/user_response.rb +94 -0
  60. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  61. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  62. data/lib/sentdm/models/webhook_list_events_params.rb +5 -5
  63. data/lib/sentdm/models/webhook_list_events_response.rb +87 -295
  64. data/lib/sentdm/models/webhook_list_params.rb +11 -11
  65. data/lib/sentdm/models/webhook_response.rb +121 -0
  66. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  67. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  68. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  69. data/lib/sentdm/models.rb +52 -0
  70. data/lib/sentdm/resources/contacts.rb +16 -15
  71. data/lib/sentdm/resources/conversations.rb +10 -8
  72. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  73. data/lib/sentdm/resources/profiles.rb +12 -12
  74. data/lib/sentdm/resources/templates.rb +16 -15
  75. data/lib/sentdm/resources/users.rb +6 -6
  76. data/lib/sentdm/resources/webhooks.rb +20 -18
  77. data/lib/sentdm/version.rb +1 -1
  78. data/lib/sentdm.rb +37 -25
  79. data/rbi/sentdm/internal/contacts_page.rbi +71 -0
  80. data/rbi/sentdm/internal/conversations_page.rbi +71 -0
  81. data/rbi/sentdm/internal/templates_page.rbi +71 -0
  82. data/rbi/sentdm/internal/webhook_events_page.rbi +71 -0
  83. data/rbi/sentdm/internal/webhooks_page.rbi +71 -0
  84. data/rbi/sentdm/models/api_meta.rbi +55 -0
  85. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  86. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  87. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  88. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  89. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  90. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  91. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  92. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  93. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  94. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  95. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  96. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  97. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  98. data/rbi/sentdm/models/contact_list_params.rbi +19 -13
  99. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  100. data/rbi/sentdm/models/contact_response.rbi +200 -0
  101. data/rbi/sentdm/models/conversation_list_messages_params.rbi +12 -6
  102. data/rbi/sentdm/models/conversation_list_params.rbi +16 -5
  103. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  104. data/rbi/sentdm/models/error_detail.rbi +66 -0
  105. data/rbi/sentdm/models/me_retrieve_response.rbi +16 -367
  106. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  107. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  108. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  109. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  110. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  111. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  112. data/rbi/sentdm/models/payment_details.rbi +56 -0
  113. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  114. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  115. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  116. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  117. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  118. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  119. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  120. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  121. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  122. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  123. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  124. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  125. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  126. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  127. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  128. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  129. data/rbi/sentdm/models/template.rbi +139 -0
  130. data/rbi/sentdm/models/template_list_params.rbi +22 -16
  131. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  132. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  133. data/rbi/sentdm/models/user_response.rbi +131 -0
  134. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  135. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  136. data/rbi/sentdm/models/webhook_list_events_params.rbi +12 -6
  137. data/rbi/sentdm/models/webhook_list_events_response.rbi +113 -564
  138. data/rbi/sentdm/models/webhook_list_params.rbi +16 -10
  139. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  140. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  141. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  142. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  143. data/rbi/sentdm/models.rbi +54 -0
  144. data/rbi/sentdm/resources/contacts.rbi +10 -10
  145. data/rbi/sentdm/resources/conversations.rbi +14 -6
  146. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  147. data/rbi/sentdm/resources/profiles.rbi +9 -13
  148. data/rbi/sentdm/resources/templates.rbi +10 -10
  149. data/rbi/sentdm/resources/users.rbi +3 -3
  150. data/rbi/sentdm/resources/webhooks.rbi +16 -12
  151. data/sig/sentdm/internal/contacts_page.rbs +41 -0
  152. data/sig/sentdm/internal/conversations_page.rbs +41 -0
  153. data/sig/sentdm/internal/templates_page.rbs +44 -0
  154. data/sig/sentdm/internal/webhook_events_page.rbs +41 -0
  155. data/sig/sentdm/internal/webhooks_page.rbs +41 -0
  156. data/sig/sentdm/models/api_meta.rbs +27 -0
  157. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  158. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  159. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  160. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  161. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  162. data/sig/sentdm/models/api_response_template.rbs +39 -0
  163. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  164. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  165. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  166. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  167. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  168. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  169. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  170. data/sig/sentdm/models/contact_list_params.rbs +11 -7
  171. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  172. data/sig/sentdm/models/contact_response.rbs +118 -0
  173. data/sig/sentdm/models/conversation_list_messages_params.rbs +8 -4
  174. data/sig/sentdm/models/conversation_list_params.rbs +8 -4
  175. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  176. data/sig/sentdm/models/error_detail.rbs +39 -0
  177. data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
  178. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  179. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  180. data/sig/sentdm/models/message_send_response.rbs +9 -71
  181. data/sig/sentdm/models/mutation_request.rbs +15 -0
  182. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  183. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  184. data/sig/sentdm/models/payment_details.rbs +30 -0
  185. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  186. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  187. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  188. data/sig/sentdm/models/profile_detail.rbs +461 -0
  189. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  190. data/sig/sentdm/models/profile_settings.rbs +50 -0
  191. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  192. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  193. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  194. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  195. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  196. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  197. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  198. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  199. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  200. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  201. data/sig/sentdm/models/template.rbs +84 -0
  202. data/sig/sentdm/models/template_list_params.rbs +14 -10
  203. data/sig/sentdm/models/user_list_response.rbs +20 -224
  204. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  205. data/sig/sentdm/models/user_response.rbs +79 -0
  206. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  207. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  208. data/sig/sentdm/models/webhook_list_events_params.rbs +8 -4
  209. data/sig/sentdm/models/webhook_list_events_response.rbs +63 -255
  210. data/sig/sentdm/models/webhook_list_params.rbs +11 -7
  211. data/sig/sentdm/models/webhook_response.rbs +110 -0
  212. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  213. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  214. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  215. data/sig/sentdm/models.rbs +52 -0
  216. data/sig/sentdm/resources/contacts.rbs +7 -7
  217. data/sig/sentdm/resources/conversations.rbs +6 -6
  218. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  219. data/sig/sentdm/resources/profiles.rbs +9 -9
  220. data/sig/sentdm/resources/templates.rbs +6 -6
  221. data/sig/sentdm/resources/users.rbs +3 -3
  222. data/sig/sentdm/resources/webhooks.rbs +10 -10
  223. metadata +113 -77
  224. data/lib/sentdm/models/contact_create_response.rb +0 -249
  225. data/lib/sentdm/models/contact_list_response.rb +0 -348
  226. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  227. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  228. data/lib/sentdm/models/contact_update_response.rb +0 -249
  229. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  230. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  231. data/lib/sentdm/models/profile_create_response.rb +0 -760
  232. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  233. data/lib/sentdm/models/profile_update_response.rb +0 -760
  234. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  235. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  236. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  237. data/lib/sentdm/models/template_create_response.rb +0 -209
  238. data/lib/sentdm/models/template_list_response.rb +0 -311
  239. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  240. data/lib/sentdm/models/template_update_response.rb +0 -209
  241. data/lib/sentdm/models/user_invite_response.rb +0 -201
  242. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  243. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  244. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  245. data/lib/sentdm/models/webhook_list_response.rb +0 -329
  246. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  247. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  248. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  249. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  250. data/rbi/sentdm/models/contact_list_response.rbi +0 -634
  251. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  252. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  253. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  254. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  255. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  256. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  257. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  258. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  259. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  260. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  261. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  262. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  263. data/rbi/sentdm/models/template_list_response.rbi +0 -576
  264. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  265. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  266. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  267. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  268. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  269. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  270. data/rbi/sentdm/models/webhook_list_response.rbi +0 -587
  271. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  272. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  273. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  274. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  275. data/sig/sentdm/models/contact_list_response.rbs +0 -310
  276. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  277. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  278. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  279. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  280. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  281. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  282. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  283. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  284. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  285. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  286. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  287. data/sig/sentdm/models/template_create_response.rbs +0 -182
  288. data/sig/sentdm/models/template_list_response.rbs +0 -276
  289. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  290. data/sig/sentdm/models/template_update_response.rbs +0 -182
  291. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  292. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  293. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  294. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  295. data/sig/sentdm/models/webhook_list_response.rbs +0 -302
  296. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  297. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  298. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -17,11 +17,17 @@ module Sentdm
17
17
  sig { returns(String) }
18
18
  attr_accessor :id
19
19
 
20
- sig { returns(Integer) }
21
- attr_accessor :page
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_reader :page
22
22
 
23
- sig { returns(Integer) }
24
- attr_accessor :page_size
23
+ sig { params(page: Integer).void }
24
+ attr_writer :page
25
+
26
+ sig { returns(T.nilable(Integer)) }
27
+ attr_reader :page_size
28
+
29
+ sig { params(page_size: Integer).void }
30
+ attr_writer :page_size
25
31
 
26
32
  sig { returns(T.nilable(String)) }
27
33
  attr_reader :x_profile_id
@@ -40,8 +46,8 @@ module Sentdm
40
46
  end
41
47
  def self.new(
42
48
  id:,
43
- page:,
44
- page_size:,
49
+ page: nil,
50
+ page_size: nil,
45
51
  x_profile_id: nil,
46
52
  request_options: {}
47
53
  )
@@ -11,11 +11,17 @@ module Sentdm
11
11
  T.any(Sentdm::ConversationListParams, Sentdm::Internal::AnyHash)
12
12
  end
13
13
 
14
- sig { returns(Integer) }
15
- attr_accessor :page
14
+ sig { returns(T.nilable(Integer)) }
15
+ attr_reader :page
16
16
 
17
- sig { returns(Integer) }
18
- attr_accessor :page_size
17
+ sig { params(page: Integer).void }
18
+ attr_writer :page
19
+
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_reader :page_size
22
+
23
+ sig { params(page_size: Integer).void }
24
+ attr_writer :page_size
19
25
 
20
26
  sig { returns(T.nilable(String)) }
21
27
  attr_reader :x_profile_id
@@ -31,7 +37,12 @@ module Sentdm
31
37
  request_options: Sentdm::RequestOptions::OrHash
32
38
  ).returns(T.attached_class)
33
39
  end
34
- def self.new(page:, page_size:, x_profile_id: nil, request_options: {})
40
+ def self.new(
41
+ page: nil,
42
+ page_size: nil,
43
+ x_profile_id: nil,
44
+ request_options: {}
45
+ )
35
46
  end
36
47
 
37
48
  sig do
@@ -0,0 +1,419 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ConversationMessagesList < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::ConversationMessagesList, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The messages on this page.
12
+ sig do
13
+ returns(T.nilable(T::Array[Sentdm::ConversationMessagesList::Message]))
14
+ end
15
+ attr_reader :messages
16
+
17
+ sig do
18
+ params(
19
+ messages: T::Array[Sentdm::ConversationMessagesList::Message::OrHash]
20
+ ).void
21
+ end
22
+ attr_writer :messages
23
+
24
+ # Pagination metadata for list responses
25
+ sig { returns(T.nilable(Sentdm::PaginationMeta)) }
26
+ attr_reader :pagination
27
+
28
+ sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
29
+ attr_writer :pagination
30
+
31
+ # A paginated list of messages — used by both conversation read endpoints.
32
+ sig do
33
+ params(
34
+ messages: T::Array[Sentdm::ConversationMessagesList::Message::OrHash],
35
+ pagination: Sentdm::PaginationMeta::OrHash
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # The messages on this page.
40
+ messages: nil,
41
+ # Pagination metadata for list responses
42
+ pagination: nil
43
+ )
44
+ end
45
+
46
+ sig do
47
+ override.returns(
48
+ {
49
+ messages: T::Array[Sentdm::ConversationMessagesList::Message],
50
+ pagination: Sentdm::PaginationMeta
51
+ }
52
+ )
53
+ end
54
+ def to_hash
55
+ end
56
+
57
+ class Message < Sentdm::Internal::Type::BaseModel
58
+ OrHash =
59
+ T.type_alias do
60
+ T.any(
61
+ Sentdm::ConversationMessagesList::Message,
62
+ Sentdm::Internal::AnyHash
63
+ )
64
+ end
65
+
66
+ sig { returns(T.nilable(String)) }
67
+ attr_reader :id
68
+
69
+ sig { params(id: String).void }
70
+ attr_writer :id
71
+
72
+ sig { returns(T.nilable(Float)) }
73
+ attr_accessor :active_contact_price
74
+
75
+ sig { returns(T.nilable(String)) }
76
+ attr_reader :channel
77
+
78
+ sig { params(channel: String).void }
79
+ attr_writer :channel
80
+
81
+ sig { returns(T.nilable(String)) }
82
+ attr_reader :contact_id
83
+
84
+ sig { params(contact_id: String).void }
85
+ attr_writer :contact_id
86
+
87
+ sig { returns(T.nilable(Time)) }
88
+ attr_reader :created_at
89
+
90
+ sig { params(created_at: Time).void }
91
+ attr_writer :created_at
92
+
93
+ sig { returns(T.nilable(String)) }
94
+ attr_reader :customer_id
95
+
96
+ sig { params(customer_id: String).void }
97
+ attr_writer :customer_id
98
+
99
+ sig { returns(T.nilable(String)) }
100
+ attr_reader :direction
101
+
102
+ sig { params(direction: String).void }
103
+ attr_writer :direction
104
+
105
+ sig do
106
+ returns(
107
+ T.nilable(
108
+ T::Array[Sentdm::ConversationMessagesList::Message::Event]
109
+ )
110
+ )
111
+ end
112
+ attr_accessor :events
113
+
114
+ # Structured message body format for database storage. Preserves channel-specific
115
+ # components (header, body, footer, buttons).
116
+ sig do
117
+ returns(
118
+ T.nilable(Sentdm::ConversationMessagesList::Message::MessageBody)
119
+ )
120
+ end
121
+ attr_reader :message_body
122
+
123
+ sig do
124
+ params(
125
+ message_body:
126
+ T.nilable(
127
+ Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
128
+ )
129
+ ).void
130
+ end
131
+ attr_writer :message_body
132
+
133
+ sig { returns(T.nilable(String)) }
134
+ attr_reader :phone
135
+
136
+ sig { params(phone: String).void }
137
+ attr_writer :phone
138
+
139
+ sig { returns(T.nilable(String)) }
140
+ attr_reader :phone_international
141
+
142
+ sig { params(phone_international: String).void }
143
+ attr_writer :phone_international
144
+
145
+ sig { returns(T.nilable(Float)) }
146
+ attr_accessor :price
147
+
148
+ sig { returns(T.nilable(String)) }
149
+ attr_reader :region_code
150
+
151
+ sig { params(region_code: String).void }
152
+ attr_writer :region_code
153
+
154
+ sig { returns(T.nilable(String)) }
155
+ attr_reader :status
156
+
157
+ sig { params(status: String).void }
158
+ attr_writer :status
159
+
160
+ sig { returns(T.nilable(String)) }
161
+ attr_accessor :template_category
162
+
163
+ sig { returns(T.nilable(String)) }
164
+ attr_accessor :template_id
165
+
166
+ sig { returns(T.nilable(String)) }
167
+ attr_accessor :template_name
168
+
169
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions
170
+ sig do
171
+ params(
172
+ id: String,
173
+ active_contact_price: T.nilable(Float),
174
+ channel: String,
175
+ contact_id: String,
176
+ created_at: Time,
177
+ customer_id: String,
178
+ direction: String,
179
+ events:
180
+ T.nilable(
181
+ T::Array[
182
+ Sentdm::ConversationMessagesList::Message::Event::OrHash
183
+ ]
184
+ ),
185
+ message_body:
186
+ T.nilable(
187
+ Sentdm::ConversationMessagesList::Message::MessageBody::OrHash
188
+ ),
189
+ phone: String,
190
+ phone_international: String,
191
+ price: T.nilable(Float),
192
+ region_code: String,
193
+ status: String,
194
+ template_category: T.nilable(String),
195
+ template_id: T.nilable(String),
196
+ template_name: T.nilable(String)
197
+ ).returns(T.attached_class)
198
+ end
199
+ def self.new(
200
+ id: nil,
201
+ active_contact_price: nil,
202
+ channel: nil,
203
+ contact_id: nil,
204
+ created_at: nil,
205
+ customer_id: nil,
206
+ direction: nil,
207
+ events: nil,
208
+ # Structured message body format for database storage. Preserves channel-specific
209
+ # components (header, body, footer, buttons).
210
+ message_body: nil,
211
+ phone: nil,
212
+ phone_international: nil,
213
+ price: nil,
214
+ region_code: nil,
215
+ status: nil,
216
+ template_category: nil,
217
+ template_id: nil,
218
+ template_name: nil
219
+ )
220
+ end
221
+
222
+ sig do
223
+ override.returns(
224
+ {
225
+ id: String,
226
+ active_contact_price: T.nilable(Float),
227
+ channel: String,
228
+ contact_id: String,
229
+ created_at: Time,
230
+ customer_id: String,
231
+ direction: String,
232
+ events:
233
+ T.nilable(
234
+ T::Array[Sentdm::ConversationMessagesList::Message::Event]
235
+ ),
236
+ message_body:
237
+ T.nilable(
238
+ Sentdm::ConversationMessagesList::Message::MessageBody
239
+ ),
240
+ phone: String,
241
+ phone_international: String,
242
+ price: T.nilable(Float),
243
+ region_code: String,
244
+ status: String,
245
+ template_category: T.nilable(String),
246
+ template_id: T.nilable(String),
247
+ template_name: T.nilable(String)
248
+ }
249
+ )
250
+ end
251
+ def to_hash
252
+ end
253
+
254
+ class Event < Sentdm::Internal::Type::BaseModel
255
+ OrHash =
256
+ T.type_alias do
257
+ T.any(
258
+ Sentdm::ConversationMessagesList::Message::Event,
259
+ Sentdm::Internal::AnyHash
260
+ )
261
+ end
262
+
263
+ sig { returns(String) }
264
+ attr_accessor :status
265
+
266
+ sig { returns(Time) }
267
+ attr_accessor :timestamp
268
+
269
+ sig { returns(T.nilable(String)) }
270
+ attr_accessor :description
271
+
272
+ # Represents a status change event in a message's lifecycle (v3)
273
+ sig do
274
+ params(
275
+ status: String,
276
+ timestamp: Time,
277
+ description: T.nilable(String)
278
+ ).returns(T.attached_class)
279
+ end
280
+ def self.new(status:, timestamp:, description: nil)
281
+ end
282
+
283
+ sig do
284
+ override.returns(
285
+ {
286
+ status: String,
287
+ timestamp: Time,
288
+ description: T.nilable(String)
289
+ }
290
+ )
291
+ end
292
+ def to_hash
293
+ end
294
+ end
295
+
296
+ class MessageBody < Sentdm::Internal::Type::BaseModel
297
+ OrHash =
298
+ T.type_alias do
299
+ T.any(
300
+ Sentdm::ConversationMessagesList::Message::MessageBody,
301
+ Sentdm::Internal::AnyHash
302
+ )
303
+ end
304
+
305
+ sig do
306
+ returns(
307
+ T.nilable(
308
+ T::Array[
309
+ Sentdm::ConversationMessagesList::Message::MessageBody::Button
310
+ ]
311
+ )
312
+ )
313
+ end
314
+ attr_accessor :buttons
315
+
316
+ sig { returns(T.nilable(String)) }
317
+ attr_reader :content
318
+
319
+ sig { params(content: String).void }
320
+ attr_writer :content
321
+
322
+ sig { returns(T.nilable(String)) }
323
+ attr_accessor :footer
324
+
325
+ sig { returns(T.nilable(String)) }
326
+ attr_accessor :header
327
+
328
+ # Structured message body format for database storage. Preserves channel-specific
329
+ # components (header, body, footer, buttons).
330
+ sig do
331
+ params(
332
+ buttons:
333
+ T.nilable(
334
+ T::Array[
335
+ Sentdm::ConversationMessagesList::Message::MessageBody::Button::OrHash
336
+ ]
337
+ ),
338
+ content: String,
339
+ footer: T.nilable(String),
340
+ header: T.nilable(String)
341
+ ).returns(T.attached_class)
342
+ end
343
+ def self.new(buttons: nil, content: nil, footer: nil, header: nil)
344
+ end
345
+
346
+ sig do
347
+ override.returns(
348
+ {
349
+ buttons:
350
+ T.nilable(
351
+ T::Array[
352
+ Sentdm::ConversationMessagesList::Message::MessageBody::Button
353
+ ]
354
+ ),
355
+ content: String,
356
+ footer: T.nilable(String),
357
+ header: T.nilable(String)
358
+ }
359
+ )
360
+ end
361
+ def to_hash
362
+ end
363
+
364
+ class Button < Sentdm::Internal::Type::BaseModel
365
+ OrHash =
366
+ T.type_alias do
367
+ T.any(
368
+ Sentdm::ConversationMessagesList::Message::MessageBody::Button,
369
+ Sentdm::Internal::AnyHash
370
+ )
371
+ end
372
+
373
+ sig { returns(T.nilable(String)) }
374
+ attr_accessor :postback_data
375
+
376
+ sig { returns(T.nilable(String)) }
377
+ attr_accessor :text
378
+
379
+ sig { returns(T.nilable(String)) }
380
+ attr_reader :type
381
+
382
+ sig { params(type: String).void }
383
+ attr_writer :type
384
+
385
+ sig { returns(T.nilable(String)) }
386
+ attr_reader :value
387
+
388
+ sig { params(value: String).void }
389
+ attr_writer :value
390
+
391
+ sig do
392
+ params(
393
+ postback_data: T.nilable(String),
394
+ text: T.nilable(String),
395
+ type: String,
396
+ value: String
397
+ ).returns(T.attached_class)
398
+ end
399
+ def self.new(postback_data: nil, text: nil, type: nil, value: nil)
400
+ end
401
+
402
+ sig do
403
+ override.returns(
404
+ {
405
+ postback_data: T.nilable(String),
406
+ text: T.nilable(String),
407
+ type: String,
408
+ value: String
409
+ }
410
+ )
411
+ end
412
+ def to_hash
413
+ end
414
+ end
415
+ end
416
+ end
417
+ end
418
+ end
419
+ end
@@ -0,0 +1,66 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ErrorDetail < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::ErrorDetail, Sentdm::Internal::AnyHash) }
8
+
9
+ # Machine-readable error code (e.g., "RESOURCE_001")
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :code
12
+
13
+ sig { params(code: String).void }
14
+ attr_writer :code
15
+
16
+ # Additional validation error details (field-level errors)
17
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
18
+ attr_accessor :details
19
+
20
+ # URL to documentation about this error
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :doc_url
23
+
24
+ # Human-readable error message
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :message
27
+
28
+ sig { params(message: String).void }
29
+ attr_writer :message
30
+
31
+ # Error information
32
+ sig do
33
+ params(
34
+ code: String,
35
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
36
+ doc_url: T.nilable(String),
37
+ message: String
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+ # Machine-readable error code (e.g., "RESOURCE_001")
42
+ code: nil,
43
+ # Additional validation error details (field-level errors)
44
+ details: nil,
45
+ # URL to documentation about this error
46
+ doc_url: nil,
47
+ # Human-readable error message
48
+ message: nil
49
+ )
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ code: String,
56
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
57
+ doc_url: T.nilable(String),
58
+ message: String
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+ end
65
+ end
66
+ end