pub struct RecordReferenceWithTimestamp {
pub api_version: String,
pub kind: String,
pub name: String,
pub namespace: String,
pub record_name: Option<String>,
pub last_reconciled_at: Option<Time>,
}Expand description
Reference to a DNS record with reconciliation timestamp tracking.
This struct tracks which records are assigned to a zone and whether
they need reconciliation based on the lastReconciledAt timestamp.
Event-Driven Pattern:
- Records with
lastReconciledAt == Noneneed reconciliation - Records with
lastReconciledAt == Some(timestamp)are already configured
This pattern prevents redundant BIND9 API calls for already-configured records,
following the same architecture as Bind9Instance.status.selectedZones[].
Fields§
§api_version: StringAPI version of the record (e.g., “bindy.firestoned.io/v1beta1”)
kind: StringKind of the record (e.g., “ARecord”, “CNAMERecord”, “MXRecord”)
name: StringName of the record resource
namespace: StringNamespace of the record resource
record_name: Option<String>DNS record name from spec.name (e.g., “www”, “@”, “_service._tcp”)
last_reconciled_at: Option<Time>Timestamp when this record was last successfully reconciled to BIND9.
None= Record needs reconciliation (new or spec changed)Some(timestamp)= Record already configured, skip reconciliation
This field is set by the record operator after successful BIND9 update.
The zone controller resets it to None when spec changes or zone is recreated.
Trait Implementations§
Source§impl Clone for RecordReferenceWithTimestamp
impl Clone for RecordReferenceWithTimestamp
Source§fn clone(&self) -> RecordReferenceWithTimestamp
fn clone(&self) -> RecordReferenceWithTimestamp
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecordReferenceWithTimestamp
impl Debug for RecordReferenceWithTimestamp
Source§impl<'de> Deserialize<'de> for RecordReferenceWithTimestamp
impl<'de> Deserialize<'de> for RecordReferenceWithTimestamp
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 RecordReferenceWithTimestamp
impl JsonSchema for RecordReferenceWithTimestamp
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 RecordReferenceWithTimestamp
impl PartialEq for RecordReferenceWithTimestamp
Source§fn eq(&self, other: &RecordReferenceWithTimestamp) -> bool
fn eq(&self, other: &RecordReferenceWithTimestamp) -> bool
self and other values to be equal, and is used by ==.impl Eq for RecordReferenceWithTimestamp
impl StructuralPartialEq for RecordReferenceWithTimestamp
Auto Trait Implementations§
impl Freeze for RecordReferenceWithTimestamp
impl RefUnwindSafe for RecordReferenceWithTimestamp
impl Send for RecordReferenceWithTimestamp
impl Sync for RecordReferenceWithTimestamp
impl Unpin for RecordReferenceWithTimestamp
impl UnwindSafe for RecordReferenceWithTimestamp
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§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].