zavudev 0.7.0 → 0.9.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 (385) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -0
  3. data/README.md +1 -1
  4. data/lib/zavudev/client.rb +47 -1
  5. data/lib/zavudev/models/balance_retrieve_params.rb +14 -0
  6. data/lib/zavudev/models/balance_retrieve_response.rb +48 -0
  7. data/lib/zavudev/models/broadcast_contact.rb +10 -1
  8. data/lib/zavudev/models/broadcast_content.rb +18 -3
  9. data/lib/zavudev/models/broadcast_escalate_review_params.rb +20 -0
  10. data/lib/zavudev/models/broadcast_escalate_review_response.rb +16 -0
  11. data/lib/zavudev/models/broadcast_retry_review_params.rb +20 -0
  12. data/lib/zavudev/models/broadcast_retry_review_response.rb +16 -0
  13. data/lib/zavudev/models/broadcasts/contact_add_params.rb +18 -3
  14. data/lib/zavudev/models/contact.rb +1 -1
  15. data/lib/zavudev/models/contact_create_params.rb +99 -0
  16. data/lib/zavudev/models/contact_dismiss_merge_suggestion_params.rb +20 -0
  17. data/lib/zavudev/models/contact_merge_params.rb +33 -0
  18. data/lib/zavudev/models/contacts/channel_add_params.rb +77 -0
  19. data/lib/zavudev/models/contacts/channel_add_response.rb +19 -0
  20. data/lib/zavudev/models/contacts/channel_remove_params.rb +28 -0
  21. data/lib/zavudev/models/contacts/channel_set_primary_params.rb +28 -0
  22. data/lib/zavudev/models/contacts/channel_set_primary_response.rb +19 -0
  23. data/lib/zavudev/models/contacts/channel_update_params.rb +53 -0
  24. data/lib/zavudev/models/contacts/channel_update_response.rb +19 -0
  25. data/lib/zavudev/models/data_export.rb +122 -0
  26. data/lib/zavudev/models/export_create_params.rb +54 -0
  27. data/lib/zavudev/models/export_create_response.rb +16 -0
  28. data/lib/zavudev/models/export_list_params.rb +49 -0
  29. data/lib/zavudev/models/export_retrieve_params.rb +20 -0
  30. data/lib/zavudev/models/export_retrieve_response.rb +16 -0
  31. data/lib/zavudev/models/invitation.rb +135 -0
  32. data/lib/zavudev/models/invitation_cancel_params.rb +20 -0
  33. data/lib/zavudev/models/invitation_cancel_response.rb +16 -0
  34. data/lib/zavudev/models/invitation_create_params.rb +68 -0
  35. data/lib/zavudev/models/invitation_create_response.rb +16 -0
  36. data/lib/zavudev/models/invitation_list_params.rb +50 -0
  37. data/lib/zavudev/models/invitation_retrieve_params.rb +20 -0
  38. data/lib/zavudev/models/invitation_retrieve_response.rb +16 -0
  39. data/lib/zavudev/models/message_content.rb +96 -3
  40. data/lib/zavudev/models/message_type.rb +1 -0
  41. data/lib/zavudev/models/number_10dlc/brand_create_params.rb +158 -0
  42. data/lib/zavudev/models/number_10dlc/brand_create_response.rb +18 -0
  43. data/lib/zavudev/models/number_10dlc/brand_delete_params.rb +22 -0
  44. data/lib/zavudev/models/number_10dlc/brand_list_params.rb +28 -0
  45. data/lib/zavudev/models/number_10dlc/brand_list_use_cases_params.rb +16 -0
  46. data/lib/zavudev/models/number_10dlc/brand_list_use_cases_response.rb +36 -0
  47. data/lib/zavudev/models/number_10dlc/brand_retrieve_params.rb +22 -0
  48. data/lib/zavudev/models/number_10dlc/brand_retrieve_response.rb +18 -0
  49. data/lib/zavudev/models/number_10dlc/brand_submit_params.rb +22 -0
  50. data/lib/zavudev/models/number_10dlc/brand_submit_response.rb +18 -0
  51. data/lib/zavudev/models/number_10dlc/brand_sync_status_params.rb +22 -0
  52. data/lib/zavudev/models/number_10dlc/brand_sync_status_response.rb +18 -0
  53. data/lib/zavudev/models/number_10dlc/brand_update_params.rb +159 -0
  54. data/lib/zavudev/models/number_10dlc/brand_update_response.rb +18 -0
  55. data/lib/zavudev/models/number_10dlc/campaign_create_params.rb +151 -0
  56. data/lib/zavudev/models/number_10dlc/campaign_create_response.rb +18 -0
  57. data/lib/zavudev/models/number_10dlc/campaign_delete_params.rb +22 -0
  58. data/lib/zavudev/models/number_10dlc/campaign_list_params.rb +38 -0
  59. data/lib/zavudev/models/number_10dlc/campaign_retrieve_params.rb +22 -0
  60. data/lib/zavudev/models/number_10dlc/campaign_retrieve_response.rb +18 -0
  61. data/lib/zavudev/models/number_10dlc/campaign_submit_params.rb +22 -0
  62. data/lib/zavudev/models/number_10dlc/campaign_submit_response.rb +18 -0
  63. data/lib/zavudev/models/number_10dlc/campaign_sync_status_params.rb +22 -0
  64. data/lib/zavudev/models/number_10dlc/campaign_sync_status_response.rb +18 -0
  65. data/lib/zavudev/models/number_10dlc/campaign_update_params.rb +64 -0
  66. data/lib/zavudev/models/number_10dlc/campaign_update_response.rb +18 -0
  67. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rb +33 -0
  68. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rb +20 -0
  69. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rb +24 -0
  70. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rb +27 -0
  71. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rb +30 -0
  72. data/lib/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rb +83 -0
  73. data/lib/zavudev/models/number_10dlc/ten_dlc_brand.rb +238 -0
  74. data/lib/zavudev/models/number_10dlc/ten_dlc_campaign.rb +243 -0
  75. data/lib/zavudev/models/plan_retrieve_params.rb +14 -0
  76. data/lib/zavudev/models/plan_retrieve_response.rb +155 -0
  77. data/lib/zavudev/models/senders/whats_app_sync_contacts.rb +51 -0
  78. data/lib/zavudev/models/senders/whats_app_sync_history.rb +60 -0
  79. data/lib/zavudev/models/senders/whats_app_sync_status.rb +60 -0
  80. data/lib/zavudev/models/senders/whatsapp_sync_retrieve_params.rb +22 -0
  81. data/lib/zavudev/models/senders/whatsapp_sync_retrieve_response.rb +19 -0
  82. data/lib/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rb +22 -0
  83. data/lib/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rb +27 -0
  84. data/lib/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rb +22 -0
  85. data/lib/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rb +27 -0
  86. data/lib/zavudev/models/sub_account.rb +91 -0
  87. data/lib/zavudev/models/sub_account_create_params.rb +49 -0
  88. data/lib/zavudev/models/sub_account_create_response.rb +16 -0
  89. data/lib/zavudev/models/sub_account_deactivate_params.rb +20 -0
  90. data/lib/zavudev/models/sub_account_deactivate_response.rb +24 -0
  91. data/lib/zavudev/models/sub_account_get_balance_params.rb +20 -0
  92. data/lib/zavudev/models/sub_account_get_balance_response.rb +48 -0
  93. data/lib/zavudev/models/sub_account_list_params.rb +26 -0
  94. data/lib/zavudev/models/sub_account_retrieve_params.rb +20 -0
  95. data/lib/zavudev/models/sub_account_retrieve_response.rb +16 -0
  96. data/lib/zavudev/models/sub_account_update_params.rb +60 -0
  97. data/lib/zavudev/models/sub_account_update_response.rb +16 -0
  98. data/lib/zavudev/models/sub_accounts/api_key_create_params.rb +50 -0
  99. data/lib/zavudev/models/sub_accounts/api_key_create_response.rb +59 -0
  100. data/lib/zavudev/models/sub_accounts/api_key_list_params.rb +22 -0
  101. data/lib/zavudev/models/sub_accounts/api_key_list_response.rb +98 -0
  102. data/lib/zavudev/models/sub_accounts/api_key_revoke_params.rb +28 -0
  103. data/lib/zavudev/models/template.rb +13 -1
  104. data/lib/zavudev/models/template_create_params.rb +15 -2
  105. data/lib/zavudev/models/url_list_verified_params.rb +49 -0
  106. data/lib/zavudev/models/url_retrieve_details_params.rb +20 -0
  107. data/lib/zavudev/models/url_retrieve_details_response.rb +16 -0
  108. data/lib/zavudev/models/url_submit_for_verification_params.rb +22 -0
  109. data/lib/zavudev/models/url_submit_for_verification_response.rb +16 -0
  110. data/lib/zavudev/models/usage_retrieve_params.rb +14 -0
  111. data/lib/zavudev/models/usage_retrieve_response.rb +77 -0
  112. data/lib/zavudev/models/verified_url.rb +90 -0
  113. data/lib/zavudev/models.rb +62 -0
  114. data/lib/zavudev/resources/balance.rb +33 -0
  115. data/lib/zavudev/resources/broadcasts.rb +40 -0
  116. data/lib/zavudev/resources/contacts/channels.rb +136 -0
  117. data/lib/zavudev/resources/contacts.rb +78 -0
  118. data/lib/zavudev/resources/exports.rb +89 -0
  119. data/lib/zavudev/resources/invitations.rb +118 -0
  120. data/lib/zavudev/resources/number_10dlc/brands.rb +251 -0
  121. data/lib/zavudev/resources/number_10dlc/campaigns/phone_numbers.rb +90 -0
  122. data/lib/zavudev/resources/number_10dlc/campaigns.rb +225 -0
  123. data/lib/zavudev/resources/number_10dlc.rb +22 -0
  124. data/lib/zavudev/resources/plan.rb +33 -0
  125. data/lib/zavudev/resources/senders/whatsapp_sync.rb +79 -0
  126. data/lib/zavudev/resources/senders.rb +4 -0
  127. data/lib/zavudev/resources/sub_accounts/api_keys.rb +94 -0
  128. data/lib/zavudev/resources/sub_accounts.rb +175 -0
  129. data/lib/zavudev/resources/urls.rb +89 -0
  130. data/lib/zavudev/resources/usage.rb +33 -0
  131. data/lib/zavudev/version.rb +1 -1
  132. data/lib/zavudev.rb +114 -0
  133. data/rbi/zavudev/client.rbi +24 -0
  134. data/rbi/zavudev/models/balance_retrieve_params.rbi +27 -0
  135. data/rbi/zavudev/models/balance_retrieve_response.rbi +73 -0
  136. data/rbi/zavudev/models/broadcast_contact.rbi +9 -0
  137. data/rbi/zavudev/models/broadcast_content.rbi +17 -2
  138. data/rbi/zavudev/models/broadcast_escalate_review_params.rbi +38 -0
  139. data/rbi/zavudev/models/broadcast_escalate_review_response.rbi +31 -0
  140. data/rbi/zavudev/models/broadcast_retry_review_params.rbi +35 -0
  141. data/rbi/zavudev/models/broadcast_retry_review_response.rbi +31 -0
  142. data/rbi/zavudev/models/broadcasts/contact_add_params.rbi +23 -3
  143. data/rbi/zavudev/models/contact_create_params.rbi +191 -0
  144. data/rbi/zavudev/models/contact_dismiss_merge_suggestion_params.rbi +38 -0
  145. data/rbi/zavudev/models/contact_merge_params.rbi +51 -0
  146. data/rbi/zavudev/models/contacts/channel_add_params.rbi +142 -0
  147. data/rbi/zavudev/models/contacts/channel_add_response.rbi +39 -0
  148. data/rbi/zavudev/models/contacts/channel_remove_params.rbi +48 -0
  149. data/rbi/zavudev/models/contacts/channel_set_primary_params.rbi +48 -0
  150. data/rbi/zavudev/models/contacts/channel_set_primary_response.rbi +39 -0
  151. data/rbi/zavudev/models/contacts/channel_update_params.rbi +80 -0
  152. data/rbi/zavudev/models/contacts/channel_update_response.rbi +39 -0
  153. data/rbi/zavudev/models/data_export.rbi +151 -0
  154. data/rbi/zavudev/models/export_create_params.rbi +106 -0
  155. data/rbi/zavudev/models/export_create_response.rbi +31 -0
  156. data/rbi/zavudev/models/export_list_params.rbi +89 -0
  157. data/rbi/zavudev/models/export_retrieve_params.rbi +35 -0
  158. data/rbi/zavudev/models/export_retrieve_response.rbi +31 -0
  159. data/rbi/zavudev/models/invitation.rbi +149 -0
  160. data/rbi/zavudev/models/invitation_cancel_params.rbi +35 -0
  161. data/rbi/zavudev/models/invitation_cancel_response.rbi +33 -0
  162. data/rbi/zavudev/models/invitation_create_params.rbi +103 -0
  163. data/rbi/zavudev/models/invitation_create_response.rbi +33 -0
  164. data/rbi/zavudev/models/invitation_list_params.rbi +99 -0
  165. data/rbi/zavudev/models/invitation_retrieve_params.rbi +35 -0
  166. data/rbi/zavudev/models/invitation_retrieve_response.rbi +33 -0
  167. data/rbi/zavudev/models/message_content.rbi +145 -2
  168. data/rbi/zavudev/models/message_type.rbi +1 -0
  169. data/rbi/zavudev/models/number_10dlc/brand_create_params.rbi +228 -0
  170. data/rbi/zavudev/models/number_10dlc/brand_create_response.rbi +35 -0
  171. data/rbi/zavudev/models/number_10dlc/brand_delete_params.rbi +40 -0
  172. data/rbi/zavudev/models/number_10dlc/brand_list_params.rbi +54 -0
  173. data/rbi/zavudev/models/number_10dlc/brand_list_use_cases_params.rbi +32 -0
  174. data/rbi/zavudev/models/number_10dlc/brand_list_use_cases_response.rbi +82 -0
  175. data/rbi/zavudev/models/number_10dlc/brand_retrieve_params.rbi +40 -0
  176. data/rbi/zavudev/models/number_10dlc/brand_retrieve_response.rbi +35 -0
  177. data/rbi/zavudev/models/number_10dlc/brand_submit_params.rbi +40 -0
  178. data/rbi/zavudev/models/number_10dlc/brand_submit_response.rbi +35 -0
  179. data/rbi/zavudev/models/number_10dlc/brand_sync_status_params.rbi +40 -0
  180. data/rbi/zavudev/models/number_10dlc/brand_sync_status_response.rbi +35 -0
  181. data/rbi/zavudev/models/number_10dlc/brand_update_params.rbi +261 -0
  182. data/rbi/zavudev/models/number_10dlc/brand_update_response.rbi +35 -0
  183. data/rbi/zavudev/models/number_10dlc/campaign_create_params.rbi +173 -0
  184. data/rbi/zavudev/models/number_10dlc/campaign_create_response.rbi +39 -0
  185. data/rbi/zavudev/models/number_10dlc/campaign_delete_params.rbi +40 -0
  186. data/rbi/zavudev/models/number_10dlc/campaign_list_params.rbi +69 -0
  187. data/rbi/zavudev/models/number_10dlc/campaign_retrieve_params.rbi +40 -0
  188. data/rbi/zavudev/models/number_10dlc/campaign_retrieve_response.rbi +39 -0
  189. data/rbi/zavudev/models/number_10dlc/campaign_submit_params.rbi +40 -0
  190. data/rbi/zavudev/models/number_10dlc/campaign_submit_response.rbi +39 -0
  191. data/rbi/zavudev/models/number_10dlc/campaign_sync_status_params.rbi +40 -0
  192. data/rbi/zavudev/models/number_10dlc/campaign_sync_status_response.rbi +39 -0
  193. data/rbi/zavudev/models/number_10dlc/campaign_update_params.rbi +109 -0
  194. data/rbi/zavudev/models/number_10dlc/campaign_update_response.rbi +39 -0
  195. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rbi +56 -0
  196. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rbi +54 -0
  197. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rbi +42 -0
  198. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rbi +57 -0
  199. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rbi +50 -0
  200. data/rbi/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rbi +132 -0
  201. data/rbi/zavudev/models/number_10dlc/ten_dlc_brand.rbi +298 -0
  202. data/rbi/zavudev/models/number_10dlc/ten_dlc_campaign.rbi +269 -0
  203. data/rbi/zavudev/models/plan_retrieve_params.rbi +27 -0
  204. data/rbi/zavudev/models/plan_retrieve_response.rbi +306 -0
  205. data/rbi/zavudev/models/senders/whats_app_sync_contacts.rbi +104 -0
  206. data/rbi/zavudev/models/senders/whats_app_sync_history.rbi +117 -0
  207. data/rbi/zavudev/models/senders/whats_app_sync_status.rbi +126 -0
  208. data/rbi/zavudev/models/senders/whatsapp_sync_retrieve_params.rbi +40 -0
  209. data/rbi/zavudev/models/senders/whatsapp_sync_retrieve_response.rbi +39 -0
  210. data/rbi/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rbi +40 -0
  211. data/rbi/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rbi +50 -0
  212. data/rbi/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rbi +40 -0
  213. data/rbi/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rbi +50 -0
  214. data/rbi/zavudev/models/sub_account.rbi +111 -0
  215. data/rbi/zavudev/models/sub_account_create_params.rbi +76 -0
  216. data/rbi/zavudev/models/sub_account_create_response.rbi +33 -0
  217. data/rbi/zavudev/models/sub_account_deactivate_params.rbi +35 -0
  218. data/rbi/zavudev/models/sub_account_deactivate_response.rbi +36 -0
  219. data/rbi/zavudev/models/sub_account_get_balance_params.rbi +35 -0
  220. data/rbi/zavudev/models/sub_account_get_balance_response.rbi +73 -0
  221. data/rbi/zavudev/models/sub_account_list_params.rbi +49 -0
  222. data/rbi/zavudev/models/sub_account_retrieve_params.rbi +35 -0
  223. data/rbi/zavudev/models/sub_account_retrieve_response.rbi +33 -0
  224. data/rbi/zavudev/models/sub_account_update_params.rbi +113 -0
  225. data/rbi/zavudev/models/sub_account_update_response.rbi +33 -0
  226. data/rbi/zavudev/models/sub_accounts/api_key_create_params.rbi +117 -0
  227. data/rbi/zavudev/models/sub_accounts/api_key_create_response.rbi +136 -0
  228. data/rbi/zavudev/models/sub_accounts/api_key_list_params.rbi +40 -0
  229. data/rbi/zavudev/models/sub_accounts/api_key_list_response.rbi +177 -0
  230. data/rbi/zavudev/models/sub_accounts/api_key_revoke_params.rbi +48 -0
  231. data/rbi/zavudev/models/template.rbi +13 -0
  232. data/rbi/zavudev/models/template_create_params.rbi +21 -0
  233. data/rbi/zavudev/models/url_list_verified_params.rbi +97 -0
  234. data/rbi/zavudev/models/url_retrieve_details_params.rbi +35 -0
  235. data/rbi/zavudev/models/url_retrieve_details_response.rbi +31 -0
  236. data/rbi/zavudev/models/url_submit_for_verification_params.rbi +43 -0
  237. data/rbi/zavudev/models/url_submit_for_verification_response.rbi +31 -0
  238. data/rbi/zavudev/models/usage_retrieve_params.rbi +27 -0
  239. data/rbi/zavudev/models/usage_retrieve_response.rbi +150 -0
  240. data/rbi/zavudev/models/verified_url.rbi +133 -0
  241. data/rbi/zavudev/models.rbi +64 -0
  242. data/rbi/zavudev/resources/balance.rbi +22 -0
  243. data/rbi/zavudev/resources/broadcasts.rbi +22 -0
  244. data/rbi/zavudev/resources/contacts/channels.rbi +100 -0
  245. data/rbi/zavudev/resources/contacts.rbi +52 -0
  246. data/rbi/zavudev/resources/exports.rbi +62 -0
  247. data/rbi/zavudev/resources/invitations.rbi +83 -0
  248. data/rbi/zavudev/resources/number_10dlc/brands.rbi +198 -0
  249. data/rbi/zavudev/resources/number_10dlc/campaigns/phone_numbers.rbi +69 -0
  250. data/rbi/zavudev/resources/number_10dlc/campaigns.rbi +177 -0
  251. data/rbi/zavudev/resources/number_10dlc.rbi +18 -0
  252. data/rbi/zavudev/resources/plan.rbi +22 -0
  253. data/rbi/zavudev/resources/senders/whatsapp_sync.rbi +54 -0
  254. data/rbi/zavudev/resources/senders.rbi +3 -0
  255. data/rbi/zavudev/resources/sub_accounts/api_keys.rbi +69 -0
  256. data/rbi/zavudev/resources/sub_accounts.rbi +125 -0
  257. data/rbi/zavudev/resources/urls.rbi +60 -0
  258. data/rbi/zavudev/resources/usage.rbi +22 -0
  259. data/sig/zavudev/client.rbs +16 -0
  260. data/sig/zavudev/models/balance_retrieve_params.rbs +15 -0
  261. data/sig/zavudev/models/balance_retrieve_response.rbs +42 -0
  262. data/sig/zavudev/models/broadcast_contact.rbs +9 -0
  263. data/sig/zavudev/models/broadcast_content.rbs +9 -0
  264. data/sig/zavudev/models/broadcast_escalate_review_params.rbs +23 -0
  265. data/sig/zavudev/models/broadcast_escalate_review_response.rbs +13 -0
  266. data/sig/zavudev/models/broadcast_retry_review_params.rbs +23 -0
  267. data/sig/zavudev/models/broadcast_retry_review_response.rbs +13 -0
  268. data/sig/zavudev/models/broadcasts/contact_add_params.rbs +13 -1
  269. data/sig/zavudev/models/contact_create_params.rbs +97 -0
  270. data/sig/zavudev/models/contact_dismiss_merge_suggestion_params.rbs +23 -0
  271. data/sig/zavudev/models/contact_merge_params.rbs +28 -0
  272. data/sig/zavudev/models/contacts/channel_add_params.rbs +73 -0
  273. data/sig/zavudev/models/contacts/channel_add_response.rbs +15 -0
  274. data/sig/zavudev/models/contacts/channel_remove_params.rbs +30 -0
  275. data/sig/zavudev/models/contacts/channel_set_primary_params.rbs +30 -0
  276. data/sig/zavudev/models/contacts/channel_set_primary_response.rbs +15 -0
  277. data/sig/zavudev/models/contacts/channel_update_params.rbs +52 -0
  278. data/sig/zavudev/models/contacts/channel_update_response.rbs +15 -0
  279. data/sig/zavudev/models/data_export.rbs +102 -0
  280. data/sig/zavudev/models/export_create_params.rbs +59 -0
  281. data/sig/zavudev/models/export_create_response.rbs +13 -0
  282. data/sig/zavudev/models/export_list_params.rbs +57 -0
  283. data/sig/zavudev/models/export_retrieve_params.rbs +23 -0
  284. data/sig/zavudev/models/export_retrieve_response.rbs +13 -0
  285. data/sig/zavudev/models/invitation.rbs +104 -0
  286. data/sig/zavudev/models/invitation_cancel_params.rbs +23 -0
  287. data/sig/zavudev/models/invitation_cancel_response.rbs +13 -0
  288. data/sig/zavudev/models/invitation_create_params.rbs +63 -0
  289. data/sig/zavudev/models/invitation_create_response.rbs +13 -0
  290. data/sig/zavudev/models/invitation_list_params.rbs +58 -0
  291. data/sig/zavudev/models/invitation_retrieve_params.rbs +23 -0
  292. data/sig/zavudev/models/invitation_retrieve_response.rbs +13 -0
  293. data/sig/zavudev/models/message_content.rbs +66 -0
  294. data/sig/zavudev/models/message_type.rbs +2 -0
  295. data/sig/zavudev/models/number_10dlc/brand_create_params.rbs +141 -0
  296. data/sig/zavudev/models/number_10dlc/brand_create_response.rbs +15 -0
  297. data/sig/zavudev/models/number_10dlc/brand_delete_params.rbs +25 -0
  298. data/sig/zavudev/models/number_10dlc/brand_list_params.rbs +34 -0
  299. data/sig/zavudev/models/number_10dlc/brand_list_use_cases_params.rbs +17 -0
  300. data/sig/zavudev/models/number_10dlc/brand_list_use_cases_response.rbs +38 -0
  301. data/sig/zavudev/models/number_10dlc/brand_retrieve_params.rbs +25 -0
  302. data/sig/zavudev/models/number_10dlc/brand_retrieve_response.rbs +16 -0
  303. data/sig/zavudev/models/number_10dlc/brand_submit_params.rbs +25 -0
  304. data/sig/zavudev/models/number_10dlc/brand_submit_response.rbs +15 -0
  305. data/sig/zavudev/models/number_10dlc/brand_sync_status_params.rbs +25 -0
  306. data/sig/zavudev/models/number_10dlc/brand_sync_status_response.rbs +16 -0
  307. data/sig/zavudev/models/number_10dlc/brand_update_params.rbs +168 -0
  308. data/sig/zavudev/models/number_10dlc/brand_update_response.rbs +15 -0
  309. data/sig/zavudev/models/number_10dlc/campaign_create_params.rbs +128 -0
  310. data/sig/zavudev/models/number_10dlc/campaign_create_response.rbs +16 -0
  311. data/sig/zavudev/models/number_10dlc/campaign_delete_params.rbs +25 -0
  312. data/sig/zavudev/models/number_10dlc/campaign_list_params.rbs +40 -0
  313. data/sig/zavudev/models/number_10dlc/campaign_retrieve_params.rbs +25 -0
  314. data/sig/zavudev/models/number_10dlc/campaign_retrieve_response.rbs +16 -0
  315. data/sig/zavudev/models/number_10dlc/campaign_submit_params.rbs +25 -0
  316. data/sig/zavudev/models/number_10dlc/campaign_submit_response.rbs +16 -0
  317. data/sig/zavudev/models/number_10dlc/campaign_sync_status_params.rbs +25 -0
  318. data/sig/zavudev/models/number_10dlc/campaign_sync_status_response.rbs +16 -0
  319. data/sig/zavudev/models/number_10dlc/campaign_update_params.rbs +77 -0
  320. data/sig/zavudev/models/number_10dlc/campaign_update_response.rbs +16 -0
  321. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rbs +32 -0
  322. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rbs +24 -0
  323. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rbs +27 -0
  324. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rbs +29 -0
  325. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rbs +32 -0
  326. data/sig/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rbs +71 -0
  327. data/sig/zavudev/models/number_10dlc/ten_dlc_brand.rbs +179 -0
  328. data/sig/zavudev/models/number_10dlc/ten_dlc_campaign.rbs +175 -0
  329. data/sig/zavudev/models/plan_retrieve_params.rbs +15 -0
  330. data/sig/zavudev/models/plan_retrieve_response.rbs +158 -0
  331. data/sig/zavudev/models/senders/whats_app_sync_contacts.rbs +45 -0
  332. data/sig/zavudev/models/senders/whats_app_sync_history.rbs +52 -0
  333. data/sig/zavudev/models/senders/whats_app_sync_status.rbs +56 -0
  334. data/sig/zavudev/models/senders/whatsapp_sync_retrieve_params.rbs +25 -0
  335. data/sig/zavudev/models/senders/whatsapp_sync_retrieve_response.rbs +16 -0
  336. data/sig/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rbs +25 -0
  337. data/sig/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rbs +24 -0
  338. data/sig/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rbs +25 -0
  339. data/sig/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rbs +24 -0
  340. data/sig/zavudev/models/sub_account.rbs +73 -0
  341. data/sig/zavudev/models/sub_account_create_params.rbs +47 -0
  342. data/sig/zavudev/models/sub_account_create_response.rbs +13 -0
  343. data/sig/zavudev/models/sub_account_deactivate_params.rbs +20 -0
  344. data/sig/zavudev/models/sub_account_deactivate_response.rbs +16 -0
  345. data/sig/zavudev/models/sub_account_get_balance_params.rbs +20 -0
  346. data/sig/zavudev/models/sub_account_get_balance_response.rbs +42 -0
  347. data/sig/zavudev/models/sub_account_list_params.rbs +32 -0
  348. data/sig/zavudev/models/sub_account_retrieve_params.rbs +20 -0
  349. data/sig/zavudev/models/sub_account_retrieve_response.rbs +13 -0
  350. data/sig/zavudev/models/sub_account_update_params.rbs +72 -0
  351. data/sig/zavudev/models/sub_account_update_response.rbs +13 -0
  352. data/sig/zavudev/models/sub_accounts/api_key_create_params.rbs +60 -0
  353. data/sig/zavudev/models/sub_accounts/api_key_create_response.rbs +63 -0
  354. data/sig/zavudev/models/sub_accounts/api_key_list_params.rbs +22 -0
  355. data/sig/zavudev/models/sub_accounts/api_key_list_response.rbs +94 -0
  356. data/sig/zavudev/models/sub_accounts/api_key_revoke_params.rbs +30 -0
  357. data/sig/zavudev/models/template.rbs +7 -0
  358. data/sig/zavudev/models/template_create_params.rbs +7 -0
  359. data/sig/zavudev/models/url_list_verified_params.rbs +57 -0
  360. data/sig/zavudev/models/url_retrieve_details_params.rbs +23 -0
  361. data/sig/zavudev/models/url_retrieve_details_response.rbs +13 -0
  362. data/sig/zavudev/models/url_submit_for_verification_params.rbs +20 -0
  363. data/sig/zavudev/models/url_submit_for_verification_response.rbs +13 -0
  364. data/sig/zavudev/models/usage_retrieve_params.rbs +15 -0
  365. data/sig/zavudev/models/usage_retrieve_response.rbs +69 -0
  366. data/sig/zavudev/models/verified_url.rbs +80 -0
  367. data/sig/zavudev/models.rbs +62 -0
  368. data/sig/zavudev/resources/balance.rbs +11 -0
  369. data/sig/zavudev/resources/broadcasts.rbs +10 -0
  370. data/sig/zavudev/resources/contacts/channels.rbs +40 -0
  371. data/sig/zavudev/resources/contacts.rbs +20 -0
  372. data/sig/zavudev/resources/exports.rbs +26 -0
  373. data/sig/zavudev/resources/invitations.rbs +34 -0
  374. data/sig/zavudev/resources/number_10dlc/brands.rbs +82 -0
  375. data/sig/zavudev/resources/number_10dlc/campaigns/phone_numbers.rbs +28 -0
  376. data/sig/zavudev/resources/number_10dlc/campaigns.rbs +73 -0
  377. data/sig/zavudev/resources/number_10dlc.rbs +11 -0
  378. data/sig/zavudev/resources/plan.rbs +11 -0
  379. data/sig/zavudev/resources/senders/whatsapp_sync.rbs +24 -0
  380. data/sig/zavudev/resources/senders.rbs +2 -0
  381. data/sig/zavudev/resources/sub_accounts/api_keys.rbs +28 -0
  382. data/sig/zavudev/resources/sub_accounts.rbs +48 -0
  383. data/sig/zavudev/resources/urls.rbs +24 -0
  384. data/sig/zavudev/resources/usage.rbs +11 -0
  385. metadata +344 -2
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Models
5
+ # @see Zavudev::Resources::Usage#retrieve
6
+ class UsageRetrieveParams < Zavudev::Internal::Type::BaseModel
7
+ extend Zavudev::Internal::Type::RequestParameters::Converter
8
+ include Zavudev::Internal::Type::RequestParameters
9
+
10
+ # @!method initialize(request_options: {})
11
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Models
5
+ # @see Zavudev::Resources::Usage#retrieve
6
+ class UsageRetrieveResponse < Zavudev::Internal::Type::BaseModel
7
+ # @!attribute emails_sent
8
+ # Emails sent this month.
9
+ #
10
+ # @return [Integer]
11
+ required :emails_sent, Integer, api_name: :emailsSent
12
+
13
+ # @!attribute limits
14
+ #
15
+ # @return [Zavudev::Models::UsageRetrieveResponse::Limits]
16
+ required :limits, -> { Zavudev::Models::UsageRetrieveResponse::Limits }
17
+
18
+ # @!attribute messages_a2_p
19
+ # A2P messages sent this month (WhatsApp replies + Telegram).
20
+ #
21
+ # @return [Integer]
22
+ required :messages_a2_p, Integer, api_name: :messagesA2P
23
+
24
+ # @!attribute month_key
25
+ # Current month in YYYY-MM format.
26
+ #
27
+ # @return [String]
28
+ required :month_key, String, api_name: :monthKey
29
+
30
+ # @!attribute tier
31
+ #
32
+ # @return [Symbol, Zavudev::Models::UsageRetrieveResponse::Tier]
33
+ required :tier, enum: -> { Zavudev::Models::UsageRetrieveResponse::Tier }
34
+
35
+ # @!method initialize(emails_sent:, limits:, messages_a2_p:, month_key:, tier:)
36
+ # @param emails_sent [Integer] Emails sent this month.
37
+ #
38
+ # @param limits [Zavudev::Models::UsageRetrieveResponse::Limits]
39
+ #
40
+ # @param messages_a2_p [Integer] A2P messages sent this month (WhatsApp replies + Telegram).
41
+ #
42
+ # @param month_key [String] Current month in YYYY-MM format.
43
+ #
44
+ # @param tier [Symbol, Zavudev::Models::UsageRetrieveResponse::Tier]
45
+
46
+ # @see Zavudev::Models::UsageRetrieveResponse#limits
47
+ class Limits < Zavudev::Internal::Type::BaseModel
48
+ # @!attribute emails
49
+ #
50
+ # @return [Integer, nil]
51
+ optional :emails, Integer
52
+
53
+ # @!attribute messages_a2_p
54
+ #
55
+ # @return [Integer, nil]
56
+ optional :messages_a2_p, Integer, api_name: :messagesA2P
57
+
58
+ # @!method initialize(emails: nil, messages_a2_p: nil)
59
+ # @param emails [Integer]
60
+ # @param messages_a2_p [Integer]
61
+ end
62
+
63
+ # @see Zavudev::Models::UsageRetrieveResponse#tier
64
+ module Tier
65
+ extend Zavudev::Internal::Type::Enum
66
+
67
+ FREE = :free
68
+ PRO = :pro
69
+ SCALE = :scale
70
+ ENTERPRISE = :enterprise
71
+
72
+ # @!method self.values
73
+ # @return [Array<Symbol>]
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Models
5
+ # @see Zavudev::Resources::URLs#list_verified
6
+ class VerifiedURL < Zavudev::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute created_at
13
+ #
14
+ # @return [Time]
15
+ required :created_at, Time, api_name: :createdAt
16
+
17
+ # @!attribute domain
18
+ # Domain extracted from the URL.
19
+ #
20
+ # @return [String]
21
+ required :domain, String
22
+
23
+ # @!attribute status
24
+ # Status of a verified URL.
25
+ #
26
+ # @return [Symbol, Zavudev::Models::VerifiedURL::Status]
27
+ required :status, enum: -> { Zavudev::VerifiedURL::Status }
28
+
29
+ # @!attribute url
30
+ # The verified URL.
31
+ #
32
+ # @return [String]
33
+ required :url, String
34
+
35
+ # @!attribute approval_type
36
+ # How the URL was approved or rejected.
37
+ #
38
+ # @return [Symbol, Zavudev::Models::VerifiedURL::ApprovalType, nil]
39
+ optional :approval_type, enum: -> { Zavudev::VerifiedURL::ApprovalType }, api_name: :approvalType
40
+
41
+ # @!attribute updated_at
42
+ #
43
+ # @return [Time, nil]
44
+ optional :updated_at, Time, api_name: :updatedAt
45
+
46
+ # @!method initialize(id:, created_at:, domain:, status:, url:, approval_type: nil, updated_at: nil)
47
+ # @param id [String]
48
+ #
49
+ # @param created_at [Time]
50
+ #
51
+ # @param domain [String] Domain extracted from the URL.
52
+ #
53
+ # @param status [Symbol, Zavudev::Models::VerifiedURL::Status] Status of a verified URL.
54
+ #
55
+ # @param url [String] The verified URL.
56
+ #
57
+ # @param approval_type [Symbol, Zavudev::Models::VerifiedURL::ApprovalType] How the URL was approved or rejected.
58
+ #
59
+ # @param updated_at [Time]
60
+
61
+ # Status of a verified URL.
62
+ #
63
+ # @see Zavudev::Models::VerifiedURL#status
64
+ module Status
65
+ extend Zavudev::Internal::Type::Enum
66
+
67
+ PENDING = :pending
68
+ APPROVED = :approved
69
+ REJECTED = :rejected
70
+ MALICIOUS = :malicious
71
+
72
+ # @!method self.values
73
+ # @return [Array<Symbol>]
74
+ end
75
+
76
+ # How the URL was approved or rejected.
77
+ #
78
+ # @see Zavudev::Models::VerifiedURL#approval_type
79
+ module ApprovalType
80
+ extend Zavudev::Internal::Type::Enum
81
+
82
+ MANUAL = :manual
83
+ AUTO_WEB_RISK = :auto_web_risk
84
+
85
+ # @!method self.values
86
+ # @return [Array<Symbol>]
87
+ end
88
+ end
89
+ end
90
+ end
@@ -53,6 +53,8 @@ module Zavudev
53
53
 
