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/calls/client.py ADDED
@@ -0,0 +1,776 @@
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.call import Call
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.create_assistant_dto import CreateAssistantDto
13
+ from ..types.assistant_overrides import AssistantOverrides
14
+ from ..types.create_squad_dto import CreateSquadDto
15
+ from ..types.import_twilio_phone_number_dto import ImportTwilioPhoneNumberDto
16
+ from ..types.create_customer_dto import CreateCustomerDto
17
+ from ..core.serialization import convert_and_respect_annotation_metadata
18
+ from ..core.jsonable_encoder import jsonable_encoder
19
+ from ..core.client_wrapper import AsyncClientWrapper
20
+
21
+ # this is used as the default value for optional parameters
22
+ OMIT = typing.cast(typing.Any, ...)
23
+
24
+
25
+ class CallsClient:
26
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
27
+ self._client_wrapper = client_wrapper
28
+
29
+ def list(
30
+ self,
31
+ *,
32
+ assistant_id: typing.Optional[str] = None,
33
+ limit: typing.Optional[float] = None,
34
+ created_at_gt: typing.Optional[dt.datetime] = None,
35
+ created_at_lt: typing.Optional[dt.datetime] = None,
36
+ created_at_ge: typing.Optional[dt.datetime] = None,
37
+ created_at_le: typing.Optional[dt.datetime] = None,
38
+ updated_at_gt: typing.Optional[dt.datetime] = None,
39
+ updated_at_lt: typing.Optional[dt.datetime] = None,
40
+ updated_at_ge: typing.Optional[dt.datetime] = None,
41
+ updated_at_le: typing.Optional[dt.datetime] = None,
42
+ request_options: typing.Optional[RequestOptions] = None,
43
+ ) -> typing.List[Call]:
44
+ """
45
+ Parameters
46
+ ----------
47
+ assistant_id : typing.Optional[str]
48
+ This will return calls with the specified assistantId.
49
+
50
+ limit : typing.Optional[float]
51
+ This is the maximum number of items to return. Defaults to 100.
52
+
53
+ created_at_gt : typing.Optional[dt.datetime]
54
+ This will return items where the createdAt is greater than the specified value.
55
+
56
+ created_at_lt : typing.Optional[dt.datetime]
57
+ This will return items where the createdAt is less than the specified value.
58
+
59
+ created_at_ge : typing.Optional[dt.datetime]
60
+ This will return items where the createdAt is greater than or equal to the specified value.
61
+
62
+ created_at_le : typing.Optional[dt.datetime]
63
+ This will return items where the createdAt is less than or equal to the specified value.
64
+
65
+ updated_at_gt : typing.Optional[dt.datetime]
66
+ This will return items where the updatedAt is greater than the specified value.
67
+
68
+ updated_at_lt : typing.Optional[dt.datetime]
69
+ This will return items where the updatedAt is less than the specified value.
70
+
71
+ updated_at_ge : typing.Optional[dt.datetime]
72
+ This will return items where the updatedAt is greater than or equal to the specified value.
73
+
74
+ updated_at_le : typing.Optional[dt.datetime]
75
+ This will return items where the updatedAt is less than or equal to the specified value.
76
+
77
+ request_options : typing.Optional[RequestOptions]
78
+ Request-specific configuration.
79
+
80
+ Returns
81
+ -------
82
+ typing.List[Call]
83
+
84
+
85
+ Examples
86
+ --------
87
+ from vapi import Vapi
88
+
89
+ client = Vapi(
90
+ token="YOUR_TOKEN",
91
+ )
92
+ client.calls.list()
93
+ """
94
+ _response = self._client_wrapper.httpx_client.request(
95
+ "call",
96
+ method="GET",
97
+ params={
98
+ "assistantId": assistant_id,
99
+ "limit": limit,
100
+ "createdAtGt": serialize_datetime(created_at_gt) if created_at_gt is not None else None,
101
+ "createdAtLt": serialize_datetime(created_at_lt) if created_at_lt is not None else None,
102
+ "createdAtGe": serialize_datetime(created_at_ge) if created_at_ge is not None else None,
103
+ "createdAtLe": serialize_datetime(created_at_le) if created_at_le is not None else None,
104
+ "updatedAtGt": serialize_datetime(updated_at_gt) if updated_at_gt is not None else None,
105
+ "updatedAtLt": serialize_datetime(updated_at_lt) if updated_at_lt is not None else None,
106
+ "updatedAtGe": serialize_datetime(updated_at_ge) if updated_at_ge is not None else None,
107
+ "updatedAtLe": serialize_datetime(updated_at_le) if updated_at_le is not None else None,
108
+ },
109
+ request_options=request_options,
110
+ )
111
+ try:
112
+ if 200 <= _response.status_code < 300:
113
+ return typing.cast(
114
+ typing.List[Call],
115
+ parse_obj_as(
116
+ type_=typing.List[Call], # type: ignore
117
+ object_=_response.json(),
118
+ ),
119
+ )
120
+ _response_json = _response.json()
121
+ except JSONDecodeError:
122
+ raise ApiError(status_code=_response.status_code, body=_response.text)
123
+ raise ApiError(status_code=_response.status_code, body=_response_json)
124
+
125
+ def create(
126
+ self,
127
+ *,
128
+ name: typing.Optional[str] = OMIT,
129
+ assistant_id: typing.Optional[str] = OMIT,
130
+ assistant: typing.Optional[CreateAssistantDto] = OMIT,
131
+ assistant_overrides: typing.Optional[AssistantOverrides] = OMIT,
132
+ squad_id: typing.Optional[str] = OMIT,
133
+ squad: typing.Optional[CreateSquadDto] = OMIT,
134
+ phone_number_id: typing.Optional[str] = OMIT,
135
+ phone_number: typing.Optional[ImportTwilioPhoneNumberDto] = OMIT,
136
+ customer_id: typing.Optional[str] = OMIT,
137
+ customer: typing.Optional[CreateCustomerDto] = OMIT,
138
+ request_options: typing.Optional[RequestOptions] = None,
139
+ ) -> Call:
140
+ """
141
+ Parameters
142
+ ----------
143
+ name : typing.Optional[str]
144
+ This is the name of the call. This is just for your own reference.
145
+
146
+ assistant_id : typing.Optional[str]
147
+ This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
148
+
149
+ assistant : typing.Optional[CreateAssistantDto]
150
+ This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
151
+
152
+ assistant_overrides : typing.Optional[AssistantOverrides]
153
+ These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
154
+
155
+ squad_id : typing.Optional[str]
156
+ This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
157
+
158
+ squad : typing.Optional[CreateSquadDto]
159
+ This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
160
+
161
+ phone_number_id : typing.Optional[str]
162
+ This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
163
+
164
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
165
+
166
+ phone_number : typing.Optional[ImportTwilioPhoneNumberDto]
167
+ This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
168
+
169
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
170
+
171
+ customer_id : typing.Optional[str]
172
+ This is the customer that will be called. To call a transient customer , use `customer` instead.
173
+
174
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
175
+
176
+ customer : typing.Optional[CreateCustomerDto]
177
+ This is the customer that will be called. To call an existing customer, use `customerId` instead.
178
+
179
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
180
+
181
+ request_options : typing.Optional[RequestOptions]
182
+ Request-specific configuration.
183
+
184
+ Returns
185
+ -------
186
+ Call
187
+
188
+
189
+ Examples
190
+ --------
191
+ from vapi import Vapi
192
+
193
+ client = Vapi(
194
+ token="YOUR_TOKEN",
195
+ )
196
+ client.calls.create()
197
+ """
198
+ _response = self._client_wrapper.httpx_client.request(
199
+ "call",
200
+ method="POST",
201
+ json={
202
+ "name": name,
203
+ "assistantId": assistant_id,
204
+ "assistant": convert_and_respect_annotation_metadata(
205
+ object_=assistant, annotation=CreateAssistantDto, direction="write"
206
+ ),
207
+ "assistantOverrides": convert_and_respect_annotation_metadata(
208
+ object_=assistant_overrides, annotation=AssistantOverrides, direction="write"
209
+ ),
210
+ "squadId": squad_id,
211
+ "squad": convert_and_respect_annotation_metadata(
212
+ object_=squad, annotation=CreateSquadDto, direction="write"
213
+ ),
214
+ "phoneNumberId": phone_number_id,
215
+ "phoneNumber": convert_and_respect_annotation_metadata(
216
+ object_=phone_number, annotation=ImportTwilioPhoneNumberDto, direction="write"
217
+ ),
218
+ "customerId": customer_id,
219
+ "customer": convert_and_respect_annotation_metadata(
220
+ object_=customer, annotation=CreateCustomerDto, direction="write"
221
+ ),
222
+ },
223
+ request_options=request_options,
224
+ omit=OMIT,
225
+ )
226
+ try:
227
+ if 200 <= _response.status_code < 300:
228
+ return typing.cast(
229
+ Call,
230
+ parse_obj_as(
231
+ type_=Call, # type: ignore
232
+ object_=_response.json(),
233
+ ),
234
+ )
235
+ _response_json = _response.json()
236
+ except JSONDecodeError:
237
+ raise ApiError(status_code=_response.status_code, body=_response.text)
238
+ raise ApiError(status_code=_response.status_code, body=_response_json)
239
+
240
+ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Call:
241
+ """
242
+ Parameters
243
+ ----------
244
+ id : str
245
+
246
+ request_options : typing.Optional[RequestOptions]
247
+ Request-specific configuration.
248
+
249
+ Returns
250
+ -------
251
+ Call
252
+
253
+
254
+ Examples
255
+ --------
256
+ from vapi import Vapi
257
+
258
+ client = Vapi(
259
+ token="YOUR_TOKEN",
260
+ )
261
+ client.calls.get(
262
+ id="id",
263
+ )
264
+ """
265
+ _response = self._client_wrapper.httpx_client.request(
266
+ f"call/{jsonable_encoder(id)}",
267
+ method="GET",
268
+ request_options=request_options,
269
+ )
270
+ try:
271
+ if 200 <= _response.status_code < 300:
272
+ return typing.cast(
273
+ Call,
274
+ parse_obj_as(
275
+ type_=Call, # type: ignore
276
+ object_=_response.json(),
277
+ ),
278
+ )
279
+ _response_json = _response.json()
280
+ except JSONDecodeError:
281
+ raise ApiError(status_code=_response.status_code, body=_response.text)
282
+ raise ApiError(status_code=_response.status_code, body=_response_json)
283
+
284
+ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Call:
285
+ """
286
+ Parameters
287
+ ----------
288
+ id : str
289
+
290
+ request_options : typing.Optional[RequestOptions]
291
+ Request-specific configuration.
292
+
293
+ Returns
294
+ -------
295
+ Call
296
+
297
+
298
+ Examples
299
+ --------
300
+ from vapi import Vapi
301
+
302
+ client = Vapi(
303
+ token="YOUR_TOKEN",
304
+ )
305
+ client.calls.delete(
306
+ id="id",
307
+ )
308
+ """
309
+ _response = self._client_wrapper.httpx_client.request(
310
+ f"call/{jsonable_encoder(id)}",
311
+ method="DELETE",
312
+ request_options=request_options,
313
+ )
314
+ try:
315
+ if 200 <= _response.status_code < 300:
316
+ return typing.cast(
317
+ Call,
318
+ parse_obj_as(
319
+ type_=Call, # type: ignore
320
+ object_=_response.json(),
321
+ ),
322
+ )
323
+ _response_json = _response.json()
324
+ except JSONDecodeError:
325
+ raise ApiError(status_code=_response.status_code, body=_response.text)
326
+ raise ApiError(status_code=_response.status_code, body=_response_json)
327
+
328
+ def update(
329
+ self, id: str, *, name: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None
330
+ ) -> Call:
331
+ """
332
+ Parameters
333
+ ----------
334
+ id : str
335
+
336
+ name : typing.Optional[str]
337
+ This is the name of the call. This is just for your own reference.
338
+
339
+ request_options : typing.Optional[RequestOptions]
340
+ Request-specific configuration.
341
+
342
+ Returns
343
+ -------
344
+ Call
345
+
346
+
347
+ Examples
348
+ --------
349
+ from vapi import Vapi
350
+
351
+ client = Vapi(
352
+ token="YOUR_TOKEN",
353
+ )
354
+ client.calls.update(
355
+ id="id",
356
+ )
357
+ """
358
+ _response = self._client_wrapper.httpx_client.request(
359
+ f"call/{jsonable_encoder(id)}",
360
+ method="PATCH",
361
+ json={
362
+ "name": name,
363
+ },
364
+ request_options=request_options,
365
+ omit=OMIT,
366
+ )
367
+ try:
368
+ if 200 <= _response.status_code < 300:
369
+ return typing.cast(
370
+ Call,
371
+ parse_obj_as(
372
+ type_=Call, # type: ignore
373
+ object_=_response.json(),
374
+ ),
375
+ )
376
+ _response_json = _response.json()
377
+ except JSONDecodeError:
378
+ raise ApiError(status_code=_response.status_code, body=_response.text)
379
+ raise ApiError(status_code=_response.status_code, body=_response_json)
380
+
381
+
382
+ class AsyncCallsClient:
383
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
384
+ self._client_wrapper = client_wrapper
385
+
386
+ async def list(
387
+ self,
388
+ *,
389
+ assistant_id: typing.Optional[str] = None,
390
+ limit: typing.Optional[float] = None,
391
+ created_at_gt: typing.Optional[dt.datetime] = None,
392
+ created_at_lt: typing.Optional[dt.datetime] = None,
393
+ created_at_ge: typing.Optional[dt.datetime] = None,
394
+ created_at_le: typing.Optional[dt.datetime] = None,
395
+ updated_at_gt: typing.Optional[dt.datetime] = None,
396
+ updated_at_lt: typing.Optional[dt.datetime] = None,
397
+ updated_at_ge: typing.Optional[dt.datetime] = None,
398
+ updated_at_le: typing.Optional[dt.datetime] = None,
399
+ request_options: typing.Optional[RequestOptions] = None,
400
+ ) -> typing.List[Call]:
401
+ """
402
+ Parameters
403
+ ----------
404
+ assistant_id : typing.Optional[str]
405
+ This will return calls with the specified assistantId.
406
+
407
+ limit : typing.Optional[float]
408
+ This is the maximum number of items to return. Defaults to 100.
409
+
410
+ created_at_gt : typing.Optional[dt.datetime]
411
+ This will return items where the createdAt is greater than the specified value.
412
+
413
+ created_at_lt : typing.Optional[dt.datetime]
414
+ This will return items where the createdAt is less than the specified value.
415
+
416
+ created_at_ge : typing.Optional[dt.datetime]
417
+ This will return items where the createdAt is greater than or equal to the specified value.
418
+
419
+ created_at_le : typing.Optional[dt.datetime]
420
+ This will return items where the createdAt is less than or equal to the specified value.
421
+
422
+ updated_at_gt : typing.Optional[dt.datetime]
423
+ This will return items where the updatedAt is greater than the specified value.
424
+
425
+ updated_at_lt : typing.Optional[dt.datetime]
426
+ This will return items where the updatedAt is less than the specified value.
427
+
428
+ updated_at_ge : typing.Optional[dt.datetime]
429
+ This will return items where the updatedAt is greater than or equal to the specified value.
430
+
431
+ updated_at_le : typing.Optional[dt.datetime]
432
+ This will return items where the updatedAt is less than or equal to the specified value.
433
+
434
+ request_options : typing.Optional[RequestOptions]
435
+ Request-specific configuration.
436
+
437
+ Returns
438
+ -------
439
+ typing.List[Call]
440
+
441
+
442
+ Examples
443
+ --------
444
+ import asyncio
445
+
446
+ from vapi import AsyncVapi
447
+
448
+ client = AsyncVapi(
449
+ token="YOUR_TOKEN",
450
+ )
451
+
452
+
453
+ async def main() -> None:
454
+ await client.calls.list()
455
+
456
+
457
+ asyncio.run(main())
458
+ """
459
+ _response = await self._client_wrapper.httpx_client.request(
460
+ "call",
461
+ method="GET",
462
+ params={
463
+ "assistantId": assistant_id,
464
+ "limit": limit,
465
+ "createdAtGt": serialize_datetime(created_at_gt) if created_at_gt is not None else None,
466
+ "createdAtLt": serialize_datetime(created_at_lt) if created_at_lt is not None else None,
467
+ "createdAtGe": serialize_datetime(created_at_ge) if created_at_ge is not None else None,
468
+ "createdAtLe": serialize_datetime(created_at_le) if created_at_le is not None else None,
469
+ "updatedAtGt": serialize_datetime(updated_at_gt) if updated_at_gt is not None else None,
470
+ "updatedAtLt": serialize_datetime(updated_at_lt) if updated_at_lt is not None else None,
471
+ "updatedAtGe": serialize_datetime(updated_at_ge) if updated_at_ge is not None else None,
472
+ "updatedAtLe": serialize_datetime(updated_at_le) if updated_at_le is not None else None,
473
+ },
474
+ request_options=request_options,
475
+ )
476
+ try:
477
+ if 200 <= _response.status_code < 300:
478
+ return typing.cast(
479
+ typing.List[Call],
480
+ parse_obj_as(
481
+ type_=typing.List[Call], # type: ignore
482
+ object_=_response.json(),
483
+ ),
484
+ )
485
+ _response_json = _response.json()
486
+ except JSONDecodeError:
487
+ raise ApiError(status_code=_response.status_code, body=_response.text)
488
+ raise ApiError(status_code=_response.status_code, body=_response_json)
489
+
490
+ async def create(
491
+ self,
492
+ *,
493
+ name: typing.Optional[str] = OMIT,
494
+ assistant_id: typing.Optional[str] = OMIT,
495
+ assistant: typing.Optional[CreateAssistantDto] = OMIT,
496
+ assistant_overrides: typing.Optional[AssistantOverrides] = OMIT,
497
+ squad_id: typing.Optional[str] = OMIT,
498
+ squad: typing.Optional[CreateSquadDto] = OMIT,
499
+ phone_number_id: typing.Optional[str] = OMIT,
500
+ phone_number: typing.Optional[ImportTwilioPhoneNumberDto] = OMIT,
501
+ customer_id: typing.Optional[str] = OMIT,
502
+ customer: typing.Optional[CreateCustomerDto] = OMIT,
503
+ request_options: typing.Optional[RequestOptions] = None,
504
+ ) -> Call:
505
+ """
506
+ Parameters
507
+ ----------
508
+ name : typing.Optional[str]
509
+ This is the name of the call. This is just for your own reference.
510
+
511
+ assistant_id : typing.Optional[str]
512
+ This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
513
+
514
+ assistant : typing.Optional[CreateAssistantDto]
515
+ This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
516
+
517
+ assistant_overrides : typing.Optional[AssistantOverrides]
518
+ These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
519
+
520
+ squad_id : typing.Optional[str]
521
+ This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
522
+
523
+ squad : typing.Optional[CreateSquadDto]
524
+ This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
525
+
526
+ phone_number_id : typing.Optional[str]
527
+ This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
528
+
529
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
530
+
531
+ phone_number : typing.Optional[ImportTwilioPhoneNumberDto]
532
+ This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
533
+
534
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
535
+
536
+ customer_id : typing.Optional[str]
537
+ This is the customer that will be called. To call a transient customer , use `customer` instead.
538
+
539
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
540
+
541
+ customer : typing.Optional[CreateCustomerDto]
542
+ This is the customer that will be called. To call an existing customer, use `customerId` instead.
543
+
544
+ Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
545
+
546
+ request_options : typing.Optional[RequestOptions]
547
+ Request-specific configuration.
548
+
549
+ Returns
550
+ -------
551
+ Call
552
+
553
+
554
+ Examples
555
+ --------
556
+ import asyncio
557
+
558
+ from vapi import AsyncVapi
559
+
560
+ client = AsyncVapi(
561
+ token="YOUR_TOKEN",
562
+ )
563
+
564
+
565
+ async def main() -> None:
566
+ await client.calls.create()
567
+
568
+
569
+ asyncio.run(main())
570
+ """
571
+ _response = await self._client_wrapper.httpx_client.request(
572
+ "call",
573
+ method="POST",
574
+ json={
575
+ "name": name,
576
+ "assistantId": assistant_id,
577
+ "assistant": convert_and_respect_annotation_metadata(
578
+ object_=assistant, annotation=CreateAssistantDto, direction="write"
579
+ ),
580
+ "assistantOverrides": convert_and_respect_annotation_metadata(
581
+ object_=assistant_overrides, annotation=AssistantOverrides, direction="write"
582
+ ),
583
+ "squadId": squad_id,
584
+ "squad": convert_and_respect_annotation_metadata(
585
+ object_=squad, annotation=CreateSquadDto, direction="write"
586
+ ),
587
+ "phoneNumberId": phone_number_id,
588
+ "phoneNumber": convert_and_respect_annotation_metadata(
589
+ object_=phone_number, annotation=ImportTwilioPhoneNumberDto, direction="write"
590
+ ),
591
+ "customerId": customer_id,
592
+ "customer": convert_and_respect_annotation_metadata(
593
+ object_=customer, annotation=CreateCustomerDto, direction="write"
594
+ ),
595
+ },
596
+ request_options=request_options,
597
+ omit=OMIT,
598
+ )
599
+ try:
600
+ if 200 <= _response.status_code < 300:
601
+ return typing.cast(
602
+ Call,
603
+ parse_obj_as(
604
+ type_=Call, # type: ignore
605
+ object_=_response.json(),
606
+ ),
607
+ )
608
+ _response_json = _response.json()
609
+ except JSONDecodeError:
610
+ raise ApiError(status_code=_response.status_code, body=_response.text)
611
+ raise ApiError(status_code=_response.status_code, body=_response_json)
612
+
613
+ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Call:
614
+ """
615
+ Parameters
616
+ ----------
617
+ id : str
618
+
619
+ request_options : typing.Optional[RequestOptions]
620
+ Request-specific configuration.
621
+
622
+ Returns
623
+ -------
624
+ Call
625
+
626
+
627
+ Examples
628
+ --------
629
+ import asyncio
630
+
631
+ from vapi import AsyncVapi
632
+
633
+ client = AsyncVapi(
634
+ token="YOUR_TOKEN",
635
+ )
636
+
637
+
638
+ async def main() -> None:
639
+ await client.calls.get(
640
+ id="id",
641
+ )
642
+
643
+
644
+ asyncio.run(main())
645
+ """
646
+ _response = await self._client_wrapper.httpx_client.request(
647
+ f"call/{jsonable_encoder(id)}",
648
+ method="GET",
649
+ request_options=request_options,
650
+ )
651
+ try:
652
+ if 200 <= _response.status_code < 300:
653
+ return typing.cast(
654
+ Call,
655
+ parse_obj_as(
656
+ type_=Call, # type: ignore
657
+ object_=_response.json(),
658
+ ),
659
+ )
660
+ _response_json = _response.json()
661
+ except JSONDecodeError:
662
+ raise ApiError(status_code=_response.status_code, body=_response.text)
663
+ raise ApiError(status_code=_response.status_code, body=_response_json)
664
+
665
+ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Call:
666
+ """
667
+ Parameters
668
+ ----------
669
+ id : str
670
+
671
+ request_options : typing.Optional[RequestOptions]
672
+ Request-specific configuration.
673
+
674
+ Returns
675
+ -------
676
+ Call
677
+
678
+
679
+ Examples
680
+ --------
681
+ import asyncio
682
+
683
+ from vapi import AsyncVapi
684
+
685
+ client = AsyncVapi(
686
+ token="YOUR_TOKEN",
687
+ )
688
+
689
+
690
+ async def main() -> None:
691
+ await client.calls.delete(
692
+ id="id",
693
+ )
694
+
695
+
696
+ asyncio.run(main())
697
+ """
698
+ _response = await self._client_wrapper.httpx_client.request(
699
+ f"call/{jsonable_encoder(id)}",
700
+ method="DELETE",
701
+ request_options=request_options,
702
+ )
703
+ try:
704
+ if 200 <= _response.status_code < 300:
705
+ return typing.cast(
706
+ Call,
707
+ parse_obj_as(
708
+ type_=Call, # type: ignore
709
+ object_=_response.json(),
710
+ ),
711
+ )
712
+ _response_json = _response.json()
713
+ except JSONDecodeError:
714
+ raise ApiError(status_code=_response.status_code, body=_response.text)
715
+ raise ApiError(status_code=_response.status_code, body=_response_json)
716
+
717
+ async def update(
718
+ self, id: str, *, name: typing.Optional[str] = OMIT, request_options: typing.Optional[RequestOptions] = None
719
+ ) -> Call:
720
+ """
721
+ Parameters
722
+ ----------
723
+ id : str
724
+
725
+ name : typing.Optional[str]
726
+ This is the name of the call. This is just for your own reference.
727
+
728
+ request_options : typing.Optional[RequestOptions]
729
+ Request-specific configuration.
730
+
731
+ Returns
732
+ -------
733
+ Call
734
+
735
+
736
+ Examples
737
+ --------
738
+ import asyncio
739
+
740
+ from vapi import AsyncVapi
741
+
742
+ client = AsyncVapi(
743
+ token="YOUR_TOKEN",
744
+ )
745
+
746
+
747
+ async def main() -> None:
748
+ await client.calls.update(
749
+ id="id",
750
+ )
751
+
752
+
753
+ asyncio.run(main())
754
+ """
755
+ _response = await self._client_wrapper.httpx_client.request(
756
+ f"call/{jsonable_encoder(id)}",
757
+ method="PATCH",
758
+ json={
759
+ "name": name,
760
+ },
761
+ request_options=request_options,
762
+ omit=OMIT,
763
+ )
764
+ try:
765
+ if 200 <= _response.status_code < 300:
766
+ return typing.cast(
767
+ Call,
768
+ parse_obj_as(
769
+ type_=Call, # type: ignore
770
+ object_=_response.json(),
771
+ ),
772
+ )
773
+ _response_json = _response.json()
774
+ except JSONDecodeError:
775
+ raise ApiError(status_code=_response.status_code, body=_response.text)
776
+ raise ApiError(status_code=_response.status_code, body=_response_json)