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