54
54
  AvailablePhoneNumber = Zavudev::Models::AvailablePhoneNumber
55
55
 
56
+ BalanceRetrieveParams = Zavudev::Models::BalanceRetrieveParams
57
+
56
58
  Broadcast = Zavudev::Models::Broadcast
57
59
 
58
60
  BroadcastCancelParams = Zavudev::Models::BroadcastCancelParams
@@ -69,6 +71,8 @@ module Zavudev
69
71
 
70
72
  BroadcastDeleteParams = Zavudev::Models::BroadcastDeleteParams
71
73
 
74
+ BroadcastEscalateReviewParams = Zavudev::Models::BroadcastEscalateReviewParams
75
+
72
76
  BroadcastListParams = Zavudev::Models::BroadcastListParams
73
77
 
74
78
  BroadcastMessageType = Zavudev::Models::BroadcastMessageType
@@ -81,6 +85,8 @@ module Zavudev
81
85
 
82
86
  BroadcastRetrieveParams = Zavudev::Models::BroadcastRetrieveParams
83
87
 
88
+ BroadcastRetryReviewParams = Zavudev::Models::BroadcastRetryReviewParams
89
+
84
90
  Broadcasts = Zavudev::Models::Broadcasts
85
91
 
86
92
  BroadcastSendParams = Zavudev::Models::BroadcastSendParams
