use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use crate::error::OpenAIError;
use crate::spec::shared::ImageDetail;
#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder, PartialEq)]
#[builder(name = "ImageUrlArgs")]
#[builder(pattern = "mutable")]
#[builder(setter(into, strip_option), default)]
#[builder(derive(Debug))]
#[builder(build_fn(error = "OpenAIError"))]
pub struct ImageUrl {
/// Either a URL of the image or the base64 encoded image data.
pub url: String,
/// Specifies the detail level of the image. Learn more in the [Vision guide](https://platform.openai.com/docs/guides/vision/low-or-high-fidelity-image-understanding).
pub detail: Option<ImageDetail>,
}