ate-auth 1.9.0

Represents a standardized data model and API for authenticating an ATE chain-of-trust
#![allow(unused_imports)]
use ate::prelude::*;
use serde::*;
use tracing::{debug, error, info, instrument, span, trace, warn, Level};

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct GroupDetailsRequest {
    pub group: String,
    pub session: Option<AteSessionGroup>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct GroupDetailsRoleResponse {
    pub purpose: AteRolePurpose,
    pub name: String,
    pub read: AteHash,
    pub private_read: PublicEncryptKey,
    pub write: PublicSignKey,
    pub hidden: bool,
    pub members: Vec<String>,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct GroupDetailsResponse {
    pub key: PrimaryKey,
    pub name: String,
    pub roles: Vec<GroupDetailsRoleResponse>,
    pub gid: u32,
}

#[derive(Debug, Serialize, Deserialize, Clone)]
pub enum GroupDetailsFailed {
    GroupNotFound,
    NoMasterKey,
    NoAccess,
    InternalError(u16),
}

impl<E> From<E> for GroupDetailsFailed
where
    E: std::error::Error + Sized,
{
    fn from(err: E) -> Self {
        GroupDetailsFailed::InternalError(ate::utils::obscure_error(err))
    }
}