gproxy_protocol/openai/video/
response.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4use crate::openai::common::Rest;
5
6use super::{
7 VideoDeletedObjectType, VideoListObjectType, VideoModelId, VideoObjectType, VideoSize,
8 VideoStatus,
9};
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
12#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
13pub struct Video {
14 pub id: String,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub completed_at: Option<u64>,
17 pub created_at: u64,
18 #[serde(skip_serializing_if = "Option::is_none")]
19 pub error: Option<VideoError>,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub expires_at: Option<u64>,
22 pub model: VideoModelId,
23 pub object: VideoObjectType,
24 pub progress: u32,
25 #[serde(skip_serializing_if = "Option::is_none")]
26 pub prompt: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
28 pub remixed_from_video_id: Option<String>,
29 pub seconds: VideoSecondsValue,
30 pub size: VideoSize,
31 pub status: VideoStatus,
32 #[serde(default, flatten)]
33 pub rest: Rest,
34}
35
36#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum VideoSecondsValue {
39 String(String),
40 Raw(Value),
41}
42
43#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
44#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
45pub struct VideoError {
46 pub code: String,
47 pub message: String,
48 #[serde(default, flatten)]
49 pub rest: Rest,
50}
51
52#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
53#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
54pub struct VideoListResponse {
55 pub data: Vec<Video>,
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub object: Option<VideoListObjectType>,
58 #[serde(skip_serializing_if = "Option::is_none")]
59 pub has_more: Option<bool>,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub last_id: Option<String>,
62 #[serde(default, flatten)]
63 pub rest: Rest,
64}
65
66#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
67#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
68pub struct VideoDeleteResponse {
69 pub id: String,
70 pub deleted: bool,
71 pub object: VideoDeletedObjectType,
72 #[serde(default, flatten)]
73 pub rest: Rest,
74}
75
76#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
77#[cfg_attr(not(feature = "exhaustive"), non_exhaustive)]
78pub struct VideoCharacter {
79 pub id: String,
80 pub created_at: u64,
81 pub name: String,
82 #[serde(default, flatten)]
83 pub rest: Rest,
84}
85
86pub type VideoContent = Vec<u8>;