Skip to main content

ic_auth_protocol_types/
common.rs

1//! Passive application authentication common contracts.
2//! Adapted from Canic; see docs/design/canic-source-review.md.
3
4use crate::{AudienceId, AuthRole};
5use candid::CandidType;
6use serde::{Deserialize, Serialize};
7
8//
9// DelegationAudience
10//
11
12#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
13pub enum DelegationAudience {
14    Fleet(AudienceId),
15}
16
17//
18// DelegatedRoleGrant
19//
20
21#[derive(CandidType, Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
22pub struct DelegatedRoleGrant {
23    pub target: AuthRole,
24    pub scopes: Vec<String>,
25}
26
27//
28// AuthRequestMetadata
29//
30
31#[derive(CandidType, Clone, Copy, Debug, Deserialize, Eq, PartialEq, Serialize)]
32pub struct AuthRequestMetadata {
33    pub request_id: [u8; 32],
34    pub ttl_ns: u64,
35}