oas_document/lib.rs
1//! # oas-document
2//!
3//! OAS Identity Document types and validation for the Open Agent Specification.
4//!
5//! This crate provides the [`OasDocument`] type for representing, constructing,
6//! and validating OAS Identity Documents as defined in OAS Specification §5.
7//!
8//! ## Key Types
9//!
10//! - [`OasDocument`] — The core identity document
11//! - [`DocumentBuilder`](builder::DocumentBuilder) — Ergonomic document construction
12//! - [`DocumentProof`](proof_format::DocumentProof) — Ed25519Signature2020 proofs
13//! - [`LineageSection`](lineage_section::LineageSection) — Lineage chain data
14//! - [`ConformanceLevel`](conformance::ConformanceLevel) — L0/L1/L2 conformance
15//! - [`LifecycleStatus`](lifecycle::LifecycleStatus) — Entity lifecycle states
16//!
17//! ## Example
18//!
19//! ```
20//! use oas_document::builder::DocumentBuilder;
21//! use oas_document::conformance::ConformanceLevel;
22//! use oas_crypto::keypair::OasKeyPair;
23//!
24//! let keypair = OasKeyPair::generate();
25//! let doc = DocumentBuilder::new("did:oas:test:hmr:alice", "hmr")
26//! .controller("did:oas:test:hmr:alice")
27//! .conformance_level(ConformanceLevel::L1)
28//! .add_verification_method(&keypair)
29//! .name("Alice")
30//! .build_and_sign(&keypair, "2026-01-15T00:00:00Z")
31//! .unwrap();
32//!
33//! assert_eq!(doc.kind, "hmr");
34//! assert!(doc.proof.is_some());
35//! ```
36
37pub mod builder;
38pub mod calendar;
39pub mod compliance;
40pub mod conformance;
41pub mod contact;
42pub mod document;
43pub mod error;
44pub mod governance;
45pub mod interop;
46pub mod lifecycle;
47pub mod lineage_section;
48pub mod operational;
49pub mod pricing;
50pub mod profile;
51pub mod proof_format;
52pub mod relationships;
53pub mod reputation;
54pub mod service;
55pub mod verification_method;
56pub mod visibility;
57
58pub use document::OasDocument;
59pub use error::DocumentError;
60pub use governance::{
61 GovernancePolicy, GovernanceSection, GovernanceTransition, GovernanceTransitionProof,
62};