1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct Call {
17 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
19 pub r#type: Option<Type>,
20 #[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 #[serde(rename = "phoneCallProvider", skip_serializing_if = "Option::is_none")]
27 pub phone_call_provider: Option<PhoneCallProvider>,
28 #[serde(rename = "phoneCallTransport", skip_serializing_if = "Option::is_none")]
30 pub phone_call_transport: Option<PhoneCallTransport>,
31 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
33 pub status: Option<Status>,
34 #[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 #[serde(rename = "id")]
41 pub id: String,
42 #[serde(rename = "orgId")]
44 pub org_id: String,
45 #[serde(rename = "createdAt")]
47 pub created_at: String,
48 #[serde(rename = "updatedAt")]
50 pub updated_at: String,
51 #[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
53 pub started_at: Option<String>,
54 #[serde(rename = "endedAt", skip_serializing_if = "Option::is_none")]
56 pub ended_at: Option<String>,
57 #[serde(rename = "cost", skip_serializing_if = "Option::is_none")]
59 pub cost: Option<f64>,
60 #[serde(rename = "costBreakdown", skip_serializing_if = "Option::is_none")]
62 pub cost_breakdown: Option<models::CostBreakdown>,
63 #[serde(rename = "artifactPlan", skip_serializing_if = "Option::is_none")]
65 pub artifact_plan: Option<models::ArtifactPlan>,
66 #[serde(rename = "analysis", skip_serializing_if = "Option::is_none")]
68 pub analysis: Option<models::Analysis>,
69 #[serde(rename = "monitor", skip_serializing_if = "Option::is_none")]
71 pub monitor: Option<models::Monitor>,
72 #[serde(rename = "artifact", skip_serializing_if = "Option::is_none")]
74 pub artifact: Option<models::Artifact>,
75 #[serde(rename = "transport", skip_serializing_if = "Option::is_none")]
77 pub transport: Option<models::Transport>,
78 #[serde(
80 rename = "phoneCallProviderId",
81 skip_serializing_if = "Option::is_none"
82 )]
83 pub phone_call_provider_id: Option<String>,
84 #[serde(rename = "assistantId", skip_serializing_if = "Option::is_none")]
86 pub assistant_id: Option<String>,
87 #[serde(rename = "assistant", skip_serializing_if = "Option::is_none")]
89 pub assistant: Option<models::CreateAssistantDto>,
90 #[serde(rename = "assistantOverrides", skip_serializing_if = "Option::is_none")]
92 pub assistant_overrides: Option<models::AssistantOverrides>,
93 #[serde(rename = "squadId", skip_serializing_if = "Option::is_none")]
95 pub squad_id: Option<String>,
96 #[serde(rename = "squad", skip_serializing_if = "Option::is_none")]
98 pub squad: Option<models::CreateSquadDto>,
99 #[serde(rename = "phoneNumberId", skip_serializing_if = "Option::is_none")]
101 pub phone_number_id: Option<String>,
102 #[serde(rename = "phoneNumber", skip_serializing_if = "Option::is_none")]
104 pub phone_number: Option<models::ImportTwilioPhoneNumberDto>,
105 #[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
107 pub customer_id: Option<String>,
108 #[serde(rename = "customer", skip_serializing_if = "Option::is_none")]
110 pub customer: Option<models::CreateCustomerDto>,
111 #[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#[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#[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#[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#[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#[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}