Skip to main content
The right-sizing endpoints expose Flux’s deterministic VM classification results and planning board management. Every VM in the estate receives an explicit coverage state — from full telemetry-backed classification through advisory corroboration to evidence-gap acknowledgement. Planning boards let your team turn those findings into reservation and savings-plan purchase decisions, captured with a full decision log.

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.