helm-schema-k8s 0.0.4

Generate an accurate JSON schema for any helm chart
Documentation
//! Kubernetes / CRD schema providers.
//!
//! Composed from these cross-cutting modules:
//!   - [`fetch`]: HTTP boundary (`HttpFetcher` trait + `UreqFetcher`).
//!   - [`cache`]: per-source layout, marker-based invalidation,
//!     negative cache.
//!   - [`diagnostic`]: typed `Diagnostic` enum + `DiagnosticSink`.
//!   - [`lookup`]: `K8sSchemaProvider` trait, `ProviderLookupResult`,
//!     `ChainLookupOutcome`, `Chain`.
//!   - [`inference`]: Feature D apiVersion guessing.
//!
//! The per-provider modules ([`kubernetes_openapi`], [`crds_catalog`],
//! [`local_override`], [`local_schema_universe`]) are slim composers of the above.

/// Classification of built-in Kubernetes API groups.
pub mod builtin_groups;
/// Persistent cache layout and negative-cache primitives.
pub mod cache;
mod cache_write;
/// Provider for default and mirrored CRD catalogs.
pub mod crds_catalog;
/// Typed user-facing diagnostics and sinks.
pub mod diagnostic;
mod doc_backed_schema;
/// HTTP transport abstraction used by fetch-on-miss providers.
pub mod fetch;
mod filename;
/// Bounded `apiVersion` inference and its evidence types.
pub mod inference;
/// Versioned `Kubernetes OpenAPI` provider.
pub mod kubernetes_openapi;
/// User-configured local schema override provider.
pub mod local_override;
/// Chart-local CRD schema universe and provider.
pub mod local_schema_universe;
/// Provider-chain lookup contracts, traces, and outcomes.
pub mod lookup;
mod metadata_enrichment;
mod mirror_chain;
mod schema_doc;
mod source_cache;

pub use builtin_groups::is_k8s_builtin_group;
pub use cache::{
    CACHE_LAYOUT_VERSION, LAYOUT_MARKER_FILENAME, LayoutChecker, NegativeCache, default_source_id,
    source_id_for_url,
};
pub use crds_catalog::CrdsCatalogSchemaProvider;
pub use diagnostic::{
    Diagnostic, DiagnosticKey, DiagnosticSink, format_diagnostic_json, format_diagnostic_text,
};
pub use fetch::{FetchError, HttpFetcher};
pub use filename::ordered_api_versions_for_resource;
pub use inference::{ApiVersionCandidate, ApiVersionInferenceOutcome, InferenceSource};
pub use kubernetes_openapi::{K8sVersionChain, KubernetesJsonSchemaProvider};
pub use local_override::LocalSchemaProvider;
pub use local_schema_universe::{
    ChartLocalCrdSchemaProvider, LocalResourceSchema, LocalSchemaUniverse,
    resource_schemas_from_crd_document_with_source,
};
pub use lookup::{
    Chain, K8sSchemaProvider, LookupTrace, LookupTraceEntry, LookupTraceOutcome,
    ProviderLookupResult, ProviderOrigin, ProviderSchemaFragment, ProviderSchemaSource,
    ProviderSourceFragment, SourceProbeTraceOutcome, TracedApiPresenceOutcome, TracedLookupOutcome,
};

#[cfg(test)]
#[path = "tests/lib.rs"]
mod tests;