use crate::server::deferred::PendingStore;
use crate::server::policy::ResourceConsentPolicy;
use crate::server::resource::opaque::OpaqueAccessStore;
#[derive(Clone)]
pub enum ResourceAccessMode<P, S, O>
where
P: ResourceConsentPolicy,
S: PendingStore,
O: OpaqueAccessStore + Clone,
{
IdentityBased,
PsAsserted {
require_auth_token: bool,
access_server_url: Option<String>,
person_server_fallback: Option<String>,
},
ResourceManaged {
policy: P,
pending: S,
opaque: O,
interaction_url: String,
pending_base_url: String,
pending_path: String,
pending_ttl_secs: u64,
},
}
pub type ResourceAccessPolicy = ResourceAccessMode<
crate::server::policy::AlwaysGrantResourcePolicy,
crate::server::deferred::InMemoryPendingStore,
crate::server::resource::InMemoryOpaqueAccessStore,
>;