k8_obj_core/
namespace.rs

1use serde::Deserialize;
2use serde::Serialize;
3
4use k8_obj_metadata::default_store_spec;
5use k8_obj_metadata::Crd;
6use k8_obj_metadata::CrdNames;
7use k8_obj_metadata::DefaultHeader;
8use k8_obj_metadata::Spec;
9use k8_obj_metadata::Status;
10
11const API: Crd = Crd {
12    group: "core",
13    version: "v1",
14    names: CrdNames {
15        kind: "Namespace",
16        plural: "namespaces",
17        singular: "namespace",
18    },
19};
20
21#[derive(Deserialize, Serialize, Debug, Default, Clone)]
22#[serde(rename_all = "camelCase")]
23pub struct NamespaceSpec {}
24
25impl Spec for NamespaceSpec {
26    type Status = NamespaceStatus;
27    type Header = DefaultHeader;
28    const NAME_SPACED: bool = false;
29
30    fn metadata() -> &'static Crd {
31        &API
32    }
33}
34
35default_store_spec!(NamespaceSpec, NamespaceStatus, "Namespace");
36
37#[derive(Deserialize, Serialize, PartialEq, Debug, Default, Clone)]
38#[serde(rename_all = "camelCase", default)]
39pub struct NamespaceStatus {
40    pub phase: String,
41}
42
43impl Status for NamespaceStatus {}