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 {}