in mmv1/api/type.go [1112:1133]
func (t *Type) IsForceNew() bool {
if t.IsA("KeyValueLabels") && t.ResourceMetadata.RootLabels() {
return false
}
if t.IsA("KeyValueTerraformLabels") && !t.ResourceMetadata.Updatable() && !t.ResourceMetadata.RootLabels() {
return true
}
// Client-side fields don't inherit immutability
if t.ClientSide {
return t.Immutable
}
parent := t.Parent()
return !t.WriteOnly && (!t.Output || t.IsA("KeyValueEffectiveLabels")) &&
(t.Immutable ||
(t.ResourceMetadata.Immutable && t.UpdateUrl == "" &&
(parent == nil ||
(parent.IsForceNew() &&
!(parent.FlattenObject && t.IsA("KeyValueLabels"))))))
}