sentdm 0.19.0 → 0.20.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 (284) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +31 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/internal/type/enum.rb +25 -0
  6. data/lib/sentdm/models/api_meta.rb +34 -0
  7. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  8. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  10. data/lib/sentdm/models/api_response_template.rb +43 -0
  11. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  12. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  13. data/lib/sentdm/models/brands_brand_data.rb +38 -0
  14. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  15. data/lib/sentdm/models/contact_list_response.rb +12 -278
  16. data/lib/sentdm/models/contact_response.rb +126 -0
  17. data/lib/sentdm/models/destination_country.rb +21 -0
  18. data/lib/sentdm/models/error_detail.rb +42 -0
  19. data/lib/sentdm/models/me_retrieve_response.rb +12 -204
  20. data/lib/sentdm/models/message_retrieve_activities_response.rb +6 -74
  21. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  22. data/lib/sentdm/models/message_send_response.rb +6 -74
  23. data/lib/sentdm/models/mutation_request.rb +20 -0
  24. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  25. data/lib/sentdm/models/pagination_meta.rb +80 -0
  26. data/lib/sentdm/models/payment_details.rb +44 -0
  27. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  28. data/lib/sentdm/models/profile_create_params.rb +9 -423
  29. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  30. data/lib/sentdm/models/profile_detail.rb +605 -0
  31. data/lib/sentdm/models/profile_list_response.rb +9 -753
  32. data/lib/sentdm/models/profile_settings.rb +66 -0
  33. data/lib/sentdm/models/profile_update_params.rb +9 -423
  34. data/lib/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rb +45 -0
  35. data/lib/sentdm/models/profiles/base_dto.rb +32 -0
  36. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -165
  37. data/lib/sentdm/models/profiles/campaign_data.rb +123 -0
  38. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  39. data/lib/sentdm/models/profiles/campaign_list_response.rb +9 -420
  40. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -165
  41. data/lib/sentdm/models/profiles/messaging_use_case_us.rb +28 -0
  42. data/lib/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +29 -0
  43. data/lib/sentdm/models/profiles/tcr_campaign_with_use_cases.rb +248 -0
  44. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rb +34 -0
  45. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rb +48 -0
  46. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rb +38 -0
  47. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rb +81 -0
  48. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rb +34 -0
  49. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rb +39 -0
  50. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rb +116 -0
  51. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rb +75 -0
  52. data/lib/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rb +58 -0
  53. data/lib/sentdm/models/tcr_brand_relationship.rb +18 -0
  54. data/lib/sentdm/models/tcr_vertical.rb +36 -0
  55. data/lib/sentdm/models/template.rb +90 -0
  56. data/lib/sentdm/models/template_body_content.rb +27 -0
  57. data/lib/sentdm/models/template_create_params.rb +3 -889
  58. data/lib/sentdm/models/template_definition.rb +66 -0
  59. data/lib/sentdm/models/template_list_response.rb +12 -242
  60. data/lib/sentdm/models/template_update_params.rb +3 -889
  61. data/lib/sentdm/models/template_variable.rb +80 -0
  62. data/lib/sentdm/models/user_list_response.rb +9 -154
  63. data/lib/sentdm/models/user_remove_params.rb +2 -16
  64. data/lib/sentdm/models/user_response.rb +82 -0
  65. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  66. data/lib/sentdm/models/webhook_list_event_types_response.rb +9 -118
  67. data/lib/sentdm/models/webhook_list_events_response.rb +9 -153
  68. data/lib/sentdm/models/webhook_list_response.rb +12 -247
  69. data/lib/sentdm/models/webhook_response.rb +95 -0
  70. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  71. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  72. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  73. data/lib/sentdm/models.rb +77 -0
  74. data/lib/sentdm/resources/contacts.rb +6 -6
  75. data/lib/sentdm/resources/profiles/campaigns.rb +6 -6
  76. data/lib/sentdm/resources/profiles.rb +12 -12
  77. data/lib/sentdm/resources/templates.rb +8 -8
  78. data/lib/sentdm/resources/users.rb +6 -6
  79. data/lib/sentdm/resources/webhooks.rb +8 -8
  80. data/lib/sentdm/version.rb +1 -1
  81. data/lib/sentdm.rb +40 -18
  82. data/rbi/sentdm/models/api_meta.rbi +55 -0
  83. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  84. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  85. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  86. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  87. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  88. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  89. data/rbi/sentdm/models/brands_brand_data.rbi +104 -0
  90. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  91. data/rbi/sentdm/models/contact_list_response.rbi +16 -505
  92. data/rbi/sentdm/models/contact_response.rbi +183 -0
  93. data/rbi/sentdm/models/destination_country.rbi +32 -0
  94. data/rbi/sentdm/models/error_detail.rbi +66 -0
  95. data/rbi/sentdm/models/me_retrieve_response.rbi +16 -335
  96. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +8 -154
  97. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  98. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  99. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  100. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  101. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  102. data/rbi/sentdm/models/payment_details.rbi +59 -0
  103. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  104. data/rbi/sentdm/models/profile_create_params.rbi +12 -810
  105. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  106. data/rbi/sentdm/models/profile_detail.rbi +874 -0
  107. data/rbi/sentdm/models/profile_list_response.rbi +14 -1400
  108. data/rbi/sentdm/models/profile_settings.rbi +86 -0
  109. data/rbi/sentdm/models/profile_update_params.rbi +12 -810
  110. data/rbi/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rbi +83 -0
  111. data/rbi/sentdm/models/profiles/base_dto.rbi +53 -0
  112. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -289
  113. data/rbi/sentdm/models/profiles/campaign_data.rbi +148 -0
  114. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  115. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +11 -733
  116. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -289
  117. data/rbi/sentdm/models/profiles/messaging_use_case_us.rbi +73 -0
  118. data/rbi/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +51 -0
  119. data/rbi/sentdm/models/profiles/tcr_campaign_with_use_cases.rbi +425 -0
  120. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbi +56 -0
  121. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbi +87 -0
  122. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbi +72 -0
  123. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbi +104 -0
  124. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbi +57 -0
  125. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbi +59 -0
  126. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbi +180 -0
  127. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbi +95 -0
  128. data/rbi/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbi +81 -0
  129. data/rbi/sentdm/models/tcr_brand_relationship.rbi +30 -0
  130. data/rbi/sentdm/models/tcr_vertical.rbi +41 -0
  131. data/rbi/sentdm/models/template.rbi +129 -0
  132. data/rbi/sentdm/models/template_body_content.rbi +43 -0
  133. data/rbi/sentdm/models/template_create_params.rbi +4 -1701
  134. data/rbi/sentdm/models/template_definition.rbi +164 -0
  135. data/rbi/sentdm/models/template_list_response.rbi +16 -454
  136. data/rbi/sentdm/models/template_update_params.rbi +4 -1701
  137. data/rbi/sentdm/models/template_variable.rbi +120 -0
  138. data/rbi/sentdm/models/user_list_response.rbi +14 -271
  139. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  140. data/rbi/sentdm/models/user_response.rbi +118 -0
  141. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  142. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +12 -247
  143. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  144. data/rbi/sentdm/models/webhook_list_response.rbi +16 -462
  145. data/rbi/sentdm/models/webhook_response.rbi +140 -0
  146. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  147. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  148. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  149. data/rbi/sentdm/models.rbi +77 -0
  150. data/rbi/sentdm/resources/contacts.rbi +3 -3
  151. data/rbi/sentdm/resources/profiles/campaigns.rbi +4 -4
  152. data/rbi/sentdm/resources/profiles.rbi +9 -13
  153. data/rbi/sentdm/resources/templates.rbi +5 -6
  154. data/rbi/sentdm/resources/users.rbi +3 -3
  155. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  156. data/sig/sentdm/models/api_meta.rbs +27 -0
  157. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  158. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  159. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  160. data/sig/sentdm/models/api_response_template.rbs +39 -0
  161. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  162. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  163. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  164. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  165. data/sig/sentdm/models/contact_list_response.rbs +20 -256
  166. data/sig/sentdm/models/contact_response.rbs +111 -0
  167. data/sig/sentdm/models/destination_country.rbs +19 -0
  168. data/sig/sentdm/models/error_detail.rbs +39 -0
  169. data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
  170. data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -71
  171. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  172. data/sig/sentdm/models/message_send_response.rbs +9 -71
  173. data/sig/sentdm/models/mutation_request.rbs +15 -0
  174. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  175. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  176. data/sig/sentdm/models/payment_details.rbs +30 -0
  177. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  178. data/sig/sentdm/models/profile_create_params.rbs +12 -363
  179. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  180. data/sig/sentdm/models/profile_detail.rbs +474 -0
  181. data/sig/sentdm/models/profile_list_response.rbs +15 -645
  182. data/sig/sentdm/models/profile_settings.rbs +50 -0
  183. data/sig/sentdm/models/profile_update_params.rbs +12 -363
  184. data/sig/sentdm/models/profiles/api_response_of_tcr_campaign_with_use_cases.rbs +41 -0
  185. data/sig/sentdm/models/profiles/base_dto.rbs +27 -0
  186. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -138
  187. data/sig/sentdm/models/profiles/campaign_data.rbs +82 -0
  188. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  189. data/sig/sentdm/models/profiles/campaign_list_response.rbs +13 -396
  190. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -138
  191. data/sig/sentdm/models/profiles/messaging_use_case_us.rbs +40 -0
  192. data/sig/sentdm/models/profiles/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +27 -0
  193. data/sig/sentdm/models/profiles/tcr_campaign_with_use_cases.rbs +299 -0
  194. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbs +24 -0
  195. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbs +35 -0
  196. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +32 -0
  197. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbs +75 -0
  198. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbs +30 -0
  199. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbs +30 -0
  200. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_business_info.rbs +89 -0
  201. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_compliance_info.rbs +55 -0
  202. data/sig/sentdm/models/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_brands_brand_contact_info.rbs +45 -0
  203. data/sig/sentdm/models/tcr_brand_relationship.rbs +22 -0
  204. data/sig/sentdm/models/tcr_vertical.rbs +58 -0
  205. data/sig/sentdm/models/template.rbs +79 -0
  206. data/sig/sentdm/models/template_body_content.rbs +30 -0
  207. data/sig/sentdm/models/template_create_params.rbs +6 -853
  208. data/sig/sentdm/models/template_definition.rbs +45 -0
  209. data/sig/sentdm/models/template_list_response.rbs +19 -225
  210. data/sig/sentdm/models/template_update_params.rbs +4 -851
  211. data/sig/sentdm/models/template_variable.rbs +84 -0
  212. data/sig/sentdm/models/user_list_response.rbs +15 -151
  213. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  214. data/sig/sentdm/models/user_response.rbs +72 -0
  215. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  216. data/sig/sentdm/models/webhook_list_event_types_response.rbs +15 -130
  217. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  218. data/sig/sentdm/models/webhook_list_response.rbs +20 -248
  219. data/sig/sentdm/models/webhook_response.rbs +103 -0
  220. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  221. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  222. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  223. data/sig/sentdm/models.rbs +68 -0
  224. data/sig/sentdm/resources/contacts.rbs +3 -3
  225. data/sig/sentdm/resources/profiles/campaigns.rbs +4 -4
  226. data/sig/sentdm/resources/profiles.rbs +9 -9
  227. data/sig/sentdm/resources/templates.rbs +5 -5
  228. data/sig/sentdm/resources/users.rbs +3 -3
  229. data/sig/sentdm/resources/webhooks.rbs +4 -4
  230. metadata +121 -55
  231. data/lib/sentdm/models/contact_create_response.rb +0 -236
  232. data/lib/sentdm/models/contact_retrieve_response.rb +0 -236
  233. data/lib/sentdm/models/contact_update_response.rb +0 -236
  234. data/lib/sentdm/models/profile_create_response.rb +0 -781
  235. data/lib/sentdm/models/profile_retrieve_response.rb +0 -783
  236. data/lib/sentdm/models/profile_update_response.rb +0 -781
  237. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -459
  238. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -459
  239. data/lib/sentdm/models/template_create_response.rb +0 -197
  240. data/lib/sentdm/models/template_retrieve_response.rb +0 -197
  241. data/lib/sentdm/models/template_update_response.rb +0 -197
  242. data/lib/sentdm/models/user_invite_response.rb +0 -189
  243. data/lib/sentdm/models/user_retrieve_response.rb +0 -189
  244. data/lib/sentdm/models/user_update_role_response.rb +0 -189
  245. data/lib/sentdm/models/webhook_create_response.rb +0 -204
  246. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -204
  247. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -204
  248. data/lib/sentdm/models/webhook_update_response.rb +0 -204
  249. data/rbi/sentdm/models/contact_create_response.rbi +0 -390
  250. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -392
  251. data/rbi/sentdm/models/contact_update_response.rbi +0 -390
  252. data/rbi/sentdm/models/profile_create_response.rbi +0 -1439
  253. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1443
  254. data/rbi/sentdm/models/profile_update_response.rbi +0 -1439
  255. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -814
  256. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -814
  257. data/rbi/sentdm/models/template_create_response.rbi +0 -339
  258. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -345
  259. data/rbi/sentdm/models/template_update_response.rbi +0 -339
  260. data/rbi/sentdm/models/user_invite_response.rbi +0 -323
  261. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -323
  262. data/rbi/sentdm/models/user_update_role_response.rbi +0 -328
  263. data/rbi/sentdm/models/webhook_create_response.rbi +0 -348
  264. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -350
  265. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -366
  266. data/rbi/sentdm/models/webhook_update_response.rbi +0 -348
  267. data/sig/sentdm/models/contact_create_response.rbs +0 -209
  268. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -209
  269. data/sig/sentdm/models/contact_update_response.rbs +0 -209
  270. data/sig/sentdm/models/profile_create_response.rbs +0 -662
  271. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -662
  272. data/sig/sentdm/models/profile_update_response.rbs +0 -662
  273. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -424
  274. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -424
  275. data/sig/sentdm/models/template_create_response.rbs +0 -177
  276. data/sig/sentdm/models/template_retrieve_response.rbs +0 -177
  277. data/sig/sentdm/models/template_update_response.rbs +0 -177
  278. data/sig/sentdm/models/user_invite_response.rbs +0 -170
  279. data/sig/sentdm/models/user_retrieve_response.rbs +0 -170
  280. data/sig/sentdm/models/user_update_role_response.rbs +0 -170
  281. data/sig/sentdm/models/webhook_create_response.rbs +0 -201
  282. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -201
  283. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -201
  284. data/sig/sentdm/models/webhook_update_response.rbs +0 -201
