mod client;
mod diff;
mod ordering;
mod resource;
mod state;
pub(crate) use client::is_known_cluster_scoped_gvk;
pub use client::{KubeClient, KubeRsClient, MockKubeClient};
pub use diff::DiffEngine;
pub use ordering::ResourceOrdering;
pub use resource::{extract_api_version, extract_gvk, extract_kind, extract_name, extract_namespace};
pub use resource::{ApplyOutcome, GroupVersionKind, ResourceKey};
pub use state::{KubernetesReleaseStorage, ReleaseInfo, ReleaseState, ReleaseStatus, ReleaseStorage};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct KubernetesResource {
#[serde(rename = "apiVersion")]
pub api_version: String,
pub kind: String,
pub metadata: ResourceMetadata,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceMetadata {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub namespace: Option<String>,
}