sentdm 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +27 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_meta.rb +34 -0
  6. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  7. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  10. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  11. data/lib/sentdm/models/api_response_template.rb +43 -0
  12. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  13. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  14. data/lib/sentdm/models/brand_business_info.rb +114 -0
  15. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  16. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  17. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  18. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  19. data/lib/sentdm/models/contact_list_response.rb +12 -295
  20. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  21. data/lib/sentdm/models/contact_response.rb +139 -0
  22. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  23. data/lib/sentdm/models/error_detail.rb +42 -0
  24. data/lib/sentdm/models/inbound_message_event_payload.rb +17 -17
  25. data/lib/sentdm/models/me_retrieve_response.rb +43 -243
  26. data/lib/sentdm/models/message_event_payload.rb +11 -11
  27. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  28. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  29. data/lib/sentdm/models/message_send_response.rb +6 -74
  30. data/lib/sentdm/models/mutation_request.rb +20 -0
  31. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  32. data/lib/sentdm/models/pagination_meta.rb +84 -0
  33. data/lib/sentdm/models/payment_details.rb +40 -0
  34. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  35. data/lib/sentdm/models/profile_create_params.rb +9 -345
  36. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  37. data/lib/sentdm/models/profile_detail.rb +650 -0
  38. data/lib/sentdm/models/profile_list_response.rb +12 -815
  39. data/lib/sentdm/models/profile_settings.rb +85 -0
  40. data/lib/sentdm/models/profile_update_params.rb +9 -345
  41. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  42. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  43. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  44. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  45. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  46. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  47. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  48. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  49. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  50. data/lib/sentdm/models/template.rb +102 -0
  51. data/lib/sentdm/models/template_event_payload.rb +18 -18
  52. data/lib/sentdm/models/template_list_response.rb +12 -258
  53. data/lib/sentdm/models/user_list_response.rb +12 -249
  54. data/lib/sentdm/models/user_remove_params.rb +2 -16
  55. data/lib/sentdm/models/user_response.rb +94 -0
  56. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  57. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  58. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  59. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  60. data/lib/sentdm/models/webhook_response.rb +120 -0
  61. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  62. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  63. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  64. data/lib/sentdm/models.rb +52 -0
  65. data/lib/sentdm/resources/contacts.rb +8 -8
  66. data/lib/sentdm/resources/conversations.rb +4 -4
  67. data/lib/sentdm/resources/me.rb +11 -0
  68. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  69. data/lib/sentdm/resources/profiles.rb +12 -12
  70. data/lib/sentdm/resources/templates.rb +6 -6
  71. data/lib/sentdm/resources/users.rb +6 -6
  72. data/lib/sentdm/resources/webhooks.rb +8 -8
  73. data/lib/sentdm/version.rb +1 -1
  74. data/lib/sentdm.rb +32 -22
  75. data/rbi/sentdm/models/api_meta.rbi +55 -0
  76. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  78. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  79. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  80. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  81. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  82. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  83. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  84. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  85. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  86. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  87. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  88. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  89. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  90. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  91. data/rbi/sentdm/models/contact_response.rbi +200 -0
  92. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  93. data/rbi/sentdm/models/error_detail.rbi +66 -0
  94. data/rbi/sentdm/models/inbound_message_event_payload.rbi +16 -22
  95. data/rbi/sentdm/models/me_retrieve_response.rbi +60 -367
  96. data/rbi/sentdm/models/message_event_payload.rbi +12 -15
  97. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  98. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  99. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  100. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  101. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  102. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  103. data/rbi/sentdm/models/payment_details.rbi +56 -0
  104. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  105. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  106. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  107. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  108. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  109. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  110. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  111. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  112. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  113. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  114. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  115. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  116. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  117. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  118. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  119. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  120. data/rbi/sentdm/models/template.rbi +139 -0
  121. data/rbi/sentdm/models/template_event_payload.rbi +21 -27
  122. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  123. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  124. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  125. data/rbi/sentdm/models/user_response.rbi +131 -0
  126. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  127. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  128. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  129. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  130. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  131. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  132. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  133. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  134. data/rbi/sentdm/models.rbi +54 -0
  135. data/rbi/sentdm/resources/contacts.rbi +4 -4
  136. data/rbi/sentdm/resources/conversations.rbi +2 -2
  137. data/rbi/sentdm/resources/me.rbi +11 -0
  138. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  139. data/rbi/sentdm/resources/profiles.rbi +9 -13
  140. data/rbi/sentdm/resources/templates.rbi +3 -3
  141. data/rbi/sentdm/resources/users.rbi +3 -3
  142. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  143. data/sig/sentdm/models/api_meta.rbs +27 -0
  144. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  145. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  146. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  147. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  148. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  149. data/sig/sentdm/models/api_response_template.rbs +39 -0
  150. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  151. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  152. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  153. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  154. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  155. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  156. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  157. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  158. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  159. data/sig/sentdm/models/contact_response.rbs +118 -0
  160. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  161. data/sig/sentdm/models/error_detail.rbs +39 -0
  162. data/sig/sentdm/models/inbound_message_event_payload.rbs +10 -14
  163. data/sig/sentdm/models/me_retrieve_response.rbs +28 -176
  164. data/sig/sentdm/models/message_event_payload.rbs +5 -7
  165. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  166. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  167. data/sig/sentdm/models/message_send_response.rbs +9 -71
  168. data/sig/sentdm/models/mutation_request.rbs +15 -0
  169. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  170. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  171. data/sig/sentdm/models/payment_details.rbs +30 -0
  172. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  173. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  174. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  175. data/sig/sentdm/models/profile_detail.rbs +461 -0
  176. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  177. data/sig/sentdm/models/profile_settings.rbs +50 -0
  178. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  179. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  180. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  181. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  182. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  183. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  184. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  185. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  186. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  187. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  188. data/sig/sentdm/models/template.rbs +84 -0
  189. data/sig/sentdm/models/template_event_payload.rbs +13 -17
  190. data/sig/sentdm/models/template_list_response.rbs +19 -230
  191. data/sig/sentdm/models/user_list_response.rbs +20 -224
  192. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  193. data/sig/sentdm/models/user_response.rbs +79 -0
  194. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  195. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  196. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  197. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  198. data/sig/sentdm/models/webhook_response.rbs +110 -0
  199. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  200. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  201. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  202. data/sig/sentdm/models.rbs +52 -0
  203. data/sig/sentdm/resources/contacts.rbs +4 -4
  204. data/sig/sentdm/resources/conversations.rbs +2 -2
  205. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  206. data/sig/sentdm/resources/profiles.rbs +9 -9
  207. data/sig/sentdm/resources/templates.rbs +3 -3
  208. data/sig/sentdm/resources/users.rbs +3 -3
  209. data/sig/sentdm/resources/webhooks.rbs +4 -4
  210. metadata +98 -68
  211. data/lib/sentdm/models/contact_create_response.rb +0 -249
  212. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  213. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  214. data/lib/sentdm/models/contact_update_response.rb +0 -249
  215. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  216. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  217. data/lib/sentdm/models/profile_create_response.rb +0 -760
  218. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  219. data/lib/sentdm/models/profile_update_response.rb +0 -760
  220. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  221. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  222. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  223. data/lib/sentdm/models/template_create_response.rb +0 -209
  224. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  225. data/lib/sentdm/models/template_update_response.rb +0 -209
  226. data/lib/sentdm/models/user_invite_response.rb +0 -201
  227. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  228. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  229. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  230. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  231. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  232. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  233. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  234. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  235. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  236. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  237. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  238. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  239. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  240. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  241. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  242. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  243. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  244. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  245. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  246. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  247. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  248. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  249. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  250. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  251. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  252. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  253. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  254. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  255. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  256. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  257. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  258. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  259. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  260. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  261. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  262. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  263. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  264. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  265. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  266. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  267. data/sig/sentdm/models/template_create_response.rbs +0 -182
  268. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  269. data/sig/sentdm/models/template_update_response.rbs +0 -182
  270. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  271. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  272. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  273. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  274. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  275. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  276. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -0,0 +1,650 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ProfileDetail < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ # Profile unique identifier
