windmill_api/models/
edit_kafka_trigger.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct EditKafkaTrigger {
16 #[serde(rename = "kafka_resource_path")]
18 pub kafka_resource_path: String,
19 #[serde(rename = "group_id")]
21 pub group_id: String,
22 #[serde(rename = "topics")]
24 pub topics: Vec<String>,
25 #[serde(rename = "filters")]
27 pub filters: Vec<models::TriggerFilter>,
28 #[serde(rename = "filter_logic", skip_serializing_if = "Option::is_none")]
30 pub filter_logic: Option<FilterLogic>,
31 #[serde(rename = "auto_offset_reset", skip_serializing_if = "Option::is_none")]
33 pub auto_offset_reset: Option<AutoOffsetReset>,
34 #[serde(rename = "auto_commit", skip_serializing_if = "Option::is_none")]
36 pub auto_commit: Option<bool>,
37 #[serde(rename = "path")]
39 pub path: String,
40 #[serde(rename = "script_path")]
42 pub script_path: String,
43 #[serde(rename = "is_flow")]
45 pub is_flow: bool,
46 #[serde(rename = "error_handler_path", skip_serializing_if = "Option::is_none")]
48 pub error_handler_path: Option<String>,
49 #[serde(rename = "error_handler_args", skip_serializing_if = "Option::is_none")]
51 pub error_handler_args: Option<std::collections::HashMap<String, serde_json::Value>>,
52 #[serde(rename = "retry", skip_serializing_if = "Option::is_none")]
53 pub retry: Option<Box<models::Retry>>,
54 #[serde(rename = "permissioned_as", skip_serializing_if = "Option::is_none")]
56 pub permissioned_as: Option<String>,
57 #[serde(rename = "preserve_permissioned_as", skip_serializing_if = "Option::is_none")]
59 pub preserve_permissioned_as: Option<bool>,
60 #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
61 pub labels: Option<Vec<String>>,
62}
63
64impl EditKafkaTrigger {
65 pub fn new(kafka_resource_path: String, group_id: String, topics: Vec<String>, filters: Vec<models::TriggerFilter>, path: String, script_path: String, is_flow: bool) -> EditKafkaTrigger {
66 EditKafkaTrigger {
67 kafka_resource_path,
68 group_id,
69 topics,
70 filters,
71 filter_logic: None,
72 auto_offset_reset: None,
73 auto_commit: None,
74 path,
75 script_path,
76 is_flow,
77 error_handler_path: None,
78 error_handler_args: None,
79 retry: None,
80 permissioned_as: None,
81 preserve_permissioned_as: None,
82 labels: None,
83 }
84 }
85}
86#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
88pub enum FilterLogic {
89 #[serde(rename = "and")]
90 And,
91 #[serde(rename = "or")]
92 Or,
93}
94
95impl Default for FilterLogic {
96 fn default() -> FilterLogic {
97 Self::And
98 }
99}
100#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
102pub enum AutoOffsetReset {
103 #[serde(rename = "latest")]
104 Latest,
105 #[serde(rename = "earliest")]
106 Earliest,
107}
108
109impl Default for AutoOffsetReset {
110 fn default() -> AutoOffsetReset {
111 Self::Latest
112 }
113}
114