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
@@ -20,23 +20,17 @@ module Sentdm
20
20
  attr_writer :data
21
21
 
22
22
  # Error information
23
- sig { returns(T.nilable(Sentdm::Models::ProfileListResponse::Error)) }
23
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
24
24
  attr_reader :error
25
25
 
26
- sig do
27
- params(
28
- error: T.nilable(Sentdm::Models::ProfileListResponse::Error::OrHash)
29
- ).void
30
- end
26
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
31
27
  attr_writer :error
32
28
 
33
29
  # Request and response metadata
34
- sig { returns(T.nilable(Sentdm::Models::ProfileListResponse::Meta)) }
30
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
35
31
  attr_reader :meta
36
32
 
37
- sig do
38
- params(meta: Sentdm::Models::ProfileListResponse::Meta::OrHash).void
39
- end
33
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
40
34
  attr_writer :meta
41
35
 
42
36
  # Indicates whether the request was successful
@@ -50,8 +44,8 @@ module Sentdm
50
44
  sig do
51
45
  params(
52
46
  data: T.nilable(Sentdm::Models::ProfileListResponse::Data::OrHash),
53
- error: T.nilable(Sentdm::Models::ProfileListResponse::Error::OrHash),
54
- meta: Sentdm::Models::ProfileListResponse::Meta::OrHash,
47
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
48
+ meta: Sentdm::APIMeta::OrHash,
55
49
  success: T::Boolean
56
50
  ).returns(T.attached_class)
57
51
  end
@@ -71,8 +65,8 @@ module Sentdm
71
65
  override.returns(
72
66
  {
73
67
  data: T.nilable(Sentdm::Models::ProfileListResponse::Data),
74
- error: T.nilable(Sentdm::Models::ProfileListResponse::Error),
75
- meta: Sentdm::Models::ProfileListResponse::Meta,
68
+ error: T.nilable(Sentdm::ErrorDetail),
69
+ meta: Sentdm::APIMeta,
76
70
  success: T::Boolean
77
71
  }
78
72
  )
@@ -90,50 +84,24 @@ module Sentdm
90
84
  end
91
85
 
92
86
  # Pagination metadata for list responses
93
- sig do
94
- returns(
95
- T.nilable(Sentdm::Models::ProfileListResponse::Data::Pagination)
96
- )
97
- end
87
+ sig { returns(T.nilable(Sentdm::PaginationMeta)) }
98
88
  attr_reader :pagination
99
89
 
100
- sig do
101
- params(
102
- pagination:
103
- Sentdm::Models::ProfileListResponse::Data::Pagination::OrHash
104
- ).void
105
- end
90
+ sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
106
91
  attr_writer :pagination
107
92
 
108
93
  # The profiles on this page.
109
- sig do
110
- returns(
111
- T.nilable(
112
- T::Array[Sentdm::Models::ProfileListResponse::Data::Profile]
113
- )
114
- )
115
- end
94
+ sig { returns(T.nilable(T::Array[Sentdm::ProfileDetail])) }
116
95
  attr_reader :profiles
117
96
 
118
- sig do
119
- params(
120
- profiles:
121
- T::Array[
122
- Sentdm::Models::ProfileListResponse::Data::Profile::OrHash
123
- ]
124
- ).void
125
- end
97
+ sig { params(profiles: T::Array[Sentdm::ProfileDetail::OrHash]).void }
126
98
  attr_writer :profiles
127
99
 
128
100
  # The profiles in the organization.
129
101
  sig do
130
102
  params(
131
- pagination:
132
- Sentdm::Models::ProfileListResponse::Data::Pagination::OrHash,
133
- profiles:
134
- T::Array[
135
- Sentdm::Models::ProfileListResponse::Data::Profile::OrHash
136
- ]
103
+ pagination: Sentdm::PaginationMeta::OrHash,
104
+ profiles: T::Array[Sentdm::ProfileDetail::OrHash]
137
105
  ).returns(T.attached_class)
138
106
  end
