use crate::cdk::types::Principal;
use crate::storage::stable::fleet_activation::{
ComponentRuntimeRecord, FleetActivationStateRecord, FleetCascadeManifestEntryRecord,
FleetCredentialManifestRecord, FleetSubnetRootAuthorityRecord,
FleetSubnetWasmStoreAuthorityRecord,
};
use crate::{
dto::{
component_registry::ComponentRuntimeStatusResponse,
fleet_activation::FleetActivationStatusResponse,
},
ids::FleetSubnetWasmStoreActivationAuthority,
};
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetActivationView {
pub state: FleetActivationStateRecord,
pub root_authority: Option<FleetSubnetRootAuthorityRecord>,
pub wasm_store_authority: Option<FleetSubnetWasmStoreAuthorityRecord>,
pub prepared_state_snapshot_hash: Option<[u8; 32]>,
pub prepared_topology_snapshot_hash: Option<[u8; 32]>,
pub cascade_manifest: Option<Vec<FleetCascadeManifestEntryRecord>>,
pub credential_manifests: Vec<FleetCredentialManifestRecord>,
pub component_runtime: Option<ComponentRuntimeRecord>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetActivationWasmStoreView {
pub pid: Principal,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetActivationWasmStoreAuthorityView {
pub authority: FleetSubnetWasmStoreActivationAuthority,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct FleetActivationTransition {
pub status: FleetActivationStatusResponse,
pub transitioned: bool,
pub application_init_args: Option<Vec<u8>>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ComponentRuntimeActivationTransition {
pub status: ComponentRuntimeStatusResponse,
pub transitioned: bool,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ApplicationStartupWork {
pub release: crate::model::caller_authority::CallerPublicationRecord,
pub arguments: Option<Vec<u8>>,
}