sentdm 0.26.0 → 0.28.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -0,0 +1,667 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignListResponse < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Models::Profiles::CampaignListResponse,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The response data (null if error)
16
+ sig do
17
+ returns(
18
+ T.nilable(
19
+ T::Array[Sentdm::Models::Profiles::CampaignListResponse::Data]
20
+ )
21
+ )
22
+ end
23
+ attr_accessor :data
24
+
25
+ # Error information
26
+ sig do
27
+ returns(
28
+ T.nilable(Sentdm::Models::Profiles::CampaignListResponse::Error)
29
+ )
30
+ end
31
+ attr_reader :error
32
+
33
+ sig do
34
+ params(
35
+ error:
36
+ T.nilable(
37
+ Sentdm::Models::Profiles::CampaignListResponse::Error::OrHash
38
+ )
39
+ ).void
40
+ end
41
+ attr_writer :error
42
+
43
+ # Request and response metadata
44
+ sig do
45
+ returns(
46
+ T.nilable(Sentdm::Models::Profiles::CampaignListResponse::Meta)
47
+ )
48
+ end
49
+ attr_reader :meta
50
+
51
+ sig do
52
+ params(
53
+ meta: Sentdm::Models::Profiles::CampaignListResponse::Meta::OrHash
54
+ ).void
55
+ end
56
+ attr_writer :meta
57
+
58
+ # Indicates whether the request was successful
59
+ sig { returns(T.nilable(T::Boolean)) }
60
+ attr_reader :success
61
+
62
+ sig { params(success: T::Boolean).void }
63
+ attr_writer :success
64
+
65
+ # Standard API response envelope for all v3 endpoints
66
+ sig do
67
+ params(
68
+ data:
69
+ T.nilable(
70
+ T::Array[
71
+ Sentdm::Models::Profiles::CampaignListResponse::Data::OrHash
72
+ ]
73
+ ),
74
+ error:
75
+ T.nilable(
76
+ Sentdm::Models::Profiles::CampaignListResponse::Error::OrHash
77
+ ),
78
+ meta: Sentdm::Models::Profiles::CampaignListResponse::Meta::OrHash,
79
+ success: T::Boolean
80
+ ).returns(T.attached_class)
81
+ end
82
+ def self.new(
83
+ # The response data (null if error)
84
+ data: nil,
85
+ # Error information
86
+ error: nil,
87
+ # Request and response metadata
88
+ meta: nil,
89
+ # Indicates whether the request was successful
90
+ success: nil
91
+ )
92
+ end
93
+
94
+ sig do
95
+ override.returns(
96
+ {
97
+ data:
98
+ T.nilable(
99
+ T::Array[Sentdm::Models::Profiles::CampaignListResponse::Data]
100
+ ),
101
+ error:
102
+ T.nilable(
103
+ Sentdm::Models::Profiles::CampaignListResponse::Error
104
+ ),
105
+ meta: Sentdm::Models::Profiles::CampaignListResponse::Meta,
106
+ success: T::Boolean
107
+ }
108
+ )
109
+ end
110
+ def to_hash
111
+ end
112
+
113
+ class Data < Sentdm::Internal::Type::BaseModel
114
+ OrHash =
115
+ T.type_alias do
116
+ T.any(
117
+ Sentdm::Models::Profiles::CampaignListResponse::Data,
118
+ Sentdm::Internal::AnyHash
119
+ )
120
+ end
121
+
122
+ sig { returns(T.nilable(String)) }
123
+ attr_reader :id
124
+
125
+ sig { params(id: String).void }
126
+ attr_writer :id
127
+
128
+ sig { returns(T.nilable(Time)) }
129
+ attr_accessor :billed_date
130
+
131
+ sig { returns(T.nilable(String)) }
132
+ attr_accessor :brand_id
133
+
134
+ sig { returns(T.nilable(Float)) }
135
+ attr_accessor :cost
136
+
137
+ sig { returns(T.nilable(Time)) }
138
+ attr_reader :created_at
139
+
140
+ sig { params(created_at: Time).void }
141
+ attr_writer :created_at
142
+
143
+ sig { returns(T.nilable(String)) }
144
+ attr_reader :customer_id
145
+
146
+ sig { params(customer_id: String).void }
147
+ attr_writer :customer_id
148
+
149
+ # True once every carrier has completed its DCA election and the campaign is
150
+ # operationally ready for traffic.
151
+ sig { returns(T.nilable(T::Boolean)) }
152
+ attr_accessor :dca_elections_complete
153
+
154
+ sig { returns(T.nilable(Time)) }
155
+ attr_accessor :dca_elections_completed_at
156
+
157
+ sig { returns(T.nilable(String)) }
158
+ attr_reader :description
159
+
160
+ sig { params(description: String).void }
161
+ attr_writer :description
162
+
163
+ # True when the one-time campaign submission fee has already been charged.
164
+ sig { returns(T.nilable(T::Boolean)) }
165
+ attr_reader :has_submission_transaction
166
+
167
+ sig { params(has_submission_transaction: T::Boolean).void }
168
+ attr_writer :has_submission_transaction
169
+
170
+ sig { returns(T.nilable(String)) }
171
+ attr_accessor :help_keywords
172
+
173
+ sig { returns(T.nilable(String)) }
174
+ attr_accessor :help_message
175
+
176
+ sig { returns(T.nilable(String)) }
177
+ attr_accessor :message_flow
178
+
179
+ sig { returns(T.nilable(String)) }
180
+ attr_reader :name
181
+
182
+ sig { params(name: String).void }
183
+ attr_writer :name
184
+
185
+ sig { returns(T.nilable(String)) }
186
+ attr_accessor :optin_keywords
187
+
188
+ sig { returns(T.nilable(String)) }
189
+ attr_accessor :optin_message
190
+
191
+ sig { returns(T.nilable(String)) }
192
+ attr_accessor :optout_keywords
193
+
194
+ sig { returns(T.nilable(String)) }
195
+ attr_accessor :optout_message
196
+
197
+ sig { returns(T.nilable(String)) }
198
+ attr_accessor :privacy_policy_link
199
+
200
+ sig do
201
+ returns(
202
+ T.nilable(
203
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
204
+ )
205
+ )
206
+ end
207
+ attr_accessor :status
208
+
209
+ sig { returns(T.nilable(Time)) }
210
+ attr_accessor :submitted_at
211
+
212
+ sig { returns(T.nilable(T::Boolean)) }
213
+ attr_reader :submitted_to_tcr
214
+
215
+ sig { params(submitted_to_tcr: T::Boolean).void }
216
+ attr_writer :submitted_to_tcr
217
+
218
+ # The Campaign Registry identifier, once the campaign has been accepted.
219
+ sig { returns(T.nilable(String)) }
220
+ attr_accessor :tcr_campaign_id
221
+
222
+ # Surfaced so customers can see why a submission did not reach the registry.
223
+ sig { returns(T.nilable(String)) }
224
+ attr_accessor :tcr_sync_error
225
+
226
+ sig { returns(T.nilable(String)) }
227
+ attr_accessor :terms_and_conditions_link
228
+
229
+ # Campaign type (for example KYC or App).
230
+ sig { returns(T.nilable(String)) }
231
+ attr_reader :type
232
+
233
+ sig { params(type: String).void }
234
+ attr_writer :type
235
+
236
+ sig { returns(T.nilable(Time)) }
237
+ attr_accessor :updated_at
238
+
239
+ sig do
240
+ returns(
241
+ T.nilable(
242
+ T::Array[
243
+ Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase
244
+ ]
245
+ )
246
+ )
247
+ end
248
+ attr_reader :use_cases
249
+
250
+ sig do
251
+ params(
252
+ use_cases:
253
+ T::Array[
254
+ Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase::OrHash
255
+ ]
256
+ ).void
257
+ end
258
+ attr_writer :use_cases
259
+
260
+ # Expected messaging volume for this campaign — customer-supplied on
261
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
262
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
263
+ # back the value they set.
264
+ sig { returns(T.nilable(String)) }
265
+ attr_accessor :volume
266
+
267
+ # A 10DLC campaign registered for a brand.
268
+ sig do
269
+ params(
270
+ id: String,
271
+ billed_date: T.nilable(Time),
272
+ brand_id: T.nilable(String),
273
+ cost: T.nilable(Float),
274
+ created_at: Time,
275
+ customer_id: String,
276
+ dca_elections_complete: T.nilable(T::Boolean),
277
+ dca_elections_completed_at: T.nilable(Time),
278
+ description: String,
279
+ has_submission_transaction: T::Boolean,
280
+ help_keywords: T.nilable(String),
281
+ help_message: T.nilable(String),
282
+ message_flow: T.nilable(String),
283
+ name: String,
284
+ optin_keywords: T.nilable(String),
285
+ optin_message: T.nilable(String),
286
+ optout_keywords: T.nilable(String),
287
+ optout_message: T.nilable(String),
288
+ privacy_policy_link: T.nilable(String),
289
+ status:
290
+ T.nilable(
291
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::OrSymbol
292
+ ),
293
+ submitted_at: T.nilable(Time),
294
+ submitted_to_tcr: T::Boolean,
295
+ tcr_campaign_id: T.nilable(String),
296
+ tcr_sync_error: T.nilable(String),
297
+ terms_and_conditions_link: T.nilable(String),
298
+ type: String,
299
+ updated_at: T.nilable(Time),
300
+ use_cases:
301
+ T::Array[
302
+ Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase::OrHash
303
+ ],
304
+ volume: T.nilable(String)
305
+ ).returns(T.attached_class)
306
+ end
307
+ def self.new(
308
+ id: nil,
309
+ billed_date: nil,
310
+ brand_id: nil,
311
+ cost: nil,
312
+ created_at: nil,
313
+ customer_id: nil,
314
+ # True once every carrier has completed its DCA election and the campaign is
315
+ # operationally ready for traffic.
316
+ dca_elections_complete: nil,
317
+ dca_elections_completed_at: nil,
318
+ description: nil,
319
+ # True when the one-time campaign submission fee has already been charged.
320
+ has_submission_transaction: nil,
321
+ help_keywords: nil,
322
+ help_message: nil,
323
+ message_flow: nil,
324
+ name: nil,
325
+ optin_keywords: nil,
326
+ optin_message: nil,
327
+ optout_keywords: nil,
328
+ optout_message: nil,
329
+ privacy_policy_link: nil,
330
+ status: nil,
331
+ submitted_at: nil,
332
+ submitted_to_tcr: nil,
333
+ # The Campaign Registry identifier, once the campaign has been accepted.
334
+ tcr_campaign_id: nil,
335
+ # Surfaced so customers can see why a submission did not reach the registry.
336
+ tcr_sync_error: nil,
337
+ terms_and_conditions_link: nil,
338
+ # Campaign type (for example KYC or App).
339
+ type: nil,
340
+ updated_at: nil,
341
+ use_cases: nil,
342
+ # Expected messaging volume for this campaign — customer-supplied on
343
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
344
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
345
+ # back the value they set.
346
+ volume: nil
347
+ )
348
+ end
349
+
350
+ sig do
351
+ override.returns(
352
+ {
353
+ id: String,
354
+ billed_date: T.nilable(Time),
355
+ brand_id: T.nilable(String),
356
+ cost: T.nilable(Float),
357
+ created_at: Time,
358
+ customer_id: String,
359
+ dca_elections_complete: T.nilable(T::Boolean),
360
+ dca_elections_completed_at: T.nilable(Time),
361
+ description: String,
362
+ has_submission_transaction: T::Boolean,
363
+ help_keywords: T.nilable(String),
364
+ help_message: T.nilable(String),
365
+ message_flow: T.nilable(String),
366
+ name: String,
367
+ optin_keywords: T.nilable(String),
368
+ optin_message: T.nilable(String),
369
+ optout_keywords: T.nilable(String),
370
+ optout_message: T.nilable(String),
371
+ privacy_policy_link: T.nilable(String),
372
+ status:
373
+ T.nilable(
374
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
375
+ ),
376
+ submitted_at: T.nilable(Time),
377
+ submitted_to_tcr: T::Boolean,
378
+ tcr_campaign_id: T.nilable(String),
379
+ tcr_sync_error: T.nilable(String),
380
+ terms_and_conditions_link: T.nilable(String),
381
+ type: String,
382
+ updated_at: T.nilable(Time),
383
+ use_cases:
384
+ T::Array[
385
+ Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase
386
+ ],
387
+ volume: T.nilable(String)
388
+ }
389
+ )
390
+ end
391
+ def to_hash
392
+ end
393
+
394
+ module Status
395
+ extend Sentdm::Internal::Type::Enum
396
+
397
+ TaggedSymbol =
398
+ T.type_alias do
399
+ T.all(
400
+ Symbol,
401
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status
402
+ )
403
+ end
404
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
405
+
406
+ SENT_CREATED =
407
+ T.let(
408
+ :SENT_CREATED,
409
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
410
+ )
411
+ ACTIVE =
412
+ T.let(
413
+ :ACTIVE,
414
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
415
+ )
416
+ EXPIRED =
417
+ T.let(
418
+ :EXPIRED,
419
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
420
+ )
421
+
422
+ sig do
423
+ override.returns(
424
+ T::Array[
425
+ Sentdm::Models::Profiles::CampaignListResponse::Data::Status::TaggedSymbol
426
+ ]
427
+ )
428
+ end
429
+ def self.values
430
+ end
431
+ end
432
+
433
+ class UseCase < Sentdm::Internal::Type::BaseModel
434
+ OrHash =
435
+ T.type_alias do
436
+ T.any(
437
+ Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase,
438
+ Sentdm::Internal::AnyHash
439
+ )
440
+ end
441
+
442
+ sig { returns(T.nilable(String)) }
443
+ attr_reader :id
444
+
445
+ sig { params(id: String).void }
446
+ attr_writer :id
447
+
448
+ sig { returns(T.nilable(String)) }
449
+ attr_reader :campaign_id
450
+
451
+ sig { params(campaign_id: String).void }
452
+ attr_writer :campaign_id
453
+
454
+ sig { returns(T.nilable(Time)) }
455
+ attr_reader :created_at
456
+
457
+ sig { params(created_at: Time).void }
458
+ attr_writer :created_at
459
+
460
+ sig { returns(T.nilable(String)) }
461
+ attr_reader :customer_id
462
+
463
+ sig { params(customer_id: String).void }
464
+ attr_writer :customer_id
465
+
466
+ sig do
467
+ returns(
468
+ T.nilable(Sentdm::Profiles::MessagingUseCaseUs::TaggedSymbol)
469
+ )
470
+ end
471
+ attr_reader :messaging_use_case_us
472
+
473
+ sig do
474
+ params(
475
+ messaging_use_case_us:
476
+ Sentdm::Profiles::MessagingUseCaseUs::OrSymbol
477
+ ).void
478
+ end
479
+ attr_writer :messaging_use_case_us
480
+
481
+ # Sample messages submitted to the registry for this use case.
482
+ sig { returns(T.nilable(T::Array[String])) }
483
+ attr_reader :sample_messages
484
+
485
+ sig { params(sample_messages: T::Array[String]).void }
486
+ attr_writer :sample_messages
487
+
488
+ sig { returns(T.nilable(Time)) }
489
+ attr_accessor :updated_at
490
+
491
+ # Customer-facing use-case representation for the public v3 campaign contract.
492
+ # Exists for the same reason as BrandCampaignV3Response: nesting the
493
+ # TcrCampaignUseCase database entity in a public response means any column added
494
+ # to that table silently becomes part of the customer-facing contract. This DTO is
495
+ # an explicit allowlist, so a new column stays invisible until it is added here on
496
+ # purpose. This mirrors exactly the fields the entity already serialized, so it
497
+ # removes nothing from the current response shape. It only closes the future-leak
498
+ # path.
499
+ sig do
500
+ params(
501
+ id: String,
502
+ campaign_id: String,
503
+ created_at: Time,
504
+ customer_id: String,
505
+ messaging_use_case_us:
506
+ Sentdm::Profiles::MessagingUseCaseUs::OrSymbol,
507
+ sample_messages: T::Array[String],
508
+ updated_at: T.nilable(Time)
509
+ ).returns(T.attached_class)
510
+ end
511
+ def self.new(
512
+ id: nil,
513
+ campaign_id: nil,
514
+ created_at: nil,
515
+ customer_id: nil,
516
+ messaging_use_case_us: nil,
517
+ # Sample messages submitted to the registry for this use case.
518
+ sample_messages: nil,
519
+ updated_at: nil
520
+ )
521
+ end
522
+
523
+ sig do
524
+ override.returns(
525
+ {
526
+ id: String,
527
+ campaign_id: String,
528
+ created_at: Time,
529
+ customer_id: String,
530
+ messaging_use_case_us:
531
+ Sentdm::Profiles::MessagingUseCaseUs::TaggedSymbol,
532
+ sample_messages: T::Array[String],
533
+ updated_at: T.nilable(Time)
534
+ }
535
+ )
536
+ end
537
+ def to_hash
538
+ end
539
+ end
540
+ end
541
+
542
+ class Error < Sentdm::Internal::Type::BaseModel
543
+ OrHash =
544
+ T.type_alias do
545
+ T.any(
546
+ Sentdm::Models::Profiles::CampaignListResponse::Error,
547
+ Sentdm::Internal::AnyHash
548
+ )
549
+ end
550
+
551
+ # Machine-readable error code (e.g., "RESOURCE_001")
552
+ sig { returns(T.nilable(String)) }
553
+ attr_reader :code
554
+
555
+ sig { params(code: String).void }
556
+ attr_writer :code
557
+
558
+ # Additional validation error details (field-level errors)
559
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
560
+ attr_accessor :details
561
+
562
+ # URL to documentation about this error
563
+ sig { returns(T.nilable(String)) }
564
+ attr_accessor :doc_url
565
+
566
+ # Human-readable error message
567
+ sig { returns(T.nilable(String)) }
568
+ attr_reader :message
569
+
570
+ sig { params(message: String).void }
571
+ attr_writer :message
572
+
573
+ # Error information
574
+ sig do
575
+ params(
576
+ code: String,
577
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
578
+ doc_url: T.nilable(String),
579
+ message: String
580
+ ).returns(T.attached_class)
581
+ end
582
+ def self.new(
583
+ # Machine-readable error code (e.g., "RESOURCE_001")
584
+ code: nil,
585
+ # Additional validation error details (field-level errors)
586
+ details: nil,
587
+ # URL to documentation about this error
588
+ doc_url: nil,
589
+ # Human-readable error message
590
+ message: nil
591
+ )
592
+ end
593
+
594
+ sig do
595
+ override.returns(
596
+ {
597
+ code: String,
598
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
599
+ doc_url: T.nilable(String),
600
+ message: String
601
+ }
602
+ )
603
+ end
604
+ def to_hash
605
+ end
606
+ end
607
+
608
+ class Meta < Sentdm::Internal::Type::BaseModel
609
+ OrHash =
610
+ T.type_alias do
611
+ T.any(
612
+ Sentdm::Models::Profiles::CampaignListResponse::Meta,
613
+ Sentdm::Internal::AnyHash
614
+ )
615
+ end
616
+
617
+ # Unique identifier for this request (for tracing and support)
618
+ sig { returns(T.nilable(String)) }
619
+ attr_reader :request_id
620
+
621
+ sig { params(request_id: String).void }
622
+ attr_writer :request_id
623
+
624
+ # Server timestamp when the response was generated
625
+ sig { returns(T.nilable(Time)) }
626
+ attr_reader :timestamp
627
+
628
+ sig { params(timestamp: Time).void }
629
+ attr_writer :timestamp
630
+
631
+ # API version used for this request
632
+ sig { returns(T.nilable(String)) }
633
+ attr_reader :version
634
+
635
+ sig { params(version: String).void }
636
+ attr_writer :version
637
+
638
+ # Request and response metadata
639
+ sig do
640
+ params(
641
+ request_id: String,
642
+ timestamp: Time,
643
+ version: String
644
+ ).returns(T.attached_class)
645
+ end
646
+ def self.new(
647
+ # Unique identifier for this request (for tracing and support)
648
+ request_id: nil,
649
+ # Server timestamp when the response was generated
650
+ timestamp: nil,
651
+ # API version used for this request
652
+ version: nil
653
+ )
654
+ end
655
+
656
+ sig do
657
+ override.returns(
658
+ { request_id: String, timestamp: Time, version: String }
659
+ )
660
+ end
661
+ def to_hash
662
+ end
663
+ end
664
+ end
665
+ end
666
+ end
667
+ end