@@ -0,0 +1,183 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ContactResponse < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::ContactResponse, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for the contact
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :id
14
+
15
+ sig { params(id: String).void }
16
+ attr_writer :id
17
+
18
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :available_channels
21
+
22
+ sig { params(available_channels: String).void }
23
+ attr_writer :available_channels
24
+
25
+ # Country calling code (e.g., 1 for US/Canada)
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :country_code
28
+
29
+ sig { params(country_code: String).void }
30
+ attr_writer :country_code
31
+
32
+ # When the contact was created
33
+ sig { returns(T.nilable(Time)) }
34
+ attr_reader :created_at
35
+
36
+ sig { params(created_at: Time).void }
37
+ attr_writer :created_at
38
+
39
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :default_channel
42
+
43
+ sig { params(default_channel: String).void }
44
+ attr_writer :default_channel
45
+
46
+ # Phone number in E.164 format (e.g., +1234567890)
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :format_e164
49
+
50
+ sig { params(format_e164: String).void }
51
+ attr_writer :format_e164
52
+
53
+ # Phone number in international format (e.g., +1 234-567-890)
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :format_international
56
+
57
+ sig { params(format_international: String).void }
58
+ attr_writer :format_international
59
+
60
+ # Phone number in national format (e.g., (234) 567-890)
61
+ sig { returns(T.nilable(String)) }
62
+ attr_reader :format_national
63
+
64
+ sig { params(format_national: String).void }
65
+ attr_writer :format_national
66
+
67
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :format_rfc
70
+
71
+ sig { params(format_rfc: String).void }
72
+ attr_writer :format_rfc
73
+
74
+ # Whether this is an inherited contact (read-only)
75
+ sig { returns(T.nilable(T::Boolean)) }
76
+ attr_reader :is_inherited
77
+
78
+ sig { params(is_inherited: T::Boolean).void }
79
+ attr_writer :is_inherited
80
+
81
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
82
+ # is per-contact, not per-channel.
83
+ sig { returns(T.nilable(T::Boolean)) }
84
+ attr_reader :opt_out
85
+
86
+ sig { params(opt_out: T::Boolean).void }
87
+ attr_writer :opt_out
88
+
89
+ # Phone number in original format
90
+ sig { returns(T.nilable(String)) }
91
+ attr_reader :phone_number
92
+
93
+ sig { params(phone_number: String).void }
94
+ attr_writer :phone_number
95
+
96
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
97
+ sig { returns(T.nilable(String)) }
98
+ attr_reader :region_code
99
+
100
+ sig { params(region_code: String).void }
101
+ attr_writer :region_code
102
+
103
+ # When the contact was last updated
104
+ sig { returns(T.nilable(Time)) }
105
+ attr_accessor :updated_at
106
+
107
+ # Contact response for v3 API Uses snake_case for JSON property names
108
+ sig do
109
+ params(
110
+ id: String,
111
+ available_channels: String,
112
+ country_code: String,
113
+ created_at: Time,
114
+ default_channel: String,
115
+ format_e164: String,
116
+ format_international: String,
117
+ format_national: String,
118
+ format_rfc: String,
119
+ is_inherited: T::Boolean,
120
+ opt_out: T::Boolean,
121
+ phone_number: String,
122
+ region_code: String,
123
+ updated_at: T.nilable(Time)
124
+ ).returns(T.attached_class)
125
+ end
126
+ def self.new(
127
+ # Unique identifier for the contact
128
+ id: nil,
129
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
130
+ available_channels: nil,
131
+ # Country calling code (e.g., 1 for US/Canada)
132
+ country_code: nil,
133
+ # When the contact was created
134
+ created_at: nil,
135
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
136
+ default_channel: nil,
137
+ # Phone number in E.164 format (e.g., +1234567890)
138
+ format_e164: nil,
139
+ # Phone number in international format (e.g., +1 234-567-890)
140
+ format_international: nil,
141
+ # Phone number in national format (e.g., (234) 567-890)
142
+ format_national: nil,
143
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
144
+ format_rfc: nil,
145
+ # Whether this is an inherited contact (read-only)
146
+ is_inherited: nil,
147
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
148
+ # is per-contact, not per-channel.
149
+ opt_out: nil,
150
+ # Phone number in original format
151
+ phone_number: nil,
152
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
153
+ region_code: nil,
154
+ # When the contact was last updated
155
+ updated_at: nil
156
+ )
157
+ end
158
+
159
+ sig do
160
+ override.returns(
161
+ {
162
+ id: String,
163
+ available_channels: String,
164
+ country_code: String,
165
+ created_at: Time,
166
+ default_channel: String,
167
+ format_e164: String,
168
+ format_international: String,
169
+ format_national: String,
170
+ format_rfc: String,
171
+ is_inherited: T::Boolean,
172
+ opt_out: T::Boolean,
173
+ phone_number: String,
174
+ region_code: String,
175
+ updated_at: T.nilable(Time)
176
+ }
177
+ )
178
+ end
179
+ def to_hash
180
+ end
181
+ end
182
+ end
183
+ end
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class DestinationCountry < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::DestinationCountry, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(T.nilable(String)) }
12
+ attr_reader :id
13
+
14
+ sig { params(id: String).void }
15
+ attr_writer :id
16
+
17
+ sig { returns(T.nilable(T::Boolean)) }
18
+ attr_reader :is_main
19
+
20
+ sig { params(is_main: T::Boolean).void }
21
+ attr_writer :is_main
22
+
23
+ sig { params(id: String, is_main: T::Boolean).returns(T.attached_class) }
24
+ def self.new(id: nil, is_main: nil)
25
+ end
26
+
27
+ sig { override.returns({ id: String, is_main: T::Boolean }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,66 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ErrorDetail < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::ErrorDetail, Sentdm::Internal::AnyHash) }
8
+
9
+ # Machine-readable error code (e.g., "RESOURCE_001")
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :code
12
+
13
+ sig { params(code: String).void }
14
+ attr_writer :code
15
+
16
+ # Additional validation error details (field-level errors)
17
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
18
+ attr_accessor :details
19
+
20
+ # URL to documentation about this error
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :doc_url
23
+
24
+ # Human-readable error message
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :message
27
+
28
+ sig { params(message: String).void }
29
+ attr_writer :message
30
+
31
+ # Error information
32
+ sig do
33
+ params(
34
+ code: String,
35
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
36
+ doc_url: T.nilable(String),
37
+ message: String
38
+ ).returns(T.attached_class)
39
+ end
40
+ def self.new(
41
+ # Machine-readable error code (e.g., "RESOURCE_001")
42
+ code: nil,
43
+ # Additional validation error details (field-level errors)
44
+ details: nil,
45
+ # URL to documentation about this error
46
+ doc_url: nil,
47
+ # Human-readable error message
48
+ message: nil
49
+ )
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ code: String,
56
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
57
+ doc_url: T.nilable(String),
58
+ message: String
59
+ }
60
+ )
61
+ end
62
+ def to_hash
63
+ end
64
+ end
65
+ end
66
+ end
@@ -22,23 +22,17 @@ module Sentdm
22
22
  attr_writer :data
