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 CreateOidcDynamicClientError {
22 Status400(models::ErrorOAuth2),
23 DefaultResponse(models::ErrorOAuth2),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum CreateVerifiableCredentialError {
31 Status400(models::VerifiableCredentialPrimingResponse),
32 DefaultResponse(models::ErrorOAuth2),
33 UnknownValue(serde_json::Value),
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum DeleteOidcDynamicClientError {
40 DefaultResponse(models::GenericError),
41 UnknownValue(serde_json::Value),
42}
43
44#[derive(Debug, Clone, Serialize, Deserialize)]
46#[serde(untagged)]
47pub enum DiscoverOidcConfigurationError {
48 DefaultResponse(models::ErrorOAuth2),
49 UnknownValue(serde_json::Value),
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
54#[serde(untagged)]
55pub enum GetOidcDynamicClientError {
56 DefaultResponse(models::ErrorOAuth2),
57 UnknownValue(serde_json::Value),
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetOidcUserInfoError {
64 DefaultResponse(models::ErrorOAuth2),
65 UnknownValue(serde_json::Value),
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum RevokeOidcSessionError {
72 UnknownValue(serde_json::Value),
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
77#[serde(untagged)]
78pub enum SetOidcDynamicClientError {
79 Status404(models::ErrorOAuth2),
80 DefaultResponse(models::ErrorOAuth2),
81 UnknownValue(serde_json::Value),
82}
83
84
85pub async fn create_oidc_dynamic_client(configuration: &configuration::Configuration, o_auth2_client: models::OAuth2Client) -> Result<models::OAuth2Client, Error<CreateOidcDynamicClientError>> {
87 let local_var_configuration = configuration;
88
89 let local_var_client = &local_var_configuration.client;
90
91 let local_var_uri_str = format!("{}/oauth2/register", local_var_configuration.base_path);
92 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
93
94 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
95 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
96 }
97 local_var_req_builder = local_var_req_builder.json(&o_auth2_client);
98
99 let local_var_req = local_var_req_builder.build()?;
100 let local_var_resp = local_var_client.execute(local_var_req).await?;
101
102 let local_var_status = local_var_resp.status();
103 let local_var_content = local_var_resp.text().await?;
104
105 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
106 serde_json::from_str(&local_var_content).map_err(Error::from)
107 } else {
108 let local_var_entity: Option<CreateOidcDynamicClientError> = serde_json::from_str(&local_var_content).ok();
109 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
110 Err(Error::ResponseError(local_var_error))
111 }
112}
113
114pub async fn create_verifiable_credential(configuration: &configuration::Configuration, create_verifiable_credential_request_body: Option<models::CreateVerifiableCredentialRequestBody>) -> Result<models::VerifiableCredentialResponse, Error<CreateVerifiableCredentialError>> {
116 let local_var_configuration = configuration;
117
118 let local_var_client = &local_var_configuration.client;
119
120 let local_var_uri_str = format!("{}/credentials", local_var_configuration.base_path);
121 let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
122
123 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
124 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
125 }
126 local_var_req_builder = local_var_req_builder.json(&create_verifiable_credential_request_body);
127
128 let local_var_req = local_var_req_builder.build()?;
129 let local_var_resp = local_var_client.execute(local_var_req).await?;
130
131 let local_var_status = local_var_resp.status();
132 let local_var_content = local_var_resp.text().await?;
133
134 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
135 serde_json::from_str(&local_var_content).map_err(Error::from)
136 } else {
137 let local_var_entity: Option<CreateVerifiableCredentialError> = serde_json::from_str(&local_var_content).ok();
138 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
139 Err(Error::ResponseError(local_var_error))
140 }
141}
142
143pub async fn delete_oidc_dynamic_client(configuration: &configuration::Configuration, id: &str) -> Result<(), Error<DeleteOidcDynamicClientError>> {
145 let local_var_configuration = configuration;
146
147 let local_var_client = &local_var_configuration.client;
148
149 let local_var_uri_str = format!("{}/oauth2/register/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
150 let mut local_var_req_builder = local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
151
152 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
153 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
154 }
155 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
156 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
157 };
158
159 let local_var_req = local_var_req_builder.build()?;
160 let local_var_resp = local_var_client.execute(local_var_req).await?;
161
162 let local_var_status = local_var_resp.status();
163 let local_var_content = local_var_resp.text().await?;
164
165 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
166 Ok(())
167 } else {
168 let local_var_entity: Option<DeleteOidcDynamicClientError> = serde_json::from_str(&local_var_content).ok();
169 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
170 Err(Error::ResponseError(local_var_error))
171 }
172}
173
174pub async fn discover_oidc_configuration(configuration: &configuration::Configuration, ) -> Result<models::OidcConfiguration, Error<DiscoverOidcConfigurationError>> {
176 let local_var_configuration = configuration;
177
178 let local_var_client = &local_var_configuration.client;
179
180 let local_var_uri_str = format!("{}/.well-known/openid-configuration", local_var_configuration.base_path);
181 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
182
183 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
184 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
185 }
186
187 let local_var_req = local_var_req_builder.build()?;
188 let local_var_resp = local_var_client.execute(local_var_req).await?;
189
190 let local_var_status = local_var_resp.status();
191 let local_var_content = local_var_resp.text().await?;
192
193 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
194 serde_json::from_str(&local_var_content).map_err(Error::from)
195 } else {
196 let local_var_entity: Option<DiscoverOidcConfigurationError> = serde_json::from_str(&local_var_content).ok();
197 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
198 Err(Error::ResponseError(local_var_error))
199 }
200}
201
202pub async fn get_oidc_dynamic_client(configuration: &configuration::Configuration, id: &str) -> Result<models::OAuth2Client, Error<GetOidcDynamicClientError>> {
204 let local_var_configuration = configuration;
205
206 let local_var_client = &local_var_configuration.client;
207
208 let local_var_uri_str = format!("{}/oauth2/register/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
209 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
210
211 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
212 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
213 }
214 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
215 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
216 };
217
218 let local_var_req = local_var_req_builder.build()?;
219 let local_var_resp = local_var_client.execute(local_var_req).await?;
220
221 let local_var_status = local_var_resp.status();
222 let local_var_content = local_var_resp.text().await?;
223
224 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
225 serde_json::from_str(&local_var_content).map_err(Error::from)
226 } else {
227 let local_var_entity: Option<GetOidcDynamicClientError> = serde_json::from_str(&local_var_content).ok();
228 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
229 Err(Error::ResponseError(local_var_error))
230 }
231}
232
233pub async fn get_oidc_user_info(configuration: &configuration::Configuration, ) -> Result<models::OidcUserInfo, Error<GetOidcUserInfoError>> {
235 let local_var_configuration = configuration;
236
237 let local_var_client = &local_var_configuration.client;
238
239 let local_var_uri_str = format!("{}/userinfo", local_var_configuration.base_path);
240 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
241
242 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
243 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
244 }
245 if let Some(ref local_var_token) = local_var_configuration.oauth_access_token {
246 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
247 };
248
249 let local_var_req = local_var_req_builder.build()?;
250 let local_var_resp = local_var_client.execute(local_var_req).await?;
251
252 let local_var_status = local_var_resp.status();
253 let local_var_content = local_var_resp.text().await?;
254
255 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
256 serde_json::from_str(&local_var_content).map_err(Error::from)
257 } else {
258 let local_var_entity: Option<GetOidcUserInfoError> = serde_json::from_str(&local_var_content).ok();
259 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
260 Err(Error::ResponseError(local_var_error))
261 }
262}
263
264pub async fn revoke_oidc_session(configuration: &configuration::Configuration, ) -> Result<(), Error<RevokeOidcSessionError>> {
266 let local_var_configuration = configuration;
267
268 let local_var_client = &local_var_configuration.client;
269
270 let local_var_uri_str = format!("{}/oauth2/sessions/logout", local_var_configuration.base_path);
271 let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
272
273 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
274 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
275 }
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 Ok(())
285 } else {
286 let local_var_entity: Option<RevokeOidcSessionError> = 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
292pub async fn set_oidc_dynamic_client(configuration: &configuration::Configuration, id: &str, o_auth2_client: models::OAuth2Client) -> Result<models::OAuth2Client, Error<SetOidcDynamicClientError>> {
294 let local_var_configuration = configuration;
295
296 let local_var_client = &local_var_configuration.client;
297
298 let local_var_uri_str = format!("{}/oauth2/register/{id}", local_var_configuration.base_path, id=crate::apis::urlencode(id));
299 let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
300
301 if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
302 local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
303 }
304 if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
305 local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
306 };
307 local_var_req_builder = local_var_req_builder.json(&o_auth2_client);
308
309 let local_var_req = local_var_req_builder.build()?;
310 let local_var_resp = local_var_client.execute(local_var_req).await?;
311
312 let local_var_status = local_var_resp.status();
313 let local_var_content = local_var_resp.text().await?;
314
315 if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
316 serde_json::from_str(&local_var_content).map_err(Error::from)
317 } else {
318 let local_var_entity: Option<SetOidcDynamicClientError> = serde_json::from_str(&local_var_content).ok();
319 let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
320 Err(Error::ResponseError(local_var_error))
321 }
322}
323