krabka_verified/
delegation_token.rs1use creusot_std::prelude::*;
4
5#[krabka_macros::model_type]
7pub enum TokenApi {
8 Create,
9 Renew,
10 Expire,
11 Describe,
12}
13
14#[krabka_macros::model_type]
16pub enum TokenApiAdmission {
17 Reject,
18 Allow,
19}
20
21#[krabka_macros::model_type]
23pub enum ScramCredentialSource {
24 Regular,
25 DelegationToken,
26 Unknown,
27}
28
29#[krabka_macros::model_type]
31pub struct TokenDeadlines {
32 pub max_timestamp_ms: i64,
33 pub initial_expiry_ms: i64,
34}
35
36#[krabka_macros::model_type]
38pub enum TokenCreateDecision {
39 Invalid,
40 Create(TokenDeadlines),
41}
42
43#[krabka_macros::model_type]
45pub enum TokenRenewDecision {
46 Invalid,
47 Expired,
48 Renew(i64),
49}
50
51#[krabka_macros::model_type]
53pub enum TokenExpireDecision {
54 Expired,
55 Delete,
56 Update(i64),
57}
58
59#[krabka_macros::model_type]
61pub enum TokenMutationKind {
62 Renew,
63 Expire,
64 Delete,
65}
66
67#[krabka_macros::model_type]
69pub enum TokenMutationState {
70 Missing,
71 Expected,
72 Applied,
73 Stale,
74}
75
76#[krabka_macros::model_type]
78pub enum TokenMutationDecision {
79 Append,
80 Retry,
81 Reject,
82}
83
84#[krabka_macros::model_type]
86pub struct TokenMutationFacts {
87 pub kind: TokenMutationKind,
88 pub state: TokenMutationState,
89 pub now_ms: i64,
90 pub expected_expiry_ms: i64,
91 pub incoming_expiry_ms: i64,
92 pub max_timestamp_ms: i64,
93 pub uncommitted_tail: bool,
94}
95
96mod token_mutation_decision;
97pub use token_mutation_decision::{
98 scram_credential_source, token_api_admission, token_describe_visible, token_mutation_decision,
99};
100
101mod token_is_active;
102pub use token_is_active::{create_token_deadlines, expire_token_deadline, renew_token_expiry};
103
104#[cfg(test)]
105mod tests;