pub struct MultiResourcePolicyProvider { /* private fields */ }Expand description
Composite ResourcePolicyProvider that delegates to a list of
sub-providers in order, returning the first Some hit.
Each concrete provider (S3ResourcePolicyProvider,
SnsResourcePolicyProvider, LambdaResourcePolicyProvider, …)
already gates on its own service prefix and returns None for
anything it doesn’t own, so composition is short-circuit and
order-independent. Server bootstrap builds one of these holding
every resource-owning service and passes it to
crate::dispatch::DispatchConfig::resource_policy_provider.
This is the extension point for future resource-owning services: adding KMS key policies (or anything else) is a one-line push at bootstrap, never a core-crate refactor.
Implementations§
Source§impl MultiResourcePolicyProvider
impl MultiResourcePolicyProvider
Sourcepub fn new(providers: Vec<Arc<dyn ResourcePolicyProvider>>) -> Self
pub fn new(providers: Vec<Arc<dyn ResourcePolicyProvider>>) -> Self
Build a composite from a list of providers.
Shared constructor returning the composite as an
Arc<dyn ResourcePolicyProvider>, matching the signature of
DispatchConfig::resource_policy_provider.
Trait Implementations§
Source§impl ResourcePolicyProvider for MultiResourcePolicyProvider
impl ResourcePolicyProvider for MultiResourcePolicyProvider
Source§fn resource_policy(&self, service: &str, resource_arn: &str) -> Option<String>
fn resource_policy(&self, service: &str, resource_arn: &str) -> Option<String>
resource_arn on service. Both arguments are lowercase-ish
("s3", "arn:aws:s3:::my-bucket"); implementations should
match the service prefix they own and return None for
anything else so providers can be composed safely.