use candid::Principal;
use canic_contracts::ids::SubnetId;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CapacityImportInfrastructureRecord {
pub kind: CapacityImportInfrastructureKind,
pub principal: Principal,
pub subnet: SubnetId,
pub controllers: Vec<Principal>,
pub module_sha256: [u8; 32],
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub enum CapacityImportInfrastructureKind {
Coordinator,
Root,
Store { root: Principal },
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct CapacityImportAdmissionRecord {
pub infrastructure: Vec<CapacityImportInfrastructureRecord>,
pub registry_candid_hex: String,
pub declarations_toml: String,
pub declarations_sha256: [u8; 32],
}