gproxy_protocol/protocol/openai/video/
responses.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use super::super::common::Extra;
6use super::{
7 VideoDeletedObjectType, VideoListObjectType, VideoModelId, VideoObjectType, VideoSize,
8 VideoStatus,
9};
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
12#[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<VideoCreateError>,
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: String,
30 pub size: VideoSize,
31 pub status: VideoStatus,
32 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
33 pub extra: Extra,
34}
35
36#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
37#[non_exhaustive]
38pub struct VideoCreateError {
39 pub code: String,
40 pub message: String,
41 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
42 pub extra: Extra,
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
46#[non_exhaustive]
47pub struct VideoListResponse {
48 pub data: Vec<Video>,
49 #[serde(skip_serializing_if = "Option::is_none")]
50 pub object: Option<VideoListObjectType>,
51 #[serde(skip_serializing_if = "Option::is_none")]
52 pub has_more: Option<bool>,
53 #[serde(skip_serializing_if = "Option::is_none")]
54 pub last_id: Option<String>,
55 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
56 pub extra: Extra,
57}
58
59#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
60#[non_exhaustive]
61pub struct VideoDeleteResponse {
62 pub id: String,
63 pub deleted: bool,
64 pub object: VideoDeletedObjectType,
65 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
66 pub extra: Extra,
67}
68
69#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
70#[non_exhaustive]
71pub struct VideoCharacter {
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub id: Option<String>,
74 pub created_at: u64,
75 #[serde(skip_serializing_if = "Option::is_none")]
76 pub name: Option<String>,
77 #[serde(default, flatten, skip_serializing_if = "BTreeMap::is_empty")]
78 pub extra: Extra,
79}