use crate::fleet_ensure::{
model::{
capacity_import::CapacityImportSourceBinding,
capacity_import::survey::CapacityImportSampleRecord,
release::{FleetReleaseAccountRecord, FleetReleaseAuthority},
},
view::capacity_import::CapacityImportDestinationView,
};
use candid::Principal;
use std::collections::{BTreeMap, BTreeSet};
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseInventoryView {
pub children: BTreeMap<Principal, BTreeSet<Principal>>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleasePhysicalSourceView {
pub sample: CapacityImportSampleRecord,
pub snapshots: Vec<Vec<u8>>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseSourceView {
pub binding: CapacityImportSourceBinding,
pub snapshots: Vec<Vec<u8>>,
pub cycles: u128,
pub reserved_cycles: u128,
pub maximum_call_debit_cycles: u128,
pub required_paid_calls: u32,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseOwnerView {
pub owner: Principal,
pub children: Vec<Principal>,
pub producers_quiescent: bool,
pub unresolved_operations: Vec<[u8; 32]>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseObservation {
pub authority: FleetReleaseAuthority,
pub sources: Vec<FleetReleaseSourceView>,
pub owners: Vec<FleetReleaseOwnerView>,
pub accounts: Vec<FleetReleaseAccountRecord>,
pub destinations: Vec<CapacityImportDestinationView>,
}