Add or Remove Devices in a Scheduled Upgrade:
PUT /upgrades/{account}/upgrade/{upgradeId}

Adds devices to a scheduled upgrade campaign, or removes devices from the campaign. You cannot add or remove devices once an upgrade has started.

See also:
Schedule Firmware Upgrade
View Upgrades by Status
Cancel an Upgrade

Request Components

HTTP Request

PUT https://thingspace.verizon.com/api/fota/v1/upgrades/{account}/upgrade/{upgradeId}

Resource Path and Query Parameters

You must include the account name in the path and the ID of the upgrade.

Parameter Name Data Type Description
account
required
string The name of the account that has the scheduled upgrade. An account name is usually numeric, and must include any leading zeros.
upgradeId
required
UUID string The UUID of the upgrade, returned by POST /upgrades when the upgrade was scheduled.

Header Parameters

The request header must contain a current ThingSpace authorization token and a current VZ-M2M session token, and must set the Content-Type to JSON.

Parameter Name Data Type Description
Authorization
required
string HTTP Authorization request header containing a valid Bearer token.
VZ-M2M-Token
required
string A valid session token returned by a Connectivity Management POST /session/login request.
Content-Type
required
string Must be application/json.

Request Body

The request body sets the type of operation (add or remove) and specifies the devices.

Parameter Name Data Type Description
type
required
string, enum The type of operation, either “append” or “remove”
deviceList
required
array of IMEI strings The IMEIs of the devices that you want to add or remove from the upgrade.

Example Request

Request the details of a scheduled upgrade for an account:

curl -X PUT https://thingspace.verizon.com/api/fota/v1/upgrades/$ACCOUNT/upgrade/$UPGRADE_ID  -H 'Authorization: Bearer $AUTH_TOKEN' -H 'VZ-M2M-Token: $M2M_TOKEN'
{
  "type": "append", 
  "devicelist": [
    "990003425730535", 
    "990000473475989"
  ]
}```

## Success Responses ##

**Status 200**

A success response contains these upgrade details:

| Parameter Name      | Data Type | Description            |
| ------------------- | --------- | ---------------------- |
| **accountName**     | string    | The name (number) of the billing account. |
| **id**              | string    | Unique upgrade identifier. |
| **deviceList**      | array of objects | A JSON object for each device that was included in the request, showing the device IMEI, the status of the addition or removal, and additional information about the status. |
| deviceList.**deviceId** | string    | The device IMEI. |
| deviceList.**status**   | string    | Whether the device was added or removed from the upgrade campaign successfully. For example, "AddDeviceSucceed" |
| deviceList.**Reason**   | string    | More information about the status. |


### Example Success Response ###

```json
{  
  "accountName":"0402196254-00001",
  "id":"60b5d639-ccdc-4db8-8824-069bd94c95bf",
  "deviceList": [
    {
      "deviceId": "990003425730535",
      "status": "AddDeviceSucceed",
      "Reason": "Device added Successfully"
    },
    {
      "deviceId": "990000473475989",
      "status": "AddDeviceSucceed",
      "Reason": "Device added Successfully"
    }
  ]
}

{ “id”: “string”, “accountName”: “string”, “firmwareName”: “string”, “firmwareTo”: “string”, “startDate”: “string”, “status”: “string”, “deviceList”: [ { “deviceId”: “string”, “status”: “string”, “resultReason”: “string” } ] }

Failure Responses

Status 400

All error messages are returned in this format:

{
  "errorCode": "error code string",
  "errorMessage": "error message string"
}

Error codes and messages are listed on the Error Messages page, along with explanations and suggestions for corrective actions.