gproxy_protocol/openai/create_image/
request.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::openai::create_image::types::{
6 HttpMethod, OpenAiImageBackground, OpenAiImageModel, OpenAiImageModeration,
7 OpenAiImageOutputFormat, OpenAiImageQuality, OpenAiImageResponseFormat, OpenAiImageSize,
8 OpenAiImageStyle,
9};
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
13pub struct OpenAiCreateImageRequest {
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 OpenAiCreateImageRequest {
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 prompt: String,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub background: Option<OpenAiImageBackground>,
61 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub model: Option<OpenAiImageModel>,
64 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub moderation: Option<OpenAiImageModeration>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub n: Option<u32>,
70 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub output_compression: Option<u8>,
73 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub output_format: Option<OpenAiImageOutputFormat>,
76 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub partial_images: Option<u32>,
79 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub quality: Option<OpenAiImageQuality>,
82 #[serde(default, skip_serializing_if = "Option::is_none")]
84 pub response_format: Option<OpenAiImageResponseFormat>,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub size: Option<OpenAiImageSize>,
88 #[serde(default, skip_serializing_if = "Option::is_none")]
90 pub stream: Option<bool>,
91 #[serde(default, skip_serializing_if = "Option::is_none")]
93 pub style: Option<OpenAiImageStyle>,
94 #[serde(default, skip_serializing_if = "Option::is_none")]
96 pub user: Option<String>,
97}