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
@@ -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