zavudev 0.6.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 (426) 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 +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 +4 -154
  15. data/lib/zavudev/models/contact_channel.rb +155 -0
  16. data/lib/zavudev/models/contact_create_params.rb +99 -0
  17. data/lib/zavudev/models/contact_dismiss_merge_suggestion_params.rb +20 -0
  18. data/lib/zavudev/models/contact_merge_params.rb +33 -0
  19. data/lib/zavudev/models/contacts/channel_add_params.rb +77 -0
  20. data/lib/zavudev/models/contacts/channel_add_response.rb +19 -0
  21. data/lib/zavudev/models/contacts/channel_remove_params.rb +28 -0
  22. data/lib/zavudev/models/contacts/channel_set_primary_params.rb +28 -0
  23. data/lib/zavudev/models/contacts/channel_set_primary_response.rb +19 -0
  24. data/lib/zavudev/models/contacts/channel_update_params.rb +53 -0
  25. data/lib/zavudev/models/contacts/channel_update_response.rb +19 -0
  26. data/lib/zavudev/models/data_export.rb +122 -0
  27. data/lib/zavudev/models/export_create_params.rb +54 -0
  28. data/lib/zavudev/models/export_create_response.rb +16 -0
  29. data/lib/zavudev/models/export_list_params.rb +49 -0
  30. data/lib/zavudev/models/export_retrieve_params.rb +20 -0
  31. data/lib/zavudev/models/export_retrieve_response.rb +16 -0
  32. data/lib/zavudev/models/invitation.rb +135 -0
  33. data/lib/zavudev/models/invitation_cancel_params.rb +20 -0
  34. data/lib/zavudev/models/invitation_cancel_response.rb +16 -0
  35. data/lib/zavudev/models/invitation_create_params.rb +68 -0
  36. data/lib/zavudev/models/invitation_create_response.rb +16 -0
  37. data/lib/zavudev/models/invitation_list_params.rb +50 -0
  38. data/lib/zavudev/models/invitation_retrieve_params.rb +20 -0
  39. data/lib/zavudev/models/invitation_retrieve_response.rb +16 -0
  40. data/lib/zavudev/models/message_content.rb +96 -3
  41. data/lib/zavudev/models/message_type.rb +1 -0
  42. data/lib/zavudev/models/number_10dlc/brand_create_params.rb +158 -0
  43. data/lib/zavudev/models/number_10dlc/brand_create_response.rb +18 -0
  44. data/lib/zavudev/models/number_10dlc/brand_delete_params.rb +22 -0
  45. data/lib/zavudev/models/number_10dlc/brand_list_params.rb +28 -0
  46. data/lib/zavudev/models/number_10dlc/brand_list_use_cases_params.rb +16 -0
  47. data/lib/zavudev/models/number_10dlc/brand_list_use_cases_response.rb +36 -0
  48. data/lib/zavudev/models/number_10dlc/brand_retrieve_params.rb +22 -0
  49. data/lib/zavudev/models/number_10dlc/brand_retrieve_response.rb +18 -0
  50. data/lib/zavudev/models/number_10dlc/brand_submit_params.rb +22 -0
  51. data/lib/zavudev/models/number_10dlc/brand_submit_response.rb +18 -0
  52. data/lib/zavudev/models/number_10dlc/brand_sync_status_params.rb +22 -0
  53. data/lib/zavudev/models/number_10dlc/brand_sync_status_response.rb +18 -0
  54. data/lib/zavudev/models/number_10dlc/brand_update_params.rb +159 -0
  55. data/lib/zavudev/models/number_10dlc/brand_update_response.rb +18 -0
  56. data/lib/zavudev/models/number_10dlc/campaign_create_params.rb +151 -0
  57. data/lib/zavudev/models/number_10dlc/campaign_create_response.rb +18 -0
  58. data/lib/zavudev/models/number_10dlc/campaign_delete_params.rb +22 -0
  59. data/lib/zavudev/models/number_10dlc/campaign_list_params.rb +38 -0
  60. data/lib/zavudev/models/number_10dlc/campaign_retrieve_params.rb +22 -0
  61. data/lib/zavudev/models/number_10dlc/campaign_retrieve_response.rb +18 -0
  62. data/lib/zavudev/models/number_10dlc/campaign_submit_params.rb +22 -0
  63. data/lib/zavudev/models/number_10dlc/campaign_submit_response.rb +18 -0
  64. data/lib/zavudev/models/number_10dlc/campaign_sync_status_params.rb +22 -0
  65. data/lib/zavudev/models/number_10dlc/campaign_sync_status_response.rb +18 -0
  66. data/lib/zavudev/models/number_10dlc/campaign_update_params.rb +64 -0
  67. data/lib/zavudev/models/number_10dlc/campaign_update_response.rb +18 -0
  68. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rb +33 -0
  69. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rb +20 -0
  70. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rb +24 -0
  71. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rb +27 -0
  72. data/lib/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rb +30 -0
  73. data/lib/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rb +83 -0
  74. data/lib/zavudev/models/number_10dlc/ten_dlc_brand.rb +238 -0
  75. data/lib/zavudev/models/number_10dlc/ten_dlc_campaign.rb +243 -0
  76. data/lib/zavudev/models/plan_retrieve_params.rb +14 -0
  77. data/lib/zavudev/models/plan_retrieve_response.rb +155 -0
  78. data/lib/zavudev/models/senders/agent/agent_flow.rb +6 -101
  79. data/lib/zavudev/models/senders/agent/agent_tool.rb +3 -53
  80. data/lib/zavudev/models/senders/agent/flow_create_params.rb +6 -100
  81. data/lib/zavudev/models/senders/agent/flow_step.rb +61 -0
  82. data/lib/zavudev/models/senders/agent/flow_trigger.rb +51 -0
  83. data/lib/zavudev/models/senders/agent/flow_update_params.rb +6 -100
  84. data/lib/zavudev/models/senders/agent/tool_create_params.rb +3 -52
  85. data/lib/zavudev/models/senders/agent/tool_parameters.rb +58 -0
  86. data/lib/zavudev/models/senders/agent/tool_update_params.rb +3 -52
  87. data/lib/zavudev/models/senders/whats_app_sync_contacts.rb +51 -0
  88. data/lib/zavudev/models/senders/whats_app_sync_history.rb +60 -0
  89. data/lib/zavudev/models/senders/whats_app_sync_status.rb +60 -0
  90. data/lib/zavudev/models/senders/whatsapp_sync_retrieve_params.rb +22 -0
  91. data/lib/zavudev/models/senders/whatsapp_sync_retrieve_response.rb +19 -0
  92. data/lib/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rb +22 -0
  93. data/lib/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rb +27 -0
  94. data/lib/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rb +22 -0
  95. data/lib/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rb +27 -0
  96. data/lib/zavudev/models/sub_account.rb +91 -0
  97. data/lib/zavudev/models/sub_account_create_params.rb +49 -0
  98. data/lib/zavudev/models/sub_account_create_response.rb +16 -0
  99. data/lib/zavudev/models/sub_account_deactivate_params.rb +20 -0
  100. data/lib/zavudev/models/sub_account_deactivate_response.rb +24 -0
  101. data/lib/zavudev/models/sub_account_get_balance_params.rb +20 -0
  102. data/lib/zavudev/models/sub_account_get_balance_response.rb +48 -0
  103. data/lib/zavudev/models/sub_account_list_params.rb +26 -0
  104. data/lib/zavudev/models/sub_account_retrieve_params.rb +20 -0
  105. data/lib/zavudev/models/sub_account_retrieve_response.rb +16 -0
  106. data/lib/zavudev/models/sub_account_update_params.rb +60 -0
  107. data/lib/zavudev/models/sub_account_update_response.rb +16 -0
  108. data/lib/zavudev/models/sub_accounts/api_key_create_params.rb +50 -0
  109. data/lib/zavudev/models/sub_accounts/api_key_create_response.rb +59 -0
  110. data/lib/zavudev/models/sub_accounts/api_key_list_params.rb +22 -0
  111. data/lib/zavudev/models/sub_accounts/api_key_list_response.rb +98 -0
  112. data/lib/zavudev/models/sub_accounts/api_key_revoke_params.rb +28 -0
  113. data/lib/zavudev/models/template.rb +13 -1
  114. data/lib/zavudev/models/template_create_params.rb +53 -3
  115. data/lib/zavudev/models/url_list_verified_params.rb +49 -0
  116. data/lib/zavudev/models/url_retrieve_details_params.rb +20 -0
  117. data/lib/zavudev/models/url_retrieve_details_response.rb +16 -0
  118. data/lib/zavudev/models/url_submit_for_verification_params.rb +22 -0
  119. data/lib/zavudev/models/url_submit_for_verification_response.rb +16 -0
  120. data/lib/zavudev/models/usage_retrieve_params.rb +14 -0
  121. data/lib/zavudev/models/usage_retrieve_response.rb +77 -0
  122. data/lib/zavudev/models/verified_url.rb +90 -0
  123. data/lib/zavudev/models.rb +64 -0
  124. data/lib/zavudev/resources/balance.rb +33 -0
  125. data/lib/zavudev/resources/broadcasts.rb +40 -0
  126. data/lib/zavudev/resources/contacts/channels.rb +136 -0
  127. data/lib/zavudev/resources/contacts.rb +78 -0
  128. data/lib/zavudev/resources/exports.rb +89 -0
  129. data/lib/zavudev/resources/invitations.rb +118 -0
  130. data/lib/zavudev/resources/number_10dlc/brands.rb +251 -0
  131. data/lib/zavudev/resources/number_10dlc/campaigns/phone_numbers.rb +90 -0
  132. data/lib/zavudev/resources/number_10dlc/campaigns.rb +225 -0
  133. data/lib/zavudev/resources/number_10dlc.rb +22 -0
  134. data/lib/zavudev/resources/plan.rb +33 -0
  135. data/lib/zavudev/resources/senders/agent/flows.rb +4 -4
  136. data/lib/zavudev/resources/senders/agent/tools.rb +2 -2
  137. data/lib/zavudev/resources/senders/whatsapp_sync.rb +79 -0
  138. data/lib/zavudev/resources/senders.rb +4 -0
  139. data/lib/zavudev/resources/sub_accounts/api_keys.rb +91 -0
  140. data/lib/zavudev/resources/sub_accounts.rb +169 -0
  141. data/lib/zavudev/resources/templates.rb +7 -1
  142. data/lib/zavudev/resources/urls.rb +89 -0
  143. data/lib/zavudev/resources/usage.rb +33 -0
  144. data/lib/zavudev/version.rb +1 -1
  145. data/lib/zavudev.rb +118 -0
  146. data/rbi/zavudev/client.rbi +24 -0
  147. data/rbi/zavudev/models/balance_retrieve_params.rbi +27 -0
  148. data/rbi/zavudev/models/balance_retrieve_response.rbi +73 -0
  149. data/rbi/zavudev/models/broadcast_contact.rbi +9 -0
  150. data/rbi/zavudev/models/broadcast_content.rbi +17 -2
  151. data/rbi/zavudev/models/broadcast_escalate_review_params.rbi +38 -0
  152. data/rbi/zavudev/models/broadcast_escalate_review_response.rbi +31 -0
  153. data/rbi/zavudev/models/broadcast_retry_review_params.rbi +35 -0
  154. data/rbi/zavudev/models/broadcast_retry_review_response.rbi +31 -0
  155. data/rbi/zavudev/models/broadcasts/contact_add_params.rbi +23 -3
  156. data/rbi/zavudev/models/contact.rbi +4 -235
  157. data/rbi/zavudev/models/contact_channel.rbi +231 -0
  158. data/rbi/zavudev/models/contact_create_params.rbi +191 -0
  159. data/rbi/zavudev/models/contact_dismiss_merge_suggestion_params.rbi +38 -0
  160. data/rbi/zavudev/models/contact_merge_params.rbi +51 -0
  161. data/rbi/zavudev/models/contacts/channel_add_params.rbi +142 -0
  162. data/rbi/zavudev/models/contacts/channel_add_response.rbi +39 -0
  163. data/rbi/zavudev/models/contacts/channel_remove_params.rbi +48 -0
  164. data/rbi/zavudev/models/contacts/channel_set_primary_params.rbi +48 -0
  165. data/rbi/zavudev/models/contacts/channel_set_primary_response.rbi +39 -0
  166. data/rbi/zavudev/models/contacts/channel_update_params.rbi +80 -0
  167. data/rbi/zavudev/models/contacts/channel_update_response.rbi +39 -0
  168. data/rbi/zavudev/models/data_export.rbi +151 -0
  169. data/rbi/zavudev/models/export_create_params.rbi +106 -0
  170. data/rbi/zavudev/models/export_create_response.rbi +31 -0
  171. data/rbi/zavudev/models/export_list_params.rbi +89 -0
  172. data/rbi/zavudev/models/export_retrieve_params.rbi +35 -0
  173. data/rbi/zavudev/models/export_retrieve_response.rbi +31 -0
  174. data/rbi/zavudev/models/invitation.rbi +149 -0
  175. data/rbi/zavudev/models/invitation_cancel_params.rbi +35 -0
  176. data/rbi/zavudev/models/invitation_cancel_response.rbi +33 -0
  177. data/rbi/zavudev/models/invitation_create_params.rbi +103 -0
  178. data/rbi/zavudev/models/invitation_create_response.rbi +33 -0
  179. data/rbi/zavudev/models/invitation_list_params.rbi +99 -0
  180. data/rbi/zavudev/models/invitation_retrieve_params.rbi +35 -0
  181. data/rbi/zavudev/models/invitation_retrieve_response.rbi +33 -0
  182. data/rbi/zavudev/models/message_content.rbi +145 -2
  183. data/rbi/zavudev/models/message_type.rbi +1 -0
  184. data/rbi/zavudev/models/number_10dlc/brand_create_params.rbi +228 -0
  185. data/rbi/zavudev/models/number_10dlc/brand_create_response.rbi +35 -0
  186. data/rbi/zavudev/models/number_10dlc/brand_delete_params.rbi +40 -0
  187. data/rbi/zavudev/models/number_10dlc/brand_list_params.rbi +54 -0
  188. data/rbi/zavudev/models/number_10dlc/brand_list_use_cases_params.rbi +32 -0
  189. data/rbi/zavudev/models/number_10dlc/brand_list_use_cases_response.rbi +82 -0
  190. data/rbi/zavudev/models/number_10dlc/brand_retrieve_params.rbi +40 -0
  191. data/rbi/zavudev/models/number_10dlc/brand_retrieve_response.rbi +35 -0
  192. data/rbi/zavudev/models/number_10dlc/brand_submit_params.rbi +40 -0
  193. data/rbi/zavudev/models/number_10dlc/brand_submit_response.rbi +35 -0
  194. data/rbi/zavudev/models/number_10dlc/brand_sync_status_params.rbi +40 -0
  195. data/rbi/zavudev/models/number_10dlc/brand_sync_status_response.rbi +35 -0
  196. data/rbi/zavudev/models/number_10dlc/brand_update_params.rbi +261 -0
  197. data/rbi/zavudev/models/number_10dlc/brand_update_response.rbi +35 -0
  198. data/rbi/zavudev/models/number_10dlc/campaign_create_params.rbi +173 -0
  199. data/rbi/zavudev/models/number_10dlc/campaign_create_response.rbi +39 -0
  200. data/rbi/zavudev/models/number_10dlc/campaign_delete_params.rbi +40 -0
  201. data/rbi/zavudev/models/number_10dlc/campaign_list_params.rbi +69 -0
  202. data/rbi/zavudev/models/number_10dlc/campaign_retrieve_params.rbi +40 -0
  203. data/rbi/zavudev/models/number_10dlc/campaign_retrieve_response.rbi +39 -0
  204. data/rbi/zavudev/models/number_10dlc/campaign_submit_params.rbi +40 -0
  205. data/rbi/zavudev/models/number_10dlc/campaign_submit_response.rbi +39 -0
  206. data/rbi/zavudev/models/number_10dlc/campaign_sync_status_params.rbi +40 -0
  207. data/rbi/zavudev/models/number_10dlc/campaign_sync_status_response.rbi +39 -0
  208. data/rbi/zavudev/models/number_10dlc/campaign_update_params.rbi +109 -0
  209. data/rbi/zavudev/models/number_10dlc/campaign_update_response.rbi +39 -0
  210. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rbi +56 -0
  211. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rbi +54 -0
  212. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rbi +42 -0
  213. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rbi +57 -0
  214. data/rbi/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rbi +50 -0
  215. data/rbi/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rbi +132 -0
  216. data/rbi/zavudev/models/number_10dlc/ten_dlc_brand.rbi +298 -0
  217. data/rbi/zavudev/models/number_10dlc/ten_dlc_campaign.rbi +269 -0
  218. data/rbi/zavudev/models/plan_retrieve_params.rbi +27 -0
  219. data/rbi/zavudev/models/plan_retrieve_response.rbi +306 -0
  220. data/rbi/zavudev/models/senders/agent/agent_flow.rbi +7 -233
  221. data/rbi/zavudev/models/senders/agent/agent_tool.rbi +4 -130
  222. data/rbi/zavudev/models/senders/agent/flow_create_params.rbi +7 -245
  223. data/rbi/zavudev/models/senders/agent/flow_step.rbi +115 -0
  224. data/rbi/zavudev/models/senders/agent/flow_trigger.rbi +108 -0
  225. data/rbi/zavudev/models/senders/agent/flow_update_params.rbi +8 -255
  226. data/rbi/zavudev/models/senders/agent/tool_create_params.rbi +4 -132
  227. data/rbi/zavudev/models/senders/agent/tool_parameters.rbi +124 -0
  228. data/rbi/zavudev/models/senders/agent/tool_update_params.rbi +4 -136
  229. data/rbi/zavudev/models/senders/whats_app_sync_contacts.rbi +104 -0
  230. data/rbi/zavudev/models/senders/whats_app_sync_history.rbi +117 -0
  231. data/rbi/zavudev/models/senders/whats_app_sync_status.rbi +126 -0
  232. data/rbi/zavudev/models/senders/whatsapp_sync_retrieve_params.rbi +40 -0
  233. data/rbi/zavudev/models/senders/whatsapp_sync_retrieve_response.rbi +39 -0
  234. data/rbi/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rbi +40 -0
  235. data/rbi/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rbi +50 -0
  236. data/rbi/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rbi +40 -0
  237. data/rbi/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rbi +50 -0
  238. data/rbi/zavudev/models/sub_account.rbi +111 -0
  239. data/rbi/zavudev/models/sub_account_create_params.rbi +76 -0
  240. data/rbi/zavudev/models/sub_account_create_response.rbi +33 -0
  241. data/rbi/zavudev/models/sub_account_deactivate_params.rbi +35 -0
  242. data/rbi/zavudev/models/sub_account_deactivate_response.rbi +36 -0
  243. data/rbi/zavudev/models/sub_account_get_balance_params.rbi +35 -0
  244. data/rbi/zavudev/models/sub_account_get_balance_response.rbi +73 -0
  245. data/rbi/zavudev/models/sub_account_list_params.rbi +49 -0
  246. data/rbi/zavudev/models/sub_account_retrieve_params.rbi +35 -0
  247. data/rbi/zavudev/models/sub_account_retrieve_response.rbi +33 -0
  248. data/rbi/zavudev/models/sub_account_update_params.rbi +113 -0
  249. data/rbi/zavudev/models/sub_account_update_response.rbi +33 -0
  250. data/rbi/zavudev/models/sub_accounts/api_key_create_params.rbi +117 -0
  251. data/rbi/zavudev/models/sub_accounts/api_key_create_response.rbi +136 -0
  252. data/rbi/zavudev/models/sub_accounts/api_key_list_params.rbi +40 -0
  253. data/rbi/zavudev/models/sub_accounts/api_key_list_response.rbi +177 -0
  254. data/rbi/zavudev/models/sub_accounts/api_key_revoke_params.rbi +48 -0
  255. data/rbi/zavudev/models/template.rbi +13 -0
  256. data/rbi/zavudev/models/template_create_params.rbi +91 -0
  257. data/rbi/zavudev/models/url_list_verified_params.rbi +97 -0
  258. data/rbi/zavudev/models/url_retrieve_details_params.rbi +35 -0
  259. data/rbi/zavudev/models/url_retrieve_details_response.rbi +31 -0
  260. data/rbi/zavudev/models/url_submit_for_verification_params.rbi +43 -0
  261. data/rbi/zavudev/models/url_submit_for_verification_response.rbi +31 -0
  262. data/rbi/zavudev/models/usage_retrieve_params.rbi +27 -0
  263. data/rbi/zavudev/models/usage_retrieve_response.rbi +150 -0
  264. data/rbi/zavudev/models/verified_url.rbi +133 -0
  265. data/rbi/zavudev/models.rbi +66 -0
  266. data/rbi/zavudev/resources/balance.rbi +22 -0
  267. data/rbi/zavudev/resources/broadcasts.rbi +22 -0
  268. data/rbi/zavudev/resources/contacts/channels.rbi +100 -0
  269. data/rbi/zavudev/resources/contacts.rbi +52 -0
  270. data/rbi/zavudev/resources/exports.rbi +62 -0
  271. data/rbi/zavudev/resources/invitations.rbi +83 -0
  272. data/rbi/zavudev/resources/number_10dlc/brands.rbi +198 -0
  273. data/rbi/zavudev/resources/number_10dlc/campaigns/phone_numbers.rbi +69 -0
  274. data/rbi/zavudev/resources/number_10dlc/campaigns.rbi +177 -0
  275. data/rbi/zavudev/resources/number_10dlc.rbi +18 -0
  276. data/rbi/zavudev/resources/plan.rbi +22 -0
  277. data/rbi/zavudev/resources/senders/agent/flows.rbi +4 -12
  278. data/rbi/zavudev/resources/senders/agent/tools.rbi +2 -4
  279. data/rbi/zavudev/resources/senders/whatsapp_sync.rbi +54 -0
  280. data/rbi/zavudev/resources/senders.rbi +3 -0
  281. data/rbi/zavudev/resources/sub_accounts/api_keys.rbi +66 -0
  282. data/rbi/zavudev/resources/sub_accounts.rbi +119 -0
  283. data/rbi/zavudev/resources/templates.rbi +9 -0
  284. data/rbi/zavudev/resources/urls.rbi +60 -0
  285. data/rbi/zavudev/resources/usage.rbi +22 -0
  286. data/sig/zavudev/client.rbs +16 -0
  287. data/sig/zavudev/models/balance_retrieve_params.rbs +15 -0
  288. data/sig/zavudev/models/balance_retrieve_response.rbs +42 -0
  289. data/sig/zavudev/models/broadcast_contact.rbs +9 -0
  290. data/sig/zavudev/models/broadcast_content.rbs +9 -0
  291. data/sig/zavudev/models/broadcast_escalate_review_params.rbs +23 -0
  292. data/sig/zavudev/models/broadcast_escalate_review_response.rbs +13 -0
  293. data/sig/zavudev/models/broadcast_retry_review_params.rbs +23 -0
  294. data/sig/zavudev/models/broadcast_retry_review_response.rbs +13 -0
  295. data/sig/zavudev/models/broadcasts/contact_add_params.rbs +13 -1
  296. data/sig/zavudev/models/contact.rbs +6 -153
  297. data/sig/zavudev/models/contact_channel.rbs +150 -0
  298. data/sig/zavudev/models/contact_create_params.rbs +97 -0
  299. data/sig/zavudev/models/contact_dismiss_merge_suggestion_params.rbs +23 -0
  300. data/sig/zavudev/models/contact_merge_params.rbs +28 -0
  301. data/sig/zavudev/models/contacts/channel_add_params.rbs +73 -0
  302. data/sig/zavudev/models/contacts/channel_add_response.rbs +15 -0
  303. data/sig/zavudev/models/contacts/channel_remove_params.rbs +30 -0
  304. data/sig/zavudev/models/contacts/channel_set_primary_params.rbs +30 -0
  305. data/sig/zavudev/models/contacts/channel_set_primary_response.rbs +15 -0
  306. data/sig/zavudev/models/contacts/channel_update_params.rbs +52 -0
  307. data/sig/zavudev/models/contacts/channel_update_response.rbs +15 -0
  308. data/sig/zavudev/models/data_export.rbs +102 -0
  309. data/sig/zavudev/models/export_create_params.rbs +59 -0
  310. data/sig/zavudev/models/export_create_response.rbs +13 -0
  311. data/sig/zavudev/models/export_list_params.rbs +57 -0
  312. data/sig/zavudev/models/export_retrieve_params.rbs +23 -0
  313. data/sig/zavudev/models/export_retrieve_response.rbs +13 -0
  314. data/sig/zavudev/models/invitation.rbs +104 -0
  315. data/sig/zavudev/models/invitation_cancel_params.rbs +23 -0
  316. data/sig/zavudev/models/invitation_cancel_response.rbs +13 -0
  317. data/sig/zavudev/models/invitation_create_params.rbs +63 -0
  318. data/sig/zavudev/models/invitation_create_response.rbs +13 -0
  319. data/sig/zavudev/models/invitation_list_params.rbs +58 -0
  320. data/sig/zavudev/models/invitation_retrieve_params.rbs +23 -0
  321. data/sig/zavudev/models/invitation_retrieve_response.rbs +13 -0
  322. data/sig/zavudev/models/message_content.rbs +66 -0
  323. data/sig/zavudev/models/message_type.rbs +2 -0
  324. data/sig/zavudev/models/number_10dlc/brand_create_params.rbs +141 -0
  325. data/sig/zavudev/models/number_10dlc/brand_create_response.rbs +15 -0
  326. data/sig/zavudev/models/number_10dlc/brand_delete_params.rbs +25 -0
  327. data/sig/zavudev/models/number_10dlc/brand_list_params.rbs +34 -0
  328. data/sig/zavudev/models/number_10dlc/brand_list_use_cases_params.rbs +17 -0
  329. data/sig/zavudev/models/number_10dlc/brand_list_use_cases_response.rbs +38 -0
  330. data/sig/zavudev/models/number_10dlc/brand_retrieve_params.rbs +25 -0
  331. data/sig/zavudev/models/number_10dlc/brand_retrieve_response.rbs +16 -0
  332. data/sig/zavudev/models/number_10dlc/brand_submit_params.rbs +25 -0
  333. data/sig/zavudev/models/number_10dlc/brand_submit_response.rbs +15 -0
  334. data/sig/zavudev/models/number_10dlc/brand_sync_status_params.rbs +25 -0
  335. data/sig/zavudev/models/number_10dlc/brand_sync_status_response.rbs +16 -0
  336. data/sig/zavudev/models/number_10dlc/brand_update_params.rbs +168 -0
  337. data/sig/zavudev/models/number_10dlc/brand_update_response.rbs +15 -0
  338. data/sig/zavudev/models/number_10dlc/campaign_create_params.rbs +128 -0
  339. data/sig/zavudev/models/number_10dlc/campaign_create_response.rbs +16 -0
  340. data/sig/zavudev/models/number_10dlc/campaign_delete_params.rbs +25 -0
  341. data/sig/zavudev/models/number_10dlc/campaign_list_params.rbs +40 -0
  342. data/sig/zavudev/models/number_10dlc/campaign_retrieve_params.rbs +25 -0
  343. data/sig/zavudev/models/number_10dlc/campaign_retrieve_response.rbs +16 -0
  344. data/sig/zavudev/models/number_10dlc/campaign_submit_params.rbs +25 -0
  345. data/sig/zavudev/models/number_10dlc/campaign_submit_response.rbs +16 -0
  346. data/sig/zavudev/models/number_10dlc/campaign_sync_status_params.rbs +25 -0
  347. data/sig/zavudev/models/number_10dlc/campaign_sync_status_response.rbs +16 -0
  348. data/sig/zavudev/models/number_10dlc/campaign_update_params.rbs +77 -0
  349. data/sig/zavudev/models/number_10dlc/campaign_update_response.rbs +16 -0
  350. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_assign_params.rbs +32 -0
  351. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_assign_response.rbs +24 -0
  352. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_list_params.rbs +27 -0
  353. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_list_response.rbs +29 -0
  354. data/sig/zavudev/models/number_10dlc/campaigns/phone_number_unassign_params.rbs +32 -0
  355. data/sig/zavudev/models/number_10dlc/campaigns/ten_dlc_phone_number_assignment.rbs +71 -0
  356. data/sig/zavudev/models/number_10dlc/ten_dlc_brand.rbs +179 -0
  357. data/sig/zavudev/models/number_10dlc/ten_dlc_campaign.rbs +175 -0
  358. data/sig/zavudev/models/plan_retrieve_params.rbs +15 -0
  359. data/sig/zavudev/models/plan_retrieve_response.rbs +158 -0
  360. data/sig/zavudev/models/senders/agent/agent_flow.rbs +8 -100
  361. data/sig/zavudev/models/senders/agent/agent_tool.rbs +4 -57
  362. data/sig/zavudev/models/senders/agent/flow_create_params.rbs +8 -100
  363. data/sig/zavudev/models/senders/agent/flow_step.rbs +55 -0
  364. data/sig/zavudev/models/senders/agent/flow_trigger.rbs +51 -0
  365. data/sig/zavudev/models/senders/agent/flow_update_params.rbs +12 -104
  366. data/sig/zavudev/models/senders/agent/tool_create_params.rbs +4 -57
  367. data/sig/zavudev/models/senders/agent/tool_parameters.rbs +60 -0
  368. data/sig/zavudev/models/senders/agent/tool_update_params.rbs +6 -59
  369. data/sig/zavudev/models/senders/whats_app_sync_contacts.rbs +45 -0
  370. data/sig/zavudev/models/senders/whats_app_sync_history.rbs +52 -0
  371. data/sig/zavudev/models/senders/whats_app_sync_status.rbs +56 -0
  372. data/sig/zavudev/models/senders/whatsapp_sync_retrieve_params.rbs +25 -0
  373. data/sig/zavudev/models/senders/whatsapp_sync_retrieve_response.rbs +16 -0
  374. data/sig/zavudev/models/senders/whatsapp_sync_start_contacts_sync_params.rbs +25 -0
  375. data/sig/zavudev/models/senders/whatsapp_sync_start_contacts_sync_response.rbs +24 -0
  376. data/sig/zavudev/models/senders/whatsapp_sync_start_history_sync_params.rbs +25 -0
  377. data/sig/zavudev/models/senders/whatsapp_sync_start_history_sync_response.rbs +24 -0
  378. data/sig/zavudev/models/sub_account.rbs +73 -0
  379. data/sig/zavudev/models/sub_account_create_params.rbs +47 -0
  380. data/sig/zavudev/models/sub_account_create_response.rbs +13 -0
  381. data/sig/zavudev/models/sub_account_deactivate_params.rbs +20 -0
  382. data/sig/zavudev/models/sub_account_deactivate_response.rbs +16 -0
  383. data/sig/zavudev/models/sub_account_get_balance_params.rbs +20 -0
  384. data/sig/zavudev/models/sub_account_get_balance_response.rbs +42 -0
  385. data/sig/zavudev/models/sub_account_list_params.rbs +32 -0
  386. data/sig/zavudev/models/sub_account_retrieve_params.rbs +20 -0
  387. data/sig/zavudev/models/sub_account_retrieve_response.rbs +13 -0
  388. data/sig/zavudev/models/sub_account_update_params.rbs +72 -0
  389. data/sig/zavudev/models/sub_account_update_response.rbs +13 -0
  390. data/sig/zavudev/models/sub_accounts/api_key_create_params.rbs +60 -0
  391. data/sig/zavudev/models/sub_accounts/api_key_create_response.rbs +63 -0
  392. data/sig/zavudev/models/sub_accounts/api_key_list_params.rbs +22 -0
  393. data/sig/zavudev/models/sub_accounts/api_key_list_response.rbs +94 -0
  394. data/sig/zavudev/models/sub_accounts/api_key_revoke_params.rbs +30 -0
  395. data/sig/zavudev/models/template.rbs +7 -0
  396. data/sig/zavudev/models/template_create_params.rbs +43 -0
  397. data/sig/zavudev/models/url_list_verified_params.rbs +57 -0
  398. data/sig/zavudev/models/url_retrieve_details_params.rbs +23 -0
  399. data/sig/zavudev/models/url_retrieve_details_response.rbs +13 -0
  400. data/sig/zavudev/models/url_submit_for_verification_params.rbs +20 -0
  401. data/sig/zavudev/models/url_submit_for_verification_response.rbs +13 -0
  402. data/sig/zavudev/models/usage_retrieve_params.rbs +15 -0
  403. data/sig/zavudev/models/usage_retrieve_response.rbs +69 -0
  404. data/sig/zavudev/models/verified_url.rbs +80 -0
  405. data/sig/zavudev/models.rbs +64 -0
  406. data/sig/zavudev/resources/balance.rbs +11 -0
  407. data/sig/zavudev/resources/broadcasts.rbs +10 -0
  408. data/sig/zavudev/resources/contacts/channels.rbs +40 -0
  409. data/sig/zavudev/resources/contacts.rbs +20 -0
  410. data/sig/zavudev/resources/exports.rbs +26 -0
  411. data/sig/zavudev/resources/invitations.rbs +34 -0
  412. data/sig/zavudev/resources/number_10dlc/brands.rbs +82 -0
  413. data/sig/zavudev/resources/number_10dlc/campaigns/phone_numbers.rbs +28 -0
  414. data/sig/zavudev/resources/number_10dlc/campaigns.rbs +73 -0
  415. data/sig/zavudev/resources/number_10dlc.rbs +11 -0
  416. data/sig/zavudev/resources/plan.rbs +11 -0
  417. data/sig/zavudev/resources/senders/agent/flows.rbs +4 -4
  418. data/sig/zavudev/resources/senders/agent/tools.rbs +2 -2
  419. data/sig/zavudev/resources/senders/whatsapp_sync.rbs +24 -0
  420. data/sig/zavudev/resources/senders.rbs +2 -0
  421. data/sig/zavudev/resources/sub_accounts/api_keys.rbs +28 -0
  422. data/sig/zavudev/resources/sub_accounts.rbs +48 -0
  423. data/sig/zavudev/resources/templates.rbs +3 -0
  424. data/sig/zavudev/resources/urls.rbs +24 -0
  425. data/sig/zavudev/resources/usage.rbs +11 -0
  426. metadata +356 -2
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Zavudev
4
+ module Models
5
+ class BroadcastRetryReviewParams < Zavudev::Internal::Type::BaseModel
6
+ extend Zavudev::Internal::Type::RequestParameters::Converter
7
+ include Zavudev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Zavudev::BroadcastRetryReviewParams, Zavudev::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Zavudev::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Zavudev::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+
3
+ module Zavudev
4
+ module Models
5
+ class BroadcastRetryReviewResponse < Zavudev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Zavudev::Models::BroadcastRetryReviewResponse,
10
+ Zavudev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(Zavudev::Broadcast) }
15
+ attr_reader :broadcast
16
+
17
+ sig { params(broadcast: Zavudev::Broadcast::OrHash).void }
18
+ attr_writer :broadcast
19
+
20
+ sig do
21
+ params(broadcast: Zavudev::Broadcast::OrHash).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast:)
24
+ end
25
+
26
+ sig { override.returns({ broadcast: Zavudev::Broadcast }) }
27
+ def to_hash
28
+ end
29
+ end
30
+ end
31
+ end
@@ -66,7 +66,18 @@ module Zavudev
66
66
  sig { returns(String) }
