sentdm 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -14,7 +14,16 @@ module Sentdm
14
14
  sig { returns(String) }
15
15
  attr_accessor :profile_id
16
16
 
17
- # Whether contacts are shared across profiles (optional)
17
+ # Deprecated. Accepted and ignored. Contact and template sharing between sender
18
+ # profiles is gone — a profile sees only what it owns, and the organization still
19
+ # sees all of its profiles' contacts and templates through read-time widening. The
20
+ # four columns behind these flags were dropped by M260720120000.
21
+ #
22
+ # Retired the same way as SendingPhoneNumberProfileId, and for the same reason:
23
+ # the properties stay bound so an SDK that assigns them keeps compiling, and a 400
24
+ # would break a working integration over a capability that is gone regardless.
25
+ # Every profile reports all four as false, so a caller that checks its own write
26
+ # can see it did not take.
18
27
  sig { returns(T.nilable(T::Boolean)) }
19
28
  attr_accessor :allow_contact_sharing
20
29
 
@@ -22,18 +31,18 @@ module Sentdm
22
31
  sig { returns(T.nilable(T::Boolean)) }
23
32
  attr_accessor :allow_number_change_during_onboarding
24
33
 
25
- # Whether templates are shared across profiles (optional)
26
34
  sig { returns(T.nilable(T::Boolean)) }
27
35
  attr_accessor :allow_template_sharing
28
36
 
29
37
  # Billing contact information for a profile. Required when billing_model is
30
38
  # "profile" or "profile_and_organization".
31
- sig { returns(T.nilable(Sentdm::BillingContactInfo)) }
39
+ sig { returns(T.nilable(Sentdm::ProfileUpdateParams::BillingContact)) }
32
40
  attr_reader :billing_contact
33
41
 
34
42
  sig do
35
43
  params(
36
- billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash)
44
+ billing_contact:
45
+ T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash)
37
46
  ).void
38
47
  end
39
48
  attr_writer :billing_contact
@@ -49,10 +58,14 @@ module Sentdm
49
58
  attr_accessor :billing_model
50
59
 
51
60
  # Brand and KYC data grouped into contact, business, and compliance sections
52
- sig { returns(T.nilable(Sentdm::BrandsBrandData)) }
61
+ sig { returns(T.nilable(Sentdm::ProfileUpdateParams::Brand)) }
53
62
  attr_reader :brand
54
63
 
55
- sig { params(brand: T.nilable(Sentdm::BrandsBrandData::OrHash)).void }
64
+ sig do
65
+ params(
66
+ brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash)
67
+ ).void
68
+ end
56
69
  attr_writer :brand
57
70
 
58
71
  # Profile description (optional)
@@ -63,7 +76,6 @@ module Sentdm
63
76
  sig { returns(T.nilable(String)) }
64
77
  attr_accessor :icon
65
78
 
66
- # Whether this profile inherits contacts from organization (optional)
67
79
  sig { returns(T.nilable(T::Boolean)) }
68
80
  attr_accessor :inherit_contacts
69
81
 
@@ -75,7 +87,6 @@ module Sentdm
75
87
  sig { returns(T.nilable(T::Boolean)) }
76
88
  attr_accessor :inherit_tcr_campaign
77
89
 
78
- # Whether this profile inherits templates from organization (optional)
79
90
  sig { returns(T.nilable(T::Boolean)) }
80
91
  attr_accessor :inherit_templates
81
92
 
@@ -83,14 +94,17 @@ module Sentdm
83
94
  sig { returns(T.nilable(String)) }
84
95
  attr_accessor :name
85
96
 
86
- # Payment card details for a profile. Accepted when billing_model is "profile" or
87
- # "profile_and_organization". These details are not stored on our servers and will
88
- # be forwarded to the payment processor.
89
- sig { returns(T.nilable(Sentdm::PaymentDetails)) }
97
+ # Payment card details for this profile (optional). Accepted when billing_model is
98
+ # "profile" or "profile_and_organization". Not persisted on our servers
99
+ # forwarded to the payment processor.
100
+ sig { returns(T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails)) }
90
101
  attr_reader :payment_details
91
102
 
92
103
  sig do
93
- params(payment_details: T.nilable(Sentdm::PaymentDetails::OrHash)).void
104
+ params(
105
+ payment_details:
106
+ T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash)
107
+ ).void
94
108
  end
