use crate::fleet_ensure::model::{
EnsureAction, FleetTerminalSourceRecord, completed_handoff::CompletedEstateCustodyRecord,
};
use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedPreparationReviewRecord {
pub schema_version: u16,
pub cli_release: String,
pub environment: String,
pub fleet: String,
pub operation_id: String,
pub source: FleetTerminalSourceRecord,
pub custody: CompletedEstateCustodyRecord,
pub source_artifacts: BTreeMap<String, String>,
pub actions: Vec<EnsureAction>,
pub inspection_roots: BTreeMap<String, Option<String>>,
pub source_accounting: CompletedSourceAccountingRecord,
pub maximum_attempts_per_action: u32,
pub maximum_observations_per_action: u32,
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub maximum_execution_burn_cycles: u128,
pub review_sha256: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedPreparationEffectRecord {
pub action_sha256: String,
pub submission_attempts: u32,
pub observation_attempts: u32,
pub applied: bool,
#[serde(deserialize_with = "crate::fleet_ensure::model::serialization::required_option")]
pub before: Option<CompletedPreparationBalanceRecord>,
#[serde(deserialize_with = "crate::fleet_ensure::model::serialization::required_option")]
pub after: Option<CompletedPreparationBalanceRecord>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedPreparationJournalRecord {
pub schema_version: u16,
pub review_sha256: String,
pub effects: Vec<CompletedPreparationEffectRecord>,
pub inspections: BTreeMap<String, CompletedPreparationInspectionRecord>,
pub prepared: bool,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedSourceAccountingRecord {
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub initial_native_cycles: u128,
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub recorded_funding_cycles: u128,
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub maximum_source_burn_cycles: u128,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedPreparationInspectionRecord {
pub attempts: u32,
#[serde(deserialize_with = "crate::fleet_ensure::model::serialization::required_option")]
pub balance: Option<CompletedPreparationBalanceRecord>,
}
#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CompletedPreparationBalanceRecord {
pub status: crate::fleet_ensure::model::CanisterRuntimeStatus,
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub native_cycles: u128,
#[serde(with = "crate::fleet_ensure::model::u128_text")]
pub reserved_cycles: u128,
}