@@ -95,16 +101,42 @@ module Zavudev
95
101
 
96
102
  ContactChannel = Zavudev::Models::ContactChannel
97
103
 
104
+ ContactCreateParams = Zavudev::Models::ContactCreateParams
105
+
106
+ ContactDismissMergeSuggestionParams = Zavudev::Models::ContactDismissMergeSuggestionParams
107
+
98
108
  ContactListParams = Zavudev::Models::ContactListParams
99
109
 
110
+ ContactMergeParams = Zavudev::Models::ContactMergeParams
111
+
100
112
  ContactRetrieveByPhoneParams = Zavudev::Models::ContactRetrieveByPhoneParams
101
113
 
102
114
  ContactRetrieveParams = Zavudev::Models::ContactRetrieveParams
103
115
 
116
+ Contacts = Zavudev::Models::Contacts
117
+
104
118
  ContactUpdateParams = Zavudev::Models::ContactUpdateParams
105
119
 
120
+ DataExport = Zavudev::Models::DataExport
121
+
122
+ ExportCreateParams = Zavudev::Models::ExportCreateParams
123
+
124
+ ExportListParams = Zavudev::Models::ExportListParams
125
+
126
+ ExportRetrieveParams = Zavudev::Models::ExportRetrieveParams
127
+
106
128
  IntrospectValidatePhoneParams = Zavudev::Models::IntrospectValidatePhoneParams
