use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(test, derive(Default))]
pub struct OAuth2Oidc {
#[serde(rename = "$id")]
pub id: String,
#[serde(rename = "enabled")]
pub enabled: bool,
#[serde(rename = "clientId")]
pub client_id: String,
#[serde(rename = "clientSecret")]
pub client_secret: String,
#[serde(rename = "wellKnownURL")]
pub well_known_url: String,
#[serde(rename = "authorizationURL")]
pub authorization_url: String,
#[serde(rename = "tokenURL")]
pub token_url: String,
#[serde(rename = "userInfoURL")]
pub user_info_url: String,
#[serde(rename = "prompt")]
pub prompt: Vec<crate::enums::OAuth2OidcPrompt>,
#[serde(rename = "maxAge")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_age: Option<i64>,
}
impl OAuth2Oidc {
pub fn id(&self) -> &String {
&self.id
}
pub fn enabled(&self) -> &bool {
&self.enabled
}
pub fn client_id(&self) -> &String {
&self.client_id
}
pub fn client_secret(&self) -> &String {
&self.client_secret
}
pub fn well_known_url(&self) -> &String {
&self.well_known_url
}
pub fn authorization_url(&self) -> &String {
&self.authorization_url
}
pub fn token_url(&self) -> &String {
&self.token_url
}
pub fn user_info_url(&self) -> &String {
&self.user_info_url
}
pub fn prompt(&self) -> &Vec<crate::enums::OAuth2OidcPrompt> {
&self.prompt
}
pub fn set_max_age(mut self, max_age: i64) -> Self {
self.max_age = Some(max_age);
self
}
pub fn max_age(&self) -> Option<&i64> {
self.max_age.as_ref()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_o_auth2_oidc_creation() {
let _model = <OAuth2Oidc as Default>::default();
let _ = _model.id();
let _ = _model.enabled();
let _ = _model.client_id();
let _ = _model.client_secret();
let _ = _model.well_known_url();
let _ = _model.authorization_url();
let _ = _model.token_url();
let _ = _model.user_info_url();
let _ = _model.prompt();
}
#[test]
fn test_o_auth2_oidc_serialization() {
let model = <OAuth2Oidc as Default>::default();
let json = serde_json::to_string(&model);
assert!(json.is_ok());
let deserialized: Result<OAuth2Oidc, _> = serde_json::from_str(&json.unwrap());
assert!(deserialized.is_ok());
}
}