23
23
 
24
24
  # Error information
25
- sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Error)) }
25
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
26
26
  attr_reader :error
27
27
 
28
- sig do
29
- params(
30
- error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash)
31
- ).void
32
- end
28
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
33
29
  attr_writer :error
34
30
 
35
31
  # Request and response metadata
36
- sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Meta)) }
32
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
37
33
  attr_reader :meta
38
34
 
39
- sig do
40
- params(meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash).void
41
- end
35
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
42
36
  attr_writer :meta
43
37
 
44
38
  # Indicates whether the request was successful
@@ -52,8 +46,8 @@ module Sentdm
52
46
  sig do
53
47
  params(
54
48
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data::OrHash),
55
- error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash),
56
- meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash,
49
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
50
+ meta: Sentdm::APIMeta::OrHash,
57
51
  success: T::Boolean
58
52
  ).returns(T.attached_class)
59
53
  end
@@ -75,8 +69,8 @@ module Sentdm
75
69
  override.returns(
76
70
  {
77
71
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data),
78
- error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error),
79
- meta: Sentdm::Models::MeRetrieveResponse::Meta,
72
+ error: T.nilable(Sentdm::ErrorDetail),
73
+ meta: Sentdm::APIMeta,
80
74
  success: T::Boolean
81
75
  }