139
107
  def self.new(
@@ -147,1312 +115,13 @@ module Sentdm
147
115
  sig do
148
116
  override.returns(
149
117
  {
150
- pagination: Sentdm::Models::ProfileListResponse::Data::Pagination,
151
- profiles:
152
- T::Array[Sentdm::Models::ProfileListResponse::Data::Profile]
118
+ pagination: Sentdm::PaginationMeta,
119
+ profiles: T::Array[Sentdm::ProfileDetail]
153
120
  }
154
121
  )
155
122
  end
156
123
  def to_hash
157
124
  end
158
-
159
- class Pagination < Sentdm::Internal::Type::BaseModel
160
- OrHash =
161
- T.type_alias do
162
- T.any(
163
- Sentdm::Models::ProfileListResponse::Data::Pagination,
164
- Sentdm::Internal::AnyHash
165
- )
166
- end
167
-
168
- # Cursor-based pagination. Never populated — see Cursors.
169
- sig do
170
- returns(
171
- T.nilable(
172
- Sentdm::Models::ProfileListResponse::Data::Pagination::Cursors
173
- )
174
- )
175
- end
176
- attr_reader :cursors
177
-
178
- sig do
179
- params(
180
- cursors:
181
- T.nilable(
182
- Sentdm::Models::ProfileListResponse::Data::Pagination::Cursors::OrHash
183
- )
184
- ).void
185
- end
186
- attr_writer :cursors
187
-
188
- # Whether there are more pages after this one
189
- sig { returns(T.nilable(T::Boolean)) }
190
- attr_reader :has_more
191
-
192
- sig { params(has_more: T::Boolean).void }
193
- attr_writer :has_more
194
-
195
- # Current page number (1-indexed)
196
- sig { returns(T.nilable(Integer)) }
197
- attr_reader :page
198
-
199
- sig { params(page: Integer).void }
200
- attr_writer :page
201
-
202
- # Number of items per page
203
- sig { returns(T.nilable(Integer)) }
204
- attr_reader :page_size
205
-
206
- sig { params(page_size: Integer).void }
207
- attr_writer :page_size
208
-
209
- # Total number of items across all pages
210
- sig { returns(T.nilable(Integer)) }
211
- attr_reader :total_count
212
-
213
- sig { params(total_count: Integer).void }
214
- attr_writer :total_count
215
-
216
- # Total number of pages
217
- sig { returns(T.nilable(Integer)) }
218
- attr_reader :total_pages
219
-
220
- sig { params(total_pages: Integer).void }
221
- attr_writer :total_pages
222
-
223
- # Pagination metadata for list responses
224
- sig do
225
- params(
226
- cursors:
227
- T.nilable(
228
- Sentdm::Models::ProfileListResponse::Data::Pagination::Cursors::OrHash
229
- ),
230
- has_more: T::Boolean,
231
- page: Integer,
232
- page_size: Integer,
233
- total_count: Integer,
234
- total_pages: Integer
235
- ).returns(T.attached_class)
236
- end
237
- def self.new(
238
- # Cursor-based pagination. Never populated — see Cursors.
239
- cursors: nil,
240
- # Whether there are more pages after this one
241
- has_more: nil,
242
- # Current page number (1-indexed)
243
- page: nil,
244
- # Number of items per page
245
- page_size: nil,
246
- # Total number of items across all pages
247
- total_count: nil,
248
- # Total number of pages
249
- total_pages: nil
250
- )
251
- end
252
-
253
- sig do
254
- override.returns(
255
- {
256
- cursors:
257
- T.nilable(
258
- Sentdm::Models::ProfileListResponse::Data::Pagination::Cursors
259
- ),
260
- has_more: T::Boolean,
261
- page: Integer,
262
- page_size: Integer,
263
- total_count: Integer,
264
- total_pages: Integer
265
- }
266
- )
267
- end
268
- def to_hash
269
- end
270
-
271
- class Cursors < Sentdm::Internal::Type::BaseModel
272
- OrHash =
273
- T.type_alias do
274
- T.any(
275
- Sentdm::Models::ProfileListResponse::Data::Pagination::Cursors,
276
- Sentdm::Internal::AnyHash
277
- )
278
- end
279
-
280
- # Cursor to fetch the next page.
281
- sig { returns(T.nilable(String)) }
282
- attr_accessor :after
283
-
284
- # Cursor to fetch the previous page.
285
- sig { returns(T.nilable(String)) }
286
- attr_accessor :before
287
-
288
- # Cursor-based pagination. Never populated — see Cursors.
289
- sig do
290
- params(
291
- after: T.nilable(String),
292
- before: T.nilable(String)
293
- ).returns(T.attached_class)
294
- end
295
- def self.new(
296
- # Cursor to fetch the next page.
297
- after: nil,
298
- # Cursor to fetch the previous page.
299
- before: nil
300
- )
301
- end
302
-
303
- sig do
304
- override.returns(
305
- { after: T.nilable(String), before: T.nilable(String) }
306
- )
307
- end
308
- def to_hash
309
- end
310
- end
311
- end
312
-
313
- class Profile < Sentdm::Internal::Type::BaseModel
314
- OrHash =
315
- T.type_alias do
316
- T.any(
317
- Sentdm::Models::ProfileListResponse::Data::Profile,
318
- Sentdm::Internal::AnyHash
319
- )
320
- end
321
-
322
- # Profile unique identifier
323
- sig { returns(T.nilable(String)) }
324
- attr_reader :id
325
-
326
- sig { params(id: String).void }
327
- attr_writer :id
328
-
329
- # Always false. A profile no longer shares contacts with sibling profiles — it
330
- # sees only what it owns. Retained so existing v3 clients reading
331
- # allow_contact_sharing keep deserializing; it carries no information.
332
- sig { returns(T.nilable(T::Boolean)) }
333
- attr_accessor :allow_contact_sharing
334
-
335
- # Whether number changes are allowed during onboarding
336
- sig { returns(T.nilable(T::Boolean)) }
337
- attr_accessor :allow_number_change_during_onboarding
338
-
339
- # Always false. A profile no longer shares templates with sibling profiles.
340
- # Retained so existing v3 clients reading allow_template_sharing keep
341
- # deserializing; it carries no information.
342
- sig { returns(T.nilable(T::Boolean)) }
343
- attr_accessor :allow_template_sharing
344
-
345
- # Billing contact info returned in profile responses
346
- sig do
347
- returns(
348
- T.nilable(
349
- Sentdm::Models::ProfileListResponse::Data::Profile::BillingContact
350
- )
351
- )
352
- end
353
- attr_reader :billing_contact
354
-
355
- sig do
356
- params(
357
- billing_contact:
358
- T.nilable(
359
- Sentdm::Models::ProfileListResponse::Data::Profile::BillingContact::OrHash
360
- )
361
- ).void
362
- end
363
- attr_writer :billing_contact
364
-
365
- # Billing model: profile, organization, or profile_and_organization
366
- sig { returns(T.nilable(String)) }
367
- attr_reader :billing_model
368
-
369
- sig { params(billing_model: String).void }
370
- attr_writer :billing_model
371
-
372
- # Brand response with nested contact, business, and compliance sections — mirrors
373
- # the request structure.
374
- sig do
375
- returns(
376
- T.nilable(
377
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand
378
- )
379
- )
380
- end
381
- attr_reader :brand
382
-
383
- sig do
384
- params(
385
- brand:
386
- T.nilable(
387
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::OrHash
388
- )
389
- ).void
390
- end
391
- attr_writer :brand
392
-
393
- # When the profile was created
394
- sig { returns(T.nilable(Time)) }
395
- attr_reader :created_at
396
-
397
- sig { params(created_at: Time).void }
398
- attr_writer :created_at
399
-
400
- # Profile description
401
- sig { returns(T.nilable(String)) }
402
- attr_accessor :description
403
-
404
- # Profile email (inherited from organization)
405
- sig { returns(T.nilable(String)) }
406
- attr_accessor :email
407
-
408
- # Profile icon URL
409
- sig { returns(T.nilable(String)) }
410
- attr_accessor :icon
411
-
412
- # Always false. A profile no longer inherits its organization's contacts. Retained
413
- # so existing v3 clients reading inherit_contacts keep deserializing; it carries
414
- # no information.
415
- sig { returns(T.nilable(T::Boolean)) }
416
- attr_accessor :inherit_contacts
417
-
418
- # Whether this profile inherits TCR brand from the organization
419
- sig { returns(T.nilable(T::Boolean)) }
420
- attr_reader :inherit_tcr_brand
421
-
422
- sig { params(inherit_tcr_brand: T::Boolean).void }
423
- attr_writer :inherit_tcr_brand
424
-
425
- # Whether this profile inherits TCR campaign from the organization
426
- sig { returns(T.nilable(T::Boolean)) }
427
- attr_reader :inherit_tcr_campaign
428
-
429
- sig { params(inherit_tcr_campaign: T::Boolean).void }
430
- attr_writer :inherit_tcr_campaign
431
-
432
- # Always false. A profile no longer inherits its organization's templates.
433
- # Retained so existing v3 clients reading inherit_templates keep deserializing; it
434
- # carries no information.
435
- sig { returns(T.nilable(T::Boolean)) }
436
- attr_accessor :inherit_templates
437
-
438
- # Profile name
439
- sig { returns(T.nilable(String)) }
440
- attr_reader :name
441
-
442
- sig { params(name: String).void }
443
- attr_writer :name
444
-
445
- # Parent organization ID
446
- sig { returns(T.nilable(String)) }
447
- attr_accessor :organization_id
448
-
449
- # Direct SMS phone number
450
- sig { returns(T.nilable(String)) }
451
- attr_accessor :sending_phone_number
452
-
453
- # Deprecated. Always null. Sender borrowing is gone: a profile no longer points at
454
- # another profile for its SMS sender, and every profile owns the sender it sends
455
- # from.
456
- #
457
- # Kept on the wire, and never populated, because those are two different promises.
458
- # Removing the key changes the response's shape — a generated client loses the
459
- # property and stops compiling on the next regenerate, for a value that is now
460
- # null for every profile in existence. Keeping it null costs a key and breaks
461
- # nobody, and null is the honest answer rather than a placeholder: there is no
462
- # borrowing left to report.
463
- #
464
- # Nothing could populate it. Migration 260813161500 dropped the column and copied
465
- # each borrower its own channel-provider row; its Down() says outright that the
466
- # borrower-to-lender pairing is not recoverable. The only surviving trace is a
467
- # notes string on the copied row.
468
- sig { returns(T.nilable(String)) }
469
- attr_accessor :sending_phone_number_profile_id
470
-
471
- sig { returns(T.nilable(String)) }
472
- attr_accessor :sending_whatsapp_number_profile_id
473
-
474
- # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
475
- # only, with at least one letter.
476
- sig { returns(T.nilable(String)) }
477
- attr_accessor :short_name
478
-
479
- # Profile setup status: incomplete, pending_review, approved, rejected
480
- sig { returns(T.nilable(String)) }
481
- attr_reader :status
482
-
483
- sig { params(status: String).void }
484
- attr_writer :status
485
-
486
- # When the profile was last updated
487
- sig { returns(T.nilable(Time)) }
488
- attr_accessor :updated_at
489
-
490
- # WhatsApp Business Account ID associated with this profile. Present whether the
491
- # WABA is inherited from the organization or configured directly.
492
- sig { returns(T.nilable(String)) }
493
- attr_accessor :waba_id
494
-
495
- # Direct WhatsApp phone number
496
- sig { returns(T.nilable(String)) }
497
- attr_accessor :whatsapp_phone_number
498
-
499
- # Detailed profile response for v3 API
500
- sig do
501
- params(
502
- id: String,
503
- allow_contact_sharing: T.nilable(T::Boolean),
504
- allow_number_change_during_onboarding: T.nilable(T::Boolean),
505
- allow_template_sharing: T.nilable(T::Boolean),
506
- billing_contact:
507
- T.nilable(
508
- Sentdm::Models::ProfileListResponse::Data::Profile::BillingContact::OrHash
509
- ),
510
- billing_model: String,
511
- brand:
512
- T.nilable(
513
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::OrHash
514
- ),
515
- created_at: Time,
516
- description: T.nilable(String),
517
- email: T.nilable(String),
518
- icon: T.nilable(String),
519
- inherit_contacts: T.nilable(T::Boolean),
520
- inherit_tcr_brand: T::Boolean,
521
- inherit_tcr_campaign: T::Boolean,
522
- inherit_templates: T.nilable(T::Boolean),
523
- name: String,
524
- organization_id: T.nilable(String),
525
- sending_phone_number: T.nilable(String),
526
- sending_phone_number_profile_id: T.nilable(String),
527
- sending_whatsapp_number_profile_id: T.nilable(String),
528
- short_name: T.nilable(String),
529
- status: String,
530
- updated_at: T.nilable(Time),
531
- waba_id: T.nilable(String),
532
- whatsapp_phone_number: T.nilable(String)
533
- ).returns(T.attached_class)
534
- end
535
- def self.new(
536
- # Profile unique identifier
537
- id: nil,
538
- # Always false. A profile no longer shares contacts with sibling profiles — it
539
- # sees only what it owns. Retained so existing v3 clients reading
540
- # allow_contact_sharing keep deserializing; it carries no information.
541
- allow_contact_sharing: nil,
542
- # Whether number changes are allowed during onboarding
543
- allow_number_change_during_onboarding: nil,
544
- # Always false. A profile no longer shares templates with sibling profiles.
545
- # Retained so existing v3 clients reading allow_template_sharing keep
546
- # deserializing; it carries no information.
547
- allow_template_sharing: nil,
548
- # Billing contact info returned in profile responses
549
- billing_contact: nil,
550
- # Billing model: profile, organization, or profile_and_organization
551
- billing_model: nil,
552
- # Brand response with nested contact, business, and compliance sections — mirrors
553
- # the request structure.
554
- brand: nil,
555
- # When the profile was created
556
- created_at: nil,
557
- # Profile description
558
- description: nil,
559
- # Profile email (inherited from organization)
560
- email: nil,
561
- # Profile icon URL
562
- icon: nil,
563
- # Always false. A profile no longer inherits its organization's contacts. Retained
564
- # so existing v3 clients reading inherit_contacts keep deserializing; it carries
565
- # no information.
566
- inherit_contacts: nil,
567
- # Whether this profile inherits TCR brand from the organization
568
- inherit_tcr_brand: nil,
569
- # Whether this profile inherits TCR campaign from the organization
570
- inherit_tcr_campaign: nil,
571
- # Always false. A profile no longer inherits its organization's templates.
572
- # Retained so existing v3 clients reading inherit_templates keep deserializing; it
573
- # carries no information.
574
- inherit_templates: nil,
575
- # Profile name
576
- name: nil,
577
- # Parent organization ID
578
- organization_id: nil,
579
- # Direct SMS phone number
580
- sending_phone_number: nil,
581
- # Deprecated. Always null. Sender borrowing is gone: a profile no longer points at
582
- # another profile for its SMS sender, and every profile owns the sender it sends
583
- # from.
584
- #
585
- # Kept on the wire, and never populated, because those are two different promises.
586
- # Removing the key changes the response's shape — a generated client loses the
587
- # property and stops compiling on the next regenerate, for a value that is now
588
- # null for every profile in existence. Keeping it null costs a key and breaks
589
- # nobody, and null is the honest answer rather than a placeholder: there is no
590
- # borrowing left to report.
591
- #
592
- # Nothing could populate it. Migration 260813161500 dropped the column and copied
593
- # each borrower its own channel-provider row; its Down() says outright that the
594
- # borrower-to-lender pairing is not recoverable. The only surviving trace is a
595
- # notes string on the copied row.
596
- sending_phone_number_profile_id: nil,
597
- sending_whatsapp_number_profile_id: nil,
598
- # Profile short name/abbreviation. 3–11 characters: letters, numbers, and spaces
599
- # only, with at least one letter.
600
- short_name: nil,
601
- # Profile setup status: incomplete, pending_review, approved, rejected
602
- status: nil,
603
- # When the profile was last updated
604
- updated_at: nil,
605
- # WhatsApp Business Account ID associated with this profile. Present whether the
606
- # WABA is inherited from the organization or configured directly.
607
- waba_id: nil,
608
- # Direct WhatsApp phone number
609
- whatsapp_phone_number: nil
610
- )
611
- end
612
-
613
- sig do
614
- override.returns(
615
- {
616
- id: String,
617
- allow_contact_sharing: T.nilable(T::Boolean),
618
- allow_number_change_during_onboarding: T.nilable(T::Boolean),
619
- allow_template_sharing: T.nilable(T::Boolean),
620
- billing_contact:
621
- T.nilable(
622
- Sentdm::Models::ProfileListResponse::Data::Profile::BillingContact
623
- ),
624
- billing_model: String,
625
- brand:
626
- T.nilable(
627
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand
628
- ),
629
- created_at: Time,
630
- description: T.nilable(String),
631
- email: T.nilable(String),
632
- icon: T.nilable(String),
633
- inherit_contacts: T.nilable(T::Boolean),
634
- inherit_tcr_brand: T::Boolean,
635
- inherit_tcr_campaign: T::Boolean,
636
- inherit_templates: T.nilable(T::Boolean),
637
- name: String,
638
- organization_id: T.nilable(String),
639
- sending_phone_number: T.nilable(String),
640
- sending_phone_number_profile_id: T.nilable(String),
641
- sending_whatsapp_number_profile_id: T.nilable(String),
642
- short_name: T.nilable(String),
643
- status: String,
644
- updated_at: T.nilable(Time),
645
- waba_id: T.nilable(String),
646
- whatsapp_phone_number: T.nilable(String)
647
- }
648
- )
649
- end
650
- def to_hash
651
- end
652
-
653
- class BillingContact < Sentdm::Internal::Type::BaseModel
654
- OrHash =
655
- T.type_alias do
656
- T.any(
657
- Sentdm::Models::ProfileListResponse::Data::Profile::BillingContact,
658
- Sentdm::Internal::AnyHash
659
- )
660
- end
661
-
662
- sig { returns(T.nilable(String)) }
663
- attr_accessor :address
664
-
665
- sig { returns(T.nilable(String)) }
666
- attr_accessor :email
667
-
668
- sig { returns(T.nilable(String)) }
669
- attr_accessor :name
670
-
671
- sig { returns(T.nilable(String)) }
672
- attr_accessor :phone
673
-
674
- # Billing contact info returned in profile responses
675
- sig do
676
- params(
677
- address: T.nilable(String),
678
- email: T.nilable(String),
679
- name: T.nilable(String),
680
- phone: T.nilable(String)
681
- ).returns(T.attached_class)
682
- end
683
- def self.new(address: nil, email: nil, name: nil, phone: nil)
684
- end
685
-
686
- sig do
687
- override.returns(
688
- {
689
- address: T.nilable(String),
690
- email: T.nilable(String),
691
- name: T.nilable(String),
692
- phone: T.nilable(String)
693
- }
694
- )
695
- end
696
- def to_hash
697
- end
698
- end
699
-
700
- class Brand < Sentdm::Internal::Type::BaseModel
701
- OrHash =
702
- T.type_alias do
703
- T.any(
704
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand,
705
- Sentdm::Internal::AnyHash
706
- )
707
- end
708
-
709
- # Unique identifier for the brand
710
- sig { returns(T.nilable(String)) }
711
- attr_reader :id
712
-
713
- sig { params(id: String).void }
714
- attr_writer :id
715
-
716
- # Business details and address information
717
- sig do
718
- returns(
719
- T.nilable(
720
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Business
721
- )
722
- )
723
- end
724
- attr_reader :business
725
-
726
- sig do
727
- params(
728
- business:
729
- T.nilable(
730
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Business::OrHash
731
- )
732
- ).void
733
- end
734
- attr_writer :business
735
-
736
- # Compliance and TCR-related information
737
- sig do
738
- returns(
739
- T.nilable(
740
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Compliance
741
- )
742
- )
743
- end
744
- attr_reader :compliance
745
-
746
- sig do
747
- params(
748
- compliance:
749
- T.nilable(
750
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Compliance::OrHash
751
- )
752
- ).void
753
- end
754
- attr_writer :compliance
755
-
756
- # Contact information for the brand
757
- sig do
758
- returns(
759
- T.nilable(
760
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Contact
761
- )
762
- )
763
- end
764
- attr_reader :contact
765
-
766
- sig do
767
- params(
768
- contact:
769
- T.nilable(
770
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Contact::OrHash
771
- )
772
- ).void
773
- end
774
- attr_writer :contact
775
-
776
- # When the brand was created
777
- sig { returns(T.nilable(Time)) }
778
- attr_reader :created_at
779
-
780
- sig { params(created_at: Time).void }
781
- attr_writer :created_at
782
-
783
- # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
784
- # that registered the brand, which is Sent, so the value is the same for every
785
- # brand and every account. Nothing on your side can act on it and there is no
786
- # replacement. Stop reading it.
787
- sig { returns(T.nilable(String)) }
788
- attr_accessor :csp_id
789
-
790
- sig do
791
- returns(
792
- T.nilable(
793
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
794
- )
795
- )
796
- end
797
- attr_accessor :identity_status
798
-
799
- # Whether this brand is inherited from the parent organization
800
- sig { returns(T.nilable(T::Boolean)) }
801
- attr_reader :is_inherited
802
-
803
- sig { params(is_inherited: T::Boolean).void }
804
- attr_writer :is_inherited
805
-
806
- sig do
807
- returns(
808
- T.nilable(
809
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
810
- )
811
- )
812
- end
813
- attr_accessor :status
814
-
815
- # When the brand was submitted to TCR
816
- sig { returns(T.nilable(Time)) }
817
- attr_accessor :submitted_at
818
-
819
- # Whether this brand has been submitted to TCR
820
- sig { returns(T.nilable(T::Boolean)) }
821
- attr_reader :submitted_to_tcr
822
-
823
- sig { params(submitted_to_tcr: T::Boolean).void }
824
- attr_writer :submitted_to_tcr
825
-
826
- # TCR brand ID (populated after TCR submission)
827
- sig { returns(T.nilable(String)) }
828
- attr_accessor :tcr_brand_id
829
-
830
- # Universal EIN from TCR
831
- sig { returns(T.nilable(String)) }
832
- attr_accessor :universal_ein
833
-
834
- # When the brand was last updated
835
- sig { returns(T.nilable(Time)) }
836
- attr_accessor :updated_at
837
-
838
- # Brand response with nested contact, business, and compliance sections — mirrors
839
- # the request structure.
840
- sig do
841
- params(
842
- id: String,
843
- business:
844
- T.nilable(
845
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Business::OrHash
846
- ),
847
- compliance:
848
- T.nilable(
849
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Compliance::OrHash
850
- ),
851
- contact:
852
- T.nilable(
853
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Contact::OrHash
854
- ),
855
- created_at: Time,
856
- csp_id: T.nilable(String),
857
- identity_status:
858
- T.nilable(
859
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::OrSymbol
860
- ),
861
- is_inherited: T::Boolean,
862
- status:
863
- T.nilable(
864
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::OrSymbol
865
- ),
866
- submitted_at: T.nilable(Time),
867
- submitted_to_tcr: T::Boolean,
868
- tcr_brand_id: T.nilable(String),
869
- universal_ein: T.nilable(String),
870
- updated_at: T.nilable(Time)
871
- ).returns(T.attached_class)
872
- end
873
- def self.new(
874
- # Unique identifier for the brand
875
- id: nil,
876
- # Business details and address information
877
- business: nil,
878
- # Compliance and TCR-related information
879
- compliance: nil,
880
- # Contact information for the brand
881
- contact: nil,
882
- # When the brand was created
883
- created_at: nil,
884
- # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
885
- # that registered the brand, which is Sent, so the value is the same for every
886
- # brand and every account. Nothing on your side can act on it and there is no
887
- # replacement. Stop reading it.
888
- csp_id: nil,
889
- identity_status: nil,
890
- # Whether this brand is inherited from the parent organization
891
- is_inherited: nil,
892
- status: nil,
893
- # When the brand was submitted to TCR
894
- submitted_at: nil,
895
- # Whether this brand has been submitted to TCR
896
- submitted_to_tcr: nil,
897
- # TCR brand ID (populated after TCR submission)
898
- tcr_brand_id: nil,
899
- # Universal EIN from TCR
900
- universal_ein: nil,
901
- # When the brand was last updated
902
- updated_at: nil
903
- )
904
- end
905
-
906
- sig do
907
- override.returns(
908
- {
909
- id: String,
910
- business:
911
- T.nilable(
912
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Business
913
- ),
914
- compliance:
915
- T.nilable(
916
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Compliance
917
- ),
918
- contact:
919
- T.nilable(
920
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Contact
921
- ),
922
- created_at: Time,
923
- csp_id: T.nilable(String),
924
- identity_status:
925
- T.nilable(
926
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
927
- ),
928
- is_inherited: T::Boolean,
929
- status:
930
- T.nilable(
931
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
932
- ),
933
- submitted_at: T.nilable(Time),
934
- submitted_to_tcr: T::Boolean,
935
- tcr_brand_id: T.nilable(String),
936
- universal_ein: T.nilable(String),
937
- updated_at: T.nilable(Time)
938
- }
939
- )
940
- end
941
- def to_hash
942
- end
943
-
944
- class Business < Sentdm::Internal::Type::BaseModel
945
- OrHash =
946
- T.type_alias do
947
- T.any(
948
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Business,
949
- Sentdm::Internal::AnyHash
950
- )
951
- end
952
-
953
- # City
954
- sig { returns(T.nilable(String)) }
955
- attr_accessor :city
956
-
957
- # Country code (e.g., US, CA)
958
- sig { returns(T.nilable(String)) }
959
- attr_accessor :country
960
-
961
- # Country where the business is registered
962
- sig { returns(T.nilable(String)) }
963
- attr_accessor :country_of_registration
964
-
965
- # Business entity type
966
- sig { returns(T.nilable(String)) }
967
- attr_accessor :entity_type
968
-
969
- # Legal business name
970
- sig { returns(T.nilable(String)) }
971
- attr_accessor :legal_name
972
-
973
- # Postal/ZIP code
974
- sig { returns(T.nilable(String)) }
975
- attr_accessor :postal_code
976
-
977
- # State/province code
978
- sig { returns(T.nilable(String)) }
979
- attr_accessor :state
980
-
981
- # Street address
982
- sig { returns(T.nilable(String)) }
983
- attr_accessor :street
984
-
985
- # Tax ID/EIN number
986
- sig { returns(T.nilable(String)) }
987
- attr_accessor :tax_id
988
-
989
- # Type of tax ID (e.g., us_ein, ca_bn)
990
- sig { returns(T.nilable(String)) }
991
- attr_accessor :tax_id_type
992
-
993
- # Business website URL
994
- sig { returns(T.nilable(String)) }
995
- attr_accessor :url
996
-
997
- # Business details and address information
998
- sig do
999
- params(
1000
- city: T.nilable(String),
1001
- country: T.nilable(String),
1002
- country_of_registration: T.nilable(String),
1003
- entity_type: T.nilable(String),
1004
- legal_name: T.nilable(String),
1005
- postal_code: T.nilable(String),
1006
- state: T.nilable(String),
1007
- street: T.nilable(String),
1008
- tax_id: T.nilable(String),
1009
- tax_id_type: T.nilable(String),
1010
- url: T.nilable(String)
1011
- ).returns(T.attached_class)
1012
- end
1013
- def self.new(
1014
- # City
1015
- city: nil,
1016
- # Country code (e.g., US, CA)
1017
- country: nil,
1018
- # Country where the business is registered
1019
- country_of_registration: nil,
1020
- # Business entity type
1021
- entity_type: nil,
1022
- # Legal business name
1023
- legal_name: nil,
1024
- # Postal/ZIP code
1025
- postal_code: nil,
1026
- # State/province code
1027
- state: nil,
1028
- # Street address
1029
- street: nil,
1030
- # Tax ID/EIN number
1031
- tax_id: nil,
1032
- # Type of tax ID (e.g., us_ein, ca_bn)
1033
- tax_id_type: nil,
1034
- # Business website URL
1035
- url: nil
1036
- )
1037
- end
1038
-
1039
- sig do
1040
- override.returns(
1041
- {
1042
- city: T.nilable(String),
1043
- country: T.nilable(String),
1044
- country_of_registration: T.nilable(String),
1045
- entity_type: T.nilable(String),
1046
- legal_name: T.nilable(String),
1047
- postal_code: T.nilable(String),
1048
- state: T.nilable(String),
1049
- street: T.nilable(String),
1050
- tax_id: T.nilable(String),
1051
- tax_id_type: T.nilable(String),
1052
- url: T.nilable(String)
1053
- }
1054
- )
1055
- end
1056
- def to_hash
1057
- end
1058
- end
1059
-
1060
- class Compliance < Sentdm::Internal::Type::BaseModel
1061
- OrHash =
1062
- T.type_alias do
1063
- T.any(
1064
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Compliance,
1065
- Sentdm::Internal::AnyHash
1066
- )
1067
- end
1068
-
1069
- sig do
1070
- returns(T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol))
1071
- end
1072
- attr_accessor :brand_relationship
1073
-
1074
- # List of destination countries for messaging
1075
- sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
1076
- attr_reader :destination_countries
1077
-
1078
- sig do
1079
- params(
1080
- destination_countries:
1081
- T::Array[Sentdm::DestinationCountry::OrHash]
1082
- ).void
1083
- end
1084
- attr_writer :destination_countries
1085
-
1086
- # Whether this is a TCR (Campaign Registry) application
1087
- sig { returns(T.nilable(T::Boolean)) }
1088
- attr_reader :is_tcr_application
1089
-
1090
- sig { params(is_tcr_application: T::Boolean).void }
1091
- attr_writer :is_tcr_application
1092
-
1093
- # Additional notes about the business or use case
1094
- sig { returns(T.nilable(String)) }
1095
- attr_accessor :notes
1096
-
1097
- # Phone number prefix for messaging (e.g., "+1")
1098
- sig { returns(T.nilable(String)) }
1099
- attr_accessor :phone_number_prefix
1100
-
1101
- # Always null. The brand's free-text primary use case is no longer stored: it
1102
- # reached neither TCR nor any decision, and its column is dropped with no
1103
- # backfill, because the values were prose and the typed equivalent is the
1104
- # campaign's MessagingUseCaseUS.
1105
- #
1106
- # Retained so existing v3 clients reading primary_use_case keep deserializing.
1107
- # Unlike the profile sharing flags, which can answer false truthfully, there is no
1108
- # value to report here — the field is present and empty rather than present and
1109
- # wrong.
1110
- sig { returns(T.nilable(String)) }
1111
- attr_accessor :primary_use_case
1112
-
1113
- sig { returns(T.nilable(Sentdm::TcrVertical::TaggedSymbol)) }
1114
- attr_accessor :vertical
1115
-
1116
- # Compliance and TCR-related information
1117
- sig do
1118
- params(
1119
- brand_relationship:
1120
- T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
1121
- destination_countries:
1122
- T::Array[Sentdm::DestinationCountry::OrHash],
1123
- is_tcr_application: T::Boolean,
1124
- notes: T.nilable(String),
1125
- phone_number_prefix: T.nilable(String),
1126
- primary_use_case: T.nilable(String),
1127
- vertical: T.nilable(Sentdm::TcrVertical::OrSymbol)
1128
- ).returns(T.attached_class)
1129
- end
1130
- def self.new(
1131
- brand_relationship: nil,
1132
- # List of destination countries for messaging
1133
- destination_countries: nil,
1134
- # Whether this is a TCR (Campaign Registry) application
1135
- is_tcr_application: nil,
1136
- # Additional notes about the business or use case
1137
- notes: nil,
1138
- # Phone number prefix for messaging (e.g., "+1")
1139
- phone_number_prefix: nil,
1140
- # Always null. The brand's free-text primary use case is no longer stored: it
1141
- # reached neither TCR nor any decision, and its column is dropped with no
1142
- # backfill, because the values were prose and the typed equivalent is the
1143
- # campaign's MessagingUseCaseUS.
1144
- #
1145
- # Retained so existing v3 clients reading primary_use_case keep deserializing.
1146
- # Unlike the profile sharing flags, which can answer false truthfully, there is no
1147
- # value to report here — the field is present and empty rather than present and
1148
- # wrong.
1149
- primary_use_case: nil,
1150
- vertical: nil
1151
- )
1152
- end
1153
-
1154
- sig do
1155
- override.returns(
1156
- {
1157
- brand_relationship:
1158
- T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
1159
- destination_countries: T::Array[Sentdm::DestinationCountry],
1160
- is_tcr_application: T::Boolean,
1161
- notes: T.nilable(String),
1162
- phone_number_prefix: T.nilable(String),
1163
- primary_use_case: T.nilable(String),
1164
- vertical: T.nilable(Sentdm::TcrVertical::TaggedSymbol)
1165
- }
1166
- )
1167
- end
1168
- def to_hash
1169
- end
1170
- end
1171
-
1172
- class Contact < Sentdm::Internal::Type::BaseModel
1173
- OrHash =
1174
- T.type_alias do
1175
- T.any(
1176
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Contact,
1177
- Sentdm::Internal::AnyHash
1178
- )
1179
- end
1180
-
1181
- # Business/brand name
1182
- sig { returns(T.nilable(String)) }
1183
- attr_accessor :business_name
1184
-
1185
- # Contact email address
1186
- sig { returns(T.nilable(String)) }
1187
- attr_accessor :email
1188
-
1189
- # Primary contact name
1190
- sig { returns(T.nilable(String)) }
1191
- attr_reader :name
1192
-
1193
- sig { params(name: String).void }
1194
- attr_writer :name
1195
-
1196
- # Contact phone number in E.164 format
1197
- sig { returns(T.nilable(String)) }
1198
- attr_accessor :phone
1199
-
1200
- # Contact phone country code (e.g., "1" for US)
1201
- sig { returns(T.nilable(String)) }
1202
- attr_accessor :phone_country_code
1203
-
1204
- # Contact's role in the business
1205
- sig { returns(T.nilable(String)) }
1206
- attr_accessor :role
1207
-
1208
- # Contact information for the brand
1209
- sig do
1210
- params(
1211
- business_name: T.nilable(String),
1212
- email: T.nilable(String),
1213
- name: String,
1214
- phone: T.nilable(String),
1215
- phone_country_code: T.nilable(String),
1216
- role: T.nilable(String)
1217
- ).returns(T.attached_class)
1218
- end
1219
- def self.new(
1220
- # Business/brand name
1221
- business_name: nil,
1222
- # Contact email address
1223
- email: nil,
1224
- # Primary contact name
1225
- name: nil,
1226
- # Contact phone number in E.164 format
1227
- phone: nil,
1228
- # Contact phone country code (e.g., "1" for US)
1229
- phone_country_code: nil,
1230
- # Contact's role in the business
1231
- role: nil
1232
- )
1233
- end
1234
-
1235
- sig do
1236
- override.returns(
1237
- {
1238
- business_name: T.nilable(String),
1239
- email: T.nilable(String),
1240
- name: String,
1241
- phone: T.nilable(String),
1242
- phone_country_code: T.nilable(String),
1243
- role: T.nilable(String)
1244
- }
1245
- )
1246
- end
1247
- def to_hash
1248
- end
1249
- end
1250
-
1251
- module IdentityStatus
1252
- extend Sentdm::Internal::Type::Enum
1253
-
1254
- TaggedSymbol =
1255
- T.type_alias do
1256
- T.all(
1257
- Symbol,
1258
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus
1259
- )
1260
- end
1261
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1262
-
1263
- SELF_DECLARED =
1264
- T.let(
1265
- :SELF_DECLARED,
1266
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
1267
- )
1268
- UNVERIFIED =
1269
- T.let(
1270
- :UNVERIFIED,
1271
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
1272
- )
1273
- VERIFIED =
1274
- T.let(
1275
- :VERIFIED,
1276
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
1277
- )
1278
- VETTED_VERIFIED =
1279
- T.let(
1280
- :VETTED_VERIFIED,
1281
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
1282
- )
1283
-
1284
- sig do
1285
- override.returns(
1286
- T::Array[
1287
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::IdentityStatus::TaggedSymbol
1288
- ]
1289
- )
1290
- end
1291
- def self.values
1292
- end
1293
- end
1294
-
1295
- module Status
1296
- extend Sentdm::Internal::Type::Enum
1297
-
1298
- TaggedSymbol =
1299
- T.type_alias do
1300
- T.all(
1301
- Symbol,
1302
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status
1303
- )
1304
- end
1305
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1306
-
1307
- ACTIVE =
1308
- T.let(
1309
- :ACTIVE,
1310
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
1311
- )
1312
- INACTIVE =
1313
- T.let(
1314
- :INACTIVE,
1315
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
1316
- )
1317
- SUSPENDED =
1318
- T.let(
1319
- :SUSPENDED,
1320
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
1321
- )
1322
-
1323
- sig do
1324
- override.returns(
1325
- T::Array[
1326
- Sentdm::Models::ProfileListResponse::Data::Profile::Brand::Status::TaggedSymbol
1327
- ]
1328
- )
1329
- end
1330
- def self.values
1331
- end
1332
- end
1333
- end
1334
- end
1335
- end
1336
-
1337
- class Error < Sentdm::Internal::Type::BaseModel
1338
- OrHash =
1339
- T.type_alias do
1340
- T.any(
1341
- Sentdm::Models::ProfileListResponse::Error,
1342
- Sentdm::Internal::AnyHash
1343
- )
1344
- end
1345
-
1346
- # Machine-readable error code (e.g., "RESOURCE_001")
1347
- sig { returns(T.nilable(String)) }
1348
- attr_reader :code
1349
-
1350
- sig { params(code: String).void }
1351
- attr_writer :code
1352
-
1353
- # Additional validation error details (field-level errors)
1354
- sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
1355
- attr_accessor :details
1356
-
1357
- # URL to documentation about this error
1358
- sig { returns(T.nilable(String)) }
1359
- attr_accessor :doc_url
1360
-
1361
- # Human-readable error message
1362
- sig { returns(T.nilable(String)) }
1363
- attr_reader :message
1364
-
1365
- sig { params(message: String).void }
1366
- attr_writer :message
1367
-
1368
- # Error information
1369
- sig do
1370
- params(
1371
- code: String,
1372
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
1373
- doc_url: T.nilable(String),
1374
- message: String
1375
- ).returns(T.attached_class)
1376
- end
1377
- def self.new(
1378
- # Machine-readable error code (e.g., "RESOURCE_001")
1379
- code: nil,
1380
- # Additional validation error details (field-level errors)
1381
- details: nil,
1382
- # URL to documentation about this error
1383
- doc_url: nil,
1384
- # Human-readable error message
1385
- message: nil
1386
- )
1387
- end
1388
-
1389
- sig do
1390
- override.returns(
1391
- {
1392
- code: String,
1393
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
1394
- doc_url: T.nilable(String),
1395
- message: String
1396
- }
1397
- )
1398
- end
1399
- def to_hash
1400
- end
1401
- end
1402
-
1403
- class Meta < Sentdm::Internal::Type::BaseModel
1404
- OrHash =
1405
- T.type_alias do
1406
- T.any(
1407
- Sentdm::Models::ProfileListResponse::Meta,
1408
- Sentdm::Internal::AnyHash
1409
- )
1410
- end
1411
-
1412
- # Unique identifier for this request (for tracing and support)
1413
- sig { returns(T.nilable(String)) }
1414
- attr_reader :request_id
1415
-
1416
- sig { params(request_id: String).void }
1417
- attr_writer :request_id
1418
-
1419
- # Server timestamp when the response was generated
1420
- sig { returns(T.nilable(Time)) }
1421
- attr_reader :timestamp
1422
-
1423
- sig { params(timestamp: Time).void }
1424
- attr_writer :timestamp
1425
-
1426
- # API version used for this request
1427
- sig { returns(T.nilable(String)) }
1428
- attr_reader :version
1429
-
1430
- sig { params(version: String).void }
1431
- attr_writer :version
1432
-
1433
- # Request and response metadata
1434
- sig do
1435
- params(request_id: String, timestamp: Time, version: String).returns(
1436
- T.attached_class
1437
- )
1438
- end
1439
- def self.new(
1440
- # Unique identifier for this request (for tracing and support)
1441
- request_id: nil,
1442
- # Server timestamp when the response was generated
1443
- timestamp: nil,
1444
- # API version used for this request
1445
- version: nil
1446
- )
1447
- end
1448
-
1449
- sig do
1450
- override.returns(
1451
- { request_id: String, timestamp: Time, version: String }
1452
- )
1453
- end
1454
- def to_hash
1455
- end
1456
125
  end
1457
126
  end
1458
127
  end