use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AgentImportJob {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "status")]
pub status: Status,
#[serde(
rename = "success",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub success: Option<Option<bool>>,
#[serde(rename = "message", skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "startedAt", skip_serializing_if = "Option::is_none")]
pub started_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
pub updated_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "finishedAt", skip_serializing_if = "Option::is_none")]
pub finished_at: Option<chrono::DateTime<chrono::FixedOffset>>,
#[serde(rename = "progress", skip_serializing_if = "Option::is_none")]
pub progress: Option<Box<models::AgentImportJobProgress>>,
#[serde(rename = "result", skip_serializing_if = "Option::is_none")]
pub result: Option<Box<models::AgentImportValidationResults>>,
#[serde(rename = "error", skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
}
impl AgentImportJob {
pub fn new(id: String, status: Status) -> AgentImportJob {
AgentImportJob {
id,
status,
success: None,
message: None,
created_at: None,
started_at: None,
updated_at: None,
finished_at: None,
progress: None,
result: None,
error: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "queued")]
Queued,
#[serde(rename = "running")]
Running,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "failed")]
Failed,
}
impl Default for Status {
fn default() -> Status {
Self::Queued
}
}