Update plugin, acknowledging a changed privacy disclosure
Same as GET, with a body. When the block the upgrade would land differs materially from the accepted one (see GET /api/plugin/{RepoName}/privacy) the upgrade is refused unless privacyAccepted matches that pending block. The pull fast-forwards to the ref the check just fetched (no second fetch), and the block is recorded as accepted afterwards, from the installed copy, only once the code has landed; if what landed is not what was accepted (a push in between) the record is dropped and the next check asks again.
Request body
Response
Plugin upgraded, or refused. Refused on privacy grounds: {"Status": "Error", "Code": "PrivacyMismatch", "Message": "...", "privacyChanged": true, "plugin": "fpp-x", "pending": {...}}, the same shape as POST /api/plugin's refusal; pending is the block to review (null = no disclosure). Streaming (?stream=true) prints the readable ERROR: line only -- no @@PRIVACY-PENDING@@ marker, unlike an install.