Skip to main content

canic_host/deployment_truth/promotion/error/
source.rs

1use crate::deployment_truth::RoleArtifactSourceKindV1;
2use thiserror::Error as ThisError;
3
4///
5/// PromotionArtifactSourceError
6///
7#[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}