sentdm 0.29.0 → 0.30.0

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