82
76
  )
@@ -166,18 +160,11 @@ module Sentdm
166
160
  attr_writer :profiles
167
161
 
168
162
  # Profile configuration settings
169
- sig do
170
- returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings))
171
- end
163
+ sig { returns(T.nilable(Sentdm::ProfileSettings)) }
172
164
  attr_reader :settings
173
165
 
174
166
  sig do
175
- params(
176
- settings:
177
- T.nilable(
178
- Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
179
- )
180
- ).void
167
+ params(settings: T.nilable(Sentdm::ProfileSettings::OrHash)).void
181
168
  end
182
169
  attr_writer :settings
183
170
 
@@ -216,10 +203,7 @@ module Sentdm
216
203
  T::Array[
217
204
  Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
218
205
  ],
219
- settings:
220
- T.nilable(
221
- Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
222
- ),
206
+ settings: T.nilable(Sentdm::ProfileSettings::OrHash),
223
207
  short_name: T.nilable(String),
224
208
  status: T.nilable(String),
225
209
  type: String
@@ -272,8 +256,7 @@ module Sentdm
272
256
  organization_id: T.nilable(String),
273
257
  profiles:
274
258
  T::Array[Sentdm::Models::MeRetrieveResponse::Data::Profile],
275
- settings:
276
- T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings),
259
+ settings: T.nilable(Sentdm::ProfileSettings),
277
260
  short_name: T.nilable(String),
