shield-oidc 0.2.2

OpenID Connect method for Shield.
Documentation
use chrono::{DateTime, FixedOffset};
use secrecy::SecretString;

#[derive(Clone, Debug)]
pub struct OidcConnection {
    pub id: String,
    pub identifier: String,
    pub token_type: String,
    pub access_token: SecretString,
    pub refresh_token: Option<SecretString>,
    pub id_token: Option<SecretString>,
    pub expired_at: Option<DateTime<FixedOffset>>,
    pub scopes: Option<Vec<String>>,
    pub provider_id: String,
    pub user_id: String,
}

#[derive(Clone, Debug)]
pub struct CreateOidcConnection {
    pub identifier: String,
    pub token_type: String,
    pub access_token: SecretString,
    pub refresh_token: Option<SecretString>,
    pub id_token: Option<SecretString>,
    pub expired_at: Option<DateTime<FixedOffset>>,
    pub scopes: Option<Vec<String>>,
    pub provider_id: String,
    pub user_id: String,
}

#[derive(Clone, Debug)]
pub struct UpdateOidcConnection {
    pub id: String,
    pub token_type: Option<String>,
    pub access_token: Option<SecretString>,
    pub refresh_token: Option<Option<SecretString>>,
    pub id_token: Option<Option<SecretString>>,
    pub expired_at: Option<Option<DateTime<FixedOffset>>>,
    pub scopes: Option<Option<Vec<String>>>,
}