use super::PlatformSubject;
use crate::{Permission, ScopePath, TenantId};
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct PlatformAccessRequest {
pub subject: PlatformSubject,
pub permission: Permission,
}
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TenantDataScopeQuery {
pub subject: PlatformSubject,
pub permission: Permission,
}
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TenantDataAccessRequest {
pub subject: PlatformSubject,
pub permission: Permission,
pub tenant: TenantId,
}
#[derive(Clone, Debug, Eq, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TenantScopedDataAccessRequest {
pub subject: PlatformSubject,
pub permission: Permission,
pub tenant: TenantId,
pub target: ScopePath,
}