keycloak/rest/generated_rest/client_attribute_certificate.rs
1use super::*;
2
3impl<TS: KeycloakTokenSupplier> KeycloakAdmin<TS> {
4 // <h4>Client Attribute Certificate</h4>
5
6 /// Get key info
7 ///
8 /// Parameters:
9 ///
10 /// - `realm`: realm name (not id!)
11 /// - `client_uuid`: id of client (not client-id!)
12 /// - `attr`
13 ///
14 /// Resource: `Client Attribute Certificate`
15 ///
16 /// `GET /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}`
17 ///
18 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_get_adminrealmsrealmclientsclient_uuidcertificatesattr>
19 ///
20 /// REST method: `GET /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}`
21 pub async fn realm_clients_with_client_uuid_certificates_with_attr_get(
22 &self,
23 realm: &str,
24 client_uuid: &str,
25 attr: &str,
26 ) -> Result<CertificateRepresentation, KeycloakError> {
27 let realm = p(realm);
28 let client_uuid = p(client_uuid);
29 let attr = p(attr);
30 let builder = self
31 .client
32 .get(format!(
33 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}",
34 self.url
35 ))
36 .bearer_auth(self.token_supplier.get(&self.url).await?);
37 let response = builder.send().await?;
38 Ok(error_check(response).await?.json().await?)
39 }
40
41 /// Get a keystore file for the client, containing private key and public certificate
42 ///
43 /// Parameters:
44 ///
45 /// - `realm`: realm name (not id!)
46 /// - `client_uuid`: id of client (not client-id!)
47 /// - `attr`
48 /// - `body`
49 ///
50 /// Resource: `Client Attribute Certificate`
51 ///
52 /// `POST /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/download`
53 ///
54 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmclientsclient_uuidcertificatesattrdownload>
55 ///
56 /// REST method: `POST /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}/download`
57 pub async fn realm_clients_with_client_uuid_certificates_with_attr_download_post(
58 &self,
59 realm: &str,
60 client_uuid: &str,
61 attr: &str,
62 body: KeyStoreConfig,
63 ) -> Result<TypeString, KeycloakError> {
64 let realm = p(realm);
65 let client_uuid = p(client_uuid);
66 let attr = p(attr);
67 let builder = self
68 .client
69 .post(format!(
70 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/download",
71 self.url
72 ))
73 .json(&body)
74 .bearer_auth(self.token_supplier.get(&self.url).await?);
75 let response = builder.send().await?;
76 Ok(error_check(response).await?.text().await.map(From::from)?)
77 }
78
79 /// Generate a new certificate with new key pair
80 ///
81 /// Parameters:
82 ///
83 /// - `realm`: realm name (not id!)
84 /// - `client_uuid`: id of client (not client-id!)
85 /// - `attr`
86 ///
87 /// Resource: `Client Attribute Certificate`
88 ///
89 /// `POST /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/generate`
90 ///
91 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmclientsclient_uuidcertificatesattrgenerate>
92 ///
93 /// REST method: `POST /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}/generate`
94 pub async fn realm_clients_with_client_uuid_certificates_with_attr_generate_post(
95 &self,
96 realm: &str,
97 client_uuid: &str,
98 attr: &str,
99 ) -> Result<CertificateRepresentation, KeycloakError> {
100 let realm = p(realm);
101 let client_uuid = p(client_uuid);
102 let attr = p(attr);
103 let builder = self
104 .client
105 .post(format!(
106 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/generate",
107 self.url
108 ))
109 .bearer_auth(self.token_supplier.get(&self.url).await?);
110 let response = builder.send().await?;
111 Ok(error_check(response).await?.json().await?)
112 }
113
114 /// Generate a new keypair and certificate, and get the private key file
115 ///
116 /// Generates a keypair and certificate and serves the private key in a specified keystore format.
117 /// Only generated public certificate is saved in Keycloak DB - the private key is not.
118 ///
119 /// Parameters:
120 ///
121 /// - `realm`: realm name (not id!)
122 /// - `client_uuid`: id of client (not client-id!)
123 /// - `attr`
124 /// - `body`
125 ///
126 /// Resource: `Client Attribute Certificate`
127 ///
128 /// `POST /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/generate-and-download`
129 ///
130 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmclientsclient_uuidcertificatesattrgenerate_and_download>
131 ///
132 /// REST method: `POST /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}/generate-and-download`
133 pub async fn realm_clients_with_client_uuid_certificates_with_attr_generate_and_download_post(
134 &self,
135 realm: &str,
136 client_uuid: &str,
137 attr: &str,
138 body: KeyStoreConfig,
139 ) -> Result<TypeString, KeycloakError> {
140 let realm = p(realm);
141 let client_uuid = p(client_uuid);
142 let attr = p(attr);
143 let builder = self
144 .client
145 .post(format!(
146 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/generate-and-download",
147 self.url
148 ))
149 .json(&body)
150 .bearer_auth(self.token_supplier.get(&self.url).await?);
151 let response = builder.send().await?;
152 Ok(error_check(response).await?.text().await.map(From::from)?)
153 }
154
155 /// Upload certificate and eventually private key
156 ///
157 /// Parameters:
158 ///
159 /// - `realm`: realm name (not id!)
160 /// - `client_uuid`: id of client (not client-id!)
161 /// - `attr`
162 ///
163 /// Resource: `Client Attribute Certificate`
164 ///
165 /// `POST /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/upload`
166 ///
167 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmclientsclient_uuidcertificatesattrupload>
168 ///
169 /// REST method: `POST /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}/upload`
170 pub async fn realm_clients_with_client_uuid_certificates_with_attr_upload_post(
171 &self,
172 realm: &str,
173 client_uuid: &str,
174 attr: &str,
175 ) -> Result<CertificateRepresentation, KeycloakError> {
176 let realm = p(realm);
177 let client_uuid = p(client_uuid);
178 let attr = p(attr);
179 let builder = self
180 .client
181 .post(format!(
182 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/upload",
183 self.url
184 ))
185 .bearer_auth(self.token_supplier.get(&self.url).await?);
186 let response = builder.send().await?;
187 Ok(error_check(response).await?.json().await?)
188 }
189
190 /// Upload only certificate, not private key
191 ///
192 /// Parameters:
193 ///
194 /// - `realm`: realm name (not id!)
195 /// - `client_uuid`: id of client (not client-id!)
196 /// - `attr`
197 ///
198 /// Resource: `Client Attribute Certificate`
199 ///
200 /// `POST /admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/upload-certificate`
201 ///
202 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmclientsclient_uuidcertificatesattrupload_certificate>
203 ///
204 /// REST method: `POST /admin/realms/{realm}/clients/{client-uuid}/certificates/{attr}/upload-certificate`
205 pub async fn realm_clients_with_client_uuid_certificates_with_attr_upload_certificate_post(
206 &self,
207 realm: &str,
208 client_uuid: &str,
209 attr: &str,
210 ) -> Result<CertificateRepresentation, KeycloakError> {
211 let realm = p(realm);
212 let client_uuid = p(client_uuid);
213 let attr = p(attr);
214 let builder = self
215 .client
216 .post(format!(
217 "{}/admin/realms/{realm}/clients/{client_uuid}/certificates/{attr}/upload-certificate",
218 self.url
219 ))
220 .bearer_auth(self.token_supplier.get(&self.url).await?);
221 let response = builder.send().await?;
222 Ok(error_check(response).await?.json().await?)
223 }
224
225 /// Uploads a certificate, prepares the jwks or public key associated, and returns the certificate representation.
226 ///
227 /// Parameters:
228 ///
229 /// - `realm`: realm name (not id!)
230 ///
231 /// Resource: `Client Attribute Certificate`
232 ///
233 /// `POST /admin/realms/{realm}/identity-provider/upload-certificate`
234 ///
235 /// Documentation: <https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html#_post_adminrealmsrealmidentity_providerupload_certificate>
236 pub async fn realm_identity_provider_upload_certificate_post(
237 &self,
238 realm: &str,
239 ) -> Result<CertificateRepresentation, KeycloakError> {
240 let realm = p(realm);
241 let builder = self
242 .client
243 .post(format!(
244 "{}/admin/realms/{realm}/identity-provider/upload-certificate",
245 self.url
246 ))
247 .bearer_auth(self.token_supplier.get(&self.url).await?);
248 let response = builder.send().await?;
249 Ok(error_check(response).await?.json().await?)
250 }
251}
252// not all paths processed
253// left 249