1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//! # engenho-types
//!
//! The typed Kubernetes resource catalog for engenho.
//!
//! Per `pleme-io/theory/ENGENHO.md` §II.1, every Kubernetes kind is a
//! `#[derive(KubeResource, TataraDomain)]` struct mechanically emitted by
//! `forge-gen` from upstream OpenAPI v3 (Pillar 12 — generation over
//! composition). The non-negotiable rule of this crate: **no hand-authored
//! resource types**. If you reach for a hand-written struct, you are
//! violating the prime directive — extend the generator instead.
//!
//! ## Crate layout (target)
//!
//! ```text
//! engenho-types/
//! ├── src/
//! │ ├── lib.rs (this file — module roots + invariants)
//! │ ├── kind.rs (trait KubeResource — the typed contract)
//! │ ├── meta.rs (ObjectMeta, ListMeta, TypeMeta)
//! │ ├── api.rs (GroupVersionKind, GroupVersionResource)
//! │ ├── core_v1/ (generated — Pod, Service, Namespace, …)
//! │ ├── apps_v1/ (generated — Deployment, ReplicaSet, …)
//! │ ├── rbac_v1/ (generated — Role, ClusterRole, …)
//! │ ├── networking_v1/ (generated — NetworkPolicy, Ingress, …)
//! │ ├── storage_v1/ (generated — StorageClass, …)
//! │ ├── coordination_v1/ (generated — Lease, …)
//! │ ├── apiextensions_v1/ (generated — CustomResourceDefinition)
//! │ └── … (~16 generated kind groups total)
//! ├── vendor/
//! │ └── openapi/v1.34.0/ (BLAKE3-attested upstream schemas)
//! └── tests/
//! ├── openapi_roundtrip.rs (each kind ↔ openapi-spec/v3/*.json)
//! ├── bit_repro.rs (forge-gen regenerate == tree source)
//! └── lisp_authoring.rs (TataraDomain round-trip per kind)
//! ```
//!
//! ## Status — M0.0
//!
//! Crate scaffold only. The first kind (Pod) lands in M0.0.1 as a
//! hand-authored target shape, validated by `tests/openapi_roundtrip.rs`
//! against `vendor/openapi/v1.34.0/api__v1_openapi.json` — that hand-author
//! is **the generator's bullseye**, the byte-for-byte target that
//! `forge-gen --backend kube-resource` must emit by M0.0.3. The kind itself
//! is then deleted from the tree and replaced by the generator's output.
//!
//! ## Ship gate (theory/ENGENHO.md §XIII)
//!
//! Engenho ships ONLY when Sonobuoy `--mode=certified-conformance`
//! passes on Kubernetes 1.34 with zero skips. Until M4 lands, the kasou
//! + kikai bridge runs k3s v1.34 in production locally and supplies the
//! operator kubectl experience while engenho catches up.
pub use ;
// Generated kind modules land below this line. M0.0.1 introduces core_v1::Pod
// as the proof-of-pipeline; M0.0.3 replaces it with generator output; M0.0.4
// scales to ~150 kinds across ~16 groups.