Skip to main content

canic_host/deployment_truth/model/plan/
mod.rs

1use super::artifact::RoleArtifactV1;
2use super::inventory::{
3    ExpectedCanisterV1, ExpectedPoolCanisterV1, VerifierReadinessExpectationV1,
4};
5use serde::{Deserialize, Serialize};
6
7///
8/// DeploymentPlanV1
9///
10#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
11pub struct DeploymentPlanV1 {
12    pub schema_version: u32,
13    pub plan_id: String,
14    pub deployment_identity: DeploymentIdentityV1,
15    pub trust_domain: TrustDomainV1,
16    pub fleet_template: String,
17    pub runtime_variant: String,
18    pub authority_profile: AuthorityProfileV1,
19    pub role_artifacts: Vec<RoleArtifactV1>,
20    pub expected_canisters: Vec<ExpectedCanisterV1>,
21    pub expected_pool: Vec<ExpectedPoolCanisterV1>,
22    pub expected_verifier_readiness: VerifierReadinessExpectationV1,
23    pub unresolved_assumptions: Vec<DeploymentAssumptionV1>,
24}
25
26///
27/// DeploymentIdentityV1
28///
29#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
30pub struct DeploymentIdentityV1 {
31    pub deployment_name: String,
32    pub network: String,
33    pub root_principal: Option<String>,
34    pub authority_profile_hash: Option<String>,
35    pub role_topology_hash: Option<String>,
36    pub deployment_manifest_digest: Option<String>,
37    pub canonical_runtime_config_digest: Option<String>,
38    pub role_embedded_config_set_digest: Option<String>,
39    pub artifact_set_digest: Option<String>,
40    pub pool_identity_set_digest: Option<String>,
41    pub canic_version: Option<String>,
42    pub ic_memory_version: Option<String>,
43}
44
45///
46/// TrustDomainV1
47///
48#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
49pub struct TrustDomainV1 {
50    pub root_trust_anchor: Option<String>,
51    pub migration_from: Option<String>,
52}
53
54///
55/// AuthorityProfileV1
56///
57#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
58pub struct AuthorityProfileV1 {
59    pub profile_id: String,
60    pub expected_controllers: Vec<String>,
61    pub staging_controllers: Vec<String>,
62    pub emergency_controllers: Vec<String>,
63}
64
65///
66/// DeploymentAssumptionV1
67///
68#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
69pub struct DeploymentAssumptionV1 {
70    pub key: String,
71    pub description: String,
72}