k8_types/
options.rs

1use serde::Serialize;
2
3/// goes as query parameter
4#[derive(Serialize, Default, Debug)]
5#[serde(rename_all = "camelCase")]
6pub struct ListOptions {
7    pub pretty: Option<bool>,
8    #[serde(rename = "continue")]
9    pub continu: Option<String>,
10    pub field_selector: Option<String>,
11    pub include_uninitialized: Option<bool>,
12    pub label_selector: Option<String>,
13    pub limit: Option<u32>,
14    pub resource_version: Option<String>,
15    pub timeout_seconds: Option<u32>,
16    pub watch: Option<bool>,
17}
18
19#[derive(Serialize, Debug)]
20#[serde(rename_all = "camelCase")]
21pub struct DeleteOptions {
22    pub kind: &'static str,
23    pub api_version: &'static str,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub pretty: Option<bool>,
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub dry_run: Option<String>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub grace_period_seconds: Option<u64>,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub propagation_policy: Option<PropogationPolicy>,
32}
33
34impl Default for DeleteOptions {
35    fn default() -> Self {
36        Self {
37            kind: "DeleteOptions",
38            api_version: "v1",
39            pretty: None,
40            dry_run: None,
41            grace_period_seconds: None,
42            propagation_policy: None,
43        }
44    }
45}
46#[derive(Serialize, Debug)]
47pub enum PropogationPolicy {
48    Orphan,
49    Background,
50    Foreground,
51}
52
53#[derive(Serialize, Default)]
54#[serde(rename_all = "camelCase")]
55pub struct Precondition {
56    pub uid: String,
57}
58
59#[cfg(test)]
60mod test {
61
62    use super::ListOptions;
63
64    #[test]
65    fn test_list_query() {
66        let opt = ListOptions {
67            pretty: Some(true),
68            watch: Some(true),
69            ..Default::default()
70        };
71
72        let qs = serde_qs::to_string(&opt).unwrap();
73        assert_eq!(qs, "pretty=true&watch=true")
74    }
75}