107
129
 
130
+ Invitation = Zavudev::Models::Invitation
131
+
132
+ InvitationCancelParams = Zavudev::Models::InvitationCancelParams
133
+
134
+ InvitationCreateParams = Zavudev::Models::InvitationCreateParams
135
+
136
+ InvitationListParams = Zavudev::Models::InvitationListParams
137
+
138
+ InvitationRetrieveParams = Zavudev::Models::InvitationRetrieveParams
139
+
108
140
  LineType = Zavudev::Models::LineType
109
141
 
110
142
  Message = Zavudev::Models::Message
@@ -125,6 +157,8 @@ module Zavudev
125
157
 
126
158
  MessageType = Zavudev::Models::MessageType
127
159
 
160
+ Number10dlc = Zavudev::Models::Number10dlc
161
+
128
162
  OwnedPhoneNumber = Zavudev::Models::OwnedPhoneNumber
129
163
 
130
164
  OwnedPhoneNumberPricing = Zavudev::Models::OwnedPhoneNumberPricing
@@ -151,6 +185,8 @@ module Zavudev
151
185
 
152
186
  PhoneNumberUpdateParams = Zavudev::Models::PhoneNumberUpdateParams
153
187
 
188
+ PlanRetrieveParams = Zavudev::Models::PlanRetrieveParams
189
+
154
190
  RegulatoryDocument = Zavudev::Models::RegulatoryDocument
