use candid::Principal;
use serde::Serialize;
#[derive(Clone, Debug, Serialize)]
pub struct LocalCanisterView {
pub name: String,
pub allocation_role: String,
pub canister_id: Option<Principal>,
pub subnet_id: Principal,
pub exists: bool,
pub native_cycles: String,
}
#[derive(Clone, Debug, Serialize)]
pub struct LocalFleetView {
pub schema_version: u16,
pub session_id: String,
pub name: String,
pub environment: String,
pub gateway: String,
pub root_key_der_hex: String,
pub application_subnets: Vec<Principal>,
pub maximum_canisters: u16,
pub canister_memory_bytes: u64,
pub simulated_time_ns: String,
pub canisters: Vec<LocalCanisterView>,
}
#[derive(Clone, Debug, Serialize)]
pub struct LocalFleetDiscoveryView {
pub local: LocalFleetView,
pub fleet: String,
pub roles: Vec<LocalRoleView>,
}
#[derive(Clone, Debug, Serialize)]
pub struct LocalRoleView {
pub canister_id: Principal,
pub role: Option<String>,
pub parent_canister_id: Option<String>,
pub subnet_id: Principal,
pub module_sha256: Option<String>,
}
pub struct LocalRootInstallationView {
pub name: String,
pub canister_id: Principal,
pub operator: Principal,
pub wasm: Vec<u8>,
pub wasm_sha256: String,
pub arguments: Vec<u8>,
pub arguments_sha256: String,
pub authority: canic_contracts::dto::fleet_subnet_root::FleetSubnetRootAuthority,
}
pub struct LocalControllersView {
pub canister_id: Principal,
pub operator: Principal,
pub controllers: Vec<Principal>,
}