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
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandContactInfo < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute name
7
+ # Primary contact name (required)
8
+ #
9
+ # @return [String]
10
+ required :name, String
11
+
12
+ # @!attribute business_name
13
+ # Business/brand name
14
+ #
15
+ # @return [String, nil]
16
+ optional :business_name, String, api_name: :businessName, nil?: true
17
+
18
+ # @!attribute email
19
+ # Contact email address
20
+ #
21
+ # @return [String, nil]
22
+ optional :email, String, nil?: true
23
+
24
+ # @!attribute phone
25
+ # Contact phone number in E.164 format
26
+ #
27
+ # @return [String, nil]
28
+ optional :phone, String, nil?: true
29
+
30
+ # @!attribute phone_country_code
31
+ # Contact phone country code (e.g., "1" for US)
32
+ #
33
+ # @return [String, nil]
34
+ optional :phone_country_code, String, api_name: :phoneCountryCode, nil?: true
35
+
36
+ # @!attribute role
37
+ # Contact's role in the business
38
+ #
39
+ # @return [String, nil]
40
+ optional :role, String, nil?: true
41
+
42
+ # @!method initialize(name:, business_name: nil, email: nil, phone: nil, phone_country_code: nil, role: nil)
43
+ # Contact information for brand KYC
44
+ #
45
+ # @param name [String] Primary contact name (required)
46
+ #
47
+ # @param business_name [String, nil] Business/brand name
48
+ #
49
+ # @param email [String, nil] Contact email address
50
+ #
51
+ # @param phone [String, nil] Contact phone number in E.164 format
52
+ #
53
+ # @param phone_country_code [String, nil] Contact phone country code (e.g., "1" for US)
54
+ #
55
+ # @param role [String, nil] Contact's role in the business
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandsBrandData < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute compliance
7
+ # Compliance and TCR information for brand registration
8
+ #
9
+ # @return [Sentdm::Models::BrandComplianceInfo]
10
+ required :compliance, -> { Sentdm::BrandComplianceInfo }
11
+
12
+ # @!attribute contact
13
+ # Contact information for brand KYC
14
+ #
15
+ # @return [Sentdm::Models::BrandContactInfo]
16
+ required :contact, -> { Sentdm::BrandContactInfo }
17
+
18
+ # @!attribute business
19
+ # Business details and address for brand KYC
20
+ #
21
+ # @return [Sentdm::Models::BrandBusinessInfo, nil]
22
+ optional :business, -> { Sentdm::BrandBusinessInfo }, nil?: true
23
+
24
+ # @!method initialize(compliance:, contact:, business: nil)
25
+ # Brand and KYC data grouped into contact, business, and compliance sections
26
+ #
27
+ # @param compliance [Sentdm::Models::BrandComplianceInfo] Compliance and TCR information for brand registration
28
+ #
29
+ # @param contact [Sentdm::Models::BrandContactInfo] Contact information for brand KYC
30
+ #
31
+ # @param business [Sentdm::Models::BrandBusinessInfo, nil] Business details and address for brand KYC
32
+ end
33
+ end
34
+ end
@@ -3,7 +3,7 @@
3
3
  module Sentdm
4
4
  module Models
5
5
  # @see Sentdm::Resources::Contacts#delete
6
- class ContactDeleteParams < Sentdm::Internal::Type::BaseModel
6
+ class ContactDeleteParams < Sentdm::Models::MutationRequest
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
@@ -12,28 +12,14 @@ module Sentdm
12
12
  # @return [String]
13
13
  required :id, String
14
14
 
15
- # @!attribute sandbox
16
- # Sandbox flag - when true, the operation is simulated without side effects Useful
17
- # for testing integrations without actual execution
18
- #
19
- # @return [Boolean, nil]
20
- optional :sandbox, Sentdm::Internal::Type::Boolean
21
-
22
15
  # @!attribute x_profile_id
23
16
  #
24
17
  # @return [String, nil]
25
18
  optional :x_profile_id, String
26
19
 
