sentdm 0.29.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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -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/me_retrieve_response.rb +12 -242
  25. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  26. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  27. data/lib/sentdm/models/message_send_response.rb +6 -74
  28. data/lib/sentdm/models/mutation_request.rb +20 -0
  29. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  30. data/lib/sentdm/models/pagination_meta.rb +84 -0
  31. data/lib/sentdm/models/payment_details.rb +40 -0
  32. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  33. data/lib/sentdm/models/profile_create_params.rb +9 -345
  34. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  35. data/lib/sentdm/models/profile_detail.rb +650 -0
  36. data/lib/sentdm/models/profile_list_response.rb +12 -815
  37. data/lib/sentdm/models/profile_settings.rb +85 -0
  38. data/lib/sentdm/models/profile_update_params.rb +9 -345
  39. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  40. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  41. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  42. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  43. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  44. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  45. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  46. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  47. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  48. data/lib/sentdm/models/template.rb +102 -0
  49. data/lib/sentdm/models/template_list_response.rb +12 -258
  50. data/lib/sentdm/models/user_list_response.rb +12 -249
  51. data/lib/sentdm/models/user_remove_params.rb +2 -16
  52. data/lib/sentdm/models/user_response.rb +94 -0
  53. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  54. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  55. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  56. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  57. data/lib/sentdm/models/webhook_response.rb +120 -0
  58. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  59. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  60. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  61. data/lib/sentdm/models.rb +52 -0
  62. data/lib/sentdm/resources/contacts.rb +8 -8
  63. data/lib/sentdm/resources/conversations.rb +4 -4
  64. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  65. data/lib/sentdm/resources/profiles.rb +12 -12
  66. data/lib/sentdm/resources/templates.rb +6 -6
  67. data/lib/sentdm/resources/users.rb +6 -6
  68. data/lib/sentdm/resources/webhooks.rb +8 -8
  69. data/lib/sentdm/version.rb +1 -1
  70. data/lib/sentdm.rb +32 -22
  71. data/rbi/sentdm/models/api_meta.rbi +55 -0
  72. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  73. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  74. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  75. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  76. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  78. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  79. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  80. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  81. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  82. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  83. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  84. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  85. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  86. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  87. data/rbi/sentdm/models/contact_response.rbi +200 -0
  88. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  89. data/rbi/sentdm/models/error_detail.rbi +66 -0
  90. data/rbi/sentdm/models/me_retrieve_response.rbi +16 -367
  91. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  92. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  93. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  94. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  95. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  96. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  97. data/rbi/sentdm/models/payment_details.rbi +56 -0
  98. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  99. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  100. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  101. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  102. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  103. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  104. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  105. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  106. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  107. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  108. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  109. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  110. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  111. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  112. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  113. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  114. data/rbi/sentdm/models/template.rbi +139 -0
  115. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  116. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  117. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  118. data/rbi/sentdm/models/user_response.rbi +131 -0
  119. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  120. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  121. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  122. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  123. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  124. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  125. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  126. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  127. data/rbi/sentdm/models.rbi +54 -0
  128. data/rbi/sentdm/resources/contacts.rbi +4 -4
  129. data/rbi/sentdm/resources/conversations.rbi +2 -2
  130. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  131. data/rbi/sentdm/resources/profiles.rbi +9 -13
  132. data/rbi/sentdm/resources/templates.rbi +3 -3
  133. data/rbi/sentdm/resources/users.rbi +3 -3
  134. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  135. data/sig/sentdm/models/api_meta.rbs +27 -0
  136. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  137. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  138. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  139. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  140. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  141. data/sig/sentdm/models/api_response_template.rbs +39 -0
  142. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  143. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  144. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  145. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  146. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  147. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  148. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  149. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  150. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  151. data/sig/sentdm/models/contact_response.rbs +118 -0
  152. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  153. data/sig/sentdm/models/error_detail.rbs +39 -0
  154. data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
  155. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  156. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  157. data/sig/sentdm/models/message_send_response.rbs +9 -71
  158. data/sig/sentdm/models/mutation_request.rbs +15 -0
  159. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  160. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  161. data/sig/sentdm/models/payment_details.rbs +30 -0
  162. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  163. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  164. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  165. data/sig/sentdm/models/profile_detail.rbs +461 -0
  166. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  167. data/sig/sentdm/models/profile_settings.rbs +50 -0
  168. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  169. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  170. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  171. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  172. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  173. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  174. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  175. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  176. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  177. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  178. data/sig/sentdm/models/template.rbs +84 -0
  179. data/sig/sentdm/models/template_list_response.rbs +19 -230
  180. data/sig/sentdm/models/user_list_response.rbs +20 -224
  181. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  182. data/sig/sentdm/models/user_response.rbs +79 -0
  183. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  184. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  185. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  186. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  187. data/sig/sentdm/models/webhook_response.rbs +110 -0
  188. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  189. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  190. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  191. data/sig/sentdm/models.rbs +52 -0
  192. data/sig/sentdm/resources/contacts.rbs +4 -4
  193. data/sig/sentdm/resources/conversations.rbs +2 -2
  194. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  195. data/sig/sentdm/resources/profiles.rbs +9 -9
  196. data/sig/sentdm/resources/templates.rbs +3 -3
  197. data/sig/sentdm/resources/users.rbs +3 -3
  198. data/sig/sentdm/resources/webhooks.rbs +4 -4
  199. metadata +98 -68
  200. data/lib/sentdm/models/contact_create_response.rb +0 -249
  201. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  202. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  203. data/lib/sentdm/models/contact_update_response.rb +0 -249
  204. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  205. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  206. data/lib/sentdm/models/profile_create_response.rb +0 -760
  207. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  208. data/lib/sentdm/models/profile_update_response.rb +0 -760
  209. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  210. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  211. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  212. data/lib/sentdm/models/template_create_response.rb +0 -209
  213. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  214. data/lib/sentdm/models/template_update_response.rb +0 -209
  215. data/lib/sentdm/models/user_invite_response.rb +0 -201
  216. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  217. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  218. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  219. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  220. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  221. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  222. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  223. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  224. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  225. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  226. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  227. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  228. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  229. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  230. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  231. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  232. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  233. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  234. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  235. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  236. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  237. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  238. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  239. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  240. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  241. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  242. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  243. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  244. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  245. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  246. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  247. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  248. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  249. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  250. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  251. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  252. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  253. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  254. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  255. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  256. data/sig/sentdm/models/template_create_response.rbs +0 -182
  257. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  258. data/sig/sentdm/models/template_update_response.rbs +0 -182
  259. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  260. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  261. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  262. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  263. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  264. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  265. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03c0b7afcf0204b627f759019cb3259c2612d4b808233a777b0e8e140953a02a