67
67
  attr_accessor :recipient
68
68
 
69
- # Per-contact template variables to personalize the message.
69
+ # Per-contact button variables for dynamic URL/OTP buttons. Keys are the button
70
+ # index (0, 1, 2).
71
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
72
+ attr_reader :template_button_variables
73
+
74
+ sig do
75
+ params(template_button_variables: T::Hash[Symbol, String]).void
76
+ end
77
+ attr_writer :template_button_variables
78
+
79
+ # Per-contact body variables. Keys are positions (1, 2, ...) matching the order
80
+ # placeholders appear in the template body.
70
81
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
71
82
  attr_reader :template_variables
72
83
 
@@ -76,20 +87,29 @@ module Zavudev
76
87
  sig do
77
88
  params(
78
89
  recipient: String,
90
+ template_button_variables: T::Hash[Symbol, String],
79
91
  template_variables: T::Hash[Symbol, String]
80
92
  ).returns(T.attached_class)
81
93
  end
82
94
  def self.new(
83
95
  # Phone number (E.164) or email address.
84
96
  recipient:,
85
- # Per-contact template variables to personalize the message.
97
+ # Per-contact button variables for dynamic URL/OTP buttons. Keys are the button
98
+ # index (0, 1, 2).
99
+ template_button_variables: nil,
100
+ # Per-contact body variables. Keys are positions (1, 2, ...) matching the order
101
+ # placeholders appear in the template body.
86
102
  template_variables: nil
87
103
  )
