1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
5#[serde(deny_unknown_fields)]
6pub struct CreateImageRequest {
7 pub prompt: String,
8 #[serde(default, skip_serializing_if = "Option::is_none")]
9 pub model: Option<String>,
10 #[serde(default, skip_serializing_if = "Option::is_none")]
11 pub n: Option<u32>,
12 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub size: Option<String>,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub quality: Option<String>,
16 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub style: Option<String>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub response_format: Option<String>,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub user: Option<String>,
22}
23
24#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
26pub struct ImagesResponse {
27 pub created: u64,
28 pub data: Vec<Image>,
29}
30
31#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
33pub struct Image {
34 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub url: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub b64_json: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub revised_prompt: Option<String>,
40}