use crate::error::Result;
use crate::wami::sts::StsSession;
use async_trait::async_trait;
#[async_trait]
pub trait SessionStore: Send + Sync {
async fn create_session(&mut self, session: StsSession) -> Result<StsSession>;
async fn get_session(&self, session_token: &str) -> Result<Option<StsSession>>;
async fn delete_session(&mut self, session_token: &str) -> Result<()>;
async fn list_sessions(&self, user_id: Option<&str>) -> Result<Vec<StsSession>>;
}