278
261
  status: T.nilable(String),
279
262
  type: String
@@ -568,21 +551,10 @@ module Sentdm
568
551
  attr_accessor :role
569
552
 
570
553
  # Profile configuration settings
571
- sig do
572
- returns(
573
- T.nilable(
574
- Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings
575
- )
576
- )
577
- end
554
+ sig { returns(T.nilable(Sentdm::ProfileSettings)) }
578
555
  attr_reader :settings
579
556
 
580
- sig do
581
- params(
582
- settings:
583
- Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash
584
- ).void
585
- end
557
+ sig { params(settings: Sentdm::ProfileSettings::OrHash).void }
586
558
  attr_writer :settings
587
559
 
588
560
  # Profile short name (abbreviation)
@@ -602,8 +574,7 @@ module Sentdm
602
574
  icon: T.nilable(String),
603
575
  name: String,
604
576
  role: T.nilable(String),
605
- settings:
606
- Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash,
577
+ settings: Sentdm::ProfileSettings::OrHash,
607
578
  short_name: T.nilable(String),
608
579
  status: T.nilable(String)
609
580
  ).returns(T.attached_class)
@@ -640,8 +611,7 @@ module Sentdm
640
611
  icon: T.nilable(String),
641
612
  name: String,
642
613
  role: T.nilable(String),
