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,421 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ # @see Sentdm::Resources::Profiles::Campaigns#list
7
+ class CampaignListResponse < Sentdm::Internal::Type::BaseModel
8
+ # @!attribute data
9
+ # The response data (null if error)
10
+ #
11
+ # @return [Array<Sentdm::Models::Profiles::CampaignListResponse::Data>, nil]
12
+ optional :data,
13
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::Profiles::CampaignListResponse::Data] },
14
+ nil?: true
15
+
16
+ # @!attribute error
17
+ # Error information
18
+ #
19
+ # @return [Sentdm::Models::Profiles::CampaignListResponse::Error, nil]
20
+ optional :error, -> { Sentdm::Models::Profiles::CampaignListResponse::Error }, nil?: true
21
+
22
+ # @!attribute meta
23
+ # Request and response metadata
24
+ #
25
+ # @return [Sentdm::Models::Profiles::CampaignListResponse::Meta, nil]
26
+ optional :meta, -> { Sentdm::Models::Profiles::CampaignListResponse::Meta }
27
+
28
+ # @!attribute success
29
+ # Indicates whether the request was successful
30
+ #
31
+ # @return [Boolean, nil]
32
+ optional :success, Sentdm::Internal::Type::Boolean
33
+
34
+ # @!method initialize(data: nil, error: nil, meta: nil, success: nil)
35
+ # Standard API response envelope for all v3 endpoints
36
+ #
37
+ # @param data [Array<Sentdm::Models::Profiles::CampaignListResponse::Data>, nil] The response data (null if error)
38
+ #
39
+ # @param error [Sentdm::Models::Profiles::CampaignListResponse::Error, nil] Error information
40
+ #
41
+ # @param meta [Sentdm::Models::Profiles::CampaignListResponse::Meta] Request and response metadata
42
+ #
43
+ # @param success [Boolean] Indicates whether the request was successful
44
+
45
+ class Data < Sentdm::Internal::Type::BaseModel
46
+ # @!attribute id
47
+ #
48
+ # @return [String, nil]
49
+ optional :id, String
50
+
51
+ # @!attribute billed_date
52
+ #
53
+ # @return [Time, nil]
54
+ optional :billed_date, Time, api_name: :billedDate, nil?: true
55
+
56
+ # @!attribute brand_id
57
+ #
58
+ # @return [String, nil]
59
+ optional :brand_id, String, api_name: :brandId, nil?: true
60
+
61
+ # @!attribute cost
62
+ #
63
+ # @return [Float, nil]
64
+ optional :cost, Float, nil?: true
65
+
66
+ # @!attribute created_at
67
+ #
68
+ # @return [Time, nil]
69
+ optional :created_at, Time, api_name: :createdAt
70
+
71
+ # @!attribute customer_id
72
+ #
73
+ # @return [String, nil]
74
+ optional :customer_id, String, api_name: :customerId
75
+
76
+ # @!attribute dca_elections_complete
77
+ # True once every carrier has completed its DCA election and the campaign is
78
+ # operationally ready for traffic.
79
+ #
80
+ # @return [Boolean, nil]
81
+ optional :dca_elections_complete,
82
+ Sentdm::Internal::Type::Boolean,
83
+ api_name: :dcaElectionsComplete,
84
+ nil?: true
85
+
86
+ # @!attribute dca_elections_completed_at
87
+ #
88
+ # @return [Time, nil]
89
+ optional :dca_elections_completed_at, Time, api_name: :dcaElectionsCompletedAt, nil?: true
90
+
91
+ # @!attribute description
92
+ #
93
+ # @return [String, nil]
94
+ optional :description, String
95
+
96
+ # @!attribute has_submission_transaction
97
+ # True when the one-time campaign submission fee has already been charged.
98
+ #
99
+ # @return [Boolean, nil]
100
+ optional :has_submission_transaction,
101
+ Sentdm::Internal::Type::Boolean,
102
+ api_name: :hasSubmissionTransaction
103
+
104
+ # @!attribute help_keywords
105
+ #
106
+ # @return [String, nil]
107
+ optional :help_keywords, String, api_name: :helpKeywords, nil?: true
108
+
109
+ # @!attribute help_message
110
+ #
111
+ # @return [String, nil]
112
+ optional :help_message, String, api_name: :helpMessage, nil?: true
113
+
114
+ # @!attribute message_flow
115
+ #
116
+ # @return [String, nil]
117
+ optional :message_flow, String, api_name: :messageFlow, nil?: true
118
+
119
+ # @!attribute name
120
+ #
121
+ # @return [String, nil]
122
+ optional :name, String
123
+
124
+ # @!attribute optin_keywords
125
+ #
126
+ # @return [String, nil]
127
+ optional :optin_keywords, String, api_name: :optinKeywords, nil?: true
128
+
129
+ # @!attribute optin_message
130
+ #
131
+ # @return [String, nil]
132
+ optional :optin_message, String, api_name: :optinMessage, nil?: true
133
+
134
+ # @!attribute optout_keywords
135
+ #
136
+ # @return [String, nil]
137
+ optional :optout_keywords, String, api_name: :optoutKeywords, nil?: true
138
+
139
+ # @!attribute optout_message
140
+ #
141
+ # @return [String, nil]
142
+ optional :optout_message, String, api_name: :optoutMessage, nil?: true
143
+
144
+ # @!attribute privacy_policy_link
145
+ #
146
+ # @return [String, nil]
147
+ optional :privacy_policy_link, String, api_name: :privacyPolicyLink, nil?: true
148
+
149
+ # @!attribute status
150
+ #
151
+ # @return [Symbol, Sentdm::Models::Profiles::CampaignListResponse::Data::Status, nil]
152
+ optional :status, enum: -> { Sentdm::Models::Profiles::CampaignListResponse::Data::Status }, nil?: true
153
+
154
+ # @!attribute submitted_at
155
+ #
156
+ # @return [Time, nil]
157
+ optional :submitted_at, Time, api_name: :submittedAt, nil?: true
158
+
159
+ # @!attribute submitted_to_tcr
160
+ #
161
+ # @return [Boolean, nil]
162
+ optional :submitted_to_tcr, Sentdm::Internal::Type::Boolean, api_name: :submittedToTCR
163
+
164
+ # @!attribute tcr_campaign_id
165
+ # The Campaign Registry identifier, once the campaign has been accepted.
166
+ #
167
+ # @return [String, nil]
168
+ optional :tcr_campaign_id, String, api_name: :tcrCampaignId, nil?: true
169
+
170
+ # @!attribute tcr_sync_error
171
+ # Surfaced so customers can see why a submission did not reach the registry.
172
+ #
173
+ # @return [String, nil]
174
+ optional :tcr_sync_error, String, api_name: :tcrSyncError, nil?: true
175
+
176
+ # @!attribute terms_and_conditions_link
177
+ #
178
+ # @return [String, nil]
179
+ optional :terms_and_conditions_link, String, api_name: :termsAndConditionsLink, nil?: true
180
+
181
+ # @!attribute type
182
+ # Campaign type (for example KYC or App).
183
+ #
184
+ # @return [String, nil]
185
+ optional :type, String
186
+
187
+ # @!attribute updated_at
188
+ #
189
+ # @return [Time, nil]
190
+ optional :updated_at, Time, api_name: :updatedAt, nil?: true
191
+
192
+ # @!attribute use_cases
193
+ #
194
+ # @return [Array<Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase>, nil]
195
+ optional :use_cases,
196
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase] },
197
+ api_name: :useCases
198
+
199
+ # @!attribute volume
200
+ # Expected messaging volume for this campaign — customer-supplied on
201
+ # create/update, and the input to both the TCR usecase classification (LOW_VOLUME
202
+ # vs MIXED/specific) and the campaign fee tier. Surfaced so customers can read
203
+ # back the value they set.
204
+ #
205
+ # @return [String, nil]
206
+ optional :volume, String, nil?: true
207
+
208
+ # @!method initialize(id: nil, billed_date: nil, brand_id: nil, cost: nil, created_at: nil, customer_id: nil, dca_elections_complete: nil, dca_elections_completed_at: nil, description: nil, has_submission_transaction: nil, help_keywords: nil, help_message: nil, message_flow: nil, name: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, status: nil, submitted_at: nil, submitted_to_tcr: nil, tcr_campaign_id: nil, tcr_sync_error: nil, terms_and_conditions_link: nil, type: nil, updated_at: nil, use_cases: nil, volume: nil)
209
+ # Some parameter documentations has been truncated, see
210
+ # {Sentdm::Models::Profiles::CampaignListResponse::Data} for more details.
211
+ #
212
+ # A 10DLC campaign registered for a brand.
213
+ #
214
+ # @param id [String]
215
+ #
216
+ # @param billed_date [Time, nil]
217
+ #
218
+ # @param brand_id [String, nil]
219
+ #
220
+ # @param cost [Float, nil]
221
+ #
222
+ # @param created_at [Time]
223
+ #
224
+ # @param customer_id [String]
225
+ #
226
+ # @param dca_elections_complete [Boolean, nil] True once every carrier has completed its DCA election and the campaign is
227
+ #
228
+ # @param dca_elections_completed_at [Time, nil]
229
+ #
230
+ # @param description [String]
231
+ #
232
+ # @param has_submission_transaction [Boolean] True when the one-time campaign submission fee has already been charged.
233
+ #
234
+ # @param help_keywords [String, nil]
235
+ #
236
+ # @param help_message [String, nil]
237
+ #
238
+ # @param message_flow [String, nil]
239
+ #
240
+ # @param name [String]
241
+ #
242
+ # @param optin_keywords [String, nil]
243
+ #
244
+ # @param optin_message [String, nil]
245
+ #
246
+ # @param optout_keywords [String, nil]
247
+ #
248
+ # @param optout_message [String, nil]
249
+ #
250
+ # @param privacy_policy_link [String, nil]
251
+ #
252
+ # @param status [Symbol, Sentdm::Models::Profiles::CampaignListResponse::Data::Status, nil]
253
+ #
254
+ # @param submitted_at [Time, nil]
255
+ #
256
+ # @param submitted_to_tcr [Boolean]
257
+ #
258
+ # @param tcr_campaign_id [String, nil] The Campaign Registry identifier, once the campaign has been accepted.
259
+ #
260
+ # @param tcr_sync_error [String, nil] Surfaced so customers can see why a submission did not reach the registry.
261
+ #
262
+ # @param terms_and_conditions_link [String, nil]
263
+ #
264
+ # @param type [String] Campaign type (for example KYC or App).
265
+ #
266
+ # @param updated_at [Time, nil]
267
+ #
268
+ # @param use_cases [Array<Sentdm::Models::Profiles::CampaignListResponse::Data::UseCase>]
269
+ #
270
+ # @param volume [String, nil] Expected messaging volume for this campaign — customer-supplied on create/update
271
+
272
+ # @see Sentdm::Models::Profiles::CampaignListResponse::Data#status
273
+ module Status
274
+ extend Sentdm::Internal::Type::Enum
275
+
276
+ SENT_CREATED = :SENT_CREATED
277
+ ACTIVE = :ACTIVE
278
+ EXPIRED = :EXPIRED
279
+
280
+ # @!method self.values
281
+ # @return [Array<Symbol>]
282
+ end
283
+
284
+ class UseCase < Sentdm::Internal::Type::BaseModel
285
+ # @!attribute id
286
+ #
287
+ # @return [String, nil]
288
+ optional :id, String
289
+
290
+ # @!attribute campaign_id
291
+ #
292
+ # @return [String, nil]
293
+ optional :campaign_id, String, api_name: :campaignId
294
+
295
+ # @!attribute created_at
296
+ #
297
+ # @return [Time, nil]
298
+ optional :created_at, Time, api_name: :createdAt
299
+
300
+ # @!attribute customer_id
301
+ #
302
+ # @return [String, nil]
303
+ optional :customer_id, String, api_name: :customerId
304
+
305
+ # @!attribute messaging_use_case_us
306
+ #
307
+ # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs, nil]
308
+ optional :messaging_use_case_us,
309
+ enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
310
+ api_name: :messagingUseCaseUs
311
+
312
+ # @!attribute sample_messages
313
+ # Sample messages submitted to the registry for this use case.
314
+ #
315
+ # @return [Array<String>, nil]
316
+ optional :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
317
+
318
+ # @!attribute updated_at
319
+ #
320
+ # @return [Time, nil]
321
+ optional :updated_at, Time, api_name: :updatedAt, nil?: true
322
+
323
+ # @!method initialize(id: nil, campaign_id: nil, created_at: nil, customer_id: nil, messaging_use_case_us: nil, sample_messages: nil, updated_at: nil)
324
+ # Customer-facing use-case representation for the public v3 campaign contract.
325
+ # Exists for the same reason as BrandCampaignV3Response: nesting the
326
+ # TcrCampaignUseCase database entity in a public response means any column added
327
+ # to that table silently becomes part of the customer-facing contract. This DTO is
328
+ # an explicit allowlist, so a new column stays invisible until it is added here on
329
+ # purpose. This mirrors exactly the fields the entity already serialized, so it
330
+ # removes nothing from the current response shape. It only closes the future-leak
331
+ # path.
332
+ #
333
+ # @param id [String]
334
+ #
335
+ # @param campaign_id [String]
336
+ #
337
+ # @param created_at [Time]
338
+ #
339
+ # @param customer_id [String]
340
+ #
341
+ # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
342
+ #
343
+ # @param sample_messages [Array<String>] Sample messages submitted to the registry for this use case.
344
+ #
345
+ # @param updated_at [Time, nil]
346
+ end
347
+ end
348
+
349
+ # @see Sentdm::Models::Profiles::CampaignListResponse#error
350
+ class Error < Sentdm::Internal::Type::BaseModel
351
+ # @!attribute code
352
+ # Machine-readable error code (e.g., "RESOURCE_001")
353
+ #
354
+ # @return [String, nil]
355
+ optional :code, String
356
+
357
+ # @!attribute details
358
+ # Additional validation error details (field-level errors)
359
+ #
360
+ # @return [Hash{Symbol=>Array<String>}, nil]
361
+ optional :details,
362
+ Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]],
363
+ nil?: true
364
+
365
+ # @!attribute doc_url
366
+ # URL to documentation about this error
367
+ #
368
+ # @return [String, nil]
369
+ optional :doc_url, String, nil?: true
370
+
371
+ # @!attribute message
372
+ # Human-readable error message
373
+ #
374
+ # @return [String, nil]
375
+ optional :message, String
376
+
377
+ # @!method initialize(code: nil, details: nil, doc_url: nil, message: nil)
378
+ # Error information
379
+ #
380
+ # @param code [String] Machine-readable error code (e.g., "RESOURCE_001")
381
+ #
382
+ # @param details [Hash{Symbol=>Array<String>}, nil] Additional validation error details (field-level errors)
383
+ #
384
+ # @param doc_url [String, nil] URL to documentation about this error
385
+ #
386
+ # @param message [String] Human-readable error message
387
+ end
388
+
389
+ # @see Sentdm::Models::Profiles::CampaignListResponse#meta
390
+ class Meta < Sentdm::Internal::Type::BaseModel
391
+ # @!attribute request_id
392
+ # Unique identifier for this request (for tracing and support)
393
+ #
394
+ # @return [String, nil]
395
+ optional :request_id, String
396
+
397
+ # @!attribute timestamp
398
+ # Server timestamp when the response was generated
399
+ #
400
+ # @return [Time, nil]
401
+ optional :timestamp, Time
402
+
403
+ # @!attribute version
404
+ # API version used for this request
405
+ #
406
+ # @return [String, nil]
407
+ optional :version, String
408
+
409
+ # @!method initialize(request_id: nil, timestamp: nil, version: nil)
410
+ # Request and response metadata
411
+ #
412
+ # @param request_id [String] Unique identifier for this request (for tracing and support)
413
+ #
414
+ # @param timestamp [Time] Server timestamp when the response was generated
415
+ #
416
+ # @param version [String] API version used for this request
417
+ end
418
+ end
419
+ end
420
+ end
421
+ end
@@ -21,8 +21,8 @@ module Sentdm
21
21
  # @!attribute campaign