27
- # @!method initialize(id:, sandbox: nil, x_profile_id: nil, request_options: {})
28
- # Some parameter documentations has been truncated, see
29
- # {Sentdm::Models::ContactDeleteParams} for more details.
30
- #
20
+ # @!method initialize(id:, x_profile_id: nil, request_options: {})
31
21
  # @param id [String]
32
- #
33
- # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
34
- #
35
22
  # @param x_profile_id [String]
36
- #
37
23
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
38
24
  end
39
25
  end
@@ -7,23 +7,23 @@ module Sentdm
7
7
  extend Sentdm::Internal::Type::RequestParameters::Converter
8
8
  include Sentdm::Internal::Type::RequestParameters
9
9
 
10
+ # @!attribute channel
11
+ # Optional channel filter (sms, whatsapp)
12
+ #
13
+ # @return [String, nil]
14
+ optional :channel, String, nil?: true
15
+
10
16
  # @!attribute page
11
17
  # Page number (1-indexed)
12
18
  #
13
- # @return [Integer]
14
- required :page, Integer
19
+ # @return [Integer, nil]
20
+ optional :page, Integer
15
21
 
16
22
  # @!attribute page_size
17
23
  # Number of items per page
18
24
  #
19
- # @return [Integer]
20
- required :page_size, Integer
21
-
22
- # @!attribute channel
23
- # Optional channel filter (sms, whatsapp)
24
- #
25
- # @return [String, nil]
26
- optional :channel, String, nil?: true
25
+ # @return [Integer, nil]
26
+ optional :page_size, Integer
27
27
 
28
28
  # @!attribute phone
29
29
  # Optional phone number filter (alternative to list view)
@@ -42,13 +42,13 @@ module Sentdm
42
42
  # @return [String, nil]
43
43
  optional :x_profile_id, String
44
44
 
45
- # @!method initialize(page:, page_size:, channel: nil, phone: nil, search: nil, x_profile_id: nil, request_options: {})
45
+ # @!method initialize(channel: nil, page: nil, page_size: nil, phone: nil, search: nil, x_profile_id: nil, request_options: {})
46
+ # @param channel [String, nil] Optional channel filter (sms, whatsapp)
47
+ #
46
48
  # @param page [Integer] Page number (1-indexed)
47
49
  #
48
50
  # @param page_size [Integer] Number of items per page
49
51
  #
50
- # @param channel [String, nil] Optional channel filter (sms, whatsapp)
51
- #
52
52
  # @param phone [String, nil] Optional phone number filter (alternative to list view)
53
53
  #
