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);
    }
}