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
@@ -36,13 +36,12 @@ module Sentdm
36
36
 
37
37
  # Billing contact information for a profile. Required when billing_model is
38
38
  # "profile" or "profile_and_organization".
39
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::BillingContact)) }
39
+ sig { returns(T.nilable(Sentdm::BillingContactInfo)) }
40
40
  attr_reader :billing_contact
41
41
 
42
42
  sig do
43
43
  params(
44
- billing_contact:
45
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash)
44
+ billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash)
46
45
  ).void
47
46
  end
48
47
  attr_writer :billing_contact
@@ -58,14 +57,10 @@ module Sentdm
58
57
  attr_accessor :billing_model
59
58
 
60
59
  # Brand and KYC data grouped into contact, business, and compliance sections
61
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::Brand)) }
60
+ sig { returns(T.nilable(Sentdm::BrandsBrandData)) }
62
61
  attr_reader :brand
63
62
 
64
- sig do
65
- params(
66
- brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash)
67
- ).void
68
- end
63
+ sig { params(brand: T.nilable(Sentdm::BrandsBrandData::OrHash)).void }
69
64
  attr_writer :brand
70
65
 
71
66
  # Profile description (optional)
@@ -97,14 +92,11 @@ module Sentdm
97
92
  # Payment card details for this profile (optional). Accepted when billing_model is
98
93
  # "profile" or "profile_and_organization". Not persisted on our servers —
99
94
  # forwarded to the payment processor.
100
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails)) }
95
+ sig { returns(T.nilable(Sentdm::PaymentDetails)) }
101
96
  attr_reader :payment_details
102
97
 
103
98
  sig do
104
- params(
105
- payment_details:
106
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash)
107
- ).void
99
+ params(payment_details: T.nilable(Sentdm::PaymentDetails::OrHash)).void
108
100
  end
109
101
  attr_writer :payment_details
110
102
 
@@ -173,10 +165,9 @@ module Sentdm
173
165
  allow_contact_sharing: T.nilable(T::Boolean),
174
166
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
175
167
  allow_template_sharing: T.nilable(T::Boolean),
176
- billing_contact:
177
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash),
168
+ billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash),
178
169
  billing_model: T.nilable(String),
179
- brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash),
170
+ brand: T.nilable(Sentdm::BrandsBrandData::OrHash),
180
171
  description: T.nilable(String),
181
172
  icon: T.nilable(String),
182
173
  inherit_contacts: T.nilable(T::Boolean),
@@ -184,8 +175,7 @@ module Sentdm
184
175
  inherit_tcr_campaign: T.nilable(T::Boolean),
185
176
  inherit_templates: T.nilable(T::Boolean),
186
177
  name: T.nilable(String),
187
- payment_details:
188
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash),
178
+ payment_details: T.nilable(Sentdm::PaymentDetails::OrHash),
189
179
  sandbox: T::Boolean,
190
180
  sending_phone_number: T.nilable(String),
191
181
  sending_phone_number_profile_id: T.nilable(String),
@@ -287,10 +277,9 @@ module Sentdm
287
277
  allow_contact_sharing: T.nilable(T::Boolean),
288
278
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
289
279
  allow_template_sharing: T.nilable(T::Boolean),
290
- billing_contact:
291
- T.nilable(Sentdm::ProfileUpdateParams::BillingContact),
280
+ billing_contact: T.nilable(Sentdm::BillingContactInfo),
292
281
  billing_model: T.nilable(String),
293
- brand: T.nilable(Sentdm::ProfileUpdateParams::Brand),
282
+ brand: T.nilable(Sentdm::BrandsBrandData),
294
283
  description: T.nilable(String),
295
284
  icon: T.nilable(String),
296
285
  inherit_contacts: T.nilable(T::Boolean),
@@ -298,8 +287,7 @@ module Sentdm
298
287
  inherit_tcr_campaign: T.nilable(T::Boolean),
299
288
  inherit_templates: T.nilable(T::Boolean),
300
289
  name: T.nilable(String),
301
- payment_details:
302
- T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails),
290
+ payment_details: T.nilable(Sentdm::PaymentDetails),
303
291
  sandbox: T::Boolean,
304
292
  sending_phone_number: T.nilable(String),
305
293
  sending_phone_number_profile_id: T.nilable(String),
@@ -314,528 +302,6 @@ module Sentdm
314
302
  end
315
303
  def to_hash
316
304
  end
