diff --git a/README.md b/README.md
index 97194e4..e69de29 100644
--- a/README.md
+++ b/README.md
@@ -1,152 +0,0 @@
-# Vapi Python Library
-
-[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Ffern-demo%2Fvapi-python-sdk)
-[![pypi](https://img.shields.io/pypi/v/Vapi)](https://pypi.python.org/pypi/Vapi)
-
-The Vapi Python library provides convenient access to the Vapi API from Python.
-
-## Installation
-
-```sh
-pip install Vapi
-```
-
-## Reference
-
-A full reference for this library is available [here](./reference.md).
-
-## Usage
-
-Instantiate and use the client with the following:
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.create()
-```
-
-## Async Client
-
-The SDK also exports an `async` client so that you can make non-blocking calls to our API.
-
-```python
-import asyncio
-
-from vapi import AsyncVapi
-
-client = AsyncVapi(
- token="YOUR_TOKEN",
-)
-
-
-async def main() -> None:
- await client.calls.create()
-
-
-asyncio.run(main())
-```
-
-## Exception Handling
-
-When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error
-will be thrown.
-
-```python
-from vapi.core.api_error import ApiError
-
-try:
- client.calls.create(...)
-except ApiError as e:
- print(e.status_code)
- print(e.body)
-```
-
-## Pagination
-
-Paginated requests will return a `SyncPager` or `AsyncPager`, which can be used as generators for the underlying object.
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-response = client.logs.get()
-for item in response:
- yield item
-# alternatively, you can paginate page-by-page
-for page in response.iter_pages():
- yield page
-```
-
-## Advanced
-
-### Retries
-
-The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long
-as the request is deemed retriable and the number of retry attempts has not grown larger than the configured
-retry limit (default: 2).
-
-A request is deemed retriable when any of the following HTTP status codes is returned:
-
-- [408](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408) (Timeout)
-- [429](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429) (Too Many Requests)
-- [5XX](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500) (Internal Server Errors)
-
-Use the `max_retries` request option to configure this behavior.
-
-```python
-client.calls.create(..., request_options={
- "max_retries": 1
-})
-```
-
-### Timeouts
-
-The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level.
-
-```python
-
-from vapi import Vapi
-
-client = Vapi(
- ...,
- timeout=20.0,
-)
-
-
-# Override timeout for a specific method
-client.calls.create(..., request_options={
- "timeout_in_seconds": 1
-})
-```
-
-### Custom Client
-
-You can override the `httpx` client to customize it for your use-case. Some common use-cases include support for proxies
-and transports.
-```python
-import httpx
-from vapi import Vapi
-
-client = Vapi(
- ...,
- httpx_client=httpx.Client(
- proxies="http://my.test.proxy.example.com",
- transport=httpx.HTTPTransport(local_address="0.0.0.0"),
- ),
-)
-```
-
-## Contributing
-
-While we value open-source contributions to this SDK, this library is generated programmatically.
-Additions made directly to this library would have to be moved over to our generation code,
-otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
-a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
-an issue first to discuss with us!
-
-On the other hand, contributions to the README are always very welcome!
diff --git a/pyproject.toml b/pyproject.toml
index 120be6b..fb67c18 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "Vapi"
-version = "0.0.0-alpha2"
+version = "0.0.0-alpha3"
description = ""
readme = "README.md"
authors = []
diff --git a/reference.md b/reference.md
deleted file mode 100644
index 05a7373..0000000
--- a/reference.md
+++ /dev/null
@@ -1,3662 +0,0 @@
-# Reference
-## Calls
-client.calls.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**assistant_id:** `typing.Optional[str]` — This will return calls with the specified assistantId.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.calls.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.create()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the call. This is just for your own reference.
-
-
-
-
-
--
-
-**assistant_id:** `typing.Optional[str]` — This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
-
-
-
-
-
--
-
-**assistant:** `typing.Optional[CreateAssistantDto]` — This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
-
-
-
-
-
--
-
-**assistant_overrides:** `typing.Optional[AssistantOverrides]` — These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
-
-
-
-
-
--
-
-**squad_id:** `typing.Optional[str]` — This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
-
-
-
-
-
--
-
-**squad:** `typing.Optional[CreateSquadDto]` — This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
-
-
-
-
-
--
-
-**phone_number_id:** `typing.Optional[str]`
-
-This is the phone number that will be used for the call. To use a transient number, use `phoneNumber` instead.
-
-Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
-
-
-
-
-
--
-
-**phone_number:** `typing.Optional[ImportTwilioPhoneNumberDto]`
-
-This is the phone number that will be used for the call. To use an existing number, use `phoneNumberId` instead.
-
-Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
-
-
-
-
-
--
-
-**customer_id:** `typing.Optional[str]`
-
-This is the customer that will be called. To call a transient customer , use `customer` instead.
-
-Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
-
-
-
-
-
--
-
-**customer:** `typing.Optional[CreateCustomerDto]`
-
-This is the customer that will be called. To call an existing customer, use `customerId` instead.
-
-Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.calls.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.calls.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.calls.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.calls.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the call. This is just for your own reference.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Assistants
-client.assistants.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.assistants.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.assistants.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.assistants.create()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**transcriber:** `typing.Optional[CreateAssistantDtoTranscriber]` — These are the options for the assistant's transcriber.
-
-
-
-
-
--
-
-**model:** `typing.Optional[CreateAssistantDtoModel]` — These are the options for the assistant's LLM.
-
-
-
-
-
--
-
-**voice:** `typing.Optional[CreateAssistantDtoVoice]` — These are the options for the assistant's voice.
-
-
-
-
-
--
-
-**first_message_mode:** `typing.Optional[CreateAssistantDtoFirstMessageMode]`
-
-This is the mode for the first message. Default is 'assistant-speaks-first'.
-
-Use:
-
-- 'assistant-speaks-first' to have the assistant speak first.
-- 'assistant-waits-for-user' to have the assistant wait for the user to speak first.
-- 'assistant-speaks-first-with-model-generated-message' to have the assistant speak first with a message generated by the model based on the conversation state. (`assistant.model.messages` at call start, `call.messages` at squad transfer points).
-
-@default 'assistant-speaks-first'
-
-
-
-
-
--
-
-**hipaa_enabled:** `typing.Optional[bool]` — When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
-
-
-
-
-
--
-
-**client_messages:** `typing.Optional[typing.Sequence[CreateAssistantDtoClientMessagesItem]]` — These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transcript,tool-calls,user-interrupted,voice-input. You can check the shape of the messages in ClientMessage schema.
-
-
-
-
-
--
-
-**server_messages:** `typing.Optional[typing.Sequence[CreateAssistantDtoServerMessagesItem]]` — These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.
-
-
-
-
-
--
-
-**silence_timeout_seconds:** `typing.Optional[float]`
-
-How many seconds of silence to wait before ending the call. Defaults to 30.
-
-@default 30
-
-
-
-
-
--
-
-**max_duration_seconds:** `typing.Optional[float]`
-
-This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
-
-@default 600 (10 minutes)
-
-
-
-
-
--
-
-**background_sound:** `typing.Optional[CreateAssistantDtoBackgroundSound]` — This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
-
-
-
-
-
--
-
-**backchanneling_enabled:** `typing.Optional[bool]`
-
-This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**background_denoising_enabled:** `typing.Optional[bool]`
-
-This enables filtering of noise and background speech while the user is talking.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**model_output_in_messages_enabled:** `typing.Optional[bool]`
-
-This determines whether the model's output is used in conversation history rather than the transcription of assistant's speech.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**transport_configurations:** `typing.Optional[typing.Sequence[TransportConfigurationTwilio]]` — These are the configurations to be passed to the transport providers of assistant's calls, like Twilio. You can store multiple configurations for different transport providers. For a call, only the configuration matching the call transport provider is used.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]`
-
-This is the name of the assistant.
-
-This is required when you want to transfer between assistants in a call.
-
-
-
-
-
--
-
-**first_message:** `typing.Optional[str]`
-
-This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
-
-If unspecified, assistant will wait for user to speak and use the model to respond once they speak.
-
-
-
-
-
--
-
-**voicemail_detection:** `typing.Optional[TwilioVoicemailDetection]`
-
-These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].
-This uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.
-You can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.
-
-
-
-
-
--
-
-**voicemail_message:** `typing.Optional[str]`
-
-This is the message that the assistant will say if the call is forwarded to voicemail.
-
-If unspecified, it will hang up.
-
-
-
-
-
--
-
-**end_call_message:** `typing.Optional[str]`
-
-This is the message that the assistant will say if it ends the call.
-
-If unspecified, it will hang up without saying anything.
-
-
-
-
-
--
-
-**end_call_phrases:** `typing.Optional[typing.Sequence[str]]` — This list contains phrases that, if spoken by the assistant, will trigger the call to be hung up. Case insensitive.
-
-
-
-
-
--
-
-**metadata:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — This is for metadata you want to store on the assistant.
-
-
-
-
-
--
-
-**server_url:** `typing.Optional[str]`
-
-This is the URL Vapi will communicate with via HTTP GET and POST Requests. This is used for retrieving context, function calling, and end-of-call reports.
-
-All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
-
-This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl
-
-
-
-
-
--
-
-**server_url_secret:** `typing.Optional[str]`
-
-This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
-
-Same precedence logic as serverUrl.
-
-
-
-
-
--
-
-**analysis_plan:** `typing.Optional[AnalysisPlan]` — This is the plan for analysis of assistant's calls. Stored in `call.analysis`.
-
-
-
-
-
--
-
-**artifact_plan:** `typing.Optional[ArtifactPlan]`
-
-This is the plan for artifacts generated during assistant's calls. Stored in `call.artifact`.
-
-Note: `recordingEnabled` is currently at the root level. It will be moved to `artifactPlan` in the future, but will remain backwards compatible.
-
-
-
-
-
--
-
-**message_plan:** `typing.Optional[MessagePlan]`
-
-This is the plan for static predefined messages that can be spoken by the assistant during the call, like `idleMessages`.
-
-Note: `firstMessage`, `voicemailMessage`, and `endCallMessage` are currently at the root level. They will be moved to `messagePlan` in the future, but will remain backwards compatible.
-
-
-
-
-
--
-
-**start_speaking_plan:** `typing.Optional[StartSpeakingPlan]`
-
-This is the plan for when the assistant should start talking.
-
-You should configure this if you're running into these issues:
-
-- The assistant is too slow to start talking after the customer is done speaking.
-- The assistant is too fast to start talking after the customer is done speaking.
-- The assistant is so fast that it's actually interrupting the customer.
-
-
-
-
-
--
-
-**stop_speaking_plan:** `typing.Optional[StopSpeakingPlan]`
-
-This is the plan for when assistant should stop talking on customer interruption.
-
-You should configure this if you're running into these issues:
-
-- The assistant is too slow to recognize customer's interruption.
-- The assistant is too fast to recognize customer's interruption.
-- The assistant is getting interrupted by phrases that are just acknowledgments.
-- The assistant is getting interrupted by background noises.
-- The assistant is not properly stopping -- it starts talking right after getting interrupted.
-
-
-
-
-
--
-
-**monitor_plan:** `typing.Optional[MonitorPlan]`
-
-This is the plan for real-time monitoring of the assistant's calls.
-
-Usage:
-
-- To enable live listening of the assistant's calls, set `monitorPlan.listenEnabled` to `true`.
-- To enable live control of the assistant's calls, set `monitorPlan.controlEnabled` to `true`.
-
-Note, `serverMessages`, `clientMessages`, `serverUrl` and `serverUrlSecret` are currently at the root level but will be moved to `monitorPlan` in the future. Will remain backwards compatible
-
-
-
-
-
--
-
-**credential_ids:** `typing.Optional[typing.Sequence[str]]` — These are the credentials that will be used for the assistant calls. By default, all the credentials are available for use in the call but you can provide a subset using this.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.assistants.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.assistants.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.assistants.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.assistants.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.assistants.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.assistants.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**transcriber:** `typing.Optional[UpdateAssistantDtoTranscriber]` — These are the options for the assistant's transcriber.
-
-
-
-
-
--
-
-**model:** `typing.Optional[UpdateAssistantDtoModel]` — These are the options for the assistant's LLM.
-
-
-
-
-
--
-
-**voice:** `typing.Optional[UpdateAssistantDtoVoice]` — These are the options for the assistant's voice.
-
-
-
-
-
--
-
-**first_message_mode:** `typing.Optional[UpdateAssistantDtoFirstMessageMode]`
-
-This is the mode for the first message. Default is 'assistant-speaks-first'.
-
-Use:
-- 'assistant-speaks-first' to have the assistant speak first.
-- 'assistant-waits-for-user' to have the assistant wait for the user to speak first.
-- 'assistant-speaks-first-with-model-generated-message' to have the assistant speak first with a message generated by the model based on the conversation state. (`assistant.model.messages` at call start, `call.messages` at squad transfer points).
-
-@default 'assistant-speaks-first'
-
-
-
-
-
--
-
-**hipaa_enabled:** `typing.Optional[bool]` — When this is enabled, no logs, recordings, or transcriptions will be stored. At the end of the call, you will still receive an end-of-call-report message to store on your server. Defaults to false.
-
-
-
-
-
--
-
-**client_messages:** `typing.Optional[typing.Sequence[UpdateAssistantDtoClientMessagesItem]]` — These are the messages that will be sent to your Client SDKs. Default is conversation-update,function-call,hang,model-output,speech-update,status-update,transcript,tool-calls,user-interrupted,voice-input. You can check the shape of the messages in ClientMessage schema.
-
-
-
-
-
--
-
-**server_messages:** `typing.Optional[typing.Sequence[UpdateAssistantDtoServerMessagesItem]]` — These are the messages that will be sent to your Server URL. Default is conversation-update,end-of-call-report,function-call,hang,speech-update,status-update,tool-calls,transfer-destination-request,user-interrupted. You can check the shape of the messages in ServerMessage schema.
-
-
-
-
-
--
-
-**silence_timeout_seconds:** `typing.Optional[float]`
-
-How many seconds of silence to wait before ending the call. Defaults to 30.
-
-@default 30
-
-
-
-
-
--
-
-**max_duration_seconds:** `typing.Optional[float]`
-
-This is the maximum number of seconds that the call will last. When the call reaches this duration, it will be ended.
-
-@default 600 (10 minutes)
-
-
-
-
-
--
-
-**background_sound:** `typing.Optional[UpdateAssistantDtoBackgroundSound]` — This is the background sound in the call. Default for phone calls is 'office' and default for web calls is 'off'.
-
-
-
-
-
--
-
-**backchanneling_enabled:** `typing.Optional[bool]`
-
-This determines whether the model says 'mhmm', 'ahem' etc. while user is speaking.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**background_denoising_enabled:** `typing.Optional[bool]`
-
-This enables filtering of noise and background speech while the user is talking.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**model_output_in_messages_enabled:** `typing.Optional[bool]`
-
-This determines whether the model's output is used in conversation history rather than the transcription of assistant's speech.
-
-Default `false` while in beta.
-
-@default false
-
-
-
-
-
--
-
-**transport_configurations:** `typing.Optional[typing.Sequence[TransportConfigurationTwilio]]` — These are the configurations to be passed to the transport providers of assistant's calls, like Twilio. You can store multiple configurations for different transport providers. For a call, only the configuration matching the call transport provider is used.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]`
-
-This is the name of the assistant.
-
-This is required when you want to transfer between assistants in a call.
-
-
-
-
-
--
-
-**first_message:** `typing.Optional[str]`
-
-This is the first message that the assistant will say. This can also be a URL to a containerized audio file (mp3, wav, etc.).
-
-If unspecified, assistant will wait for user to speak and use the model to respond once they speak.
-
-
-
-
-
--
-
-**voicemail_detection:** `typing.Optional[TwilioVoicemailDetection]`
-
-These are the settings to configure or disable voicemail detection. Alternatively, voicemail detection can be configured using the model.tools=[VoicemailTool].
-This uses Twilio's built-in detection while the VoicemailTool relies on the model to detect if a voicemail was reached.
-You can use neither of them, one of them, or both of them. By default, Twilio built-in detection is enabled while VoicemailTool is not.
-
-
-
-
-
--
-
-**voicemail_message:** `typing.Optional[str]`
-
-This is the message that the assistant will say if the call is forwarded to voicemail.
-
-If unspecified, it will hang up.
-
-
-
-
-
--
-
-**end_call_message:** `typing.Optional[str]`
-
-This is the message that the assistant will say if it ends the call.
-
-If unspecified, it will hang up without saying anything.
-
-
-
-
-
--
-
-**end_call_phrases:** `typing.Optional[typing.Sequence[str]]` — This list contains phrases that, if spoken by the assistant, will trigger the call to be hung up. Case insensitive.
-
-
-
-
-
--
-
-**metadata:** `typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]` — This is for metadata you want to store on the assistant.
-
-
-
-
-
--
-
-**server_url:** `typing.Optional[str]`
-
-This is the URL Vapi will communicate with via HTTP GET and POST Requests. This is used for retrieving context, function calling, and end-of-call reports.
-
-All requests will be sent with the call object among other things relevant to that message. You can find more details in the Server URL documentation.
-
-This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl
-
-
-
-
-
--
-
-**server_url_secret:** `typing.Optional[str]`
-
-This is the secret you can set that Vapi will send with every request to your server. Will be sent as a header called x-vapi-secret.
-
-Same precedence logic as serverUrl.
-
-
-
-
-
--
-
-**analysis_plan:** `typing.Optional[AnalysisPlan]` — This is the plan for analysis of assistant's calls. Stored in `call.analysis`.
-
-
-
-
-
--
-
-**artifact_plan:** `typing.Optional[ArtifactPlan]`
-
-This is the plan for artifacts generated during assistant's calls. Stored in `call.artifact`.
-
-Note: `recordingEnabled` is currently at the root level. It will be moved to `artifactPlan` in the future, but will remain backwards compatible.
-
-
-
-
-
--
-
-**message_plan:** `typing.Optional[MessagePlan]`
-
-This is the plan for static predefined messages that can be spoken by the assistant during the call, like `idleMessages`.
-
-Note: `firstMessage`, `voicemailMessage`, and `endCallMessage` are currently at the root level. They will be moved to `messagePlan` in the future, but will remain backwards compatible.
-
-
-
-
-
--
-
-**start_speaking_plan:** `typing.Optional[StartSpeakingPlan]`
-
-This is the plan for when the assistant should start talking.
-
-You should configure this if you're running into these issues:
-- The assistant is too slow to start talking after the customer is done speaking.
-- The assistant is too fast to start talking after the customer is done speaking.
-- The assistant is so fast that it's actually interrupting the customer.
-
-
-
-
-
--
-
-**stop_speaking_plan:** `typing.Optional[StopSpeakingPlan]`
-
-This is the plan for when assistant should stop talking on customer interruption.
-
-You should configure this if you're running into these issues:
-- The assistant is too slow to recognize customer's interruption.
-- The assistant is too fast to recognize customer's interruption.
-- The assistant is getting interrupted by phrases that are just acknowledgments.
-- The assistant is getting interrupted by background noises.
-- The assistant is not properly stopping -- it starts talking right after getting interrupted.
-
-
-
-
-
--
-
-**monitor_plan:** `typing.Optional[MonitorPlan]`
-
-This is the plan for real-time monitoring of the assistant's calls.
-
-Usage:
-- To enable live listening of the assistant's calls, set `monitorPlan.listenEnabled` to `true`.
-- To enable live control of the assistant's calls, set `monitorPlan.controlEnabled` to `true`.
-
-Note, `serverMessages`, `clientMessages`, `serverUrl` and `serverUrlSecret` are currently at the root level but will be moved to `monitorPlan` in the future. Will remain backwards compatible
-
-
-
-
-
--
-
-**credential_ids:** `typing.Optional[typing.Sequence[str]]` — These are the credentials that will be used for the assistant calls. By default, all the credentials are available for use in the call but you can provide a subset using this.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## PhoneNumbers
-client.phone_numbers.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.phone_numbers.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.phone_numbers.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import CreateByoPhoneNumberDto, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.phone_numbers.create(
- request=CreateByoPhoneNumberDto(
- credential_id="credentialId",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `PhoneNumbersCreateRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.phone_numbers.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.phone_numbers.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.phone_numbers.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.phone_numbers.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.phone_numbers.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.phone_numbers.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**fallback_destination:** `typing.Optional[UpdatePhoneNumberDtoFallbackDestination]`
-
-This is the fallback destination an inbound call will be transferred to if:
-1. `assistantId` is not set
-2. `squadId` is not set
-3. and, `assistant-request` message to the `serverUrl` fails
-
-If this is not set and above conditions are met, the inbound call is hung up with an error message.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the phone number. This is just for your own reference.
-
-
-
-
-
--
-
-**assistant_id:** `typing.Optional[str]`
-
-This is the assistant that will be used for incoming calls to this phone number.
-
-If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected.
-
-
-
-
-
--
-
-**squad_id:** `typing.Optional[str]`
-
-This is the squad that will be used for incoming calls to this phone number.
-
-If neither `assistantId` nor `squadId` is set, `assistant-request` will be sent to your Server URL. Check `ServerMessage` and `ServerMessageResponse` for the shape of the message and response that is expected.
-
-
-
-
-
--
-
-**server_url:** `typing.Optional[str]`
-
-This is the server URL where messages will be sent for calls on this number. This includes the `assistant-request` message.
-
-You can see the shape of the messages sent in `ServerMessage`.
-
-This overrides the `org.serverUrl`. Order of precedence: tool.server.url > assistant.serverUrl > phoneNumber.serverUrl > org.serverUrl.
-
-
-
-
-
--
-
-**server_url_secret:** `typing.Optional[str]`
-
-This is the secret Vapi will send with every message to your server. It's sent as a header called x-vapi-secret.
-
-Same precedence logic as serverUrl.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Squads
-client.squads.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.squads.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.squads.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import SquadMemberDto, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.squads.create(
- members=[SquadMemberDto()],
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**members:** `typing.Sequence[SquadMemberDto]`
-
-This is the list of assistants that make up the squad.
-
-The call will start with the first assistant in the list.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the squad.
-
-
-
-
-
--
-
-**members_overrides:** `typing.Optional[AssistantOverrides]`
-
-This can be used to override all the assistants' settings and provide values for their template variables.
-
-Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.squads.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.squads.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.squads.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.squads.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.squads.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import SquadMemberDto, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.squads.update(
- id="id",
- members=[SquadMemberDto()],
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**members:** `typing.Sequence[SquadMemberDto]`
-
-This is the list of assistants that make up the squad.
-
-The call will start with the first assistant in the list.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the squad.
-
-
-
-
-
--
-
-**members_overrides:** `typing.Optional[AssistantOverrides]`
-
-This can be used to override all the assistants' settings and provide values for their template variables.
-
-Both `membersOverrides` and `members[n].assistantOverrides` can be used together. First, `members[n].assistantOverrides` is applied. Then, `membersOverrides` is applied as a global override.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Blocks
-client.blocks.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.blocks.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.blocks.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import CreateConversationBlockDto, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.blocks.create(
- request=CreateConversationBlockDto(
- instruction="instruction",
- ),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `BlocksCreateRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.blocks.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.blocks.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.blocks.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.blocks.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.blocks.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.blocks.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**messages:** `typing.Optional[typing.Sequence[UpdateBlockDtoMessagesItem]]` — These are the pre-configured messages that will be spoken to the user while the block is running.
-
-
-
-
-
--
-
-**input_schema:** `typing.Optional[JsonSchema]`
-
-This is the input schema for the block. This is the input the block needs to run. It's given to the block as `steps[0].input`
-
-These are accessible as variables:
-- ({{input.propertyName}}) in context of the block execution (step)
-- ({{stepName.input.propertyName}}) in context of the workflow
-
-
-
-
-
--
-
-**output_schema:** `typing.Optional[JsonSchema]`
-
-This is the output schema for the block. This is the output the block will return to the workflow (`{{stepName.output}}`).
-
-These are accessible as variables:
-- ({{output.propertyName}}) in context of the block execution (step)
-- ({{stepName.output.propertyName}}) in context of the workflow (read caveat #1)
-- ({{blockName.output.propertyName}}) in context of the workflow (read caveat #2)
-
-Caveats:
-1. a workflow can execute a step multiple times. example, if a loop is used in the graph. {{stepName.output.propertyName}} will reference the latest usage of the step.
-2. a workflow can execute a block multiple times. example, if a step is called multiple times or if a block is used in multiple steps. {{blockName.output.propertyName}} will reference the latest usage of the block. this liquid variable is just provided for convenience when creating blocks outside of a workflow with steps.
-
-
-
-
-
--
-
-**tool:** `typing.Optional[UpdateBlockDtoTool]` — This is the tool that the block will call. To use an existing tool, use `toolId`.
-
-
-
-
-
--
-
-**steps:** `typing.Optional[typing.Sequence[UpdateBlockDtoStepsItem]]` — These are the steps in the workflow.
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the block. This is just for your reference.
-
-
-
-
-
--
-
-**instruction:** `typing.Optional[str]`
-
-This is the instruction to the model.
-
-You can reference any variable in the context of the current block execution (step):
-- "{{input.your-property-name}}" for the current step's input
-- "{{your-step-name.output.your-property-name}}" for another step's output (in the same workflow; read caveat #1)
-- "{{your-step-name.input.your-property-name}}" for another step's input (in the same workflow; read caveat #1)
-- "{{your-block-name.output.your-property-name}}" for another block's output (in the same workflow; read caveat #2)
-- "{{your-block-name.input.your-property-name}}" for another block's input (in the same workflow; read caveat #2)
-- "{{workflow.input.your-property-name}}" for the current workflow's input
-- "{{global.your-property-name}}" for the global context
-
-This can be as simple or as complex as you want it to be.
-- "say hello and ask the user about their day!"
-- "collect the user's first and last name"
-- "user is {{input.firstName}} {{input.lastName}}. their age is {{input.age}}. ask them about their salary and if they might be interested in buying a house. we offer {{input.offer}}"
-
-Caveats:
-1. a workflow can execute a step multiple times. example, if a loop is used in the graph. {{stepName.output/input.propertyName}} will reference the latest usage of the step.
-2. a workflow can execute a block multiple times. example, if a step is called multiple times or if a block is used in multiple steps. {{blockName.output/input.propertyName}} will reference the latest usage of the block. this liquid variable is just provided for convenience when creating blocks outside of a workflow with steps.
-
-
-
-
-
--
-
-**tool_id:** `typing.Optional[str]` — This is the id of the tool that the block will call. To use a transient tool, use `tool`.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Tools
-client.tools.list(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.tools.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tools.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import CreateDtmfToolDto, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.tools.create(
- request=CreateDtmfToolDto(),
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request:** `ToolsCreateRequest`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tools.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.tools.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tools.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.tools.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.tools.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.tools.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**async_:** `typing.Optional[bool]`
-
-This determines if the tool is async.
-
-If async, the assistant will move forward without waiting for your server to respond. This is useful if you just want to trigger something on your server.
-
-If sync, the assistant will wait for your server to respond. This is useful if want assistant to respond with the result from your server.
-
-Defaults to synchronous (`false`).
-
-
-
-
-
--
-
-**messages:** `typing.Optional[typing.Sequence[UpdateToolDtoMessagesItem]]`
-
-These are the messages that will be spoken to the user as the tool is running.
-
-For some tools, this is auto-filled based on special fields like `tool.destinations`. For others like the function tool, these can be custom configured.
-
-
-
-
-
--
-
-**function:** `typing.Optional[OpenAiFunction]`
-
-This is the function definition of the tool.
-
-For `endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases.
-
-An example of an advanced use case is if you want to customize the message that's spoken for `endCall` tool. You can specify a function where it returns an argument "reason". Then, in `messages` array, you can have many "request-complete" messages. One of these messages will be triggered if the `messages[].conditions` matches the "reason" argument.
-
-
-
-
-
--
-
-**server:** `typing.Optional[Server]`
-
-This is the server that will be hit when this tool is requested by the model.
-
-All requests will be sent with the call object among other things. You can find more details in the Server URL documentation.
-
-This overrides the serverUrl set on the org and the phoneNumber. Order of precedence: highest tool.server.url, then assistant.serverUrl, then phoneNumber.serverUrl, then org.serverUrl.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Files
-client.files.list()
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.files.list()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.create(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.files.create()
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**file:** `from __future__ import annotations
-
-core.File` — See core.File for more documentation
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.files.get(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.delete(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.files.delete(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-client.files.update(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.files.update(
- id="id",
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**id:** `str`
-
-
-
-
-
--
-
-**name:** `typing.Optional[str]` — This is the name of the file. This is just for your own reference.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Analytics
-client.analytics.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import AnalyticsOperation, AnalyticsQuery, Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-client.analytics.get(
- queries=[
- AnalyticsQuery(
- name="name",
- operations=[
- AnalyticsOperation(
- operation="sum",
- column="id",
- )
- ],
- )
- ],
-)
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**queries:** `typing.Sequence[AnalyticsQuery]` — This is the list of metric queries you want to perform.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
-## Logs
-client.logs.get(...)
-
--
-
-#### 🔌 Usage
-
-
--
-
-
--
-
-```python
-from vapi import Vapi
-
-client = Vapi(
- token="YOUR_TOKEN",
-)
-response = client.logs.get()
-for item in response:
- yield item
-# alternatively, you can paginate page-by-page
-for page in response.iter_pages():
- yield page
-
-```
-
-
-
-
-
-#### ⚙️ Parameters
-
-
--
-
-
--
-
-**org_id:** `typing.Optional[str]` — This is the unique identifier for the org that this log belongs to.
-
-
-
-
-
--
-
-**type:** `typing.Optional[LogsGetRequestType]` — This is the type of the log.
-
-
-
-
-
--
-
-**assistant_id:** `typing.Optional[str]` — This is the ID of the assistant.
-
-
-
-
-
--
-
-**phone_number_id:** `typing.Optional[str]` — This is the ID of the phone number.
-
-
-
-
-
--
-
-**customer_id:** `typing.Optional[str]` — This is the ID of the customer.
-
-
-
-
-
--
-
-**squad_id:** `typing.Optional[str]` — This is the ID of the squad.
-
-
-
-
-
--
-
-**call_id:** `typing.Optional[str]` — This is the ID of the call.
-
-
-
-
-
--
-
-**page:** `typing.Optional[float]` — This is the page number to return. Defaults to 1.
-
-
-
-
-
--
-
-**sort_order:** `typing.Optional[LogsGetRequestSortOrder]` — This is the sort order for pagination. Defaults to 'ASC'.
-
-
-
-
-
--
-
-**limit:** `typing.Optional[float]` — This is the maximum number of items to return. Defaults to 100.
-
-
-
-
-
--
-
-**created_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than the specified value.
-
-
-
-
-
--
-
-**created_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than the specified value.
-
-
-
-
-
--
-
-**created_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**created_at_le:** `typing.Optional[dt.datetime]` — This will return items where the createdAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_gt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than the specified value.
-
-
-
-
-
--
-
-**updated_at_lt:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than the specified value.
-
-
-
-
-
--
-
-**updated_at_ge:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is greater than or equal to the specified value.
-
-
-
-
-
--
-
-**updated_at_le:** `typing.Optional[dt.datetime]` — This will return items where the updatedAt is less than or equal to the specified value.
-
-
-
-
-
--
-
-**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/vapi/__init__.py b/src/vapi/__init__.py
index f468e54..11a9793 100644
--- a/src/vapi/__init__.py
+++ b/src/vapi/__init__.py
@@ -45,7 +45,8 @@
AzureOpenAiCredentialModelsItem,
AzureOpenAiCredentialRegion,
AzureVoice,
- AzureVoiceVoiceId,
+ AzureVoiceId,
+ AzureVoiceIdEnum,
BlockCompleteMessage,
BlockCompleteMessageConditionsItem,
BlockStartMessage,
@@ -197,13 +198,15 @@
DeepgramTranscriberLanguage,
DeepgramTranscriberModel,
DeepgramVoice,
- DeepgramVoiceVoiceId,
+ DeepgramVoiceId,
+ DeepgramVoiceIdEnum,
DtmfTool,
DtmfToolMessagesItem,
ElevenLabsCredential,
ElevenLabsVoice,
+ ElevenLabsVoiceId,
+ ElevenLabsVoiceIdEnum,
ElevenLabsVoiceModel,
- ElevenLabsVoiceVoiceId,
EndCallTool,
EndCallToolMessagesItem,
Error,
@@ -248,7 +251,8 @@
KnowledgeBase,
LmntCredential,
LmntVoice,
- LmntVoiceVoiceId,
+ LmntVoiceId,
+ LmntVoiceIdEnum,
Log,
LogRequestHttpMethod,
LogResource,
@@ -268,7 +272,8 @@
Monitor,
MonitorPlan,
NeetsVoice,
- NeetsVoiceVoiceId,
+ NeetsVoiceId,
+ NeetsVoiceIdEnum,
OpenAiCredential,
OpenAiFunction,
OpenAiFunctionParameters,
@@ -279,7 +284,7 @@
OpenAiModelModel,
OpenAiModelToolsItem,
OpenAiVoice,
- OpenAiVoiceVoiceId,
+ OpenAiVoiceId,
OpenRouterCredential,
OpenRouterModel,
OpenRouterModelToolsItem,
@@ -301,8 +306,9 @@
RegexReplacement,
RimeAiCredential,
RimeAiVoice,
+ RimeAiVoiceId,
+ RimeAiVoiceIdEnum,
RimeAiVoiceModel,
- RimeAiVoiceVoiceId,
RuleBasedCondition,
RuleBasedConditionOperator,
RunpodCredential,
@@ -578,7 +584,8 @@
"AzureOpenAiCredentialModelsItem",
"AzureOpenAiCredentialRegion",
"AzureVoice",
- "AzureVoiceVoiceId",
+ "AzureVoiceId",
+ "AzureVoiceIdEnum",
"BadRequestError",
"BlockCompleteMessage",
"BlockCompleteMessageConditionsItem",
@@ -737,13 +744,15 @@
"DeepgramTranscriberLanguage",
"DeepgramTranscriberModel",
"DeepgramVoice",
- "DeepgramVoiceVoiceId",
+ "DeepgramVoiceId",
+ "DeepgramVoiceIdEnum",
"DtmfTool",
"DtmfToolMessagesItem",
"ElevenLabsCredential",
"ElevenLabsVoice",
+ "ElevenLabsVoiceId",
+ "ElevenLabsVoiceIdEnum",
"ElevenLabsVoiceModel",
- "ElevenLabsVoiceVoiceId",
"EndCallTool",
"EndCallToolMessagesItem",
"Error",
@@ -788,7 +797,8 @@
"KnowledgeBase",
"LmntCredential",
"LmntVoice",
- "LmntVoiceVoiceId",
+ "LmntVoiceId",
+ "LmntVoiceIdEnum",
"Log",
"LogRequestHttpMethod",
"LogResource",
@@ -810,7 +820,8 @@
"Monitor",
"MonitorPlan",
"NeetsVoice",
- "NeetsVoiceVoiceId",
+ "NeetsVoiceId",
+ "NeetsVoiceIdEnum",
"OpenAiCredential",
"OpenAiFunction",
"OpenAiFunctionParameters",
@@ -821,7 +832,7 @@
"OpenAiModelModel",
"OpenAiModelToolsItem",
"OpenAiVoice",
- "OpenAiVoiceVoiceId",
+ "OpenAiVoiceId",
"OpenRouterCredential",
"OpenRouterModel",
"OpenRouterModelToolsItem",
@@ -849,8 +860,9 @@
"RegexReplacement",
"RimeAiCredential",
"RimeAiVoice",
+ "RimeAiVoiceId",
+ "RimeAiVoiceIdEnum",
"RimeAiVoiceModel",
- "RimeAiVoiceVoiceId",
"RuleBasedCondition",
"RuleBasedConditionOperator",
"RunpodCredential",
diff --git a/src/vapi/analytics/client.py b/src/vapi/analytics/client.py
index 8f7a9e7..06bc83e 100644
--- a/src/vapi/analytics/client.py
+++ b/src/vapi/analytics/client.py
@@ -35,27 +35,6 @@ def get(
-------
typing.List[AnalyticsQueryResult]
-
- Examples
- --------
- from vapi import AnalyticsOperation, AnalyticsQuery, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.analytics.get(
- queries=[
- AnalyticsQuery(
- name="name",
- operations=[
- AnalyticsOperation(
- operation="sum",
- column="id",
- )
- ],
- )
- ],
- )
"""
_response = self._client_wrapper.httpx_client.request(
"analytics",
@@ -103,35 +82,6 @@ async def get(
-------
typing.List[AnalyticsQueryResult]
-
- Examples
- --------
- import asyncio
-
- from vapi import AnalyticsOperation, AnalyticsQuery, AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.analytics.get(
- queries=[
- AnalyticsQuery(
- name="name",
- operations=[
- AnalyticsOperation(
- operation="sum",
- column="id",
- )
- ],
- )
- ],
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"analytics",
diff --git a/src/vapi/assistants/client.py b/src/vapi/assistants/client.py
index d654956..084d37c 100644
--- a/src/vapi/assistants/client.py
+++ b/src/vapi/assistants/client.py
@@ -94,15 +94,6 @@ def list(
-------
typing.List[Assistant]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.assistants.list()
"""
_response = self._client_wrapper.httpx_client.request(
"assistant",
@@ -334,15 +325,6 @@ def create(
-------
Assistant
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.assistants.create()
"""
_response = self._client_wrapper.httpx_client.request(
"assistant",
@@ -433,17 +415,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
Assistant
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.assistants.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
@@ -477,17 +448,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
Assistant
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.assistants.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
@@ -707,17 +667,6 @@ def update(
-------
Assistant
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.assistants.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
@@ -851,23 +800,6 @@ async def list(
-------
typing.List[Assistant]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.assistants.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"assistant",
@@ -1099,23 +1031,6 @@ async def create(
-------
Assistant
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.assistants.create()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"assistant",
@@ -1206,25 +1121,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
Assistant
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.assistants.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
@@ -1258,25 +1154,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
Assistant
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.assistants.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
@@ -1496,25 +1373,6 @@ async def update(
-------
Assistant
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.assistants.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"assistant/{jsonable_encoder(id)}",
diff --git a/src/vapi/blocks/client.py b/src/vapi/blocks/client.py
index 7071f64..0ae2390 100644
--- a/src/vapi/blocks/client.py
+++ b/src/vapi/blocks/client.py
@@ -81,15 +81,6 @@ def list(
-------
typing.List[BlocksListResponseItem]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.blocks.list()
"""
_response = self._client_wrapper.httpx_client.request(
"block",
@@ -136,19 +127,6 @@ def create(
-------
BlocksCreateResponse
-
- Examples
- --------
- from vapi import CreateConversationBlockDto, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.blocks.create(
- request=CreateConversationBlockDto(
- instruction="instruction",
- ),
- )
"""
_response = self._client_wrapper.httpx_client.request(
"block",
@@ -186,17 +164,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
BlocksGetResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.blocks.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
@@ -230,17 +197,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
BlocksDeleteResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.blocks.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
@@ -342,17 +298,6 @@ def update(
-------
BlocksUpdateResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.blocks.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
@@ -450,23 +395,6 @@ async def list(
-------
typing.List[BlocksListResponseItem]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.blocks.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"block",
@@ -513,27 +441,6 @@ async def create(
-------
BlocksCreateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi, CreateConversationBlockDto
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.blocks.create(
- request=CreateConversationBlockDto(
- instruction="instruction",
- ),
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"block",
@@ -571,25 +478,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
BlocksGetResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.blocks.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
@@ -623,25 +511,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
BlocksDeleteResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.blocks.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
@@ -743,25 +612,6 @@ async def update(
-------
BlocksUpdateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.blocks.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"block/{jsonable_encoder(id)}",
diff --git a/src/vapi/calls/client.py b/src/vapi/calls/client.py
index 5328d82..371286d 100644
--- a/src/vapi/calls/client.py
+++ b/src/vapi/calls/client.py
@@ -81,15 +81,6 @@ def list(
-------
typing.List[Call]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.calls.list()
"""
_response = self._client_wrapper.httpx_client.request(
"call",
@@ -185,15 +176,6 @@ def create(
-------
Call
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.calls.create()
"""
_response = self._client_wrapper.httpx_client.request(
"call",
@@ -250,17 +232,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
Call
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.calls.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
@@ -294,17 +265,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
Call
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.calls.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
@@ -343,17 +303,6 @@ def update(
-------
Call
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.calls.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
@@ -438,23 +387,6 @@ async def list(
-------
typing.List[Call]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.calls.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"call",
@@ -550,23 +482,6 @@ async def create(
-------
Call
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.calls.create()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"call",
@@ -623,25 +538,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
Call
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.calls.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
@@ -675,25 +571,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
Call
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.calls.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
@@ -732,25 +609,6 @@ async def update(
-------
Call
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.calls.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"call/{jsonable_encoder(id)}",
diff --git a/src/vapi/core/client_wrapper.py b/src/vapi/core/client_wrapper.py
index 59dec37..5eca670 100644
--- a/src/vapi/core/client_wrapper.py
+++ b/src/vapi/core/client_wrapper.py
@@ -22,7 +22,7 @@ def get_headers(self) -> typing.Dict[str, str]:
headers: typing.Dict[str, str] = {
"X-Fern-Language": "Python",
"X-Fern-SDK-Name": "Vapi",
- "X-Fern-SDK-Version": "0.0.0-alpha2",
+ "X-Fern-SDK-Version": "0.0.0-alpha3",
}
headers["Authorization"] = f"Bearer {self._get_token()}"
return headers
diff --git a/src/vapi/files/client.py b/src/vapi/files/client.py
index 12af218..c03032f 100644
--- a/src/vapi/files/client.py
+++ b/src/vapi/files/client.py
@@ -31,15 +31,6 @@ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> ty
-------
typing.List[File]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.files.list()
"""
_response = self._client_wrapper.httpx_client.request(
"file",
@@ -74,15 +65,6 @@ def create(self, *, file: core.File, request_options: typing.Optional[RequestOpt
-------
File
File uploaded successfully
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.files.create()
"""
_response = self._client_wrapper.httpx_client.request(
"file",
@@ -131,17 +113,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
File
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.files.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
@@ -175,17 +146,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
File
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.files.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
@@ -224,17 +184,6 @@ def update(
-------
File
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.files.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
@@ -275,23 +224,6 @@ async def list(self, *, request_options: typing.Optional[RequestOptions] = None)
-------
typing.List[File]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.files.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"file",
@@ -326,23 +258,6 @@ async def create(self, *, file: core.File, request_options: typing.Optional[Requ
-------
File
File uploaded successfully
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.files.create()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"file",
@@ -391,25 +306,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
File
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.files.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
@@ -443,25 +339,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
File
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.files.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
@@ -500,25 +377,6 @@ async def update(
-------
File
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.files.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"file/{jsonable_encoder(id)}",
diff --git a/src/vapi/logs/client.py b/src/vapi/logs/client.py
index 2af9a92..a1f38ed 100644
--- a/src/vapi/logs/client.py
+++ b/src/vapi/logs/client.py
@@ -108,20 +108,6 @@ def get(
-------
SyncPager[Log]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- response = client.logs.get()
- for item in response:
- yield item
- # alternatively, you can paginate page-by-page
- for page in response.iter_pages():
- yield page
"""
page = page if page is not None else 1
_response = self._client_wrapper.httpx_client.request(
@@ -279,28 +265,6 @@ async def get(
-------
AsyncPager[Log]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- response = await client.logs.get()
- async for item in response:
- yield item
- # alternatively, you can paginate page-by-page
- async for page in response.iter_pages():
- yield page
-
-
- asyncio.run(main())
"""
page = page if page is not None else 1
_response = await self._client_wrapper.httpx_client.request(
diff --git a/src/vapi/phone_numbers/client.py b/src/vapi/phone_numbers/client.py
index c1250c0..81ef76e 100644
--- a/src/vapi/phone_numbers/client.py
+++ b/src/vapi/phone_numbers/client.py
@@ -78,15 +78,6 @@ def list(
-------
typing.List[PhoneNumbersListResponseItem]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.phone_numbers.list()
"""
_response = self._client_wrapper.httpx_client.request(
"phone-number",
@@ -133,19 +124,6 @@ def create(
-------
PhoneNumbersCreateResponse
-
- Examples
- --------
- from vapi import CreateByoPhoneNumberDto, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.phone_numbers.create(
- request=CreateByoPhoneNumberDto(
- credential_id="credentialId",
- ),
- )
"""
_response = self._client_wrapper.httpx_client.request(
"phone-number",
@@ -183,17 +161,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
PhoneNumbersGetResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.phone_numbers.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
@@ -227,17 +194,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
PhoneNumbersDeleteResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.phone_numbers.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
@@ -315,17 +271,6 @@ def update(
-------
PhoneNumbersUpdateResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.phone_numbers.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
@@ -413,23 +358,6 @@ async def list(
-------
typing.List[PhoneNumbersListResponseItem]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.phone_numbers.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"phone-number",
@@ -476,27 +404,6 @@ async def create(
-------
PhoneNumbersCreateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi, CreateByoPhoneNumberDto
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.phone_numbers.create(
- request=CreateByoPhoneNumberDto(
- credential_id="credentialId",
- ),
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"phone-number",
@@ -534,25 +441,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
PhoneNumbersGetResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.phone_numbers.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
@@ -588,25 +476,6 @@ async def delete(
-------
PhoneNumbersDeleteResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.phone_numbers.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
@@ -684,25 +553,6 @@ async def update(
-------
PhoneNumbersUpdateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.phone_numbers.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"phone-number/{jsonable_encoder(id)}",
diff --git a/src/vapi/squads/client.py b/src/vapi/squads/client.py
index 6908413..aead2db 100644
--- a/src/vapi/squads/client.py
+++ b/src/vapi/squads/client.py
@@ -74,15 +74,6 @@ def list(
-------
typing.List[Squad]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.squads.list()
"""
_response = self._client_wrapper.httpx_client.request(
"squad",
@@ -145,17 +136,6 @@ def create(
-------
Squad
-
- Examples
- --------
- from vapi import SquadMemberDto, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.squads.create(
- members=[SquadMemberDto()],
- )
"""
_response = self._client_wrapper.httpx_client.request(
"squad",
@@ -199,17 +179,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
Squad
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.squads.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
@@ -243,17 +212,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
Squad
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.squads.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
@@ -308,18 +266,6 @@ def update(
-------
Squad
-
- Examples
- --------
- from vapi import SquadMemberDto, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.squads.update(
- id="id",
- members=[SquadMemberDto()],
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
@@ -406,23 +352,6 @@ async def list(
-------
typing.List[Squad]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.squads.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"squad",
@@ -485,25 +414,6 @@ async def create(
-------
Squad
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi, SquadMemberDto
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.squads.create(
- members=[SquadMemberDto()],
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"squad",
@@ -547,25 +457,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
Squad
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.squads.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
@@ -599,25 +490,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
Squad
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.squads.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
@@ -672,26 +544,6 @@ async def update(
-------
Squad
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi, SquadMemberDto
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.squads.update(
- id="id",
- members=[SquadMemberDto()],
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"squad/{jsonable_encoder(id)}",
diff --git a/src/vapi/tools/client.py b/src/vapi/tools/client.py
index e83f794..9a099d4 100644
--- a/src/vapi/tools/client.py
+++ b/src/vapi/tools/client.py
@@ -80,15 +80,6 @@ def list(
-------
typing.List[ToolsListResponseItem]
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.tools.list()
"""
_response = self._client_wrapper.httpx_client.request(
"tool",
@@ -135,17 +126,6 @@ def create(
-------
ToolsCreateResponse
-
- Examples
- --------
- from vapi import CreateDtmfToolDto, Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.tools.create(
- request=CreateDtmfToolDto(),
- )
"""
_response = self._client_wrapper.httpx_client.request(
"tool",
@@ -183,17 +163,6 @@ def get(self, id: str, *, request_options: typing.Optional[RequestOptions] = Non
-------
ToolsGetResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.tools.get(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
@@ -227,17 +196,6 @@ def delete(self, id: str, *, request_options: typing.Optional[RequestOptions] =
-------
ToolsDeleteResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.tools.delete(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
@@ -308,17 +266,6 @@ def update(
-------
ToolsUpdateResponse
-
- Examples
- --------
- from vapi import Vapi
-
- client = Vapi(
- token="YOUR_TOKEN",
- )
- client.tools.update(
- id="id",
- )
"""
_response = self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
@@ -406,23 +353,6 @@ async def list(
-------
typing.List[ToolsListResponseItem]
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.tools.list()
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"tool",
@@ -469,25 +399,6 @@ async def create(
-------
ToolsCreateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi, CreateDtmfToolDto
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.tools.create(
- request=CreateDtmfToolDto(),
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
"tool",
@@ -525,25 +436,6 @@ async def get(self, id: str, *, request_options: typing.Optional[RequestOptions]
-------
ToolsGetResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.tools.get(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
@@ -577,25 +469,6 @@ async def delete(self, id: str, *, request_options: typing.Optional[RequestOptio
-------
ToolsDeleteResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.tools.delete(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
@@ -666,25 +539,6 @@ async def update(
-------
ToolsUpdateResponse
-
- Examples
- --------
- import asyncio
-
- from vapi import AsyncVapi
-
- client = AsyncVapi(
- token="YOUR_TOKEN",
- )
-
-
- async def main() -> None:
- await client.tools.update(
- id="id",
- )
-
-
- asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"tool/{jsonable_encoder(id)}",
diff --git a/src/vapi/types/__init__.py b/src/vapi/types/__init__.py
index 3f3894a..b9561cc 100644
--- a/src/vapi/types/__init__.py
+++ b/src/vapi/types/__init__.py
@@ -44,7 +44,8 @@
from .azure_open_ai_credential_models_item import AzureOpenAiCredentialModelsItem
from .azure_open_ai_credential_region import AzureOpenAiCredentialRegion
from .azure_voice import AzureVoice
-from .azure_voice_voice_id import AzureVoiceVoiceId
+from .azure_voice_id import AzureVoiceId
+from .azure_voice_id_enum import AzureVoiceIdEnum
from .block_complete_message import BlockCompleteMessage
from .block_complete_message_conditions_item import BlockCompleteMessageConditionsItem
from .block_start_message import BlockStartMessage
@@ -196,13 +197,15 @@
from .deepgram_transcriber_language import DeepgramTranscriberLanguage
from .deepgram_transcriber_model import DeepgramTranscriberModel
from .deepgram_voice import DeepgramVoice
-from .deepgram_voice_voice_id import DeepgramVoiceVoiceId
+from .deepgram_voice_id import DeepgramVoiceId
+from .deepgram_voice_id_enum import DeepgramVoiceIdEnum
from .dtmf_tool import DtmfTool
from .dtmf_tool_messages_item import DtmfToolMessagesItem
from .eleven_labs_credential import ElevenLabsCredential
from .eleven_labs_voice import ElevenLabsVoice
+from .eleven_labs_voice_id import ElevenLabsVoiceId
+from .eleven_labs_voice_id_enum import ElevenLabsVoiceIdEnum
from .eleven_labs_voice_model import ElevenLabsVoiceModel
-from .eleven_labs_voice_voice_id import ElevenLabsVoiceVoiceId
from .end_call_tool import EndCallTool
from .end_call_tool_messages_item import EndCallToolMessagesItem
from .error import Error
@@ -247,7 +250,8 @@
from .knowledge_base import KnowledgeBase
from .lmnt_credential import LmntCredential
from .lmnt_voice import LmntVoice
-from .lmnt_voice_voice_id import LmntVoiceVoiceId
+from .lmnt_voice_id import LmntVoiceId
+from .lmnt_voice_id_enum import LmntVoiceIdEnum
from .log import Log
from .log_request_http_method import LogRequestHttpMethod
from .log_resource import LogResource
@@ -267,7 +271,8 @@
from .monitor import Monitor
from .monitor_plan import MonitorPlan
from .neets_voice import NeetsVoice
-from .neets_voice_voice_id import NeetsVoiceVoiceId
+from .neets_voice_id import NeetsVoiceId
+from .neets_voice_id_enum import NeetsVoiceIdEnum
from .open_ai_credential import OpenAiCredential
from .open_ai_function import OpenAiFunction
from .open_ai_function_parameters import OpenAiFunctionParameters
@@ -278,7 +283,7 @@
from .open_ai_model_model import OpenAiModelModel
from .open_ai_model_tools_item import OpenAiModelToolsItem
from .open_ai_voice import OpenAiVoice
-from .open_ai_voice_voice_id import OpenAiVoiceVoiceId
+from .open_ai_voice_id import OpenAiVoiceId
from .open_router_credential import OpenRouterCredential
from .open_router_model import OpenRouterModel
from .open_router_model_tools_item import OpenRouterModelToolsItem
@@ -300,8 +305,9 @@
from .regex_replacement import RegexReplacement
from .rime_ai_credential import RimeAiCredential
from .rime_ai_voice import RimeAiVoice
+from .rime_ai_voice_id import RimeAiVoiceId
+from .rime_ai_voice_id_enum import RimeAiVoiceIdEnum
from .rime_ai_voice_model import RimeAiVoiceModel
-from .rime_ai_voice_voice_id import RimeAiVoiceVoiceId
from .rule_based_condition import RuleBasedCondition
from .rule_based_condition_operator import RuleBasedConditionOperator
from .runpod_credential import RunpodCredential
@@ -535,7 +541,8 @@
"AzureOpenAiCredentialModelsItem",
"AzureOpenAiCredentialRegion",
"AzureVoice",
- "AzureVoiceVoiceId",
+ "AzureVoiceId",
+ "AzureVoiceIdEnum",
"BlockCompleteMessage",
"BlockCompleteMessageConditionsItem",
"BlockStartMessage",
@@ -687,13 +694,15 @@
"DeepgramTranscriberLanguage",
"DeepgramTranscriberModel",
"DeepgramVoice",
- "DeepgramVoiceVoiceId",
+ "DeepgramVoiceId",
+ "DeepgramVoiceIdEnum",
"DtmfTool",
"DtmfToolMessagesItem",
"ElevenLabsCredential",
"ElevenLabsVoice",
+ "ElevenLabsVoiceId",
+ "ElevenLabsVoiceIdEnum",
"ElevenLabsVoiceModel",
- "ElevenLabsVoiceVoiceId",
"EndCallTool",
"EndCallToolMessagesItem",
"Error",
@@ -738,7 +747,8 @@
"KnowledgeBase",
"LmntCredential",
"LmntVoice",
- "LmntVoiceVoiceId",
+ "LmntVoiceId",
+ "LmntVoiceIdEnum",
"Log",
"LogRequestHttpMethod",
"LogResource",
@@ -758,7 +768,8 @@
"Monitor",
"MonitorPlan",
"NeetsVoice",
- "NeetsVoiceVoiceId",
+ "NeetsVoiceId",
+ "NeetsVoiceIdEnum",
"OpenAiCredential",
"OpenAiFunction",
"OpenAiFunctionParameters",
@@ -769,7 +780,7 @@
"OpenAiModelModel",
"OpenAiModelToolsItem",
"OpenAiVoice",
- "OpenAiVoiceVoiceId",
+ "OpenAiVoiceId",
"OpenRouterCredential",
"OpenRouterModel",
"OpenRouterModelToolsItem",
@@ -791,8 +802,9 @@
"RegexReplacement",
"RimeAiCredential",
"RimeAiVoice",
+ "RimeAiVoiceId",
+ "RimeAiVoiceIdEnum",
"RimeAiVoiceModel",
- "RimeAiVoiceVoiceId",
"RuleBasedCondition",
"RuleBasedConditionOperator",
"RunpodCredential",
diff --git a/src/vapi/types/azure_voice.py b/src/vapi/types/azure_voice.py
index bb65fd1..56d30c4 100644
--- a/src/vapi/types/azure_voice.py
+++ b/src/vapi/types/azure_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .azure_voice_voice_id import AzureVoiceVoiceId
+from .azure_voice_id import AzureVoiceId
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -25,7 +25,7 @@ class AzureVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[AzureVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[AzureVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/azure_voice_id.py b/src/vapi/types/azure_voice_id.py
new file mode 100644
index 0000000..eeaabe6
--- /dev/null
+++ b/src/vapi/types/azure_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .azure_voice_id_enum import AzureVoiceIdEnum
+
+AzureVoiceId = typing.Union[AzureVoiceIdEnum, str]
diff --git a/src/vapi/types/azure_voice_id_enum.py b/src/vapi/types/azure_voice_id_enum.py
new file mode 100644
index 0000000..5a9d854
--- /dev/null
+++ b/src/vapi/types/azure_voice_id_enum.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+AzureVoiceIdEnum = typing.Union[typing.Literal["andrew", "brian", "emma"], typing.Any]
diff --git a/src/vapi/types/azure_voice_voice_id.py b/src/vapi/types/azure_voice_voice_id.py
deleted file mode 100644
index f08f3bb..0000000
--- a/src/vapi/types/azure_voice_voice_id.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-AzureVoiceVoiceId = typing.Union[typing.Literal["andrew"], typing.Literal["brian"], typing.Literal["emma"], str]
diff --git a/src/vapi/types/deepgram_voice.py b/src/vapi/types/deepgram_voice.py
index f6bd9a0..f3becc5 100644
--- a/src/vapi/types/deepgram_voice.py
+++ b/src/vapi/types/deepgram_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .deepgram_voice_voice_id import DeepgramVoiceVoiceId
+from .deepgram_voice_id import DeepgramVoiceId
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -25,7 +25,7 @@ class DeepgramVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[DeepgramVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[DeepgramVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/deepgram_voice_id.py b/src/vapi/types/deepgram_voice_id.py
new file mode 100644
index 0000000..fc28b6c
--- /dev/null
+++ b/src/vapi/types/deepgram_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .deepgram_voice_id_enum import DeepgramVoiceIdEnum
+
+DeepgramVoiceId = typing.Union[DeepgramVoiceIdEnum, str]
diff --git a/src/vapi/types/deepgram_voice_id_enum.py b/src/vapi/types/deepgram_voice_id_enum.py
new file mode 100644
index 0000000..06d6eb8
--- /dev/null
+++ b/src/vapi/types/deepgram_voice_id_enum.py
@@ -0,0 +1,10 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+DeepgramVoiceIdEnum = typing.Union[
+ typing.Literal[
+ "asteria", "luna", "stella", "athena", "hera", "orion", "arcas", "perseus", "angus", "orpheus", "helios", "zeus"
+ ],
+ typing.Any,
+]
diff --git a/src/vapi/types/deepgram_voice_voice_id.py b/src/vapi/types/deepgram_voice_voice_id.py
deleted file mode 100644
index 00d6970..0000000
--- a/src/vapi/types/deepgram_voice_voice_id.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-DeepgramVoiceVoiceId = typing.Union[
- typing.Literal["asteria"],
- typing.Literal["luna"],
- typing.Literal["stella"],
- typing.Literal["athena"],
- typing.Literal["hera"],
- typing.Literal["orion"],
- typing.Literal["arcas"],
- typing.Literal["perseus"],
- typing.Literal["angus"],
- typing.Literal["orpheus"],
- typing.Literal["helios"],
- typing.Literal["zeus"],
- str,
-]
diff --git a/src/vapi/types/eleven_labs_voice.py b/src/vapi/types/eleven_labs_voice.py
index 2749bbe..6620031 100644
--- a/src/vapi/types/eleven_labs_voice.py
+++ b/src/vapi/types/eleven_labs_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .eleven_labs_voice_voice_id import ElevenLabsVoiceVoiceId
+from .eleven_labs_voice_id import ElevenLabsVoiceId
from .eleven_labs_voice_model import ElevenLabsVoiceModel
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -26,7 +26,7 @@ class ElevenLabsVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[ElevenLabsVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[ElevenLabsVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used. Ensure the Voice is present in your 11Labs Voice Library.
"""
diff --git a/src/vapi/types/eleven_labs_voice_id.py b/src/vapi/types/eleven_labs_voice_id.py
new file mode 100644
index 0000000..633af95
--- /dev/null
+++ b/src/vapi/types/eleven_labs_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .eleven_labs_voice_id_enum import ElevenLabsVoiceIdEnum
+
+ElevenLabsVoiceId = typing.Union[ElevenLabsVoiceIdEnum, str]
diff --git a/src/vapi/types/eleven_labs_voice_id_enum.py b/src/vapi/types/eleven_labs_voice_id_enum.py
new file mode 100644
index 0000000..1f9894b
--- /dev/null
+++ b/src/vapi/types/eleven_labs_voice_id_enum.py
@@ -0,0 +1,24 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+ElevenLabsVoiceIdEnum = typing.Union[
+ typing.Literal[
+ "burt",
+ "marissa",
+ "andrea",
+ "sarah",
+ "phillip",
+ "steve",
+ "joseph",
+ "myra",
+ "paula",
+ "ryan",
+ "drew",
+ "paul",
+ "mrb",
+ "matilda",
+ "mark",
+ ],
+ typing.Any,
+]
diff --git a/src/vapi/types/eleven_labs_voice_voice_id.py b/src/vapi/types/eleven_labs_voice_voice_id.py
deleted file mode 100644
index b1f8f55..0000000
--- a/src/vapi/types/eleven_labs_voice_voice_id.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-ElevenLabsVoiceVoiceId = typing.Union[
- typing.Literal["burt"],
- typing.Literal["marissa"],
- typing.Literal["andrea"],
- typing.Literal["sarah"],
- typing.Literal["phillip"],
- typing.Literal["steve"],
- typing.Literal["joseph"],
- typing.Literal["myra"],
- typing.Literal["paula"],
- typing.Literal["ryan"],
- typing.Literal["drew"],
- typing.Literal["paul"],
- typing.Literal["mrb"],
- typing.Literal["matilda"],
- typing.Literal["mark"],
- str,
-]
diff --git a/src/vapi/types/lmnt_voice.py b/src/vapi/types/lmnt_voice.py
index 65fd95c..18d21ab 100644
--- a/src/vapi/types/lmnt_voice.py
+++ b/src/vapi/types/lmnt_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .lmnt_voice_voice_id import LmntVoiceVoiceId
+from .lmnt_voice_id import LmntVoiceId
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -25,7 +25,7 @@ class LmntVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[LmntVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[LmntVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/lmnt_voice_id.py b/src/vapi/types/lmnt_voice_id.py
new file mode 100644
index 0000000..c1d5c18
--- /dev/null
+++ b/src/vapi/types/lmnt_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .lmnt_voice_id_enum import LmntVoiceIdEnum
+
+LmntVoiceId = typing.Union[LmntVoiceIdEnum, str]
diff --git a/src/vapi/types/lmnt_voice_id_enum.py b/src/vapi/types/lmnt_voice_id_enum.py
new file mode 100644
index 0000000..482a8e3
--- /dev/null
+++ b/src/vapi/types/lmnt_voice_id_enum.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+LmntVoiceIdEnum = typing.Union[typing.Literal["lily", "daniel"], typing.Any]
diff --git a/src/vapi/types/lmnt_voice_voice_id.py b/src/vapi/types/lmnt_voice_voice_id.py
deleted file mode 100644
index f7c5969..0000000
--- a/src/vapi/types/lmnt_voice_voice_id.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-LmntVoiceVoiceId = typing.Union[typing.Literal["lily"], typing.Literal["daniel"], str]
diff --git a/src/vapi/types/neets_voice.py b/src/vapi/types/neets_voice.py
index 82285d9..6c77093 100644
--- a/src/vapi/types/neets_voice.py
+++ b/src/vapi/types/neets_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .neets_voice_voice_id import NeetsVoiceVoiceId
+from .neets_voice_id import NeetsVoiceId
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -25,7 +25,7 @@ class NeetsVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[NeetsVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[NeetsVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/neets_voice_id.py b/src/vapi/types/neets_voice_id.py
new file mode 100644
index 0000000..4389d43
--- /dev/null
+++ b/src/vapi/types/neets_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .neets_voice_id_enum import NeetsVoiceIdEnum
+
+NeetsVoiceId = typing.Union[NeetsVoiceIdEnum, str]
diff --git a/src/vapi/types/neets_voice_id_enum.py b/src/vapi/types/neets_voice_id_enum.py
new file mode 100644
index 0000000..d000456
--- /dev/null
+++ b/src/vapi/types/neets_voice_id_enum.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+NeetsVoiceIdEnum = typing.Union[typing.Literal["vits"], typing.Any]
diff --git a/src/vapi/types/neets_voice_voice_id.py b/src/vapi/types/neets_voice_voice_id.py
deleted file mode 100644
index f9b908f..0000000
--- a/src/vapi/types/neets_voice_voice_id.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-NeetsVoiceVoiceId = typing.Union[typing.Literal["vits"], typing.Literal["vits"], str]
diff --git a/src/vapi/types/open_ai_voice.py b/src/vapi/types/open_ai_voice.py
index 78bb7c9..5866ae4 100644
--- a/src/vapi/types/open_ai_voice.py
+++ b/src/vapi/types/open_ai_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .open_ai_voice_voice_id import OpenAiVoiceVoiceId
+from .open_ai_voice_id import OpenAiVoiceId
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -25,7 +25,7 @@ class OpenAiVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[OpenAiVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[OpenAiVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/open_ai_voice_id.py b/src/vapi/types/open_ai_voice_id.py
new file mode 100644
index 0000000..595f327
--- /dev/null
+++ b/src/vapi/types/open_ai_voice_id.py
@@ -0,0 +1,5 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+OpenAiVoiceId = typing.Union[typing.Literal["alloy", "echo", "fable", "onyx", "nova", "shimmer"], typing.Any]
diff --git a/src/vapi/types/open_ai_voice_voice_id.py b/src/vapi/types/open_ai_voice_voice_id.py
deleted file mode 100644
index 97b1b8c..0000000
--- a/src/vapi/types/open_ai_voice_voice_id.py
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-OpenAiVoiceVoiceId = typing.Union[typing.Literal["alloy", "echo", "fable", "onyx", "nova", "shimmer"], typing.Any]
diff --git a/src/vapi/types/play_ht_voice_voice_id.py b/src/vapi/types/play_ht_voice_voice_id.py
index 07162b5..6e11183 100644
--- a/src/vapi/types/play_ht_voice_voice_id.py
+++ b/src/vapi/types/play_ht_voice_voice_id.py
@@ -1,17 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
+from __future__ import annotations
import typing
-PlayHtVoiceVoiceId = typing.Union[
- typing.Literal["jennifer"],
- typing.Literal["melissa"],
- typing.Literal["will"],
- typing.Literal["chris"],
- typing.Literal["matt"],
- typing.Literal["jack"],
- typing.Literal["ruby"],
- typing.Literal["davis"],
- typing.Literal["donna"],
- typing.Literal["michael"],
- str,
-]
+PlayHtVoiceVoiceId = typing.Union["PlayHtVoiceVoiceId", str]
diff --git a/src/vapi/types/rime_ai_voice.py b/src/vapi/types/rime_ai_voice.py
index 433baac..8c8289a 100644
--- a/src/vapi/types/rime_ai_voice.py
+++ b/src/vapi/types/rime_ai_voice.py
@@ -5,7 +5,7 @@
import typing
from ..core.serialization import FieldMetadata
import pydantic
-from .rime_ai_voice_voice_id import RimeAiVoiceVoiceId
+from .rime_ai_voice_id import RimeAiVoiceId
from .rime_ai_voice_model import RimeAiVoiceModel
from .chunk_plan import ChunkPlan
from ..core.pydantic_utilities import IS_PYDANTIC_V2
@@ -26,7 +26,7 @@ class RimeAiVoice(UniversalBaseModel):
This is the voice provider that will be used.
"""
- voice_id: typing_extensions.Annotated[RimeAiVoiceVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
+ voice_id: typing_extensions.Annotated[RimeAiVoiceId, FieldMetadata(alias="voiceId")] = pydantic.Field()
"""
This is the provider-specific ID that will be used.
"""
diff --git a/src/vapi/types/rime_ai_voice_id.py b/src/vapi/types/rime_ai_voice_id.py
new file mode 100644
index 0000000..c22bbc0
--- /dev/null
+++ b/src/vapi/types/rime_ai_voice_id.py
@@ -0,0 +1,6 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+from .rime_ai_voice_id_enum import RimeAiVoiceIdEnum
+
+RimeAiVoiceId = typing.Union[RimeAiVoiceIdEnum, str]
diff --git a/src/vapi/types/rime_ai_voice_id_enum.py b/src/vapi/types/rime_ai_voice_id_enum.py
new file mode 100644
index 0000000..a18c73b
--- /dev/null
+++ b/src/vapi/types/rime_ai_voice_id_enum.py
@@ -0,0 +1,90 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+RimeAiVoiceIdEnum = typing.Union[
+ typing.Literal[
+ "marsh",
+ "bayou",
+ "creek",
+ "brook",
+ "flower",
+ "spore",
+ "glacier",
+ "gulch",
+ "alpine",
+ "cove",
+ "lagoon",
+ "tundra",
+ "steppe",
+ "mesa",
+ "grove",
+ "rainforest",
+ "moraine",
+ "wildflower",
+ "peak",
+ "boulder",
+ "abbie",
+ "allison",
+ "ally",
+ "alona",
+ "amber",
+ "ana",
+ "antoine",
+ "armon",
+ "brenda",
+ "brittany",
+ "carol",
+ "colin",
+ "courtney",
+ "elena",
+ "elliot",
+ "eva",
+ "geoff",
+ "gerald",
+ "hank",
+ "helen",
+ "hera",
+ "jen",
+ "joe",
+ "joy",
+ "juan",
+ "kendra",
+ "kendrick",
+ "kenneth",
+ "kevin",
+ "kris",
+ "linda",
+ "madison",
+ "marge",
+ "marina",
+ "marissa",
+ "marta",
+ "maya",
+ "nicholas",
+ "nyles",
+ "phil",
+ "reba",
+ "rex",
+ "rick",
+ "ritu",
+ "rob",
+ "rodney",
+ "rohan",
+ "rosco",
+ "samantha",
+ "sandy",
+ "selena",
+ "seth",
+ "sharon",
+ "stan",
+ "tamra",
+ "tanya",
+ "tibur",
+ "tj",
+ "tyler",
+ "viv",
+ "yadira",
+ ],
+ typing.Any,
+]
diff --git a/src/vapi/types/rime_ai_voice_voice_id.py b/src/vapi/types/rime_ai_voice_voice_id.py
deleted file mode 100644
index ff718ea..0000000
--- a/src/vapi/types/rime_ai_voice_voice_id.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# This file was auto-generated by Fern from our API Definition.
-
-import typing
-
-RimeAiVoiceVoiceId = typing.Union[
- typing.Literal["marsh"],
- typing.Literal["bayou"],
- typing.Literal["creek"],
- typing.Literal["brook"],
- typing.Literal["flower"],
- typing.Literal["spore"],
- typing.Literal["glacier"],
- typing.Literal["gulch"],
- typing.Literal["alpine"],
- typing.Literal["cove"],
- typing.Literal["lagoon"],
- typing.Literal["tundra"],
- typing.Literal["steppe"],
- typing.Literal["mesa"],
- typing.Literal["grove"],
- typing.Literal["rainforest"],
- typing.Literal["moraine"],
- typing.Literal["wildflower"],
- typing.Literal["peak"],
- typing.Literal["boulder"],
- typing.Literal["abbie"],
- typing.Literal["allison"],
- typing.Literal["ally"],
- typing.Literal["alona"],
- typing.Literal["amber"],
- typing.Literal["ana"],
- typing.Literal["antoine"],
- typing.Literal["armon"],
- typing.Literal["brenda"],
- typing.Literal["brittany"],
- typing.Literal["carol"],
- typing.Literal["colin"],
- typing.Literal["courtney"],
- typing.Literal["elena"],
- typing.Literal["elliot"],
- typing.Literal["eva"],
- typing.Literal["geoff"],
- typing.Literal["gerald"],
- typing.Literal["hank"],
- typing.Literal["helen"],
- typing.Literal["hera"],
- typing.Literal["jen"],
- typing.Literal["joe"],
- typing.Literal["joy"],
- typing.Literal["juan"],
- typing.Literal["kendra"],
- typing.Literal["kendrick"],
- typing.Literal["kenneth"],
- typing.Literal["kevin"],
- typing.Literal["kris"],
- typing.Literal["linda"],
- typing.Literal["madison"],
- typing.Literal["marge"],
- typing.Literal["marina"],
- typing.Literal["marissa"],
- typing.Literal["marta"],
- typing.Literal["maya"],
- typing.Literal["nicholas"],
- typing.Literal["nyles"],
- typing.Literal["phil"],
- typing.Literal["reba"],
- typing.Literal["rex"],
- typing.Literal["rick"],
- typing.Literal["ritu"],
- typing.Literal["rob"],
- typing.Literal["rodney"],
- typing.Literal["rohan"],
- typing.Literal["rosco"],
- typing.Literal["samantha"],
- typing.Literal["sandy"],
- typing.Literal["selena"],
- typing.Literal["seth"],
- typing.Literal["sharon"],
- typing.Literal["stan"],
- typing.Literal["tamra"],
- typing.Literal["tanya"],
- typing.Literal["tibur"],
- typing.Literal["tj"],
- typing.Literal["tyler"],
- typing.Literal["viv"],
- typing.Literal["yadira"],
- str,
-]