155
191
 
156
192
  RegulatoryDocumentCreateParams = Zavudev::Models::RegulatoryDocumentCreateParams
@@ -195,6 +231,22 @@ module Zavudev
195
231
 
196
232
  SenderWebhook = Zavudev::Models::SenderWebhook
197
233
 
234
+ SubAccount = Zavudev::Models::SubAccount
235
+
236
+ SubAccountCreateParams = Zavudev::Models::SubAccountCreateParams
237
+
238
+ SubAccountDeactivateParams = Zavudev::Models::SubAccountDeactivateParams
239
+
240
+ SubAccountGetBalanceParams = Zavudev::Models::SubAccountGetBalanceParams
241
+
242
+ SubAccountListParams = Zavudev::Models::SubAccountListParams
243
+
244
+ SubAccountRetrieveParams = Zavudev::Models::SubAccountRetrieveParams
245
+
246
+ SubAccounts = Zavudev::Models::SubAccounts
247
+
248
+ SubAccountUpdateParams = Zavudev::Models::SubAccountUpdateParams
249
+
198
250
  Template = Zavudev::Models::Template
199
251
 
200
252
  TemplateCreateParams = Zavudev::Models::TemplateCreateParams
@@ -207,6 +259,16 @@ module Zavudev
207
259
 
