clerk_fapi_rs/apis/
saml_api.rs1use super::{configuration, ContentType, Error};
12use crate::{apis::ResponseContent, models};
13use reqwest;
14use serde::{de::Error as _, Deserialize, Serialize};
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum AcsError {
20 Status400(models::ClerkErrors),
21 Status401(models::ClerkErrors),
22 Status403(models::ClerkErrors),
23 Status404(models::ClerkErrors),
24 UnknownValue(serde_json::Value),
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum SamlMetadataError {
31 Status400(models::ClerkErrors),
32 Status404(models::ClerkErrors),
33 UnknownValue(serde_json::Value),
34}
35
36pub async fn acs(
38 configuration: &configuration::Configuration,
39 saml_connection_id: &str,
40) -> Result<(), Error<AcsError>> {
41 let p_path_saml_connection_id = saml_connection_id;
43
44 let uri_str = format!(
45 "{}/v1/saml/acs/{saml_connection_id}",
46 configuration.base_path,
47 saml_connection_id = crate::apis::urlencode(p_path_saml_connection_id)
48 );
49 let mut req_builder = configuration
50 .client
51 .request(reqwest::Method::POST, &uri_str);
52
53 if let Some(ref apikey) = configuration.api_key {
54 let key = apikey.key.clone();
55 let value = match apikey.prefix {
56 Some(ref prefix) => format!("{prefix} {key}"),
57 None => key,
58 };
59 req_builder = req_builder.query(&[("__dev_session", value)]);
60 }
61 if let Some(ref user_agent) = configuration.user_agent {
62 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
63 }
64
65 let req = req_builder.build()?;
66 let resp = configuration.client.execute(req).await?;
67
68 let status = resp.status();
69
70 if !status.is_client_error() && !status.is_server_error() {
71 Ok(())
72 } else {
73 let content = resp.text().await?;
74 let entity: Option<AcsError> = serde_json::from_str(&content).ok();
75 Err(Error::ResponseError(ResponseContent {
76 status,
77 content,
78 entity,
79 }))
80 }
81}
82
83pub async fn saml_metadata(
85 configuration: &configuration::Configuration,
86 saml_connection_id: &str,
87) -> Result<(), Error<SamlMetadataError>> {
88 let p_path_saml_connection_id = saml_connection_id;
90
91 let uri_str = format!(
92 "{}/v1/saml/metadata/{saml_connection_id}.xml",
93 configuration.base_path,
94 saml_connection_id = crate::apis::urlencode(p_path_saml_connection_id)
95 );
96 let mut req_builder = configuration.client.request(reqwest::Method::GET, &uri_str);
97
98 if let Some(ref apikey) = configuration.api_key {
99 let key = apikey.key.clone();
100 let value = match apikey.prefix {
101 Some(ref prefix) => format!("{prefix} {key}"),
102 None => key,
103 };
104 req_builder = req_builder.query(&[("__dev_session", value)]);
105 }
106 if let Some(ref user_agent) = configuration.user_agent {
107 req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
108 }
109
110 let req = req_builder.build()?;
111 let resp = configuration.client.execute(req).await?;
112
113 let status = resp.status();
114
115 if !status.is_client_error() && !status.is_server_error() {
116 Ok(())
117 } else {
118 let content = resp.text().await?;
119 let entity: Option<SamlMetadataError> = serde_json::from_str(&content).ok();
120 Err(Error::ResponseError(ResponseContent {
121 status,
122 content,
123 entity,
124 }))
125 }
126}