plan_reserve
See or change a Workspace's Seats, Additional Apps and Always On Apps reserved ahead, for its Admins.
The tool of basemodo plan reserve, on the local MCP and the remote one. It changes things, so an agent's client may ask you before it runs.
A reservation is a floor under what the Workspace pays for, never a cap: it pays for the larger of what is in use (the people who joined, the Apps beyond the Plan's) and what is reserved, so people join and its Editors create Apps and deploy workers into what is reserved without asking, and nobody is ever kept from joining. Without a number it shows, for each, what the Plan includes, what is in use, what is reserved and paid for, and the price. Reserving more than is paid for says the price and waits for an Admin to approve it on basemodo.com, in their own browser (--approval); the rest of this month is charged at once to the card on file. Reserving fewer lowers what is paid for, never below what is in use, and the rest of this month is credited on the next Invoice. Reservations end with the Plan.
Arguments
seats(number): Reserve this many Seats, the 2 the Plan includes among them, $5 a month each beyond those: people join at no new charge until they outnumber them.additional_apps(number): Reserve this many Additional Apps (Apps beyond the Plan's 5), $4 a month each.always_on_apps(number): Reserve this many Always On Apps beyond the Plan's 3, $6 a month each.approval(text): The Charge Approval an Admin approves on basemodo.com, as a refused reservation gave it: wait until it is approved, then reserve with it.workspace(text): The Workspace whose Plan it is (its name or id), for one of its Admins. Default: your own.
On the remote MCP
The same on the remote MCP.
Answer
It answers {"items": [{"item" (seats, additional, always_on), "included", "in_use" (the people who joined; the Apps beyond what is included), "paid", "reserved", "monthly_cents"}], "base_cents", "currency", "next_invoice_on"}. Reserving past what is paid is charge_required, its charges and its "approval" ("id", "url", "expires_at") in the error: in a terminal it opens the approval's page and waits for it; with --json or no terminal it answers at once, and nothing changed until the command runs again with --approval. Without --workspace: workspace_needed.