sentdm 0.29.0 → 0.30.0

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