317
-
318
- class BillingContact < Sentdm::Internal::Type::BaseModel
319
- OrHash =
320
- T.type_alias do
321
- T.any(
322
- Sentdm::ProfileUpdateParams::BillingContact,
323
- Sentdm::Internal::AnyHash
324
- )
325
- end
326
-
327
- # Email address where invoices will be sent (required)
328
- sig { returns(String) }
329
- attr_accessor :email
330
-
331
- # Full name of the billing contact or company (required)
332
- sig { returns(String) }
333
- attr_accessor :name
334
-
335
- # Billing address (optional). Free-form text including street, city, state, postal
336
- # code, and country.
337
- sig { returns(T.nilable(String)) }
338
- attr_accessor :address
339
-
340
- # Phone number for the billing contact (optional)
341
- sig { returns(T.nilable(String)) }
342
- attr_accessor :phone
343
-
344
- # Billing contact information for a profile. Required when billing_model is
345
- # "profile" or "profile_and_organization".
346
- sig do
347
- params(
348
- email: String,
349
- name: String,
350
- address: T.nilable(String),
351
- phone: T.nilable(String)
352
- ).returns(T.attached_class)
353
- end
354
- def self.new(
355
- # Email address where invoices will be sent (required)
356
- email:,
357
- # Full name of the billing contact or company (required)
358
- name:,
359
- # Billing address (optional). Free-form text including street, city, state, postal
360
- # code, and country.
361
- address: nil,
362
- # Phone number for the billing contact (optional)
363
- phone: nil
364
- )
365
- end
366
-
367
- sig do
368
- override.returns(
369
- {
370
- email: String,
371
- name: String,
372
- address: T.nilable(String),
373
- phone: T.nilable(String)
374
- }
375
- )
376
- end
377
- def to_hash
378
- end
379
- end
380
-
381
- class Brand < Sentdm::Internal::Type::BaseModel
382
- OrHash =
383
- T.type_alias do
384
- T.any(Sentdm::ProfileUpdateParams::Brand, Sentdm::Internal::AnyHash)
385
- end
386
-
387
- # Compliance and TCR information for brand registration
388
- sig { returns(Sentdm::ProfileUpdateParams::Brand::Compliance) }
389
- attr_reader :compliance
390
-
391
- sig do
392
- params(
393
- compliance: Sentdm::ProfileUpdateParams::Brand::Compliance::OrHash
394
- ).void
395
- end
396
- attr_writer :compliance
397
-
398
- # Contact information for brand KYC
399
- sig { returns(Sentdm::ProfileUpdateParams::Brand::Contact) }
400
- attr_reader :contact
401
-
402
- sig do
403
- params(
404
- contact: Sentdm::ProfileUpdateParams::Brand::Contact::OrHash
405
- ).void
406
- end
407
- attr_writer :contact
408
-
409
- # Business details and address for brand KYC
410
- sig { returns(T.nilable(Sentdm::ProfileUpdateParams::Brand::Business)) }
411
- attr_reader :business
412
-
413
- sig do
414
- params(
415
- business:
416
- T.nilable(Sentdm::ProfileUpdateParams::Brand::Business::OrHash)
417
- ).void
418
- end
419
- attr_writer :business
420
-
421
- # Brand and KYC data grouped into contact, business, and compliance sections
422
- sig do
423
- params(
424
- compliance: Sentdm::ProfileUpdateParams::Brand::Compliance::OrHash,
425
- contact: Sentdm::ProfileUpdateParams::Brand::Contact::OrHash,
426
- business:
427
- T.nilable(Sentdm::ProfileUpdateParams::Brand::Business::OrHash)
428
- ).returns(T.attached_class)
429
- end
430
- def self.new(
431
- # Compliance and TCR information for brand registration
432
- compliance:,
433
- # Contact information for brand KYC
434
- contact:,
435
- # Business details and address for brand KYC
436
- business: nil
437
- )
438
- end
439
-
440
- sig do
441
- override.returns(
442
- {
443
- compliance: Sentdm::ProfileUpdateParams::Brand::Compliance,
444
- contact: Sentdm::ProfileUpdateParams::Brand::Contact,
445
- business: T.nilable(Sentdm::ProfileUpdateParams::Brand::Business)
446
- }
447
- )
448
- end
449
- def to_hash
450
- end
451
-
452
- class Compliance < Sentdm::Internal::Type::BaseModel
453
- OrHash =
454
- T.type_alias do
455
- T.any(
456
- Sentdm::ProfileUpdateParams::Brand::Compliance,
457
- Sentdm::Internal::AnyHash
458
- )
459
- end
460
-
461
- sig { returns(Sentdm::TcrBrandRelationship::OrSymbol) }
462
- attr_accessor :brand_relationship
463
-
464
- sig { returns(Sentdm::TcrVertical::OrSymbol) }
465
- attr_accessor :vertical
466
-
467
- # List of destination countries for messaging
468
- sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
469
- attr_accessor :destination_countries
470
-
471
- # Whether this is a TCR (Campaign Registry) application
472
- sig { returns(T.nilable(T::Boolean)) }
473
- attr_accessor :is_tcr_application
474
-
475
- # Additional notes about the business or use case
476
- sig { returns(T.nilable(String)) }
477
- attr_accessor :notes
478
-
479
- # Phone number prefix for messaging (e.g., "+1")
480
- sig { returns(T.nilable(String)) }
481
- attr_accessor :phone_number_prefix
482
-
483
- # Compliance and TCR information for brand registration
484
- sig do
485
- params(
486
- brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
487
- vertical: Sentdm::TcrVertical::OrSymbol,
488
- destination_countries:
489
- T.nilable(T::Array[Sentdm::DestinationCountry::OrHash]),
490
- is_tcr_application: T.nilable(T::Boolean),
491
- notes: T.nilable(String),
492
- phone_number_prefix: T.nilable(String)
493
- ).returns(T.attached_class)
494
- end
495
- def self.new(
496
- brand_relationship:,
497
- vertical:,
498
- # List of destination countries for messaging
499
- destination_countries: nil,
500
- # Whether this is a TCR (Campaign Registry) application
501
- is_tcr_application: nil,
502
- # Additional notes about the business or use case
503
- notes: nil,
504
- # Phone number prefix for messaging (e.g., "+1")
505
- phone_number_prefix: nil
506
- )
507
- end
508
-
509
- sig do
510
- override.returns(
511
- {
512
- brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
513
- vertical: Sentdm::TcrVertical::OrSymbol,
514
- destination_countries:
515
- T.nilable(T::Array[Sentdm::DestinationCountry]),
516
- is_tcr_application: T.nilable(T::Boolean),
517
- notes: T.nilable(String),
518
- phone_number_prefix: T.nilable(String)
519
- }
520
- )
521
- end
522
- def to_hash
523
- end
524
- end
525
-
526
- class Contact < Sentdm::Internal::Type::BaseModel
527
- OrHash =
528
- T.type_alias do
529
- T.any(
530
- Sentdm::ProfileUpdateParams::Brand::Contact,
531
- Sentdm::Internal::AnyHash
532
- )
533
- end
534
-
535
- # Primary contact name (required)
536
- sig { returns(String) }
537
- attr_accessor :name
538
-
539
- # Business/brand name
540
- sig { returns(T.nilable(String)) }
541
- attr_accessor :business_name
542
-
543
- # Contact email address
544
- sig { returns(T.nilable(String)) }
545
- attr_accessor :email
546
-
547
- # Contact phone number in E.164 format
548
- sig { returns(T.nilable(String)) }
549
- attr_accessor :phone
550
-
551
- # Contact phone country code (e.g., "1" for US)
552
- sig { returns(T.nilable(String)) }
553
- attr_accessor :phone_country_code
554
-
555
- # Contact's role in the business
556
- sig { returns(T.nilable(String)) }
557
- attr_accessor :role
558
-
559
- # Contact information for brand KYC
560
- sig do
561
- params(
562
- name: String,
563
- business_name: T.nilable(String),
564
- email: T.nilable(String),
565
- phone: T.nilable(String),
566
- phone_country_code: T.nilable(String),
567
- role: T.nilable(String)
568
- ).returns(T.attached_class)
569
- end
570
- def self.new(
571
- # Primary contact name (required)
572
- name:,
573
- # Business/brand name
574
- business_name: nil,
575
- # Contact email address
576
- email: nil,
577
- # Contact phone number in E.164 format
578
- phone: nil,
579
- # Contact phone country code (e.g., "1" for US)
580
- phone_country_code: nil,
581
- # Contact's role in the business
582
- role: nil
583
- )
584
- end
585
-
586
- sig do
587
- override.returns(
588
- {
589
- name: String,
590
- business_name: T.nilable(String),
591
- email: T.nilable(String),
592
- phone: T.nilable(String),
593
- phone_country_code: T.nilable(String),
594
- role: T.nilable(String)
595
- }
596
- )
597
- end
598
- def to_hash
599
- end
600
- end
601
-
602
- class Business < Sentdm::Internal::Type::BaseModel
603
- OrHash =
604
- T.type_alias do
605
- T.any(
606
- Sentdm::ProfileUpdateParams::Brand::Business,
607
- Sentdm::Internal::AnyHash
608
- )
609
- end
610
-
611
- # City
612
- sig { returns(T.nilable(String)) }
613
- attr_accessor :city
614
-
615
- # Country code (e.g., US, CA)
616
- sig { returns(T.nilable(String)) }
617
- attr_accessor :country
618
-
619
- # Country where the business is registered
620
- sig { returns(T.nilable(String)) }
621
- attr_accessor :country_of_registration
622
-
623
- sig do
624
- returns(
625
- T.nilable(
626
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::OrSymbol
627
- )
628
- )
629
- end
630
- attr_accessor :entity_type
631
-
632
- # Legal business name
633
- sig { returns(T.nilable(String)) }
634
- attr_accessor :legal_name
635
-
636
- # Postal/ZIP code
637
- sig { returns(T.nilable(String)) }
638
- attr_accessor :postal_code
639
-
640
- # State/province code
641
- sig { returns(T.nilable(String)) }
642
- attr_accessor :state
643
-
644
- # Street address
645
- sig { returns(T.nilable(String)) }
646
- attr_accessor :street
647
-
648
- # Tax ID/EIN number
649
- sig { returns(T.nilable(String)) }
650
- attr_accessor :tax_id
651
-
652
- # Type of tax ID (e.g., us_ein, ca_bn)
653
- sig { returns(T.nilable(String)) }
654
- attr_accessor :tax_id_type
655
-
656
- # Business website URL
657
- sig { returns(T.nilable(String)) }
658
- attr_accessor :url
659
-
660
- # Business details and address for brand KYC
661
- sig do
662
- params(
663
- city: T.nilable(String),
664
- country: T.nilable(String),
665
- country_of_registration: T.nilable(String),
666
- entity_type:
667
- T.nilable(
668
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::OrSymbol
669
- ),
670
- legal_name: T.nilable(String),
671
- postal_code: T.nilable(String),
672
- state: T.nilable(String),
673
- street: T.nilable(String),
674
- tax_id: T.nilable(String),
675
- tax_id_type: T.nilable(String),
676
- url: T.nilable(String)
677
- ).returns(T.attached_class)
678
- end
679
- def self.new(
680
- # City
681
- city: nil,
682
- # Country code (e.g., US, CA)
683
- country: nil,
684
- # Country where the business is registered
685
- country_of_registration: nil,
686
- entity_type: nil,
687
- # Legal business name
688
- legal_name: nil,
689
- # Postal/ZIP code
690
- postal_code: nil,
691
- # State/province code
692
- state: nil,
693
- # Street address
694
- street: nil,
695
- # Tax ID/EIN number
696
- tax_id: nil,
697
- # Type of tax ID (e.g., us_ein, ca_bn)
698
- tax_id_type: nil,
699
- # Business website URL
700
- url: nil
701
- )
702
- end
703
-
704
- sig do
705
- override.returns(
706
- {
707
- city: T.nilable(String),
708
- country: T.nilable(String),
709
- country_of_registration: T.nilable(String),
710
- entity_type:
711
- T.nilable(
712
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::OrSymbol
713
- ),
714
- legal_name: T.nilable(String),
715
- postal_code: T.nilable(String),
716
- state: T.nilable(String),
717
- street: T.nilable(String),
718
- tax_id: T.nilable(String),
719
- tax_id_type: T.nilable(String),
720
- url: T.nilable(String)
721
- }
722
- )
723
- end
724
- def to_hash
725
- end
726
-
727
- module EntityType
728
- extend Sentdm::Internal::Type::Enum
729
-
730
- TaggedSymbol =
731
- T.type_alias do
732
- T.all(
733
- Symbol,
734
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType
735
- )
736
- end
737
- OrSymbol = T.type_alias { T.any(Symbol, String) }
738
-
739
- PRIVATE_PROFIT =
740
- T.let(
741
- :PRIVATE_PROFIT,
742
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
743
- )
744
- PUBLIC_PROFIT =
745
- T.let(
746
- :PUBLIC_PROFIT,
747
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
748
- )
749
- NON_PROFIT =
750
- T.let(
751
- :NON_PROFIT,
752
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
753
- )
754
- SOLE_PROPRIETOR =
755
- T.let(
756
- :SOLE_PROPRIETOR,
757
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
758
- )
759
- GOVERNMENT =
760
- T.let(
761
- :GOVERNMENT,
762
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
763
- )
764
-
765
- sig do
766
- override.returns(
767
- T::Array[
768
- Sentdm::ProfileUpdateParams::Brand::Business::EntityType::TaggedSymbol
769
- ]
770
- )
771
- end
772
- def self.values
773
- end
774
- end
775
- end
776
- end
777
-
778
- class PaymentDetails < Sentdm::Internal::Type::BaseModel
779
- OrHash =
780
- T.type_alias do
781
- T.any(
782
- Sentdm::ProfileUpdateParams::PaymentDetails,
783
- Sentdm::Internal::AnyHash
784
- )
785
- end
786
-
787
- # Card number (digits only, 13–19 characters)
788
- sig { returns(String) }
789
- attr_accessor :card_number
790
-
791
- # Card security code (3–4 digits)
792
- sig { returns(String) }
793
- attr_accessor :cvc
794
-
795
- # Card expiry date in MM/YY format (e.g. "09/27")
796
- sig { returns(String) }
797
- attr_accessor :expiry
798
-
799
- # Billing ZIP / postal code associated with the card
800
- sig { returns(String) }
801
- attr_accessor :zip_code
802
-
803
- # Payment card details for this profile (optional). Accepted when billing_model is
804
- # "profile" or "profile_and_organization". Not persisted on our servers —
805
- # forwarded to the payment processor.
806
- sig do
807
- params(
808
- card_number: String,
809
- cvc: String,
810
- expiry: String,
811
- zip_code: String
812
- ).returns(T.attached_class)
813
- end
814
- def self.new(
815
- # Card number (digits only, 13–19 characters)
816
- card_number:,
817
- # Card security code (3–4 digits)
818
- cvc:,
819
- # Card expiry date in MM/YY format (e.g. "09/27")
820
- expiry:,
821
- # Billing ZIP / postal code associated with the card
822
- zip_code:
823
- )
824
- end
825
-
826
- sig do
827
- override.returns(
828
- {
829
- card_number: String,
830
- cvc: String,
831
- expiry: String,
832
- zip_code: String
833
- }
834
- )
835
- end
836
- def to_hash
837
- end
838
- end
839
305
  end