54
54
  # @param search [String, nil] Optional search term for filtering contacts
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ContactMessageSummary < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute channel_scores
7
+ #
8
+ # @return [Array<Sentdm::Models::ContactMessageSummary::ChannelScore>, nil]
9
+ optional :channel_scores,
10
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::ContactMessageSummary::ChannelScore] }
11
+
12
+ # @!attribute channels_used
13
+ #
14
+ # @return [Array<String>, nil]
15
+ optional :channels_used, Sentdm::Internal::Type::ArrayOf[String]
16
+
17
+ # @!attribute contact_id
18
+ #
19
+ # @return [String, nil]
20
+ optional :contact_id, String
21
+
22
+ # @!attribute first_message_at
23
+ #
24
+ # @return [Time, nil]
25
+ optional :first_message_at, Time, nil?: true
26
+
27
+ # @!attribute last_message_at
28
+ #
29
+ # @return [Time, nil]
30
+ optional :last_message_at, Time, nil?: true
31
+
32
+ # @!attribute message_count
33
+ #
34
+ # @return [Integer, nil]
35
+ optional :message_count, Integer
36
+
37
+ # @!method initialize(channel_scores: nil, channels_used: nil, contact_id: nil, first_message_at: nil, last_message_at: nil, message_count: nil)
38
+ # @param channel_scores [Array<Sentdm::Models::ContactMessageSummary::ChannelScore>]
39
+ # @param channels_used [Array<String>]
40
+ # @param contact_id [String]
41
+ # @param first_message_at [Time, nil]
42
+ # @param last_message_at [Time, nil]
43
+ # @param message_count [Integer]
44
+
45
+ class ChannelScore < Sentdm::Internal::Type::BaseModel
46
+ # @!attribute channel
47
+ #
48
+ # @return [String, nil]
49
+ optional :channel, String
50
+
51
+ # @!attribute fail_score
52
+ # Percentage (0-100) of messages on this channel that ended in FAILED.
53
+ #
54
+ # @return [Integer, nil]
55
+ optional :fail_score, Integer
56
+
57
+ # @!attribute success_score
58
+ # Percentage (0-100) of messages on this channel that reached a successful
59
+ # terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
60
+ #
61
+ # @return [Integer, nil]
62
+ optional :success_score, Integer
63
+
64
+ # @!method initialize(channel: nil, fail_score: nil, success_score: nil)
65
+ # Some parameter documentations has been truncated, see
66
+ # {Sentdm::Models::ContactMessageSummary::ChannelScore} for more details.
67
+ #
68
+ # @param channel [String]
69
+ #
70
+ # @param fail_score [Integer] Percentage (0-100) of messages on this channel that ended in FAILED.
71
+ #
72
+ # @param success_score [Integer] Percentage (0-100) of messages on this channel that reached a successful termina
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,140 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Contacts#list
6
+ class ContactResponse < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ # Unique identifier for the contact
9
+ #
10
+ # @return [String, nil]
11
+ optional :id, String
12
+
13
+ # @!attribute available_channels
14
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
15
+ #
16
+ # @return [String, nil]
17
+ optional :available_channels, String
18
+
19
+ # @!attribute country_code
20
+ # Country calling code (e.g., 1 for US/Canada)
21
+ #
22
+ # @return [String, nil]
23
+ optional :country_code, String
24
+
25
+ # @!attribute created_at
26
+ # When the contact was created
27
+ #
28
+ # @return [Time, nil]
29
+ optional :created_at, Time
30
+
31
+ # @!attribute customer_id
32
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
33
+ # Says whose resource this is, which the resource's own id does not.
34
+ #
35
+ # @return [String, nil]
36
+ optional :customer_id, String
37
+
38
+ # @!attribute default_channel
39
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
40
+ #
41
+ # @return [String, nil]
42
+ optional :default_channel, String
43
+
44
+ # @!attribute format_e164
45
+ # Phone number in E.164 format (e.g., +1234567890)
46
+ #
47
+ # @return [String, nil]
48
+ optional :format_e164, String
49
+
50
+ # @!attribute format_international
51
+ # Phone number in international format (e.g., +1 234-567-890)
52
+ #
53
+ # @return [String, nil]
54
+ optional :format_international, String
55
+
56
+ # @!attribute format_national
57
+ # Phone number in national format (e.g., (234) 567-890)
58
+ #
59
+ # @return [String, nil]
60
+ optional :format_national, String
61
+
62
+ # @!attribute format_rfc
63
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
64
+ #
65
+ # @return [String, nil]
66
+ optional :format_rfc, String
67
+
68
+ # @!attribute is_inherited
69
+ # @deprecated
70
+ #
71
+ # Always false. Contacts are no longer shared or inherited between sender profiles
72
+ # — a profile sees only the contacts it owns. Retained so existing v3 clients
73
+ # reading is_inherited keep deserializing; it carries no information.
74
+ #
75
+ # @return [Boolean, nil]
76
+ optional :is_inherited, Sentdm::Internal::Type::Boolean
77
+
78
+ # @!attribute opt_out
79
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
80
+ # is per-contact, not per-channel.
81
+ #
82
+ # @return [Boolean, nil]
83
+ optional :opt_out, Sentdm::Internal::Type::Boolean
84
+
85
+ # @!attribute phone_number
86
+ # Phone number in original format
87
+ #
88
+ # @return [String, nil]
89
+ optional :phone_number, String
90
+
91
+ # @!attribute region_code
92
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
93
+ #
94
+ # @return [String, nil]
95
+ optional :region_code, String
96
+
97
+ # @!attribute updated_at
98
+ # When the contact was last updated
99
+ #
100
+ # @return [Time, nil]
101
+ optional :updated_at, Time, nil?: true
102
+
103
+ # @!method initialize(id: nil, available_channels: nil, country_code: nil, created_at: nil, customer_id: nil, default_channel: nil, format_e164: nil, format_international: nil, format_national: nil, format_rfc: nil, is_inherited: nil, opt_out: nil, phone_number: nil, region_code: nil, updated_at: nil)
104
+ # Some parameter documentations has been truncated, see
105
+ # {Sentdm::Models::ContactResponse} for more details.
106
+ #
107
+ # Contact response for v3 API Uses snake_case for JSON property names
108
+ #
109
+ # @param id [String] Unique identifier for the contact
110
+ #
111
+ # @param available_channels [String] Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
112
+ #
113
+ # @param country_code [String] Country calling code (e.g., 1 for US/Canada)
114
+ #
115
+ # @param created_at [Time] When the contact was created
116
+ #
117
+ # @param customer_id [String] Which customer owns this — the key's own, or the profile named in x-profile-id.
118
+ #
119
+ # @param default_channel [String] Default messaging channel to use (e.g., "sms" or "whatsapp")
120
+ #
121
+ # @param format_e164 [String] Phone number in E.164 format (e.g., +1234567890)
122
+ #
123
+ # @param format_international [String] Phone number in international format (e.g., +1 234-567-890)
124
+ #
125
+ # @param format_national [String] Phone number in national format (e.g., (234) 567-890)
126
+ #
127
+ # @param format_rfc [String] Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
128
+ #
129
+ # @param is_inherited [Boolean] Always false. Contacts are no longer shared or inherited between sender profiles
130
+ #
131
+ # @param opt_out [Boolean] Whether the contact has opted out of messaging. Single source of truth — opt-out
132
+ #
133
+ # @param phone_number [String] Phone number in original format
134
+ #
135
+ # @param region_code [String] ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
136
+ #
137
+ # @param updated_at [Time, nil] When the contact was last updated
138
+ end
139
+ end
140
+ end
@@ -14,20 +14,20 @@ module Sentdm
14
14
 