208
260
  TemplateSubmitParams = Zavudev::Models::TemplateSubmitParams
209
261
 
262
+ URLListVerifiedParams = Zavudev::Models::URLListVerifiedParams
263
+
264
+ URLRetrieveDetailsParams = Zavudev::Models::URLRetrieveDetailsParams
265
+
266
+ URLSubmitForVerificationParams = Zavudev::Models::URLSubmitForVerificationParams
267
+
268
+ UsageRetrieveParams = Zavudev::Models::UsageRetrieveParams
269
+
270
+ VerifiedURL = Zavudev::Models::VerifiedURL
271
+
210
272
  WebhookEvent = Zavudev::Models::WebhookEvent
211
273
 
212
274
  WebhookSecretResponse = Zavudev::Models::WebhookSecretResponse
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Balance
6
+ # Get balance for the API key's team. If the API key belongs to a sub-account,
7
+ # also includes the sub-account's total spending and credit limit.
8
+ #
9
+ # @overload retrieve(request_options: {})
10
+ #
11
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
12
+ #
13
+ # @return [Zavudev::Models::BalanceRetrieveResponse]
14
+ #
15
+ # @see Zavudev::Models::BalanceRetrieveParams
16
+ def retrieve(params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: "v1/balance",
20
+ model: Zavudev::Models::BalanceRetrieveResponse,
21
+ options: params[:request_options]
22
+ )
23
+ end
24
+
25
+ # @api private
26
+ #
27
+ # @param client [Zavudev::Client]
28
+ def initialize(client:)
29
+ @client = client
30
+ end
31
+ end
32
+ end
33
+ end
@@ -168,6 +168,26 @@ module Zavudev
168
168
  )
