vapi_client/models/
create_assistant_dto_model.rs

1/*
2 * Vapi API
3 *
4 * Voice AI for developers.
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// CreateAssistantDtoModel : These are the options for the assistant's LLM.
15/// These are the options for the assistant's LLM.
16#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
17#[serde(untagged)]
18pub enum CreateAssistantDtoModel {
19    AnthropicModel(models::AnthropicModel),
20    AnyscaleModel(models::AnyscaleModel),
21    CerebrasModel(models::CerebrasModel),
22    CustomLlmModel(models::CustomLlmModel),
23    DeepInfraModel(models::DeepInfraModel),
24    DeepSeekModel(models::DeepSeekModel),
25    GoogleModel(models::GoogleModel),
26    GroqModel(models::GroqModel),
27    InflectionAiModel(models::InflectionAiModel),
28    OpenAiModel(models::OpenAiModel),
29    OpenRouterModel(models::OpenRouterModel),
30    PerplexityAiModel(models::PerplexityAiModel),
31    TogetherAiModel(models::TogetherAiModel),
32    XaiModel(models::XaiModel),
33}
34
35impl Default for CreateAssistantDtoModel {
36    fn default() -> Self {
37        Self::AnthropicModel(Default::default())
38    }
39}
40/// This is the name of the model. Ex. cognitivecomputations/dolphin-mixtral-8x7b
41#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
42pub enum ModelTrue {
43    #[serde(rename = "grok-beta")]
44    GrokBeta,
45    #[serde(rename = "grok-2")]
46    Grok2,
47    #[serde(rename = "grok-3")]
48    Grok3,
49}
50
51impl Default for ModelTrue {
52    fn default() -> ModelTrue {
53        Self::GrokBeta
54    }
55}
56///
57#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum ProviderTrue {
59    #[serde(rename = "xai")]
60    Xai,
61}
62
63impl Default for ProviderTrue {
64    fn default() -> ProviderTrue {
65        Self::Xai
66    }
67}
68/// This determines whether metadata is sent in requests to the custom provider.  - `off` will not send any metadata. payload will look like `{ messages }` - `variable` will send `assistant.metadata` as a variable on the payload. payload will look like `{ messages, metadata }` - `destructured` will send `assistant.metadata` fields directly on the payload. payload will look like `{ messages, ...metadata }`  Further, `variable` and `destructured` will send `call`, `phoneNumber`, and `customer` objects in the payload.  Default is `variable`.
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
70pub enum MetadataSendModeTrue {
71    #[serde(rename = "off")]
72    Off,
73    #[serde(rename = "variable")]
74    Variable,
75    #[serde(rename = "destructured")]
76    Destructured,
77}
78
79impl Default for MetadataSendModeTrue {
80    fn default() -> MetadataSendModeTrue {
81        Self::Off
82    }
83}
84/// These are the fallback models that will be used if the primary model fails. This shouldn't be specified unless you have a specific reason to do so. Vapi will automatically find the fastest fallbacks that make sense.
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
86pub enum FallbackModelsTrue {
87    #[serde(rename = "gpt-4.1-2025-04-14")]
88    Gpt4Period120250414,
89    #[serde(rename = "gpt-4.1-mini-2025-04-14")]
90    Gpt4Period1Mini20250414,
91    #[serde(rename = "gpt-4.1-nano-2025-04-14")]
92    Gpt4Period1Nano20250414,
93    #[serde(rename = "gpt-4.1")]
94    Gpt4Period1,
95    #[serde(rename = "gpt-4.1-mini")]
96    Gpt4Period1Mini,
97    #[serde(rename = "gpt-4.1-nano")]
98    Gpt4Period1Nano,
99    #[serde(rename = "gpt-4.5-preview")]
100    Gpt4Period5Preview,
101    #[serde(rename = "chatgpt-4o-latest")]
102    Chatgpt4oLatest,
103    #[serde(rename = "o3")]
104    O3,
105    #[serde(rename = "o3-mini")]
106    O3Mini,
107    #[serde(rename = "o4-mini")]
108    O4Mini,
109    #[serde(rename = "o1-preview")]
110    O1Preview,
111    #[serde(rename = "o1-preview-2024-09-12")]
112    O1Preview20240912,
113    #[serde(rename = "o1-mini")]
114    O1Mini,
115    #[serde(rename = "o1-mini-2024-09-12")]
116    O1Mini20240912,
117    #[serde(rename = "gpt-4o-realtime-preview-2024-10-01")]
118    Gpt4oRealtimePreview20241001,
119    #[serde(rename = "gpt-4o-realtime-preview-2024-12-17")]
120    Gpt4oRealtimePreview20241217,
121    #[serde(rename = "gpt-4o-mini-realtime-preview-2024-12-17")]
122    Gpt4oMiniRealtimePreview20241217,
123    #[serde(rename = "gpt-4o-mini-2024-07-18")]
124    Gpt4oMini20240718,
125    #[serde(rename = "gpt-4o-mini")]
126    Gpt4oMini,
127    #[serde(rename = "gpt-4o")]
128    Gpt4o,
129    #[serde(rename = "gpt-4o-2024-05-13")]
130    Gpt4o20240513,
131    #[serde(rename = "gpt-4o-2024-08-06")]
132    Gpt4o20240806,
133    #[serde(rename = "gpt-4o-2024-11-20")]
134    Gpt4o20241120,
135    #[serde(rename = "gpt-4-turbo")]
136    Gpt4Turbo,
137    #[serde(rename = "gpt-4-turbo-2024-04-09")]
138    Gpt4Turbo20240409,
139    #[serde(rename = "gpt-4-turbo-preview")]
140    Gpt4TurboPreview,
141    #[serde(rename = "gpt-4-0125-preview")]
142    Gpt40125Preview,
143    #[serde(rename = "gpt-4-1106-preview")]
144    Gpt41106Preview,
145    #[serde(rename = "gpt-4")]
146    Gpt4,
147    #[serde(rename = "gpt-4-0613")]
148    Gpt40613,
149    #[serde(rename = "gpt-3.5-turbo")]
150    Gpt3Period5Turbo,
151    #[serde(rename = "gpt-3.5-turbo-0125")]
152    Gpt3Period5Turbo0125,
153    #[serde(rename = "gpt-3.5-turbo-1106")]
154    Gpt3Period5Turbo1106,
155    #[serde(rename = "gpt-3.5-turbo-16k")]
156    Gpt3Period5Turbo16k,
157    #[serde(rename = "gpt-3.5-turbo-0613")]
158    Gpt3Period5Turbo0613,
159    #[serde(rename = "gpt-4.1-2025-04-14:westus")]
160    Gpt4Period120250414ColonWestus,
161    #[serde(rename = "gpt-4.1-2025-04-14:eastus2")]
162    Gpt4Period120250414ColonEastus2,
163    #[serde(rename = "gpt-4.1-2025-04-14:eastus")]
164    Gpt4Period120250414ColonEastus,
165    #[serde(rename = "gpt-4.1-2025-04-14:westus3")]
166    Gpt4Period120250414ColonWestus3,
167    #[serde(rename = "gpt-4.1-2025-04-14:northcentralus")]
168    Gpt4Period120250414ColonNorthcentralus,
169    #[serde(rename = "gpt-4.1-2025-04-14:southcentralus")]
170    Gpt4Period120250414ColonSouthcentralus,
171    #[serde(rename = "gpt-4.1-mini-2025-04-14:westus")]
172    Gpt4Period1Mini20250414ColonWestus,
173    #[serde(rename = "gpt-4.1-mini-2025-04-14:eastus2")]
174    Gpt4Period1Mini20250414ColonEastus2,
175    #[serde(rename = "gpt-4.1-mini-2025-04-14:eastus")]
176    Gpt4Period1Mini20250414ColonEastus,
177    #[serde(rename = "gpt-4.1-mini-2025-04-14:westus3")]
178    Gpt4Period1Mini20250414ColonWestus3,
179    #[serde(rename = "gpt-4.1-mini-2025-04-14:northcentralus")]
180    Gpt4Period1Mini20250414ColonNorthcentralus,
181    #[serde(rename = "gpt-4.1-mini-2025-04-14:southcentralus")]
182    Gpt4Period1Mini20250414ColonSouthcentralus,
183    #[serde(rename = "gpt-4.1-nano-2025-04-14:westus")]
184    Gpt4Period1Nano20250414ColonWestus,
185    #[serde(rename = "gpt-4.1-nano-2025-04-14:eastus2")]
186    Gpt4Period1Nano20250414ColonEastus2,
187    #[serde(rename = "gpt-4.1-nano-2025-04-14:westus3")]
188    Gpt4Period1Nano20250414ColonWestus3,
189    #[serde(rename = "gpt-4.1-nano-2025-04-14:northcentralus")]
190    Gpt4Period1Nano20250414ColonNorthcentralus,
191    #[serde(rename = "gpt-4.1-nano-2025-04-14:southcentralus")]
192    Gpt4Period1Nano20250414ColonSouthcentralus,
193    #[serde(rename = "gpt-4o-2024-11-20:swedencentral")]
194    Gpt4o20241120ColonSwedencentral,
195    #[serde(rename = "gpt-4o-2024-11-20:westus")]
196    Gpt4o20241120ColonWestus,
197    #[serde(rename = "gpt-4o-2024-11-20:eastus2")]
198    Gpt4o20241120ColonEastus2,
199    #[serde(rename = "gpt-4o-2024-11-20:eastus")]
200    Gpt4o20241120ColonEastus,
201    #[serde(rename = "gpt-4o-2024-11-20:westus3")]
202    Gpt4o20241120ColonWestus3,
203    #[serde(rename = "gpt-4o-2024-11-20:southcentralus")]
204    Gpt4o20241120ColonSouthcentralus,
205    #[serde(rename = "gpt-4o-2024-08-06:westus")]
206    Gpt4o20240806ColonWestus,
207    #[serde(rename = "gpt-4o-2024-08-06:westus3")]
208    Gpt4o20240806ColonWestus3,
209    #[serde(rename = "gpt-4o-2024-08-06:eastus")]
210    Gpt4o20240806ColonEastus,
211    #[serde(rename = "gpt-4o-2024-08-06:eastus2")]
212    Gpt4o20240806ColonEastus2,
213    #[serde(rename = "gpt-4o-2024-08-06:northcentralus")]
214    Gpt4o20240806ColonNorthcentralus,
215    #[serde(rename = "gpt-4o-2024-08-06:southcentralus")]
216    Gpt4o20240806ColonSouthcentralus,
217    #[serde(rename = "gpt-4o-mini-2024-07-18:westus")]
218    Gpt4oMini20240718ColonWestus,
219    #[serde(rename = "gpt-4o-mini-2024-07-18:westus3")]
220    Gpt4oMini20240718ColonWestus3,
221    #[serde(rename = "gpt-4o-mini-2024-07-18:eastus")]
222    Gpt4oMini20240718ColonEastus,
223    #[serde(rename = "gpt-4o-mini-2024-07-18:eastus2")]
224    Gpt4oMini20240718ColonEastus2,
225    #[serde(rename = "gpt-4o-mini-2024-07-18:northcentralus")]
226    Gpt4oMini20240718ColonNorthcentralus,
227    #[serde(rename = "gpt-4o-mini-2024-07-18:southcentralus")]
228    Gpt4oMini20240718ColonSouthcentralus,
229    #[serde(rename = "gpt-4o-2024-05-13:eastus2")]
230    Gpt4o20240513ColonEastus2,
231    #[serde(rename = "gpt-4o-2024-05-13:eastus")]
232    Gpt4o20240513ColonEastus,
233    #[serde(rename = "gpt-4o-2024-05-13:northcentralus")]
234    Gpt4o20240513ColonNorthcentralus,
235    #[serde(rename = "gpt-4o-2024-05-13:southcentralus")]
236    Gpt4o20240513ColonSouthcentralus,
237    #[serde(rename = "gpt-4o-2024-05-13:westus3")]
238    Gpt4o20240513ColonWestus3,
239    #[serde(rename = "gpt-4o-2024-05-13:westus")]
240    Gpt4o20240513ColonWestus,
241    #[serde(rename = "gpt-4-turbo-2024-04-09:eastus2")]
242    Gpt4Turbo20240409ColonEastus2,
243    #[serde(rename = "gpt-4-0125-preview:eastus")]
244    Gpt40125PreviewColonEastus,
245    #[serde(rename = "gpt-4-0125-preview:northcentralus")]
246    Gpt40125PreviewColonNorthcentralus,
247    #[serde(rename = "gpt-4-0125-preview:southcentralus")]
248    Gpt40125PreviewColonSouthcentralus,
249    #[serde(rename = "gpt-4-1106-preview:australia")]
250    Gpt41106PreviewColonAustralia,
251    #[serde(rename = "gpt-4-1106-preview:canadaeast")]
252    Gpt41106PreviewColonCanadaeast,
253    #[serde(rename = "gpt-4-1106-preview:france")]
254    Gpt41106PreviewColonFrance,
255    #[serde(rename = "gpt-4-1106-preview:india")]
256    Gpt41106PreviewColonIndia,
257    #[serde(rename = "gpt-4-1106-preview:norway")]
258    Gpt41106PreviewColonNorway,
259    #[serde(rename = "gpt-4-1106-preview:swedencentral")]
260    Gpt41106PreviewColonSwedencentral,
261    #[serde(rename = "gpt-4-1106-preview:uk")]
262    Gpt41106PreviewColonUk,
263    #[serde(rename = "gpt-4-1106-preview:westus")]
264    Gpt41106PreviewColonWestus,
265    #[serde(rename = "gpt-4-1106-preview:westus3")]
266    Gpt41106PreviewColonWestus3,
267    #[serde(rename = "gpt-4-0613:canadaeast")]
268    Gpt40613ColonCanadaeast,
269    #[serde(rename = "gpt-3.5-turbo-0125:canadaeast")]
270    Gpt3Period5Turbo0125ColonCanadaeast,
271    #[serde(rename = "gpt-3.5-turbo-0125:northcentralus")]
272    Gpt3Period5Turbo0125ColonNorthcentralus,
273    #[serde(rename = "gpt-3.5-turbo-0125:southcentralus")]
274    Gpt3Period5Turbo0125ColonSouthcentralus,
275    #[serde(rename = "gpt-3.5-turbo-1106:canadaeast")]
276    Gpt3Period5Turbo1106ColonCanadaeast,
277    #[serde(rename = "gpt-3.5-turbo-1106:westus")]
278    Gpt3Period5Turbo1106ColonWestus,
279}
280
281impl Default for FallbackModelsTrue {
282    fn default() -> FallbackModelsTrue {
283        Self::Gpt4Period120250414
284    }
285}
286/// Azure OpenAI doesn't support `maxLength` right now https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/structured-outputs?tabs=python-secure%2Cdotnet-entra-id&pivots=programming-language-csharp#unsupported-type-specific-keywords. Need to strip.  - `strip-parameters-with-unsupported-validation` will strip parameters with unsupported validation. - `strip-unsupported-validation` will keep the parameters but strip unsupported validation.  @default `strip-unsupported-validation`
287#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
288pub enum ToolStrictCompatibilityModeTrue {
289    #[serde(rename = "strip-parameters-with-unsupported-validation")]
290    StripParametersWithUnsupportedValidation,
291    #[serde(rename = "strip-unsupported-validation")]
292    StripUnsupportedValidation,
293}
294
295impl Default for ToolStrictCompatibilityModeTrue {
296    fn default() -> ToolStrictCompatibilityModeTrue {
297        Self::StripParametersWithUnsupportedValidation
298    }
299}