pub mod funding;
pub mod pool;
pub mod provisioning;
pub mod receipts;
use crate::fleet_ensure::{
model::{
capacity_import::CapacityImportSourceBinding,
capacity_import::survey::CapacityImportSampleRecord,
release::{FleetReleaseAccountRecord, FleetReleaseAuthority},
},
view::capacity_import::CapacityImportDestinationView,
};
use candid::Principal;
use canic_control_plane::dto::{
fleet_coordinator::CoordinatorFundingStatusResponse,
root::{RootFundingReleaseResponse, RootPoolReleaseResponse, RootProvisioningReleaseResponse},
};
use std::collections::{BTreeMap, BTreeSet};
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseReceiptsView {
pub owners: BTreeMap<Principal, Vec<canic_core::dto::release_receipts::ReplayReleaseResponse>>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseProvisioningView {
pub roots: Vec<FleetReleaseRootProvisioningView>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseRootProvisioningView {
pub root: Principal,
pub pages: Vec<RootProvisioningReleaseResponse>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleasePoolView {
pub roots: Vec<RootPoolReleaseResponse>,
}
#[derive(Clone, Debug)]
pub struct FleetReleaseFundingView {
pub coordinator: CoordinatorFundingStatusResponse,
pub roots: Vec<FleetReleaseRootFundingView>,
}
#[derive(Clone, Debug)]
pub struct FleetReleaseRootFundingView {
pub root: Principal,
pub pages: Vec<RootFundingReleaseResponse>,
}
#[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>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetReleaseIntentsView {
pub owners: BTreeMap<Principal, Vec<canic_core::dto::release_intents::IntentReleaseResponse>>,
}