sentdm 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +27 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_meta.rb +34 -0
  6. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  7. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  10. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  11. data/lib/sentdm/models/api_response_template.rb +43 -0
  12. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  13. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  14. data/lib/sentdm/models/brand_business_info.rb +114 -0
  15. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  16. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  17. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  18. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  19. data/lib/sentdm/models/contact_list_response.rb +12 -295
  20. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  21. data/lib/sentdm/models/contact_response.rb +139 -0
  22. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  23. data/lib/sentdm/models/error_detail.rb +42 -0
  24. data/lib/sentdm/models/inbound_message_event_payload.rb +17 -17
  25. data/lib/sentdm/models/me_retrieve_response.rb +43 -243
  26. data/lib/sentdm/models/message_event_payload.rb +11 -11
  27. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  28. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  29. data/lib/sentdm/models/message_send_response.rb +6 -74
  30. data/lib/sentdm/models/mutation_request.rb +20 -0
  31. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  32. data/lib/sentdm/models/pagination_meta.rb +84 -0
  33. data/lib/sentdm/models/payment_details.rb +40 -0
  34. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  35. data/lib/sentdm/models/profile_create_params.rb +9 -345
  36. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  37. data/lib/sentdm/models/profile_detail.rb +650 -0
  38. data/lib/sentdm/models/profile_list_response.rb +12 -815
  39. data/lib/sentdm/models/profile_settings.rb +85 -0
  40. data/lib/sentdm/models/profile_update_params.rb +9 -345
  41. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  42. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  43. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  44. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  45. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  46. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  47. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  48. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  49. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  50. data/lib/sentdm/models/template.rb +102 -0
  51. data/lib/sentdm/models/template_event_payload.rb +18 -18
  52. data/lib/sentdm/models/template_list_response.rb +12 -258
  53. data/lib/sentdm/models/user_list_response.rb +12 -249
  54. data/lib/sentdm/models/user_remove_params.rb +2 -16
  55. data/lib/sentdm/models/user_response.rb +94 -0
  56. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  57. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  58. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  59. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  60. data/lib/sentdm/models/webhook_response.rb +120 -0
  61. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  62. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  63. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  64. data/lib/sentdm/models.rb +52 -0
  65. data/lib/sentdm/resources/contacts.rb +8 -8
  66. data/lib/sentdm/resources/conversations.rb +4 -4
  67. data/lib/sentdm/resources/me.rb +11 -0
  68. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  69. data/lib/sentdm/resources/profiles.rb +12 -12
  70. data/lib/sentdm/resources/templates.rb +6 -6
  71. data/lib/sentdm/resources/users.rb +6 -6
  72. data/lib/sentdm/resources/webhooks.rb +8 -8
  73. data/lib/sentdm/version.rb +1 -1
  74. data/lib/sentdm.rb +32 -22
  75. data/rbi/sentdm/models/api_meta.rbi +55 -0
  76. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  78. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  79. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  80. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  81. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  82. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  83. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  84. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  85. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  86. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  87. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  88. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  89. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  90. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  91. data/rbi/sentdm/models/contact_response.rbi +200 -0
  92. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  93. data/rbi/sentdm/models/error_detail.rbi +66 -0
  94. data/rbi/sentdm/models/inbound_message_event_payload.rbi +16 -22
  95. data/rbi/sentdm/models/me_retrieve_response.rbi +60 -367
  96. data/rbi/sentdm/models/message_event_payload.rbi +12 -15
  97. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  98. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  99. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  100. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  101. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  102. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  103. data/rbi/sentdm/models/payment_details.rbi +56 -0
  104. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  105. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  106. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  107. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  108. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  109. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  110. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  111. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  112. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  113. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  114. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  115. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  116. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  117. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  118. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  119. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  120. data/rbi/sentdm/models/template.rbi +139 -0
  121. data/rbi/sentdm/models/template_event_payload.rbi +21 -27
  122. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  123. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  124. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  125. data/rbi/sentdm/models/user_response.rbi +131 -0
  126. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  127. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  128. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  129. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  130. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  131. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  132. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  133. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  134. data/rbi/sentdm/models.rbi +54 -0
  135. data/rbi/sentdm/resources/contacts.rbi +4 -4
  136. data/rbi/sentdm/resources/conversations.rbi +2 -2
  137. data/rbi/sentdm/resources/me.rbi +11 -0
  138. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  139. data/rbi/sentdm/resources/profiles.rbi +9 -13
  140. data/rbi/sentdm/resources/templates.rbi +3 -3
  141. data/rbi/sentdm/resources/users.rbi +3 -3
  142. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  143. data/sig/sentdm/models/api_meta.rbs +27 -0
  144. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  145. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  146. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  147. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  148. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  149. data/sig/sentdm/models/api_response_template.rbs +39 -0
  150. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  151. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  152. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  153. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  154. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  155. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  156. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  157. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  158. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  159. data/sig/sentdm/models/contact_response.rbs +118 -0
  160. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  161. data/sig/sentdm/models/error_detail.rbs +39 -0
  162. data/sig/sentdm/models/inbound_message_event_payload.rbs +10 -14
  163. data/sig/sentdm/models/me_retrieve_response.rbs +28 -176
  164. data/sig/sentdm/models/message_event_payload.rbs +5 -7
  165. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  166. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  167. data/sig/sentdm/models/message_send_response.rbs +9 -71
  168. data/sig/sentdm/models/mutation_request.rbs +15 -0
  169. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  170. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  171. data/sig/sentdm/models/payment_details.rbs +30 -0
  172. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  173. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  174. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  175. data/sig/sentdm/models/profile_detail.rbs +461 -0
  176. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  177. data/sig/sentdm/models/profile_settings.rbs +50 -0
  178. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  179. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  180. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  181. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  182. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  183. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  184. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  185. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  186. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  187. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  188. data/sig/sentdm/models/template.rbs +84 -0
  189. data/sig/sentdm/models/template_event_payload.rbs +13 -17
  190. data/sig/sentdm/models/template_list_response.rbs +19 -230
  191. data/sig/sentdm/models/user_list_response.rbs +20 -224
  192. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  193. data/sig/sentdm/models/user_response.rbs +79 -0
  194. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  195. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  196. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  197. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  198. data/sig/sentdm/models/webhook_response.rbs +110 -0
  199. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  200. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  201. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  202. data/sig/sentdm/models.rbs +52 -0
  203. data/sig/sentdm/resources/contacts.rbs +4 -4
  204. data/sig/sentdm/resources/conversations.rbs +2 -2
  205. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  206. data/sig/sentdm/resources/profiles.rbs +9 -9
  207. data/sig/sentdm/resources/templates.rbs +3 -3
  208. data/sig/sentdm/resources/users.rbs +3 -3
  209. data/sig/sentdm/resources/webhooks.rbs +4 -4
  210. metadata +98 -68
  211. data/lib/sentdm/models/contact_create_response.rb +0 -249
  212. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  213. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  214. data/lib/sentdm/models/contact_update_response.rb +0 -249
  215. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  216. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  217. data/lib/sentdm/models/profile_create_response.rb +0 -760
  218. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  219. data/lib/sentdm/models/profile_update_response.rb +0 -760
  220. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  221. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  222. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  223. data/lib/sentdm/models/template_create_response.rb +0 -209
  224. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  225. data/lib/sentdm/models/template_update_response.rb +0 -209
  226. data/lib/sentdm/models/user_invite_response.rb +0 -201
  227. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  228. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  229. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  230. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  231. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  232. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  233. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  234. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  235. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  236. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  237. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  238. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  239. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  240. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  241. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  242. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  243. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  244. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  245. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  246. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  247. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  248. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  249. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  250. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  251. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  252. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  253. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  254. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  255. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  256. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  257. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  258. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  259. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  260. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  261. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  262. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  263. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  264. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  265. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  266. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  267. data/sig/sentdm/models/template_create_response.rbs +0 -182
  268. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  269. data/sig/sentdm/models/template_update_response.rbs +0 -182
  270. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  271. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  272. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  273. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  274. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  275. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  276. 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