vapi_client/models/
call.rs

1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Call {
17    /// This is the type of call.
18    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
19    pub r#type: Option<Type>,
20    /// These are the costs of individual components of the call in USD.
21    #[serde(rename = "costs", skip_serializing_if = "Option::is_none")]
22    pub costs: Option<Vec<models::CallCostsInner>>,
23    #[serde(rename = "messages", skip_serializing_if = "Option::is_none")]
24    pub messages: Option<Vec<models::ArtifactMessagesInner>>,
25    /// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
26    #[serde(rename = "phoneCallProvider", skip_serializing_if = "Option::is_none")]
27    pub phone_call_provider: Option<PhoneCallProvider>,
28    /// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
29    #[serde(rename = "phoneCallTransport", skip_serializing_if = "Option::is_none")]
30    pub phone_call_transport: Option<PhoneCallTransport>,
31    /// This is the status of the call.
32    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
33    pub status: Option<Status>,
34    /// This is the explanation for how the call ended.
35    #[serde(rename = "endedReason", skip_serializing_if = "Option::is_none")]
36    pub ended_reason: Option<EndedReason>,
37    #[serde(rename = "destination", skip_serializing_if = "Option::is_none")]
38    pub destination: Option<models::CallDestination>,
39    /// This is the unique identifier for the call.
40    #[serde(rename = "id")]
41    pub id: String,
42    /// This is the unique identifier for the org that this call belongs to.
43    #[serde(rename = "orgId")]
44    pub org_id: String,
45    /// This is the ISO 8601 date-time string of when the call was created.
46    #[serde(rename = "createdAt")]
47    pub created_at: String,
48    /// This is the ISO 8601 date-time string of when the call was last updated.
49    #[serde(rename = "updatedAt")]
50    pub updated_at: String,
51    /// This is the ISO 8601 date-time string of when the call was started.
52    #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
53    pub started_at: Option<String>,
54    /// This is the ISO 8601 date-time string of when the call was ended.
55    #[serde(rename = "endedAt", skip_serializing_if = "Option::is_none")]
56    pub ended_at: Option<String>,
57    /// This is the cost of the call in USD.
58    #[serde(rename = "cost", skip_serializing_if = "Option::is_none")]
59    pub cost: Option<f64>,
60    /// This is the cost of the call in USD.
61    #[serde(rename = "costBreakdown", skip_serializing_if = "Option::is_none")]
62    pub cost_breakdown: Option<models::CostBreakdown>,
63    /// 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.
64    #[serde(rename = "artifactPlan", skip_serializing_if = "Option::is_none")]
65    pub artifact_plan: Option<models::ArtifactPlan>,
66    /// This is the analysis of the call. Configure in `assistant.analysisPlan`.
67    #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
68    pub analysis: Option<models::Analysis>,
69    /// This is to real-time monitor the call. Configure in `assistant.monitorPlan`.
70    #[serde(rename = "monitor", skip_serializing_if = "Option::is_none")]
71    pub monitor: Option<models::Monitor>,
72    /// These are the artifacts created from the call. Configure in `assistant.artifactPlan`.
73    #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
74    pub artifact: Option<models::Artifact>,
75    /// This is the transport used for the call.
76    #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
77    pub transport: Option<models::Transport>,
78    /// The ID of the call as provided by the phone number service. callSid in Twilio. conversationUuid in Vonage.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
79    #[serde(
80        rename = "phoneCallProviderId",
81        skip_serializing_if = "Option::is_none"
82    )]
83    pub phone_call_provider_id: Option<String>,
84    /// This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
85    #[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
86    pub assistant_id: Option<String>,
87    /// This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
88    #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
89    pub assistant: Option<models::CreateAssistantDto>,
90    /// These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
91    #[serde(rename = "assistantOverrides", skip_serializing_if = "Option::is_none")]
92    pub assistant_overrides: Option<models::AssistantOverrides>,
93    /// This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
94    #[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
95    pub squad_id: Option<String>,
96    /// This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
97    #[serde(rename = "squad", skip_serializing_if = "Option::is_none")]
98    pub squad: Option<models::CreateSquadDto>,
99    /// 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.
100    #[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
101    pub phone_number_id: Option<String>,
102    /// 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.
103    #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
104    pub phone_number: Option<models::ImportTwilioPhoneNumberDto>,
105    /// This is the customer that will be called. To call a transient customer , use `customer` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
106    #[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
107    pub customer_id: Option<String>,
108    /// This is the customer that will be called. To call an existing customer, use `customerId` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
109    #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
110    pub customer: Option<models::CreateCustomerDto>,
111    /// This is the name of the call. This is just for your own reference.
112    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
113    pub name: Option<String>,
114}
115
116impl Call {
117    pub fn new(id: String, org_id: String, created_at: String, updated_at: String) -> Call {
118        Call {
119            r#type: None,
120            costs: None,
121            messages: None,
122            phone_call_provider: None,
123            phone_call_transport: None,
124            status: None,
125            ended_reason: None,
126            destination: None,
127            id,
128            org_id,
129            created_at,
130            updated_at,
131            started_at: None,
132            ended_at: None,
133            cost: None,
134            cost_breakdown: None,
135            artifact_plan: None,
136            analysis: None,
137            monitor: None,
138            artifact: None,
139            transport: None,
140            phone_call_provider_id: None,
141            assistant_id: None,
142            assistant: None,
143            assistant_overrides: None,
144            squad_id: None,
145            squad: None,
146            phone_number_id: None,
147            phone_number: None,
148            customer_id: None,
149            customer: None,
150            name: None,
151        }
152    }
153}
154/// This is the type of call.
155#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
156pub enum Type {
157    #[serde(rename = "inboundPhoneCall")]
158    InboundPhoneCall,
159    #[serde(rename = "outboundPhoneCall")]
160    OutboundPhoneCall,
161    #[serde(rename = "webCall")]
162    WebCall,
163}
164
165impl Default for Type {
166    fn default() -> Type {
167        Self::InboundPhoneCall
168    }
169}
170/// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
171#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
172pub enum PhoneCallProvider {
173    #[serde(rename = "twilio")]
174    Twilio,
175    #[serde(rename = "vonage")]
176    Vonage,
177    #[serde(rename = "vapi")]
178    Vapi,
179}
180
181impl Default for PhoneCallProvider {
182    fn default() -> PhoneCallProvider {
183        Self::Twilio
184    }
185}
186/// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
187#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
188pub enum PhoneCallTransport {
189    #[serde(rename = "sip")]
190    Sip,
191    #[serde(rename = "pstn")]
192    Pstn,
193}
194
195impl Default for PhoneCallTransport {
196    fn default() -> PhoneCallTransport {
197        Self::Sip
198    }
199}
200/// This is the status of the call.
201#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
202pub enum Status {
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::Queued
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 = "phone-call-provider-bypass-enabled-but-no-call-received")]
332    PhoneCallProviderBypassEnabledButNoCallReceived,
333    #[serde(rename = "vapifault-phone-call-worker-setup-socket-error")]
334    VapifaultPhoneCallWorkerSetupSocketError,
335    #[serde(rename = "vapifault-phone-call-worker-worker-setup-socket-timeout")]
336    VapifaultPhoneCallWorkerWorkerSetupSocketTimeout,
337    #[serde(rename = "vapifault-phone-call-worker-could-not-find-call")]
338    VapifaultPhoneCallWorkerCouldNotFindCall,
339    #[serde(rename = "vapifault-transport-never-connected")]
340    VapifaultTransportNeverConnected,
341    #[serde(rename = "vapifault-web-call-worker-setup-failed")]
342    VapifaultWebCallWorkerSetupFailed,
343    #[serde(rename = "vapifault-transport-connected-but-call-not-active")]
344    VapifaultTransportConnectedButCallNotActive,
345    #[serde(rename = "vapifault-call-started-but-connection-to-transport-missing")]
346    VapifaultCallStartedButConnectionToTransportMissing,
347    #[serde(rename = "pipeline-error-openai-llm-failed")]
348    PipelineErrorOpenaiLlmFailed,
349    #[serde(rename = "pipeline-error-azure-openai-llm-failed")]
350    PipelineErrorAzureOpenaiLlmFailed,
351    #[serde(rename = "pipeline-error-groq-llm-failed")]
352    PipelineErrorGroqLlmFailed,
353    #[serde(rename = "pipeline-error-google-llm-failed")]
354    PipelineErrorGoogleLlmFailed,
355    #[serde(rename = "pipeline-error-xai-llm-failed")]
356    PipelineErrorXaiLlmFailed,
357    #[serde(rename = "pipeline-error-mistral-llm-failed")]
358    PipelineErrorMistralLlmFailed,
359    #[serde(rename = "pipeline-error-inflection-ai-llm-failed")]
360    PipelineErrorInflectionAiLlmFailed,
361    #[serde(rename = "pipeline-error-cerebras-llm-failed")]
362    PipelineErrorCerebrasLlmFailed,
363    #[serde(rename = "pipeline-error-deep-seek-llm-failed")]
364    PipelineErrorDeepSeekLlmFailed,
365    #[serde(rename = "pipeline-error-openai-400-bad-request-validation-failed")]
366    PipelineErrorOpenai400BadRequestValidationFailed,
367    #[serde(rename = "pipeline-error-openai-401-unauthorized")]
368    PipelineErrorOpenai401Unauthorized,
369    #[serde(rename = "pipeline-error-openai-403-model-access-denied")]
370    PipelineErrorOpenai403ModelAccessDenied,
371    #[serde(rename = "pipeline-error-openai-429-exceeded-quota")]
372    PipelineErrorOpenai429ExceededQuota,
373    #[serde(rename = "pipeline-error-openai-500-server-error")]
374    PipelineErrorOpenai500ServerError,
375    #[serde(rename = "pipeline-error-google-400-bad-request-validation-failed")]
376    PipelineErrorGoogle400BadRequestValidationFailed,
377    #[serde(rename = "pipeline-error-google-401-unauthorized")]
378    PipelineErrorGoogle401Unauthorized,
379    #[serde(rename = "pipeline-error-google-403-model-access-denied")]
380    PipelineErrorGoogle403ModelAccessDenied,
381    #[serde(rename = "pipeline-error-google-429-exceeded-quota")]
382    PipelineErrorGoogle429ExceededQuota,
383    #[serde(rename = "pipeline-error-google-500-server-error")]
384    PipelineErrorGoogle500ServerError,
385    #[serde(rename = "pipeline-error-xai-400-bad-request-validation-failed")]
386    PipelineErrorXai400BadRequestValidationFailed,
387    #[serde(rename = "pipeline-error-xai-401-unauthorized")]
388    PipelineErrorXai401Unauthorized,
389    #[serde(rename = "pipeline-error-xai-403-model-access-denied")]
390    PipelineErrorXai403ModelAccessDenied,
391    #[serde(rename = "pipeline-error-xai-429-exceeded-quota")]
392    PipelineErrorXai429ExceededQuota,
393    #[serde(rename = "pipeline-error-xai-500-server-error")]
394    PipelineErrorXai500ServerError,
395    #[serde(rename = "pipeline-error-mistral-400-bad-request-validation-failed")]
396    PipelineErrorMistral400BadRequestValidationFailed,
397    #[serde(rename = "pipeline-error-mistral-401-unauthorized")]
398    PipelineErrorMistral401Unauthorized,
399    #[serde(rename = "pipeline-error-mistral-403-model-access-denied")]
400    PipelineErrorMistral403ModelAccessDenied,
401    #[serde(rename = "pipeline-error-mistral-429-exceeded-quota")]
402    PipelineErrorMistral429ExceededQuota,
403    #[serde(rename = "pipeline-error-mistral-500-server-error")]
404    PipelineErrorMistral500ServerError,
405    #[serde(rename = "pipeline-error-inflection-ai-400-bad-request-validation-failed")]
406    PipelineErrorInflectionAi400BadRequestValidationFailed,
407    #[serde(rename = "pipeline-error-inflection-ai-401-unauthorized")]
408    PipelineErrorInflectionAi401Unauthorized,
409    #[serde(rename = "pipeline-error-inflection-ai-403-model-access-denied")]
410    PipelineErrorInflectionAi403ModelAccessDenied,
411    #[serde(rename = "pipeline-error-inflection-ai-429-exceeded-quota")]
412    PipelineErrorInflectionAi429ExceededQuota,
413    #[serde(rename = "pipeline-error-inflection-ai-500-server-error")]
414    PipelineErrorInflectionAi500ServerError,
415    #[serde(rename = "pipeline-error-deep-seek-400-bad-request-validation-failed")]
416    PipelineErrorDeepSeek400BadRequestValidationFailed,
417    #[serde(rename = "pipeline-error-deep-seek-401-unauthorized")]
418    PipelineErrorDeepSeek401Unauthorized,
419    #[serde(rename = "pipeline-error-deep-seek-403-model-access-denied")]
420    PipelineErrorDeepSeek403ModelAccessDenied,
421    #[serde(rename = "pipeline-error-deep-seek-429-exceeded-quota")]
422    PipelineErrorDeepSeek429ExceededQuota,
423    #[serde(rename = "pipeline-error-deep-seek-500-server-error")]
424    PipelineErrorDeepSeek500ServerError,
425    #[serde(rename = "pipeline-error-azure-openai-400-bad-request-validation-failed")]
426    PipelineErrorAzureOpenai400BadRequestValidationFailed,
427    #[serde(rename = "pipeline-error-azure-openai-401-unauthorized")]
428    PipelineErrorAzureOpenai401Unauthorized,
429    #[serde(rename = "pipeline-error-azure-openai-403-model-access-denied")]
430    PipelineErrorAzureOpenai403ModelAccessDenied,
431    #[serde(rename = "pipeline-error-azure-openai-429-exceeded-quota")]
432    PipelineErrorAzureOpenai429ExceededQuota,
433    #[serde(rename = "pipeline-error-azure-openai-500-server-error")]
434    PipelineErrorAzureOpenai500ServerError,
435    #[serde(rename = "pipeline-error-groq-400-bad-request-validation-failed")]
436    PipelineErrorGroq400BadRequestValidationFailed,
437    #[serde(rename = "pipeline-error-groq-401-unauthorized")]
438    PipelineErrorGroq401Unauthorized,
439    #[serde(rename = "pipeline-error-groq-403-model-access-denied")]
440    PipelineErrorGroq403ModelAccessDenied,
441    #[serde(rename = "pipeline-error-groq-429-exceeded-quota")]
442    PipelineErrorGroq429ExceededQuota,
443    #[serde(rename = "pipeline-error-groq-500-server-error")]
444    PipelineErrorGroq500ServerError,
445    #[serde(rename = "pipeline-error-cerebras-400-bad-request-validation-failed")]
446    PipelineErrorCerebras400BadRequestValidationFailed,
447    #[serde(rename = "pipeline-error-cerebras-401-unauthorized")]
448    PipelineErrorCerebras401Unauthorized,
449    #[serde(rename = "pipeline-error-cerebras-403-model-access-denied")]
450    PipelineErrorCerebras403ModelAccessDenied,
451    #[serde(rename = "pipeline-error-cerebras-429-exceeded-quota")]
452    PipelineErrorCerebras429ExceededQuota,
453    #[serde(rename = "pipeline-error-cerebras-500-server-error")]
454    PipelineErrorCerebras500ServerError,
455    #[serde(rename = "pipeline-error-anthropic-400-bad-request-validation-failed")]
456    PipelineErrorAnthropic400BadRequestValidationFailed,
457    #[serde(rename = "pipeline-error-anthropic-401-unauthorized")]
458    PipelineErrorAnthropic401Unauthorized,
459    #[serde(rename = "pipeline-error-anthropic-403-model-access-denied")]
460    PipelineErrorAnthropic403ModelAccessDenied,
461    #[serde(rename = "pipeline-error-anthropic-429-exceeded-quota")]
462    PipelineErrorAnthropic429ExceededQuota,
463    #[serde(rename = "pipeline-error-anthropic-500-server-error")]
464    PipelineErrorAnthropic500ServerError,
465    #[serde(rename = "pipeline-error-anthropic-llm-failed")]
466    PipelineErrorAnthropicLlmFailed,
467    #[serde(rename = "pipeline-error-together-ai-400-bad-request-validation-failed")]
468    PipelineErrorTogetherAi400BadRequestValidationFailed,
469    #[serde(rename = "pipeline-error-together-ai-401-unauthorized")]
470    PipelineErrorTogetherAi401Unauthorized,
471    #[serde(rename = "pipeline-error-together-ai-403-model-access-denied")]
472    PipelineErrorTogetherAi403ModelAccessDenied,
473    #[serde(rename = "pipeline-error-together-ai-429-exceeded-quota")]
474    PipelineErrorTogetherAi429ExceededQuota,
475    #[serde(rename = "pipeline-error-together-ai-500-server-error")]
476    PipelineErrorTogetherAi500ServerError,
477    #[serde(rename = "pipeline-error-together-ai-llm-failed")]
478    PipelineErrorTogetherAiLlmFailed,
479    #[serde(rename = "pipeline-error-anyscale-400-bad-request-validation-failed")]
480    PipelineErrorAnyscale400BadRequestValidationFailed,
481    #[serde(rename = "pipeline-error-anyscale-401-unauthorized")]
482    PipelineErrorAnyscale401Unauthorized,
483    #[serde(rename = "pipeline-error-anyscale-403-model-access-denied")]
484    PipelineErrorAnyscale403ModelAccessDenied,
485    #[serde(rename = "pipeline-error-anyscale-429-exceeded-quota")]
486    PipelineErrorAnyscale429ExceededQuota,
487    #[serde(rename = "pipeline-error-anyscale-500-server-error")]
488    PipelineErrorAnyscale500ServerError,
489    #[serde(rename = "pipeline-error-anyscale-llm-failed")]
490    PipelineErrorAnyscaleLlmFailed,
491    #[serde(rename = "pipeline-error-openrouter-400-bad-request-validation-failed")]
492    PipelineErrorOpenrouter400BadRequestValidationFailed,
493    #[serde(rename = "pipeline-error-openrouter-401-unauthorized")]
494    PipelineErrorOpenrouter401Unauthorized,
495    #[serde(rename = "pipeline-error-openrouter-403-model-access-denied")]
496    PipelineErrorOpenrouter403ModelAccessDenied,
497    #[serde(rename = "pipeline-error-openrouter-429-exceeded-quota")]
498    PipelineErrorOpenrouter429ExceededQuota,
499    #[serde(rename = "pipeline-error-openrouter-500-server-error")]
500    PipelineErrorOpenrouter500ServerError,
501    #[serde(rename = "pipeline-error-openrouter-llm-failed")]
502    PipelineErrorOpenrouterLlmFailed,
503    #[serde(rename = "pipeline-error-perplexity-ai-400-bad-request-validation-failed")]
504    PipelineErrorPerplexityAi400BadRequestValidationFailed,
505    #[serde(rename = "pipeline-error-perplexity-ai-401-unauthorized")]
506    PipelineErrorPerplexityAi401Unauthorized,
507    #[serde(rename = "pipeline-error-perplexity-ai-403-model-access-denied")]
508    PipelineErrorPerplexityAi403ModelAccessDenied,
509    #[serde(rename = "pipeline-error-perplexity-ai-429-exceeded-quota")]
510    PipelineErrorPerplexityAi429ExceededQuota,
511    #[serde(rename = "pipeline-error-perplexity-ai-500-server-error")]
512    PipelineErrorPerplexityAi500ServerError,
513    #[serde(rename = "pipeline-error-perplexity-ai-llm-failed")]
514    PipelineErrorPerplexityAiLlmFailed,
515    #[serde(rename = "pipeline-error-deepinfra-400-bad-request-validation-failed")]
516    PipelineErrorDeepinfra400BadRequestValidationFailed,
517    #[serde(rename = "pipeline-error-deepinfra-401-unauthorized")]
518    PipelineErrorDeepinfra401Unauthorized,
519    #[serde(rename = "pipeline-error-deepinfra-403-model-access-denied")]
520    PipelineErrorDeepinfra403ModelAccessDenied,
521    #[serde(rename = "pipeline-error-deepinfra-429-exceeded-quota")]
522    PipelineErrorDeepinfra429ExceededQuota,
523    #[serde(rename = "pipeline-error-deepinfra-500-server-error")]
524    PipelineErrorDeepinfra500ServerError,
525    #[serde(rename = "pipeline-error-deepinfra-llm-failed")]
526    PipelineErrorDeepinfraLlmFailed,
527    #[serde(rename = "pipeline-error-runpod-400-bad-request-validation-failed")]
528    PipelineErrorRunpod400BadRequestValidationFailed,
529    #[serde(rename = "pipeline-error-runpod-401-unauthorized")]
530    PipelineErrorRunpod401Unauthorized,
531    #[serde(rename = "pipeline-error-runpod-403-model-access-denied")]
532    PipelineErrorRunpod403ModelAccessDenied,
533    #[serde(rename = "pipeline-error-runpod-429-exceeded-quota")]
534    PipelineErrorRunpod429ExceededQuota,
535    #[serde(rename = "pipeline-error-runpod-500-server-error")]
536    PipelineErrorRunpod500ServerError,
537    #[serde(rename = "pipeline-error-runpod-llm-failed")]
538    PipelineErrorRunpodLlmFailed,
539    #[serde(rename = "pipeline-error-custom-llm-400-bad-request-validation-failed")]
540    PipelineErrorCustomLlm400BadRequestValidationFailed,
541    #[serde(rename = "pipeline-error-custom-llm-401-unauthorized")]
542    PipelineErrorCustomLlm401Unauthorized,
543    #[serde(rename = "pipeline-error-custom-llm-403-model-access-denied")]
544    PipelineErrorCustomLlm403ModelAccessDenied,
545    #[serde(rename = "pipeline-error-custom-llm-429-exceeded-quota")]
546    PipelineErrorCustomLlm429ExceededQuota,
547    #[serde(rename = "pipeline-error-custom-llm-500-server-error")]
548    PipelineErrorCustomLlm500ServerError,
549    #[serde(rename = "pipeline-error-custom-llm-llm-failed")]
550    PipelineErrorCustomLlmLlmFailed,
551    #[serde(rename = "pipeline-error-custom-voice-failed")]
552    PipelineErrorCustomVoiceFailed,
553    #[serde(rename = "pipeline-error-cartesia-socket-hang-up")]
554    PipelineErrorCartesiaSocketHangUp,
555    #[serde(rename = "pipeline-error-cartesia-requested-payment")]
556    PipelineErrorCartesiaRequestedPayment,
557    #[serde(rename = "pipeline-error-cartesia-500-server-error")]
558    PipelineErrorCartesia500ServerError,
559    #[serde(rename = "pipeline-error-cartesia-503-server-error")]
560    PipelineErrorCartesia503ServerError,
561    #[serde(rename = "pipeline-error-cartesia-522-server-error")]
562    PipelineErrorCartesia522ServerError,
563    #[serde(rename = "pipeline-error-eleven-labs-voice-not-found")]
564    PipelineErrorElevenLabsVoiceNotFound,
565    #[serde(rename = "pipeline-error-eleven-labs-quota-exceeded")]
566    PipelineErrorElevenLabsQuotaExceeded,
567    #[serde(rename = "pipeline-error-eleven-labs-unauthorized-access")]
568    PipelineErrorElevenLabsUnauthorizedAccess,
569    #[serde(rename = "pipeline-error-eleven-labs-unauthorized-to-access-model")]
570    PipelineErrorElevenLabsUnauthorizedToAccessModel,
571    #[serde(rename = "pipeline-error-eleven-labs-professional-voices-only-for-creator-plus")]
572    PipelineErrorElevenLabsProfessionalVoicesOnlyForCreatorPlus,
573    #[serde(rename = "pipeline-error-eleven-labs-blocked-free-plan-and-requested-upgrade")]
574    PipelineErrorElevenLabsBlockedFreePlanAndRequestedUpgrade,
575    #[serde(
576        rename = "pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade"
577    )]
578    PipelineErrorElevenLabsBlockedConcurrentRequestsAndRequestedUpgrade,
579    #[serde(
580        rename = "pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade"
581    )]
582    PipelineErrorElevenLabsBlockedUsingInstantVoiceCloneAndRequestedUpgrade,
583    #[serde(rename = "pipeline-error-eleven-labs-system-busy-and-requested-upgrade")]
584    PipelineErrorElevenLabsSystemBusyAndRequestedUpgrade,
585    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned")]
586    PipelineErrorElevenLabsVoiceNotFineTuned,
587    #[serde(rename = "pipeline-error-eleven-labs-invalid-api-key")]
588    PipelineErrorElevenLabsInvalidApiKey,
589    #[serde(rename = "pipeline-error-eleven-labs-invalid-voice-samples")]
590    PipelineErrorElevenLabsInvalidVoiceSamples,
591    #[serde(rename = "pipeline-error-eleven-labs-voice-disabled-by-owner")]
592    PipelineErrorElevenLabsVoiceDisabledByOwner,
593    #[serde(rename = "pipeline-error-eleven-labs-blocked-account-in-probation")]
594    PipelineErrorElevenLabsBlockedAccountInProbation,
595    #[serde(rename = "pipeline-error-eleven-labs-blocked-content-against-their-policy")]
596    PipelineErrorElevenLabsBlockedContentAgainstTheirPolicy,
597    #[serde(rename = "pipeline-error-eleven-labs-missing-samples-for-voice-clone")]
598    PipelineErrorElevenLabsMissingSamplesForVoiceClone,
599    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used")]
600    PipelineErrorElevenLabsVoiceNotFineTunedAndCannotBeUsed,
601    #[serde(rename = "pipeline-error-eleven-labs-voice-not-allowed-for-free-users")]
602    PipelineErrorElevenLabsVoiceNotAllowedForFreeUsers,
603    #[serde(rename = "pipeline-error-eleven-labs-500-server-error")]
604    PipelineErrorElevenLabs500ServerError,
605    #[serde(rename = "pipeline-error-eleven-labs-max-character-limit-exceeded")]
606    PipelineErrorElevenLabsMaxCharacterLimitExceeded,
607    #[serde(
608        rename = "pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification"
609    )]
610    PipelineErrorElevenLabsBlockedVoicePotentiallyAgainstTermsOfServiceAndAwaitingVerification,
611    #[serde(rename = "pipeline-error-playht-request-timed-out")]
612    PipelineErrorPlayhtRequestTimedOut,
613    #[serde(rename = "pipeline-error-playht-invalid-voice")]
614    PipelineErrorPlayhtInvalidVoice,
615    #[serde(rename = "pipeline-error-playht-unexpected-error")]
616    PipelineErrorPlayhtUnexpectedError,
617    #[serde(rename = "pipeline-error-playht-out-of-credits")]
618    PipelineErrorPlayhtOutOfCredits,
619    #[serde(rename = "pipeline-error-playht-invalid-emotion")]
620    PipelineErrorPlayhtInvalidEmotion,
621    #[serde(rename = "pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri")]
622    PipelineErrorPlayhtVoiceMustBeAValidVoiceManifestUri,
623    #[serde(rename = "pipeline-error-playht-401-unauthorized")]
624    PipelineErrorPlayht401Unauthorized,
625    #[serde(rename = "pipeline-error-playht-403-forbidden-out-of-characters")]
626    PipelineErrorPlayht403ForbiddenOutOfCharacters,
627    #[serde(rename = "pipeline-error-playht-403-forbidden-api-access-not-available")]
628    PipelineErrorPlayht403ForbiddenApiAccessNotAvailable,
629    #[serde(rename = "pipeline-error-playht-429-exceeded-quota")]
630    PipelineErrorPlayht429ExceededQuota,
631    #[serde(rename = "pipeline-error-playht-502-gateway-error")]
632    PipelineErrorPlayht502GatewayError,
633    #[serde(rename = "pipeline-error-playht-504-gateway-error")]
634    PipelineErrorPlayht504GatewayError,
635    #[serde(rename = "pipeline-error-tavus-video-failed")]
636    PipelineErrorTavusVideoFailed,
637    #[serde(rename = "pipeline-error-custom-transcriber-failed")]
638    PipelineErrorCustomTranscriberFailed,
639    #[serde(rename = "pipeline-error-11labs-transcriber-failed")]
640    PipelineError11labsTranscriberFailed,
641    #[serde(rename = "pipeline-error-deepgram-returning-403-model-access-denied")]
642    PipelineErrorDeepgramReturning403ModelAccessDenied,
643    #[serde(rename = "pipeline-error-deepgram-returning-401-invalid-credentials")]
644    PipelineErrorDeepgramReturning401InvalidCredentials,
645    #[serde(rename = "pipeline-error-deepgram-returning-404-not-found")]
646    PipelineErrorDeepgramReturning404NotFound,
647    #[serde(
648        rename = "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination"
649    )]
650    PipelineErrorDeepgramReturning400NoSuchModelLanguageTierCombination,
651    #[serde(rename = "pipeline-error-deepgram-returning-500-invalid-json")]
652    PipelineErrorDeepgramReturning500InvalidJson,
653    #[serde(rename = "pipeline-error-deepgram-returning-502-network-error")]
654    PipelineErrorDeepgramReturning502NetworkError,
655    #[serde(rename = "pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach")]
656    PipelineErrorDeepgramReturning502BadGatewayEhostunreach,
657    #[serde(rename = "silence-timed-out")]
658    SilenceTimedOut,
659    #[serde(rename = "sip-gateway-failed-to-connect-call")]
660    SipGatewayFailedToConnectCall,
661    #[serde(rename = "twilio-failed-to-connect-call")]
662    TwilioFailedToConnectCall,
663    #[serde(rename = "twilio-reported-customer-misdialed")]
664    TwilioReportedCustomerMisdialed,
665    #[serde(rename = "vonage-rejected")]
666    VonageRejected,
667    #[serde(rename = "voicemail")]
668    Voicemail,
669}
670
671impl Default for EndedReason {
672    fn default() -> EndedReason {
673        Self::AssistantNotValid
674    }
675}