pub struct RndcKeyRotationStatus {
pub created_at: String,
pub rotate_at: Option<String>,
pub last_rotated_at: Option<String>,
pub rotation_count: u32,
}Expand description
RNDC key rotation status and tracking information.
Tracks the lifecycle of operator-managed RNDC keys including creation time, next rotation time, last rotation time, and rotation count.
This status is automatically updated by the instance reconciler whenever keys are created or rotated. It provides visibility into key age and rotation history for compliance and operational purposes.
§Examples
# Initial key creation (no rotation yet)
rndcKeyRotation:
createdAt: "2025-01-26T10:00:00Z"
rotateAt: "2025-02-25T10:00:00Z"
rotationCount: 0
# After first rotation
rndcKeyRotation:
createdAt: "2025-02-25T10:00:00Z"
rotateAt: "2025-03-27T10:00:00Z"
lastRotatedAt: "2025-02-25T10:00:00Z"
rotationCount: 1Fields§
§created_at: StringTimestamp when the current key was created (ISO 8601 format).
This timestamp is set when:
- A new RNDC key is generated for the first time
- An existing key is rotated (timestamp updates to rotation time)
Example: "2025-01-26T10:00:00Z"
rotate_at: Option<String>Timestamp when the key will be rotated next (ISO 8601 format).
Calculated as: created_at + rotate_after
Only present if auto_rotate is enabled. When auto_rotate is disabled,
this field will be empty as no automatic rotation is scheduled.
Example: "2025-02-25T10:00:00Z" (30 days after creation)
last_rotated_at: Option<String>Timestamp of the last successful rotation (ISO 8601 format).
Only present after at least one rotation has occurred. For newly-created keys that have never been rotated, this field will be empty.
This is useful for tracking the actual rotation history and verifying that rotation is working as expected.
Example: "2025-02-25T10:00:00Z"
rotation_count: u32Number of times the key has been rotated.
Starts at 0 for newly-created keys and increments by 1 each time the
key is rotated. This counter persists across key rotations and provides
a historical count for compliance and audit purposes.
Example: 5 (key has been rotated 5 times)
Trait Implementations§
Source§impl Clone for RndcKeyRotationStatus
impl Clone for RndcKeyRotationStatus
Source§fn clone(&self) -> RndcKeyRotationStatus
fn clone(&self) -> RndcKeyRotationStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RndcKeyRotationStatus
impl Debug for RndcKeyRotationStatus
Source§impl Default for RndcKeyRotationStatus
impl Default for RndcKeyRotationStatus
Source§fn default() -> RndcKeyRotationStatus
fn default() -> RndcKeyRotationStatus
Source§impl<'de> Deserialize<'de> for RndcKeyRotationStatus
impl<'de> Deserialize<'de> for RndcKeyRotationStatus
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for RndcKeyRotationStatus
impl JsonSchema for RndcKeyRotationStatus
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for RndcKeyRotationStatus
impl PartialEq for RndcKeyRotationStatus
Source§impl Serialize for RndcKeyRotationStatus
impl Serialize for RndcKeyRotationStatus
impl StructuralPartialEq for RndcKeyRotationStatus
Auto Trait Implementations§
impl Freeze for RndcKeyRotationStatus
impl RefUnwindSafe for RndcKeyRotationStatus
impl Send for RndcKeyRotationStatus
impl Sync for RndcKeyRotationStatus
impl Unpin for RndcKeyRotationStatus
impl UnwindSafe for RndcKeyRotationStatus
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].