840
306
  end
841
307
  end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class APIResponseOfBrandCampaign < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Profiles::APIResponseOfBrandCampaign,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # A 10DLC campaign registered for a brand.
16
+ sig { returns(T.nilable(Sentdm::Profiles::BrandCampaign)) }
17
+ attr_reader :data
18
+
19
+ sig do
20
+ params(data: T.nilable(Sentdm::Profiles::BrandCampaign::OrHash)).void
21
+ end
22
+ attr_writer :data
23
+
24
+ # Error information
25
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
26
+ attr_reader :error
27
+
28
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
29
+ attr_writer :error
30
+
31
+ # Request and response metadata
32
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
33
+ attr_reader :meta
34
+
35
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
36
+ attr_writer :meta
37
+
38
+ # Indicates whether the request was successful
39
+ sig { returns(T.nilable(T::Boolean)) }
40
+ attr_reader :success
41
+
42
+ sig { params(success: T::Boolean).void }
43
+ attr_writer :success
44
+
45
+ # Standard API response envelope for all v3 endpoints
46
+ sig do
47
+ params(
48
+ data: T.nilable(Sentdm::Profiles::BrandCampaign::OrHash),
49
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
50
+ meta: Sentdm::APIMeta::OrHash,
51
+ success: T::Boolean
52
+ ).returns(T.attached_class)
53
+ end
54
+ def self.new(
55
+ # A 10DLC campaign registered for a brand.
56
+ data: nil,
57
+ # Error information
58
+ error: nil,
59
+ # Request and response metadata
60
+ meta: nil,
61
+ # Indicates whether the request was successful
62
+ success: nil
63
+ )
64
+ end
65
+
66
+ sig do
67
+ override.returns(
68
+ {
69
+ data: T.nilable(Sentdm::Profiles::BrandCampaign),
70
+ error: T.nilable(Sentdm::ErrorDetail),
71
+ meta: Sentdm::APIMeta,
72
+ success: T::Boolean
73
+ }
74
+ )
75
+ end
76
+ def to_hash
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end