8
+ #
9
+ # @return [String, nil]
10
+ optional :id, String
11
+
12
+ # @!attribute allow_contact_sharing
13
+ # @deprecated
14
+ #
15
+ # Always false. A profile no longer shares contacts with sibling profiles — it
16
+ # sees only what it owns. Retained so existing v3 clients reading
17
+ # allow_contact_sharing keep deserializing; it carries no information.
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :allow_contact_sharing, Sentdm::Internal::Type::Boolean, nil?: true
21
+
22
+ # @!attribute allow_number_change_during_onboarding
23
+ # Whether number changes are allowed during onboarding
24
+ #
25
+ # @return [Boolean, nil]
26
+ optional :allow_number_change_during_onboarding, Sentdm::Internal::Type::Boolean, nil?: true
27
+
28
+ # @!attribute allow_template_sharing
29
+ # @deprecated
30
+ #
31
+ # Always false. A profile no longer shares templates with sibling profiles.
32
+ # Retained so existing v3 clients reading allow_template_sharing keep
33
+ # deserializing; it carries no information.
34
+ #
35
+ # @return [Boolean, nil]
36
+ optional :allow_template_sharing, Sentdm::Internal::Type::Boolean, nil?: true
37
+
38
+ # @!attribute billing_contact
39
+ # Billing contact info returned in profile responses
40
+ #
41
+ # @return [Sentdm::Models::ProfileDetail::BillingContact, nil]
42
+ optional :billing_contact, -> { Sentdm::ProfileDetail::BillingContact }, nil?: true
43
+
44
+ # @!attribute billing_model
45
+ # Billing model: profile, organization, or profile_and_organization
46
+ #
47
+ # @return [String, nil]
48
+ optional :billing_model, String
49
+
50
+ # @!attribute brand
51
+ # Brand response with nested contact, business, and compliance sections — mirrors
52
+ # the request structure.
53
+ #
54
+ # @return [Sentdm::Models::ProfileDetail::Brand, nil]
55
+ optional :brand, -> { Sentdm::ProfileDetail::Brand }, nil?: true
56
+
57
+ # @!attribute created_at
58
+ # When the profile was created
59
+ #
60
+ # @return [Time, nil]
61
+ optional :created_at, Time
62
+
63
+ # @!attribute description
64
+ # Profile description
65
+ #
66
+ # @return [String, nil]
67
+ optional :description, String, nil?: true
68
+
69
+ # @!attribute email
70
+ # Profile email (inherited from organization)
71
+ #
72
+ # @return [String, nil]
73
+ optional :email, String, nil?: true
74
+
75
+ # @!attribute icon
76
+ # Profile icon URL
77
+ #
78
+ # @return [String, nil]
79
+ optional :icon, String, nil?: true
80
+
81
+ # @!attribute inherit_contacts
82
+ # @deprecated
83
+ #
84
+ # Always false. A profile no longer inherits its organization's contacts. Retained
85
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
86
+ # no information.
87
+ #
88
+ # @return [Boolean, nil]
89
+ optional :inherit_contacts, Sentdm::Internal::Type::Boolean, nil?: true
90
+
91
+ # @!attribute inherit_tcr_brand
92
+ # Whether this profile inherits TCR brand from the organization
93
+ #
94
+ # @return [Boolean, nil]
95
+ optional :inherit_tcr_brand, Sentdm::Internal::Type::Boolean
96
+
97
+ # @!attribute inherit_tcr_campaign
98
+ # Whether this profile inherits TCR campaign from the organization
99
+ #
100
+ # @return [Boolean, nil]
101
+ optional :inherit_tcr_campaign, Sentdm::Internal::Type::Boolean
102
+
103
+ # @!attribute inherit_templates
104
+ # @deprecated
105
+ #
106
+ # Always false. A profile no longer inherits its organization's templates.
107
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
108
+ # carries no information.
109
+ #
110
+ # @return [Boolean, nil]
111
+ optional :inherit_templates, Sentdm::Internal::Type::Boolean, nil?: true
112
+
113
+ # @!attribute name
114
+ # Profile name
115
+ #
116
+ # @return [String, nil]
117
+ optional :name, String
118
+
119
+ # @!attribute organization_id
120
+ # Parent organization ID
121
+ #
122
+ # @return [String, nil]
123
+ optional :organization_id, String, nil?: true
124
+
125
+ # @!attribute sending_phone_number
126
+ # Direct SMS phone number
127
+ #
128
+ # @return [String, nil]
129
+ optional :sending_phone_number, String, nil?: true
130
+
131
+ # @!attribute sending_phone_number_profile_id
132
+ # @deprecated
133
+ #
134
+ # Deprecated. Always null. Sender borrowing is gone: a profile no longer points at
135
+ # another profile for its SMS sender, and every profile owns the sender it sends
136
+ # from.
137
+ #
138
+ # Kept on the wire, and never populated, because those are two different promises.
139
+ # Removing the key changes the response's shape — a generated client loses the
140
+ # property and stops compiling on the next regenerate, for a value that is now
141
+ # null for every profile in existence. Keeping it null costs a key and breaks
142
+ # nobody, and null is the honest answer rather than a placeholder: there is no
143
+ # borrowing left to report.
144
+ #
145
+ # Nothing could populate it. Migration 260813161500 dropped the column and copied
146
+ # each borrower its own channel-provider row; its Down() says outright that the
147
+ # borrower-to-lender pairing is not recoverable. The only surviving trace is a
148
+ # notes string on the copied row.
149
+ #
150
+ # @return [String, nil]
151
+ optional :sending_phone_number_profile_id, String, nil?: true
152
+
153
+ # @!attribute sending_whatsapp_number_profile_id
154
+ # @deprecated
155
+ #
156
+ # @return [String, nil]
157
+ optional :sending_whatsapp_number_profile_id, String, nil?: true
158
+
159
+ # @!attribute short_name
160
+ # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
161
+ # only, with at least one letter.
162
+ #
163
+ # @return [String, nil]
164
+ optional :short_name, String, nil?: true
165
+
166
+ # @!attribute status
167
+ # Profile setup status: incomplete, pending_review, approved, rejected
168
+ #
169
+ # @return [String, nil]
170
+ optional :status, String
171
+
172
+ # @!attribute updated_at
173
+ # When the profile was last updated
174
+ #
175
+ # @return [Time, nil]
176
+ optional :updated_at, Time, nil?: true
177
+
178
+ # @!attribute waba_id
179
+ # WhatsApp Business Account ID associated with this profile. Present whether the
180
+ # WABA is inherited from the organization or configured directly.
181
+ #
182
+ # @return [String, nil]
183
+ optional :waba_id, String, nil?: true
184
+
185
+ # @!attribute whatsapp_phone_number
186
+ # Direct WhatsApp phone number
187
+ #
188
+ # @return [String, nil]
189
+ optional :whatsapp_phone_number, String, nil?: true
190
+
191
+ # @!method initialize(id: nil, allow_contact_sharing: nil, allow_number_change_during_onboarding: nil, allow_template_sharing: nil, billing_contact: nil, billing_model: nil, brand: nil, created_at: nil, description: nil, email: nil, icon: nil, inherit_contacts: nil, inherit_tcr_brand: nil, inherit_tcr_campaign: nil, inherit_templates: nil, name: nil, organization_id: nil, sending_phone_number: nil, sending_phone_number_profile_id: nil, sending_whatsapp_number_profile_id: nil, short_name: nil, status: nil, updated_at: nil, waba_id: nil, whatsapp_phone_number: nil)
192
+ # Some parameter documentations has been truncated, see
193
+ # {Sentdm::Models::ProfileDetail} for more details.
194
+ #
195
+ # Detailed profile response for v3 API
196
+ #
197
+ # @param id [String] Profile unique identifier
198
+ #
199
+ # @param allow_contact_sharing [Boolean, nil] Always false. A profile no longer shares contacts with sibling profiles — it see
200
+ #
201
+ # @param allow_number_change_during_onboarding [Boolean, nil] Whether number changes are allowed during onboarding
202
+ #
203
+ # @param allow_template_sharing [Boolean, nil] Always false. A profile no longer shares templates with sibling profiles. Retain
204
+ #
205
+ # @param billing_contact [Sentdm::Models::ProfileDetail::BillingContact, nil] Billing contact info returned in profile responses
206
+ #
207
+ # @param billing_model [String] Billing model: profile, organization, or profile_and_organization
208
+ #
209
+ # @param brand [Sentdm::Models::ProfileDetail::Brand, nil] Brand response with nested contact, business, and compliance sections — mirrors
210
+ #
211
+ # @param created_at [Time] When the profile was created
212
+ #
213
+ # @param description [String, nil] Profile description
214
+ #
215
+ # @param email [String, nil] Profile email (inherited from organization)
216
+ #
217
+ # @param icon [String, nil] Profile icon URL
218
+ #
219
+ # @param inherit_contacts [Boolean, nil] Always false. A profile no longer inherits its organization's contacts. Retained
220
+ #
221
+ # @param inherit_tcr_brand [Boolean] Whether this profile inherits TCR brand from the organization
222
+ #
223
+ # @param inherit_tcr_campaign [Boolean] Whether this profile inherits TCR campaign from the organization
224
+ #
225
+ # @param inherit_templates [Boolean, nil] Always false. A profile no longer inherits its organization's templates. Retaine
226
+ #
227
+ # @param name [String] Profile name
228
+ #
229
+ # @param organization_id [String, nil] Parent organization ID
230
+ #
231
+ # @param sending_phone_number [String, nil] Direct SMS phone number
232
+ #
233
+ # @param sending_phone_number_profile_id [String, nil] Deprecated. Always null. Sender borrowing is gone: a profile no longer points at
234
+ #
235
+ # @param sending_whatsapp_number_profile_id [String, nil]
236
+ #
237
+ # @param short_name [String, nil] Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces o
238
+ #
239
+ # @param status [String] Profile setup status: incomplete, pending_review, approved, rejected
240
+ #
241
+ # @param updated_at [Time, nil] When the profile was last updated
242
+ #
243
+ # @param waba_id [String, nil] WhatsApp Business Account ID associated with this profile.
244
+ #
245
+ # @param whatsapp_phone_number [String, nil] Direct WhatsApp phone number
246
+
247
+ # @see Sentdm::Models::ProfileDetail#billing_contact
248
+ class BillingContact < Sentdm::Internal::Type::BaseModel
249
+ # @!attribute address
250
+ #
251
+ # @return [String, nil]
252
+ optional :address, String, nil?: true
253
+
254
+ # @!attribute email
255
+ #
256
+ # @return [String, nil]
257
+ optional :email, String, nil?: true
258
+
259
+ # @!attribute name
260
+ #
261
+ # @return [String, nil]
262
+ optional :name, String, nil?: true
263
+
264
+ # @!attribute phone
265
+ #
266
+ # @return [String, nil]
267
+ optional :phone, String, nil?: true
268
+
269
+ # @!method initialize(address: nil, email: nil, name: nil, phone: nil)
270
+ # Billing contact info returned in profile responses
271
+ #
272
+ # @param address [String, nil]
273
+ # @param email [String, nil]
274
+ # @param name [String, nil]
275
+ # @param phone [String, nil]
276
+ end
277
+
278
+ # @see Sentdm::Models::ProfileDetail#brand
279
+ class Brand < Sentdm::Internal::Type::BaseModel
280
+ # @!attribute id
281
+ # Unique identifier for the brand
282
+ #
283
+ # @return [String, nil]
284
+ optional :id, String
285
+
286
+ # @!attribute business
287
+ # Business details and address information
288
+ #
289
+ # @return [Sentdm::Models::ProfileDetail::Brand::Business, nil]
290
+ optional :business, -> { Sentdm::ProfileDetail::Brand::Business }, nil?: true
291
+
292
+ # @!attribute compliance
293
+ # Compliance and TCR-related information
294
+ #
295
+ # @return [Sentdm::Models::ProfileDetail::Brand::Compliance, nil]
296
+ optional :compliance, -> { Sentdm::ProfileDetail::Brand::Compliance }, nil?: true
297
+
298
+ # @!attribute contact
299
+ # Contact information for the brand
300
+ #
301
+ # @return [Sentdm::Models::ProfileDetail::Brand::Contact, nil]
302
+ optional :contact, -> { Sentdm::ProfileDetail::Brand::Contact }, nil?: true
303
+
304
+ # @!attribute created_at
305
+ # When the brand was created
306
+ #
307
+ # @return [Time, nil]
308
+ optional :created_at, Time
309
+
310
+ # @!attribute csp_id
311
+ # @deprecated
312
+ #
313
+ # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
314
+ # that registered the brand, which is Sent, so the value is the same for every
315
+ # brand and every account. Nothing on your side can act on it and there is no
316
+ # replacement. Stop reading it.
317
+ #
318
+ # @return [String, nil]
319
+ optional :csp_id, String, nil?: true
320
+
321
+ # @!attribute identity_status
322
+ #
323
+ # @return [Symbol, Sentdm::Models::ProfileDetail::Brand::IdentityStatus, nil]
324
+ optional :identity_status, enum: -> { Sentdm::ProfileDetail::Brand::IdentityStatus }, nil?: true
325
+
326
+ # @!attribute is_inherited
327
+ # Whether this brand is inherited from the parent organization
328
+ #
329
+ # @return [Boolean, nil]
330
+ optional :is_inherited, Sentdm::Internal::Type::Boolean
331
+
332
+ # @!attribute status
333
+ #
334
+ # @return [Symbol, Sentdm::Models::ProfileDetail::Brand::Status, nil]
335
+ optional :status, enum: -> { Sentdm::ProfileDetail::Brand::Status }, nil?: true
336
+
337
+ # @!attribute submitted_at
338
+ # When the brand was submitted to TCR
339
+ #
340
+ # @return [Time, nil]
341
+ optional :submitted_at, Time, nil?: true
342
+
343
+ # @!attribute submitted_to_tcr
344
+ # Whether this brand has been submitted to TCR
345
+ #
346
+ # @return [Boolean, nil]
347
+ optional :submitted_to_tcr, Sentdm::Internal::Type::Boolean
348
+
349
+ # @!attribute tcr_brand_id
350
+ # TCR brand ID (populated after TCR submission)
351
+ #
352
+ # @return [String, nil]
353
+ optional :tcr_brand_id, String, nil?: true
354
+
355
+ # @!attribute universal_ein
356
+ # Universal EIN from TCR
357
+ #
358
+ # @return [String, nil]
359
+ optional :universal_ein, String, nil?: true
360
+
361
+ # @!attribute updated_at
362
+ # When the brand was last updated
363
+ #
364
+ # @return [Time, nil]
365
+ optional :updated_at, Time, nil?: true
366
+
367
+ # @!method initialize(id: nil, business: nil, compliance: nil, contact: nil, created_at: nil, csp_id: nil, identity_status: nil, is_inherited: nil, status: nil, submitted_at: nil, submitted_to_tcr: nil, tcr_brand_id: nil, universal_ein: nil, updated_at: nil)
368
+ # Some parameter documentations has been truncated, see
369
+ # {Sentdm::Models::ProfileDetail::Brand} for more details.
370
+ #
371
+ # Brand response with nested contact, business, and compliance sections — mirrors
372
+ # the request structure.
373
+ #
374
+ # @param id [String] Unique identifier for the brand
375
+ #
376
+ # @param business [Sentdm::Models::ProfileDetail::Brand::Business, nil] Business details and address information
377
+ #
378
+ # @param compliance [Sentdm::Models::ProfileDetail::Brand::Compliance, nil] Compliance and TCR-related information
379
+ #
380
+ # @param contact [Sentdm::Models::ProfileDetail::Brand::Contact, nil] Contact information for the brand
381
+ #
382
+ # @param created_at [Time] When the brand was created
383
+ #
384
+ # @param csp_id [String, nil] Deprecated and scheduled for removal. Identifies the Campaign Service Provider t
385
+ #
386
+ # @param identity_status [Symbol, Sentdm::Models::ProfileDetail::Brand::IdentityStatus, nil]
387
+ #
388
+ # @param is_inherited [Boolean] Whether this brand is inherited from the parent organization
389
+ #
390
+ # @param status [Symbol, Sentdm::Models::ProfileDetail::Brand::Status, nil]
391
+ #
392
+ # @param submitted_at [Time, nil] When the brand was submitted to TCR
393
+ #
394
+ # @param submitted_to_tcr [Boolean] Whether this brand has been submitted to TCR
395
+ #
396
+ # @param tcr_brand_id [String, nil] TCR brand ID (populated after TCR submission)
397
+ #
398
+ # @param universal_ein [String, nil] Universal EIN from TCR
399
+ #
400
+ # @param updated_at [Time, nil] When the brand was last updated
401
+
402
+ # @see Sentdm::Models::ProfileDetail::Brand#business
403
+ class Business < Sentdm::Internal::Type::BaseModel
404
+ # @!attribute city
405
+ # City
406
+ #
407
+ # @return [String, nil]
408
+ optional :city, String, nil?: true
409
+
410
+ # @!attribute country
411
+ # Country code (e.g., US, CA)
412
+ #
413
+ # @return [String, nil]
414
+ optional :country, String, nil?: true
415
+
416
+ # @!attribute country_of_registration
417
+ # Country where the business is registered
418
+ #
419
+ # @return [String, nil]
420
+ optional :country_of_registration, String, nil?: true
421
+
422
+ # @!attribute entity_type
423
+ # Business entity type
424
+ #
425
+ # @return [String, nil]
426
+ optional :entity_type, String, nil?: true
427
+
428
+ # @!attribute legal_name
429
+ # Legal business name
430
+ #
431
+ # @return [String, nil]
432
+ optional :legal_name, String, nil?: true
433
+
434
+ # @!attribute postal_code
435
+ # Postal/ZIP code
436
+ #
437
+ # @return [String, nil]
438
+ optional :postal_code, String, nil?: true
439
+
440
+ # @!attribute state
441
+ # State/province code
442
+ #
443
+ # @return [String, nil]
444
+ optional :state, String, nil?: true
445
+
446
+ # @!attribute street
447
+ # Street address
448
+ #
449
+ # @return [String, nil]
450
+ optional :street, String, nil?: true
451
+
452
+ # @!attribute tax_id
453
+ # Tax ID/EIN number
454
+ #
455
+ # @return [String, nil]
456
+ optional :tax_id, String, nil?: true
457
+
458
+ # @!attribute tax_id_type
459
+ # Type of tax ID (e.g., us_ein, ca_bn)
460
+ #
461
+ # @return [String, nil]
462
+ optional :tax_id_type, String, nil?: true
463
+
464
+ # @!attribute url
465
+ # Business website URL
466
+ #
467
+ # @return [String, nil]
468
+ optional :url, String, nil?: true
469
+
470
+ # @!method initialize(city: nil, country: nil, country_of_registration: nil, entity_type: nil, legal_name: nil, postal_code: nil, state: nil, street: nil, tax_id: nil, tax_id_type: nil, url: nil)
471
+ # Business details and address information
472
+ #
473
+ # @param city [String, nil] City
474
+ #
475
+ # @param country [String, nil] Country code (e.g., US, CA)
476
+ #
477
+ # @param country_of_registration [String, nil] Country where the business is registered
478
+ #
479
+ # @param entity_type [String, nil] Business entity type
480
+ #
481
+ # @param legal_name [String, nil] Legal business name
482
+ #
483
+ # @param postal_code [String, nil] Postal/ZIP code
484
+ #
485
+ # @param state [String, nil] State/province code
486
+ #
487
+ # @param street [String, nil] Street address
488
+ #
489
+ # @param tax_id [String, nil] Tax ID/EIN number
490
+ #
491
+ # @param tax_id_type [String, nil] Type of tax ID (e.g., us_ein, ca_bn)
492
+ #
493
+ # @param url [String, nil] Business website URL
494
+ end
495
+
496
+ # @see Sentdm::Models::ProfileDetail::Brand#compliance
497
+ class Compliance < Sentdm::Internal::Type::BaseModel
498
+ # @!attribute brand_relationship
499
+ #
500
+ # @return [Symbol, Sentdm::Models::TcrBrandRelationship, nil]
501
+ optional :brand_relationship, enum: -> { Sentdm::TcrBrandRelationship }, nil?: true
502
+
503
+ # @!attribute destination_countries
504
+ # List of destination countries for messaging
505
+ #
506
+ # @return [Array<Sentdm::Models::DestinationCountry>, nil]
507
+ optional :destination_countries, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::DestinationCountry] }
508
+
509
+ # @!attribute is_tcr_application
510
+ # Whether this is a TCR (Campaign Registry) application
511
+ #
512
+ # @return [Boolean, nil]
513
+ optional :is_tcr_application, Sentdm::Internal::Type::Boolean
514
+
515
+ # @!attribute notes
516
+ # Additional notes about the business or use case
517
+ #
518
+ # @return [String, nil]
519
+ optional :notes, String, nil?: true
520
+
521
+ # @!attribute phone_number_prefix
522
+ # Phone number prefix for messaging (e.g., "+1")
523
+ #
524
+ # @return [String, nil]
525
+ optional :phone_number_prefix, String, nil?: true
526
+
527
+ # @!attribute primary_use_case
528
+ # @deprecated
529
+ #
530
+ # Always null. The brand's free-text primary use case is no longer stored: it
531
+ # reached neither TCR nor any decision, and its column is dropped with no
532
+ # backfill, because the values were prose and the typed equivalent is the
533
+ # campaign's MessagingUseCaseUS.
534
+ #
535
+ # Retained so existing v3 clients reading primary_use_case keep deserializing.
536
+ # Unlike the profile sharing flags, which can answer false truthfully, there is no
537
+ # value to report here — the field is present and empty rather than present and
538
+ # wrong.
539
+ #
540
+ # @return [String, nil]
541
+ optional :primary_use_case, String, nil?: true
542
+
543
+ # @!attribute vertical
544
+ #
545
+ # @return [Symbol, Sentdm::Models::TcrVertical, nil]
546
+ optional :vertical, enum: -> { Sentdm::TcrVertical }, nil?: true
547
+
548
+ # @!method initialize(brand_relationship: nil, destination_countries: nil, is_tcr_application: nil, notes: nil, phone_number_prefix: nil, primary_use_case: nil, vertical: nil)
549
+ # Some parameter documentations has been truncated, see
550
+ # {Sentdm::Models::ProfileDetail::Brand::Compliance} for more details.
551
+ #
552
+ # Compliance and TCR-related information
553
+ #
554
+ # @param brand_relationship [Symbol, Sentdm::Models::TcrBrandRelationship, nil]
555
+ #
556
+ # @param destination_countries [Array<Sentdm::Models::DestinationCountry>] List of destination countries for messaging
557
+ #
558
+ # @param is_tcr_application [Boolean] Whether this is a TCR (Campaign Registry) application
559
+ #
560
+ # @param notes [String, nil] Additional notes about the business or use case
561
+ #
562
+ # @param phone_number_prefix [String, nil] Phone number prefix for messaging (e.g., "+1")
563
+ #
564
+ # @param primary_use_case [String, nil] Always null. The brand's free-text primary use case is no longer stored: it reac
565
+ #
566
+ # @param vertical [Symbol, Sentdm::Models::TcrVertical, nil]
567
+ end
568
+
569
+ # @see Sentdm::Models::ProfileDetail::Brand#contact
570
+ class Contact < Sentdm::Internal::Type::BaseModel
571
+ # @!attribute business_name
572
+ # Business/brand name
573
+ #
574
+ # @return [String, nil]
575
+ optional :business_name, String, nil?: true
576
+
577
+ # @!attribute email
578
+ # Contact email address
579
+ #
580
+ # @return [String, nil]
581
+ optional :email, String, nil?: true
582
+
583
+ # @!attribute name
584
+ # Primary contact name
585
+ #
586
+ # @return [String, nil]
587
+ optional :name, String
588
+
589
+ # @!attribute phone
590
+ # Contact phone number in E.164 format
591
+ #
592
+ # @return [String, nil]
593
+ optional :phone, String, nil?: true
594
+
595
+ # @!attribute phone_country_code
596
+ # Contact phone country code (e.g., "1" for US)
597
+ #
598
+ # @return [String, nil]
599
+ optional :phone_country_code, String, nil?: true
600
+
601
+ # @!attribute role
602
+ # Contact's role in the business
603
+ #
604
+ # @return [String, nil]
605
+ optional :role, String, nil?: true
606
+
607
+ # @!method initialize(business_name: nil, email: nil, name: nil, phone: nil, phone_country_code: nil, role: nil)
608
+ # Contact information for the brand
609
+ #
610
+ # @param business_name [String, nil] Business/brand name
611
+ #
612
+ # @param email [String, nil] Contact email address
613
+ #
614
+ # @param name [String] Primary contact name
615
+ #
616
+ # @param phone [String, nil] Contact phone number in E.164 format
617
+ #
618
+ # @param phone_country_code [String, nil] Contact phone country code (e.g., "1" for US)
619
+ #
620
+ # @param role [String, nil] Contact's role in the business
621
+ end
622
+
623
+ # @see Sentdm::Models::ProfileDetail::Brand#identity_status
624
+ module IdentityStatus
625
+ extend Sentdm::Internal::Type::Enum
626
+
627
+ SELF_DECLARED = :SELF_DECLARED
628
+ UNVERIFIED = :UNVERIFIED
629
+ VERIFIED = :VERIFIED
630
+ VETTED_VERIFIED = :VETTED_VERIFIED
631
+
632
+ # @!method self.values
633
+ # @return [Array<Symbol>]
634
+ end
635
+
636
+ # @see Sentdm::Models::ProfileDetail::Brand#status
637
+ module Status
638
+ extend Sentdm::Internal::Type::Enum
639
+
640
+ ACTIVE = :ACTIVE
641
+ INACTIVE = :INACTIVE
642
+ SUSPENDED = :SUSPENDED
643
+
644
+ # @!method self.values
645
+ # @return [Array<Symbol>]
646
+ end
647
+ end
648
+ end
649
+ end
650
+ end