harmos_domain/operations/host/
mod.rs1mod payloads;
13
14pub use payloads::*;
17
18use std::time::Duration;
22use crate::operations::{Contract, OperationPolicy, RestartPolicy, RetryPolicy, Visibility};
26use crate::plugin::Grant;
27
28pub const POLICY: OperationPolicy = OperationPolicy {
31 timeout: Duration::from_secs(30),
32 attempt_timeout: Duration::from_secs(30),
33 retries: RetryPolicy::Never,
34 restart: RestartPolicy::Never,
35};
36
37crate::declare!(Catalog {
40 id: "host.catalog",
41 version: 1,
42 policy: POLICY,
43 response: CatalogPage,
44 description: "Page live operation contracts or the schemas, streams and objects storage holds durably",
45 visibility: Visibility::Shared,
46 grpc: ("harmos.host.v1", "Host", "Catalog"),
47 grant: Catalog::required_grant,
48});
49
50#[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)]
56pub struct DiscoveredOperation {
57 pub owner: crate::Identifier,
58 pub generation: u64,
59 pub contract: Contract,
60 pub grants: Vec<Grant>,
61 pub conditional_access: bool,
62 pub grpc_available: bool,
63}
64
65