Cancel OTA Task

取消OTA job中指定的某个设备的OTA升级task。

操作权限

需授权的资源

所需操作权限

设备管理

Full Access

请求格式

POST https://{apigw-address}/connect-service/v2.1/ota-jobs?action=cancelTask

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织ID。如何获取orgId信息>>

jobId

Query

必需

String

OTA task所在的OTA job ID。

请求参数(Body)

名称

必需/可选

数据类型

描述

deviceKeys

必需

String数组

需要取消OTA task的设备的device key。

错误码

代码

错误信息

描述

24404

Job not found

找不到OTA job。

24617

Job not running

OTA job未运行,无法取消。

24620

Only init or published tasks can be canceled

才能取消init或published的OTA job。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=cancelTask&orgId=yourOrgId&jobId=yourJobId
method: POST
requestBody: {"deviceKeys":["deviceKey1","deviceKey2"]}

返回示例

{
    "code":0,
    "msg":"OK",
    "requestId":"3bdf31b4-e357-4d4c-8cf9-a40dc129a407",
    "data":null
}

Java SDK调用示例

package com.envisioniot.enos.connect_service.ota.job;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.CancelTaskRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.job.task.CancelTaskResponse;
import com.google.common.collect.ImmutableSet;

public class CancelTask {
    public static void main(String[] args) {
        final String appKey = "yourAppKey";
        final String appSecret = "yourAppSecret";
        String serverUrl = "yourServerUrl";

        String orgId = "yourOrgId";
        String jobId = "yourJobId";

        CancelTaskRequest request = new CancelTaskRequest();
        request.setOrgId(orgId);

        request.setJobId(jobId);
        request.setDeviceKeys(ImmutableSet.of("deviceKey1","deviceKey2"));

        CancelTaskResponse response = Poseidon
                .config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(request, CancelTaskResponse.class);
    }
}