#![allow(unused_imports)]
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct BatchErrors {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub data: Option<Vec<BatchError>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub object: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum BatchCreateParamsEndpoint {
#[serde(rename = "/v1/responses")]
V1Responses,
#[serde(rename = "/v1/chat/completions")]
V1ChatCompletions,
#[serde(rename = "/v1/embeddings")]
V1Embeddings,
#[serde(rename = "/v1/completions")]
V1Completions,
#[serde(rename = "/v1/moderations")]
V1Moderations,
#[serde(rename = "/v1/images/generations")]
V1ImagesGenerations,
#[serde(rename = "/v1/images/edits")]
V1ImagesEdits,
#[serde(rename = "/v1/videos")]
V1Videos,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct BatchCreateParams {
pub completion_window: String,
pub endpoint: BatchCreateParamsEndpoint,
pub input_file_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub output_expires_after: Option<OutputExpiresAfter>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputExpiresAfter {
pub anchor: String,
pub seconds: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct BatchError {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub line: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub param: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputTokensDetails {
pub cached_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct OutputTokensDetails {
pub reasoning_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct BatchUsage {
pub input_tokens: i64,
pub input_tokens_details: InputTokensDetails,
pub output_tokens: i64,
pub output_tokens_details: OutputTokensDetails,
pub total_tokens: i64,
}