169
169
  end
170
170
 
171
+ # Request manual review by the Zavu team for a rejected broadcast. Use this after
172
+ # automated review rejection if you believe the content is legitimate.
173
+ #
174
+ # @overload escalate_review(broadcast_id, request_options: {})
175
+ #
176
+ # @param broadcast_id [String]
177
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
178
+ #
179
+ # @return [Zavudev::Models::BroadcastEscalateReviewResponse]
180
+ #
181
+ # @see Zavudev::Models::BroadcastEscalateReviewParams
182
+ def escalate_review(broadcast_id, params = {})
183
+ @client.request(
184
+ method: :post,
185
+ path: ["v1/broadcasts/%1$s/escalate", broadcast_id],
186
+ model: Zavudev::Models::BroadcastEscalateReviewResponse,
187
+ options: params[:request_options]
188
+ )
189
+ end
190
+
171
191
  # Get real-time progress of a broadcast including delivery counts and estimated
172
192
  # completion time.
173
193
  #
@@ -213,6 +233,26 @@ module Zavudev
213
233
  )
214
234
  end
215
235
 
236
+ # Resubmit a rejected broadcast for AI review after editing content. Maximum 3
237
+ # review attempts allowed per broadcast.
238
+ #
239
+ # @overload retry_review(broadcast_id, request_options: {})
240
+ #
241
+ # @param broadcast_id [String]
242
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
243
+ #
244
+ # @return [Zavudev::Models::BroadcastRetryReviewResponse]
245
+ #
246
+ # @see Zavudev::Models::BroadcastRetryReviewParams
247
+ def retry_review(broadcast_id, params = {})
248
+ @client.request(
249
+ method: :post,
250
+ path: ["v1/broadcasts/%1$s/retry-review", broadcast_id],
251
+ model: Zavudev::Models::BroadcastRetryReviewResponse,
252
+ options: params[:request_options]
253
+ )
254
+ end
255
+
216
256
  # Start sending the broadcast immediately or schedule for later. Broadcasts go
217
257
  # through automated AI content review before sending. If the review passes, the
218
258
  # broadcast proceeds. If rejected, use PATCH to edit content, then call POST
