sentdm 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -8,7 +8,7 @@ module Sentdm
8
8
  T.any(Sentdm::Models::ProfileListResponse, Sentdm::Internal::AnyHash)
9
9
  end
10
10
 
11
- # List of profiles response
11
+ # The profiles in the organization.
12
12
  sig { returns(T.nilable(Sentdm::Models::ProfileListResponse::Data)) }
13
13
  attr_reader :data
14
14
 
@@ -20,17 +20,23 @@ module Sentdm
20
20
  attr_writer :data
21
21
 
22
22
  # Error information
23
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
23
+ sig { returns(T.nilable(Sentdm::Models::ProfileListResponse::Error)) }
24
24
  attr_reader :error
25
25
 
26
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
26
+ sig do
27
+ params(
28
+ error: T.nilable(Sentdm::Models::ProfileListResponse::Error::OrHash)
29
+ ).void
30
+ end
27
31
  attr_writer :error
28
32
 
29
33
  # Request and response metadata
30
- sig { returns(T.nilable(Sentdm::APIMeta)) }
34
+ sig { returns(T.nilable(Sentdm::Models::ProfileListResponse::Meta)) }
31
35
  attr_reader :meta
32
36
 
33
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
37
+ sig do
38
+ params(meta: Sentdm::Models::ProfileListResponse::Meta::OrHash).void
39
+ end
34
40
  attr_writer :meta
35
41
 
36
42
  # Indicates whether the request was successful
@@ -44,13 +50,13 @@ module Sentdm
44
50
  sig do
45
51
  params(
46
52
  data: T.nilable(Sentdm::Models::ProfileListResponse::Data::OrHash),
47
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
48
- meta: Sentdm::APIMeta::OrHash,
53
+ error: T.nilable(Sentdm::Models::ProfileListResponse::Error::OrHash),
54
+ meta: Sentdm::Models::ProfileListResponse::Meta::OrHash,
49
55
  success: T::Boolean
50
56
  ).returns(T.attached_class)
51
57
  end
52
58
  def self.new(
53
- # List of profiles response
59
+ # The profiles in the organization.
54
60
  data: nil,
55
61
  # Error information
56
62
  error: nil,
@@ -65,8 +71,8 @@ module Sentdm
65
71
  override.returns(
66
72
  {
67
73
  data: T.nilable(Sentdm::Models::ProfileListResponse::Data),
68
- error: T.nilable(Sentdm::ErrorDetail),
69
- meta: Sentdm::APIMeta,
74
+ error: T.nilable(Sentdm::Models::ProfileListResponse::Error),
75
+ meta: Sentdm::Models::ProfileListResponse::Meta,
70
76
  success: T::Boolean
71
77
  }
72
78
  )
@@ -83,26 +89,1368 @@ module Sentdm
83
89
  )
84
90
  end
85
91
 
86
- # List of profiles in the organization
87
- sig { returns(T.nilable(T::Array[Sentdm::ProfileDetail])) }
92
+ # Pagination metadata for list responses
93
+ sig do
94
+ returns(
95
+ T.nilable(Sentdm::Models::ProfileListResponse::Data::Pagination)
96
+ )
97
+ end
98
+ attr_reader :pagination
99
+
100
+ sig do
101
+ params(
102
+ pagination:
103
+ Sentdm::Models::ProfileListResponse::Data::Pagination::OrHash
104
+ ).void
105
+ end
106
+ attr_writer :pagination
107
+
108
+ # 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
88
116
  attr_reader :profiles
89
117
 
90
- sig { params(profiles: T::Array[Sentdm::ProfileDetail::OrHash]).void }
118
+ sig do
119
+ params(
120
+ profiles:
121
+ T::Array[
122
+ Sentdm::Models::ProfileListResponse::Data::Profile::OrHash
123
+ ]
124
+ ).void
125
+ end
91
126
  attr_writer :profiles
92
127
 
93
- # List of profiles response
128
+ # The profiles in the organization.
129
+ sig do
130
+ params(
131
+ pagination:
132
+ Sentdm::Models::ProfileListResponse::Data::Pagination::OrHash,
133
+ profiles:
134
+ T::Array[
135
+ Sentdm::Models::ProfileListResponse::Data::Profile::OrHash
136
+ ]
137
+ ).returns(T.attached_class)
138
+ end
139
+ def self.new(
140
+ # Pagination metadata for list responses
141
+ pagination: nil,
142
+ # The profiles on this page.
143
+ profiles: nil
144
+ )
145
+ end
146
+
147
+ sig do
148
+ override.returns(
149
+ {
150
+ pagination: Sentdm::Models::ProfileListResponse::Data::Pagination,
151
+ profiles:
152
+ T::Array[Sentdm::Models::ProfileListResponse::Data::Profile]
153
+ }
154
+ )
155
+ end
156
+ def to_hash
157
+ 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
94
1369
  sig do
95
- params(profiles: T::Array[Sentdm::ProfileDetail::OrHash]).returns(
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(
96
1436
  T.attached_class
97
1437
  )
98
1438
  end
99
1439
  def self.new(
100
- # List of profiles in the organization
101
- profiles: nil
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
102
1446
  )
103
1447
  end
104
1448
 
105
- sig { override.returns({ profiles: T::Array[Sentdm::ProfileDetail] }) }
1449
+ sig do
1450
+ override.returns(
1451
+ { request_id: String, timestamp: Time, version: String }
1452
+ )
1453
+ end
106
1454
  def to_hash
107
1455
  end
108
1456
  end