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,76 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class APIResponseOfListOfBrandCampaign < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Profiles::APIResponseOfListOfBrandCampaign,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The response data (null if error)
16
+ sig { returns(T.nilable(T::Array[Sentdm::Profiles::BrandCampaign])) }
17
+ attr_accessor :data
18
+
19
+ # Error information
20
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
21
+ attr_reader :error
22
+
23
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
24
+ attr_writer :error
25
+
26
+ # Request and response metadata
27
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
28
+ attr_reader :meta
29
+
30
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
31
+ attr_writer :meta
32
+
33
+ # Indicates whether the request was successful
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :success
36
+
37
+ sig { params(success: T::Boolean).void }
38
+ attr_writer :success
39
+
40
+ # Standard API response envelope for all v3 endpoints
41
+ sig do
42
+ params(
43
+ data: T.nilable(T::Array[Sentdm::Profiles::BrandCampaign::OrHash]),
44
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
45
+ meta: Sentdm::APIMeta::OrHash,
46
+ success: T::Boolean
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The response data (null if error)
51
+ data: nil,
52
+ # Error information
53
+ error: nil,
54
+ # Request and response metadata
55
+ meta: nil,
56
+ # Indicates whether the request was successful
57
+ success: nil
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ data: T.nilable(T::Array[Sentdm::Profiles::BrandCampaign]),
65
+ error: T.nilable(Sentdm::ErrorDetail),
66
+ meta: Sentdm::APIMeta,
67
+ success: T::Boolean
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,299 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class BrandCampaign < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Profiles::BrandCampaign, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :id
14
+
15
+ sig { params(id: String).void }
16
+ attr_writer :id
17
+
18
+ sig { returns(T.nilable(Time)) }
19
+ attr_accessor :billed_date
20
+
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :brand_id
23
+
24
+ sig { returns(T.nilable(Float)) }
25
+ attr_accessor :cost
26
+
27
+ sig { returns(T.nilable(Time)) }
28
+ attr_reader :created_at
29
+
30
+ sig { params(created_at: Time).void }
31
+ attr_writer :created_at
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :customer_id
35
+
36
+ sig { params(customer_id: String).void }
37
+ attr_writer :customer_id
38
+
39
+ # True once every carrier has completed its DCA election and the campaign is
40
+ # operationally ready for traffic.
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_accessor :dca_elections_complete
43
+
44
+ sig { returns(T.nilable(Time)) }
45
+ attr_accessor :dca_elections_completed_at
46
+
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :description
49
+
50
+ sig { params(description: String).void }
51
+ attr_writer :description
52
+
53
+ # True when the one-time campaign submission fee has already been charged.
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :has_submission_transaction
56
+
57
+ sig { params(has_submission_transaction: T::Boolean).void }
58
+ attr_writer :has_submission_transaction
59
+
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :help_keywords
62
+
63
+ sig { returns(T.nilable(String)) }
64
+ attr_accessor :help_message
65
+
66
+ sig { returns(T.nilable(String)) }
67
+ attr_accessor :message_flow
68
+
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :name
71
+
72
+ sig { params(name: String).void }
73
+ attr_writer :name
74
+
75
+ sig { returns(T.nilable(String)) }
76
+ attr_accessor :optin_keywords
77
+
78
+ sig { returns(T.nilable(String)) }
79
+ attr_accessor :optin_message
80
+
81
+ sig { returns(T.nilable(String)) }
82
+ attr_accessor :optout_keywords
83
+
84
+ sig { returns(T.nilable(String)) }
85
+ attr_accessor :optout_message
86
+
87
+ sig { returns(T.nilable(String)) }
88
+ attr_accessor :privacy_policy_link
89
+
90
+ sig do
91
+ returns(
92
+ T.nilable(Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol)
93
+ )
94
+ end
95
+ attr_accessor :status
96
+
97
+ sig { returns(T.nilable(Time)) }
98
+ attr_accessor :submitted_at
99
+
100
+ sig { returns(T.nilable(T::Boolean)) }
101
+ attr_reader :submitted_to_tcr
102
+
103
+ sig { params(submitted_to_tcr: T::Boolean).void }
104
+ attr_writer :submitted_to_tcr
105
+
106
+ # The Campaign Registry identifier, once the campaign has been accepted.
107
+ sig { returns(T.nilable(String)) }
108
+ attr_accessor :tcr_campaign_id
109
+
110
+ # Surfaced so customers can see why a submission did not reach the registry.
111
+ sig { returns(T.nilable(String)) }
112
+ attr_accessor :tcr_sync_error
113
+
114
+ sig { returns(T.nilable(String)) }
115
+ attr_accessor :terms_and_conditions_link
116
+
117
+ # Campaign type (for example KYC or App).
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :type
120
+
121
+ sig { params(type: String).void }
122
+ attr_writer :type
123
+
124
+ sig { returns(T.nilable(Time)) }
125
+ attr_accessor :updated_at
126
+
127
+ sig { returns(T.nilable(T::Array[Sentdm::Profiles::CampaignUseCase])) }
128
+ attr_reader :use_cases
129
+
130
+ sig do
131
+ params(
132
+ use_cases: T::Array[Sentdm::Profiles::CampaignUseCase::OrHash]
133
+ ).void
134
+ end
135
+ attr_writer :use_cases
136
+
137
+ # Expected messaging volume for this campaign — customer-supplied on
138
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
139
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
140
+ # back the value they set.
141
+ sig { returns(T.nilable(String)) }
142
+ attr_accessor :volume
143
+
144
+ # A 10DLC campaign registered for a brand.
145
+ sig do
146
+ params(
147
+ id: String,
148
+ billed_date: T.nilable(Time),
149
+ brand_id: T.nilable(String),
150
+ cost: T.nilable(Float),
151
+ created_at: Time,
152
+ customer_id: String,
153
+ dca_elections_complete: T.nilable(T::Boolean),
154
+ dca_elections_completed_at: T.nilable(Time),
155
+ description: String,
156
+ has_submission_transaction: T::Boolean,
157
+ help_keywords: T.nilable(String),
158
+ help_message: T.nilable(String),
159
+ message_flow: T.nilable(String),
160
+ name: String,
161
+ optin_keywords: T.nilable(String),
162
+ optin_message: T.nilable(String),
163
+ optout_keywords: T.nilable(String),
164
+ optout_message: T.nilable(String),
165
+ privacy_policy_link: T.nilable(String),
166
+ status:
167
+ T.nilable(Sentdm::Profiles::BrandCampaign::Status::OrSymbol),
168
+ submitted_at: T.nilable(Time),
169
+ submitted_to_tcr: T::Boolean,
170
+ tcr_campaign_id: T.nilable(String),
171
+ tcr_sync_error: T.nilable(String),
172
+ terms_and_conditions_link: T.nilable(String),
173
+ type: String,
174
+ updated_at: T.nilable(Time),
175
+ use_cases: T::Array[Sentdm::Profiles::CampaignUseCase::OrHash],
176
+ volume: T.nilable(String)
177
+ ).returns(T.attached_class)
178
+ end
179
+ def self.new(
180
+ id: nil,
181
+ billed_date: nil,
182
+ brand_id: nil,
183
+ cost: nil,
184
+ created_at: nil,
185
+ customer_id: nil,
186
+ # True once every carrier has completed its DCA election and the campaign is
187
+ # operationally ready for traffic.
188
+ dca_elections_complete: nil,
189
+ dca_elections_completed_at: nil,
190
+ description: nil,
191
+ # True when the one-time campaign submission fee has already been charged.
192
+ has_submission_transaction: nil,
193
+ help_keywords: nil,
194
+ help_message: nil,
195
+ message_flow: nil,
196
+ name: nil,
197
+ optin_keywords: nil,
198
+ optin_message: nil,
199
+ optout_keywords: nil,
200
+ optout_message: nil,
201
+ privacy_policy_link: nil,
202
+ status: nil,
203
+ submitted_at: nil,
204
+ submitted_to_tcr: nil,
205
+ # The Campaign Registry identifier, once the campaign has been accepted.
206
+ tcr_campaign_id: nil,
207
+ # Surfaced so customers can see why a submission did not reach the registry.
208
+ tcr_sync_error: nil,
209
+ terms_and_conditions_link: nil,
210
+ # Campaign type (for example KYC or App).
211
+ type: nil,
212
+ updated_at: nil,
213
+ use_cases: nil,
214
+ # Expected messaging volume for this campaign — customer-supplied on
215
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
216
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
217
+ # back the value they set.
218
+ volume: nil
219
+ )
220
+ end
221
+
222
+ sig do
223
+ override.returns(
224
+ {
225
+ id: String,
226
+ billed_date: T.nilable(Time),
227
+ brand_id: T.nilable(String),
228
+ cost: T.nilable(Float),
229
+ created_at: Time,
230
+ customer_id: String,
231
+ dca_elections_complete: T.nilable(T::Boolean),
232
+ dca_elections_completed_at: T.nilable(Time),
233
+ description: String,
234
+ has_submission_transaction: T::Boolean,
235
+ help_keywords: T.nilable(String),
236
+ help_message: T.nilable(String),
237
+ message_flow: T.nilable(String),
238
+ name: String,
239
+ optin_keywords: T.nilable(String),
240
+ optin_message: T.nilable(String),
241
+ optout_keywords: T.nilable(String),
242
+ optout_message: T.nilable(String),
243
+ privacy_policy_link: T.nilable(String),
244
+ status:
245
+ T.nilable(
246
+ Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
247
+ ),
248
+ submitted_at: T.nilable(Time),
249
+ submitted_to_tcr: T::Boolean,
250
+ tcr_campaign_id: T.nilable(String),
251
+ tcr_sync_error: T.nilable(String),
252
+ terms_and_conditions_link: T.nilable(String),
253
+ type: String,
254
+ updated_at: T.nilable(Time),
255
+ use_cases: T::Array[Sentdm::Profiles::CampaignUseCase],
256
+ volume: T.nilable(String)
257
+ }
258
+ )
259
+ end
260
+ def to_hash
261
+ end
262
+
263
+ module Status
264
+ extend Sentdm::Internal::Type::Enum
265
+
266
+ TaggedSymbol =
267
+ T.type_alias do
268
+ T.all(Symbol, Sentdm::Profiles::BrandCampaign::Status)
269
+ end
270
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
271
+
272
+ SENT_CREATED =
273
+ T.let(
274
+ :SENT_CREATED,
275
+ Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
276
+ )
277
+ ACTIVE =
278
+ T.let(
279
+ :ACTIVE,
280
+ Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
281
+ )
282
+ EXPIRED =
283
+ T.let(
284
+ :EXPIRED,
285
+ Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol
286
+ )
287
+
288
+ sig do
289
+ override.returns(
290
+ T::Array[Sentdm::Profiles::BrandCampaign::Status::TaggedSymbol]
291
+ )
292
+ end
293
+ def self.values
294
+ end
295
+ end
296
+ end
297
+ end
298
+ end
299
+ end
@@ -19,14 +19,10 @@ module Sentdm
19
19
  attr_accessor :profile_id
20
20
 
21
21
  # Campaign data for create or update operation
22
- sig { returns(Sentdm::Profiles::CampaignCreateParams::Campaign) }
22
+ sig { returns(Sentdm::Profiles::CampaignData) }
23
23
  attr_reader :campaign
24
24
 
25
- sig do
26
- params(
27
- campaign: Sentdm::Profiles::CampaignCreateParams::Campaign::OrHash
28
- ).void
29
- end
25
+ sig { params(campaign: Sentdm::Profiles::CampaignData::OrHash).void }
30
26
  attr_writer :campaign
31
27
 
32
28
  # Sandbox flag - when true, the operation is simulated without side effects Useful
@@ -52,7 +48,7 @@ module Sentdm
52
48
  sig do
53
49
  params(
54
50
  profile_id: String,
55
- campaign: Sentdm::Profiles::CampaignCreateParams::Campaign::OrHash,
51
+ campaign: Sentdm::Profiles::CampaignData::OrHash,
56
52
  sandbox: T::Boolean,
57
53
  idempotency_key: String,
58
54
  x_profile_id: String,
@@ -76,7 +72,7 @@ module Sentdm
76
72
  override.returns(
77
73
  {
78
74
  profile_id: String,
79
- campaign: Sentdm::Profiles::CampaignCreateParams::Campaign,
75
+ campaign: Sentdm::Profiles::CampaignData,
80
76
  sandbox: T::Boolean,
81
77
  idempotency_key: String,
82
78
  x_profile_id: String,
@@ -86,216 +82,6 @@ module Sentdm
86
82
  end
87
83
  def to_hash
88
84
  end
89
-
90
- class Campaign < Sentdm::Internal::Type::BaseModel
91
- OrHash =
92
- T.type_alias do
93
- T.any(
94
- Sentdm::Profiles::CampaignCreateParams::Campaign,
95
- Sentdm::Internal::AnyHash
96
- )
97
- end
98
-
99
- # Campaign description
100
- sig { returns(String) }
101
- attr_accessor :description
102
-
103
- # Campaign name
104
- sig { returns(String) }
105
- attr_accessor :name
106
-
107
- # Campaign type (e.g., "KYC", "App").
108
- #
109
- # Still required of a caller, and consulted by nothing. It named the signup path
110
- # that produced the campaign, was written to a column no query filters on, no TCR
111
- # payload carries and no fee or status decision reads, and is now defaulted at the
112
- # entity instead. It stays required so that a request which was valid before is
113
- # still valid — dropping it would be the client-visible change, not keeping it.
114
- sig { returns(String) }
115
- attr_accessor :type
116
-
117
- # List of use cases with sample messages
118
- sig do
119
- returns(
120
- T::Array[
121
- Sentdm::Profiles::CampaignCreateParams::Campaign::UseCase
122
- ]
123
- )
124
- end
125
- attr_accessor :use_cases
126
-
127
- # Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
128
- sig { returns(T.nilable(String)) }
129
- attr_accessor :help_keywords
130
-
131
- # Message sent when user requests help
132
- sig { returns(T.nilable(String)) }
133
- attr_accessor :help_message
134
-
135
- # Description of how messages flow in the campaign
136
- sig { returns(T.nilable(String)) }
137
- attr_accessor :message_flow
138
-
139
- # Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
140
- sig { returns(T.nilable(String)) }
141
- attr_accessor :optin_keywords
142
-
143
- # Message sent when user opts in
144
- sig { returns(T.nilable(String)) }
145
- attr_accessor :optin_message
146
-
147
- # Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
148
- sig { returns(T.nilable(String)) }
149
- attr_accessor :optout_keywords
150
-
151
- # Message sent when user opts out
152
- sig { returns(T.nilable(String)) }
153
- attr_accessor :optout_message
154
-
155
- # URL to privacy policy
156
- sig { returns(T.nilable(String)) }
157
- attr_accessor :privacy_policy_link
158
-
159
- # URL to terms and conditions
160
- sig { returns(T.nilable(String)) }
161
- attr_accessor :terms_and_conditions_link
162
-
163
- # Expected messaging volume for this campaign. Numeric string (e.g. "1999",
164
- # "5000"). Values below 2000 bill at the low-volume tier.
165
- sig { returns(T.nilable(String)) }
166
- attr_accessor :volume
167
-
168
- # Campaign data for create or update operation
169
- sig do
170
- params(
171
- description: String,
172
- name: String,
173
- type: String,
174
- use_cases:
175
- T::Array[
176
- Sentdm::Profiles::CampaignCreateParams::Campaign::UseCase::OrHash
177
- ],
178
- help_keywords: T.nilable(String),
179
- help_message: T.nilable(String),
180
- message_flow: T.nilable(String),
181
- optin_keywords: T.nilable(String),
182
- optin_message: T.nilable(String),
183
- optout_keywords: T.nilable(String),
184
- optout_message: T.nilable(String),
185
- privacy_policy_link: T.nilable(String),
186
- terms_and_conditions_link: T.nilable(String),
187
- volume: T.nilable(String)
188
- ).returns(T.attached_class)
189
- end
190
- def self.new(
191
- # Campaign description
192
- description:,
193
- # Campaign name
194
- name:,
195
- # Campaign type (e.g., "KYC", "App").
196
- #
197
- # Still required of a caller, and consulted by nothing. It named the signup path
198
- # that produced the campaign, was written to a column no query filters on, no TCR
199
- # payload carries and no fee or status decision reads, and is now defaulted at the
200
- # entity instead. It stays required so that a request which was valid before is
201
- # still valid — dropping it would be the client-visible change, not keeping it.
202
- type:,
203
- # List of use cases with sample messages
204
- use_cases:,
205
- # Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
206
- help_keywords: nil,
207
- # Message sent when user requests help
208
- help_message: nil,
209
- # Description of how messages flow in the campaign
210
- message_flow: nil,
211
- # Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
212
- optin_keywords: nil,
213
- # Message sent when user opts in
214
- optin_message: nil,
215
- # Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
216
- optout_keywords: nil,
217
- # Message sent when user opts out
218
- optout_message: nil,
219
- # URL to privacy policy
220
- privacy_policy_link: nil,
221
- # URL to terms and conditions
222
- terms_and_conditions_link: nil,
223
- # Expected messaging volume for this campaign. Numeric string (e.g. "1999",
224
- # "5000"). Values below 2000 bill at the low-volume tier.
225
- volume: nil
226
- )
227
- end
228
-
229
- sig do
230
- override.returns(
231
- {
232
- description: String,
233
- name: String,
234
- type: String,
235
- use_cases:
236
- T::Array[
237
- Sentdm::Profiles::CampaignCreateParams::Campaign::UseCase
238
- ],
239
- help_keywords: T.nilable(String),
240
- help_message: T.nilable(String),
241
- message_flow: T.nilable(String),
242
- optin_keywords: T.nilable(String),
243
- optin_message: T.nilable(String),
244
- optout_keywords: T.nilable(String),
245
- optout_message: T.nilable(String),
246
- privacy_policy_link: T.nilable(String),
247
- terms_and_conditions_link: T.nilable(String),
248
- volume: T.nilable(String)
249
- }
250
- )
251
- end
252
- def to_hash
253
- end
254
-
255
- class UseCase < Sentdm::Internal::Type::BaseModel
256
- OrHash =
257
- T.type_alias do
258
- T.any(
259
- Sentdm::Profiles::CampaignCreateParams::Campaign::UseCase,
260
- Sentdm::Internal::AnyHash
261
- )
262
- end
263
-
264
- sig { returns(Sentdm::Profiles::MessagingUseCaseUs::OrSymbol) }
265
- attr_accessor :messaging_use_case_us
266
-
267
- # Sample messages for this use case (1-5 messages, max 1024 characters each)
268
- sig { returns(T::Array[String]) }
269
- attr_accessor :sample_messages
270
-
271
- # Campaign use case with sample messages
272
- sig do
273
- params(
274
- messaging_use_case_us:
275
- Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
276
- sample_messages: T::Array[String]
277
- ).returns(T.attached_class)
278
- end
279
- def self.new(
280
- messaging_use_case_us:,
281
- # Sample messages for this use case (1-5 messages, max 1024 characters each)
282
- sample_messages:
283
- )
284
- end
285
-
286
- sig do
287
- override.returns(
288
- {
289
- messaging_use_case_us:
290
- Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
291
- sample_messages: T::Array[String]
292
- }
293
- )
294
- end
295
- def to_hash
296
- end
297
- end
298
- end
299
85
  end
300
86
  end
301
87
  end