pub enum ScheduleDeletePolicy {
Retain,
Delete,
}Expand description
What the deletion of a SnapshotSchedule does to the Snapshot CRs it
produced (which Kubernetes GC cascade-deletes via their ownerReference).
Default Retain: the CRs are removed but their kopia snapshots survive and
the catalog rediscovers them as origin: discovered. Delete opts into the
cascade: each Snapshot’s own deletionPolicy applies.
Deliberately 2-variant (not reusing DeletionPolicy): an Orphan in
cascade position would differ from Retain only in per-CR event/metric
bookkeeping — an invalid state made unrepresentable. The guard’s Retain
is exactly DeletionPolicy::Retain’s semantics (CR removed, kopia snapshot
stays, catalog rediscovers it), deliberately NOT the Orphan event storm
(no per-CR “orphaned” event/metric for every produced Snapshot).
Variants§
Retain
Keep the kopia snapshots: a produced Snapshot whose effective
deletionPolicy is Delete is downgraded to retain when its owning
schedule is gone (the fail-safe default).
Delete
Cascade: each produced Snapshot’s own deletionPolicy applies even when
the owning schedule is gone (subject to the mass-deletion breaker).
Trait Implementations§
Source§impl Clone for ScheduleDeletePolicy
impl Clone for ScheduleDeletePolicy
Source§fn clone(&self) -> ScheduleDeletePolicy
fn clone(&self) -> ScheduleDeletePolicy
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 ScheduleDeletePolicy
impl Debug for ScheduleDeletePolicy
Source§impl Default for ScheduleDeletePolicy
impl Default for ScheduleDeletePolicy
Source§fn default() -> ScheduleDeletePolicy
fn default() -> ScheduleDeletePolicy
Source§impl<'de> Deserialize<'de> for ScheduleDeletePolicy
impl<'de> Deserialize<'de> for ScheduleDeletePolicy
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 ScheduleDeletePolicy
impl JsonSchema for ScheduleDeletePolicy
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 ScheduleDeletePolicy
impl PartialEq for ScheduleDeletePolicy
Source§fn eq(&self, other: &ScheduleDeletePolicy) -> bool
fn eq(&self, other: &ScheduleDeletePolicy) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ScheduleDeletePolicy
impl Serialize for ScheduleDeletePolicy
impl Copy for ScheduleDeletePolicy
impl Eq for ScheduleDeletePolicy
impl StructuralPartialEq for ScheduleDeletePolicy
Auto Trait Implementations§
impl Freeze for ScheduleDeletePolicy
impl RefUnwindSafe for ScheduleDeletePolicy
impl Send for ScheduleDeletePolicy
impl Sync for ScheduleDeletePolicy
impl Unpin for ScheduleDeletePolicy
impl UnsafeUnpin for ScheduleDeletePolicy
impl UnwindSafe for ScheduleDeletePolicy
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
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<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