Skip to main content

guestkit_job_spec/
lib.rs

1//! VM Operations Job Protocol - Type definitions and validation
2//!
3//! This crate provides the type definitions for the VM Operations Job Protocol v1.
4//! It supports serialization/deserialization and validation of job specifications.
5
6pub mod error;
7pub mod types;
8pub mod validation;
9pub mod builder;
10
11// Re-export main types
12pub use error::{JobError, JobResult};
13pub use types::{
14    Job, JobDocument, JobMetadata, ExecutionPolicy, Constraints,
15    Routing, Observability, Audit, Payload, WorkerCapabilities,
16    JobResult as JobResultType, ProgressEvent, JobStatus,
17    ExecutionSummary, JobOutputs, JobExecutionError, ExecutionMetrics,
18};
19pub use validation::JobValidator;
20pub use builder::JobBuilder;
21
22/// Protocol version
23pub const PROTOCOL_VERSION: &str = "1.0";
24
25/// Operation namespaces
26pub mod operations {
27    /// Guestkit operations
28    pub const GUESTKIT_INSPECT: &str = "guestkit.inspect";
29    pub const GUESTKIT_PROFILE: &str = "guestkit.profile";
30    pub const GUESTKIT_FIX: &str = "guestkit.fix";
31    pub const GUESTKIT_CONVERT: &str = "guestkit.convert";
32    pub const GUESTKIT_COMPARE: &str = "guestkit.compare";
33
34    /// hyper2kvm operations (future)
35    pub const HYPER2KVM_CONVERT: &str = "hyper2kvm.convert";
36    pub const HYPER2KVM_VALIDATE: &str = "hyper2kvm.validate";
37
38    /// System operations
39    pub const SYSTEM_HEALTH_CHECK: &str = "system.health-check";
40    pub const SYSTEM_CAPABILITY_PROBE: &str = "system.capability-probe";
41}
42
43#[cfg(test)]
44mod tests {
45    use super::*;
46
47    #[test]
48    fn test_protocol_version() {
49        assert_eq!(PROTOCOL_VERSION, "1.0");
50    }
51}