clia_async_openai/types/realtime/
response_resource.rs1use serde::{Deserialize, Serialize};
2
3use super::item::Item;
4
5#[derive(Debug, Serialize, Deserialize, Clone)]
6pub struct Usage {
7 pub total_tokens: u32,
8 pub input_tokens: u32,
9 pub output_tokens: u32,
10}
11
12#[derive(Debug, Serialize, Deserialize, Clone)]
13#[serde(rename_all = "snake_case")]
14pub enum ResponseStatus {
15 InProgress,
16 Completed,
17 Cancelled,
18 Failed,
19 Incomplete,
20}
21
22#[derive(Debug, Serialize, Deserialize, Clone)]
23pub struct FailedError {
24 pub code: String,
25 pub message: String,
26}
27
28#[derive(Debug, Serialize, Deserialize, Clone)]
29#[serde(rename_all = "snake_case")]
30pub enum IncompleteReason {
31 Interruption,
32 MaxOutputTokens,
33 ContentFilter,
34}
35
36#[derive(Debug, Serialize, Deserialize, Clone)]
37#[serde(tag = "type")]
38pub enum ResponseStatusDetail {
39 #[serde(rename = "incomplete")]
40 Incomplete { reason: IncompleteReason },
41 #[serde(rename = "failed")]
42 Failed { error: Option<FailedError> },
43}
44
45#[derive(Debug, Serialize, Deserialize, Clone)]
46pub struct ResponseResource {
47 pub id: String,
49 pub object: String,
51 pub status: ResponseStatus,
53 pub status_details: Option<ResponseStatusDetail>,
55 pub output: Vec<Item>,
57 pub usage: Option<Usage>,
59}