use serde::{Deserialize, Serialize};
use serde_json::Value;
use uuid::Uuid;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum RunStatus {
Pending,
Running,
Succeeded,
PartialFailure,
Failed,
Cancelled,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct NewRun {
pub policies: Value,
pub graph: Value,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub config: Option<Value>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RunResult {
pub run_id: Uuid,
pub detection: Value,
pub evaluation: Value,
pub summaries: Vec<Value>,
pub audits: Vec<Value>,
pub redaction_maps: Vec<Value>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RunDetail {
#[serde(flatten)]
pub run: Value,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RunSummary {
pub id: Uuid,
#[serde(flatten)]
pub extra: Value,
}