propelauth 0.23.3

A Rust crate for managing authentication and authorization with support for multi-tenant / B2B products, powered by PropelAuth
Documentation
use std::collections::HashMap;
use serde_json::Value;
use uuid::Uuid;
use crate::models::{UserInOrg, UserMetadata};

pub type OrgRole = String;

#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct ValidateApiKeyResponse {
    pub metadata: Option<serde_json::Value>,
    pub user: Option<UserMetadata>,
    pub org: Option<OrgMetadata>,
    pub user_in_org: Option<UserInOrg>,
    pub user_id: Option<String>,
    pub org_id: Option<String>,
}

#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct ValidatePersonalApiKeyResponse {
    pub metadata: Option<serde_json::Value>,
    pub user: UserMetadata,
}

#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct ValidateOrgApiKeyResponse {
    pub metadata: Option<serde_json::Value>,
    pub user: Option<UserMetadata>,
    pub org: OrgMetadata,
    pub user_in_org: Option<UserInOrg>,
}

#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct OrgMetadata {
    pub org_id: Uuid,
    pub org_name: String,
    pub can_setup_saml: bool,
    pub max_users: Option<i32>,
    pub metadata: MetadataHashOfValue,
}

pub type MetadataHashOfValue = HashMap<String, Value>;