twilio_rust_openapi/apis/
api20100401_connect_app_api.rs1use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17#[derive(Clone, Debug)]
19pub struct DeleteConnectAppParams {
20 pub account_sid: String,
22 pub sid: String
24}
25
26#[derive(Clone, Debug)]
28pub struct FetchConnectAppParams {
29 pub account_sid: String,
31 pub sid: String
33}
34
35#[derive(Clone, Debug)]
37pub struct ListConnectAppParams {
38 pub account_sid: String,
40 pub page_size: Option<i32>,
42 pub page: Option<i32>,
44 pub page_token: Option<String>
46}
47
48#[derive(Clone, Debug)]
50pub struct UpdateConnectAppParams {
51 pub account_sid: String,
53 pub sid: String,
55 pub authorize_redirect_url: Option<String>,
57 pub company_name: Option<String>,
59 pub deauthorize_callback_method: Option<String>,
61 pub deauthorize_callback_url: Option<String>,
63 pub description: Option<String>,
65 pub friendly_name: Option<String>,
67 pub homepage_url: Option<String>,
69 pub permissions: Option<Vec<models::ConnectAppEnumPermission>>
71}
72
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum DeleteConnectAppError {
78 UnknownValue(serde_json::Value),
79}
80
81#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum FetchConnectAppError {
85 UnknownValue(serde_json::Value),
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum ListConnectAppError {
92 UnknownValue(serde_json::Value),
93}
94
95#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum UpdateConnectAppError {
99 UnknownValue(serde_json::Value),
100}
101
102
103pub async fn delete_connect_app(configuration: &configuration::Configuration, params: DeleteConnectAppParams) -> Result<(), Error<DeleteConnectAppError>> {
105 let local_var_configuration = configuration;
106
107 let account_sid = params.account_sid;
109 let sid = params.sid;
110
111
112 let local_var_client = &local_var_configuration.client;
113
114 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/ConnectApps/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
115 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
116
117 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
118 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
119 }
120 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
121 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
122 };
123
124 let local_var_req = local_var_req_builder.build()?;
125 let local_var_resp = local_var_client.execute(local_var_req).await?;
126
127 let local_var_status = local_var_resp.status();
128 let local_var_content = local_var_resp.text().await?;
129
130 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
131 Ok(())
132 } else {
133 let local_var_entity: Option<DeleteConnectAppError> = serde_json::from_str(&local_var_content).ok();
134 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
135 Err(Error::ResponseError(local_var_error))
136 }
137}
138
139pub async fn fetch_connect_app(configuration: &configuration::Configuration, params: FetchConnectAppParams) -> Result<models::ApiPeriodV2010PeriodAccountPeriodConnectApp, Error<FetchConnectAppError>> {
141 let local_var_configuration = configuration;
142
143 let account_sid = params.account_sid;
145 let sid = params.sid;
146
147
148 let local_var_client = &local_var_configuration.client;
149
150 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/ConnectApps/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
151 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
152
153 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
154 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
155 }
156 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
157 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
158 };
159
160 let local_var_req = local_var_req_builder.build()?;
161 let local_var_resp = local_var_client.execute(local_var_req).await?;
162
163 let local_var_status = local_var_resp.status();
164 let local_var_content = local_var_resp.text().await?;
165
166 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
167 serde_json::from_str(&local_var_content).map_err(Error::from)
168 } else {
169 let local_var_entity: Option<FetchConnectAppError> = serde_json::from_str(&local_var_content).ok();
170 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
171 Err(Error::ResponseError(local_var_error))
172 }
173}
174
175pub async fn list_connect_app(configuration: &configuration::Configuration, params: ListConnectAppParams) -> Result<models::ListConnectAppResponse, Error<ListConnectAppError>> {
177 let local_var_configuration = configuration;
178
179 let account_sid = params.account_sid;
181 let page_size = params.page_size;
182 let page = params.page;
183 let page_token = params.page_token;
184
185
186 let local_var_client = &local_var_configuration.client;
187
188 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/ConnectApps.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid));
189 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
190
191 if let Some(ref local_var_str) = page_size {
192 local_var_req_builder = local_var_req_builder.query(&[("PageSize", &local_var_str.to_string())]);
193 }
194 if let Some(ref local_var_str) = page {
195 local_var_req_builder = local_var_req_builder.query(&[("Page", &local_var_str.to_string())]);
196 }
197 if let Some(ref local_var_str) = page_token {
198 local_var_req_builder = local_var_req_builder.query(&[("PageToken", &local_var_str.to_string())]);
199 }
200 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
201 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
202 }
203 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
204 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
205 };
206
207 let local_var_req = local_var_req_builder.build()?;
208 let local_var_resp = local_var_client.execute(local_var_req).await?;
209
210 let local_var_status = local_var_resp.status();
211 let local_var_content = local_var_resp.text().await?;
212
213 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
214 serde_json::from_str(&local_var_content).map_err(Error::from)
215 } else {
216 let local_var_entity: Option<ListConnectAppError> = serde_json::from_str(&local_var_content).ok();
217 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
218 Err(Error::ResponseError(local_var_error))
219 }
220}
221
222pub async fn update_connect_app(configuration: &configuration::Configuration, params: UpdateConnectAppParams) -> Result<models::ApiPeriodV2010PeriodAccountPeriodConnectApp, Error<UpdateConnectAppError>> {
224 let local_var_configuration = configuration;
225
226 let account_sid = params.account_sid;
228 let sid = params.sid;
229 let authorize_redirect_url = params.authorize_redirect_url;
230 let company_name = params.company_name;
231 let deauthorize_callback_method = params.deauthorize_callback_method;
232 let deauthorize_callback_url = params.deauthorize_callback_url;
233 let description = params.description;
234 let friendly_name = params.friendly_name;
235 let homepage_url = params.homepage_url;
236 let permissions = params.permissions;
237
238
239 let local_var_client = &local_var_configuration.client;
240
241 let local_var_uri_str = format!("{}/2010-04-01/Accounts/{AccountSid}/ConnectApps/{Sid}.json", local_var_configuration.base_path, AccountSid=crate::apis::urlencode(account_sid), Sid=crate::apis::urlencode(sid));
242 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
243
244 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
245 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
246 }
247 if let Some(ref local_var_auth_conf) = local_var_configuration.basic_auth {
248 local_var_req_builder = local_var_req_builder.basic_auth(local_var_auth_conf.0.to_owned(), local_var_auth_conf.1.to_owned());
249 };
250 let mut local_var_form_params = std::collections::HashMap::new();
251 if let Some(local_var_param_value) = authorize_redirect_url {
252 local_var_form_params.insert("AuthorizeRedirectUrl", local_var_param_value.to_string());
253 }
254 if let Some(local_var_param_value) = company_name {
255 local_var_form_params.insert("CompanyName", local_var_param_value.to_string());
256 }
257 if let Some(local_var_param_value) = deauthorize_callback_method {
258 local_var_form_params.insert("DeauthorizeCallbackMethod", local_var_param_value.to_string());
259 }
260 if let Some(local_var_param_value) = deauthorize_callback_url {
261 local_var_form_params.insert("DeauthorizeCallbackUrl", local_var_param_value.to_string());
262 }
263 if let Some(local_var_param_value) = description {
264 local_var_form_params.insert("Description", local_var_param_value.to_string());
265 }
266 if let Some(local_var_param_value) = friendly_name {
267 local_var_form_params.insert("FriendlyName", local_var_param_value.to_string());
268 }
269 if let Some(local_var_param_value) = homepage_url {
270 local_var_form_params.insert("HomepageUrl", local_var_param_value.to_string());
271 }
272 if let Some(local_var_param_value) = permissions {
273 local_var_form_params.insert("Permissions", local_var_param_value.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string());
274 }
275 local_var_req_builder = local_var_req_builder.form(&local_var_form_params);
276
277 let local_var_req = local_var_req_builder.build()?;
278 let local_var_resp = local_var_client.execute(local_var_req).await?;
279
280 let local_var_status = local_var_resp.status();
281 let local_var_content = local_var_resp.text().await?;
282
283 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
284 serde_json::from_str(&local_var_content).map_err(Error::from)
285 } else {
286 let local_var_entity: Option<UpdateConnectAppError> = serde_json::from_str(&local_var_content).ok();
287 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
288 Err(Error::ResponseError(local_var_error))
289 }
290}
291