pub struct AdoptionSummary {
pub last_adoption_at: Option<String>,
pub last_adopted_count: Option<u32>,
pub total_adopted: Option<u64>,
pub skipped_by_retention: Option<u32>,
pub last_scan_matched: Option<u32>,
pub last_scan_unmatched: Option<u32>,
pub scan_requested_at: Option<String>,
pub scan_requested_identity: Option<String>,
}Expand description
Summary of the most recent automatic adoption pass for a SnapshotPolicy —
discovered snapshots whose resolved identity matched this recipe and were
re-attached (see Origin::Adopted), plus an on-demand re-scan request/ack
pair mirroring the repository-level catalog-scan-requested-at annotation
contract.
Fields§
§last_adoption_at: Option<String>RFC3339 timestamp of the last adoption pass that adopted at least one snapshot.
last_adopted_count: Option<u32>Number of discovered Snapshot CRs adopted by the last adoption pass.
total_adopted: Option<u64>Running total of Snapshot CRs ever adopted into this recipe.
skipped_by_retention: Option<u32>Identity-matching discovered snapshots the last adoption pass left
discovered because spec.retention would prune them immediately under
the effective deletionPolicy (Retain/Orphan — a CR-only prune that
would re-discover and re-adopt forever). 0/absent when nothing was
withheld. See the AdoptionSkippedByRetention event for the levers.
last_scan_matched: Option<u32>Discovered snapshots whose kopia identity matched this policy at the most
recent adoption pass, counted BEFORE the own-id and retention filters —
so it reads “history relevant to me exists in the catalog”, independent
of whether that pass adopted anything. A multi-repository policy SUMS
this across the ready repositories of the pass. 0 together with
lastScanUnmatched: 0 means the catalog was empty at that pass; absent
means no adoption pass has run yet. Neutral inventory, not a verdict:
0 matched beside a non-zero lastScanUnmatched is the ordinary shape
of a new policy on a shared repository, and is also what a
post-disaster-recovery identity mismatch looks like — compare
status.resolved.identity with the pre-disaster configuration to tell
them apart.
last_scan_unmatched: Option<u32>Discovered snapshots the most recent adoption pass saw that did NOT match
this policy’s identity (other policies’ or other clusters’ history in a
shared repository). Same counting rules as lastScanMatched: pre-filter,
summed across a multi-repository policy’s ready repositories, 0/0
for an empty catalog, absent when no pass has run.
scan_requested_at: Option<String>RFC3339 token echoing an in-flight on-demand adoption scan request for this policy’s identity; cleared once honored.
scan_requested_identity: Option<String>The resolved kopia identity the requested scan was scoped to, pinned at request time so a later identity-changing edit can’t retarget an in-flight scan.
Trait Implementations§
Source§impl Clone for AdoptionSummary
impl Clone for AdoptionSummary
Source§fn clone(&self) -> AdoptionSummary
fn clone(&self) -> AdoptionSummary
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AdoptionSummary
impl Debug for AdoptionSummary
Source§impl Default for AdoptionSummary
impl Default for AdoptionSummary
Source§fn default() -> AdoptionSummary
fn default() -> AdoptionSummary
Source§impl<'de> Deserialize<'de> for AdoptionSummary
impl<'de> Deserialize<'de> for AdoptionSummary
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>,
impl Eq for AdoptionSummary
Source§impl JsonSchema for AdoptionSummary
impl JsonSchema for AdoptionSummary
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 AdoptionSummary
impl PartialEq for AdoptionSummary
Source§fn eq(&self, other: &AdoptionSummary) -> bool
fn eq(&self, other: &AdoptionSummary) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for AdoptionSummary
impl Serialize for AdoptionSummary
impl StructuralPartialEq for AdoptionSummary
Auto Trait Implementations§
impl Freeze for AdoptionSummary
impl RefUnwindSafe for AdoptionSummary
impl Send for AdoptionSummary
impl Sync for AdoptionSummary
impl Unpin for AdoptionSummary
impl UnsafeUnpin for AdoptionSummary
impl UnwindSafe for AdoptionSummary
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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<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<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