vapi-server-sdk 0.0.0a7__py3-none-any.whl

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 (571) hide show
  1. vapi/__init__.py +1081 -0
  2. vapi/analytics/__init__.py +2 -0
  3. vapi/analytics/client.py +159 -0
  4. vapi/assistants/__init__.py +21 -0
  5. vapi/assistants/client.py +1593 -0
  6. vapi/assistants/types/__init__.py +19 -0
  7. vapi/assistants/types/update_assistant_dto_background_sound.py +5 -0
  8. vapi/assistants/types/update_assistant_dto_client_messages_item.py +23 -0
  9. vapi/assistants/types/update_assistant_dto_first_message_mode.py +10 -0
  10. vapi/assistants/types/update_assistant_dto_model.py +26 -0
  11. vapi/assistants/types/update_assistant_dto_server_messages_item.py +24 -0
  12. vapi/assistants/types/update_assistant_dto_transcriber.py +8 -0
  13. vapi/assistants/types/update_assistant_dto_voice.py +24 -0
  14. vapi/blocks/__init__.py +25 -0
  15. vapi/blocks/client.py +804 -0
  16. vapi/blocks/types/__init__.py +23 -0
  17. vapi/blocks/types/blocks_create_request.py +8 -0
  18. vapi/blocks/types/blocks_create_response.py +8 -0
  19. vapi/blocks/types/blocks_delete_response.py +8 -0
  20. vapi/blocks/types/blocks_get_response.py +8 -0
  21. vapi/blocks/types/blocks_list_response_item.py +8 -0
  22. vapi/blocks/types/blocks_update_response.py +8 -0
  23. vapi/blocks/types/update_block_dto_messages_item.py +7 -0
  24. vapi/blocks/types/update_block_dto_steps_item.py +7 -0
  25. vapi/blocks/types/update_block_dto_tool.py +20 -0
  26. vapi/calls/__init__.py +2 -0
  27. vapi/calls/client.py +776 -0
  28. vapi/client.py +172 -0
  29. vapi/core/__init__.py +50 -0
  30. vapi/core/api_error.py +15 -0
  31. vapi/core/client_wrapper.py +76 -0
  32. vapi/core/datetime_utils.py +28 -0
  33. vapi/core/file.py +62 -0
  34. vapi/core/http_client.py +487 -0
  35. vapi/core/jsonable_encoder.py +101 -0
  36. vapi/core/pagination.py +88 -0
  37. vapi/core/pydantic_utilities.py +296 -0
  38. vapi/core/query_encoder.py +58 -0
  39. vapi/core/remove_none_from_dict.py +11 -0
  40. vapi/core/request_options.py +32 -0
  41. vapi/core/serialization.py +272 -0
  42. vapi/environment.py +7 -0
  43. vapi/errors/__init__.py +5 -0
  44. vapi/errors/bad_request_error.py +9 -0
  45. vapi/files/__init__.py +2 -0
  46. vapi/files/client.py +544 -0
  47. vapi/logs/__init__.py +5 -0
  48. vapi/logs/client.py +367 -0
  49. vapi/logs/types/__init__.py +6 -0
  50. vapi/logs/types/logs_get_request_sort_order.py +5 -0
  51. vapi/logs/types/logs_get_request_type.py +5 -0
  52. vapi/phone_numbers/__init__.py +21 -0
  53. vapi/phone_numbers/client.py +735 -0
  54. vapi/phone_numbers/types/__init__.py +19 -0
  55. vapi/phone_numbers/types/phone_numbers_create_request.py +11 -0
  56. vapi/phone_numbers/types/phone_numbers_create_response.py +9 -0
  57. vapi/phone_numbers/types/phone_numbers_delete_response.py +9 -0
  58. vapi/phone_numbers/types/phone_numbers_get_response.py +9 -0
  59. vapi/phone_numbers/types/phone_numbers_list_response_item.py +9 -0
  60. vapi/phone_numbers/types/phone_numbers_update_response.py +9 -0
  61. vapi/phone_numbers/types/update_phone_number_dto_fallback_destination.py +7 -0
  62. vapi/py.typed +0 -0
  63. vapi/squads/__init__.py +2 -0
  64. vapi/squads/client.py +723 -0
  65. vapi/tools/__init__.py +21 -0
  66. vapi/tools/client.py +717 -0
  67. vapi/tools/types/__init__.py +19 -0
  68. vapi/tools/types/tools_create_request.py +20 -0
  69. vapi/tools/types/tools_create_response.py +12 -0
  70. vapi/tools/types/tools_delete_response.py +12 -0
  71. vapi/tools/types/tools_get_response.py +12 -0
  72. vapi/tools/types/tools_list_response_item.py +14 -0
  73. vapi/tools/types/tools_update_response.py +12 -0
  74. vapi/tools/types/update_tool_dto_messages_item.py +9 -0
  75. vapi/types/__init__.py +993 -0
  76. vapi/types/add_voice_to_provider_dto.py +34 -0
  77. vapi/types/analysis.py +38 -0
  78. vapi/types/analysis_cost.py +52 -0
  79. vapi/types/analysis_cost_analysis_type.py +5 -0
  80. vapi/types/analysis_cost_breakdown.py +80 -0
  81. vapi/types/analysis_plan.py +43 -0
  82. vapi/types/analytics_operation.py +34 -0
  83. vapi/types/analytics_operation_column.py +19 -0
  84. vapi/types/analytics_operation_operation.py +5 -0
  85. vapi/types/analytics_query.py +51 -0
  86. vapi/types/analytics_query_group_by_item.py +7 -0
  87. vapi/types/analytics_query_result.py +42 -0
  88. vapi/types/anthropic_credential.py +46 -0
  89. vapi/types/anthropic_model.py +91 -0
  90. vapi/types/anthropic_model_model.py +10 -0
  91. vapi/types/anthropic_model_tools_item.py +20 -0
  92. vapi/types/anyscale_credential.py +46 -0
  93. vapi/types/anyscale_model.py +90 -0
  94. vapi/types/anyscale_model_tools_item.py +20 -0
  95. vapi/types/artifact.py +66 -0
  96. vapi/types/artifact_messages_item.py +10 -0
  97. vapi/types/artifact_plan.py +70 -0
  98. vapi/types/assignment_mutation.py +85 -0
  99. vapi/types/assignment_mutation_conditions_item.py +7 -0
  100. vapi/types/assistant.py +330 -0
  101. vapi/types/assistant_background_sound.py +5 -0
  102. vapi/types/assistant_client_messages_item.py +23 -0
  103. vapi/types/assistant_first_message_mode.py +10 -0
  104. vapi/types/assistant_model.py +26 -0
  105. vapi/types/assistant_overrides.py +316 -0
  106. vapi/types/assistant_overrides_background_sound.py +5 -0
  107. vapi/types/assistant_overrides_client_messages_item.py +23 -0
  108. vapi/types/assistant_overrides_first_message_mode.py +10 -0
  109. vapi/types/assistant_overrides_model.py +26 -0
  110. vapi/types/assistant_overrides_server_messages_item.py +24 -0
  111. vapi/types/assistant_overrides_transcriber.py +8 -0
  112. vapi/types/assistant_overrides_voice.py +24 -0
  113. vapi/types/assistant_server_messages_item.py +24 -0
  114. vapi/types/assistant_transcriber.py +8 -0
  115. vapi/types/assistant_voice.py +24 -0
  116. vapi/types/azure_open_ai_credential.py +52 -0
  117. vapi/types/azure_open_ai_credential_models_item.py +17 -0
  118. vapi/types/azure_open_ai_credential_region.py +24 -0
  119. vapi/types/azure_voice.py +52 -0
  120. vapi/types/azure_voice_id.py +6 -0
  121. vapi/types/azure_voice_id_enum.py +5 -0
  122. vapi/types/block_complete_message.py +33 -0
  123. vapi/types/block_complete_message_conditions_item.py +7 -0
  124. vapi/types/block_start_message.py +33 -0
  125. vapi/types/block_start_message_conditions_item.py +7 -0
  126. vapi/types/bot_message.py +54 -0
  127. vapi/types/bucket_plan.py +72 -0
  128. vapi/types/buy_phone_number_dto.py +81 -0
  129. vapi/types/buy_phone_number_dto_fallback_destination.py +7 -0
  130. vapi/types/byo_phone_number.py +126 -0
  131. vapi/types/byo_phone_number_fallback_destination.py +7 -0
  132. vapi/types/byo_sip_trunk_credential.py +85 -0
  133. vapi/types/call.py +241 -0
  134. vapi/types/call_costs_item.py +11 -0
  135. vapi/types/call_destination.py +7 -0
  136. vapi/types/call_ended_reason.py +177 -0
  137. vapi/types/call_messages_item.py +10 -0
  138. vapi/types/call_paginated_response.py +32 -0
  139. vapi/types/call_phone_call_provider.py +5 -0
  140. vapi/types/call_phone_call_transport.py +5 -0
  141. vapi/types/call_status.py +5 -0
  142. vapi/types/call_type.py +5 -0
  143. vapi/types/callback_step.py +116 -0
  144. vapi/types/callback_step_block.py +11 -0
  145. vapi/types/cartesia_credential.py +46 -0
  146. vapi/types/cartesia_voice.py +58 -0
  147. vapi/types/cartesia_voice_language.py +5 -0
  148. vapi/types/cartesia_voice_model.py +5 -0
  149. vapi/types/chunk_plan.py +70 -0
  150. vapi/types/client_inbound_message.py +23 -0
  151. vapi/types/client_inbound_message_add_message.py +28 -0
  152. vapi/types/client_inbound_message_control.py +32 -0
  153. vapi/types/client_inbound_message_control_control.py +7 -0
  154. vapi/types/client_inbound_message_message.py +10 -0
  155. vapi/types/client_inbound_message_say.py +36 -0
  156. vapi/types/client_message.py +23 -0
  157. vapi/types/client_message_conversation_update.py +38 -0
  158. vapi/types/client_message_conversation_update_messages_item.py +12 -0
  159. vapi/types/client_message_hang.py +27 -0
  160. vapi/types/client_message_language_changed.py +27 -0
  161. vapi/types/client_message_message.py +28 -0
  162. vapi/types/client_message_metadata.py +27 -0
  163. vapi/types/client_message_model_output.py +27 -0
  164. vapi/types/client_message_speech_update.py +34 -0
  165. vapi/types/client_message_speech_update_role.py +5 -0
  166. vapi/types/client_message_speech_update_status.py +5 -0
  167. vapi/types/client_message_tool_calls.py +40 -0
  168. vapi/types/client_message_tool_calls_result.py +31 -0
  169. vapi/types/client_message_tool_calls_tool_with_tool_call_list_item.py +10 -0
  170. vapi/types/client_message_transcript.py +43 -0
  171. vapi/types/client_message_transcript_role.py +5 -0
  172. vapi/types/client_message_transcript_transcript_type.py +5 -0
  173. vapi/types/client_message_user_interrupted.py +22 -0
  174. vapi/types/client_message_voice_input.py +27 -0
  175. vapi/types/clone_voice_dto.py +37 -0
  176. vapi/types/condition.py +33 -0
  177. vapi/types/condition_operator.py +5 -0
  178. vapi/types/conversation_block.py +109 -0
  179. vapi/types/conversation_block_messages_item.py +7 -0
  180. vapi/types/cost_breakdown.py +78 -0
  181. vapi/types/create_anthropic_credential_dto.py +25 -0
  182. vapi/types/create_anyscale_credential_dto.py +25 -0
  183. vapi/types/create_assistant_dto.py +309 -0
  184. vapi/types/create_assistant_dto_background_sound.py +5 -0
  185. vapi/types/create_assistant_dto_client_messages_item.py +23 -0
  186. vapi/types/create_assistant_dto_first_message_mode.py +10 -0
  187. vapi/types/create_assistant_dto_model.py +26 -0
  188. vapi/types/create_assistant_dto_server_messages_item.py +24 -0
  189. vapi/types/create_assistant_dto_transcriber.py +8 -0
  190. vapi/types/create_assistant_dto_voice.py +24 -0
  191. vapi/types/create_azure_open_ai_credential_dto.py +31 -0
  192. vapi/types/create_azure_open_ai_credential_dto_models_item.py +17 -0
  193. vapi/types/create_azure_open_ai_credential_dto_region.py +24 -0
  194. vapi/types/create_byo_phone_number_dto.py +105 -0
  195. vapi/types/create_byo_phone_number_dto_fallback_destination.py +7 -0
  196. vapi/types/create_byo_sip_trunk_credential_dto.py +64 -0
  197. vapi/types/create_cartesia_credential_dto.py +25 -0
  198. vapi/types/create_conversation_block_dto.py +88 -0
  199. vapi/types/create_conversation_block_dto_messages_item.py +7 -0
  200. vapi/types/create_custom_llm_credential_dto.py +25 -0
  201. vapi/types/create_customer_dto.py +59 -0
  202. vapi/types/create_deep_infra_credential_dto.py +25 -0
  203. vapi/types/create_deepgram_credential_dto.py +32 -0
  204. vapi/types/create_dtmf_tool_dto.py +61 -0
  205. vapi/types/create_dtmf_tool_dto_messages_item.py +11 -0
  206. vapi/types/create_eleven_labs_credential_dto.py +25 -0
  207. vapi/types/create_end_call_tool_dto.py +61 -0
  208. vapi/types/create_end_call_tool_dto_messages_item.py +11 -0
  209. vapi/types/create_function_tool_dto.py +61 -0
  210. vapi/types/create_function_tool_dto_messages_item.py +11 -0
  211. vapi/types/create_gcp_credential_dto.py +41 -0
  212. vapi/types/create_ghl_tool_dto.py +63 -0
  213. vapi/types/create_ghl_tool_dto_messages_item.py +11 -0
  214. vapi/types/create_gladia_credential_dto.py +25 -0
  215. vapi/types/create_go_high_level_credential_dto.py +25 -0
  216. vapi/types/create_groq_credential_dto.py +25 -0
  217. vapi/types/create_lmnt_credential_dto.py +25 -0
  218. vapi/types/create_make_credential_dto.py +35 -0
  219. vapi/types/create_make_tool_dto.py +63 -0
  220. vapi/types/create_make_tool_dto_messages_item.py +11 -0
  221. vapi/types/create_open_ai_credential_dto.py +25 -0
  222. vapi/types/create_open_router_credential_dto.py +25 -0
  223. vapi/types/create_org_dto.py +63 -0
  224. vapi/types/create_outbound_call_dto.py +104 -0
  225. vapi/types/create_output_tool_dto.py +61 -0
  226. vapi/types/create_output_tool_dto_messages_item.py +11 -0
  227. vapi/types/create_perplexity_ai_credential_dto.py +25 -0
  228. vapi/types/create_play_ht_credential_dto.py +27 -0
  229. vapi/types/create_rime_ai_credential_dto.py +25 -0
  230. vapi/types/create_runpod_credential_dto.py +25 -0
  231. vapi/types/create_s_3_credential_dto.py +51 -0
  232. vapi/types/create_squad_dto.py +52 -0
  233. vapi/types/create_together_ai_credential_dto.py +25 -0
  234. vapi/types/create_token_dto.py +34 -0
  235. vapi/types/create_token_dto_tag.py +5 -0
  236. vapi/types/create_tool_call_block_dto.py +75 -0
  237. vapi/types/create_tool_call_block_dto_messages_item.py +7 -0
  238. vapi/types/create_tool_call_block_dto_tool.py +20 -0
  239. vapi/types/create_tool_template_dto.py +38 -0
  240. vapi/types/create_tool_template_dto_details.py +20 -0
  241. vapi/types/create_tool_template_dto_provider.py +5 -0
  242. vapi/types/create_tool_template_dto_provider_details.py +10 -0
  243. vapi/types/create_tool_template_dto_visibility.py +5 -0
  244. vapi/types/create_transfer_call_tool_dto.py +67 -0
  245. vapi/types/create_transfer_call_tool_dto_destinations_item.py +11 -0
  246. vapi/types/create_transfer_call_tool_dto_messages_item.py +11 -0
  247. vapi/types/create_twilio_credential_dto.py +27 -0
  248. vapi/types/create_twilio_phone_number_dto.py +92 -0
  249. vapi/types/create_twilio_phone_number_dto_fallback_destination.py +7 -0
  250. vapi/types/create_vapi_phone_number_dto.py +84 -0
  251. vapi/types/create_vapi_phone_number_dto_fallback_destination.py +7 -0
  252. vapi/types/create_voicemail_tool_dto.py +65 -0
  253. vapi/types/create_voicemail_tool_dto_messages_item.py +11 -0
  254. vapi/types/create_vonage_credential_dto.py +27 -0
  255. vapi/types/create_vonage_phone_number_dto.py +87 -0
  256. vapi/types/create_vonage_phone_number_dto_fallback_destination.py +7 -0
  257. vapi/types/create_web_call_dto.py +63 -0
  258. vapi/types/create_workflow_block_dto.py +78 -0
  259. vapi/types/create_workflow_block_dto_messages_item.py +7 -0
  260. vapi/types/create_workflow_block_dto_steps_item.py +10 -0
  261. vapi/types/custom_llm_credential.py +46 -0
  262. vapi/types/custom_llm_model.py +115 -0
  263. vapi/types/custom_llm_model_metadata_send_mode.py +5 -0
  264. vapi/types/custom_llm_model_tools_item.py +20 -0
  265. vapi/types/deep_infra_credential.py +46 -0
  266. vapi/types/deep_infra_model.py +90 -0
  267. vapi/types/deep_infra_model_tools_item.py +20 -0
  268. vapi/types/deepgram_credential.py +53 -0
  269. vapi/types/deepgram_transcriber.py +68 -0
  270. vapi/types/deepgram_transcriber_language.py +65 -0
  271. vapi/types/deepgram_transcriber_model.py +37 -0
  272. vapi/types/deepgram_voice.py +47 -0
  273. vapi/types/deepgram_voice_id.py +6 -0
  274. vapi/types/deepgram_voice_id_enum.py +10 -0
  275. vapi/types/dtmf_tool.py +82 -0
  276. vapi/types/dtmf_tool_messages_item.py +9 -0
  277. vapi/types/eleven_labs_credential.py +46 -0
  278. vapi/types/eleven_labs_voice.py +98 -0
  279. vapi/types/eleven_labs_voice_id.py +6 -0
  280. vapi/types/eleven_labs_voice_id_enum.py +24 -0
  281. vapi/types/eleven_labs_voice_model.py +8 -0
  282. vapi/types/end_call_tool.py +82 -0
  283. vapi/types/end_call_tool_messages_item.py +9 -0
  284. vapi/types/error.py +19 -0
  285. vapi/types/exact_replacement.py +40 -0
  286. vapi/types/file.py +57 -0
  287. vapi/types/file_status.py +5 -0
  288. vapi/types/format_plan.py +64 -0
  289. vapi/types/format_plan_replacements_item.py +7 -0
  290. vapi/types/function_tool.py +82 -0
  291. vapi/types/function_tool_messages_item.py +9 -0
  292. vapi/types/function_tool_provider_details.py +35 -0
  293. vapi/types/function_tool_with_tool_call.py +67 -0
  294. vapi/types/function_tool_with_tool_call_messages_item.py +11 -0
  295. vapi/types/gcp_credential.py +62 -0
  296. vapi/types/gcp_key.py +78 -0
  297. vapi/types/ghl_tool.py +85 -0
  298. vapi/types/ghl_tool_messages_item.py +9 -0
  299. vapi/types/ghl_tool_metadata.py +22 -0
  300. vapi/types/ghl_tool_provider_details.py +41 -0
  301. vapi/types/ghl_tool_with_tool_call.py +69 -0
  302. vapi/types/ghl_tool_with_tool_call_messages_item.py +11 -0
  303. vapi/types/gladia_credential.py +46 -0
  304. vapi/types/gladia_transcriber.py +56 -0
  305. vapi/types/gladia_transcriber_language.py +109 -0
  306. vapi/types/gladia_transcriber_language_behaviour.py +7 -0
  307. vapi/types/gladia_transcriber_model.py +5 -0
  308. vapi/types/go_high_level_credential.py +46 -0
  309. vapi/types/groq_credential.py +46 -0
  310. vapi/types/groq_model.py +91 -0
  311. vapi/types/groq_model_model.py +19 -0
  312. vapi/types/groq_model_tools_item.py +20 -0
  313. vapi/types/handoff_step.py +116 -0
  314. vapi/types/handoff_step_block.py +11 -0
  315. vapi/types/import_twilio_phone_number_dto.py +91 -0
  316. vapi/types/import_twilio_phone_number_dto_fallback_destination.py +7 -0
  317. vapi/types/import_vonage_phone_number_dto.py +88 -0
  318. vapi/types/import_vonage_phone_number_dto_fallback_destination.py +7 -0
  319. vapi/types/invite_user_dto.py +21 -0
  320. vapi/types/invite_user_dto_role.py +5 -0
  321. vapi/types/json_schema.py +57 -0
  322. vapi/types/json_schema_type.py +5 -0
  323. vapi/types/knowledge_base.py +23 -0
  324. vapi/types/lmnt_credential.py +46 -0
  325. vapi/types/lmnt_voice.py +52 -0
  326. vapi/types/lmnt_voice_id.py +6 -0
  327. vapi/types/lmnt_voice_id_enum.py +5 -0
  328. vapi/types/log.py +164 -0
  329. vapi/types/log_request_http_method.py +5 -0
  330. vapi/types/log_resource.py +7 -0
  331. vapi/types/log_type.py +5 -0
  332. vapi/types/logs_paginated_response.py +22 -0
  333. vapi/types/make_credential.py +56 -0
  334. vapi/types/make_tool.py +85 -0
  335. vapi/types/make_tool_messages_item.py +9 -0
  336. vapi/types/make_tool_metadata.py +22 -0
  337. vapi/types/make_tool_provider_details.py +40 -0
  338. vapi/types/make_tool_with_tool_call.py +69 -0
  339. vapi/types/make_tool_with_tool_call_messages_item.py +11 -0
  340. vapi/types/message_plan.py +51 -0
  341. vapi/types/metrics.py +44 -0
  342. vapi/types/model_based_condition.py +54 -0
  343. vapi/types/model_cost.py +53 -0
  344. vapi/types/monitor.py +33 -0
  345. vapi/types/monitor_plan.py +43 -0
  346. vapi/types/neets_voice.py +47 -0
  347. vapi/types/neets_voice_id.py +6 -0
  348. vapi/types/neets_voice_id_enum.py +5 -0
  349. vapi/types/open_ai_credential.py +46 -0
  350. vapi/types/open_ai_function.py +35 -0
  351. vapi/types/open_ai_function_parameters.py +35 -0
  352. vapi/types/open_ai_message.py +21 -0
  353. vapi/types/open_ai_message_role.py +5 -0
  354. vapi/types/open_ai_model.py +106 -0
  355. vapi/types/open_ai_model_fallback_models_item.py +26 -0
  356. vapi/types/open_ai_model_model.py +26 -0
  357. vapi/types/open_ai_model_tools_item.py +20 -0
  358. vapi/types/open_ai_voice.py +52 -0
  359. vapi/types/open_ai_voice_id.py +5 -0
  360. vapi/types/open_router_credential.py +46 -0
  361. vapi/types/open_router_model.py +90 -0
  362. vapi/types/open_router_model_tools_item.py +20 -0
  363. vapi/types/org.py +120 -0
  364. vapi/types/org_plan.py +28 -0
  365. vapi/types/output_tool.py +82 -0
  366. vapi/types/output_tool_messages_item.py +9 -0
  367. vapi/types/pagination_meta.py +23 -0
  368. vapi/types/perplexity_ai_credential.py +46 -0
  369. vapi/types/perplexity_ai_model.py +90 -0
  370. vapi/types/perplexity_ai_model_tools_item.py +20 -0
  371. vapi/types/play_ht_credential.py +48 -0
  372. vapi/types/play_ht_voice.py +84 -0
  373. vapi/types/play_ht_voice_emotion.py +21 -0
  374. vapi/types/play_ht_voice_id.py +6 -0
  375. vapi/types/play_ht_voice_id_enum.py +8 -0
  376. vapi/types/punctuation_boundary.py +7 -0
  377. vapi/types/regex_option.py +34 -0
  378. vapi/types/regex_option_type.py +5 -0
  379. vapi/types/regex_replacement.py +48 -0
  380. vapi/types/rime_ai_credential.py +46 -0
  381. vapi/types/rime_ai_voice.py +58 -0
  382. vapi/types/rime_ai_voice_id.py +6 -0
  383. vapi/types/rime_ai_voice_id_enum.py +90 -0
  384. vapi/types/rime_ai_voice_model.py +5 -0
  385. vapi/types/rule_based_condition.py +96 -0
  386. vapi/types/rule_based_condition_operator.py +5 -0
  387. vapi/types/runpod_credential.py +46 -0
  388. vapi/types/s_3_credential.py +72 -0
  389. vapi/types/sbc_configuration.py +17 -0
  390. vapi/types/server.py +40 -0
  391. vapi/types/server_message.py +40 -0
  392. vapi/types/server_message_assistant_request.py +96 -0
  393. vapi/types/server_message_assistant_request_phone_number.py +11 -0
  394. vapi/types/server_message_conversation_update.py +110 -0
  395. vapi/types/server_message_conversation_update_messages_item.py +12 -0
  396. vapi/types/server_message_conversation_update_phone_number.py +11 -0
  397. vapi/types/server_message_end_of_call_report.py +134 -0
  398. vapi/types/server_message_end_of_call_report_costs_item.py +13 -0
  399. vapi/types/server_message_end_of_call_report_ended_reason.py +177 -0
  400. vapi/types/server_message_end_of_call_report_phone_number.py +11 -0
  401. vapi/types/server_message_hang.py +101 -0
  402. vapi/types/server_message_hang_phone_number.py +11 -0
  403. vapi/types/server_message_language_changed.py +101 -0
  404. vapi/types/server_message_language_changed_phone_number.py +11 -0
  405. vapi/types/server_message_message.py +38 -0
  406. vapi/types/server_message_model_output.py +101 -0
  407. vapi/types/server_message_model_output_phone_number.py +11 -0
  408. vapi/types/server_message_phone_call_control.py +110 -0
  409. vapi/types/server_message_phone_call_control_destination.py +7 -0
  410. vapi/types/server_message_phone_call_control_phone_number.py +11 -0
  411. vapi/types/server_message_phone_call_control_request.py +5 -0
  412. vapi/types/server_message_response.py +39 -0
  413. vapi/types/server_message_response_assistant_request.py +80 -0
  414. vapi/types/server_message_response_assistant_request_destination.py +7 -0
  415. vapi/types/server_message_response_message_response.py +14 -0
  416. vapi/types/server_message_response_tool_calls.py +28 -0
  417. vapi/types/server_message_response_transfer_destination_request.py +32 -0
  418. vapi/types/server_message_response_transfer_destination_request_destination.py +11 -0
  419. vapi/types/server_message_response_voice_request.py +44 -0
  420. vapi/types/server_message_speech_update.py +108 -0
  421. vapi/types/server_message_speech_update_phone_number.py +11 -0
  422. vapi/types/server_message_speech_update_role.py +5 -0
  423. vapi/types/server_message_speech_update_status.py +5 -0
  424. vapi/types/server_message_status_update.py +145 -0
  425. vapi/types/server_message_status_update_destination.py +7 -0
  426. vapi/types/server_message_status_update_ended_reason.py +177 -0
  427. vapi/types/server_message_status_update_messages_item.py +12 -0
  428. vapi/types/server_message_status_update_phone_number.py +11 -0
  429. vapi/types/server_message_status_update_status.py +7 -0
  430. vapi/types/server_message_tool_calls.py +112 -0
  431. vapi/types/server_message_tool_calls_phone_number.py +11 -0
  432. vapi/types/server_message_tool_calls_tool_with_tool_call_list_item.py +10 -0
  433. vapi/types/server_message_transcript.py +115 -0
  434. vapi/types/server_message_transcript_phone_number.py +11 -0
  435. vapi/types/server_message_transcript_role.py +5 -0
  436. vapi/types/server_message_transcript_transcript_type.py +5 -0
  437. vapi/types/server_message_transfer_destination_request.py +98 -0
  438. vapi/types/server_message_transfer_destination_request_phone_number.py +11 -0
  439. vapi/types/server_message_transfer_update.py +116 -0
  440. vapi/types/server_message_transfer_update_destination.py +11 -0
  441. vapi/types/server_message_transfer_update_phone_number.py +11 -0
  442. vapi/types/server_message_user_interrupted.py +96 -0
  443. vapi/types/server_message_user_interrupted_phone_number.py +11 -0
  444. vapi/types/server_message_voice_input.py +101 -0
  445. vapi/types/server_message_voice_input_phone_number.py +11 -0
  446. vapi/types/server_message_voice_request.py +128 -0
  447. vapi/types/server_message_voice_request_phone_number.py +11 -0
  448. vapi/types/sip_trunk_gateway.py +79 -0
  449. vapi/types/sip_trunk_gateway_outbound_protocol.py +5 -0
  450. vapi/types/sip_trunk_outbound_authentication_plan.py +35 -0
  451. vapi/types/sip_trunk_outbound_sip_register_plan.py +21 -0
  452. vapi/types/squad.py +73 -0
  453. vapi/types/squad_member_dto.py +60 -0
  454. vapi/types/start_speaking_plan.py +62 -0
  455. vapi/types/step_destination.py +28 -0
  456. vapi/types/step_destination_conditions_item.py +7 -0
  457. vapi/types/stop_speaking_plan.py +65 -0
  458. vapi/types/structured_data_plan.py +66 -0
  459. vapi/types/success_evaluation_plan.py +75 -0
  460. vapi/types/success_evaluation_plan_rubric.py +17 -0
  461. vapi/types/summary_plan.py +56 -0
  462. vapi/types/sync_voice_library_dto.py +23 -0
  463. vapi/types/sync_voice_library_dto_providers_item.py +10 -0
  464. vapi/types/system_message.py +39 -0
  465. vapi/types/talkscriber_transcriber.py +33 -0
  466. vapi/types/talkscriber_transcriber_language.py +109 -0
  467. vapi/types/template.py +58 -0
  468. vapi/types/template_details.py +20 -0
  469. vapi/types/template_provider.py +5 -0
  470. vapi/types/template_provider_details.py +8 -0
  471. vapi/types/template_visibility.py +5 -0
  472. vapi/types/time_range.py +47 -0
  473. vapi/types/time_range_step.py +8 -0
  474. vapi/types/together_ai_credential.py +46 -0
  475. vapi/types/together_ai_model.py +90 -0
  476. vapi/types/together_ai_model_tools_item.py +20 -0
  477. vapi/types/token.py +62 -0
  478. vapi/types/token_restrictions.py +53 -0
  479. vapi/types/token_tag.py +5 -0
  480. vapi/types/tool_call.py +33 -0
  481. vapi/types/tool_call_block.py +96 -0
  482. vapi/types/tool_call_block_messages_item.py +7 -0
  483. vapi/types/tool_call_block_tool.py +20 -0
  484. vapi/types/tool_call_function.py +27 -0
  485. vapi/types/tool_call_message.py +46 -0
  486. vapi/types/tool_call_result.py +62 -0
  487. vapi/types/tool_call_result_message.py +49 -0
  488. vapi/types/tool_call_result_message_item.py +7 -0
  489. vapi/types/tool_message_complete.py +74 -0
  490. vapi/types/tool_message_complete_role.py +5 -0
  491. vapi/types/tool_message_delayed.py +49 -0
  492. vapi/types/tool_message_failed.py +50 -0
  493. vapi/types/tool_message_start.py +37 -0
  494. vapi/types/tool_template_metadata.py +23 -0
  495. vapi/types/tool_template_setup.py +24 -0
  496. vapi/types/transcriber_cost.py +46 -0
  497. vapi/types/transcript_plan.py +66 -0
  498. vapi/types/transcription_endpointing_plan.py +52 -0
  499. vapi/types/transfer_call_tool.py +88 -0
  500. vapi/types/transfer_call_tool_destinations_item.py +11 -0
  501. vapi/types/transfer_call_tool_messages_item.py +11 -0
  502. vapi/types/transfer_destination_assistant.py +90 -0
  503. vapi/types/transfer_destination_number.py +77 -0
  504. vapi/types/transfer_destination_sip.py +39 -0
  505. vapi/types/transfer_destination_step.py +39 -0
  506. vapi/types/transfer_mode.py +5 -0
  507. vapi/types/transport_configuration_twilio.py +55 -0
  508. vapi/types/transport_configuration_twilio_recording_channels.py +5 -0
  509. vapi/types/transport_cost.py +32 -0
  510. vapi/types/twilio_credential.py +48 -0
  511. vapi/types/twilio_phone_number.py +113 -0
  512. vapi/types/twilio_phone_number_fallback_destination.py +7 -0
  513. vapi/types/twilio_voicemail_detection.py +107 -0
  514. vapi/types/twilio_voicemail_detection_voicemail_detection_types_item.py +10 -0
  515. vapi/types/update_anthropic_credential_dto.py +25 -0
  516. vapi/types/update_anyscale_credential_dto.py +25 -0
  517. vapi/types/update_azure_open_ai_credential_dto.py +31 -0
  518. vapi/types/update_azure_open_ai_credential_dto_models_item.py +17 -0
  519. vapi/types/update_azure_open_ai_credential_dto_region.py +24 -0
  520. vapi/types/update_byo_sip_trunk_credential_dto.py +64 -0
  521. vapi/types/update_cartesia_credential_dto.py +25 -0
  522. vapi/types/update_custom_llm_credential_dto.py +25 -0
  523. vapi/types/update_deep_infra_credential_dto.py +25 -0
  524. vapi/types/update_deepgram_credential_dto.py +32 -0
  525. vapi/types/update_eleven_labs_credential_dto.py +25 -0
  526. vapi/types/update_gcp_credential_dto.py +41 -0
  527. vapi/types/update_gladia_credential_dto.py +25 -0
  528. vapi/types/update_go_high_level_credential_dto.py +25 -0
  529. vapi/types/update_groq_credential_dto.py +25 -0
  530. vapi/types/update_lmnt_credential_dto.py +25 -0
  531. vapi/types/update_make_credential_dto.py +35 -0
  532. vapi/types/update_open_ai_credential_dto.py +25 -0
  533. vapi/types/update_open_router_credential_dto.py +25 -0
  534. vapi/types/update_org_dto.py +63 -0
  535. vapi/types/update_perplexity_ai_credential_dto.py +25 -0
  536. vapi/types/update_play_ht_credential_dto.py +27 -0
  537. vapi/types/update_rime_ai_credential_dto.py +25 -0
  538. vapi/types/update_runpod_credential_dto.py +25 -0
  539. vapi/types/update_s_3_credential_dto.py +51 -0
  540. vapi/types/update_together_ai_credential_dto.py +25 -0
  541. vapi/types/update_tool_template_dto.py +38 -0
  542. vapi/types/update_tool_template_dto_details.py +20 -0
  543. vapi/types/update_tool_template_dto_provider.py +5 -0
  544. vapi/types/update_tool_template_dto_provider_details.py +10 -0
  545. vapi/types/update_tool_template_dto_visibility.py +5 -0
  546. vapi/types/update_twilio_credential_dto.py +27 -0
  547. vapi/types/update_user_role_dto.py +23 -0
  548. vapi/types/update_user_role_dto_role.py +5 -0
  549. vapi/types/update_vonage_credential_dto.py +27 -0
  550. vapi/types/user.py +47 -0
  551. vapi/types/user_message.py +49 -0
  552. vapi/types/vapi_cost.py +32 -0
  553. vapi/types/vapi_model.py +102 -0
  554. vapi/types/vapi_model_steps_item.py +7 -0
  555. vapi/types/vapi_model_tools_item.py +20 -0
  556. vapi/types/vapi_phone_number.py +105 -0
  557. vapi/types/vapi_phone_number_fallback_destination.py +7 -0
  558. vapi/types/voice_cost.py +46 -0
  559. vapi/types/voice_library.py +126 -0
  560. vapi/types/voice_library_gender.py +5 -0
  561. vapi/types/voice_library_voice_response.py +27 -0
  562. vapi/types/vonage_credential.py +64 -0
  563. vapi/types/vonage_phone_number.py +108 -0
  564. vapi/types/vonage_phone_number_fallback_destination.py +7 -0
  565. vapi/types/workflow_block.py +99 -0
  566. vapi/types/workflow_block_messages_item.py +7 -0
  567. vapi/types/workflow_block_steps_item.py +7 -0
  568. vapi/version.py +3 -0
  569. vapi_server_sdk-0.0.0a7.dist-info/METADATA +179 -0
  570. vapi_server_sdk-0.0.0a7.dist-info/RECORD +571 -0
  571. vapi_server_sdk-0.0.0a7.dist-info/WHEEL +4 -0
