#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageCreateVariationParamsResponseFormat {
#[serde(rename = "url")]
Url,
#[serde(rename = "b64_json")]
B64Json,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageCreateVariationParamsSize {
#[serde(rename = "256x256")]
V256x256,
#[serde(rename = "512x512")]
V512x512,
#[serde(rename = "1024x1024")]
V1024x1024,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageCreateVariationParams {
pub image: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub n: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: Option<ImageCreateVariationParamsResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub size: Option<ImageCreateVariationParamsSize>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct UsageInputTokensDetails {
pub image_tokens: i64,
pub text_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct Usage {
pub input_tokens: i64,
pub input_tokens_details: UsageInputTokensDetails,
pub output_tokens: i64,
pub total_tokens: i64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditCompletedEventBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditCompletedEventOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditCompletedEventQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditCompletedEventSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageEditCompletedEvent {
pub b64_json: String,
pub background: ImageEditCompletedEventBackground,
pub created_at: i64,
pub output_format: ImageEditCompletedEventOutputFormat,
pub quality: ImageEditCompletedEventQuality,
pub size: ImageEditCompletedEventSize,
#[serde(rename = "type")]
pub type_: String,
pub usage: Usage,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseInputFidelity {
#[serde(rename = "high")]
High,
#[serde(rename = "low")]
Low,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "jpeg")]
Jpeg,
#[serde(rename = "webp")]
Webp,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseQuality {
#[serde(rename = "standard")]
Standard,
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseResponseFormat {
#[serde(rename = "url")]
Url,
#[serde(rename = "b64_json")]
B64Json,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditParamsBaseSize {
#[serde(rename = "256x256")]
V256x256,
#[serde(rename = "512x512")]
V512x512,
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageEditParamsBase {
pub image: serde_json::Value,
pub prompt: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub background: Option<ImageEditParamsBaseBackground>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_fidelity: Option<ImageEditParamsBaseInputFidelity>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub mask: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub n: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_compression: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_format: Option<ImageEditParamsBaseOutputFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub partial_images: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub quality: Option<ImageEditParamsBaseQuality>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: Option<ImageEditParamsBaseResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub size: Option<ImageEditParamsBaseSize>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditPartialImageEventBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditPartialImageEventOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditPartialImageEventQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageEditPartialImageEventSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageEditPartialImageEvent {
pub b64_json: String,
pub background: ImageEditPartialImageEventBackground,
pub created_at: i64,
pub output_format: ImageEditPartialImageEventOutputFormat,
pub partial_image_index: i64,
pub quality: ImageEditPartialImageEventQuality,
pub size: ImageEditPartialImageEventSize,
#[serde(rename = "type")]
pub type_: String,
}
pub type ImageEditStreamEvent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenCompletedEventBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenCompletedEventOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenCompletedEventQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenCompletedEventSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGenCompletedEvent {
pub b64_json: String,
pub background: ImageGenCompletedEventBackground,
pub created_at: i64,
pub output_format: ImageGenCompletedEventOutputFormat,
pub quality: ImageGenCompletedEventQuality,
pub size: ImageGenCompletedEventSize,
#[serde(rename = "type")]
pub type_: String,
pub usage: Usage,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenPartialImageEventBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenPartialImageEventOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenPartialImageEventQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenPartialImageEventSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGenPartialImageEvent {
pub b64_json: String,
pub background: ImageGenPartialImageEventBackground,
pub created_at: i64,
pub output_format: ImageGenPartialImageEventOutputFormat,
pub partial_image_index: i64,
pub quality: ImageGenPartialImageEventQuality,
pub size: ImageGenPartialImageEventSize,
#[serde(rename = "type")]
pub type_: String,
}
pub type ImageGenStreamEvent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseModeration {
#[serde(rename = "low")]
Low,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "jpeg")]
Jpeg,
#[serde(rename = "webp")]
Webp,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseQuality {
#[serde(rename = "standard")]
Standard,
#[serde(rename = "hd")]
Hd,
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
#[serde(rename = "auto")]
Auto,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseResponseFormat {
#[serde(rename = "url")]
Url,
#[serde(rename = "b64_json")]
B64Json,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseSize {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1536x1024")]
V1536x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "256x256")]
V256x256,
#[serde(rename = "512x512")]
V512x512,
#[serde(rename = "1792x1024")]
V1792x1024,
#[serde(rename = "1024x1792")]
V1024x1792,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageGenerateParamsBaseStyle {
#[serde(rename = "vivid")]
Vivid,
#[serde(rename = "natural")]
Natural,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ImageGenerateParamsBase {
pub prompt: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub background: Option<ImageGenerateParamsBaseBackground>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub moderation: Option<ImageGenerateParamsBaseModeration>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub n: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_compression: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_format: Option<ImageGenerateParamsBaseOutputFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub partial_images: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub quality: Option<ImageGenerateParamsBaseQuality>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: Option<ImageGenerateParamsBaseResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub size: Option<ImageGenerateParamsBaseSize>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub style: Option<ImageGenerateParamsBaseStyle>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub user: Option<String>,
}
pub type ImageGenerateParams = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImageModel {
#[serde(rename = "gpt-image-1.5")]
GptImage15,
#[serde(rename = "dall-e-2")]
DallE2,
#[serde(rename = "dall-e-3")]
DallE3,
#[serde(rename = "gpt-image-1")]
GptImage1,
#[serde(rename = "gpt-image-1-mini")]
GptImage1Mini,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct UsageOutputTokensDetails {
pub image_tokens: i64,
pub text_tokens: i64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImagesResponseBackground {
#[serde(rename = "transparent")]
Transparent,
#[serde(rename = "opaque")]
Opaque,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImagesResponseOutputFormat {
#[serde(rename = "png")]
Png,
#[serde(rename = "webp")]
Webp,
#[serde(rename = "jpeg")]
Jpeg,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImagesResponseQuality {
#[serde(rename = "low")]
Low,
#[serde(rename = "medium")]
Medium,
#[serde(rename = "high")]
High,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum ImagesResponseSize {
#[serde(rename = "1024x1024")]
V1024x1024,
#[serde(rename = "1024x1536")]
V1024x1536,
#[serde(rename = "1536x1024")]
V1536x1024,
}