1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CheckIfNativeTriggersServiceExistsError {
22 UnknownValue(serde_json::Value),
23}
24
25#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum CheckInstanceSharingAvailableError {
29 UnknownValue(serde_json::Value),
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum CreateNativeTriggerServiceError {
36 UnknownValue(serde_json::Value),
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum DeleteNativeTriggerServiceError {
43 UnknownValue(serde_json::Value),
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum GenerateInstanceConnectUrlError {
50 UnknownValue(serde_json::Value),
51}
52
53#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum GenerateNativeTriggerServiceConnectUrlError {
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum ListNativeTriggerServicesError {
64 UnknownValue(serde_json::Value),
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum NativeTriggerServiceCallbackError {
71 UnknownValue(serde_json::Value),
72}
73
74
75pub async fn check_if_native_triggers_service_exists(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName) -> Result<bool, Error<CheckIfNativeTriggersServiceExistsError>> {
76 let local_var_configuration = configuration;
77
78 let local_var_client = &local_var_configuration.client;
79
80 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/exists", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
81 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
82
83 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
84 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
85 }
86 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
87 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
88 };
89
90 let local_var_req = local_var_req_builder.build()?;
91 let local_var_resp = local_var_client.execute(local_var_req).await?;
92
93 let local_var_status = local_var_resp.status();
94 let local_var_content = local_var_resp.text().await?;
95
96 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
97 crate::from_str_patched(&local_var_content).map_err(Error::from)
98 } else {
99 let local_var_entity: Option<CheckIfNativeTriggersServiceExistsError> = crate::from_str_patched(&local_var_content).ok();
100 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
101 Err(Error::ResponseError(local_var_error))
102 }
103}
104
105pub async fn check_instance_sharing_available(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName) -> Result<bool, Error<CheckInstanceSharingAvailableError>> {
106 let local_var_configuration = configuration;
107
108 let local_var_client = &local_var_configuration.client;
109
110 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/instance_sharing_available", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
111 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
112
113 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
114 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
115 }
116 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
117 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
118 };
119
120 let local_var_req = local_var_req_builder.build()?;
121 let local_var_resp = local_var_client.execute(local_var_req).await?;
122
123 let local_var_status = local_var_resp.status();
124 let local_var_content = local_var_resp.text().await?;
125
126 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
127 crate::from_str_patched(&local_var_content).map_err(Error::from)
128 } else {
129 let local_var_entity: Option<CheckInstanceSharingAvailableError> = crate::from_str_patched(&local_var_content).ok();
130 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
131 Err(Error::ResponseError(local_var_error))
132 }
133}
134
135pub async fn create_native_trigger_service(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName, workspace_o_auth_config: models::WorkspaceOAuthConfig) -> Result<String, Error<CreateNativeTriggerServiceError>> {
136 let local_var_configuration = configuration;
137
138 let local_var_client = &local_var_configuration.client;
139
140 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/create", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
141 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
142
143 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
144 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
145 }
146 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
147 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
148 };
149 local_var_req_builder = local_var_req_builder.json(&workspace_o_auth_config);
150
151 let local_var_req = local_var_req_builder.build()?;
152 let local_var_resp = local_var_client.execute(local_var_req).await?;
153
154 let local_var_status = local_var_resp.status();
155 let local_var_content = local_var_resp.text().await?;
156
157 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
158 crate::from_str_patched(&local_var_content).map_err(Error::from)
159 } else {
160 let local_var_entity: Option<CreateNativeTriggerServiceError> = crate::from_str_patched(&local_var_content).ok();
161 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
162 Err(Error::ResponseError(local_var_error))
163 }
164}
165
166pub async fn delete_native_trigger_service(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName) -> Result<String, Error<DeleteNativeTriggerServiceError>> {
167 let local_var_configuration = configuration;
168
169 let local_var_client = &local_var_configuration.client;
170
171 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/delete", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
172 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
173
174 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
175 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
176 }
177 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
178 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
179 };
180
181 let local_var_req = local_var_req_builder.build()?;
182 let local_var_resp = local_var_client.execute(local_var_req).await?;
183
184 let local_var_status = local_var_resp.status();
185 let local_var_content = local_var_resp.text().await?;
186
187 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
188 crate::from_str_patched(&local_var_content).map_err(Error::from)
189 } else {
190 let local_var_entity: Option<DeleteNativeTriggerServiceError> = crate::from_str_patched(&local_var_content).ok();
191 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
192 Err(Error::ResponseError(local_var_error))
193 }
194}
195
196pub async fn generate_instance_connect_url(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName, redirect_uri: models::RedirectUri) -> Result<String, Error<GenerateInstanceConnectUrlError>> {
197 let local_var_configuration = configuration;
198
199 let local_var_client = &local_var_configuration.client;
200
201 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/generate_instance_connect_url", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
202 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
203
204 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
205 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
206 }
207 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
208 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
209 };
210 local_var_req_builder = local_var_req_builder.json(&redirect_uri);
211
212 let local_var_req = local_var_req_builder.build()?;
213 let local_var_resp = local_var_client.execute(local_var_req).await?;
214
215 let local_var_status = local_var_resp.status();
216 let local_var_content = local_var_resp.text().await?;
217
218 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219 crate::from_str_patched(&local_var_content).map_err(Error::from)
220 } else {
221 let local_var_entity: Option<GenerateInstanceConnectUrlError> = crate::from_str_patched(&local_var_content).ok();
222 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
223 Err(Error::ResponseError(local_var_error))
224 }
225}
226
227pub async fn generate_native_trigger_service_connect_url(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName, redirect_uri: models::RedirectUri) -> Result<String, Error<GenerateNativeTriggerServiceConnectUrlError>> {
228 let local_var_configuration = configuration;
229
230 let local_var_client = &local_var_configuration.client;
231
232 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/generate_connect_url", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
233 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
234
235 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
236 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
237 }
238 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
239 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
240 };
241 local_var_req_builder = local_var_req_builder.json(&redirect_uri);
242
243 let local_var_req = local_var_req_builder.build()?;
244 let local_var_resp = local_var_client.execute(local_var_req).await?;
245
246 let local_var_status = local_var_resp.status();
247 let local_var_content = local_var_resp.text().await?;
248
249 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
250 crate::from_str_patched(&local_var_content).map_err(Error::from)
251 } else {
252 let local_var_entity: Option<GenerateNativeTriggerServiceConnectUrlError> = crate::from_str_patched(&local_var_content).ok();
253 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
254 Err(Error::ResponseError(local_var_error))
255 }
256}
257
258pub async fn list_native_trigger_services(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<models::WorkspaceIntegrations>, Error<ListNativeTriggerServicesError>> {
259 let local_var_configuration = configuration;
260
261 let local_var_client = &local_var_configuration.client;
262
263 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/list", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
264 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
265
266 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
267 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
268 }
269 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
270 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
271 };
272
273 let local_var_req = local_var_req_builder.build()?;
274 let local_var_resp = local_var_client.execute(local_var_req).await?;
275
276 let local_var_status = local_var_resp.status();
277 let local_var_content = local_var_resp.text().await?;
278
279 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
280 crate::from_str_patched(&local_var_content).map_err(Error::from)
281 } else {
282 let local_var_entity: Option<ListNativeTriggerServicesError> = crate::from_str_patched(&local_var_content).ok();
283 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
284 Err(Error::ResponseError(local_var_error))
285 }
286}
287
288pub async fn native_trigger_service_callback(configuration: &configuration::Configuration, workspace: &str, service_name: models::NativeServiceName, native_trigger_service_callback_request: models::NativeTriggerServiceCallbackRequest) -> Result<String, Error<NativeTriggerServiceCallbackError>> {
289 let local_var_configuration = configuration;
290
291 let local_var_client = &local_var_configuration.client;
292
293 let local_var_uri_str = format!("{}/w/{workspace}/native_triggers/integrations/{service_name}/callback", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), service_name=service_name.to_string());
294 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
295
296 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
297 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
298 }
299 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
300 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
301 };
302 local_var_req_builder = local_var_req_builder.json(&native_trigger_service_callback_request);
303
304 let local_var_req = local_var_req_builder.build()?;
305 let local_var_resp = local_var_client.execute(local_var_req).await?;
306
307 let local_var_status = local_var_resp.status();
308 let local_var_content = local_var_resp.text().await?;
309
310 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
311 crate::from_str_patched(&local_var_content).map_err(Error::from)
312 } else {
313 let local_var_entity: Option<NativeTriggerServiceCallbackError> = crate::from_str_patched(&local_var_content).ok();
314 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
315 Err(Error::ResponseError(local_var_error))
316 }
317}
318