Skip to main content

canic_host/deployment_truth/model/promotion/receipt/
mod.rs

1use super::super::{
2    DeploymentCommandResultV1, DeploymentExecutionStatusV1, DeploymentReceiptV1, RolePhaseResultV1,
3};
4use super::PromotionReadinessStatusV1;
5use super::source::PromotionArtifactLevelV1;
6use serde::{Deserialize, Serialize};
7
8///
9/// ArtifactPromotionExecutionReceiptV1
10///
11#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
12pub struct ArtifactPromotionExecutionReceiptV1 {
13    pub schema_version: u32,
14    pub receipt_id: String,
15    pub execution_receipt_digest: String,
16    pub artifact_promotion_plan_id: String,
17    pub artifact_promotion_plan_digest: String,
18    pub provenance_report_id: String,
19    pub provenance_report_digest: String,
20    pub provenance_status: PromotionReadinessStatusV1,
21    pub promoted_plan_id: String,
22    pub promotion_plan_lineage_digest: String,
23    pub operation_id: String,
24    pub operation_status: DeploymentExecutionStatusV1,
25    pub command_result: DeploymentCommandResultV1,
26    pub started_at: String,
27    pub finished_at: Option<String>,
28    pub deployment_receipt: DeploymentReceiptV1,
29    pub roles: Vec<RolePromotionExecutionReceiptV1>,
30}
31
32///
33/// RolePromotionExecutionReceiptV1
34///
35#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
36pub struct RolePromotionExecutionReceiptV1 {
37    pub role: String,
38    pub promotion_level: PromotionArtifactLevelV1,
39    pub materialization_evidence_id: Option<String>,
40    pub materialization_evidence_digest: Option<String>,
41    pub wasm_store_locator: Option<String>,
42    pub wasm_store_catalog_observation_digest: Option<String>,
43    pub role_phase_result: Option<RolePhaseResultV1>,
44    pub artifact_digest: Option<String>,
45    pub observed_module_hash_after: Option<String>,
46    pub canonical_embedded_config_sha256: Option<String>,
47}