use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct BatchJobOut {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "object", skip_serializing_if = "Option::is_none")]
pub object: Option<Object>,
#[serde(rename = "input_files")]
pub input_files: Vec<uuid::Uuid>,
#[serde(rename = "metadata", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub metadata: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "endpoint")]
pub endpoint: String,
#[serde(rename = "model", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub model: Option<Option<String>>,
#[serde(rename = "agent_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub agent_id: Option<Option<String>>,
#[serde(rename = "output_file", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub output_file: Option<Option<uuid::Uuid>>,
#[serde(rename = "error_file", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub error_file: Option<Option<uuid::Uuid>>,
#[serde(rename = "errors")]
pub errors: Vec<models::BatchError>,
#[serde(rename = "outputs", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub outputs: Option<Option<Vec<std::collections::HashMap<String, serde_json::Value>>>>,
#[serde(rename = "status")]
pub status: models::BatchJobStatus,
#[serde(rename = "created_at")]
pub created_at: i32,
#[serde(rename = "total_requests")]
pub total_requests: i32,
#[serde(rename = "completed_requests")]
pub completed_requests: i32,
#[serde(rename = "succeeded_requests")]
pub succeeded_requests: i32,
#[serde(rename = "failed_requests")]
pub failed_requests: i32,
#[serde(rename = "started_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub started_at: Option<Option<i32>>,
#[serde(rename = "completed_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub completed_at: Option<Option<i32>>,
}
impl BatchJobOut {
pub fn new(id: String, input_files: Vec<uuid::Uuid>, endpoint: String, errors: Vec<models::BatchError>, status: models::BatchJobStatus, created_at: i32, total_requests: i32, completed_requests: i32, succeeded_requests: i32, failed_requests: i32) -> BatchJobOut {
BatchJobOut {
id,
object: None,
input_files,
metadata: None,
endpoint,
model: None,
agent_id: None,
output_file: None,
error_file: None,
errors,
outputs: None,
status,
created_at,
total_requests,
completed_requests,
succeeded_requests,
failed_requests,
started_at: None,
completed_at: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Object {
#[serde(rename = "batch")]
Batch,
}
impl Default for Object {
fn default() -> Object {
Self::Batch
}
}