pub enum PolicyCopyMode {
None,
Copy,
CopyOverwrite,
}Expand description
How kopia snapshot migrate treats the source’s kopia policies.
kopia’s own default is to copy policies, but Kopiur defaults to none: in a
Kopiur-managed destination, retention is driven by Snapshot CRs (GFS over
CRs, ADR §4.4) and kopia-side policies are deliberately inert — importing the
source’s policies could re-introduce kopia-side retention that deletes
destination manifests behind the operator’s back. none maps to an explicit
--no-policies.
use kopiur_api::snapshot_replication::PolicyCopyMode;
// Plain camelCase string enum on the wire.
assert_eq!(serde_json::to_value(PolicyCopyMode::CopyOverwrite).unwrap(), "copyOverwrite");
assert_eq!(PolicyCopyMode::default(), PolicyCopyMode::None);Variants§
None
Do not copy kopia policies (--no-policies) — the default, so a
Kopiur-managed destination’s retention stays CR-driven.
Copy
Copy policies for the migrated sources, keeping any policy that already exists at the destination (kopia’s migrate default).
CopyOverwrite
Copy policies and overwrite same-named policies already at the
destination (--overwrite-policies).
Trait Implementations§
Source§impl Clone for PolicyCopyMode
impl Clone for PolicyCopyMode
Source§fn clone(&self) -> PolicyCopyMode
fn clone(&self) -> PolicyCopyMode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PolicyCopyMode
Source§impl Debug for PolicyCopyMode
impl Debug for PolicyCopyMode
Source§impl Default for PolicyCopyMode
impl Default for PolicyCopyMode
Source§fn default() -> PolicyCopyMode
fn default() -> PolicyCopyMode
Source§impl<'de> Deserialize<'de> for PolicyCopyMode
impl<'de> Deserialize<'de> for PolicyCopyMode
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 PolicyCopyMode
Source§impl JsonSchema for PolicyCopyMode
impl JsonSchema for PolicyCopyMode
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 PolicyCopyMode
impl PartialEq for PolicyCopyMode
Source§fn eq(&self, other: &PolicyCopyMode) -> bool
fn eq(&self, other: &PolicyCopyMode) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for PolicyCopyMode
impl Serialize for PolicyCopyMode
impl StructuralPartialEq for PolicyCopyMode
Auto Trait Implementations§
impl Freeze for PolicyCopyMode
impl RefUnwindSafe for PolicyCopyMode
impl Send for PolicyCopyMode
impl Sync for PolicyCopyMode
impl Unpin for PolicyCopyMode
impl UnsafeUnpin for PolicyCopyMode
impl UnwindSafe for PolicyCopyMode
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