dataflow_rs/engine/functions/
integration.rs1use serde::Deserialize;
2use serde_json::Value;
3use std::collections::HashMap;
4
5#[derive(Debug, Clone, Deserialize)]
10pub struct HttpCallConfig {
11 pub connector: String,
13
14 #[serde(default = "default_method")]
16 pub method: HttpMethod,
17
18 #[serde(default)]
20 pub path: Option<String>,
21
22 #[serde(default)]
24 pub path_logic: Option<Value>,
25
26 #[serde(skip)]
28 pub path_logic_index: Option<usize>,
29
30 #[serde(default)]
32 pub headers: HashMap<String, String>,
33
34 #[serde(default)]
36 pub body: Option<Value>,
37
38 #[serde(default)]
40 pub body_logic: Option<Value>,
41
42 #[serde(skip)]
44 pub body_logic_index: Option<usize>,
45
46 #[serde(default)]
48 pub response_path: Option<String>,
49
50 #[serde(default = "default_timeout")]
52 pub timeout_ms: u64,
53}
54
55#[derive(Debug, Clone, Default, Deserialize)]
57#[serde(rename_all = "UPPERCASE")]
58pub enum HttpMethod {
59 #[default]
60 Get,
61 Post,
62 Put,
63 Patch,
64 Delete,
65}
66
67fn default_method() -> HttpMethod {
68 HttpMethod::Get
69}
70
71fn default_timeout() -> u64 {
72 30000
73}
74
75#[derive(Debug, Clone, Deserialize)]
79pub struct EnrichConfig {
80 pub connector: String,
82
83 #[serde(default = "default_method")]
85 pub method: HttpMethod,
86
87 #[serde(default)]
89 pub path: Option<String>,
90
91 #[serde(default)]
93 pub path_logic: Option<Value>,
94
95 #[serde(skip)]
97 pub path_logic_index: Option<usize>,
98
99 pub merge_path: String,
101
102 #[serde(default = "default_timeout")]
104 pub timeout_ms: u64,
105
106 #[serde(default)]
108 pub on_error: EnrichErrorAction,
109}
110
111#[derive(Debug, Clone, Deserialize, Default)]
113#[serde(rename_all = "lowercase")]
114pub enum EnrichErrorAction {
115 #[default]
117 Fail,
118 Skip,
120}
121
122#[derive(Debug, Clone, Deserialize)]
126pub struct PublishKafkaConfig {
127 pub connector: String,
129
130 pub topic: String,
132
133 #[serde(default)]
135 pub key_logic: Option<Value>,
136
137 #[serde(skip)]
139 pub key_logic_index: Option<usize>,
140
141 #[serde(default)]
143 pub value_logic: Option<Value>,
144
145 #[serde(skip)]
147 pub value_logic_index: Option<usize>,
148}