gproxy_protocol/openai/create_image_edit/
request.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::openai::create_image_edit::types::{
6 HttpMethod, OpenAiImageBackground, OpenAiImageEditInputFidelity, OpenAiImageEditInputImage,
7 OpenAiImageEditModel, OpenAiImageEditQuality, OpenAiImageEditSize, OpenAiImageModeration,
8 OpenAiImageOutputFormat,
9};
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13pub struct OpenAiCreateImageEditRequest {
14 pub method: HttpMethod,
16 pub path: PathParameters,
18 pub query: QueryParameters,
20 pub headers: RequestHeaders,
22 pub body: RequestBody,
24}
25
26impl Default for OpenAiCreateImageEditRequest {
27 fn default() -> Self {
28 Self {
29 method: HttpMethod::Post,
30 path: PathParameters::default(),
31 query: QueryParameters::default(),
32 headers: RequestHeaders::default(),
33 body: RequestBody::default(),
34 }
35 }
36}
37
38#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
40pub struct PathParameters {}
41
42#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
44pub struct QueryParameters {}
45
46#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
48pub struct RequestHeaders {
49 #[serde(flatten, default, skip_serializing_if = "BTreeMap::is_empty")]
50 pub extra: BTreeMap<String, String>,
51}
52
53#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
55pub struct RequestBody {
56 pub images: Vec<OpenAiImageEditInputImage>,
58 pub prompt: String,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
62 pub background: Option<OpenAiImageBackground>,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub input_fidelity: Option<OpenAiImageEditInputFidelity>,
66 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub mask: Option<OpenAiImageEditInputImage>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub model: Option<OpenAiImageEditModel>,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub moderation: Option<OpenAiImageModeration>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub n: Option<u32>,
78 #[serde(default, skip_serializing_if = "Option::is_none")]
80 pub output_compression: Option<u8>,
81 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub output_format: Option<OpenAiImageOutputFormat>,
84 #[serde(default, skip_serializing_if = "Option::is_none")]
86 pub partial_images: Option<u32>,
87 #[serde(default, skip_serializing_if = "Option::is_none")]
89 pub quality: Option<OpenAiImageEditQuality>,
90 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub size: Option<OpenAiImageEditSize>,
93 #[serde(default, skip_serializing_if = "Option::is_none")]
95 pub stream: Option<bool>,
96 #[serde(default, skip_serializing_if = "Option::is_none")]
98 pub user: Option<String>,
99}