95
109
  attr_writer :payment_details
96
110
 
@@ -106,11 +120,28 @@ module Sentdm
106
120
  sig { returns(T.nilable(String)) }
107
121
  attr_accessor :sending_phone_number
108
122
 
109
- # Reference to another profile to use for SMS configuration (optional)
123
+ # Deprecated. Accepted and ignored. Sender borrowing is gone: a profile cannot
124
+ # send from another profile's SMS number. Supplying this changes nothing and the
125
+ # request still succeeds.
126
+ #
127
+ # Bound rather than dropped so the property survives on the wire and in a
128
+ # generated client — an SDK that assigns it keeps compiling, which is the
129
+ # compatibility this exists for. It is deliberately not refused: a 400 here would
130
+ # break an integration that is otherwise working, and the capability it asks for
131
+ # is gone either way.
132
+ #
133
+ # The trade-off, stated plainly. A caller asking for borrowing is told it
134
+ # succeeded when nothing happened. What makes that survivable is the read:
135
+ # sending_phone_number_profile_id comes back null on every profile, so a caller
136
+ # that checks its own write can see it did not take. Every request that carries
137
+ # one is logged, so we can tell when nobody is sending it any more and the field
138
+ # can go for real.
139
+ #
140
+ # Give the profile a sender of its own instead: POST /v3/channels/sms with the
141
+ # x-profile-id header naming it.
110
142
  sig { returns(T.nilable(String)) }
111
143
  attr_accessor :sending_phone_number_profile_id
112
144
 
113
- # Reference to another profile to use for WhatsApp configuration (optional)
114
145
  sig { returns(T.nilable(String)) }
115
146
  attr_accessor :sending_whatsapp_number_profile_id
116
147
 
@@ -142,9 +173,10 @@ module Sentdm
142
173
  allow_contact_sharing: T.nilable(T::Boolean),
143
174
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
144
175
  allow_template_sharing: T.nilable(T::Boolean),
145
- billing_contact: T.nilable(Sentdm::BillingContactInfo::OrHash),
176
+ billing_contact:
177
+ T.nilable(Sentdm::ProfileUpdateParams::BillingContact::OrHash),
146
178
  billing_model: T.nilable(String),
147
- brand: T.nilable(Sentdm::BrandsBrandData::OrHash),
179
+ brand: T.nilable(Sentdm::ProfileUpdateParams::Brand::OrHash),
148
180
  description: T.nilable(String),
149
181
  icon: T.nilable(String),
150
182
  inherit_contacts: T.nilable(T::Boolean),
@@ -152,7 +184,8 @@ module Sentdm
152
184
  inherit_tcr_campaign: T.nilable(T::Boolean),
153
185
  inherit_templates: T.nilable(T::Boolean),
154
186
  name: T.nilable(String),
155
- payment_details: T.nilable(Sentdm::PaymentDetails::OrHash),
187
+ payment_details:
188
+ T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails::OrHash),
156
189
  sandbox: T::Boolean,
157
190
  sending_phone_number: T.nilable(String),
158
191
  sending_phone_number_profile_id: T.nilable(String),
@@ -166,11 +199,19 @@ module Sentdm
166
199
  end