vapi/squads/client.py ADDED
@@ -0,0 +1,723 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ..core.client_wrapper import SyncClientWrapper
5
+ import datetime as dt
6
+ from ..core.request_options import RequestOptions
7
+ from ..types.squad import Squad
8
+ from ..core.datetime_utils import serialize_datetime
9
+ from ..core.pydantic_utilities import parse_obj_as
10
+ from json.decoder import JSONDecodeError
11
+ from ..core.api_error import ApiError
12
+ from ..types.squad_member_dto import SquadMemberDto
13
+ from ..types.assistant_overrides import AssistantOverrides
14
+ from ..core.serialization import convert_and_respect_annotation_metadata
15
+ from ..core.jsonable_encoder import jsonable_encoder
16
+ from ..core.client_wrapper import AsyncClientWrapper
17
+
18
+ # this is used as the default value for optional parameters
19
+ OMIT = typing.cast(typing.Any, ...)
20
+
21
+
22
+ class SquadsClient:
23
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
24
+ self._client_wrapper = client_wrapper
25
+
26
+ def list(
27
+ self,
28
+ *,
29
+ limit: typing.Optional[float] = None,
30
+ created_at_gt: typing.Optional[dt.datetime] = None,
31
+ created_at_lt: typing.Optional[dt.datetime] = None,
32
+ created_at_ge: typing.Optional[dt.datetime] = None,
33
+ created_at_le: typing.Optional[dt.datetime] = None,
34
+ updated_at_gt: typing.Optional[dt.datetime] = None,
35
+ updated_at_lt: typing.Optional[dt.datetime] = None,
36
+ updated_at_ge: typing.Optional[dt.datetime] = None,
37
+ updated_at_le: typing.Optional[dt.datetime] = None,
38
+ request_options: typing.Optional[RequestOptions] = None,
39
+ ) -> typing.List[Squad]:
40
+ """
41
+ Parameters
42
+ ----------
43
+ limit : typing.Optional[float]
44
+ This is the maximum number of items to return. Defaults to 100.
45
+
46
+ created_at_gt : typing.Optional[dt.datetime]
47
+ This will return items where the createdAt is greater than the specified value.
48
+
49
+ created_at_lt : typing.Optional[dt.datetime]
50
+ This will return items where the createdAt is less than the specified value.
51
+
52
+ created_at_ge : typing.Optional[dt.datetime]
53
+ This will return items where the createdAt is greater than or equal to the specified value.
54
+
55
+ created_at_le : typing.Optional[dt.datetime]
56
+ This will return items where the createdAt is less than or equal to the specified value.
57
+
58
+ updated_at_gt : typing.Optional[dt.datetime]
59
+ This will return items where the updatedAt is greater than the specified value.
60
+
61
+ updated_at_lt : typing.Optional[dt.datetime]
62
+ This will return items where the updatedAt is less than the specified value.
63
+
64
+ updated_at_ge : typing.Optional[dt.datetime]
65
+ This will return items where the updatedAt is greater than or equal to the specified value.
66
+
67
+ updated_at_le : typing.Optional[dt.datetime]
68
+ This will return items where the updatedAt is less than or equal to the specified value.
69
+
70
+ request_options : typing.Optional[RequestOptions]
71
+ Request-specific configuration.
72
+
73
+ Returns
74
+ -------
75
+ typing.List[Squad]
76
+
77
+
78
+ Examples
79
+ --------
80
+ from vapi import Vapi
81
+
82
+ client = Vapi(
83
+ token="YOUR_TOKEN",
84
+ )
85
+ client.squads.list()
86
+ """
87
+ _response = self._client_wrapper.httpx_client.request(
88
+ "squad",
89
+ method="GET",
90
+ params={
91
+ "limit": limit,
92
+ "createdAtGt": serialize_datetime(created_at_gt) if created_at_gt is not None else None,
93
+ "createdAtLt": serialize_datetime(created_at_lt) if created_at_lt is not None else None,
94
+ "createdAtGe": serialize_datetime(created_at_ge) if created_at_ge is not None else None,
95
+ "createdAtLe": serialize_datetime(created_at_le) if created_at_le is not None else None,
96
+ "updatedAtGt": serialize_datetime(updated_at_gt) if updated_at_gt is not None else None,
97
+ "updatedAtLt": serialize_datetime(updated_at_lt) if updated_at_lt is not None else None,
98
+ "updatedAtGe": serialize_datetime(updated_at_ge) if updated_at_ge is not None else None,
99
+ "updatedAtLe": serialize_datetime(updated_at_le) if updated_at_le is not None else None,
100
+ },
101
+ request_options=request_options,
102
+ )
103
+ try:
104
+ if 200 <= _response.status_code < 300:
105
+ return typing.cast(
106
+ typing.List[Squad],
107
+ parse_obj_as(
108
+ type_=typing.List[Squad], # type: ignore
109
+ object_=_response.json(),
110
+ ),
111
+ )
112
+ _response_json = _response.json()
113
+ except JSONDecodeError:
114
+ raise ApiError(status_code=_response.status_code, body=_response.text)
115
+ raise ApiError(status_code=_response.status_code, body=_response_json)
116
+
117
+ def create(
118
+ self,
119
+ *,
120
+ members: typing.Sequence[SquadMemberDto],
121
+ name: typing.Optional[str] = OMIT,
122
+ members_overrides: typing.Optional[AssistantOverrides] = OMIT,
123
+ request_options: typing.Optional[RequestOptions] = None,
124
+ ) -> Squad:
125
+ """
126
+ Parameters
127
+ ----------
128
+ members : typing.Sequence[SquadMemberDto]
129
+ This is the list of assistants that make up the squad.
130
+
131
+ The call will start with the first assistant in the list.
132
+
133
+ name : typing.Optional[str]
134
+ This is the name of the squad.
135
+
136
+ members_overrides : typing.Optional[AssistantOverrides]
137
+ This can be used to override all the assistants' settings and provide values for their template variables.
138
+
139
+ Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
140
+
141
+ request_options : typing.Optional[RequestOptions]
142
+ Request-specific configuration.
143
+
144
+ Returns
145
+ -------
146
+ Squad
147
+
148
+
149
+ Examples
150
+ --------
151
+ from vapi import SquadMemberDto, Vapi
152
+
153
+ client = Vapi(
154
+ token="YOUR_TOKEN",
155
+ )
156
+ client.squads.create(
157
+ members=[SquadMemberDto()],
158
+ )
159
+ """
160
+ _response = self._client_wrapper.httpx_client.request(
161
+ "squad",
162
+ method="POST",
163
+ json={
164
+ "name": name,
165
+ "members": convert_and_respect_annotation_metadata(
166
+ object_=members, annotation=typing.Sequence[SquadMemberDto], direction="write"
167
+ ),
168
+ "membersOverrides": convert_and_respect_annotation_metadata(
169
+ object_=members_overrides, annotation=AssistantOverrides, direction="write"
170
+ ),
171
+ },
172
+ request_options=request_options,
173
+ omit=OMIT,
174
+ )
175
+ try:
176
+ if 200 <= _response.status_code < 300:
177
+ return typing.cast(
178
+ Squad,
179
+ parse_obj_as(
180
+ type_=Squad, # type: ignore
181
+ object_=_response.json(),
182
+ ),
183
+ )
184
+ _response_json = _response.json()
185
+ except JSONDecodeError:
186
+ raise ApiError(status_code=_response.status_code, body=_response.text)
187
+ raise ApiError(status_code=_response.status_code, body=_response_json)
188
+
189
+ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Squad:
190
+ """
191
+ Parameters
192
+ ----------
193
+ id : str
194
+
195
+ request_options : typing.Optional[RequestOptions]
196
+ Request-specific configuration.
197
+
198
+ Returns
199
+ -------
200
+ Squad
201
+
202
+
203
+ Examples
204
+ --------
205
+ from vapi import Vapi
206
+
207
+ client = Vapi(
208
+ token="YOUR_TOKEN",
209
+ )
210
+ client.squads.get(
211
+ id="id",
212
+ )
213
+ """
214
+ _response = self._client_wrapper.httpx_client.request(
215
+ f"squad/{jsonable_encoder(id)}",
216
+ method="GET",
217
+ request_options=request_options,
218
+ )
219
+ try:
220
+ if 200 <= _response.status_code < 300:
221
+ return typing.cast(
222
+ Squad,
223
+ parse_obj_as(
224
+ type_=Squad, # type: ignore
225
+ object_=_response.json(),
226
+ ),
227
+ )
228
+ _response_json = _response.json()
229
+ except JSONDecodeError:
230
+ raise ApiError(status_code=_response.status_code, body=_response.text)
231
+ raise ApiError(status_code=_response.status_code, body=_response_json)
232
+
233
+ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Squad:
234
+ """
235
+ Parameters
236
+ ----------
237
+ id : str
238
+
239
+ request_options : typing.Optional[RequestOptions]
240
+ Request-specific configuration.
241
+
242
+ Returns
243
+ -------
244
+ Squad
245
+
246
+
247
+ Examples
248
+ --------
249
+ from vapi import Vapi
250
+
251
+ client = Vapi(
252
+ token="YOUR_TOKEN",
253
+ )
254
+ client.squads.delete(
255
+ id="id",
256
+ )
257
+ """
258
+ _response = self._client_wrapper.httpx_client.request(
259
+ f"squad/{jsonable_encoder(id)}",
260
+ method="DELETE",
261
+ request_options=request_options,
262
+ )
263
+ try:
264
+ if 200 <= _response.status_code < 300:
265
+ return typing.cast(
266
+ Squad,
267
+ parse_obj_as(
268
+ type_=Squad, # type: ignore
269
+ object_=_response.json(),
270
+ ),
271
+ )
272
+ _response_json = _response.json()
273
+ except JSONDecodeError:
274
+ raise ApiError(status_code=_response.status_code, body=_response.text)
275
+ raise ApiError(status_code=_response.status_code, body=_response_json)
276
+
277
+ def update(
278
+ self,
279
+ id: str,
280
+ *,
281
+ members: typing.Sequence[SquadMemberDto],
282
+ name: typing.Optional[str] = OMIT,
283
+ members_overrides: typing.Optional[AssistantOverrides] = OMIT,
284
+ request_options: typing.Optional[RequestOptions] = None,
285
+ ) -> Squad:
286
+ """
287
+ Parameters
288
+ ----------
289
+ id : str
290
+
291
+ members : typing.Sequence[SquadMemberDto]
292
+ This is the list of assistants that make up the squad.
293
+
294
+ The call will start with the first assistant in the list.
295
+
296
+ name : typing.Optional[str]
297
+ This is the name of the squad.
298
+
299
+ members_overrides : typing.Optional[AssistantOverrides]
300
+ This can be used to override all the assistants' settings and provide values for their template variables.
301
+
302
+ Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
303
+
304
+ request_options : typing.Optional[RequestOptions]
305
+ Request-specific configuration.
306
+
307
+ Returns
308
+ -------
309
+ Squad
310
+
311
+
312
+ Examples
313
+ --------
314
+ from vapi import SquadMemberDto, Vapi
315
+
316
+ client = Vapi(
317
+ token="YOUR_TOKEN",
318
+ )
319
+ client.squads.update(
320
+ id="id",
321
+ members=[SquadMemberDto()],
322
+ )
323
+ """
324
+ _response = self._client_wrapper.httpx_client.request(
325
+ f"squad/{jsonable_encoder(id)}",
326
+ method="PATCH",
327
+ json={
328
+ "name": name,
329
+ "members": convert_and_respect_annotation_metadata(
330
+ object_=members, annotation=typing.Sequence[SquadMemberDto], direction="write"
331
+ ),
332
+ "membersOverrides": convert_and_respect_annotation_metadata(
333
+ object_=members_overrides, annotation=AssistantOverrides, direction="write"
334
+ ),
335
+ },
336
+ request_options=request_options,
337
+ omit=OMIT,
338
+ )
339
+ try:
340
+ if 200 <= _response.status_code < 300:
341
+ return typing.cast(
342
+ Squad,
343
+ parse_obj_as(
344
+ type_=Squad, # type: ignore
345
+ object_=_response.json(),
346
+ ),
347
+ )
348
+ _response_json = _response.json()
349
+ except JSONDecodeError:
350
+ raise ApiError(status_code=_response.status_code, body=_response.text)
351
+ raise ApiError(status_code=_response.status_code, body=_response_json)
352
+
353
+
354
+ class AsyncSquadsClient:
355
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
356
+ self._client_wrapper = client_wrapper
357
+
358
+ async def list(
359
+ self,
360
+ *,
361
+ limit: typing.Optional[float] = None,
362
+ created_at_gt: typing.Optional[dt.datetime] = None,
363
+ created_at_lt: typing.Optional[dt.datetime] = None,
364
+ created_at_ge: typing.Optional[dt.datetime] = None,
365
+ created_at_le: typing.Optional[dt.datetime] = None,
366
+ updated_at_gt: typing.Optional[dt.datetime] = None,
367
+ updated_at_lt: typing.Optional[dt.datetime] = None,
368
+ updated_at_ge: typing.Optional[dt.datetime] = None,
369
+ updated_at_le: typing.Optional[dt.datetime] = None,
370
+ request_options: typing.Optional[RequestOptions] = None,
371
+ ) -> typing.List[Squad]:
372
+ """
373
+ Parameters
374
+ ----------
375
+ limit : typing.Optional[float]
376
+ This is the maximum number of items to return. Defaults to 100.
377
+
378
+ created_at_gt : typing.Optional[dt.datetime]
379
+ This will return items where the createdAt is greater than the specified value.
380
+
381
+ created_at_lt : typing.Optional[dt.datetime]
382
+ This will return items where the createdAt is less than the specified value.
383
+
384
+ created_at_ge : typing.Optional[dt.datetime]
385
+ This will return items where the createdAt is greater than or equal to the specified value.
386
+
387
+ created_at_le : typing.Optional[dt.datetime]
388
+ This will return items where the createdAt is less than or equal to the specified value.
389
+
390
+ updated_at_gt : typing.Optional[dt.datetime]
391
+ This will return items where the updatedAt is greater than the specified value.
392
+
393
+ updated_at_lt : typing.Optional[dt.datetime]
394
+ This will return items where the updatedAt is less than the specified value.
395
+
396
+ updated_at_ge : typing.Optional[dt.datetime]
397
+ This will return items where the updatedAt is greater than or equal to the specified value.
398
+
399
+ updated_at_le : typing.Optional[dt.datetime]
400
+ This will return items where the updatedAt is less than or equal to the specified value.
401
+
402
+ request_options : typing.Optional[RequestOptions]
403
+ Request-specific configuration.
404
+
405
+ Returns
406
+ -------
407
+ typing.List[Squad]
408
+
409
+
410
+ Examples
411
+ --------
412
+ import asyncio
413
+
414
+ from vapi import AsyncVapi
415
+
416
+ client = AsyncVapi(
417
+ token="YOUR_TOKEN",
418
+ )
419
+
420
+
421
+ async def main() -> None:
422
+ await client.squads.list()
423
+
424
+
425
+ asyncio.run(main())
426
+ """
427
+ _response = await self._client_wrapper.httpx_client.request(
428
+ "squad",
429
+ method="GET",
430
+ params={
431
+ "limit": limit,
432
+ "createdAtGt": serialize_datetime(created_at_gt) if created_at_gt is not None else None,
433
+ "createdAtLt": serialize_datetime(created_at_lt) if created_at_lt is not None else None,
434
+ "createdAtGe": serialize_datetime(created_at_ge) if created_at_ge is not None else None,
435
+ "createdAtLe": serialize_datetime(created_at_le) if created_at_le is not None else None,
436
+ "updatedAtGt": serialize_datetime(updated_at_gt) if updated_at_gt is not None else None,
437
+ "updatedAtLt": serialize_datetime(updated_at_lt) if updated_at_lt is not None else None,
438
+ "updatedAtGe": serialize_datetime(updated_at_ge) if updated_at_ge is not None else None,
439
+ "updatedAtLe": serialize_datetime(updated_at_le) if updated_at_le is not None else None,
440
+ },
441
+ request_options=request_options,
442
+ )
443
+ try:
444
+ if 200 <= _response.status_code < 300:
445
+ return typing.cast(
446
+ typing.List[Squad],
447
+ parse_obj_as(
448
+ type_=typing.List[Squad], # type: ignore
449
+ object_=_response.json(),
450
+ ),
451
+ )
452
+ _response_json = _response.json()
453
+ except JSONDecodeError:
454
+ raise ApiError(status_code=_response.status_code, body=_response.text)
455
+ raise ApiError(status_code=_response.status_code, body=_response_json)
456
+
457
+ async def create(
458
+ self,
459
+ *,
460
+ members: typing.Sequence[SquadMemberDto],
461
+ name: typing.Optional[str] = OMIT,
462
+ members_overrides: typing.Optional[AssistantOverrides] = OMIT,
463
+ request_options: typing.Optional[RequestOptions] = None,
464
+ ) -> Squad:
465
+ """
466
+ Parameters
467
+ ----------
468
+ members : typing.Sequence[SquadMemberDto]
469
+ This is the list of assistants that make up the squad.
470
+
471
+ The call will start with the first assistant in the list.
472
+
473
+ name : typing.Optional[str]
474
+ This is the name of the squad.
475
+
476
+ members_overrides : typing.Optional[AssistantOverrides]
477
+ This can be used to override all the assistants' settings and provide values for their template variables.
478
+
479
+ Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
480
+
481
+ request_options : typing.Optional[RequestOptions]
482
+ Request-specific configuration.
483
+
484
+ Returns
485
+ -------
486
+ Squad
487
+
488
+
489
+ Examples
490
+ --------
491
+ import asyncio
492
+
493
+ from vapi import AsyncVapi, SquadMemberDto
494
+
495
+ client = AsyncVapi(
496
+ token="YOUR_TOKEN",
497
+ )
498
+
499
+
500
+ async def main() -> None:
501
+ await client.squads.create(
502
+ members=[SquadMemberDto()],
503
+ )
504
+
505
+
506
+ asyncio.run(main())
507
+ """
508
+ _response = await self._client_wrapper.httpx_client.request(
509
+ "squad",
510
+ method="POST",
511
+ json={
512
+ "name": name,
513
+ "members": convert_and_respect_annotation_metadata(
514
+ object_=members, annotation=typing.Sequence[SquadMemberDto], direction="write"
515
+ ),
516
+ "membersOverrides": convert_and_respect_annotation_metadata(
517
+ object_=members_overrides, annotation=AssistantOverrides, direction="write"
518
+ ),
519
+ },
520
+ request_options=request_options,
521
+ omit=OMIT,
522
+ )
523
+ try:
524
+ if 200 <= _response.status_code < 300:
525
+ return typing.cast(
526
+ Squad,
527
+ parse_obj_as(
528
+ type_=Squad, # type: ignore
529
+ object_=_response.json(),
530
+ ),
531
+ )
532
+ _response_json = _response.json()
533
+ except JSONDecodeError:
534
+ raise ApiError(status_code=_response.status_code, body=_response.text)
535
+ raise ApiError(status_code=_response.status_code, body=_response_json)
536
+
537
+ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Squad:
538
+ """
539
+ Parameters
540
+ ----------
541
+ id : str
542
+
543
+ request_options : typing.Optional[RequestOptions]
544
+ Request-specific configuration.
545
+
546
+ Returns
547
+ -------
548
+ Squad
549
+
550
+
551
+ Examples
552
+ --------
553
+ import asyncio
554
+
555
+ from vapi import AsyncVapi
556
+
557
+ client = AsyncVapi(
558
+ token="YOUR_TOKEN",
559
+ )
560
+
561
+
562
+ async def main() -> None:
563
+ await client.squads.get(
564
+ id="id",
565
+ )
566
+
567
+
568
+ asyncio.run(main())
569
+ """
570
+ _response = await self._client_wrapper.httpx_client.request(
571
+ f"squad/{jsonable_encoder(id)}",
572
+ method="GET",
573
+ request_options=request_options,
574
+ )
575
+ try:
576
+ if 200 <= _response.status_code < 300:
577
+ return typing.cast(
578
+ Squad,
579
+ parse_obj_as(
580
+ type_=Squad, # type: ignore
581
+ object_=_response.json(),
582
+ ),
583
+ )
584
+ _response_json = _response.json()
585
+ except JSONDecodeError:
586
+ raise ApiError(status_code=_response.status_code, body=_response.text)
587
+ raise ApiError(status_code=_response.status_code, body=_response_json)
588
+
589
+ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Squad:
590
+ """
591
+ Parameters
592
+ ----------
593
+ id : str
594
+
595
+ request_options : typing.Optional[RequestOptions]
596
+ Request-specific configuration.
597
+
598
+ Returns
599
+ -------
600
+ Squad
601
+
602
+
603
+ Examples
604
+ --------
605
+ import asyncio
606
+
607
+ from vapi import AsyncVapi
608
+
609
+ client = AsyncVapi(
610
+ token="YOUR_TOKEN",
611
+ )
612
+
613
+
614
+ async def main() -> None:
615
+ await client.squads.delete(
616
+ id="id",
617
+ )
618
+
619
+
620
+ asyncio.run(main())
621
+ """
622
+ _response = await self._client_wrapper.httpx_client.request(
623
+ f"squad/{jsonable_encoder(id)}",
624
+ method="DELETE",
625
+ request_options=request_options,
626
+ )
627
+ try:
628
+ if 200 <= _response.status_code < 300:
629
+ return typing.cast(
630
+ Squad,
631
+ parse_obj_as(
632
+ type_=Squad, # type: ignore
633
+ object_=_response.json(),
634
+ ),
635
+ )
636
+ _response_json = _response.json()
637
+ except JSONDecodeError:
638
+ raise ApiError(status_code=_response.status_code, body=_response.text)
639
+ raise ApiError(status_code=_response.status_code, body=_response_json)
640
+
641
+ async def update(
642
+ self,
643
+ id: str,
644
+ *,
645
+ members: typing.Sequence[SquadMemberDto],
646
+ name: typing.Optional[str] = OMIT,
647
+ members_overrides: typing.Optional[AssistantOverrides] = OMIT,
648
+ request_options: typing.Optional[RequestOptions] = None,
649
+ ) -> Squad:
650
+ """
651
+ Parameters
652
+ ----------
653
+ id : str
654
+
655
+ members : typing.Sequence[SquadMemberDto]
656
+ This is the list of assistants that make up the squad.
657
+
658
+ The call will start with the first assistant in the list.
659
+
660
+ name : typing.Optional[str]
661
+ This is the name of the squad.
662
+
663
+ members_overrides : typing.Optional[AssistantOverrides]
664
+ This can be used to override all the assistants' settings and provide values for their template variables.
665
+
666
+ Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
667
+
668
+ request_options : typing.Optional[RequestOptions]
669
+ Request-specific configuration.
670
+
671
+ Returns
672
+ -------
673
+ Squad
674
+
675
+
676
+ Examples
677
+ --------
678
+ import asyncio
679
+
680
+ from vapi import AsyncVapi, SquadMemberDto
681
+
682
+ client = AsyncVapi(
683
+ token="YOUR_TOKEN",
684
+ )
685
+
686
+
687
+ async def main() -> None:
688
+ await client.squads.update(
689
+ id="id",
690
+ members=[SquadMemberDto()],
691
+ )
692
+
693
+
694
+ asyncio.run(main())
695
+ """
696
+ _response = await self._client_wrapper.httpx_client.request(
697
+ f"squad/{jsonable_encoder(id)}",
698
+ method="PATCH",
699
+ json={
700
+ "name": name,
701
+ "members": convert_and_respect_annotation_metadata(
702
+ object_=members, annotation=typing.Sequence[SquadMemberDto], direction="write"
703
+ ),
704
+ "membersOverrides": convert_and_respect_annotation_metadata(
705
+ object_=members_overrides, annotation=AssistantOverrides, direction="write"
706
+ ),
707
+ },
708
+ request_options=request_options,
709
+ omit=OMIT,
710
+ )
711
+ try:
712
+ if 200 <= _response.status_code < 300:
713
+ return typing.cast(
714
+ Squad,
715
+ parse_obj_as(
716
+ type_=Squad, # type: ignore
717
+ object_=_response.json(),
718
+ ),
719
+ )
720
+ _response_json = _response.json()
721
+ except JSONDecodeError:
722
+ raise ApiError(status_code=_response.status_code, body=_response.text)
723
+ raise ApiError(status_code=_response.status_code, body=_response_json)