Skip to main content

made_core/ports/
ceremony_agent_status.rs

1use async_trait::async_trait;
2
3use crate::entities::CeremonyAgentStatus;
4use crate::error::DomainError;
5use crate::ports::{
6    CeremonyAgentActivityPage, CeremonyAgentActivityQuery, CeremonyAgentActivitySubscriptionPort,
7    CeremonyAgentStatusPage, CeremonyAgentStatusQuery,
8};
9use crate::value_objects::AuthorizationEvidence;
10
11#[async_trait]
12pub trait CeremonyAgentStatusPort: Send + Sync {
13    fn subscribe_activity(&self) -> Box<dyn CeremonyAgentActivitySubscriptionPort>;
14    async fn report(
15        &self,
16        status: CeremonyAgentStatus,
17        authorization: Option<AuthorizationEvidence>,
18    ) -> Result<CeremonyAgentStatus, DomainError>;
19    async fn get(
20        &self,
21        ceremony_id: &str,
22        agent_execution_id: &str,
23        authorization: Option<AuthorizationEvidence>,
24    ) -> Result<CeremonyAgentStatus, DomainError>;
25    async fn list(
26        &self,
27        query: CeremonyAgentStatusQuery,
28        authorization: Option<AuthorizationEvidence>,
29    ) -> Result<CeremonyAgentStatusPage, DomainError>;
30    async fn read_activity(
31        &self,
32        query: CeremonyAgentActivityQuery,
33        authorization: Option<AuthorizationEvidence>,
34    ) -> Result<CeremonyAgentActivityPage, DomainError>;
35}