# Upgrade Manager

The [upgrade manager](https://docs.trustgrid.io/docs/upgrade-manager/) orchestrates software upgrades for nodes and clusters in bulk with scheduling and rollback support. Requires `upgrade-manager::read` permission.


## Retrieve all firmware upgrade campaigns and their execution status

 - [GET /upgrade-manager/api/v1/upgrades](https://apidocs.trustgrid.io/upgrade-manager/listupgrades.md): Requires upgrade-manager::read permission.

## Create a new firmware upgrade campaign for multiple nodes

 - [POST /upgrade-manager/api/v1/upgrades](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades/post.md): Requires upgrade-manager::modify permission.

## Retrieve the currently running firmware upgrade campaign

 - [GET /upgrade-manager/api/v1/upgrades/active](https://apidocs.trustgrid.io/upgrade-manager/getactiveupgrade.md): Requires upgrade-manager::read permission.

## Cancel and permanently remove an upgrade campaign

 - [DELETE /upgrade-manager/api/v1/upgrades/{upgradeID}](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D/delete.md): Requires upgrade-manager::modify permission.

## Retrieve detailed status and progress of a specific upgrade campaign

 - [GET /upgrade-manager/api/v1/upgrades/{upgradeID}](https://apidocs.trustgrid.io/upgrade-manager/getupgrade.md): Requires upgrade-manager::read permission.

## Modify upgrade campaign settings and target selection criteria

 - [PUT /upgrade-manager/api/v1/upgrades/{upgradeID}](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D/put.md): Requires upgrade-manager::modify permission.

## Authorize automatic failover of HA clusters during upgrade process

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/approve-failover](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1approve-failover/post.md): Requires upgrade-manager::modify permission.

## Manually mark an upgrade campaign as finished and finalize the process

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/complete](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1complete/post.md): Requires upgrade-manager::modify permission.

## Acknowledge and dismiss a failed or problematic upgrade workflow

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/dismiss/{workflowID}](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1dismiss~1%7Bworkflowid%7D/post.md): Requires upgrade-manager::modify permission.

## Test an upgrade campaign by creating and executing a non-destructive simulation

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/dryrun](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1dryrun/post.md): Requires upgrade-manager::modify permission.

## Retrieve detailed execution logs and error messages for an upgrade campaign

 - [GET /upgrade-manager/api/v1/upgrades/{upgradeID}/logs](https://apidocs.trustgrid.io/upgrade-manager/getupgradelogs.md): Requires upgrade-manager::read permission.

## Add administrative notes or comments to an upgrade workflow for tracking

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/note/{workflowID}](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1note~1%7Bworkflowid%7D/post.md): Requires upgrade-manager::modify permission.

## Restart a failed upgrade workflow to attempt the operation again

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/retry/{workflowID}](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1retry~1%7Bworkflowid%7D/post.md): Requires upgrade-manager::modify permission.

## Begin execution of a configured upgrade campaign across target nodes

 - [POST /upgrade-manager/api/v1/upgrades/{upgradeID}/start](https://apidocs.trustgrid.io/upgrade-manager/paths/~1upgrade-manager~1api~1v1~1upgrades~1%7Bupgradeid%7D~1start/post.md): Requires upgrade-manager::modify permission.