4
- data.tar.gz: 16a965ab4e6e9f5ea6a3c826e8ba75dbe78c67e3ea6bbe4aa2f89fbbc32e230c
3
+ metadata.gz: 3dcf3d6a64f73f5ebe47c785eb5af402f3c8cba5c086451d6ed894b160525385
4
+ data.tar.gz: 44fe52b54a32b7a898a8bbf4502ee623bd7bbe3da89a54c3322ebc4678a786a4
5
5
  SHA512:
6
- metadata.gz: 48199066de5c1469b22dadad823243beb75a1325c201627b9a7709c3739362bda1d0278725c081346ee476df2b5bcca55f0f05fc539e5e8180e329bb94c81630
7
- data.tar.gz: 528a8194f406725b703c4d393b5266e690884d1f94fbd9843ceb537fc52f4e8dbd7ddc259b7fe8b3eebedcdb28dd95605a184b4543797e823000ed9c801b437e
6
+ metadata.gz: eafc5446f6c3f8574489e96ce39020edb97b5d874ccf39bf847d939b501a2c3df02929d7c301e071868042c95cc4557a76671ae447bdc3d406415ed58ecf856c
7
+ data.tar.gz: cd61c938a532a9649db86e972de53bad39ebd4980f55a4e51e271227e53b1316e98ae017e02b209de08ca1ac8ec0db54dc0a3a6d5ff3e607d123f8cbab265a38
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.30.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.29.0...v0.30.0) (2026-09-09)
4
+
5
+
6
+ ### Highlights
7
+
8
+ This release is breaking for the webhook endpoints. Webhook responses now use one shared model instead of a separate type per operation: the create, retrieve, update and toggle-status response types are gone, and all four now return the shared webhook API response model (`ApiResponseWebhook`, in this language's casing). If your code references one of the removed types, or its nested data, error or meta members, point it at the shared model. The list, list-event-types, list-events, rotate-secret and test responses are unchanged, because each returns a different envelope.
9
+
10
+ ### Features
11
+
12
+ * **api:** repoint dangling model refs at current v3 schema names ([631adad](https://github.com/sentdm/sent-dm-ruby/commit/631adadfe49cd6eb7ae9df2d3ad3c8261ac54984))
13
+
3
14
  ## [0.29.0](https://github.com/sentdm/sent-dm-ruby/compare/v0.28.0...v0.29.0) (2026-09-06)
4
15
 
5
16
 
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "sentdm", "~> 0.29.0"
20
+ gem "sentdm", "~> 0.30.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -256,6 +256,32 @@ params = Sentdm::MessageSendParams.new(
256
256
  sent.messages.send_(**params)
257
257
  ```
258
258
 
259
+ ### Enums
260
+
261
+ Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
262
+
263
+ ```ruby
264
+ # :PRIVATE_PROFIT
265
+ puts(Sentdm::BrandBusinessInfo::EntityType::PRIVATE_PROFIT)
266
+
267
+ # Revealed type: `T.all(Sentdm::BrandBusinessInfo::EntityType, Symbol)`
268
+ T.reveal_type(Sentdm::BrandBusinessInfo::EntityType::PRIVATE_PROFIT)
269
+ ```
270
+
271
+ Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
272
+
273
+ ```ruby
274
+ Sentdm::BrandBusinessInfo.new(
275
+ entity_type: Sentdm::BrandBusinessInfo::EntityType::PRIVATE_PROFIT,
276
+ # …
277
+ )
278
+
279
+ Sentdm::BrandBusinessInfo.new(
280
+ entity_type: :PRIVATE_PROFIT,
281
+ # …
282
+ )
283
+ ```
284
+
259
285
  ## Versioning
260
286
 
261
287
  This package follows [SemVer](https://semver.org/spec/v2.0.0.html) conventions. As the library is in initial development and has a major version of `0`, APIs may change at any time.
@@ -438,11 +438,11 @@ module Sentdm
438
438
  # @return [Hash{Symbol=>Object}]
439
439
  #
440
440
  # @example
441
- # # `inbound_message_event` is a `Sentdm::InboundMessageEvent`
442
- # inbound_message_event => {
443
- # event: event,
444
- # field: field,
445
- # payload: payload
441
+ # # `api_meta` is a `Sentdm::APIMeta`
442
+ # api_meta => {
443
+ # request_id: request_id,
444
+ # timestamp: timestamp,
445
+ # version: version
446
446
  # }
447
447
  def deconstruct_keys(keys)
448
448
  (keys || self.class.known_fields.keys)
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class APIMeta < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute request_id
7
+ # Unique identifier for this request (for tracing and support)
8
+ #
9
+ # @return [String, nil]
10
+ optional :request_id, String
11
+
12
+ # @!attribute timestamp
13
+ # Server timestamp when the response was generated
14
+ #
15
+ # @return [Time, nil]
16
+ optional :timestamp, Time
17
+
18
+ # @!attribute version
19
+ # API version used for this request
20
+ #
21
+ # @return [String, nil]
22
+ optional :version, String
23
+
24
+ # @!method initialize(request_id: nil, timestamp: nil, version: nil)
25
+ # Request and response metadata
26
+ #
27
+ # @param request_id [String] Unique identifier for this request (for tracing and support)
28
+ #
29
+ # @param timestamp [Time] Server timestamp when the response was generated
30
+ #
31
+ # @param version [String] API version used for this request
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Contacts#create
6
+ class APIResponseOfContact < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # Contact response for v3 API Uses snake_case for JSON property names
9
+ #
10
+ # @return [Sentdm::Models::ContactResponse, nil]
11
+ optional :data, -> { Sentdm::ContactResponse }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Sentdm::Models::APIResponseOfContact} for more details.
34
+ #
35
+ # Standard API response envelope for all v3 endpoints
36
+ #
37
+ # @param data [Sentdm::Models::ContactResponse, nil] Contact response for v3 API
38
+ #
39
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
40
+ #
41
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
42
+ #
43
+ # @param success [Boolean] Indicates whether the request was successful
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Contacts#retrieve_message_summary
6
+ class APIResponseOfContactMessageSummary < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # The response data (null if error)
9
+ #
10
+ # @return [Sentdm::Models::ContactMessageSummary, nil]
11
+ optional :data, -> { Sentdm::ContactMessageSummary }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::ContactMessageSummary, nil] The response data (null if error)
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Conversations#list
6
+ class APIResponseOfConversationMessagesList < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # A paginated list of messages — used by both conversation read endpoints.
9
+ #
10
+ # @return [Sentdm::Models::ConversationMessagesList, nil]
11
+ optional :data, -> { Sentdm::ConversationMessagesList }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::ConversationMessagesList, nil] A paginated list of messages — used by both conversation read endpoints.
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Profiles#create
6
+ class APIResponseOfProfileDetail < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # Detailed profile response for v3 API
9
+ #
10
+ # @return [Sentdm::Models::ProfileDetail, nil]
11
+ optional :data, -> { Sentdm::ProfileDetail }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::ProfileDetail, nil] Detailed profile response for v3 API
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Users#retrieve
6
+ class APIResponseOfUser < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # User response for v3 API
9
+ #
10
+ # @return [Sentdm::Models::UserResponse, nil]
11
+ optional :data, -> { Sentdm::UserResponse }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::UserResponse, nil] User response for v3 API
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Templates#create
6
+ class APIResponseTemplate < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # Template response for v3 API
9
+ #
10
+ # @return [Sentdm::Models::Template, nil]
11
+ optional :data, -> { Sentdm::Template }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::Template, nil] Template response for v3 API
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ # @see Sentdm::Resources::Webhooks#create
6
+ class APIResponseWebhook < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute data
8
+ # The response data (null if error)
9
+ #
10
+ # @return [Sentdm::Models::WebhookResponse, nil]
11
+ optional :data, -> { Sentdm::WebhookResponse }, nil?: true
12
+
13
+ # @!attribute error
14
+ # Error information
15
+ #
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
+
19
+ # @!attribute meta
20
+ # Request and response metadata
21
+ #
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
+
25
+ # @!attribute success
26
+ # Indicates whether the request was successful
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :success, Sentdm::Internal::Type::Boolean
30
+
31
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
32
+ # Standard API response envelope for all v3 endpoints
33
+ #
34
+ # @param data [Sentdm::Models::WebhookResponse, nil] The response data (null if error)
35
+ #
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
+ #
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
+ #
40
+ # @param success [Boolean] Indicates whether the request was successful
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BillingContactInfo < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute email
7
+ # Email address where invoices will be sent (required)
8
+ #
9
+ # @return [String]
10
+ required :email, String
11
+
12
+ # @!attribute name
13
+ # Full name of the billing contact or company (required)
14
+ #
15
+ # @return [String]
16
+ required :name, String
17
+
18
+ # @!attribute address
19
+ # Billing address (optional). Free-form text including street, city, state, postal
20
+ # code, and country.
21
+ #
22
+ # @return [String, nil]
23
+ optional :address, String, nil?: true
24
+
25
+ # @!attribute phone
26
+ # Phone number for the billing contact (optional)
27
+ #
28
+ # @return [String, nil]
29
+ optional :phone, String, nil?: true
30
+
31
+ # @!method initialize(email:, name:, address: nil, phone: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Sentdm::Models::BillingContactInfo} for more details.
34
+ #
35
+ # Billing contact information for a profile. Required when billing_model is
36
+ # "profile" or "profile_and_organization".
37
+ #
38
+ # @param email [String] Email address where invoices will be sent (required)
39
+ #
40
+ # @param name [String] Full name of the billing contact or company (required)
41
+ #
42
+ # @param address [String, nil] Billing address (optional). Free-form text including street, city, state, postal
43
+ #
44
+ # @param phone [String, nil] Phone number for the billing contact (optional)
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandBusinessInfo < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute city
7
+ # City
8
+ #
9
+ # @return [String, nil]
10
+ optional :city, String, nil?: true
11
+
12
+ # @!attribute country
13
+ # Country code (e.g., US, CA)
14
+ #
15
+ # @return [String, nil]
16
+ optional :country, String, nil?: true
17
+
18
+ # @!attribute country_of_registration
19
+ # Country where the business is registered
20
+ #
21
+ # @return [String, nil]
22
+ optional :country_of_registration, String, api_name: :countryOfRegistration, nil?: true
23
+
24
+ # @!attribute entity_type
25
+ #
26
+ # @return [Symbol, Sentdm::Models::BrandBusinessInfo::EntityType, nil]
27
+ optional :entity_type,
28
+ enum: -> { Sentdm::BrandBusinessInfo::EntityType },
29
+ api_name: :entityType,
30
+ nil?: true
31
+
32
+ # @!attribute legal_name
33
+ # Legal business name
34
+ #
35
+ # @return [String, nil]
36
+ optional :legal_name, String, api_name: :legalName, nil?: true
37
+
38
+ # @!attribute postal_code
39
+ # Postal/ZIP code
40
+ #
41
+ # @return [String, nil]
42
+ optional :postal_code, String, api_name: :postalCode, nil?: true
43
+
44
+ # @!attribute state
45
+ # State/province code
46
+ #
47
+ # @return [String, nil]
48
+ optional :state, String, nil?: true
49
+
50
+ # @!attribute street
51
+ # Street address
52
+ #
53
+ # @return [String, nil]
54
+ optional :street, String, nil?: true
55
+
56
+ # @!attribute tax_id
57
+ # Tax ID/EIN number
58
+ #
59
+ # @return [String, nil]
60
+ optional :tax_id, String, api_name: :taxId, nil?: true
61
+
62
+ # @!attribute tax_id_type
63
+ # Type of tax ID (e.g., us_ein, ca_bn)
64
+ #
65
+ # @return [String, nil]
66
+ optional :tax_id_type, String, api_name: :taxIdType, nil?: true
67
+
68
+ # @!attribute url
69
+ # Business website URL
70
+ #
71
+ # @return [String, nil]
72
+ optional :url, String, nil?: true
73
+
74
+ # @!method initialize(city: nil, country: nil, country_of_registration: nil, entity_type: nil, legal_name: nil, postal_code: nil, state: nil, street: nil, tax_id: nil, tax_id_type: nil, url: nil)
75
+ # Business details and address for brand KYC
76
+ #
77
+ # @param city [String, nil] City
78
+ #
79
+ # @param country [String, nil] Country code (e.g., US, CA)
80
+ #
81
+ # @param country_of_registration [String, nil] Country where the business is registered
82
+ #
83
+ # @param entity_type [Symbol, Sentdm::Models::BrandBusinessInfo::EntityType, nil]
84
+ #
85
+ # @param legal_name [String, nil] Legal business name
86
+ #
87
+ # @param postal_code [String, nil] Postal/ZIP code
88
+ #
89
+ # @param state [String, nil] State/province code
90
+ #
91
+ # @param street [String, nil] Street address
92
+ #
93
+ # @param tax_id [String, nil] Tax ID/EIN number
94
+ #
95
+ # @param tax_id_type [String, nil] Type of tax ID (e.g., us_ein, ca_bn)
96
+ #
97
+ # @param url [String, nil] Business website URL
98
+
99
+ # @see Sentdm::Models::BrandBusinessInfo#entity_type
100
+ module EntityType
101
+ extend Sentdm::Internal::Type::Enum
102
+
103
+ PRIVATE_PROFIT = :PRIVATE_PROFIT
104
+ PUBLIC_PROFIT = :PUBLIC_PROFIT
105
+ NON_PROFIT = :NON_PROFIT
106
+ SOLE_PROPRIETOR = :SOLE_PROPRIETOR
107
+ GOVERNMENT = :GOVERNMENT
108
+
109
+ # @!method self.values
110
+ # @return [Array<Symbol>]
111
+ end
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandComplianceInfo < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute brand_relationship
7
+ #
8
+ # @return [Symbol, Sentdm::Models::TcrBrandRelationship]
9
+ required :brand_relationship, enum: -> { Sentdm::TcrBrandRelationship }, api_name: :brandRelationship
10
+
11
+ # @!attribute vertical
12
+ #
13
+ # @return [Symbol, Sentdm::Models::TcrVertical]
14
+ required :vertical, enum: -> { Sentdm::TcrVertical }
15
+
16
+ # @!attribute destination_countries
17
+ # List of destination countries for messaging
18
+ #
19
+ # @return [Array<Sentdm::Models::DestinationCountry>, nil]
20
+ optional :destination_countries,
21
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::DestinationCountry] },
22
+ api_name: :destinationCountries,
23
+ nil?: true
24
+
25
+ # @!attribute is_tcr_application
26
+ # Whether this is a TCR (Campaign Registry) application
27
+ #
28
+ # @return [Boolean, nil]
29
+ optional :is_tcr_application, Sentdm::Internal::Type::Boolean, api_name: :isTcrApplication, nil?: true
30
+
31
+ # @!attribute notes
32
+ # Additional notes about the business or use case
33
+ #
34
+ # @return [String, nil]
35
+ optional :notes, String, nil?: true
36
+
37
+ # @!attribute phone_number_prefix
38
+ # Phone number prefix for messaging (e.g., "+1")
39
+ #
40
+ # @return [String, nil]
41
+ optional :phone_number_prefix, String, api_name: :phoneNumberPrefix, nil?: true
42
+
43
+ # @!method initialize(brand_relationship:, vertical:, destination_countries: nil, is_tcr_application: nil, notes: nil, phone_number_prefix: nil)
44
+ # Compliance and TCR information for brand registration
45
+ #
46
+ # @param brand_relationship [Symbol, Sentdm::Models::TcrBrandRelationship]
47
+ #
48
+ # @param vertical [Symbol, Sentdm::Models::TcrVertical]
49
+ #
50
+ # @param destination_countries [Array<Sentdm::Models::DestinationCountry>, nil] List of destination countries for messaging
51
+ #
52
+ # @param is_tcr_application [Boolean, nil] Whether this is a TCR (Campaign Registry) application
53
+ #
54
+ # @param notes [String, nil] Additional notes about the business or use case
55
+ #
56
+ # @param phone_number_prefix [String, nil] Phone number prefix for messaging (e.g., "+1")
57
+ end
58
+ end
59
+ end