pub struct PlannedChange {
pub state: DynamicValue,
pub requires_replace: Vec<String>,
}Expand description
The provider’s full response to PlanResourceChange: the normalized
planned state PLUS the attribute paths the provider says force a
destroy+create instead of an in-place update (“requires replace”).
Terraform core reads this exact signal — computed by the provider
inside this SAME RPC — to decide Update vs Replace; it is not
something the schema or config can determine on their own (a
provider’s ForceNew decision can be dynamic, e.g. via
CustomizeDiff). Prior to this type existing, ProviderConn::plan_resource_change
returned only the bare planned DynamicValue, silently discarding
requires_replace — the ONE authoritative signal a provider gives
for immutable/ForceNew attributes — before it ever reached
magma-apply’s business logic.
Fields§
§state: DynamicValue§requires_replace: Vec<String>Provider-reported attribute paths requiring replace, rendered as
dotted diagnostic strings ("instance_types", "tags.name",
"rules[2].port"). Empty ⇒ the provider says an in-place update
is sufficient. Diagnostic-only shape: callers only need to know
whether this is non-empty to trigger destroy+create orchestration
(see magma-apply::engine::apply_one); the strings make
requires_replace legible in logs/errors without threading a
full typed attribute-path AST through every consumer.
Trait Implementations§
Source§impl Clone for PlannedChange
impl Clone for PlannedChange
Source§fn clone(&self) -> PlannedChange
fn clone(&self) -> PlannedChange
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 PlannedChange
impl Debug for PlannedChange
impl Eq for PlannedChange
Source§impl PartialEq for PlannedChange
impl PartialEq for PlannedChange
impl StructuralPartialEq for PlannedChange
Auto Trait Implementations§
impl Freeze for PlannedChange
impl RefUnwindSafe for PlannedChange
impl Send for PlannedChange
impl Sync for PlannedChange
impl Unpin for PlannedChange
impl UnsafeUnpin for PlannedChange
impl UnwindSafe for PlannedChange
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request