Skip to main content
Rename a plan, replace its membership, or both; pass at least one of name and attributions. attributions is the plan’s whole membership, not an addition to it: whoever the list leaves out is taken off the plan, which needs the delete permission on plans. Read the plan with get_plan first and send back every membership to keep. Omitting the argument leaves the membership untouched, so a rename alone is safe; passing an empty list clears the plan. Re-sending the current membership changes nothing, so the same call can be sent twice. An archived plan can be renamed but takes no attribution change. Every row is checked before anything is written. Only what actually changed comes back in attribution_changes, each row saying whether it was created, moved, or removed. On the live environment, a membership change refreshes the statements of every user it affects in the background. A call that changes nothing, or a call on a sandbox plan, triggers no refresh. Every write to the live environment is recorded in the audit trail as the Qobra MCP agent; writes to a sandbox are not audited.

Parameters

Body

string
required
Id of the plan, as list_plans returns it. The plan decides the environment, so there is no sandbox_id.
string
New display name; a blank name is refused.
object[]
The plan’s complete membership: one row per continuous stretch for each user or group on it, rows of one user or group not overlapping. It replaces the current membership: whoever is left out is removed. Omit it to leave the membership alone; an empty list clears it.

Response

Body

object
The plan as it now stands after the update.
object[]
The memberships the call created, moved or removed. Empty for a rename alone, or when the declared membership already matched.