canic_host/deployment_truth/model/artifact/
mod.rs1use super::inventory::DeploymentObservationGapV1;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
8pub struct RoleArtifactManifestV1 {
9 pub schema_version: u32,
10 pub manifest_id: String,
11 pub network: String,
12 pub artifact_root: Option<String>,
13 pub role_artifacts: Vec<RoleArtifactV1>,
14 pub unresolved_artifacts: Vec<DeploymentObservationGapV1>,
15}
16
17#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
21pub struct RoleArtifactV1 {
22 pub role: String,
23 pub source: ArtifactSourceV1,
24 pub build_profile: String,
25 pub wasm_path: Option<String>,
26 pub wasm_gz_path: Option<String>,
27 pub wasm_gz_size_bytes: Option<u64>,
28 pub wasm_sha256: Option<String>,
29 pub wasm_gz_sha256: Option<String>,
30 pub wasm_gz_sha256_source: Option<ArtifactDigestSourceV1>,
31 pub observed_wasm_gz_file_sha256: Option<String>,
32 pub observed_wasm_gz_file_sha256_source: Option<ArtifactDigestSourceV1>,
33 pub installed_module_hash: Option<String>,
34 pub candid_path: Option<String>,
35 pub candid_sha256: Option<String>,
36 pub raw_config_sha256: Option<String>,
37 pub canonical_embedded_config_sha256: Option<String>,
38 pub embedded_topology_sha256: Option<String>,
39 pub builder_version: Option<String>,
40 pub rust_toolchain: Option<String>,
41 pub package_version: Option<String>,
42}
43
44#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
48pub enum ArtifactDigestSourceV1 {
49 ReleaseSetManifest,
50 ObservedFileDigest,
51 InstalledModuleHash,
52}
53
54#[derive(Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
58pub enum ArtifactSourceV1 {
59 LocalBuild,
60 ReleaseSet,
61 WasmStore,
62 External,
63 Unknown,
64}
65
66#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
70pub struct ObservedArtifactV1 {
71 pub role: String,
72 pub artifact_path: String,
73 pub file_sha256: Option<String>,
74 pub file_sha256_source: Option<ArtifactDigestSourceV1>,
75 pub payload_sha256: Option<String>,
76 pub payload_size_bytes: Option<u64>,
77 pub source: ArtifactSourceV1,
78}