use chio_kernel::SignedExecutionNonce;
use serde::{Deserialize, Serialize};
use crate::{GuardEvidence, HttpReceipt, Verdict};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EvaluateResponse {
pub verdict: Verdict,
pub receipt: HttpReceipt,
#[serde(default)]
pub evidence: Vec<GuardEvidence>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub execution_nonce: Option<SignedExecutionNonce>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VerifyReceiptResponse {
pub valid: bool,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum SidecarStatus {
Healthy,
Degraded,
Unhealthy,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HealthResponse {
pub status: SidecarStatus,
pub version: String,
}