bootc_lib/
k8sapitypes.rs

1//! Subset of API definitions for selected Kubernetes API types.
2//! We avoid dragging in all of k8s-openapi because it's *huge*.
3
4use std::collections::BTreeMap;
5
6use schemars::JsonSchema;
7use serde::{Deserialize, Serialize};
8
9#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema)]
10#[serde(rename_all = "camelCase")]
11pub struct Resource {
12    pub api_version: String,
13    pub kind: String,
14    #[serde(default)]
15    pub metadata: ObjectMeta,
16}
17
18#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq, JsonSchema)]
19#[serde(rename_all = "camelCase")]
20pub struct ObjectMeta {
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub annotations: Option<BTreeMap<String, String>>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub labels: Option<BTreeMap<String, String>>,
25    #[serde(skip_serializing_if = "Option::is_none")]
26    pub name: Option<String>,
27    #[serde(skip_serializing_if = "Option::is_none")]
28    pub namespace: Option<String>,
29}