pub struct SnapshotReplicationSpec {
pub source_ref: RepositoryRef,
pub destination_ref: RepositoryRef,
pub schedule: CronSpec,
pub selection: Option<SelectionSpec>,
pub migrate: Option<MigrateOptions>,
pub pruning: Option<Pruning>,
pub mover: Option<MoverSpec>,
pub credential_projection: Option<CredentialProjection>,
pub suspend: bool,
}Expand description
Copy selected snapshots from a source repository into a destination repository on a schedule (kopia snapshot migrate).
Not Eq: mover transitively embeds k8s-openapi types.
Fields§
§source_ref: RepositoryRefThe Repository or ClusterRepository snapshots are copied FROM. Opened
read-only by the replication mover — a replication never writes to its source.
destination_ref: RepositoryRefThe Repository or ClusterRepository snapshots are copied INTO. A real
repository CR with its own password and format (unlike a
RepositoryReplication destination, which is a bare backend reusing the
source’s password). Must not resolve to the same repository as sourceRef
(webhook-enforced structurally; the shared validator catches the literal
same-ref case at admission).
schedule: CronSpecCron and deterministic jitter for the replication runs.
selection: Option<SelectionSpec>Which snapshots to copy. Absent: every identity in the source repository,
full history (kopia snapshot migrate --all).
migrate: Option<MigrateOptions>Tuning for the underlying kopia snapshot migrate invocation. Absent:
sequential copy, and NO policy copying (see PolicyCopyMode).
pruning: Option<Pruning>What happens to already-replicated copies at the destination on later runs.
Absent = none: copies accumulate forever and — like every mode here —
survive deletion of this CR (copy Snapshot CRs carry no
ownerReference to it). Pruning only ever considers snapshots this CR
replicated (labeled at birth); it never touches the destination’s own
directly-written snapshots.
mover: Option<MoverSpec>Mover (Job pod) overrides for the replication run.
credential_projection: Option<CredentialProjection>Opt-in projection of BOTH repositories’ credential Secrets into the mover
Job’s namespace (required when the destination is a ClusterRepository
whose Secrets live elsewhere).
suspend: boolPause this replication; a suspended replication runs no copies (default false).
Trait Implementations§
Source§impl Clone for SnapshotReplicationSpec
impl Clone for SnapshotReplicationSpec
Source§fn clone(&self) -> SnapshotReplicationSpec
fn clone(&self) -> SnapshotReplicationSpec
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 SnapshotReplicationSpec
impl Debug for SnapshotReplicationSpec
Source§impl<'de> Deserialize<'de> for SnapshotReplicationSpec
impl<'de> Deserialize<'de> for SnapshotReplicationSpec
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 SnapshotReplicationSpec
impl JsonSchema for SnapshotReplicationSpec
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 SnapshotReplicationSpec
impl PartialEq for SnapshotReplicationSpec
Source§fn eq(&self, other: &SnapshotReplicationSpec) -> bool
fn eq(&self, other: &SnapshotReplicationSpec) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SnapshotReplicationSpec
impl Serialize for SnapshotReplicationSpec
impl StructuralPartialEq for SnapshotReplicationSpec
Auto Trait Implementations§
impl Freeze for SnapshotReplicationSpec
impl RefUnwindSafe for SnapshotReplicationSpec
impl Send for SnapshotReplicationSpec
impl Sync for SnapshotReplicationSpec
impl Unpin for SnapshotReplicationSpec
impl UnsafeUnpin for SnapshotReplicationSpec
impl UnwindSafe for SnapshotReplicationSpec
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<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