pub struct KeyVersionMetadata {
pub version: KeyVersion,
pub issued_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub status: KeyVersionStatus,
pub is_current: bool,
pub compromise_reason: Option<String>,
}Expand description
Metadata for a versioned encryption key
Fields§
§version: KeyVersionVersion identifier
issued_at: DateTime<Utc>When this version was issued
expires_at: DateTime<Utc>When this version expires (TTL)
status: KeyVersionStatusCurrent status in lifecycle
is_current: boolIs this the current version for new encryptions?
compromise_reason: Option<String>Reason for compromised status (if applicable)
Implementations§
Source§impl KeyVersionMetadata
impl KeyVersionMetadata
Sourcepub fn new(version: KeyVersion, ttl_days: u32) -> Self
pub fn new(version: KeyVersion, ttl_days: u32) -> Self
Create new key version metadata
Sourcepub fn is_expired(&self) -> bool
pub fn is_expired(&self) -> bool
Check if version is expired
Sourcepub fn is_expiring_soon(&self) -> bool
pub fn is_expiring_soon(&self) -> bool
Check if version is expiring soon (< 14 days)
Sourcepub fn time_until_expiry(&self) -> Duration
pub fn time_until_expiry(&self) -> Duration
Get time until expiration
Sourcepub fn ttl_consumed_percent(&self) -> u32
pub fn ttl_consumed_percent(&self) -> u32
Get percentage of TTL consumed
Sourcepub fn should_refresh(&self) -> bool
pub fn should_refresh(&self) -> bool
Check if refresh should trigger (80% of TTL consumed)
Sourcepub fn update_status(&mut self)
pub fn update_status(&mut self)
Update status based on current time
Sourcepub fn mark_compromised(&mut self, reason: impl Into<String>)
pub fn mark_compromised(&mut self, reason: impl Into<String>)
Mark key as compromised
Trait Implementations§
Source§impl Clone for KeyVersionMetadata
impl Clone for KeyVersionMetadata
Source§fn clone(&self) -> KeyVersionMetadata
fn clone(&self) -> KeyVersionMetadata
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for KeyVersionMetadata
impl RefUnwindSafe for KeyVersionMetadata
impl Send for KeyVersionMetadata
impl Sync for KeyVersionMetadata
impl Unpin for KeyVersionMetadata
impl UnwindSafe for KeyVersionMetadata
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request