GET /api/recommendations/rightsizing
Auth:reader
Returns multi-source VM idle and Advisor-corroborated resize results, paginated. Each item carries its coverage state, governed utilization evidence (CPU/memory/network percentiles), candidate action, and savings lineage. Resize targets require Azure Advisor corroboration; material source disagreement is surfaced as a review state rather than silently overridden.
Query parameters
Coverage states
Key response fields
Example request
Example response (truncated)
GET /api/recommendations/rightsizing/export
Auth:reader
Streams a tabular export of right-sizing recommendations. Accepts the same status and subscriptionId filters as the list endpoint. The format parameter selects output type.
Query parameters
XLSX exports include a Metadata sheet with generation time, snapshot version, and applied filters.
GET /api/recommendations/quality
Auth:reader
Returns quality-reconciliation metrics covering four dimensions: Advisor ID matching, semantic-action classification, resource-resolution accuracy, and actionability signals. Use this endpoint to investigate discrepancies between Flux’s deterministic classification and Azure Advisor findings.
Example request
Example response (truncated)
GET /api/rightsizing/boards
Auth:reader
Returns all planning boards. Each board contains commitment buckets, planned quantities, planner-entered economics, and VM decisions. The primary (Flux-owned) board is regenerated from governed evidence every 72 hours; human boards are never overwritten by scheduled refreshes.
POST /api/rightsizing/boards
Auth:admin
Creates a new empty planning board.
Request body (RightsizingBoardCreate)
Responses
PUT /api/rightsizing/boards/
Auth:admin
Renames an existing board and updates its description. The primary Flux-owned board cannot be renamed through this endpoint.
Path parameter
Request body (RightsizingBoardUpdate)
Responses
POST /api/rightsizing/boards//primary
Auth:admin
Promotes a board to the primary position. Only one board can be primary at a time.
Responses
DELETE /api/rightsizing/boards/
Auth:admin
Deletes a planning board. The primary Flux-owned board cannot be deleted.
Responses
POST /api/rightsizing/boards//duplicate
Auth:admin
Duplicates an existing board under a new name. The new board inherits buckets and VM assignments from the source board.
Request body (RightsizingBoardCreate)
GET /api/rightsizing/plan
Auth:reader
Returns the full planning board view for a given board, including commitment buckets, assigned VMs, planned quantities, planner-entered economics, and per-VM decisions.
Query parameters
GET /api/rightsizing/plan/log
Auth:reader
Returns the decision log for a planning board — an ordered history of VM assignments, bucket changes, and planner notes.
Query parameters
PUT /api/rightsizing/plan/bucket
Auth:admin
Creates or updates a commitment bucket in a planning board. Buckets represent a target SKU in a region with associated quantity and pricing assumptions (pay-as-you-go, 1-year RI, savings plan).
Responses
Request body (RightsizingBucketUpdate)
DELETE /api/rightsizing/plan/bucket
Auth:admin
Removes a bucket from the plan. The bucket key is a compound region/SKU identifier.
Query parameters
Responses
PUT /api/rightsizing/plan/assignments
Auth:admin
Moves one or more VMs to a target bucket, optionally recording a decision and a planner note.
Request body (RightsizingAssignmentsUpdate)
Each move object (
RightsizingMove):
POST /api/rightsizing/plan/import
Auth:admin
Imports a plan file (buckets, assignments, VM metadata, and log entries) into a board. Supports dry-run validation before committing.
Request body (RightsizingPlanImport)
GET /api/rightsizing/proposal/status
Auth:reader
Returns the status of the latest Flux right-sizing proposal — when it was last generated, the next scheduled refresh, and whether a refresh is in progress.
POST /api/rightsizing/proposal/refresh
Auth:admin
Forces an immediate regeneration of the Flux right-sizing proposal from current governed evidence. Returns 409 if a refresh is already running.