vapi_client/models/
call.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#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Call {
16    /// This is the type of call.
17    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
18    pub r#type: Option<Type>,
19    /// These are the costs of individual components of the call in USD.
20    #[serde(rename = "costs", skip_serializing_if = "Option::is_none")]
21    pub costs: Option<Vec<models::CallCostsInner>>,
22    #[serde(rename = "messages", skip_serializing_if = "Option::is_none")]
23    pub messages: Option<Vec<models::ArtifactMessagesInner>>,
24    /// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
25    #[serde(rename = "phoneCallProvider", skip_serializing_if = "Option::is_none")]
26    pub phone_call_provider: Option<PhoneCallProvider>,
27    /// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
28    #[serde(rename = "phoneCallTransport", skip_serializing_if = "Option::is_none")]
29    pub phone_call_transport: Option<PhoneCallTransport>,
30    /// This is the status of the call.
31    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
32    pub status: Option<Status>,
33    /// This is the explanation for how the call ended.
34    #[serde(rename = "endedReason", skip_serializing_if = "Option::is_none")]
35    pub ended_reason: Option<EndedReason>,
36    #[serde(rename = "destination", skip_serializing_if = "Option::is_none")]
37    pub destination: Option<Box<models::CallDestination>>,
38    /// This is the unique identifier for the call.
39    #[serde(rename = "id")]
40    pub id: String,
41    /// This is the unique identifier for the org that this call belongs to.
42    #[serde(rename = "orgId")]
43    pub org_id: String,
44    /// This is the ISO 8601 date-time string of when the call was created.
45    #[serde(rename = "createdAt")]
46    pub created_at: String,
47    /// This is the ISO 8601 date-time string of when the call was last updated.
48    #[serde(rename = "updatedAt")]
49    pub updated_at: String,
50    /// This is the ISO 8601 date-time string of when the call was started.
51    #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
52    pub started_at: Option<String>,
53    /// This is the ISO 8601 date-time string of when the call was ended.
54    #[serde(rename = "endedAt", skip_serializing_if = "Option::is_none")]
55    pub ended_at: Option<String>,
56    /// This is the cost of the call in USD.
57    #[serde(rename = "cost", skip_serializing_if = "Option::is_none")]
58    pub cost: Option<f64>,
59    /// This is the cost of the call in USD.
60    #[serde(rename = "costBreakdown", skip_serializing_if = "Option::is_none")]
61    pub cost_breakdown: Option<Box<models::CostBreakdown>>,
62    /// This is a copy of assistant artifact plan. This isn't actually stored on the call but rather just returned in POST /call/web to enable artifact creation client side.
63    #[serde(rename = "artifactPlan", skip_serializing_if = "Option::is_none")]
64    pub artifact_plan: Option<Box<models::ArtifactPlan>>,
65    /// This is the analysis of the call. Configure in `assistant.analysisPlan`.
66    #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
67    pub analysis: Option<Box<models::Analysis>>,
68    /// This is to real-time monitor the call. Configure in `assistant.monitorPlan`.
69    #[serde(rename = "monitor", skip_serializing_if = "Option::is_none")]
70    pub monitor: Option<Box<models::Monitor>>,
71    /// These are the artifacts created from the call. Configure in `assistant.artifactPlan`.
72    #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
73    pub artifact: Option<Box<models::Artifact>>,
74    /// This is the transport used for the call.
75    #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
76    pub transport: Option<Box<models::Transport>>,
77    /// The ID of the call as provided by the phone number service. callSid in Twilio. conversationUuid in Vonage. callControlId in Telnyx.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
78    #[serde(rename = "phoneCallProviderId", skip_serializing_if = "Option::is_none")]
79    pub phone_call_provider_id: Option<String>,
80    /// This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
81    #[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
82    pub assistant_id: Option<String>,
83    /// This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
84    #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
85    pub assistant: Option<Box<models::CreateAssistantDto>>,
86    /// These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
87    #[serde(rename = "assistantOverrides", skip_serializing_if = "Option::is_none")]
88    pub assistant_overrides: Option<Box<models::AssistantOverrides>>,
89    /// This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
90    #[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
91    pub squad_id: Option<String>,
92    /// This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
93    #[serde(rename = "squad", skip_serializing_if = "Option::is_none")]
94    pub squad: Option<Box<models::CreateSquadDto>>,
95    /// 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.
96    #[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
97    pub phone_number_id: Option<String>,
98    /// 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.
99    #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
100    pub phone_number: Option<Box<models::ImportTwilioPhoneNumberDto>>,
101    /// This is the customer that will be called. To call a transient customer , use `customer` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
102    #[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
103    pub customer_id: Option<String>,
104    /// This is the customer that will be called. To call an existing customer, use `customerId` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
105    #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
106    pub customer: Option<Box<models::CreateCustomerDto>>,
107    /// This is the name of the call. This is just for your own reference.
108    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
109    pub name: Option<String>,
110}
111
112impl Call {
113    pub fn new(id: String, org_id: String, created_at: String, updated_at: String) -> Call {
114        Call {
115            r#type: None,
116            costs: None,
117            messages: None,
118            phone_call_provider: None,
119            phone_call_transport: None,
120            status: None,
121            ended_reason: None,
122            destination: None,
123            id,
124            org_id,
125            created_at,
126            updated_at,
127            started_at: None,
128            ended_at: None,
129            cost: None,
130            cost_breakdown: None,
131            artifact_plan: None,
132            analysis: None,
133            monitor: None,
134            artifact: None,
135            transport: None,
136            phone_call_provider_id: None,
137            assistant_id: None,
138            assistant: None,
139            assistant_overrides: None,
140            squad_id: None,
141            squad: None,
142            phone_number_id: None,
143            phone_number: None,
144            customer_id: None,
145            customer: None,
146            name: None,
147        }
148    }
149}
150/// This is the type of call.
151#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
152pub enum Type {
153    #[serde(rename = "inboundPhoneCall")]
154    InboundPhoneCall,
155    #[serde(rename = "outboundPhoneCall")]
156    OutboundPhoneCall,
157    #[serde(rename = "webCall")]
158    WebCall,
159}
160
161impl Default for Type {
162    fn default() -> Type {
163        Self::InboundPhoneCall
164    }
165}
166/// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
167#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
168pub enum PhoneCallProvider {
169    #[serde(rename = "twilio")]
170    Twilio,
171    #[serde(rename = "vonage")]
172    Vonage,
173    #[serde(rename = "vapi")]
174    Vapi,
175    #[serde(rename = "telnyx")]
176    Telnyx,
177}
178
179impl Default for PhoneCallProvider {
180    fn default() -> PhoneCallProvider {
181        Self::Twilio
182    }
183}
184/// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
185#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
186pub enum PhoneCallTransport {
187    #[serde(rename = "sip")]
188    Sip,
189    #[serde(rename = "pstn")]
190    Pstn,
191}
192
193impl Default for PhoneCallTransport {
194    fn default() -> PhoneCallTransport {
195        Self::Sip
196    }
197}
198/// This is the status of the call.
199#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
200pub enum Status {
201    #[serde(rename = "scheduled")]
202    Scheduled,
203    #[serde(rename = "queued")]
204    Queued,
205    #[serde(rename = "ringing")]
206    Ringing,
207    #[serde(rename = "in-progress")]
208    InProgress,
209    #[serde(rename = "forwarding")]
210    Forwarding,
211    #[serde(rename = "ended")]
212    Ended,
213}
214
215impl Default for Status {
216    fn default() -> Status {
217        Self::Scheduled
218    }
219}
220/// This is the explanation for how the call ended.
221#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
222pub enum EndedReason {
223    #[serde(rename = "assistant-not-valid")]
224    AssistantNotValid,
225    #[serde(rename = "assistant-not-provided")]
226    AssistantNotProvided,
227    #[serde(rename = "call-start-error-neither-assistant-nor-server-set")]
228    CallStartErrorNeitherAssistantNorServerSet,
229    #[serde(rename = "assistant-request-failed")]
230    AssistantRequestFailed,
231    #[serde(rename = "assistant-request-returned-error")]
232    AssistantRequestReturnedError,
233    #[serde(rename = "assistant-request-returned-unspeakable-error")]
234    AssistantRequestReturnedUnspeakableError,
235    #[serde(rename = "assistant-request-returned-invalid-assistant")]
236    AssistantRequestReturnedInvalidAssistant,
237    #[serde(rename = "assistant-request-returned-no-assistant")]
238    AssistantRequestReturnedNoAssistant,
239    #[serde(rename = "assistant-request-returned-forwarding-phone-number")]
240    AssistantRequestReturnedForwardingPhoneNumber,
241    #[serde(rename = "assistant-ended-call")]
242    AssistantEndedCall,
243    #[serde(rename = "assistant-said-end-call-phrase")]
244    AssistantSaidEndCallPhrase,
245    #[serde(rename = "assistant-ended-call-with-hangup-task")]
246    AssistantEndedCallWithHangupTask,
247    #[serde(rename = "assistant-forwarded-call")]
248    AssistantForwardedCall,
249    #[serde(rename = "assistant-join-timed-out")]
250    AssistantJoinTimedOut,
251    #[serde(rename = "customer-busy")]
252    CustomerBusy,
253    #[serde(rename = "customer-ended-call")]
254    CustomerEndedCall,
255    #[serde(rename = "customer-did-not-answer")]
256    CustomerDidNotAnswer,
257    #[serde(rename = "customer-did-not-give-microphone-permission")]
258    CustomerDidNotGiveMicrophonePermission,
259    #[serde(rename = "assistant-said-message-with-end-call-enabled")]
260    AssistantSaidMessageWithEndCallEnabled,
261    #[serde(rename = "exceeded-max-duration")]
262    ExceededMaxDuration,
263    #[serde(rename = "manually-canceled")]
264    ManuallyCanceled,
265    #[serde(rename = "phone-call-provider-closed-websocket")]
266    PhoneCallProviderClosedWebsocket,
267    #[serde(rename = "db-error")]
268    DbError,
269    #[serde(rename = "assistant-not-found")]
270    AssistantNotFound,
271    #[serde(rename = "license-check-failed")]
272    LicenseCheckFailed,
273    #[serde(rename = "pipeline-error-openai-voice-failed")]
274    PipelineErrorOpenaiVoiceFailed,
275    #[serde(rename = "pipeline-error-cartesia-voice-failed")]
276    PipelineErrorCartesiaVoiceFailed,
277    #[serde(rename = "pipeline-error-deepgram-voice-failed")]
278    PipelineErrorDeepgramVoiceFailed,
279    #[serde(rename = "pipeline-error-eleven-labs-voice-failed")]
280    PipelineErrorElevenLabsVoiceFailed,
281    #[serde(rename = "pipeline-error-playht-voice-failed")]
282    PipelineErrorPlayhtVoiceFailed,
283    #[serde(rename = "pipeline-error-lmnt-voice-failed")]
284    PipelineErrorLmntVoiceFailed,
285    #[serde(rename = "pipeline-error-azure-voice-failed")]
286    PipelineErrorAzureVoiceFailed,
287    #[serde(rename = "pipeline-error-rime-ai-voice-failed")]
288    PipelineErrorRimeAiVoiceFailed,
289    #[serde(rename = "pipeline-error-neets-voice-failed")]
290    PipelineErrorNeetsVoiceFailed,
291    #[serde(rename = "pipeline-error-smallest-ai-voice-failed")]
292    PipelineErrorSmallestAiVoiceFailed,
293    #[serde(rename = "pipeline-error-neuphonic-voice-failed")]
294    PipelineErrorNeuphonicVoiceFailed,
295    #[serde(rename = "pipeline-error-hume-voice-failed")]
296    PipelineErrorHumeVoiceFailed,
297    #[serde(rename = "pipeline-error-deepgram-transcriber-failed")]
298    PipelineErrorDeepgramTranscriberFailed,
299    #[serde(rename = "pipeline-error-gladia-transcriber-failed")]
300    PipelineErrorGladiaTranscriberFailed,
301    #[serde(rename = "pipeline-error-speechmatics-transcriber-failed")]
302    PipelineErrorSpeechmaticsTranscriberFailed,
303    #[serde(rename = "pipeline-error-assembly-ai-transcriber-failed")]
304    PipelineErrorAssemblyAiTranscriberFailed,
305    #[serde(rename = "pipeline-error-talkscriber-transcriber-failed")]
306    PipelineErrorTalkscriberTranscriberFailed,
307    #[serde(rename = "pipeline-error-azure-speech-transcriber-failed")]
308    PipelineErrorAzureSpeechTranscriberFailed,
309    #[serde(rename = "pipeline-error-vapi-llm-failed")]
310    PipelineErrorVapiLlmFailed,
311    #[serde(rename = "pipeline-error-vapi-400-bad-request-validation-failed")]
312    PipelineErrorVapi400BadRequestValidationFailed,
313    #[serde(rename = "pipeline-error-vapi-401-unauthorized")]
314    PipelineErrorVapi401Unauthorized,
315    #[serde(rename = "pipeline-error-vapi-403-model-access-denied")]
316    PipelineErrorVapi403ModelAccessDenied,
317    #[serde(rename = "pipeline-error-vapi-429-exceeded-quota")]
318    PipelineErrorVapi429ExceededQuota,
319    #[serde(rename = "pipeline-error-vapi-500-server-error")]
320    PipelineErrorVapi500ServerError,
321    #[serde(rename = "pipeline-no-available-model")]
322    PipelineNoAvailableModel,
323    #[serde(rename = "worker-shutdown")]
324    WorkerShutdown,
325    #[serde(rename = "unknown-error")]
326    UnknownError,
327    #[serde(rename = "vonage-disconnected")]
328    VonageDisconnected,
329    #[serde(rename = "vonage-failed-to-connect-call")]
330    VonageFailedToConnectCall,
331    #[serde(rename = "vonage-completed")]
332    VonageCompleted,
333    #[serde(rename = "phone-call-provider-bypass-enabled-but-no-call-received")]
334    PhoneCallProviderBypassEnabledButNoCallReceived,
335    #[serde(rename = "vapifault-phone-call-worker-setup-socket-error")]
336    VapifaultPhoneCallWorkerSetupSocketError,
337    #[serde(rename = "vapifault-phone-call-worker-worker-setup-socket-timeout")]
338    VapifaultPhoneCallWorkerWorkerSetupSocketTimeout,
339    #[serde(rename = "vapifault-phone-call-worker-could-not-find-call")]
340    VapifaultPhoneCallWorkerCouldNotFindCall,
341    #[serde(rename = "vapifault-transport-never-connected")]
342    VapifaultTransportNeverConnected,
343    #[serde(rename = "vapifault-web-call-worker-setup-failed")]
344    VapifaultWebCallWorkerSetupFailed,
345    #[serde(rename = "vapifault-transport-connected-but-call-not-active")]
346    VapifaultTransportConnectedButCallNotActive,
347    #[serde(rename = "vapifault-call-started-but-connection-to-transport-missing")]
348    VapifaultCallStartedButConnectionToTransportMissing,
349    #[serde(rename = "pipeline-error-openai-llm-failed")]
350    PipelineErrorOpenaiLlmFailed,
351    #[serde(rename = "pipeline-error-azure-openai-llm-failed")]
352    PipelineErrorAzureOpenaiLlmFailed,
353    #[serde(rename = "pipeline-error-groq-llm-failed")]
354    PipelineErrorGroqLlmFailed,
355    #[serde(rename = "pipeline-error-google-llm-failed")]
356    PipelineErrorGoogleLlmFailed,
357    #[serde(rename = "pipeline-error-xai-llm-failed")]
358    PipelineErrorXaiLlmFailed,
359    #[serde(rename = "pipeline-error-mistral-llm-failed")]
360    PipelineErrorMistralLlmFailed,
361    #[serde(rename = "pipeline-error-inflection-ai-llm-failed")]
362    PipelineErrorInflectionAiLlmFailed,
363    #[serde(rename = "pipeline-error-cerebras-llm-failed")]
364    PipelineErrorCerebrasLlmFailed,
365    #[serde(rename = "pipeline-error-deep-seek-llm-failed")]
366    PipelineErrorDeepSeekLlmFailed,
367    #[serde(rename = "pipeline-error-openai-400-bad-request-validation-failed")]
368    PipelineErrorOpenai400BadRequestValidationFailed,
369    #[serde(rename = "pipeline-error-openai-401-unauthorized")]
370    PipelineErrorOpenai401Unauthorized,
371    #[serde(rename = "pipeline-error-openai-403-model-access-denied")]
372    PipelineErrorOpenai403ModelAccessDenied,
373    #[serde(rename = "pipeline-error-openai-429-exceeded-quota")]
374    PipelineErrorOpenai429ExceededQuota,
375    #[serde(rename = "pipeline-error-openai-500-server-error")]
376    PipelineErrorOpenai500ServerError,
377    #[serde(rename = "pipeline-error-google-400-bad-request-validation-failed")]
378    PipelineErrorGoogle400BadRequestValidationFailed,
379    #[serde(rename = "pipeline-error-google-401-unauthorized")]
380    PipelineErrorGoogle401Unauthorized,
381    #[serde(rename = "pipeline-error-google-403-model-access-denied")]
382    PipelineErrorGoogle403ModelAccessDenied,
383    #[serde(rename = "pipeline-error-google-429-exceeded-quota")]
384    PipelineErrorGoogle429ExceededQuota,
385    #[serde(rename = "pipeline-error-google-500-server-error")]
386    PipelineErrorGoogle500ServerError,
387    #[serde(rename = "pipeline-error-xai-400-bad-request-validation-failed")]
388    PipelineErrorXai400BadRequestValidationFailed,
389    #[serde(rename = "pipeline-error-xai-401-unauthorized")]
390    PipelineErrorXai401Unauthorized,
391    #[serde(rename = "pipeline-error-xai-403-model-access-denied")]
392    PipelineErrorXai403ModelAccessDenied,
393    #[serde(rename = "pipeline-error-xai-429-exceeded-quota")]
394    PipelineErrorXai429ExceededQuota,
395    #[serde(rename = "pipeline-error-xai-500-server-error")]
396    PipelineErrorXai500ServerError,
397    #[serde(rename = "pipeline-error-mistral-400-bad-request-validation-failed")]
398    PipelineErrorMistral400BadRequestValidationFailed,
399    #[serde(rename = "pipeline-error-mistral-401-unauthorized")]
400    PipelineErrorMistral401Unauthorized,
401    #[serde(rename = "pipeline-error-mistral-403-model-access-denied")]
402    PipelineErrorMistral403ModelAccessDenied,
403    #[serde(rename = "pipeline-error-mistral-429-exceeded-quota")]
404    PipelineErrorMistral429ExceededQuota,
405    #[serde(rename = "pipeline-error-mistral-500-server-error")]
406    PipelineErrorMistral500ServerError,
407    #[serde(rename = "pipeline-error-inflection-ai-400-bad-request-validation-failed")]
408    PipelineErrorInflectionAi400BadRequestValidationFailed,
409    #[serde(rename = "pipeline-error-inflection-ai-401-unauthorized")]
410    PipelineErrorInflectionAi401Unauthorized,
411    #[serde(rename = "pipeline-error-inflection-ai-403-model-access-denied")]
412    PipelineErrorInflectionAi403ModelAccessDenied,
413    #[serde(rename = "pipeline-error-inflection-ai-429-exceeded-quota")]
414    PipelineErrorInflectionAi429ExceededQuota,
415    #[serde(rename = "pipeline-error-inflection-ai-500-server-error")]
416    PipelineErrorInflectionAi500ServerError,
417    #[serde(rename = "pipeline-error-deep-seek-400-bad-request-validation-failed")]
418    PipelineErrorDeepSeek400BadRequestValidationFailed,
419    #[serde(rename = "pipeline-error-deep-seek-401-unauthorized")]
420    PipelineErrorDeepSeek401Unauthorized,
421    #[serde(rename = "pipeline-error-deep-seek-403-model-access-denied")]
422    PipelineErrorDeepSeek403ModelAccessDenied,
423    #[serde(rename = "pipeline-error-deep-seek-429-exceeded-quota")]
424    PipelineErrorDeepSeek429ExceededQuota,
425    #[serde(rename = "pipeline-error-deep-seek-500-server-error")]
426    PipelineErrorDeepSeek500ServerError,
427    #[serde(rename = "pipeline-error-azure-openai-400-bad-request-validation-failed")]
428    PipelineErrorAzureOpenai400BadRequestValidationFailed,
429    #[serde(rename = "pipeline-error-azure-openai-401-unauthorized")]
430    PipelineErrorAzureOpenai401Unauthorized,
431    #[serde(rename = "pipeline-error-azure-openai-403-model-access-denied")]
432    PipelineErrorAzureOpenai403ModelAccessDenied,
433    #[serde(rename = "pipeline-error-azure-openai-429-exceeded-quota")]
434    PipelineErrorAzureOpenai429ExceededQuota,
435    #[serde(rename = "pipeline-error-azure-openai-500-server-error")]
436    PipelineErrorAzureOpenai500ServerError,
437    #[serde(rename = "pipeline-error-groq-400-bad-request-validation-failed")]
438    PipelineErrorGroq400BadRequestValidationFailed,
439    #[serde(rename = "pipeline-error-groq-401-unauthorized")]
440    PipelineErrorGroq401Unauthorized,
441    #[serde(rename = "pipeline-error-groq-403-model-access-denied")]
442    PipelineErrorGroq403ModelAccessDenied,
443    #[serde(rename = "pipeline-error-groq-429-exceeded-quota")]
444    PipelineErrorGroq429ExceededQuota,
445    #[serde(rename = "pipeline-error-groq-500-server-error")]
446    PipelineErrorGroq500ServerError,
447    #[serde(rename = "pipeline-error-cerebras-400-bad-request-validation-failed")]
448    PipelineErrorCerebras400BadRequestValidationFailed,
449    #[serde(rename = "pipeline-error-cerebras-401-unauthorized")]
450    PipelineErrorCerebras401Unauthorized,
451    #[serde(rename = "pipeline-error-cerebras-403-model-access-denied")]
452    PipelineErrorCerebras403ModelAccessDenied,
453    #[serde(rename = "pipeline-error-cerebras-429-exceeded-quota")]
454    PipelineErrorCerebras429ExceededQuota,
455    #[serde(rename = "pipeline-error-cerebras-500-server-error")]
456    PipelineErrorCerebras500ServerError,
457    #[serde(rename = "pipeline-error-anthropic-400-bad-request-validation-failed")]
458    PipelineErrorAnthropic400BadRequestValidationFailed,
459    #[serde(rename = "pipeline-error-anthropic-401-unauthorized")]
460    PipelineErrorAnthropic401Unauthorized,
461    #[serde(rename = "pipeline-error-anthropic-403-model-access-denied")]
462    PipelineErrorAnthropic403ModelAccessDenied,
463    #[serde(rename = "pipeline-error-anthropic-429-exceeded-quota")]
464    PipelineErrorAnthropic429ExceededQuota,
465    #[serde(rename = "pipeline-error-anthropic-500-server-error")]
466    PipelineErrorAnthropic500ServerError,
467    #[serde(rename = "pipeline-error-anthropic-llm-failed")]
468    PipelineErrorAnthropicLlmFailed,
469    #[serde(rename = "pipeline-error-together-ai-400-bad-request-validation-failed")]
470    PipelineErrorTogetherAi400BadRequestValidationFailed,
471    #[serde(rename = "pipeline-error-together-ai-401-unauthorized")]
472    PipelineErrorTogetherAi401Unauthorized,
473    #[serde(rename = "pipeline-error-together-ai-403-model-access-denied")]
474    PipelineErrorTogetherAi403ModelAccessDenied,
475    #[serde(rename = "pipeline-error-together-ai-429-exceeded-quota")]
476    PipelineErrorTogetherAi429ExceededQuota,
477    #[serde(rename = "pipeline-error-together-ai-500-server-error")]
478    PipelineErrorTogetherAi500ServerError,
479    #[serde(rename = "pipeline-error-together-ai-llm-failed")]
480    PipelineErrorTogetherAiLlmFailed,
481    #[serde(rename = "pipeline-error-anyscale-400-bad-request-validation-failed")]
482    PipelineErrorAnyscale400BadRequestValidationFailed,
483    #[serde(rename = "pipeline-error-anyscale-401-unauthorized")]
484    PipelineErrorAnyscale401Unauthorized,
485    #[serde(rename = "pipeline-error-anyscale-403-model-access-denied")]
486    PipelineErrorAnyscale403ModelAccessDenied,
487    #[serde(rename = "pipeline-error-anyscale-429-exceeded-quota")]
488    PipelineErrorAnyscale429ExceededQuota,
489    #[serde(rename = "pipeline-error-anyscale-500-server-error")]
490    PipelineErrorAnyscale500ServerError,
491    #[serde(rename = "pipeline-error-anyscale-llm-failed")]
492    PipelineErrorAnyscaleLlmFailed,
493    #[serde(rename = "pipeline-error-openrouter-400-bad-request-validation-failed")]
494    PipelineErrorOpenrouter400BadRequestValidationFailed,
495    #[serde(rename = "pipeline-error-openrouter-401-unauthorized")]
496    PipelineErrorOpenrouter401Unauthorized,
497    #[serde(rename = "pipeline-error-openrouter-403-model-access-denied")]
498    PipelineErrorOpenrouter403ModelAccessDenied,
499    #[serde(rename = "pipeline-error-openrouter-429-exceeded-quota")]
500    PipelineErrorOpenrouter429ExceededQuota,
501    #[serde(rename = "pipeline-error-openrouter-500-server-error")]
502    PipelineErrorOpenrouter500ServerError,
503    #[serde(rename = "pipeline-error-openrouter-llm-failed")]
504    PipelineErrorOpenrouterLlmFailed,
505    #[serde(rename = "pipeline-error-perplexity-ai-400-bad-request-validation-failed")]
506    PipelineErrorPerplexityAi400BadRequestValidationFailed,
507    #[serde(rename = "pipeline-error-perplexity-ai-401-unauthorized")]
508    PipelineErrorPerplexityAi401Unauthorized,
509    #[serde(rename = "pipeline-error-perplexity-ai-403-model-access-denied")]
510    PipelineErrorPerplexityAi403ModelAccessDenied,
511    #[serde(rename = "pipeline-error-perplexity-ai-429-exceeded-quota")]
512    PipelineErrorPerplexityAi429ExceededQuota,
513    #[serde(rename = "pipeline-error-perplexity-ai-500-server-error")]
514    PipelineErrorPerplexityAi500ServerError,
515    #[serde(rename = "pipeline-error-perplexity-ai-llm-failed")]
516    PipelineErrorPerplexityAiLlmFailed,
517    #[serde(rename = "pipeline-error-deepinfra-400-bad-request-validation-failed")]
518    PipelineErrorDeepinfra400BadRequestValidationFailed,
519    #[serde(rename = "pipeline-error-deepinfra-401-unauthorized")]
520    PipelineErrorDeepinfra401Unauthorized,
521    #[serde(rename = "pipeline-error-deepinfra-403-model-access-denied")]
522    PipelineErrorDeepinfra403ModelAccessDenied,
523    #[serde(rename = "pipeline-error-deepinfra-429-exceeded-quota")]
524    PipelineErrorDeepinfra429ExceededQuota,
525    #[serde(rename = "pipeline-error-deepinfra-500-server-error")]
526    PipelineErrorDeepinfra500ServerError,
527    #[serde(rename = "pipeline-error-deepinfra-llm-failed")]
528    PipelineErrorDeepinfraLlmFailed,
529    #[serde(rename = "pipeline-error-runpod-400-bad-request-validation-failed")]
530    PipelineErrorRunpod400BadRequestValidationFailed,
531    #[serde(rename = "pipeline-error-runpod-401-unauthorized")]
532    PipelineErrorRunpod401Unauthorized,
533    #[serde(rename = "pipeline-error-runpod-403-model-access-denied")]
534    PipelineErrorRunpod403ModelAccessDenied,
535    #[serde(rename = "pipeline-error-runpod-429-exceeded-quota")]
536    PipelineErrorRunpod429ExceededQuota,
537    #[serde(rename = "pipeline-error-runpod-500-server-error")]
538    PipelineErrorRunpod500ServerError,
539    #[serde(rename = "pipeline-error-runpod-llm-failed")]
540    PipelineErrorRunpodLlmFailed,
541    #[serde(rename = "pipeline-error-custom-llm-400-bad-request-validation-failed")]
542    PipelineErrorCustomLlm400BadRequestValidationFailed,
543    #[serde(rename = "pipeline-error-custom-llm-401-unauthorized")]
544    PipelineErrorCustomLlm401Unauthorized,
545    #[serde(rename = "pipeline-error-custom-llm-403-model-access-denied")]
546    PipelineErrorCustomLlm403ModelAccessDenied,
547    #[serde(rename = "pipeline-error-custom-llm-429-exceeded-quota")]
548    PipelineErrorCustomLlm429ExceededQuota,
549    #[serde(rename = "pipeline-error-custom-llm-500-server-error")]
550    PipelineErrorCustomLlm500ServerError,
551    #[serde(rename = "pipeline-error-custom-llm-llm-failed")]
552    PipelineErrorCustomLlmLlmFailed,
553    #[serde(rename = "pipeline-error-custom-voice-failed")]
554    PipelineErrorCustomVoiceFailed,
555    #[serde(rename = "pipeline-error-cartesia-socket-hang-up")]
556    PipelineErrorCartesiaSocketHangUp,
557    #[serde(rename = "pipeline-error-cartesia-requested-payment")]
558    PipelineErrorCartesiaRequestedPayment,
559    #[serde(rename = "pipeline-error-cartesia-500-server-error")]
560    PipelineErrorCartesia500ServerError,
561    #[serde(rename = "pipeline-error-cartesia-503-server-error")]
562    PipelineErrorCartesia503ServerError,
563    #[serde(rename = "pipeline-error-cartesia-522-server-error")]
564    PipelineErrorCartesia522ServerError,
565    #[serde(rename = "pipeline-error-eleven-labs-voice-not-found")]
566    PipelineErrorElevenLabsVoiceNotFound,
567    #[serde(rename = "pipeline-error-eleven-labs-quota-exceeded")]
568    PipelineErrorElevenLabsQuotaExceeded,
569    #[serde(rename = "pipeline-error-eleven-labs-unauthorized-access")]
570    PipelineErrorElevenLabsUnauthorizedAccess,
571    #[serde(rename = "pipeline-error-eleven-labs-unauthorized-to-access-model")]
572    PipelineErrorElevenLabsUnauthorizedToAccessModel,
573    #[serde(rename = "pipeline-error-eleven-labs-professional-voices-only-for-creator-plus")]
574    PipelineErrorElevenLabsProfessionalVoicesOnlyForCreatorPlus,
575    #[serde(rename = "pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade")]
576    PipelineErrorElevenLabsBlockedFreePlanAndRequestedUpgrade,
577    #[serde(rename = "pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade")]
578    PipelineErrorElevenLabsBlockedConcurrentRequestsAndRequestedUpgrade,
579    #[serde(rename = "pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade")]
580    PipelineErrorElevenLabsBlockedUsingInstantVoiceCloneAndRequestedUpgrade,
581    #[serde(rename = "pipeline-error-eleven-labs-system-busy-and-requested-upgrade")]
582    PipelineErrorElevenLabsSystemBusyAndRequestedUpgrade,
583    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned")]
584    PipelineErrorElevenLabsVoiceNotFineTuned,
585    #[serde(rename = "pipeline-error-eleven-labs-invalid-api-key")]
586    PipelineErrorElevenLabsInvalidApiKey,
587    #[serde(rename = "pipeline-error-eleven-labs-invalid-voice-samples")]
588    PipelineErrorElevenLabsInvalidVoiceSamples,
589    #[serde(rename = "pipeline-error-eleven-labs-voice-disabled-by-owner")]
590    PipelineErrorElevenLabsVoiceDisabledByOwner,
591    #[serde(rename = "pipeline-error-eleven-labs-blocked-account-in-probation")]
592    PipelineErrorElevenLabsBlockedAccountInProbation,
593    #[serde(rename = "pipeline-error-eleven-labs-blocked-content-against-their-policy")]
594    PipelineErrorElevenLabsBlockedContentAgainstTheirPolicy,
595    #[serde(rename = "pipeline-error-eleven-labs-missing-samples-for-voice-clone")]
596    PipelineErrorElevenLabsMissingSamplesForVoiceClone,
597    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used")]
598    PipelineErrorElevenLabsVoiceNotFineTunedAndCannotBeUsed,
599    #[serde(rename = "pipeline-error-eleven-labs-voice-not-allowed-for-free-users")]
600    PipelineErrorElevenLabsVoiceNotAllowedForFreeUsers,
601    #[serde(rename = "pipeline-error-eleven-labs-500-server-error")]
602    PipelineErrorElevenLabs500ServerError,
603    #[serde(rename = "pipeline-error-eleven-labs-max-character-limit-exceeded")]
604    PipelineErrorElevenLabsMaxCharacterLimitExceeded,
605    #[serde(rename = "pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification")]
606    PipelineErrorElevenLabsBlockedVoicePotentiallyAgainstTermsOfServiceAndAwaitingVerification,
607    #[serde(rename = "pipeline-error-playht-request-timed-out")]
608    PipelineErrorPlayhtRequestTimedOut,
609    #[serde(rename = "pipeline-error-playht-invalid-voice")]
610    PipelineErrorPlayhtInvalidVoice,
611    #[serde(rename = "pipeline-error-playht-unexpected-error")]
612    PipelineErrorPlayhtUnexpectedError,
613    #[serde(rename = "pipeline-error-playht-out-of-credits")]
614    PipelineErrorPlayhtOutOfCredits,
615    #[serde(rename = "pipeline-error-playht-invalid-emotion")]
616    PipelineErrorPlayhtInvalidEmotion,
617    #[serde(rename = "pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri")]
618    PipelineErrorPlayhtVoiceMustBeAValidVoiceManifestUri,
619    #[serde(rename = "pipeline-error-playht-401-unauthorized")]
620    PipelineErrorPlayht401Unauthorized,
621    #[serde(rename = "pipeline-error-playht-403-forbidden-out-of-characters")]
622    PipelineErrorPlayht403ForbiddenOutOfCharacters,
623    #[serde(rename = "pipeline-error-playht-403-forbidden-api-access-not-available")]
624    PipelineErrorPlayht403ForbiddenApiAccessNotAvailable,
625    #[serde(rename = "pipeline-error-playht-429-exceeded-quota")]
626    PipelineErrorPlayht429ExceededQuota,
627    #[serde(rename = "pipeline-error-playht-502-gateway-error")]
628    PipelineErrorPlayht502GatewayError,
629    #[serde(rename = "pipeline-error-playht-504-gateway-error")]
630    PipelineErrorPlayht504GatewayError,
631    #[serde(rename = "pipeline-error-tavus-video-failed")]
632    PipelineErrorTavusVideoFailed,
633    #[serde(rename = "pipeline-error-custom-transcriber-failed")]
634    PipelineErrorCustomTranscriberFailed,
635    #[serde(rename = "pipeline-error-11labs-transcriber-failed")]
636    PipelineError11labsTranscriberFailed,
637    #[serde(rename = "pipeline-error-deepgram-returning-403-model-access-denied")]
638    PipelineErrorDeepgramReturning403ModelAccessDenied,
639    #[serde(rename = "pipeline-error-deepgram-returning-401-invalid-credentials")]
640    PipelineErrorDeepgramReturning401InvalidCredentials,
641    #[serde(rename = "pipeline-error-deepgram-returning-404-not-found")]
642    PipelineErrorDeepgramReturning404NotFound,
643    #[serde(rename = "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination")]
644    PipelineErrorDeepgramReturning400NoSuchModelLanguageTierCombination,
645    #[serde(rename = "pipeline-error-deepgram-returning-500-invalid-json")]
646    PipelineErrorDeepgramReturning500InvalidJson,
647    #[serde(rename = "pipeline-error-deepgram-returning-502-network-error")]
648    PipelineErrorDeepgramReturning502NetworkError,
649    #[serde(rename = "pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach")]
650    PipelineErrorDeepgramReturning502BadGatewayEhostunreach,
651    #[serde(rename = "pipeline-error-google-transcriber-failed")]
652    PipelineErrorGoogleTranscriberFailed,
653    #[serde(rename = "silence-timed-out")]
654    SilenceTimedOut,
655    #[serde(rename = "sip-gateway-failed-to-connect-call")]
656    SipGatewayFailedToConnectCall,
657    #[serde(rename = "twilio-failed-to-connect-call")]
658    TwilioFailedToConnectCall,
659    #[serde(rename = "twilio-reported-customer-misdialed")]
660    TwilioReportedCustomerMisdialed,
661    #[serde(rename = "vonage-rejected")]
662    VonageRejected,
663    #[serde(rename = "voicemail")]
664    Voicemail,
665}
666
667impl Default for EndedReason {
668    fn default() -> EndedReason {
669        Self::AssistantNotValid
670    }
671}
672