643
- settings:
644
- Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
614
+ settings: Sentdm::ProfileSettings,
645
615
  short_name: T.nilable(String),
646
616
  status: T.nilable(String)
647
617
  }
@@ -649,295 +619,6 @@ module Sentdm
649
619
  end
650
620
  def to_hash
651
621
  end
652
-
653
- class Settings < Sentdm::Internal::Type::BaseModel
654
- OrHash =
655
- T.type_alias do
656
- T.any(
657
- Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
658
- Sentdm::Internal::AnyHash
659
- )
660
- end
661
-
662
- # Whether contacts are shared across profiles in the organization
663
- sig { returns(T.nilable(T::Boolean)) }
664
- attr_accessor :allow_contact_sharing
665
-
666
- # Whether templates are shared across profiles in the organization
667
- sig { returns(T.nilable(T::Boolean)) }
668
- attr_accessor :allow_template_sharing
669
-
670
- # Billing model: profile, organization, or profile_and_organization
671
- sig { returns(T.nilable(String)) }
672
- attr_accessor :billing_model
673
-
674
- # Whether this profile inherits contacts from the organization
675
- sig { returns(T.nilable(T::Boolean)) }
676
- attr_accessor :inherit_contacts
677
-
678
- # Whether this profile inherits TCR brand from the organization
679
- sig { returns(T.nilable(T::Boolean)) }
680
- attr_accessor :inherit_tcr_brand
681
-
682
- # Whether this profile inherits TCR campaign from the organization
683
- sig { returns(T.nilable(T::Boolean)) }
684
- attr_accessor :inherit_tcr_campaign
685
-
686
- # Whether this profile inherits templates from the organization
687
- sig { returns(T.nilable(T::Boolean)) }
688
- attr_accessor :inherit_templates
689
-
690
- # Profile configuration settings
691
- sig do
692
- params(
693
- allow_contact_sharing: T.nilable(T::Boolean),
694
- allow_template_sharing: T.nilable(T::Boolean),
695
- billing_model: T.nilable(String),
696
- inherit_contacts: T.nilable(T::Boolean),
697
- inherit_tcr_brand: T.nilable(T::Boolean),
698
- inherit_tcr_campaign: T.nilable(T::Boolean),
699
- inherit_templates: T.nilable(T::Boolean)
700
- ).returns(T.attached_class)
701
- end
702
- def self.new(
703
- # Whether contacts are shared across profiles in the organization
704
- allow_contact_sharing: nil,
705
- # Whether templates are shared across profiles in the organization
706
- allow_template_sharing: nil,
707
- # Billing model: profile, organization, or profile_and_organization
708
- billing_model: nil,
709
- # Whether this profile inherits contacts from the organization
710
- inherit_contacts: nil,
711
- # Whether this profile inherits TCR brand from the organization
712
- inherit_tcr_brand: nil,
713
- # Whether this profile inherits TCR campaign from the organization
714
- inherit_tcr_campaign: nil,
715
- # Whether this profile inherits templates from the organization
716
- inherit_templates: nil
717
- )
718
- end
719
-
720
- sig do
721
- override.returns(
722
- {
723
- allow_contact_sharing: T.nilable(T::Boolean),
724
- allow_template_sharing: T.nilable(T::Boolean),
725
- billing_model: T.nilable(String),
726
- inherit_contacts: T.nilable(T::Boolean),
727
- inherit_tcr_brand: T.nilable(T::Boolean),
728
- inherit_tcr_campaign: T.nilable(T::Boolean),
729
- inherit_templates: T.nilable(T::Boolean)
730
- }
731
- )
732
- end
733
- def to_hash
734
- end
735
- end
736
- end
737
-
738
- class Settings < Sentdm::Internal::Type::BaseModel
739
- OrHash =
740
- T.type_alias do
741
- T.any(
742
- Sentdm::Models::MeRetrieveResponse::Data::Settings,
743
- Sentdm::Internal::AnyHash
744
- )
745
- end
746
-
747
- # Whether contacts are shared across profiles in the organization
748
- sig { returns(T.nilable(T::Boolean)) }
749
- attr_accessor :allow_contact_sharing
750
-
751
- # Whether templates are shared across profiles in the organization
752
- sig { returns(T.nilable(T::Boolean)) }
753
- attr_accessor :allow_template_sharing
754
-
755
- # Billing model: profile, organization, or profile_and_organization
756
- sig { returns(T.nilable(String)) }
757
- attr_accessor :billing_model
758
-
759
- # Whether this profile inherits contacts from the organization
760
- sig { returns(T.nilable(T::Boolean)) }
761
- attr_accessor :inherit_contacts
762
-
763
- # Whether this profile inherits TCR brand from the organization
764
- sig { returns(T.nilable(T::Boolean)) }
765
- attr_accessor :inherit_tcr_brand
766
-
767
- # Whether this profile inherits TCR campaign from the organization
768
- sig { returns(T.nilable(T::Boolean)) }
769
- attr_accessor :inherit_tcr_campaign
770
-
771
- # Whether this profile inherits templates from the organization
772
- sig { returns(T.nilable(T::Boolean)) }
773
- attr_accessor :inherit_templates
774
-
775
- # Profile configuration settings
776
- sig do
777
- params(
778
- allow_contact_sharing: T.nilable(T::Boolean),
779
- allow_template_sharing: T.nilable(T::Boolean),
780
- billing_model: T.nilable(String),
781
- inherit_contacts: T.nilable(T::Boolean),
782
- inherit_tcr_brand: T.nilable(T::Boolean),
783
- inherit_tcr_campaign: T.nilable(T::Boolean),
784
- inherit_templates: T.nilable(T::Boolean)
785
- ).returns(T.attached_class)
786
- end
787
- def self.new(
788
- # Whether contacts are shared across profiles in the organization
789
- allow_contact_sharing: nil,
790
- # Whether templates are shared across profiles in the organization
791
- allow_template_sharing: nil,
792
- # Billing model: profile, organization, or profile_and_organization
793
- billing_model: nil,
794
- # Whether this profile inherits contacts from the organization
795
- inherit_contacts: nil,
796
- # Whether this profile inherits TCR brand from the organization
797
- inherit_tcr_brand: nil,
798
- # Whether this profile inherits TCR campaign from the organization
799
- inherit_tcr_campaign: nil,
800
- # Whether this profile inherits templates from the organization
801
- inherit_templates: nil
802
- )
803
- end
804
-
805
- sig do
806
- override.returns(
807
- {
808
- allow_contact_sharing: T.nilable(T::Boolean),
809
- allow_template_sharing: T.nilable(T::Boolean),
810
- billing_model: T.nilable(String),
811
- inherit_contacts: T.nilable(T::Boolean),
812
- inherit_tcr_brand: T.nilable(T::Boolean),
813
- inherit_tcr_campaign: T.nilable(T::Boolean),
814
- inherit_templates: T.nilable(T::Boolean)
815
- }
816
- )
817
- end
818
- def to_hash
819
- end
820
- end
821
- end
822
-
823
- class Error < Sentdm::Internal::Type::BaseModel
824
- OrHash =
825
- T.type_alias do
826
- T.any(
827
- Sentdm::Models::MeRetrieveResponse::Error,
828
- Sentdm::Internal::AnyHash
829
- )
830
- end
831
-
832
- # Machine-readable error code (e.g., "RESOURCE_001")
833
- sig { returns(T.nilable(String)) }
834
- attr_reader :code
835
-
836
- sig { params(code: String).void }
837
- attr_writer :code
838
-
839
- # Additional validation error details (field-level errors)
840
- sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
841
- attr_accessor :details
842
-
843
- # URL to documentation about this error
844
- sig { returns(T.nilable(String)) }
845
- attr_accessor :doc_url
846
-
847
- # Human-readable error message
848
- sig { returns(T.nilable(String)) }
849
- attr_reader :message
850
-
851
- sig { params(message: String).void }
852
- attr_writer :message
853
-
854
- # Error information
855
- sig do
856
- params(
857
- code: String,
858
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
859
- doc_url: T.nilable(String),
860
- message: String
861
- ).returns(T.attached_class)
862
- end
863
- def self.new(
864
- # Machine-readable error code (e.g., "RESOURCE_001")
865
- code: nil,
866
- # Additional validation error details (field-level errors)
867
- details: nil,
868
- # URL to documentation about this error
869
- doc_url: nil,
870
- # Human-readable error message
871
- message: nil
872
- )
873
- end
874
-
875
- sig do
876
- override.returns(
877
- {
878
- code: String,
879
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
880
- doc_url: T.nilable(String),
881
- message: String
882
- }
883
- )
884
- end
885
- def to_hash
886
- end
887
- end
888
-
889
- class Meta < Sentdm::Internal::Type::BaseModel
890
- OrHash =
891
- T.type_alias do
892
- T.any(
893
- Sentdm::Models::MeRetrieveResponse::Meta,
894
- Sentdm::Internal::AnyHash
895
- )
896
- end
897
-
898
- # Unique identifier for this request (for tracing and support)
899
- sig { returns(T.nilable(String)) }
900
- attr_reader :request_id
901
-
902
- sig { params(request_id: String).void }
903
- attr_writer :request_id
904
-
905
- # Server timestamp when the response was generated
906
- sig { returns(T.nilable(Time)) }
907
- attr_reader :timestamp
908
-
909
- sig { params(timestamp: Time).void }
910
- attr_writer :timestamp
911
-
912
- # API version used for this request
913
- sig { returns(T.nilable(String)) }
914
- attr_reader :version
915
-
916
- sig { params(version: String).void }
917
- attr_writer :version
918
-
919
- # Request and response metadata
920
- sig do
921
- params(request_id: String, timestamp: Time, version: String).returns(
922
- T.attached_class
923
- )
924
- end
925
- def self.new(
926
- # Unique identifier for this request (for tracing and support)
927
- request_id: nil,
928
- # Server timestamp when the response was generated
929
- timestamp: nil,
930
- # API version used for this request
931
- version: nil
932
- )
933
- end
934
-
935
- sig do
936
- override.returns(
937
- { request_id: String, timestamp: Time, version: String }
938
- )
939
- end
940
- def to_hash
941
622
  end
942
623
  end
943
624
  end