OpenAgentID documentation
Source referencesRust module referencearsenal-sdk

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.

On this page