@@ -0,0 +1,136 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Contacts
6
+ class Channels
7
+ # Update a contact's channel properties.
8
+ #
9
+ # @overload update(channel_id, contact_id:, label: nil, metadata: nil, verified: nil, request_options: {})
10
+ #
11
+ # @param channel_id [String] Path param: Channel ID.
12
+ #
13
+ # @param contact_id [String] Path param
14
+ #
15
+ # @param label [String, nil] Body param: Optional label for the channel. Set to null to clear.
16
+ #
17
+ # @param metadata [Hash{Symbol=>String}] Body param
18
+ #
19
+ # @param verified [Boolean] Body param: Whether the channel is verified.
20
+ #
21
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
22
+ #
23
+ # @return [Zavudev::Models::Contacts::ChannelUpdateResponse]
24
+ #
25
+ # @see Zavudev::Models::Contacts::ChannelUpdateParams
26
+ def update(channel_id, params)
27
+ parsed, options = Zavudev::Contacts::ChannelUpdateParams.dump_request(params)
28
+ contact_id =
29
+ parsed.delete(:contact_id) do
30
+ raise ArgumentError.new("missing required path argument #{_1}")
31
+ end
32
+ @client.request(
33
+ method: :patch,
34
+ path: ["v1/contacts/%1$s/channels/%2$s", contact_id, channel_id],
35
+ body: parsed,
36
+ model: Zavudev::Models::Contacts::ChannelUpdateResponse,
37
+ options: options
38
+ )
39
+ end
40
+
41
+ # Add a new communication channel to an existing contact.
42
+ #
43
+ # @overload add(contact_id, channel:, identifier:, country_code: nil, is_primary: nil, label: nil, request_options: {})
44
+ #
45
+ # @param contact_id [String]
46
+ #
47
+ # @param channel [Symbol, Zavudev::Models::Contacts::ChannelAddParams::Channel] Channel type.
48
+ #
49
+ # @param identifier [String] Channel identifier (phone number in E.164 format or email address).
50
+ #
51
+ # @param country_code [String] ISO country code for phone numbers.
52
+ #
53
+ # @param is_primary [Boolean] Whether this should be the primary channel for its type.
54
+ #
55
+ # @param label [String] Optional label for the channel.
56
+ #
57
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
58
+ #
59
+ # @return [Zavudev::Models::Contacts::ChannelAddResponse]
60
+ #
61
+ # @see Zavudev::Models::Contacts::ChannelAddParams
62
+ def add(contact_id, params)
63
+ parsed, options = Zavudev::Contacts::ChannelAddParams.dump_request(params)
64
+ @client.request(
65
+ method: :post,
66
+ path: ["v1/contacts/%1$s/channels", contact_id],
67
+ body: parsed,
68
+ model: Zavudev::Models::Contacts::ChannelAddResponse,
69
+ options: options
70
+ )
71
+ end
72
+
73
+ # Remove a communication channel from a contact. Cannot remove the last channel.
74
+ #
75
+ # @overload remove(channel_id, contact_id:, request_options: {})
76
+ #
77
+ # @param channel_id [String] Channel ID.
78
+ #
79
+ # @param contact_id [String]
80
+ #
81
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
82
+ #
83
+ # @return [nil]
84
+ #
85
+ # @see Zavudev::Models::Contacts::ChannelRemoveParams
86
+ def remove(channel_id, params)
87
+ parsed, options = Zavudev::Contacts::ChannelRemoveParams.dump_request(params)
88
+ contact_id =
89
+ parsed.delete(:contact_id) do
90
+ raise ArgumentError.new("missing required path argument #{_1}")
91
+ end
92
+ @client.request(
93
+ method: :delete,
94
+ path: ["v1/contacts/%1$s/channels/%2$s", contact_id, channel_id],
95
+ model: NilClass,
96
+ options: options
97
+ )
98
+ end
99
+
100
+ # Set a channel as the primary channel for its type.
101
+ #
102
+ # @overload set_primary(channel_id, contact_id:, request_options: {})
103
+ #
104
+ # @param channel_id [String] Channel ID.
105
+ #
106
+ # @param contact_id [String]
107
+ #
108
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
109
+ #
110
+ # @return [Zavudev::Models::Contacts::ChannelSetPrimaryResponse]
111
+ #
112
+ # @see Zavudev::Models::Contacts::ChannelSetPrimaryParams
113
+ def set_primary(channel_id, params)
114
+ parsed, options = Zavudev::Contacts::ChannelSetPrimaryParams.dump_request(params)
115
+ contact_id =
116
+ parsed.delete(:contact_id) do
117
+ raise ArgumentError.new("missing required path argument #{_1}")
118
+ end
119
+ @client.request(
120
+ method: :post,
121
+ path: ["v1/contacts/%1$s/channels/%2$s/primary", contact_id, channel_id],
122
+ model: Zavudev::Models::Contacts::ChannelSetPrimaryResponse,
123
+ options: options
124
+ )
125
+ end
126
+
127
+ # @api private
128
+ #
129
+ # @param client [Zavudev::Client]
130
+ def initialize(client:)
131
+ @client = client
132
+ end
133
+ end
134
+ end
135
+ end
136
+ end
@@ -3,6 +3,35 @@
3
3
  module Zavudev
4
4
  module Resources
5
5
  class Contacts
6
+ # @return [Zavudev::Resources::Contacts::Channels]
7
+ attr_reader :channels
8
+
9
+ # Create a new contact with one or more communication channels.
10
+ #
11
+ # @overload create(channels:, display_name: nil, metadata: nil, request_options: {})
12
+ #
13
+ # @param channels [Array<Zavudev::Models::ContactCreateParams::Channel>] Communication channels for the contact.
14
+ #
15
+ # @param display_name [String] Display name for the contact.
16
+ #
17
+ # @param metadata [Hash{Symbol=>String}] Arbitrary metadata to associate with the contact.
18
+ #
19
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [Zavudev::Models::Contact]
22
+ #
23
+ # @see Zavudev::Models::ContactCreateParams
24
+ def create(params)
25
+ parsed, options = Zavudev::ContactCreateParams.dump_request(params)
26
+ @client.request(
27
+ method: :post,
28
+ path: "v1/contacts",
29
+ body: parsed,
30
+ model: Zavudev::Contact,
31
+ options: options
32
+ )
33
+ end
34
+
6
35
  # Get contact
7
36
  #
8
37
  # @overload retrieve(contact_id, request_options: {})
@@ -73,6 +102,54 @@ module Zavudev
73
102
  )
74
103
  end
75
104
 
105
+ # Dismiss the merge suggestion for a contact.
106
+ #
107
+ # @overload dismiss_merge_suggestion(contact_id, request_options: {})
108
+ #
109
+ # @param contact_id [String]
110
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
111
+ #
112
+ # @return [nil]
113
+ #
114
+ # @see Zavudev::Models::ContactDismissMergeSuggestionParams
115
+ def dismiss_merge_suggestion(contact_id, params = {})
116
+ @client.request(
117
+ method: :delete,
118
+ path: ["v1/contacts/%1$s/merge-suggestion", contact_id],
119
+ model: NilClass,
120
+ options: params[:request_options]
121
+ )
122
+ end
123
+
124
+ # Some parameter documentations has been truncated, see
125
+ # {Zavudev::Models::ContactMergeParams} for more details.
126
+ #
127
+ # Merge a source contact into this contact. All channels from the source contact
128
+ # will be moved to the target contact, and the source contact will be marked as
129
+ # merged.
130
+ #
131
+ # @overload merge(contact_id, source_contact_id:, request_options: {})
132
+ #
133
+ # @param contact_id [String]
134
+ #
135
+ # @param source_contact_id [String] ID of the contact to merge into the target contact. The source contact will be m
136
+ #
137
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
138
+ #
139
+ # @return [Zavudev::Models::Contact]
140
+ #
141
+ # @see Zavudev::Models::ContactMergeParams
142
+ def merge(contact_id, params)
143
+ parsed, options = Zavudev::ContactMergeParams.dump_request(params)
144
+ @client.request(
145
+ method: :post,
146
+ path: ["v1/contacts/%1$s/merge", contact_id],
147
+ body: parsed,
148
+ model: Zavudev::Contact,
149
+ options: options
150
+ )
151
+ end
152
+
76
153
  # Get contact by phone number
77
154
  #
78
155
  # @overload retrieve_by_phone(phone_number, request_options: {})
@@ -98,6 +175,7 @@ module Zavudev
98
175
  # @param client [Zavudev::Client]
99
176
  def initialize(client:)
100
177
  @client = client
178
+ @channels = Zavudev::Resources::Contacts::Channels.new(client: client)
101
179
  end
102
180
  end
103
181
  end