1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Call {
16 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
18 pub r#type: Option<Type>,
19 #[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 #[serde(rename = "phoneCallProvider", skip_serializing_if = "Option::is_none")]
26 pub phone_call_provider: Option<PhoneCallProvider>,
27 #[serde(rename = "phoneCallTransport", skip_serializing_if = "Option::is_none")]
29 pub phone_call_transport: Option<PhoneCallTransport>,
30 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
32 pub status: Option<Status>,
33 #[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 #[serde(rename = "id")]
40 pub id: String,
41 #[serde(rename = "orgId")]
43 pub org_id: String,
44 #[serde(rename = "createdAt")]
46 pub created_at: String,
47 #[serde(rename = "updatedAt")]
49 pub updated_at: String,
50 #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
52 pub started_at: Option<String>,
53 #[serde(rename = "endedAt", skip_serializing_if = "Option::is_none")]
55 pub ended_at: Option<String>,
56 #[serde(rename = "cost", skip_serializing_if = "Option::is_none")]
58 pub cost: Option<f64>,
59 #[serde(rename = "costBreakdown", skip_serializing_if = "Option::is_none")]
61 pub cost_breakdown: Option<Box<models::CostBreakdown>>,
62 #[serde(rename = "artifactPlan", skip_serializing_if = "Option::is_none")]
64 pub artifact_plan: Option<Box<models::ArtifactPlan>>,
65 #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
67 pub analysis: Option<Box<models::Analysis>>,
68 #[serde(rename = "monitor", skip_serializing_if = "Option::is_none")]
70 pub monitor: Option<Box<models::Monitor>>,
71 #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
73 pub artifact: Option<Box<models::Artifact>>,
74 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
76 pub transport: Option<Box<models::Transport>>,
77 #[serde(rename = "phoneCallProviderId", skip_serializing_if = "Option::is_none")]
79 pub phone_call_provider_id: Option<String>,
80 #[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
82 pub assistant_id: Option<String>,
83 #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
85 pub assistant: Option<Box<models::CreateAssistantDto>>,
86 #[serde(rename = "assistantOverrides", skip_serializing_if = "Option::is_none")]
88 pub assistant_overrides: Option<Box<models::AssistantOverrides>>,
89 #[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
91 pub squad_id: Option<String>,
92 #[serde(rename = "squad", skip_serializing_if = "Option::is_none")]
94 pub squad: Option<Box<models::CreateSquadDto>>,
95 #[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
97 pub phone_number_id: Option<String>,
98 #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
100 pub phone_number: Option<Box<models::ImportTwilioPhoneNumberDto>>,
101 #[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
103 pub customer_id: Option<String>,
104 #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
106 pub customer: Option<Box<models::CreateCustomerDto>>,
107 #[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#[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#[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#[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#[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#[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