twilio_rust_openapi/apis/
api20100401_trigger_api.rs1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17#[derive(Clone, Debug)]
19pub struct CreateUsageTriggerParams {
20 pub account_sid: String,
22 pub callback_url: String,
24 pub trigger_value: String,
26 pub usage_category: String,
27 pub callback_method: Option<String>,
29 pub friendly_name: Option<String>,
31 pub recurring: Option<String>,
32 pub trigger_by: Option<String>
33}
34
35#[derive(Clone, Debug)]
37pub struct DeleteUsageTriggerParams {
38 pub account_sid: String,
40 pub sid: String
42}
43
44#[derive(Clone, Debug)]
46pub struct FetchUsageTriggerParams {
47 pub account_sid: String,
49 pub sid: String
51}
52
53#[derive(Clone, Debug)]
55pub struct ListUsageTriggerParams {
56 pub account_sid: String,
58 pub recurring: Option<String>,
60 pub trigger_by: Option<String>,
62 pub usage_category: Option<String>,
64 pub page_size: Option<i32>,
66 pub page: Option<i32>,
68 pub page_token: Option<String>
70}
71
72#[derive(Clone, Debug)]
74pub struct UpdateUsageTriggerParams {
75 pub account_sid: String,
77 pub sid: String,
79 pub callback_method: Option<String>,
81 pub callback_url: Option<String>,
83 pub friendly_name: Option<String>
85}
86
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum CreateUsageTriggerError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum DeleteUsageTriggerError {
99 UnknownValue(serde_json::Value),
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum FetchUsageTriggerError {
106 UnknownValue(serde_json::Value),
107}
108
109#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum ListUsageTriggerError {
113 UnknownValue(serde_json::Value),
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize)]
118#[serde(untagged)]
119pub enum UpdateUsageTriggerError {
120 UnknownValue(serde_json::Value),
121}
122
123
124pub async fn create_usage_trigger(configuration: &configuration::Configuration, params: CreateUsageTriggerParams) -> Result<models::ApiPeriodV2010PeriodAccountPeriodUsagePeriodUsageTrigger, Error<CreateUsageTriggerError>> {
126 let local_var_configuration = configuration;
127
128 let account_sid = params.account_sid;
130 let callback_url = params.callback_url;
131 let trigger_value = params.trigger_value;
132 let usage_category = params.usage_category;
133 let callback_method = params.callback_method;
134 let friendly_name = params.friendly_name;
135 let recurring = params.recurring;
136 let trigger_by = params.trigger_by;
137
138
139 let local_var_client = &local_var_configuration.client;
140
141 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/Usage/Triggers.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid));
142 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
143
144 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
145 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
146 }
147 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
148 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
149 };
150 let mut local_var_form_params = std::collections::HashMap::new();
151 local_var_form_params.insert("CallbackUrl", callback_url.to_string());
152 local_var_form_params.insert("TriggerValue", trigger_value.to_string());
153 local_var_form_params.insert("UsageCategory", usage_category.to_string());
154 if let Some(local_var_param_value) = callback_method {
155 local_var_form_params.insert("CallbackMethod", local_var_param_value.to_string());
156 }
157 if let Some(local_var_param_value) = friendly_name {
158 local_var_form_params.insert("FriendlyName", local_var_param_value.to_string());
159 }
160 if let Some(local_var_param_value) = recurring {
161 local_var_form_params.insert("Recurring", local_var_param_value.to_string());
162 }
163 if let Some(local_var_param_value) = trigger_by {
164 local_var_form_params.insert("TriggerBy", local_var_param_value.to_string());
165 }
166 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
167
168 let local_var_req = local_var_req_builder.build()?;
169 let local_var_resp = local_var_client.execute(local_var_req).await?;
170
171 let local_var_status = local_var_resp.status();
172 let local_var_content = local_var_resp.text().await?;
173
174 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
175 serde_json::from_str(&local_var_content).map_err(Error::from)
176 } else {
177 let local_var_entity: Option<CreateUsageTriggerError> = serde_json::from_str(&local_var_content).ok();
178 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
179 Err(Error::ResponseError(local_var_error))
180 }
181}
182
183pub async fn delete_usage_trigger(configuration: &configuration::Configuration, params: DeleteUsageTriggerParams) -> Result<(), Error<DeleteUsageTriggerError>> {
185 let local_var_configuration = configuration;
186
187 let account_sid = params.account_sid;
189 let sid = params.sid;
190
191
192 let local_var_client = &local_var_configuration.client;
193
194 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/Usage/Triggers/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
195 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
196
197 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
198 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
199 }
200 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
201 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
202 };
203
204 let local_var_req = local_var_req_builder.build()?;
205 let local_var_resp = local_var_client.execute(local_var_req).await?;
206
207 let local_var_status = local_var_resp.status();
208 let local_var_content = local_var_resp.text().await?;
209
210 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
211 Ok(())
212 } else {
213 let local_var_entity: Option<DeleteUsageTriggerError> = serde_json::from_str(&local_var_content).ok();
214 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
215 Err(Error::ResponseError(local_var_error))
216 }
217}
218
219pub async fn fetch_usage_trigger(configuration: &configuration::Configuration, params: FetchUsageTriggerParams) -> Result<models::ApiPeriodV2010PeriodAccountPeriodUsagePeriodUsageTrigger, Error<FetchUsageTriggerError>> {
221 let local_var_configuration = configuration;
222
223 let account_sid = params.account_sid;
225 let sid = params.sid;
226
227
228 let local_var_client = &local_var_configuration.client;
229
230 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/Usage/Triggers/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
231 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
232
233 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
234 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
235 }
236 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
237 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
238 };
239
240 let local_var_req = local_var_req_builder.build()?;
241 let local_var_resp = local_var_client.execute(local_var_req).await?;
242
243 let local_var_status = local_var_resp.status();
244 let local_var_content = local_var_resp.text().await?;
245
246 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
247 serde_json::from_str(&local_var_content).map_err(Error::from)
248 } else {
249 let local_var_entity: Option<FetchUsageTriggerError> = serde_json::from_str(&local_var_content).ok();
250 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
251 Err(Error::ResponseError(local_var_error))
252 }
253}
254
255pub async fn list_usage_trigger(configuration: &configuration::Configuration, params: ListUsageTriggerParams) -> Result<models::ListUsageTriggerResponse, Error<ListUsageTriggerError>> {
257 let local_var_configuration = configuration;
258
259 let account_sid = params.account_sid;
261 let recurring = params.recurring;
262 let trigger_by = params.trigger_by;
263 let usage_category = params.usage_category;
264 let page_size = params.page_size;
265 let page = params.page;
266 let page_token = params.page_token;
267
268
269 let local_var_client = &local_var_configuration.client;
270
271 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/Usage/Triggers.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid));
272 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
273
274 if let Some(ref local_var_str) = recurring {
275 local_var_req_builder = local_var_req_builder.query(&[("Recurring", &local_var_str.to_string())]);
276 }
277 if let Some(ref local_var_str) = trigger_by {
278 local_var_req_builder = local_var_req_builder.query(&[("TriggerBy", &local_var_str.to_string())]);
279 }
280 if let Some(ref local_var_str) = usage_category {
281 local_var_req_builder = local_var_req_builder.query(&[("UsageCategory", &local_var_str.to_string())]);
282 }
283 if let Some(ref local_var_str) = page_size {
284 local_var_req_builder = local_var_req_builder.query(&[("PageSize", &local_var_str.to_string())]);
285 }
286 if let Some(ref local_var_str) = page {
287 local_var_req_builder = local_var_req_builder.query(&[("Page", &local_var_str.to_string())]);
288 }
289 if let Some(ref local_var_str) = page_token {
290 local_var_req_builder = local_var_req_builder.query(&[("PageToken", &local_var_str.to_string())]);
291 }
292 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
293 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
294 }
295 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
296 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
297 };
298
299 let local_var_req = local_var_req_builder.build()?;
300 let local_var_resp = local_var_client.execute(local_var_req).await?;
301
302 let local_var_status = local_var_resp.status();
303 let local_var_content = local_var_resp.text().await?;
304
305 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
306 serde_json::from_str(&local_var_content).map_err(Error::from)
307 } else {
308 let local_var_entity: Option<ListUsageTriggerError> = serde_json::from_str(&local_var_content).ok();
309 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
310 Err(Error::ResponseError(local_var_error))
311 }
312}
313
314pub async fn update_usage_trigger(configuration: &configuration::Configuration, params: UpdateUsageTriggerParams) -> Result<models::ApiPeriodV2010PeriodAccountPeriodUsagePeriodUsageTrigger, Error<UpdateUsageTriggerError>> {
316 let local_var_configuration = configuration;
317
318 let account_sid = params.account_sid;
320 let sid = params.sid;
321 let callback_method = params.callback_method;
322 let callback_url = params.callback_url;
323 let friendly_name = params.friendly_name;
324
325
326 let local_var_client = &local_var_configuration.client;
327
328 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/Usage/Triggers/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
329 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
330
331 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
332 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
333 }
334 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
335 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
336 };
337 let mut local_var_form_params = std::collections::HashMap::new();
338 if let Some(local_var_param_value) = callback_method {
339 local_var_form_params.insert("CallbackMethod", local_var_param_value.to_string());
340 }
341 if let Some(local_var_param_value) = callback_url {
342 local_var_form_params.insert("CallbackUrl", local_var_param_value.to_string());
343 }
344 if let Some(local_var_param_value) = friendly_name {
345 local_var_form_params.insert("FriendlyName", local_var_param_value.to_string());
346 }
347 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
348
349 let local_var_req = local_var_req_builder.build()?;
350 let local_var_resp = local_var_client.execute(local_var_req).await?;
351
352 let local_var_status = local_var_resp.status();
353 let local_var_content = local_var_resp.text().await?;
354
355 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
356 serde_json::from_str(&local_var_content).map_err(Error::from)
357 } else {
358 let local_var_entity: Option<UpdateUsageTriggerError> = serde_json::from_str(&local_var_content).ok();
359 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
360 Err(Error::ResponseError(local_var_error))
361 }
362}
363