88
104
  end
89
105
 
90
106
  sig do
91
107
  override.returns(
92
- { recipient: String, template_variables: T::Hash[Symbol, String] }
108
+ {
109
+ recipient: String,
110
+ template_button_variables: T::Hash[Symbol, String],
111
+ template_variables: T::Hash[Symbol, String]
112
+ }
93
113
  )
94
114
  end
95
115
  def to_hash
@@ -24,10 +24,10 @@ module Zavudev
24
24
  attr_accessor :verified
25
25
 
26
26
  # All communication channels for this contact.
27
- sig { returns(T.nilable(T::Array[Zavudev::Contact::Channel])) }
27
+ sig { returns(T.nilable(T::Array[Zavudev::ContactChannel])) }
28
28
  attr_reader :channels
29
29
 
30
- sig { params(channels: T::Array[Zavudev::Contact::Channel::OrHash]).void }
30
+ sig { params(channels: T::Array[Zavudev::ContactChannel::OrHash]).void }
31
31
  attr_writer :channels
32
32
 
33
33
  sig { returns(T.nilable(String)) }
@@ -97,7 +97,7 @@ module Zavudev
97
97
  created_at: Time,
98
98
  metadata: T::Hash[Symbol, String],
99
99
  verified: T::Boolean,
100
- channels: T::Array[Zavudev::Contact::Channel::OrHash],
100
+ channels: T::Array[Zavudev::ContactChannel::OrHash],
101
101
  country_code: String,
