1use serde::Serialize;
2
3#[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}