arsenal-sdk · capability
Declared module signatures, types, configuration, and source documentation.
Source: arsenal/crates/arsenal-sdk/src/capability.rs. SHA-256: b7881bbba9b47c3c8eff9d4396c08c7615331729b09d6caf7e11c9ffeac6723b.
This source reference follows declared modules and preserves feature attributes. It includes public declarations and implementation methods in those modules. Private-module exports and trait resolution still require the compiler; not every declaration is a crate-root import. Function bodies and constant values are omitted. Source comments describe their implementation context and are not a production deployment claim.
capability::CapabilityRequest
Builder for capability requests
#[derive(Debug)]
pub struct CapabilityRequest {
}Source line: 18.
capability::CapabilityRequest::new
Create a new capability request
#[must_use]
pub fn new() -> Self;Source line: 36.
capability::CapabilityRequest::scope
Add a scope to the request
Errors
Returns an error if the scope is invalid
pub fn scope(mut self, scope: &str) -> ArsenalResult<Self>;Source line: 51.
capability::CapabilityRequest::scopes
Add multiple scopes
Errors
Returns an error if any scope is invalid
pub fn scopes(mut self, scopes: &[&str]) -> ArsenalResult<Self>;Source line: 61.
capability::CapabilityRequest::ttl_seconds
Set the TTL
#[must_use]
pub fn ttl_seconds(mut self, ttl: i64) -> Self;Source line: 71.
capability::CapabilityRequest::audience
Set the audience (target service identifier)
#[must_use]
pub fn audience(mut self, audience: impl Into<String>) -> Self;Source line: 78.
capability::CapabilityRequest::constraints
Set constraints
#[must_use]
pub fn constraints(mut self, constraints: Constraints) -> Self;Source line: 85.
capability::CapabilityRequest::require_pop
Require proof-of-possession
#[must_use]
pub fn require_pop(mut self) -> Self;Source line: 92.
capability::CapabilityRequest::rate_limits
Set rate limits
#[must_use]
pub fn rate_limits(mut self, limits: RateLimits) -> Self;Source line: 100.
capability::CapabilityRequest::budget
Set usage budget
#[must_use]
pub fn budget(mut self, budget: UsageBudget) -> Self;Source line: 107.
capability::CapabilityRequest::get_scopes
Get the requested scopes
#[must_use]
pub fn get_scopes(&self) -> &ScopeSet;Source line: 114.
capability::CapabilityRequest::get_ttl
Get the requested TTL
#[must_use]
pub fn get_ttl(&self) -> i64;Source line: 120.
capability::CapabilityRequest::get_audience
Get the requested audience
#[must_use]
pub fn get_audience(&self) -> &str;Source line: 126.
capability::CapabilityRequest::constraints_ref
Get constraints
#[must_use]
pub fn constraints_ref(&self) -> Option<&Constraints>;Source line: 132.
capability::CapabilityRequest::build_claims
Build token claims (for local use - normally the broker does this)
Errors
Returns an error if the request is invalid
pub fn build_claims(
self,
agent_did: OasDid,
tenant_id: TenantId,
issuer: &str,
audience: &str,
) -> ArsenalResult<TokenClaims>;Source line: 140.
capability::CapabilityHandle
Handle for using a granted capability
pub struct CapabilityHandle {
}Source line: 175.
capability::CapabilityHandle::new
Create a new capability handle
#[must_use]
pub fn new(token: AgentCapabilityToken) -> Self;Source line: 187.
capability::CapabilityHandle::token_id
Get the token ID
#[must_use]
pub fn token_id(&self) -> &TokenId;Source line: 198.
capability::CapabilityHandle::token
Get the token
#[must_use]
pub fn token(&self) -> &AgentCapabilityToken;Source line: 204.
capability::CapabilityHandle::is_valid
Check if the capability is valid
pub async fn is_valid(&self) -> bool;Source line: 209.
capability::CapabilityHandle::is_expired
Check if the capability is expired
#[must_use]
pub fn is_expired(&self) -> bool;Source line: 215.
capability::CapabilityHandle::remaining_ttl
Get remaining TTL
#[must_use]
pub fn remaining_ttl(&self) -> chrono::Duration;Source line: 221.
capability::CapabilityHandle::allows_scope
Check if a scope is allowed
#[must_use]
pub fn allows_scope(&self, scope: &Scope) -> bool;Source line: 227.
capability::CapabilityHandle::record_request
Record a request (for budget tracking)
Errors
Returns an error if the budget is exceeded
pub fn record_request(&self) -> ArsenalResult<()>;Source line: 235.
capability::CapabilityHandle::record_bytes
Record bytes transferred
Errors
Returns an error if the budget is exceeded
pub fn record_bytes(&self, bytes: u64) -> ArsenalResult<()>;Source line: 243.
capability::CapabilityHandle::record_cost
Record cost units
Errors
Returns an error if the budget is exceeded
pub fn record_cost(&self, units: u64) -> ArsenalResult<()>;Source line: 251.
capability::CapabilityHandle::usage_stats
Get usage statistics
#[must_use]
pub fn usage_stats(&self) -> arsenal_core::limits::UsageStats;Source line: 257.
capability::CapabilityHandle::remaining_budget
Get remaining budget
#[must_use]
pub fn remaining_budget(&self) -> arsenal_core::limits::RemainingBudget;Source line: 263.
capability::CapabilityHandle::revoke
Revoke this capability
pub async fn revoke(&self);Source line: 268.
capability::CapabilityValidator
Capability validator for checking requests
pub struct CapabilityValidator {
}Source line: 284.
capability::CapabilityValidator::new
Create a new validator
#[must_use]
pub fn new() -> Self;Source line: 296.
capability::CapabilityValidator::with_allowed_scopes
Set allowed scopes
#[must_use]
pub fn with_allowed_scopes(mut self, scopes: ScopeSet) -> Self;Source line: 306.
capability::CapabilityValidator::with_max_ttl
Set maximum TTL
#[must_use]
pub fn with_max_ttl(mut self, seconds: i64) -> Self;Source line: 313.
capability::CapabilityValidator::require_pop
Require proof-of-possession
#[must_use]
pub fn require_pop(mut self) -> Self;Source line: 320.
capability::CapabilityValidator::validate
Validate a capability request
Errors
Returns an error if the request is invalid
pub fn validate(&self, request: &CapabilityRequest) -> ArsenalResult<()>;Source line: 329.