openits-types
SHAREDShared scalars & URN typedefs used across every service model.
Module
A small module with a clean import graph: service models import it; there is no required inheritance.
module openits-types {
namespace "urn:openits:yang:types";
// URN + scalar typedefs reused everywhere
typedef urn { type string { pattern "urn:.+"; } }
typedef percent { type decimal64 { range "0..100"; } }
typedef revision-date { type string { pattern "\d{4}-\d{2}-\d{2}"; } }
typedef ce-type { type string; } // CloudEvents type URI
}
Reuse
Reused by every service model. Because shared modules only add definitions and never change per-service semantics, updating one is backward-compatible: a consumer that doesn't import a new type simply doesn't see it.
Schema registry
Immutable and content-addressed like every module; cite the exact revision in ce-dataschema.