102
102
  default_channel: Zavudev::Contact::DefaultChannel::OrSymbol,
103
103
  display_name: String,
@@ -146,7 +146,7 @@ module Zavudev
146
146
  created_at: Time,
147
147
  metadata: T::Hash[Symbol, String],
148
148
  verified: T::Boolean,
149
- channels: T::Array[Zavudev::Contact::Channel],
149
+ channels: T::Array[Zavudev::ContactChannel],
150
150
  country_code: String,
151
151
  default_channel: Zavudev::Contact::DefaultChannel::TaggedSymbol,
152
152
  display_name: String,
@@ -162,237 +162,6 @@ module Zavudev
162
162
  def to_hash
163
163
  end
164
164
 
165
- class Channel < Zavudev::Internal::Type::BaseModel
166
- OrHash =
167
- T.type_alias do
168
- T.any(Zavudev::Contact::Channel, Zavudev::Internal::AnyHash)
169
- end
170
-
171
- sig { returns(String) }
172
- attr_accessor :id
173
-
174
- # Channel type.
175
- sig { returns(Zavudev::Contact::Channel::Channel::TaggedSymbol) }
176
- attr_accessor :channel
177
-
178
- sig { returns(Time) }
179
- attr_accessor :created_at
180
-
181
- # Channel identifier (phone number or email address).
182
- sig { returns(String) }
183
- attr_accessor :identifier
184
-
185
- # Whether this is the primary channel for its type.
186
- sig { returns(T::Boolean) }
187
- attr_accessor :is_primary
188
-
189
- # Whether this channel has been verified.
190
- sig { returns(T::Boolean) }
191
- attr_accessor :verified
192
-
193
- # ISO country code for phone numbers.
194
- sig { returns(T.nilable(String)) }
195
- attr_reader :country_code
196
-
197
- sig { params(country_code: String).void }
198
- attr_writer :country_code
199
-
200
- # Optional label for the channel.
201
- sig { returns(T.nilable(String)) }
202
- attr_reader :label
203
-
204
- sig { params(label: String).void }
205
- attr_writer :label
206
-
207
- # Last time a message was received on this channel.
208
- sig { returns(T.nilable(Time)) }
209
- attr_reader :last_inbound_at
210
-
211
- sig { params(last_inbound_at: Time).void }
212
- attr_writer :last_inbound_at
213
-
214
- sig { returns(T.nilable(T::Hash[Symbol, String])) }
215
- attr_reader :metadata
216
-
217
- sig { params(metadata: T::Hash[Symbol, String]).void }
218
- attr_writer :metadata
219
-
220
- # Delivery metrics for this channel.
221
- sig { returns(T.nilable(Zavudev::Contact::Channel::Metrics)) }
222
- attr_reader :metrics
223
-
224
- sig { params(metrics: Zavudev::Contact::Channel::Metrics::OrHash).void }
225
- attr_writer :metrics
226
-
227
- sig { returns(T.nilable(Time)) }
228
- attr_reader :updated_at
229
-
230
- sig { params(updated_at: Time).void }
231
- attr_writer :updated_at
232
-
233
- # A communication channel for a contact.
234
- sig do
235
- params(
236
- id: String,
237
- channel: Zavudev::Contact::Channel::Channel::OrSymbol,
238
- created_at: Time,
239
- identifier: String,
240
- is_primary: T::Boolean,
241
- verified: T::Boolean,
242
- country_code: String,
243
- label: String,
244
- last_inbound_at: Time,
245
- metadata: T::Hash[Symbol, String],
246
- metrics: Zavudev::Contact::Channel::Metrics::OrHash,
247
- updated_at: Time
248
- ).returns(T.attached_class)
249
- end
250
- def self.new(
251
- id:,
252
- # Channel type.
253
- channel:,
254
- created_at:,
255
- # Channel identifier (phone number or email address).
256
- identifier:,
257
- # Whether this is the primary channel for its type.
258
- is_primary:,
259
- # Whether this channel has been verified.
260
- verified:,
261
- # ISO country code for phone numbers.
262
- country_code: nil,
263
- # Optional label for the channel.
264
- label: nil,
265
- # Last time a message was received on this channel.
266
- last_inbound_at: nil,
267
- metadata: nil,
268
- # Delivery metrics for this channel.
269
- metrics: nil,
270
- updated_at: nil
271
- )
272
- end
273
-
274
- sig do
275
- override.returns(
276
- {
277
- id: String,
278
- channel: Zavudev::Contact::Channel::Channel::TaggedSymbol,
279
- created_at: Time,
280
- identifier: String,
281
- is_primary: T::Boolean,
282
- verified: T::Boolean,
283
- country_code: String,
284
- label: String,
285
- last_inbound_at: Time,
286
- metadata: T::Hash[Symbol, String],
287
- metrics: Zavudev::Contact::Channel::Metrics,
288
- updated_at: Time
289
- }
290
- )
291
- end
292
- def to_hash
293
- end
294
-
295
- # Channel type.
296
- module Channel
297
- extend Zavudev::Internal::Type::Enum
298
-
299
- TaggedSymbol =
300
- T.type_alias { T.all(Symbol, Zavudev::Contact::Channel::Channel) }
301
- OrSymbol = T.type_alias { T.any(Symbol, String) }
302
-
303
- SMS = T.let(:sms, Zavudev::Contact::Channel::Channel::TaggedSymbol)
304
- WHATSAPP =
305
- T.let(:whatsapp, Zavudev::Contact::Channel::Channel::TaggedSymbol)
306
- EMAIL =
307
- T.let(:email, Zavudev::Contact::Channel::Channel::TaggedSymbol)
308
- TELEGRAM =
309
- T.let(:telegram, Zavudev::Contact::Channel::Channel::TaggedSymbol)
310
- VOICE =
311
- T.let(:voice, Zavudev::Contact::Channel::Channel::TaggedSymbol)
312
-
313
- sig do
314
- override.returns(
315
- T::Array[Zavudev::Contact::Channel::Channel::TaggedSymbol]
316
- )
317
- end
318
- def self.values
319
- end
320
- end
321
-
322
- class Metrics < Zavudev::Internal::Type::BaseModel
323
- OrHash =
324
- T.type_alias do
325
- T.any(
326
- Zavudev::Contact::Channel::Metrics,
327
- Zavudev::Internal::AnyHash
328
- )
329
- end
330
-
331
- sig { returns(T.nilable(Float)) }
332
- attr_reader :avg_delivery_time_ms
333
-
334
- sig { params(avg_delivery_time_ms: Float).void }
335
- attr_writer :avg_delivery_time_ms
336
-
337
- sig { returns(T.nilable(Integer)) }
338
- attr_reader :failure_count
339
-
340
- sig { params(failure_count: Integer).void }
341
- attr_writer :failure_count
342
-
343
- sig { returns(T.nilable(Time)) }
344
- attr_reader :last_success_at
345
-
346
- sig { params(last_success_at: Time).void }
347
- attr_writer :last_success_at
348
-
349
- sig { returns(T.nilable(Integer)) }
350
- attr_reader :success_count
351
-
352
- sig { params(success_count: Integer).void }
353
- attr_writer :success_count
354
-
355
- sig { returns(T.nilable(Integer)) }
356
- attr_reader :total_attempts
357
-
358
- sig { params(total_attempts: Integer).void }
359
- attr_writer :total_attempts
360
-
361
- # Delivery metrics for this channel.
362
- sig do
363
- params(
364
- avg_delivery_time_ms: Float,
365
- failure_count: Integer,
366
- last_success_at: Time,
367
- success_count: Integer,
368
- total_attempts: Integer
369
- ).returns(T.attached_class)
370
- end
371
- def self.new(
372
- avg_delivery_time_ms: nil,
373
- failure_count: nil,
374
- last_success_at: nil,
375
- success_count: nil,
376
- total_attempts: nil
377
- )
378
- end
379
-
380
- sig do
381
- override.returns(
382
- {
383
- avg_delivery_time_ms: Float,
384
- failure_count: Integer,
385
- last_success_at: Time,
386
- success_count: Integer,
387
- total_attempts: Integer
388
- }
389
- )
390
- end
391
- def to_hash
392
- end
393
- end
394
- end
395
-
396
165
  # Preferred channel for this contact.
