atrium_oauth/types/
client_metadata.rs1use crate::keyset::Keyset;
2use jose_jwk::JwkSet;
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Default)]
6pub struct OAuthClientMetadata {
7 pub client_id: String,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub client_uri: Option<String>,
10 pub redirect_uris: Vec<String>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub scope: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub grant_types: Option<Vec<String>>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub token_endpoint_auth_method: Option<String>,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub dpop_bound_access_tokens: Option<bool>,
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub jwks_uri: Option<String>,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub jwks: Option<JwkSet>,
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub token_endpoint_auth_signing_alg: Option<String>,
28}
29
30pub trait TryIntoOAuthClientMetadata {
31 type Error;
32
33 fn try_into_client_metadata(
34 self,
35 keyset: &Option<Keyset>,
36 ) -> core::result::Result<OAuthClientMetadata, Self::Error>;
37}