canic_host/deployment_truth/promotion/error/
source.rs1use crate::deployment_truth::RoleArtifactSourceKindV1;
2use thiserror::Error as ThisError;
3
4#[derive(Debug, ThisError)]
8pub enum PromotionArtifactSourceError {
9 #[error("promotion artifact source is missing required field: {field}")]
10 MissingRequiredField { field: &'static str },
11 #[error("promotion artifact source field {field} must be a lowercase sha256 hex digest")]
12 InvalidSha256Digest { field: &'static str },
13 #[error("promotion artifact source kind {kind:?} requires a digest pin")]
14 MissingDigestPin { kind: RoleArtifactSourceKindV1 },
15 #[error("promotion artifact source kind {kind:?} cannot carry previous receipt kind")]
16 UnexpectedPreviousReceiptKind { kind: RoleArtifactSourceKindV1 },
17 #[error(
18 "promotion artifact source kind PreviousReceiptArtifact requires an eligible receipt kind"
19 )]
20 MissingPreviousReceiptKind,
21 #[error(
22 "promotion artifact source kind PreviousReceiptArtifact requires a source receipt lineage digest"
23 )]
24 MissingPreviousReceiptLineageDigest,
25 #[error("promotion artifact source kind {kind:?} cannot carry source receipt lineage digest")]
26 UnexpectedPreviousReceiptLineageDigest { kind: RoleArtifactSourceKindV1 },
27}