15
15
  # @!attribute page
16
16
  #
17
- # @return [Integer]
18
- required :page, Integer
17
+ # @return [Integer, nil]
18
+ optional :page, Integer
19
19
 
20
20
  # @!attribute page_size
21
21
  #
22
- # @return [Integer]
23
- required :page_size, Integer
22
+ # @return [Integer, nil]
23
+ optional :page_size, Integer
24
24
 
25
25
  # @!attribute x_profile_id
26
26
  #
27
27
  # @return [String, nil]
28
28
  optional :x_profile_id, String
29
29
 
30
- # @!method initialize(id:, page:, page_size:, x_profile_id: nil, request_options: {})
30
+ # @!method initialize(id:, page: nil, page_size: nil, x_profile_id: nil, request_options: {})
31
31
  # @param id [String]
32
32
  # @param page [Integer]
33
33
  # @param page_size [Integer]
@@ -9,20 +9,20 @@ module Sentdm
9
9
 
10
10
  # @!attribute page
11
11
  #
12
- # @return [Integer]
13
- required :page, Integer
12
+ # @return [Integer, nil]
13
+ optional :page, Integer
14
14
 
15
15
  # @!attribute page_size
16
16
  #
17
- # @return [Integer]
18
- required :page_size, Integer
17
+ # @return [Integer, nil]
18
+ optional :page_size, Integer
19
19
 
20
20
  # @!attribute x_profile_id
21
21
  #
22
22
  # @return [String, nil]
23
23
  optional :x_profile_id, String
24
24
 
25
- # @!method initialize(page:, page_size:, x_profile_id: nil, request_options: {})
25
+ # @!method initialize(page: nil, page_size: nil, x_profile_id: nil, request_options: {})
26
26
  # @param page [Integer]
27
27
  # @param page_size [Integer]
28
28
  # @param x_profile_id [String]
@@ -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