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};
12use utoipa::OpenApi;
13
14
15use crate::models;
16
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize, OpenApi)]
18pub struct Call {
19    /// This is the type of call.
20    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
21    pub r#type: Option<Type>,
22    /// These are the costs of individual components of the call in USD.
23    #[serde(rename = "costs", skip_serializing_if = "Option::is_none")]
24    pub costs: Option<Vec<models::CallCostsInner>>,
25    #[serde(rename = "messages", skip_serializing_if = "Option::is_none")]
26    pub messages: Option<Vec<models::ArtifactMessagesInner>>,
27    /// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
28    #[serde(rename = "phoneCallProvider", skip_serializing_if = "Option::is_none")]
29    pub phone_call_provider: Option<PhoneCallProvider>,
30    /// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
31    #[serde(rename = "phoneCallTransport", skip_serializing_if = "Option::is_none")]
32    pub phone_call_transport: Option<PhoneCallTransport>,
33    /// This is the status of the call.
34    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
35    pub status: Option<Status>,
36    /// This is the explanation for how the call ended.
37    #[serde(rename = "endedReason", skip_serializing_if = "Option::is_none")]
38    pub ended_reason: Option<EndedReason>,
39    #[serde(rename = "destination", skip_serializing_if = "Option::is_none")]
40    pub destination: Option<models::CallDestination>,
41    /// This is the unique identifier for the call.
42    #[serde(rename = "id")]
43    pub id: String,
44    /// This is the unique identifier for the org that this call belongs to.
45    #[serde(rename = "orgId")]
46    pub org_id: String,
47    /// This is the ISO 8601 date-time string of when the call was created.
48    #[serde(rename = "createdAt")]
49    pub created_at: String,
50    /// This is the ISO 8601 date-time string of when the call was last updated.
51    #[serde(rename = "updatedAt")]
52    pub updated_at: String,
53    /// This is the ISO 8601 date-time string of when the call was started.
54    #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
55    pub started_at: Option<String>,
56    /// This is the ISO 8601 date-time string of when the call was ended.
57    #[serde(rename = "endedAt", skip_serializing_if = "Option::is_none")]
58    pub ended_at: Option<String>,
59    /// This is the cost of the call in USD.
60    #[serde(rename = "cost", skip_serializing_if = "Option::is_none")]
61    pub cost: Option<f64>,
62    /// This is the cost of the call in USD.
63    #[serde(rename = "costBreakdown", skip_serializing_if = "Option::is_none")]
64    pub cost_breakdown: Option<models::CostBreakdown>,
65    /// 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.
66    #[serde(rename = "artifactPlan", skip_serializing_if = "Option::is_none")]
67    pub artifact_plan: Option<models::ArtifactPlan>,
68    /// This is the analysis of the call. Configure in `assistant.analysisPlan`.
69    #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
70    pub analysis: Option<models::Analysis>,
71    /// This is to real-time monitor the call. Configure in `assistant.monitorPlan`.
72    #[serde(rename = "monitor", skip_serializing_if = "Option::is_none")]
73    pub monitor: Option<models::Monitor>,
74    /// These are the artifacts created from the call. Configure in `assistant.artifactPlan`.
75    #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
76    pub artifact: Option<models::Artifact>,
77    /// This is the transport used for the call.
78    #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
79    pub transport: Option<models::Transport>,
80    /// 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.
81    #[serde(
82        rename = "phoneCallProviderId",
83        skip_serializing_if = "Option::is_none"
84    )]
85    pub phone_call_provider_id: Option<String>,
86    /// This is the assistant that will be used for the call. To use a transient assistant, use `assistant` instead.
87    #[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
88    pub assistant_id: Option<String>,
89    /// This is the assistant that will be used for the call. To use an existing assistant, use `assistantId` instead.
90    #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
91    pub assistant: Option<models::CreateAssistantDto>,
92    /// These are the overrides for the `assistant` or `assistantId`'s settings and template variables.
93    #[serde(rename = "assistantOverrides", skip_serializing_if = "Option::is_none")]
94    pub assistant_overrides: Option<models::AssistantOverrides>,
95    /// This is the squad that will be used for the call. To use a transient squad, use `squad` instead.
96    #[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
97    pub squad_id: Option<String>,
98    /// This is a squad that will be used for the call. To use an existing squad, use `squadId` instead.
99    #[serde(rename = "squad", skip_serializing_if = "Option::is_none")]
100    pub squad: Option<models::CreateSquadDto>,
101    /// 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.
102    #[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
103    pub phone_number_id: Option<String>,
104    /// 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.
105    #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
106    pub phone_number: Option<models::ImportTwilioPhoneNumberDto>,
107    /// This is the customer that will be called. To call a transient customer , use `customer` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
108    #[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
109    pub customer_id: Option<String>,
110    /// This is the customer that will be called. To call an existing customer, use `customerId` instead.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
111    #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
112    pub customer: Option<models::CreateCustomerDto>,
113    /// This is the name of the call. This is just for your own reference.
114    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
115    pub name: Option<String>,
116}
117
118impl Call {
119    pub fn new(id: String, org_id: String, created_at: String, updated_at: String) -> Call {
120        Call {
121            r#type: None,
122            costs: None,
123            messages: None,
124            phone_call_provider: None,
125            phone_call_transport: None,
126            status: None,
127            ended_reason: None,
128            destination: None,
129            id,
130            org_id,
131            created_at,
132            updated_at,
133            started_at: None,
134            ended_at: None,
135            cost: None,
136            cost_breakdown: None,
137            artifact_plan: None,
138            analysis: None,
139            monitor: None,
140            artifact: None,
141            transport: None,
142            phone_call_provider_id: None,
143            assistant_id: None,
144            assistant: None,
145            assistant_overrides: None,
146            squad_id: None,
147            squad: None,
148            phone_number_id: None,
149            phone_number: None,
150            customer_id: None,
151            customer: None,
152            name: None,
153        }
154    }
155}
156/// This is the type of call.
157#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
158pub enum Type {
159    #[serde(rename = "inboundPhoneCall")]
160    InboundPhoneCall,
161    #[serde(rename = "outboundPhoneCall")]
162    OutboundPhoneCall,
163    #[serde(rename = "webCall")]
164    WebCall,
165}
166
167impl Default for Type {
168    fn default() -> Type {
169        Self::InboundPhoneCall
170    }
171}
172/// This is the provider of the call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
173#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
174pub enum PhoneCallProvider {
175    #[serde(rename = "twilio")]
176    Twilio,
177    #[serde(rename = "vonage")]
178    Vonage,
179    #[serde(rename = "vapi")]
180    Vapi,
181}
182
183impl Default for PhoneCallProvider {
184    fn default() -> PhoneCallProvider {
185        Self::Twilio
186    }
187}
188/// This is the transport of the phone call.  Only relevant for `outboundPhoneCall` and `inboundPhoneCall` type.
189#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
190pub enum PhoneCallTransport {
191    #[serde(rename = "sip")]
192    Sip,
193    #[serde(rename = "pstn")]
194    Pstn,
195}
196
197impl Default for PhoneCallTransport {
198    fn default() -> PhoneCallTransport {
199        Self::Sip
200    }
201}
202/// This is the status of the call.
203#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
204pub enum Status {
205    #[serde(rename = "queued")]
206    Queued,
207    #[serde(rename = "ringing")]
208    Ringing,
209    #[serde(rename = "in-progress")]
210    InProgress,
211    #[serde(rename = "forwarding")]
212    Forwarding,
213    #[serde(rename = "ended")]
214    Ended,
215}
216
217impl Default for Status {
218    fn default() -> Status {
219        Self::Queued
220    }
221}
222/// This is the explanation for how the call ended.
223#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize, OpenApi)]
224pub enum EndedReason {
225    #[serde(rename = "assistant-not-valid")]
226    AssistantNotValid,
227    #[serde(rename = "assistant-not-provided")]
228    AssistantNotProvided,
229    #[serde(rename = "call-start-error-neither-assistant-nor-server-set")]
230    CallStartErrorNeitherAssistantNorServerSet,
231    #[serde(rename = "assistant-request-failed")]
232    AssistantRequestFailed,
233    #[serde(rename = "assistant-request-returned-error")]
234    AssistantRequestReturnedError,
235    #[serde(rename = "assistant-request-returned-unspeakable-error")]
236    AssistantRequestReturnedUnspeakableError,
237    #[serde(rename = "assistant-request-returned-invalid-assistant")]
238    AssistantRequestReturnedInvalidAssistant,
239    #[serde(rename = "assistant-request-returned-no-assistant")]
240    AssistantRequestReturnedNoAssistant,
241    #[serde(rename = "assistant-request-returned-forwarding-phone-number")]
242    AssistantRequestReturnedForwardingPhoneNumber,
243    #[serde(rename = "assistant-ended-call")]
244    AssistantEndedCall,
245    #[serde(rename = "assistant-said-end-call-phrase")]
246    AssistantSaidEndCallPhrase,
247    #[serde(rename = "assistant-ended-call-with-hangup-task")]
248    AssistantEndedCallWithHangupTask,
249    #[serde(rename = "assistant-forwarded-call")]
250    AssistantForwardedCall,
251    #[serde(rename = "assistant-join-timed-out")]
252    AssistantJoinTimedOut,
253    #[serde(rename = "customer-busy")]
254    CustomerBusy,
255    #[serde(rename = "customer-ended-call")]
256    CustomerEndedCall,
257    #[serde(rename = "customer-did-not-answer")]
258    CustomerDidNotAnswer,
259    #[serde(rename = "customer-did-not-give-microphone-permission")]
260    CustomerDidNotGiveMicrophonePermission,
261    #[serde(rename = "assistant-said-message-with-end-call-enabled")]
262    AssistantSaidMessageWithEndCallEnabled,
263    #[serde(rename = "exceeded-max-duration")]
264    ExceededMaxDuration,
265    #[serde(rename = "manually-canceled")]
266    ManuallyCanceled,
267    #[serde(rename = "phone-call-provider-closed-websocket")]
268    PhoneCallProviderClosedWebsocket,
269    #[serde(rename = "db-error")]
270    DbError,
271    #[serde(rename = "assistant-not-found")]
272    AssistantNotFound,
273    #[serde(rename = "license-check-failed")]
274    LicenseCheckFailed,
275    #[serde(rename = "pipeline-error-openai-voice-failed")]
276    PipelineErrorOpenaiVoiceFailed,
277    #[serde(rename = "pipeline-error-cartesia-voice-failed")]
278    PipelineErrorCartesiaVoiceFailed,
279    #[serde(rename = "pipeline-error-deepgram-voice-failed")]
280    PipelineErrorDeepgramVoiceFailed,
281    #[serde(rename = "pipeline-error-eleven-labs-voice-failed")]
282    PipelineErrorElevenLabsVoiceFailed,
283    #[serde(rename = "pipeline-error-playht-voice-failed")]
284    PipelineErrorPlayhtVoiceFailed,
285    #[serde(rename = "pipeline-error-lmnt-voice-failed")]
286    PipelineErrorLmntVoiceFailed,
287    #[serde(rename = "pipeline-error-azure-voice-failed")]
288    PipelineErrorAzureVoiceFailed,
289    #[serde(rename = "pipeline-error-rime-ai-voice-failed")]
290    PipelineErrorRimeAiVoiceFailed,
291    #[serde(rename = "pipeline-error-neets-voice-failed")]
292    PipelineErrorNeetsVoiceFailed,
293    #[serde(rename = "pipeline-error-smallest-ai-voice-failed")]
294    PipelineErrorSmallestAiVoiceFailed,
295    #[serde(rename = "pipeline-error-neuphonic-voice-failed")]
296    PipelineErrorNeuphonicVoiceFailed,
297    #[serde(rename = "pipeline-error-hume-voice-failed")]
298    PipelineErrorHumeVoiceFailed,
299    #[serde(rename = "pipeline-error-deepgram-transcriber-failed")]
300    PipelineErrorDeepgramTranscriberFailed,
301    #[serde(rename = "pipeline-error-gladia-transcriber-failed")]
302    PipelineErrorGladiaTranscriberFailed,
303    #[serde(rename = "pipeline-error-speechmatics-transcriber-failed")]
304    PipelineErrorSpeechmaticsTranscriberFailed,
305    #[serde(rename = "pipeline-error-assembly-ai-transcriber-failed")]
306    PipelineErrorAssemblyAiTranscriberFailed,
307    #[serde(rename = "pipeline-error-talkscriber-transcriber-failed")]
308    PipelineErrorTalkscriberTranscriberFailed,
309    #[serde(rename = "pipeline-error-azure-speech-transcriber-failed")]
310    PipelineErrorAzureSpeechTranscriberFailed,
311    #[serde(rename = "pipeline-error-vapi-llm-failed")]
312    PipelineErrorVapiLlmFailed,
313    #[serde(rename = "pipeline-error-vapi-400-bad-request-validation-failed")]
314    PipelineErrorVapi400BadRequestValidationFailed,
315    #[serde(rename = "pipeline-error-vapi-401-unauthorized")]
316    PipelineErrorVapi401Unauthorized,
317    #[serde(rename = "pipeline-error-vapi-403-model-access-denied")]
318    PipelineErrorVapi403ModelAccessDenied,
319    #[serde(rename = "pipeline-error-vapi-429-exceeded-quota")]
320    PipelineErrorVapi429ExceededQuota,
321    #[serde(rename = "pipeline-error-vapi-500-server-error")]
322    PipelineErrorVapi500ServerError,
323    #[serde(rename = "pipeline-no-available-model")]
324    PipelineNoAvailableModel,
325    #[serde(rename = "worker-shutdown")]
326    WorkerShutdown,
327    #[serde(rename = "unknown-error")]
328    UnknownError,
329    #[serde(rename = "vonage-disconnected")]
330    VonageDisconnected,
331    #[serde(rename = "vonage-failed-to-connect-call")]
332    VonageFailedToConnectCall,
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(
578        rename = "pipeline-error-eleven-labs-blocked-concurrent-requests-and-requested-upgrade"
579    )]
580    PipelineErrorElevenLabsBlockedConcurrentRequestsAndRequestedUpgrade,
581    #[serde(
582        rename = "pipeline-error-eleven-labs-blocked-using-instant-voice-clone-and-requested-upgrade"
583    )]
584    PipelineErrorElevenLabsBlockedUsingInstantVoiceCloneAndRequestedUpgrade,
585    #[serde(rename = "pipeline-error-eleven-labs-system-busy-and-requested-upgrade")]
586    PipelineErrorElevenLabsSystemBusyAndRequestedUpgrade,
587    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned")]
588    PipelineErrorElevenLabsVoiceNotFineTuned,
589    #[serde(rename = "pipeline-error-eleven-labs-invalid-api-key")]
590    PipelineErrorElevenLabsInvalidApiKey,
591    #[serde(rename = "pipeline-error-eleven-labs-invalid-voice-samples")]
592    PipelineErrorElevenLabsInvalidVoiceSamples,
593    #[serde(rename = "pipeline-error-eleven-labs-voice-disabled-by-owner")]
594    PipelineErrorElevenLabsVoiceDisabledByOwner,
595    #[serde(rename = "pipeline-error-eleven-labs-blocked-account-in-probation")]
596    PipelineErrorElevenLabsBlockedAccountInProbation,
597    #[serde(rename = "pipeline-error-eleven-labs-blocked-content-against-their-policy")]
598    PipelineErrorElevenLabsBlockedContentAgainstTheirPolicy,
599    #[serde(rename = "pipeline-error-eleven-labs-missing-samples-for-voice-clone")]
600    PipelineErrorElevenLabsMissingSamplesForVoiceClone,
601    #[serde(rename = "pipeline-error-eleven-labs-voice-not-fine-tuned-and-cannot-be-used")]
602    PipelineErrorElevenLabsVoiceNotFineTunedAndCannotBeUsed,
603    #[serde(rename = "pipeline-error-eleven-labs-voice-not-allowed-for-free-users")]
604    PipelineErrorElevenLabsVoiceNotAllowedForFreeUsers,
605    #[serde(rename = "pipeline-error-eleven-labs-500-server-error")]
606    PipelineErrorElevenLabs500ServerError,
607    #[serde(rename = "pipeline-error-eleven-labs-max-character-limit-exceeded")]
608    PipelineErrorElevenLabsMaxCharacterLimitExceeded,
609    #[serde(
610        rename = "pipeline-error-eleven-labs-blocked-voice-potentially-against-terms-of-service-and-awaiting-verification"
611    )]
612    PipelineErrorElevenLabsBlockedVoicePotentiallyAgainstTermsOfServiceAndAwaitingVerification,
613    #[serde(rename = "pipeline-error-playht-request-timed-out")]
614    PipelineErrorPlayhtRequestTimedOut,
615    #[serde(rename = "pipeline-error-playht-invalid-voice")]
616    PipelineErrorPlayhtInvalidVoice,
617    #[serde(rename = "pipeline-error-playht-unexpected-error")]
618    PipelineErrorPlayhtUnexpectedError,
619    #[serde(rename = "pipeline-error-playht-out-of-credits")]
620    PipelineErrorPlayhtOutOfCredits,
621    #[serde(rename = "pipeline-error-playht-invalid-emotion")]
622    PipelineErrorPlayhtInvalidEmotion,
623    #[serde(rename = "pipeline-error-playht-voice-must-be-a-valid-voice-manifest-uri")]
624    PipelineErrorPlayhtVoiceMustBeAValidVoiceManifestUri,
625    #[serde(rename = "pipeline-error-playht-401-unauthorized")]
626    PipelineErrorPlayht401Unauthorized,
627    #[serde(rename = "pipeline-error-playht-403-forbidden-out-of-characters")]
628    PipelineErrorPlayht403ForbiddenOutOfCharacters,
629    #[serde(rename = "pipeline-error-playht-403-forbidden-api-access-not-available")]
630    PipelineErrorPlayht403ForbiddenApiAccessNotAvailable,
631    #[serde(rename = "pipeline-error-playht-429-exceeded-quota")]
632    PipelineErrorPlayht429ExceededQuota,
633    #[serde(rename = "pipeline-error-playht-502-gateway-error")]
634    PipelineErrorPlayht502GatewayError,
635    #[serde(rename = "pipeline-error-playht-504-gateway-error")]
636    PipelineErrorPlayht504GatewayError,
637    #[serde(rename = "pipeline-error-tavus-video-failed")]
638    PipelineErrorTavusVideoFailed,
639    #[serde(rename = "pipeline-error-custom-transcriber-failed")]
640    PipelineErrorCustomTranscriberFailed,
641    #[serde(rename = "pipeline-error-11labs-transcriber-failed")]
642    PipelineError11labsTranscriberFailed,
643    #[serde(rename = "pipeline-error-deepgram-returning-403-model-access-denied")]
644    PipelineErrorDeepgramReturning403ModelAccessDenied,
645    #[serde(rename = "pipeline-error-deepgram-returning-401-invalid-credentials")]
646    PipelineErrorDeepgramReturning401InvalidCredentials,
647    #[serde(rename = "pipeline-error-deepgram-returning-404-not-found")]
648    PipelineErrorDeepgramReturning404NotFound,
649    #[serde(
650        rename = "pipeline-error-deepgram-returning-400-no-such-model-language-tier-combination"
651    )]
652    PipelineErrorDeepgramReturning400NoSuchModelLanguageTierCombination,
653    #[serde(rename = "pipeline-error-deepgram-returning-500-invalid-json")]
654    PipelineErrorDeepgramReturning500InvalidJson,
655    #[serde(rename = "pipeline-error-deepgram-returning-502-network-error")]
656    PipelineErrorDeepgramReturning502NetworkError,
657    #[serde(rename = "pipeline-error-deepgram-returning-502-bad-gateway-ehostunreach")]
658    PipelineErrorDeepgramReturning502BadGatewayEhostunreach,
659    #[serde(rename = "silence-timed-out")]
660    SilenceTimedOut,
661    #[serde(rename = "sip-gateway-failed-to-connect-call")]
662    SipGatewayFailedToConnectCall,
663    #[serde(rename = "twilio-failed-to-connect-call")]
664    TwilioFailedToConnectCall,
665    #[serde(rename = "twilio-reported-customer-misdialed")]
666    TwilioReportedCustomerMisdialed,
667    #[serde(rename = "vonage-rejected")]
668    VonageRejected,
669    #[serde(rename = "voicemail")]
670    Voicemail,
671}
672
673impl Default for EndedReason {
674    fn default() -> EndedReason {
675        Self::AssistantNotValid
676    }
677}