ic_backup/model/application_ingress/
mod.rs1mod payload;
7mod request;
8pub use payload::{
9 ApplicationIngressPayload, MAX_APPLICATION_INGRESS_ARGUMENT_BYTES,
10 MAX_APPLICATION_INGRESS_METHOD_BYTES, MAX_APPLICATION_INGRESS_REPLY_BYTES,
11};
12pub use request::{ApplicationMutationRequest, ApplicationObservationRequest};
13
14use crate::model::{ic_observation::IcObservationRequestError, operation_plan::OperationPlanError};
15use thiserror::Error;
16
17#[derive(Debug, Error)]
19pub enum ApplicationIngressError {
20 #[error("invalid application ingress principal")]
22 InvalidPrincipal,
23 #[error("application ingress cannot target the management canister")]
25 ManagementPrincipal,
26 #[error("invalid application ingress method")]
28 InvalidMethod,
29 #[error("application ingress arguments too large")]
31 ArgumentsTooLarge,
32 #[error("invalid application ingress reply limit")]
34 InvalidReplyLimit,
35 #[error("application ingress authority mismatch")]
37 AuthorityMismatch,
38 #[error("application ingress target mismatch")]
40 TargetMismatch,
41 #[error("application ingress payload mismatch")]
43 PayloadMismatch,
44 #[error("application ingress requires a pending mutation")]
46 NoPendingMutation,
47 #[error("application ingress mutation mismatch")]
49 MutationMismatch,
50 #[error("application ingress observation is pending")]
52 ObservationPending,
53 #[error(transparent)]
55 Observation(#[from] IcObservationRequestError),
56 #[error(transparent)]
58 Plan(#[from] OperationPlanError),
59}
60
61#[cfg(test)]
62mod tests;