zavudev 0.7.0 → 0.8.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 +18 -0
  3. data/README.md +1 -1
  4. data/lib/zavudev/client.rb +32 -0
  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 +91 -0
  128. data/lib/zavudev/resources/sub_accounts.rb +169 -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 +66 -0
  256. data/rbi/zavudev/resources/sub_accounts.rbi +119 -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,225 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Number10dlc
6
+ class Campaigns
7
+ # @return [Zavudev::Resources::Number10dlc::Campaigns::PhoneNumbers]
8
+ attr_reader :phone_numbers
9
+
10
+ # Create a 10DLC campaign under an existing brand. The campaign starts in draft
11
+ # status. Submit it for carrier review using the submit endpoint.
12
+ #
13
+ # @overload create(affiliate_marketing:, age_gated:, brand_id:, description:, direct_lending:, embedded_link:, embedded_phone:, name:, number_pooling:, sample_messages:, subscriber_help:, subscriber_opt_in:, subscriber_opt_out:, use_case:, help_message: nil, message_flow: nil, opt_in_keywords: nil, opt_out_keywords: nil, sub_use_cases: nil, request_options: {})
14
+ #
15
+ # @param affiliate_marketing [Boolean]
16
+ #
17
+ # @param age_gated [Boolean]
18
+ #
19
+ # @param brand_id [String] ID of the brand to create this campaign under.
20
+ #
21
+ # @param description [String]
22
+ #
23
+ # @param direct_lending [Boolean]
24
+ #
25
+ # @param embedded_link [Boolean]
26
+ #
27
+ # @param embedded_phone [Boolean]
28
+ #
29
+ # @param name [String]
30
+ #
31
+ # @param number_pooling [Boolean]
32
+ #
33
+ # @param sample_messages [Array<String>]
34
+ #
35
+ # @param subscriber_help [Boolean]
36
+ #
37
+ # @param subscriber_opt_in [Boolean]
38
+ #
39
+ # @param subscriber_opt_out [Boolean]
40
+ #
41
+ # @param use_case [String] Campaign use case (e.g., ACCOUNT_NOTIFICATION, MARKETING, 2FA).
42
+ #
43
+ # @param help_message [String]
44
+ #
45
+ # @param message_flow [String]
46
+ #
47
+ # @param opt_in_keywords [Array<String>]
48
+ #
49
+ # @param opt_out_keywords [Array<String>]
50
+ #
51
+ # @param sub_use_cases [Array<String>]
52
+ #
53
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
54
+ #
55
+ # @return [Zavudev::Models::Number10dlc::CampaignCreateResponse]
56
+ #
57
+ # @see Zavudev::Models::Number10dlc::CampaignCreateParams
58
+ def create(params)
59
+ parsed, options = Zavudev::Number10dlc::CampaignCreateParams.dump_request(params)
60
+ @client.request(
61
+ method: :post,
62
+ path: "v1/10dlc/campaigns",
63
+ body: parsed,
64
+ model: Zavudev::Models::Number10dlc::CampaignCreateResponse,
65
+ options: options
66
+ )
67
+ end
68
+
69
+ # Get 10DLC campaign
70
+ #
71
+ # @overload retrieve(campaign_id, request_options: {})
72
+ #
73
+ # @param campaign_id [String] 10DLC campaign ID.
74
+ #
75
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
76
+ #
77
+ # @return [Zavudev::Models::Number10dlc::CampaignRetrieveResponse]
78
+ #
79
+ # @see Zavudev::Models::Number10dlc::CampaignRetrieveParams
80
+ def retrieve(campaign_id, params = {})
81
+ @client.request(
82
+ method: :get,
83
+ path: ["v1/10dlc/campaigns/%1$s", campaign_id],
84
+ model: Zavudev::Models::Number10dlc::CampaignRetrieveResponse,
85
+ options: params[:request_options]
86
+ )
87
+ end
88
+
89
+ # Update a 10DLC campaign in draft status. Cannot update after submission.
90
+ #
91
+ # @overload update(campaign_id, description: nil, help_message: nil, message_flow: nil, name: nil, opt_in_keywords: nil, opt_out_keywords: nil, sample_messages: nil, request_options: {})
92
+ #
93
+ # @param campaign_id [String] 10DLC campaign ID.
94
+ #
95
+ # @param description [String]
96
+ #
97
+ # @param help_message [String]
98
+ #
99
+ # @param message_flow [String]
100
+ #
101
+ # @param name [String]
102
+ #
103
+ # @param opt_in_keywords [Array<String>]
104
+ #
105
+ # @param opt_out_keywords [Array<String>]
106
+ #
107
+ # @param sample_messages [Array<String>]
108
+ #
109
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
110
+ #
111
+ # @return [Zavudev::Models::Number10dlc::CampaignUpdateResponse]
112
+ #
113
+ # @see Zavudev::Models::Number10dlc::CampaignUpdateParams
114
+ def update(campaign_id, params = {})
115
+ parsed, options = Zavudev::Number10dlc::CampaignUpdateParams.dump_request(params)
116
+ @client.request(
117
+ method: :patch,
118
+ path: ["v1/10dlc/campaigns/%1$s", campaign_id],
119
+ body: parsed,
120
+ model: Zavudev::Models::Number10dlc::CampaignUpdateResponse,
121
+ options: options
122
+ )
123
+ end
124
+
125
+ # List 10DLC campaign registrations for this project.
126
+ #
127
+ # @overload list(brand_id: nil, cursor: nil, limit: nil, request_options: {})
128
+ #
129
+ # @param brand_id [String] Filter campaigns by brand ID.
130
+ #
131
+ # @param cursor [String]
132
+ #
133
+ # @param limit [Integer]
134
+ #
135
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
136
+ #
137
+ # @return [Zavudev::Internal::Cursor<Zavudev::Models::Number10dlc::TenDlcCampaign>]
138
+ #
139
+ # @see Zavudev::Models::Number10dlc::CampaignListParams
140
+ def list(params = {})
141
+ parsed, options = Zavudev::Number10dlc::CampaignListParams.dump_request(params)
142
+ query = Zavudev::Internal::Util.encode_query_params(parsed)
143
+ @client.request(
144
+ method: :get,
145
+ path: "v1/10dlc/campaigns",
146
+ query: query.transform_keys(brand_id: "brandId"),
147
+ page: Zavudev::Internal::Cursor,
148
+ model: Zavudev::Number10dlc::TenDlcCampaign,
149
+ options: options
150
+ )
151
+ end
152
+
153
+ # Delete 10DLC campaign
154
+ #
155
+ # @overload delete(campaign_id, request_options: {})
156
+ #
157
+ # @param campaign_id [String] 10DLC campaign ID.
158
+ #
159
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
160
+ #
161
+ # @return [nil]
162
+ #
163
+ # @see Zavudev::Models::Number10dlc::CampaignDeleteParams
164
+ def delete(campaign_id, params = {})
165
+ @client.request(
166
+ method: :delete,
167
+ path: ["v1/10dlc/campaigns/%1$s", campaign_id],
168
+ model: NilClass,
169
+ options: params[:request_options]
170
+ )
171
+ end
172
+
173
+ # Submit a draft campaign for carrier review. The campaign must be in draft status
174
+ # and its brand must be verified.
175
+ #
176
+ # @overload submit(campaign_id, request_options: {})
177
+ #
178
+ # @param campaign_id [String] 10DLC campaign ID.
179
+ #
180
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
181
+ #
182
+ # @return [Zavudev::Models::Number10dlc::CampaignSubmitResponse]
183
+ #
184
+ # @see Zavudev::Models::Number10dlc::CampaignSubmitParams
185
+ def submit(campaign_id, params = {})
186
+ @client.request(
187
+ method: :post,
188
+ path: ["v1/10dlc/campaigns/%1$s/submit", campaign_id],
189
+ model: Zavudev::Models::Number10dlc::CampaignSubmitResponse,
190
+ options: params[:request_options]
191
+ )
192
+ end
193
+
194
+ # Sync the campaign status with the registration provider. Use this to check for
195
+ # approval updates after submission.
196
+ #
197
+ # @overload sync_status(campaign_id, request_options: {})
198
+ #
199
+ # @param campaign_id [String] 10DLC campaign ID.
200
+ #
201
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
202
+ #
203
+ # @return [Zavudev::Models::Number10dlc::CampaignSyncStatusResponse]
204
+ #
205
+ # @see Zavudev::Models::Number10dlc::CampaignSyncStatusParams
206
+ def sync_status(campaign_id, params = {})
207
+ @client.request(
208
+ method: :post,
209
+ path: ["v1/10dlc/campaigns/%1$s/sync", campaign_id],
210
+ model: Zavudev::Models::Number10dlc::CampaignSyncStatusResponse,
211
+ options: params[:request_options]
212
+ )
213
+ end
214
+
215
+ # @api private
216
+ #
217
+ # @param client [Zavudev::Client]
218
+ def initialize(client:)
219
+ @client = client
220
+ @phone_numbers = Zavudev::Resources::Number10dlc::Campaigns::PhoneNumbers.new(client: client)
221
+ end
222
+ end
223
+ end
224
+ end
225
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Number10dlc
6
+ # @return [Zavudev::Resources::Number10dlc::Brands]
7
+ attr_reader :brands
8
+
9
+ # @return [Zavudev::Resources::Number10dlc::Campaigns]
10
+ attr_reader :campaigns
11
+
12
+ # @api private
13
+ #
14
+ # @param client [Zavudev::Client]
15
+ def initialize(client:)
16
+ @client = client
17
+ @brands = Zavudev::Resources::Number10dlc::Brands.new(client: client)
18
+ @campaigns = Zavudev::Resources::Number10dlc::Campaigns.new(client: client)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Plan
6
+ # Get the current subscription plan for the API key's team, including tier,
7
+ # billing interval, and period dates.
8
+ #
9
+ # @overload retrieve(request_options: {})
10
+ #
11
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
12
+ #
13
+ # @return [Zavudev::Models::PlanRetrieveResponse]
14
+ #
15
+ # @see Zavudev::Models::PlanRetrieveParams
16
+ def retrieve(params = {})
17
+ @client.request(
18
+ method: :get,
19
+ path: "v1/plan",
20
+ model: Zavudev::Models::PlanRetrieveResponse,
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
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class Senders
6
+ class WhatsappSync
7
+ # Get the current sync status for a sender's WhatsApp coexistence account. Only
8
+ # available for senders connected in coexistence mode (WhatsApp Business App +
9
+ # Cloud API).
10
+ #
11
+ # @overload retrieve(sender_id, request_options: {})
12
+ #
13
+ # @param sender_id [String]
14
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
15
+ #
16
+ # @return [Zavudev::Models::Senders::WhatsappSyncRetrieveResponse]
17
+ #
18
+ # @see Zavudev::Models::Senders::WhatsappSyncRetrieveParams
19
+ def retrieve(sender_id, params = {})
20
+ @client.request(
21
+ method: :get,
22
+ path: ["v1/senders/%1$s/whatsapp-sync", sender_id],
23
+ model: Zavudev::Models::Senders::WhatsappSyncRetrieveResponse,
24
+ options: params[:request_options]
25
+ )
26
+ end
27
+
28
+ # Initiate contact names sync from the WhatsApp Business App. This imports contact
29
+ # names stored in the app to Zavu. Only available for coexistence accounts with
30
+ # active status.
31
+ #
32
+ # @overload start_contacts_sync(sender_id, request_options: {})
33
+ #
34
+ # @param sender_id [String]
35
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
36
+ #
37
+ # @return [Zavudev::Models::Senders::WhatsappSyncStartContactsSyncResponse]
38
+ #
39
+ # @see Zavudev::Models::Senders::WhatsappSyncStartContactsSyncParams
40
+ def start_contacts_sync(sender_id, params = {})
41
+ @client.request(
42
+ method: :post,
43
+ path: ["v1/senders/%1$s/whatsapp-sync/contacts", sender_id],
44
+ model: Zavudev::Models::Senders::WhatsappSyncStartContactsSyncResponse,
45
+ options: params[:request_options]
46
+ )
47
+ end
48
+
49
+ # Initiate message history sync from the WhatsApp Business App. This sends a
50
+ # request to the account owner to approve sharing their conversation history. Only
51
+ # available for coexistence accounts with active status.
52
+ #
53
+ # @overload start_history_sync(sender_id, request_options: {})
54
+ #
55
+ # @param sender_id [String]
56
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
57
+ #
58
+ # @return [Zavudev::Models::Senders::WhatsappSyncStartHistorySyncResponse]
59
+ #
60
+ # @see Zavudev::Models::Senders::WhatsappSyncStartHistorySyncParams
61
+ def start_history_sync(sender_id, params = {})
62
+ @client.request(
63
+ method: :post,
64
+ path: ["v1/senders/%1$s/whatsapp-sync/history", sender_id],
65
+ model: Zavudev::Models::Senders::WhatsappSyncStartHistorySyncResponse,
66
+ options: params[:request_options]
67
+ )
68
+ end
69
+
70
+ # @api private
71
+ #
72
+ # @param client [Zavudev::Client]
73
+ def initialize(client:)
74
+ @client = client
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -6,6 +6,9 @@ module Zavudev
6
6
  # @return [Zavudev::Resources::Senders::Agent]
7
7
  attr_reader :agent
8
8
 
9
+ # @return [Zavudev::Resources::Senders::WhatsappSync]
10
+ attr_reader :whatsapp_sync
11
+
9
12
  # Create sender
10
13
  #
11
14
  # @overload create(name:, phone_number:, set_as_default: nil, webhook_events: nil, webhook_url: nil, request_options: {})
@@ -240,6 +243,7 @@ module Zavudev
240
243
  def initialize(client:)
241
244
  @client = client
242
245
  @agent = Zavudev::Resources::Senders::Agent.new(client: client)
246
+ @whatsapp_sync = Zavudev::Resources::Senders::WhatsappSync.new(client: client)
243
247
  end
244
248
  end
245
249
  end
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class SubAccounts
6
+ class APIKeys
7
+ # Create sub-account API key
8
+ #
9
+ # @overload create(id, name:, environment: nil, permissions: nil, request_options: {})
10
+ #
11
+ # @param id [String] Sub-account ID.
12
+ #
13
+ # @param name [String]
14
+ #
15
+ # @param environment [Symbol, Zavudev::Models::SubAccounts::APIKeyCreateParams::Environment]
16
+ #
17
+ # @param permissions [Array<String>]
18
+ #
19
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
20
+ #
21
+ # @return [Zavudev::Models::SubAccounts::APIKeyCreateResponse]
22
+ #
23
+ # @see Zavudev::Models::SubAccounts::APIKeyCreateParams
24
+ def create(id, params)
25
+ parsed, options = Zavudev::SubAccounts::APIKeyCreateParams.dump_request(params)
26
+ @client.request(
27
+ method: :post,
28
+ path: ["v1/sub-accounts/%1$s/api-keys", id],
29
+ body: parsed,
30
+ model: Zavudev::Models::SubAccounts::APIKeyCreateResponse,
31
+ options: options
32
+ )
33
+ end
34
+
35
+ # List sub-account API keys
36
+ #
37
+ # @overload list(id, request_options: {})
38
+ #
39
+ # @param id [String] Sub-account ID.
40
+ #
41
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
42
+ #
43
+ # @return [Zavudev::Models::SubAccounts::APIKeyListResponse]
44
+ #
45
+ # @see Zavudev::Models::SubAccounts::APIKeyListParams
46
+ def list(id, params = {})
47
+ @client.request(
48
+ method: :get,
49
+ path: ["v1/sub-accounts/%1$s/api-keys", id],
50
+ model: Zavudev::Models::SubAccounts::APIKeyListResponse,
51
+ options: params[:request_options]
52
+ )
53
+ end
54
+
55
+ # Revoke sub-account API key
56
+ #
57
+ # @overload revoke(key_id, id:, request_options: {})
58
+ #
59
+ # @param key_id [String] API key ID.
60
+ #
61
+ # @param id [String] Sub-account ID.
62
+ #
63
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
64
+ #
65
+ # @return [nil]
66
+ #
67
+ # @see Zavudev::Models::SubAccounts::APIKeyRevokeParams
68
+ def revoke(key_id, params)
69
+ parsed, options = Zavudev::SubAccounts::APIKeyRevokeParams.dump_request(params)
70
+ id =
71
+ parsed.delete(:id) do
72
+ raise ArgumentError.new("missing required path argument #{_1}")
73
+ end
74
+ @client.request(
75
+ method: :delete,
76
+ path: ["v1/sub-accounts/%1$s/api-keys/%2$s", id, key_id],
77
+ model: NilClass,
78
+ options: options
79
+ )
80
+ end
81
+
82
+ # @api private
83
+ #
84
+ # @param client [Zavudev::Client]
85
+ def initialize(client:)
86
+ @client = client
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,169 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class SubAccounts
6
+ # @return [Zavudev::Resources::SubAccounts::APIKeys]
7
+ attr_reader :api_keys
8
+
9
+ # Some parameter documentations has been truncated, see
10
+ # {Zavudev::Models::SubAccountCreateParams} for more details.
11
+ #
12
+ # Create a new sub-account (project) with its own API key. All charges are billed
13
+ # to the parent team's balance. Use creditLimit to set a spending cap. The
14
+ # sub-account's API key is returned only in the creation response.
15
+ #
16
+ # @overload create(name:, credit_limit: nil, external_id: nil, metadata: nil, request_options: {})
17
+ #
18
+ # @param name [String] Name of the sub-account.
19
+ #
20
+ # @param credit_limit [Integer] Spending cap in cents. When reached, messages from this sub-account will be bloc
21
+ #
22
+ # @param external_id [String] External reference ID for your own tracking.
23
+ #
24
+ # @param metadata [Hash{Symbol=>Object}]
25
+ #
26
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
27
+ #
28
+ # @return [Zavudev::Models::SubAccountCreateResponse]
29
+ #
30
+ # @see Zavudev::Models::SubAccountCreateParams
31
+ def create(params)
32
+ parsed, options = Zavudev::SubAccountCreateParams.dump_request(params)
33
+ @client.request(
34
+ method: :post,
35
+ path: "v1/sub-accounts",
36
+ body: parsed,
37
+ model: Zavudev::Models::SubAccountCreateResponse,
38
+ options: options
39
+ )
40
+ end
41
+
42
+ # Get sub-account
43
+ #
44
+ # @overload retrieve(id, request_options: {})
45
+ #
46
+ # @param id [String] Sub-account ID.
47
+ #
48
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
49
+ #
50
+ # @return [Zavudev::Models::SubAccountRetrieveResponse]
51
+ #
52
+ # @see Zavudev::Models::SubAccountRetrieveParams
53
+ def retrieve(id, params = {})
54
+ @client.request(
55
+ method: :get,
56
+ path: ["v1/sub-accounts/%1$s", id],
57
+ model: Zavudev::Models::SubAccountRetrieveResponse,
58
+ options: params[:request_options]
59
+ )
60
+ end
61
+
62
+ # Update sub-account
63
+ #
64
+ # @overload update(id, credit_limit: nil, external_id: nil, metadata: nil, name: nil, status: nil, request_options: {})
65
+ #
66
+ # @param id [String] Sub-account ID.
67
+ #
68
+ # @param credit_limit [Integer, nil]
69
+ #
70
+ # @param external_id [String]
71
+ #
72
+ # @param metadata [Hash{Symbol=>Object}]
73
+ #
74
+ # @param name [String]
75
+ #
76
+ # @param status [Symbol, Zavudev::Models::SubAccountUpdateParams::Status]
77
+ #
78
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
79
+ #
80
+ # @return [Zavudev::Models::SubAccountUpdateResponse]
81
+ #
82
+ # @see Zavudev::Models::SubAccountUpdateParams
83
+ def update(id, params = {})
84
+ parsed, options = Zavudev::SubAccountUpdateParams.dump_request(params)
85
+ @client.request(
86
+ method: :patch,
87
+ path: ["v1/sub-accounts/%1$s", id],
88
+ body: parsed,
89
+ model: Zavudev::Models::SubAccountUpdateResponse,
90
+ options: options
91
+ )
92
+ end
93
+
94
+ # List sub-accounts for this team.
95
+ #
96
+ # @overload list(cursor: nil, limit: nil, request_options: {})
97
+ #
98
+ # @param cursor [String]
99
+ # @param limit [Integer]
100
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
101
+ #
102
+ # @return [Zavudev::Internal::Cursor<Zavudev::Models::SubAccount>]
103
+ #
104
+ # @see Zavudev::Models::SubAccountListParams
105
+ def list(params = {})
106
+ parsed, options = Zavudev::SubAccountListParams.dump_request(params)
107
+ query = Zavudev::Internal::Util.encode_query_params(parsed)
108
+ @client.request(
109
+ method: :get,
110
+ path: "v1/sub-accounts",
111
+ query: query,
112
+ page: Zavudev::Internal::Cursor,
113
+ model: Zavudev::SubAccount,
114
+ options: options
115
+ )
116
+ end
117
+
118
+ # Deactivate a sub-account. Remaining balance is returned to the parent team and
119
+ # all API keys are revoked.
120
+ #
121
+ # @overload deactivate(id, request_options: {})
122
+ #
123
+ # @param id [String] Sub-account ID.
124
+ #
125
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
126
+ #
127
+ # @return [Zavudev::Models::SubAccountDeactivateResponse]
128
+ #
129
+ # @see Zavudev::Models::SubAccountDeactivateParams
130
+ def deactivate(id, params = {})
131
+ @client.request(
132
+ method: :delete,
133
+ path: ["v1/sub-accounts/%1$s", id],
134
+ model: Zavudev::Models::SubAccountDeactivateResponse,
135
+ options: params[:request_options]
136
+ )
137
+ end
138
+
139
+ # Get spending information for a sub-account. Returns the parent team's balance,
140
+ # the sub-account's total spending, and its credit limit (spending cap).
141
+ #
142
+ # @overload get_balance(id, request_options: {})
143
+ #
144
+ # @param id [String] Sub-account ID.
145
+ #
146
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
147
+ #
148
+ # @return [Zavudev::Models::SubAccountGetBalanceResponse]
149
+ #
150
+ # @see Zavudev::Models::SubAccountGetBalanceParams
151
+ def get_balance(id, params = {})
152
+ @client.request(
153
+ method: :get,
154
+ path: ["v1/sub-accounts/%1$s/balance", id],
155
+ model: Zavudev::Models::SubAccountGetBalanceResponse,
156
+ options: params[:request_options]
157
+ )
158
+ end
159
+
160
+ # @api private
161
+ #
162
+ # @param client [Zavudev::Client]
163
+ def initialize(client:)
164
+ @client = client
165
+ @api_keys = Zavudev::Resources::SubAccounts::APIKeys.new(client: client)
166
+ end
167
+ end
168
+ end
169
+ end