1. Operations
2. vcenter
3. vm
4. hardware

## vcenter vm hardware: upgrade

Upgrades the virtual machine to a newer virtual hardware version.

### Request:

#### HTTP request

POST https://{server}/rest/vcenter/vm/{vm}/hardware/action/upgrade

#### Path Parameters

Name | Type | Description
--- | --- | ---
Required
vm | string | Virtual machine identifier.

#### Request Body Structure:

- JSON
- XML

{
"version": "VMX_03"
}
<?xml version="1.0" ?>
<ns0:Upgrade-Input xmlns:ns0="http://vmware.com/vcenter/vm/hardware" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<version>VMX_03</version>
</ns0:Upgrade-Input>

#### Request Body Parameters:

Name | Type | Description
--- | --- | ---
bold = required
version | string | Optional. New virtual machine version.

### Response:

#### HTTP Status Code: 200

None

#### Errors:

HTTP Status Code | Type | Description
--- | --- | ---
500 | error | if the system reports an error while responding to the request.
404 | not_found | if the virtual machine is not found.
400 | not_allowed_in_current_state | if the virtual machine is not powered off.
400 | already_in_desired_state | if the virtual machine is already configured for the desired hardware version.
400 | invalid_argument | if `version` is older than the current virtual hardware version.
400 | unsupported | if `version` is not supported by the server.
400 | resource_busy | if the virtual machine is busy performing another operation.
400 | resource_inaccessible | if the virtual machine's configuration state cannot be accessed.
503 | service_unavailable | if the system is unable to communicate with a service to complete the request.
401 | unauthenticated | if the user can not be authenticated.
403 | unauthorized | if the user doesn't have the required privileges.