pub struct CapabilityDiscovery;Expand description
Automatic capability discovery engine that introspects server configuration
Implementations§
Source§impl CapabilityDiscovery
impl CapabilityDiscovery
Sourcepub fn discover_capabilities<P>(
schema_registry: &SchemaRegistry,
resource_handlers: &HashMap<String, Arc<ResourceHandler>>,
supported_operations: &HashMap<String, Vec<ScimOperation>>,
_provider: &P,
) -> Result<ProviderCapabilities, ScimError>where
P: ResourceProvider,
pub fn discover_capabilities<P>(
schema_registry: &SchemaRegistry,
resource_handlers: &HashMap<String, Arc<ResourceHandler>>,
supported_operations: &HashMap<String, Vec<ScimOperation>>,
_provider: &P,
) -> Result<ProviderCapabilities, ScimError>where
P: ResourceProvider,
Discover all provider capabilities from the current server state
This method introspects the registered resource types, schemas, and provider implementation to automatically determine what capabilities are supported.
Sourcepub fn discover_capabilities_with_introspection<P>(
schema_registry: &SchemaRegistry,
resource_handlers: &HashMap<String, Arc<ResourceHandler>>,
supported_operations: &HashMap<String, Vec<ScimOperation>>,
provider: &P,
) -> Result<ProviderCapabilities, ScimError>where
P: ResourceProvider + CapabilityIntrospectable,
pub fn discover_capabilities_with_introspection<P>(
schema_registry: &SchemaRegistry,
resource_handlers: &HashMap<String, Arc<ResourceHandler>>,
supported_operations: &HashMap<String, Vec<ScimOperation>>,
provider: &P,
) -> Result<ProviderCapabilities, ScimError>where
P: ResourceProvider + CapabilityIntrospectable,
Discover capabilities with provider introspection
This version works with providers that implement CapabilityIntrospectable to get provider-specific capability information.
Sourcepub fn generate_service_provider_config(
capabilities: &ProviderCapabilities,
) -> ServiceProviderConfig
pub fn generate_service_provider_config( capabilities: &ProviderCapabilities, ) -> ServiceProviderConfig
Generate RFC 7644 compliant ServiceProviderConfig from discovered capabilities
Auto Trait Implementations§
impl Freeze for CapabilityDiscovery
impl RefUnwindSafe for CapabilityDiscovery
impl Send for CapabilityDiscovery
impl Sync for CapabilityDiscovery
impl Unpin for CapabilityDiscovery
impl UnwindSafe for CapabilityDiscovery
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> TenantValidator for T
impl<T> TenantValidator for T
Source§fn validate_tenant_context(
&self,
expected_tenant_id: &str,
context: &RequestContext,
) -> Result<(), String>
fn validate_tenant_context( &self, expected_tenant_id: &str, context: &RequestContext, ) -> Result<(), String>
Validate that the context has the expected tenant.
Source§fn validate_single_tenant_context(
&self,
context: &RequestContext,
) -> Result<(), String>
fn validate_single_tenant_context( &self, context: &RequestContext, ) -> Result<(), String>
Validate that the context is for single-tenant operation.
Source§fn require_tenant_context(&self, context: &RequestContext) -> Result<(), String>
fn require_tenant_context(&self, context: &RequestContext) -> Result<(), String>
Extract tenant context or return error for multi-tenant operations.