167
200
  def self.new(
168
201
  profile_id:,
169
- # Whether contacts are shared across profiles (optional)
202
+ # Deprecated. Accepted and ignored. Contact and template sharing between sender
203
+ # profiles is gone — a profile sees only what it owns, and the organization still
204
+ # sees all of its profiles' contacts and templates through read-time widening. The
205
+ # four columns behind these flags were dropped by M260720120000.
206
+ #
207
+ # Retired the same way as SendingPhoneNumberProfileId, and for the same reason:
208
+ # the properties stay bound so an SDK that assigns them keeps compiling, and a 400
209
+ # would break a working integration over a capability that is gone regardless.
210
+ # Every profile reports all four as false, so a caller that checks its own write
211
+ # can see it did not take.
170
212
  allow_contact_sharing: nil,
171
213
  # Whether number changes are allowed during onboarding (optional)
172
214
  allow_number_change_during_onboarding: nil,
173
- # Whether templates are shared across profiles (optional)
174
215
  allow_template_sharing: nil,
175
216
  # Billing contact information for a profile. Required when billing_model is
176
217
  # "profile" or "profile_and_organization".
@@ -189,28 +230,43 @@ module Sentdm
189
230
  description: nil,
190
231
  # Profile icon URL (optional)
191
232
  icon: nil,
192
- # Whether this profile inherits contacts from organization (optional)
193
233
  inherit_contacts: nil,
194
234
  # Whether this profile inherits TCR brand from organization (optional)
195
235
  inherit_tcr_brand: nil,
196
236
  # Whether this profile inherits TCR campaign from organization (optional)
197
237
  inherit_tcr_campaign: nil,
198
- # Whether this profile inherits templates from organization (optional)
199
238
  inherit_templates: nil,
200
239
  # Profile name (optional)
201
240
  name: nil,
202
- # Payment card details for a profile. Accepted when billing_model is "profile" or
203
- # "profile_and_organization". These details are not stored on our servers and will
204
- # be forwarded to the payment processor.
241
+ # Payment card details for this profile (optional). Accepted when billing_model is
242
+ # "profile" or "profile_and_organization". Not persisted on our servers
243
+ # forwarded to the payment processor.
205
244
  payment_details: nil,
206
245
  # Sandbox flag - when true, the operation is simulated without side effects Useful
207
246
  # for testing integrations without actual execution
208
247
  sandbox: nil,
209
248
  # Direct phone number for SMS sending (optional)
210
249
  sending_phone_number: nil,
211
- # Reference to another profile to use for SMS configuration (optional)
250
+ # Deprecated. Accepted and ignored. Sender borrowing is gone: a profile cannot
251
+ # send from another profile's SMS number. Supplying this changes nothing and the
252
+ # request still succeeds.
253
+ #
254
+ # Bound rather than dropped so the property survives on the wire and in a
255
+ # generated client — an SDK that assigns it keeps compiling, which is the
256
+ # compatibility this exists for. It is deliberately not refused: a 400 here would
257
+ # break an integration that is otherwise working, and the capability it asks for
258
+ # is gone either way.
259
+ #
260
+ # The trade-off, stated plainly. A caller asking for borrowing is told it
261
+ # succeeded when nothing happened. What makes that survivable is the read:
262
+ # sending_phone_number_profile_id comes back null on every profile, so a caller
263
+ # that checks its own write can see it did not take. Every request that carries
264
+ # one is logged, so we can tell when nobody is sending it any more and the field
265
+ # can go for real.
266
+ #
267
+ # Give the profile a sender of its own instead: POST /v3/channels/sms with the
268
+ # x-profile-id header naming it.
212
269
  sending_phone_number_profile_id: nil,
213
- # Reference to another profile to use for WhatsApp configuration (optional)
214
270
  sending_whatsapp_number_profile_id: nil,
215
271
  # Profile short name/abbreviation (optional). Must be 3–11 characters, contain
216
272
  # only letters, numbers, and spaces, and include at least one letter. Example:
@@ -231,9 +287,10 @@ module Sentdm
231
287
  allow_contact_sharing: T.nilable(T::Boolean),
232
288
  allow_number_change_during_onboarding: T.nilable(T::Boolean),
233
289
  allow_template_sharing: T.nilable(T::Boolean),
234
- billing_contact: T.nilable(Sentdm::BillingContactInfo),
290
+ billing_contact:
291
+ T.nilable(Sentdm::ProfileUpdateParams::BillingContact),
235
292
  billing_model: T.nilable(String),
236
- brand: T.nilable(Sentdm::BrandsBrandData),
293
+ brand: T.nilable(Sentdm::ProfileUpdateParams::Brand),
237
294
  description: T.nilable(String),
238
295
  icon: T.nilable(String),
239
296
  inherit_contacts: T.nilable(T::Boolean),
@@ -241,7 +298,8 @@ module Sentdm
241
298
  inherit_tcr_campaign: T.nilable(T::Boolean),
242
299
  inherit_templates: T.nilable(T::Boolean),
243
300
  name: T.nilable(String),
244
- payment_details: T.nilable(Sentdm::PaymentDetails),
301
+ payment_details:
302
+ T.nilable(Sentdm::ProfileUpdateParams::PaymentDetails),
245
303
  sandbox: T::Boolean,
246
304
  sending_phone_number: T.nilable(String),
247
305
  sending_phone_number_profile_id: T.nilable(String),
@@ -256,6 +314,528 @@ module Sentdm
256
314
  end
257
315
  def to_hash
258
316
  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
259
839
  end
260
840
  end
261
841
  end