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,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,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zavudev
4
+ module Resources
5
+ class SubAccounts
6
+ class APIKeys
7
+ # Create sub-account API key. Requires a parent project API key; sub-account API
8
+ # keys receive HTTP 403.
9
+ #
10
+ # @overload create(id, name:, environment: nil, permissions: nil, request_options: {})
11
+ #
12
+ # @param id [String] Sub-account ID.
13
+ #
14
+ # @param name [String]
15
+ #
16
+ # @param environment [Symbol, Zavudev::Models::SubAccounts::APIKeyCreateParams::Environment]
17
+ #
18
+ # @param permissions [Array<String>]
19
+ #
20
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
21
+ #
22
+ # @return [Zavudev::Models::SubAccounts::APIKeyCreateResponse]
23
+ #
24
+ # @see Zavudev::Models::SubAccounts::APIKeyCreateParams
25
+ def create(id, params)
26
+ parsed, options = Zavudev::SubAccounts::APIKeyCreateParams.dump_request(params)
27
+ @client.request(
28
+ method: :post,
29
+ path: ["v1/sub-accounts/%1$s/api-keys", id],
30
+ body: parsed,
31
+ model: Zavudev::Models::SubAccounts::APIKeyCreateResponse,
32
+ options: options
33
+ )
34
+ end
35
+
36
+ # List sub-account API keys. Requires a parent project API key; sub-account API
37
+ # keys receive HTTP 403.
38
+ #
39
+ # @overload list(id, request_options: {})
40
+ #
41
+ # @param id [String] Sub-account ID.
42
+ #
43
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
44
+ #
45
+ # @return [Zavudev::Models::SubAccounts::APIKeyListResponse]
46
+ #
47
+ # @see Zavudev::Models::SubAccounts::APIKeyListParams
48
+ def list(id, params = {})
49
+ @client.request(
50
+ method: :get,
51
+ path: ["v1/sub-accounts/%1$s/api-keys", id],
52
+ model: Zavudev::Models::SubAccounts::APIKeyListResponse,
53
+ options: params[:request_options]
54
+ )
55
+ end
56
+
57
+ # Revoke sub-account API key. Requires a parent project API key; sub-account API
58
+ # keys receive HTTP 403.
59
+ #
60
+ # @overload revoke(key_id, id:, request_options: {})
61
+ #
62
+ # @param key_id [String] API key ID.
63
+ #
64
+ # @param id [String] Sub-account ID.
65
+ #
66
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
67
+ #
68
+ # @return [nil]
69
+ #
70
+ # @see Zavudev::Models::SubAccounts::APIKeyRevokeParams
71
+ def revoke(key_id, params)
72
+ parsed, options = Zavudev::SubAccounts::APIKeyRevokeParams.dump_request(params)
73
+ id =
74
+ parsed.delete(:id) do
75
+ raise ArgumentError.new("missing required path argument #{_1}")
76
+ end
77
+ @client.request(
78
+ method: :delete,
79
+ path: ["v1/sub-accounts/%1$s/api-keys/%2$s", id, key_id],
80
+ model: NilClass,
81
+ options: options
82
+ )
83
+ end
84
+
85
+ # @api private
86
+ #
87
+ # @param client [Zavudev::Client]
88
+ def initialize(client:)
89
+ @client = client
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,175 @@
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. Requires a
15
+ # parent project API key; sub-account API keys receive HTTP 403.
16
+ #
17
+ # @overload create(name:, credit_limit: nil, external_id: nil, metadata: nil, request_options: {})
18
+ #
19
+ # @param name [String] Name of the sub-account.
20
+ #
21
+ # @param credit_limit [Integer] Spending cap in cents. When reached, messages from this sub-account will be bloc
22
+ #
23
+ # @param external_id [String] External reference ID for your own tracking.
24
+ #
25
+ # @param metadata [Hash{Symbol=>Object}]
26
+ #
27
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
28
+ #
29
+ # @return [Zavudev::Models::SubAccountCreateResponse]
30
+ #
31
+ # @see Zavudev::Models::SubAccountCreateParams
32
+ def create(params)
33
+ parsed, options = Zavudev::SubAccountCreateParams.dump_request(params)
34
+ @client.request(
35
+ method: :post,
36
+ path: "v1/sub-accounts",
37
+ body: parsed,
38
+ model: Zavudev::Models::SubAccountCreateResponse,
39
+ options: options
40
+ )
41
+ end
42
+
43
+ # Get sub-account. Requires a parent project API key; sub-account API keys receive
44
+ # HTTP 403.
45
+ #
46
+ # @overload retrieve(id, request_options: {})
47
+ #
48
+ # @param id [String] Sub-account ID.
49
+ #
50
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
51
+ #
52
+ # @return [Zavudev::Models::SubAccountRetrieveResponse]
53
+ #
54
+ # @see Zavudev::Models::SubAccountRetrieveParams
55
+ def retrieve(id, params = {})
56
+ @client.request(
57
+ method: :get,
58
+ path: ["v1/sub-accounts/%1$s", id],
59
+ model: Zavudev::Models::SubAccountRetrieveResponse,
60
+ options: params[:request_options]
61
+ )
62
+ end
63
+
64
+ # Update sub-account. Requires a parent project API key; sub-account API keys
65
+ # receive HTTP 403.
66
+ #
67
+ # @overload update(id, credit_limit: nil, external_id: nil, metadata: nil, name: nil, status: nil, request_options: {})
68
+ #
69
+ # @param id [String] Sub-account ID.
70
+ #
71
+ # @param credit_limit [Integer, nil]
72
+ #
73
+ # @param external_id [String]
74
+ #
75
+ # @param metadata [Hash{Symbol=>Object}]
76
+ #
77
+ # @param name [String]
78
+ #
79
+ # @param status [Symbol, Zavudev::Models::SubAccountUpdateParams::Status]
80
+ #
81
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
82
+ #
83
+ # @return [Zavudev::Models::SubAccountUpdateResponse]
84
+ #
85
+ # @see Zavudev::Models::SubAccountUpdateParams
86
+ def update(id, params = {})
87
+ parsed, options = Zavudev::SubAccountUpdateParams.dump_request(params)
88
+ @client.request(
89
+ method: :patch,
90
+ path: ["v1/sub-accounts/%1$s", id],
91
+ body: parsed,
92
+ model: Zavudev::Models::SubAccountUpdateResponse,
93
+ options: options
94
+ )
95
+ end
96
+
97
+ # List sub-accounts for this team. Requires a parent project API key; sub-account
98
+ # API keys receive HTTP 403.
99
+ #
100
+ # @overload list(cursor: nil, limit: nil, request_options: {})
101
+ #
102
+ # @param cursor [String]
103
+ # @param limit [Integer]
104
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
105
+ #
106
+ # @return [Zavudev::Internal::Cursor<Zavudev::Models::SubAccount>]
107
+ #
108
+ # @see Zavudev::Models::SubAccountListParams
109
+ def list(params = {})
110
+ parsed, options = Zavudev::SubAccountListParams.dump_request(params)
111
+ query = Zavudev::Internal::Util.encode_query_params(parsed)
112
+ @client.request(
113
+ method: :get,
114
+ path: "v1/sub-accounts",
115
+ query: query,
116
+ page: Zavudev::Internal::Cursor,
117
+ model: Zavudev::SubAccount,
118
+ options: options
119
+ )
120
+ end
121
+
122
+ # Deactivate a sub-account. Remaining balance is returned to the parent team and
123
+ # all API keys are revoked. Requires a parent project API key; sub-account API
124
+ # keys receive HTTP 403.
125
+ #
126
+ # @overload deactivate(id, request_options: {})
127
+ #
128
+ # @param id [String] Sub-account ID.
129
+ #
130
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
131
+ #
132
+ # @return [Zavudev::Models::SubAccountDeactivateResponse]
133
+ #
134
+ # @see Zavudev::Models::SubAccountDeactivateParams
135
+ def deactivate(id, params = {})
136
+ @client.request(
137
+ method: :delete,
138
+ path: ["v1/sub-accounts/%1$s", id],
139
+ model: Zavudev::Models::SubAccountDeactivateResponse,
140
+ options: params[:request_options]
141
+ )
142
+ end
143
+
144
+ # Get spending information for a sub-account. Returns the parent team's balance,
145
+ # the sub-account's total spending, and its credit limit (spending cap). Requires
146
+ # a parent project API key; sub-account API keys receive HTTP 403.
147
+ #
148
+ # @overload get_balance(id, request_options: {})
149
+ #
150
+ # @param id [String] Sub-account ID.
151
+ #
152
+ # @param request_options [Zavudev::RequestOptions, Hash{Symbol=>Object}, nil]
153
+ #
154
+ # @return [Zavudev::Models::SubAccountGetBalanceResponse]
155
+ #
156
+ # @see Zavudev::Models::SubAccountGetBalanceParams
157
+ def get_balance(id, params = {})
158
+ @client.request(
159
+ method: :get,
160
+ path: ["v1/sub-accounts/%1$s/balance", id],
161
+ model: Zavudev::Models::SubAccountGetBalanceResponse,
162
+ options: params[:request_options]
163
+ )
164
+ end
165
+
166
+ # @api private
167
+ #
168
+ # @param client [Zavudev::Client]
169
+ def initialize(client:)
170
+ @client = client
171
+ @api_keys = Zavudev::Resources::SubAccounts::APIKeys.new(client: client)
172
+ end
173
+ end
174
+ end
175
+ end