22
22
  # Campaign data for create or update operation
23
23
  #
24
- # @return [Sentdm::Models::Profiles::CampaignData]
25
- required :campaign, -> { Sentdm::Profiles::CampaignData }
24
+ # @return [Sentdm::Models::Profiles::CampaignUpdateParams::Campaign]
25
+ required :campaign, -> { Sentdm::Profiles::CampaignUpdateParams::Campaign }
26
26
 
27
27
  # @!attribute sandbox
28
28
  # Sandbox flag - when true, the operation is simulated without side effects Useful
@@ -49,7 +49,7 @@ module Sentdm
49
49
  #
50
50
  # @param campaign_id [String]
51
51
  #
52
- # @param campaign [Sentdm::Models::Profiles::CampaignData] Campaign data for create or update operation
52
+ # @param campaign [Sentdm::Models::Profiles::CampaignUpdateParams::Campaign] Campaign data for create or update operation
53
53
  #
54
54
  # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
55
55
  #
@@ -58,6 +58,159 @@ module Sentdm
58
58
  # @param x_profile_id [String]
59
59
  #
60
60
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
61
+
62
+ class Campaign < Sentdm::Internal::Type::BaseModel
63
+ # @!attribute description
64
+ # Campaign description
65
+ #
66
+ # @return [String]
67
+ required :description, String
68
+
69
+ # @!attribute name
70
+ # Campaign name
71
+ #
72
+ # @return [String]
73
+ required :name, String
74
+
75
+ # @!attribute type
76
+ # Campaign type (e.g., "KYC", "App").
77
+ #
78
+ # Still required of a caller, and consulted by nothing. It named the signup path
79
+ # that produced the campaign, was written to a column no query filters on, no TCR
80
+ # payload carries and no fee or status decision reads, and is now defaulted at the
81
+ # entity instead. It stays required so that a request which was valid before is
82
+ # still valid — dropping it would be the client-visible change, not keeping it.
83
+ #
84
+ # @return [String]
85
+ required :type, String
86
+
87
+ # @!attribute use_cases
88
+ # List of use cases with sample messages
89
+ #
90
+ # @return [Array<Sentdm::Models::Profiles::CampaignUpdateParams::Campaign::UseCase>]
91
+ required :use_cases,
92
+ -> {
93
+ Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase]
94
+ },
95
+ api_name: :useCases
96
+
97
+ # @!attribute help_keywords
98
+ # Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
99
+ #
100
+ # @return [String, nil]
101
+ optional :help_keywords, String, api_name: :helpKeywords, nil?: true
102
+
103
+ # @!attribute help_message
104
+ # Message sent when user requests help
105
+ #
106
+ # @return [String, nil]
107
+ optional :help_message, String, api_name: :helpMessage, nil?: true
108
+
109
+ # @!attribute message_flow
110
+ # Description of how messages flow in the campaign
111
+ #
112
+ # @return [String, nil]
113
+ optional :message_flow, String, api_name: :messageFlow, nil?: true
114
+
115
+ # @!attribute optin_keywords
116
+ # Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
117
+ #
118
+ # @return [String, nil]
119
+ optional :optin_keywords, String, api_name: :optinKeywords, nil?: true
120
+
121
+ # @!attribute optin_message
122
+ # Message sent when user opts in
123
+ #
124
+ # @return [String, nil]
125
+ optional :optin_message, String, api_name: :optinMessage, nil?: true
126
+
127
+ # @!attribute optout_keywords
128
+ # Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
129
+ #
130
+ # @return [String, nil]
131
+ optional :optout_keywords, String, api_name: :optoutKeywords, nil?: true
132
+
133
+ # @!attribute optout_message
134
+ # Message sent when user opts out
135
+ #
136
+ # @return [String, nil]
137
+ optional :optout_message, String, api_name: :optoutMessage, nil?: true
138
+
139
+ # @!attribute privacy_policy_link
140
+ # URL to privacy policy
141
+ #
142
+ # @return [String, nil]
143
+ optional :privacy_policy_link, String, api_name: :privacyPolicyLink, nil?: true
144
+
145
+ # @!attribute terms_and_conditions_link
146
+ # URL to terms and conditions
147
+ #
148
+ # @return [String, nil]
149
+ optional :terms_and_conditions_link, String, api_name: :termsAndConditionsLink, nil?: true
150
+
151
+ # @!attribute volume
152
+ # Expected messaging volume for this campaign. Numeric string (e.g. "1999",
153
+ # "5000"). Values below 2000 bill at the low-volume tier.
154
+ #
155
+ # @return [String, nil]
156
+ optional :volume, String, nil?: true
157
+
158
+ # @!method initialize(description:, name:, type:, use_cases:, help_keywords: nil, help_message: nil, message_flow: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, terms_and_conditions_link: nil, volume: nil)
159
+ # Some parameter documentations has been truncated, see
160
+ # {Sentdm::Models::Profiles::CampaignUpdateParams::Campaign} for more details.
161
+ #
162
+ # Campaign data for create or update operation
163
+ #
164
+ # @param description [String] Campaign description
165
+ #
166
+ # @param name [String] Campaign name
167
+ #
168
+ # @param type [String] Campaign type (e.g., "KYC", "App").
169
+ #
170
+ # @param use_cases [Array<Sentdm::Models::Profiles::CampaignUpdateParams::Campaign::UseCase>] List of use cases with sample messages
171
+ #
172
+ # @param help_keywords [String, nil] Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
173
+ #
174
+ # @param help_message [String, nil] Message sent when user requests help
175
+ #
176
+ # @param message_flow [String, nil] Description of how messages flow in the campaign
177
+ #
178
+ # @param optin_keywords [String, nil] Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
179
+ #
180
+ # @param optin_message [String, nil] Message sent when user opts in
181
+ #
182
+ # @param optout_keywords [String, nil] Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
183
+ #
184
+ # @param optout_message [String, nil] Message sent when user opts out
185
+ #
186
+ # @param privacy_policy_link [String, nil] URL to privacy policy
187
+ #
188
+ # @param terms_and_conditions_link [String, nil] URL to terms and conditions
189
+ #
190
+ # @param volume [String, nil] Expected messaging volume for this campaign. Numeric string (e.g. "1999", "5000"
191
+
192
+ class UseCase < Sentdm::Internal::Type::BaseModel
193
+ # @!attribute messaging_use_case_us
194
+ #
195
+ # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
196
+ required :messaging_use_case_us,
197
+ enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
198
+ api_name: :messagingUseCaseUs
199
+
200
+ # @!attribute sample_messages
201
+ # Sample messages for this use case (1-5 messages, max 1024 characters each)
202
+ #
203
+ # @return [Array<String>]
204
+ required :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
205
+
206
+ # @!method initialize(messaging_use_case_us:, sample_messages:)
207
+ # Campaign use case with sample messages
208
+ #
209
+ # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
210
+ #
211
+ # @param sample_messages [Array<String>] Sample messages for this use case (1-5 messages, max 1024 characters each)
212
+ end
213
+ end
61
214
  end
62
215
  end
63
216
  end