397
166
  module DefaultChannel
398
167
  extend Zavudev::Internal::Type::Enum
@@ -0,0 +1,231 @@
1
+ # typed: strong
2
+
3
+ module Zavudev
4
+ module Models
5
+ class ContactChannel < Zavudev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Zavudev::ContactChannel, Zavudev::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :id
13
+
14
+ # Channel type.
15
+ sig { returns(Zavudev::ContactChannel::Channel::TaggedSymbol) }
16
+ attr_accessor :channel
17
+
18
+ sig { returns(Time) }
19
+ attr_accessor :created_at
20
+
21
+ # Channel identifier (phone number or email address).
22
+ sig { returns(String) }
23
+ attr_accessor :identifier
24
+
25
+ # Whether this is the primary channel for its type.
26
+ sig { returns(T::Boolean) }
27
+ attr_accessor :is_primary
28
+
29
+ # Whether this channel has been verified.
30
+ sig { returns(T::Boolean) }
31
+ attr_accessor :verified
32
+
33
+ # ISO country code for phone numbers.
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :country_code
36
+
37
+ sig { params(country_code: String).void }
38
+ attr_writer :country_code
39
+
40
+ # Optional label for the channel.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_reader :label
43
+
44
+ sig { params(label: String).void }
45
+ attr_writer :label
46
+
47
+ # Last time a message was received on this channel.
48
+ sig { returns(T.nilable(Time)) }
49
+ attr_reader :last_inbound_at
50
+
51
+ sig { params(last_inbound_at: Time).void }
52
+ attr_writer :last_inbound_at
53
+
54
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
55
+ attr_reader :metadata
56
+
57
+ sig { params(metadata: T::Hash[Symbol, String]).void }
58
+ attr_writer :metadata
59
+
60
+ # Delivery metrics for this channel.
61
+ sig { returns(T.nilable(Zavudev::ContactChannel::Metrics)) }
62
+ attr_reader :metrics
63
+
64
+ sig { params(metrics: Zavudev::ContactChannel::Metrics::OrHash).void }
65
+ attr_writer :metrics
66
+
67
+ sig { returns(T.nilable(Time)) }
68
+ attr_reader :updated_at
69
+
70
+ sig { params(updated_at: Time).void }
71
+ attr_writer :updated_at
72
+
73
+ # A communication channel for a contact.
74
+ sig do
75
+ params(
76
+ id: String,
77
+ channel: Zavudev::ContactChannel::Channel::OrSymbol,
78
+ created_at: Time,
79
+ identifier: String,
80
+ is_primary: T::Boolean,
81
+ verified: T::Boolean,
82
+ country_code: String,
83
+ label: String,
84
+ last_inbound_at: Time,
85
+ metadata: T::Hash[Symbol, String],
86
+ metrics: Zavudev::ContactChannel::Metrics::OrHash,
87
+ updated_at: Time
88
+ ).returns(T.attached_class)
89
+ end
90
+ def self.new(
91
+ id:,
92
+ # Channel type.
93
+ channel:,
94
+ created_at:,
95
+ # Channel identifier (phone number or email address).
96
+ identifier:,
97
+ # Whether this is the primary channel for its type.
98
+ is_primary:,
99
+ # Whether this channel has been verified.
100
+ verified:,
101
+ # ISO country code for phone numbers.
102
+ country_code: nil,
103
+ # Optional label for the channel.
104
+ label: nil,
105
+ # Last time a message was received on this channel.
106
+ last_inbound_at: nil,
107
+ metadata: nil,
108
+ # Delivery metrics for this channel.
109
+ metrics: nil,
110
+ updated_at: nil
111
+ )
112
+ end
113
+
114
+ sig do
115
+ override.returns(
116
+ {
117
+ id: String,
118
+ channel: Zavudev::ContactChannel::Channel::TaggedSymbol,
119
+ created_at: Time,
120
+ identifier: String,
121
+ is_primary: T::Boolean,
122
+ verified: T::Boolean,
123
+ country_code: String,
124
+ label: String,
125
+ last_inbound_at: Time,
126
+ metadata: T::Hash[Symbol, String],
127
+ metrics: Zavudev::ContactChannel::Metrics,
128
+ updated_at: Time
129
+ }
130
+ )
131
+ end
132
+ def to_hash
133
+ end
134
+
135
+ # Channel type.
136
+ module Channel
137
+ extend Zavudev::Internal::Type::Enum
138
+
139
+ TaggedSymbol =
140
+ T.type_alias { T.all(Symbol, Zavudev::ContactChannel::Channel) }
141
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
142
+
143
+ SMS = T.let(:sms, Zavudev::ContactChannel::Channel::TaggedSymbol)
144
+ WHATSAPP =
145
+ T.let(:whatsapp, Zavudev::ContactChannel::Channel::TaggedSymbol)
146
+ EMAIL = T.let(:email, Zavudev::ContactChannel::Channel::TaggedSymbol)
147
+ TELEGRAM =
148
+ T.let(:telegram, Zavudev::ContactChannel::Channel::TaggedSymbol)
149
+ VOICE = T.let(:voice, Zavudev::ContactChannel::Channel::TaggedSymbol)
150
+
151
+ sig do
152
+ override.returns(
153
+ T::Array[Zavudev::ContactChannel::Channel::TaggedSymbol]
154
+ )
155
+ end
156
+ def self.values
157
+ end
158
+ end
159
+
160
+ class Metrics < Zavudev::Internal::Type::BaseModel
161
+ OrHash =
162
+ T.type_alias do
163
+ T.any(Zavudev::ContactChannel::Metrics, Zavudev::Internal::AnyHash)
164
+ end
165
+
166
+ sig { returns(T.nilable(Float)) }
167
+ attr_reader :avg_delivery_time_ms
168
+
169
+ sig { params(avg_delivery_time_ms: Float).void }
170
+ attr_writer :avg_delivery_time_ms
171
+
172
+ sig { returns(T.nilable(Integer)) }
173
+ attr_reader :failure_count
174
+
175
+ sig { params(failure_count: Integer).void }
176
+ attr_writer :failure_count
177
+
178
+ sig { returns(T.nilable(Time)) }
179
+ attr_reader :last_success_at
180
+
181
+ sig { params(last_success_at: Time).void }
182
+ attr_writer :last_success_at
183
+
184
+ sig { returns(T.nilable(Integer)) }
185
+ attr_reader :success_count
186
+
187
+ sig { params(success_count: Integer).void }
188
+ attr_writer :success_count
189
+
190
+ sig { returns(T.nilable(Integer)) }
191
+ attr_reader :total_attempts
192
+
193
+ sig { params(total_attempts: Integer).void }
194
+ attr_writer :total_attempts
195
+
196
+ # Delivery metrics for this channel.
197
+ sig do
198
+ params(
199
+ avg_delivery_time_ms: Float,
200
+ failure_count: Integer,
201
+ last_success_at: Time,
202
+ success_count: Integer,
203
+ total_attempts: Integer
204
+ ).returns(T.attached_class)
205
+ end
206
+ def self.new(
207
+ avg_delivery_time_ms: nil,
208
+ failure_count: nil,
209
+ last_success_at: nil,
210
+ success_count: nil,
211
+ total_attempts: nil
212
+ )
213
+ end
214
+
215
+ sig do
216
+ override.returns(
217
+ {
218
+ avg_delivery_time_ms: Float,
219
+ failure_count: Integer,
220
+ last_success_at: Time,
221
+ success_count: Integer,
222
+ total_attempts: Integer
223
+ }
224
+ )
225
+ end
226
+ def to_hash
227
+ end
228
+ end
229
+ end
230
+ end
231
+ end