OPEN API参考
API文档
更新历史
发布时间 | 发布内容 |
---|---|
2025-05-21 | 新增: 基础能力相关接口 实例对拷 服务回调相关接口 实例回调结果通知 |
2025-05-06 | 新增: 基础能力相关接口 配置网络 快照能力相关接口 快照批量挂载 |
2025-04-17 | 新增: 基础能力相关接口 终止任务 分页查询物理机信息 带宽统计查询 实例指令相关接口 实例重启推流服务 快照能力相关接口 快照接口使用说明 快照初始化 快照卸载 快照挂载 分页查询快照记录 删除快照 快照初始化任务结果通知 快照卸载任务结果通知 快照挂载任务结果通知 |
2025-04-02 | 新增: 基础能力相关接口 实例文件下载 服务回调相关接口 实例文件下载通知 实例会话受控状态变更通知 |
2025-03-19 | 新增: 云手机相关接口 实例批量解绑 基础能力相关接口 实例批量执行脚本 |
2025-03-06 | 新增: 基础能力相关接口 获取实例设备信息 |
2025-02-19 | 新增: 基础能力相关接口 实例故障率统计 |
2025-01-15 | 新增: 基础能力相关接口 物理机资源实时监控信息查询 物理机资源负载监控信息查询 实例资源实时监控信息查询 实例应用监控信息查询 修改实例维护状态 修改: 基础能力相关接口 分页查询实例信息 新增出参: maintainStatus 桌面推荐图标刷新:支持指定应用 |
2024-12-25 | 新增: 云手机相关接口 查询实例的所有绑定信息 解绑实例的所有绑定信息 基础能力相关接口 实例限速 分页查询应用列表 修改: 基础能力相关接口 分页查询实例信息 新增出参: instanceStatus deviceStatus |
2024-10-30 | 新增: 基础能力相关接口 实例分辨率调整 服务回调相关接口 实例分辨率调整通知 进程死亡告警通知 |
2024-10-16 | 新增: 基础能力相关接口 获取同步截图url 销毁已获取的同步截图url 系统镜像相关接口 删除自定义镜像 |
2024-09-25 | 新增: 基础能力相关接口 分辨率调整 |
2024-09-05 | 新增: 基础能力相关接口 应用安装 应用卸载 系统镜像相关接口 查询公共镜像 查询自定义镜像 上传自定义镜像 获取自定义镜像上传结果 创建更新镜像任务 查询更新镜像结果 |
2023-12-06 | 新增: 基础能力相关接口 实例切换会话控制权 实例设置内存限额 |
2023-11-02 | 新增: 基础能力相关接口 桌面推荐图标刷新 服务回调相关接口 桌面推荐图标刷新通知 |
2023-09-14 | 新增: 基础能力相关接口 实例授权连接 云手机相关接口 获取授权serverToken |
2023-08-17 | 新增: 基础能力相关接口 应用上传(新版) 应用更新 |
2023-03-23 | 新增: 基础能力相关接口 实例信息查询[/resources/instance/infos] 下架: 基础能力相关接口 旧版分页查询实例信息接口[distribute/pad/infos.html] |
2023-03-09 | 新增: 基础能力相关接口 客户实例汇总数据查询 |
2023-02-23 | 新增: 基础能力相关接口 创建流量查询任务接口 获取流量查询任务结果接口 |
2023-01-12 | 新增: 基础能力相关接口 机房已绑定实例数信息 实例执行脚本 上传文件到实例 服务回调相关接口: 实例执行脚本通知 上传文件到实例通知 |
2022-10-24 | 新增: 云手机相关接口 获取serverToken 新增入参: multiTerminal merchantPoolNo 实例指令相关接口 实例重启 新增入参: merchantPoolNo 实例重置 新增入参: merchantPoolNo |
2022-10-20 | 新增: 基础能力相关接口 应用镜像按实例发布 应用镜像按机房发布 获取应用镜像按机房发布结果 服务回调相关接口 应用镜像机房发布完成通知 |
2022-08-18 | 新增接口: 基础能力相关接口 分页查询实例信息 云手机相关接口 获取severToken 实例解绑 |
2022-07-15 | 实例指令相关接口 实例解绑 服务回调相关接口 实例解绑回调 |
2022-06-10 | 新增接口 获取每个机房可用实例数量和总的可用实例数量 |
API概述
最近更新时间:2025年04月17日 12:00:00
云手机相关接口
接口名称 | 接口功能 |
---|---|
获取serverToken | 获取serverToken后在两小时内可以用来申请实例。申请实例后可以用serverToken解绑已成功申请的实例。 |
获取授权serverToken | 获取授权serverToken,通过serverToken连接的方式将云手机授权给其他用户使用 |
实例解绑 | 根据申请实例时传参的serverToken来释放指定实例。 |
新增实例到期时间 | 增加指定实例的到期时间。 |
更新实例到期时间 | 更新指定实例的到期时间。 |
查询实例的所有绑定信息 | 根据instanceCode查询实例的所有绑定信息。 |
解绑实例的所有绑定信息 | 根据instanceCode解绑实例的所有绑定信息。 |
实例批量解绑 | 根据申请实例时传参的serverToken来批量释放指定实例。 |
基础能力相关接口
接口名称 | 接口功能 |
---|---|
分页查询实例信息 | 根据查询条件分页获取实例列表信息。 |
客户实例汇总数据查询 | 客户可以通过该接口来实时查询当前所有机房下的总实例数、可用实例数和已绑定的实例数。 |
获取实例设备信息 | 获取实例已安装的应用信息、可用磁盘总空间以及剩余磁盘空间 |
机房未绑定实例数信息 | 获取每个机房可用且未绑定实例数量和总的可用且未绑定实例数量。 |
机房已绑定实例数信息 |
获取每个机房可用且已绑定实例数量和总的可用且已绑定实例数量。 |
实例截图 | 对实例进行截图,支持设置截图质量 |
实例截图结果查询 | 查询截图结果,如果截图成功,提供截图下载url |
创建流量查询任务 | 创建流量查询任务 |
获取流量查询任务结果 | 获取流量查询任务的结果 |
上传文件到实例 | 上传文件到百度云游戏平台 |
实例执行脚本 | 让实例执行传入的脚本内容 |
实例备份 | 对指定实例进行数据备份。 |
实例还原 | 将备份的数据还原到实例中。 |
分页查询实例快照信息 | 分页查询实例快照信息 |
实例授权连接 | 将已连接的云手机授权给其他用户使用 |
实例切换会话控制权 | 根据serverToken切换已绑定实例会话控制权。 |
实例设置内存限额 | 用于修改实例可以使用的内存上限值 |
实例分辨率调整 | 调整实例分辨率参数 |
应用安装 | 为单台或多台云手机实例同时安装应用 |
应用卸载 | 为单台或多台云手机实例同时卸载应用 |
预置应用安装 | 为单台或多台云手机实例同时安装预置应用 |
预置应用卸载 | 为单台或多台云手机实例同时卸载预置应用 |
应用启停 | 根据实例编号和应用包名对实例进行应用启停的操作。执行的结果可以根据返回的任务ID,通过获取应用启停结果接口查看。 |
应用上传(新版) | 上传应用到百度云游戏平台 |
应用更新 | 更新应用文件,应用信息不变更 |
应用上传 | 上传应用到百度云游戏平台。 |
应用删除 | 删除上传的应用 |
分页查询应用列表 | 分页获取应用列表信息。 |
桌面推荐图标刷新 | 用于刷新并展示实例桌面推荐应用,只能操作未绑定实例 |
任务结果查询 | 根据任务id查询任务执行结果 |
获取ssh连接信息 | 获取ssh连接信息 |
实例调度 | 对实例进行实例池之间的调度 |
获取同步截图url | 提供实例的即时截图的URL地址。 |
销毁已获取的同步截图url | 销毁已获取的同步截图URL。 |
实例限速 | 设置实例限速 |
物理机资源实时监控信息查询 | 根据物理机ip获取物理设备实时监控信息 |
物理机资源负载监控信息查询 | 根据物理机ip获取查询时间范围内的物理设备负载的监控信息 |
实例资源实时监控信息查询 | 根据code获取实例设备实时监控信息 |
实例应用监控信息查询 | 根据code获取查询时间范围内的实例设备应用CPU、MEM监控信息 |
修改实例维护状态 | 根据实例编号修改实例的维护状态 |
实例故障率统计 | 获取时间范围内的实例故障率统计数据 |
实例批量执行脚本 | 让多个实例执行传入的脚本内容 |
实例文件下载 | 提供实例内的文件下载地址 |
终止任务 | 支持对状态为“待执行”和“准备中”的任务发起终止 |
分页查询物理机信息 | 分页查询物理机信息 |
带宽统计查询 | 带宽统计查询 |
配置网络 | 配置网络 |
实例对拷 | 实例对拷 |
系统镜像相关接口
接口名称 | 接口功能 |
---|---|
查询公共镜像 | 查询系统中提供的公共镜像 |
查询自定义镜像 | 查询用户创建的自定义镜像 |
上传自定义镜像 | 允许用户上传自己的镜像到系统中 |
获取自定义镜像上传结果 | 查询自定义镜像上传的状态和结果 |
删除自定义镜像 | 删除已上传的自定义镜像 |
创建实例更新镜像任务 | 创建任务以更新实例使用的镜像 |
查询实例更新镜像结果 | 查询更新实例镜像任务的结果和状态 |
创建物理机更新镜像任务 | 创建任务以更新物理机上的系统镜像 |
实例指令相关接口
接口名称 | 接口功能 |
---|---|
实例重启 | 重启指定实例编码的实例 |
实例重置 | 将指定的实例恢复出厂设置 |
实例重启推流服务 | 实例重启推流服务 |
物理机重启 | 重启指定物理机 |
快照能力相关接口
接口名称 | 接口功能 |
---|---|
快照接口使用说明 | 说明快照接口的使用方法 |
快照初始化 | 初始化快照环境 |
快照卸载 | 卸载当前挂载的快照 |
快照挂载 | 挂载一个快照到指定实例 |
分页查询快照记录 | 分页查询系统中的快照记录 |
删除快照 | 删除指定的快照 |
快照初始化任务结果通知 | 通知用户快照初始化的结果 |
快照卸载任务结果通知 | 通知用户快照卸载的结果 |
快照挂载任务结果通知 | 通知用户快照挂载的结果 |
快照批量挂载 | 批量为实例挂载快照 |
服务回调相关接口
回调名称 | 功能 |
---|---|
应用安装通知 | 应用安装完成后的通知。 |
应用卸载通知 | 应用卸载完成后的通知。 |
应用上传通知 | 应用上传完成后的通知。 |
应用启动通知 | 应用启动完成后的通知。 |
应用停止通知 | 应用停止完成后的通知。 |
实例解绑通知 | 实例解绑完成后的通知。 |
实例重置通知 | 实例重置完成后的通知。 |
实例重启通知 | 实例重启完成后的通知。 |
实例执行脚本通知 | 实例完成执行脚本后的通知 |
上传文件到实例通知 | 文件上传到实例完成后的通知 |
桌面推荐图标刷新通知 | 桌面推荐图标刷新后的通知。 |
实例备份通知 | 实例备份完成后的通知。 |
实例还原通知 | 实例还原完成后的通知。 |
分辨率调整结果通知 | 分辨率调整完成后的通知 |
进程死亡告警通知 | 实例运行的应用进程非正常死亡后的告警通知 |
实例文件下载通知 | 实例文件下载任务执行完成后的结果通知 |
实例会话受控状态变更通知 | 实例会话受控状态变更通知 |
实例对拷结果通知 | 实例对拷结果通知 |
调用方式
请求结构
Headers参数说明
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
Content-Type | application/json | 是 |
公共参数
公共参数用于标识请求用户并进行签名校验和用户鉴权,在每次请求时均需要携带公共参数才能正常发起请求。
注:后续接口文档中不再对公共参数进行说明
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
appkey | String | 是 | 百度云游戏平台分配给第三方用户的接口 key | 50b13132bb394901f151bc12 |
auth_ver | String | 是 | api 的版本号 | 3 |
nonce | Long | 是 | 当前有的时间戳,精确到毫秒 | 1600846168490 |
s | String | 是 | 方法签名,根据 appkey、auth_ver 和 nonce 计算 | efabcaca7c66d629a639cee37d924813 |
方法签名生成规则
1s = MD5(appkey + appkey值 + auth_ver + auth_ver值 + nonce + nonce值 + appSecret值)
注:字符串内容统一用 utf-8 字符集
方法签名生成示例
Java
1String paramsStr = "appkey" + appKey +
2 "auth_ver" + authVer +
3 "nonce" + System.currentTimeMillis() +
4 appSecret;//接口签名密钥(可配置)
5String sign = org.apache.commons.codec.digest.DigestUtils.md5Hex(paramsStr.getBytes(StandardCharsets.UTF_8));
URL拼接公共参数示例
https://platform.armvm.com/{resourcePath}?s={s}&appkey={appkey}&auth_ver={auth_ver}&nonce={nonce}
body参数
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
msg | 见msg加密规则 | 是 | ||
createTime | 公共参数中的nonce | 是 |
msg加密规则
加密模式:3DES——CBC模式,填充模式PKCS5Padding
加密步骤:
1.desKey截取前24位转byte[]
2.时间戳nonce转byte[]
3.接口请求实际入参的Json串转byte[]
4.3DES对内容进行加密(CBC模式,填充模式PKCS5Padding)
5.使用base64对加密结果进行编码
msg加密示例
Java
1 // 填装实际接口请求参数
2 Map param = new HashMap();
3 param.put("param1", "value1");
4 param.put("param2", "value2");
5 param.put("param3", "value3");
6
7 // 请求参数转化为JSON字符串
8 String requestParam = new Gson().toJson(param);
9
10 // 请求参数加密
11 Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
12 SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
13 SecretKey secretKey = skf.generateSecret(new DESedeKeySpec(desKey.getBytes("utf-8")));
14 ByteBuffer byteBuffer = ByteBuffer.allocate(8);
15 byteBuffer.order(ByteOrder.BIG_ENDIAN);
16 byteBuffer.putLong(nonce);
17 byte[] iv = byteBuffer.array();
18 IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
19 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
20 byte[] cipherText = cipher.doFinal(requestParam.getBytes("utf-8"));
21 String msg = Base64.encodeBase64String(cipherText);
22 Map map = new HashMap();
23 map.put("createTime", nonce);
24 map.put("msg", msg);
25 // 转化为JSON字符串
26 String encryptBody = new Gson().toJson(map);
完整调用示例
Java
1package org.example.openapi;
2
3import cn.hutool.json.JSONUtil;
4import org.apache.commons.codec.digest.DigestUtils;
5
6import javax.crypto.Cipher;
7import javax.crypto.SecretKey;
8import javax.crypto.SecretKeyFactory;
9import javax.crypto.spec.DESedeKeySpec;
10import javax.crypto.spec.IvParameterSpec;
11import java.io.ByteArrayOutputStream;
12import java.io.InputStream;
13import java.io.OutputStreamWriter;
14import java.net.HttpURLConnection;
15import java.net.URL;
16import java.nio.ByteBuffer;
17import java.nio.ByteOrder;
18import java.nio.charset.StandardCharsets;
19import java.util.Base64;
20import java.util.HashMap;
21import java.util.Map;
22
23public class OpenApiTest {
24 public static void main(String[] args) throws Exception {
25 // 云游戏平台分配给第三方用户的接口Key
26 String appKey = "4a8311be034943cfaa6a357fdc9f0461";
27 // 接口版本号,现在有2和3两种版本的接口,具体按照接口文档上的版本号
28 String authVer = "3";
29 // 当前的时间戳
30 long nonce = System.currentTimeMillis();
31 // 接口签名秘钥
32 String appSecret = "01a258aff68e6b2f2513df7f7dc3cf18";
33 // 生成方法签名
34 String paramsStr = "appkey" + appKey +
35 "auth_ver" + authVer +
36 "nonce" + nonce +
37 appSecret;//接口签名密钥(可配置)
38 String sign = DigestUtils.md5Hex(paramsStr.getBytes(StandardCharsets.UTF_8));
39 // desKey 3DES秘钥(可配置),根据商户平台实际生成的替换此值
40 String desKey = "cba76b7b0ab1011179087092effe1b8d";
41 // 拼接公共参数到URL
42 String apiUrl = "https://platform.armvm.com/{resourcePath}?s=" + sign + "&appkey=" + appKey + "&auth_ver=" + authVer + "&nonce=" + nonce;
43
44 // 填装实际接口请求参数
45 Map<String, Object> param = new HashMap<>();
46 param.put("param1", "value1");
47 param.put("param2", "value2");
48 param.put("param3", "value3");
49
50 // 请求参数转化为JSON字符串
51 String requestParam = JSONUtil.toJsonStr(param);
52
53 // 请求参数加密
54 Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
55 SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
56 SecretKey secretKey = skf.generateSecret(new DESedeKeySpec(desKey.getBytes(StandardCharsets.UTF_8)));
57 ByteBuffer byteBuffer = ByteBuffer.allocate(8);
58 byteBuffer.order(ByteOrder.BIG_ENDIAN);
59 byteBuffer.putLong(nonce);
60 byte[] iv = byteBuffer.array();
61 IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
62 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
63 byte[] cipherText = cipher.doFinal(requestParam.getBytes(StandardCharsets.UTF_8));
64 String msg = Base64.getEncoder().encodeToString(cipherText);
65 Map<String, Object> map = new HashMap<>();
66 map.put("createTime", nonce);
67 map.put("msg", msg);
68 // 转化为JSON字符串
69 String encryptBody = JSONUtil.toJsonStr(map);
70
71 // 构造请求
72 URL url = new URL(apiUrl);
73 HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
74 // 连接超时时间
75 httpURLConnection.setConnectTimeout(1000);
76 // 读取结果超时时间
77 httpURLConnection.setReadTimeout(1000);
78 httpURLConnection.setDoInput(true);
79 httpURLConnection.setDoOutput(true);
80 httpURLConnection.setUseCaches(false);
81 httpURLConnection.setRequestProperty("Content-type", "application/json;charset=utf-8");
82 httpURLConnection.setRequestMethod("POST");
83
84 // 得到请求的输出流对象
85 OutputStreamWriter out = new OutputStreamWriter(httpURLConnection.getOutputStream());
86 // 把数据写入请求的Body
87 out.write(encryptBody);
88 out.flush();
89 out.close();
90
91 String result;
92 try (InputStream in = 200 == httpURLConnection.getResponseCode() ? httpURLConnection.getInputStream() : httpURLConnection.getErrorStream();) {
93 byte[] buf = new byte[1024];
94 int length;
95 ByteArrayOutputStream bout = new ByteArrayOutputStream();
96 while ((length = in.read(buf, 0, buf.length)) > 0) {
97 bout.write(buf, 0, length);
98 }
99 bout.flush();
100 result = new String(bout.toByteArray(), StandardCharsets.UTF_8);
101 } finally {
102 httpURLConnection.disconnect();
103 }
104 int responseCode = httpURLConnection.getResponseCode();
105 if (responseCode == 200) {
106 System.out.println("调用成功,接口返回结果:\n" + result);
107 } else {
108 System.out.println("调用失败");
109 }
110 }
111}
Python
1import json
2import time
3import hashlib
4import base64
5import struct
6
7import requests
8from Crypto.Cipher import DES3
9from Crypto.Util.Padding import pad
10
11
12def _pad(data):
13 padding_length = 8 - len(data) % 8
14 padding = bytes([padding_length] * padding_length)
15 return data + padding
16
17
18def encrypt(key, iv, message):
19 cipher = DES3.new(key[:24].encode('utf-8'), DES3.MODE_CBC, struct.pack('>Q', iv))
20 padded_message = pad(message.encode('utf-8'), DES3.block_size)
21 ciphertext = cipher.encrypt(padded_message)
22 return ciphertext
23
24
25def encrypt_with_base64(key, iv, message):
26 ciphertext = encrypt(key, iv, message)
27 return base64.b64encode(ciphertext).decode('utf-8')
28
29
30if __name__ == '__main__':
31 # 云游戏平台分配给第三方用户的接口Key
32 app_key = "4a8311be034943cfaa6a357fdc9f0461"
33 # 接口版本号,现在有2和3两种版本的接口,具体按照接口文档上的版本号
34 auth_ver = "3"
35 # 当前的时间戳
36 nonce = int(time.time() * 1000)
37 # 接口签名秘钥
38 app_sec = "01a258aff68e6b2f2513df7f7dc3cf18"
39 # 方法签名
40 sign = "appkey%sauth_ver%snonce%d%s" % (app_key, auth_ver, nonce, app_sec)
41 md5_sign = hashlib.md5(sign.encode('utf-8')).hexdigest()
42 # desKey 3DES秘钥(可配置),根据商户平台实际生成的替换此值
43 des_key = "cba76b7b0ab1011179087092effe1b8d"
44 # 拼接公共参数到URL
45 url = "https://platform.armvm.com/resourcePath?appkey=%s&auth_ver=%s&s=%s&nonce=%d" % (app_key, auth_ver, md5_sign, nonce)
46 data = {
47 "param1": "value1",
48 "param2": "value2",
49 "param3": "value3",
50 }
51 msg = encrypt_with_base64(des_key, nonce, json.dumps(data))
52 post_data = {
53 "msg": msg,
54 "createTime": nonce
55 }
56 print('url = ', url)
57 print('data = ', post_data)
58 res = requests.post(url, json.dumps(post_data), headers={
59 'Content-Type': 'application/json'
60 })
61 print(res.text)
Go
1package main
2
3import (
4 "bytes"
5 "crypto/md5"
6 "encoding/base64"
7 "encoding/hex"
8 "encoding/json"
9 "fmt"
10 "github.com/forgoer/openssl"
11 "net/http"
12 "time"
13)
14
15func encryptWithBase64(key string, iv int64, message string) (string, error) {
16 ivBytes := make([]byte, 8)
17 for i := 0; i < 8; i++ {
18 ivBytes[7-i] = byte(iv >> (8 * i))
19 }
20 ciphertext, err := openssl.Des3CBCEncrypt([]byte(message), []byte(key)[:24], ivBytes, openssl.PKCS7_PADDING)
21 if err != nil {
22 return "", err
23 }
24 return base64.StdEncoding.EncodeToString(ciphertext), nil
25}
26
27func main() {
28 appKey := "4a8311be034943cfaa6a357fdc9f0461"
29 authVer := "3"
30 nonce := time.Now().UnixNano() / int64(time.Millisecond)
31 appSec := "01a258aff68e6b2f2513df7f7dc3cf18"
32
33 sign := fmt.Sprintf("appkey%sauth_ver%snonce%d%s", appKey, authVer, nonce, appSec)
34 md5Sum := md5.Sum([]byte(sign))
35 md5Sign := hex.EncodeToString(md5Sum[:])
36
37 desKey := "cba76b7b0ab1011179087092effe1b8d"
38
39 url := fmt.Sprintf("https://platform.armvm.com/resourcePath?appkey=%s&auth_ver=%s&s=%s&nonce=%d", appKey, authVer, md5Sign, nonce)
40
41 data := map[string]string{
42 "param1": "value1",
43 "param2": "value2",
44 "param3": "value3",
45 }
46
47 jsonData, err := json.Marshal(data)
48 if err != nil {
49 fmt.Println("Error marshalling JSON:", err)
50 return
51 }
52
53 msg, err := encryptWithBase64(desKey, nonce, string(jsonData))
54 if err != nil {
55 fmt.Println("Encryption error:", err)
56 return
57 }
58
59 postData := map[string]interface{}{
60 "msg": msg,
61 "createTime": nonce,
62 }
63
64 postDataJson, err := json.Marshal(postData)
65 if err != nil {
66 fmt.Println("Error marshalling post data:", err)
67 return
68 }
69
70 fmt.Println("url = ", url)
71 fmt.Println("data = ", string(postDataJson))
72
73 req, err := http.NewRequest("POST", url, bytes.NewBuffer(postDataJson))
74 if err != nil {
75 fmt.Println("Error creating request:", err)
76 return
77 }
78 req.Header.Set("Content-Type", "application/json")
79
80 client := &http.Client{}
81 resp, err := client.Do(req)
82 if err != nil {
83 fmt.Println("Error making request:", err)
84 return
85 }
86 defer resp.Body.Close()
87
88 var responseBytes bytes.Buffer
89 _, err = responseBytes.ReadFrom(resp.Body)
90 if err != nil {
91 fmt.Println("Error reading response:", err)
92 return
93 }
94
95 fmt.Println(responseBytes.String())
96}
云手机相关接口
获取serverToken
基本信息
URL
https://platform.armvm.com/auth/instance/cloud-phone-server-token
请求格式
POST
版本号
3
使用备注
同一个uuid+instanceCode的组合,只允许拥有一个有效的serverToken,不允许同时为相同的uuid+instanceCode申请多个serverToken
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
uuid | String | 必须 | 无 | 用户唯一标识。uuid是用来区分真实用户的唯一标识 | 89e87993500e424ab0de340da6f3599e |
instanceCodes | String[] | 必须 | 无 | 实例编码集合,长度不能超过50 | ["VM192168169028","VM192168169029"] |
onlineTime | Integer | 必须 | 无 | 控制时长,单位:秒;1~2147483647 | 300 |
grantControl | String | 必须 | 无 | 控制模式: CONTROL,可控制; WATCH:只能观看 |
WATCH |
返回参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
code | number | 非必须 | 响应码 | 0 |
data | object | 非必须 | 返回信息 | |
├─successList | object[] | 非必须 | 获取成功的列表 | [ {"instanceCode": "VM192168169028", "serverToken": "50b13132bb394901f151bc45"} ] |
├──instanceCode | String | 非必须 | 实例编码 | "VM192168169028" |
├──serverToken | String | 非必须 | 服务端token | "50b13132bb394901f151bc45" |
├─errorList | object[] | 非必须 | 获取失败的列表 | [ {"instanceCode": "VM192168169028", "errorMsg": "实例不存在"} ] |
├──instanceCode | String | 非必须 | 实例编码 | "VM192168169028" |
├──errorMsg | String | 非必须 | 错误信息 | "实例不存在" |
msg | string | 非必须 | 响应消息 | OK |
ts | number | 非必须 | 响应时间戳 | 1658393762049 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "data": {
5 "successList": [
6 {
7 "instanceCode": "VM192168169027",
8 "serverToken": "50b13132bb394901f151bc45"
9 }
10 ],
11 "errorList": [
12 {
13 "instanceCode": "VM192168169028",
14 "errorMsg": "实例不存在"
15 },
16 {
17 "instanceCode": "VM192168169029",
18 "errorMsg": "实例不存在"
19 }
20 ]
21 },
22 "ts": "1658455442690"
23}
异常示例
1{
2 "code": 11101118,
3 "msg": "商户类型错误,只允许云手机客户使用",
4 "ts": "1658455442690"
5}
获取授权serverToken
基本信息
URL
https://platform.armvm.com/auth/instance/authorized-server-token
请求格式
POST
版本号
3
使用场景
用于实例授权场景,将已连接的云手机授权给其他用户使用,支持主用户和授权用户可同时使用
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
uuid | String | 必须 | 用户唯一标识 | 89e87993500e424ab0de340da6f3599e | |
instanceCode | String | 必须 | 实例编号 | VM192168169028 | |
onlineTime | Integer | 必须 | 授权使用时间,单位:秒 | 3600 | |
grantControl | String | 必须 | 控制模式: CONTROL,可控制; WATCH:只能观看 |
CONTROL |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 必须 | |||
├─serverToken | String | 必须 | 服务端token | 50b13132bb394901f151bc45 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168169028 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "instanceCode": "VM192168169028",
5 "serverToken": "c5039adcda344cebb748e94644fbc68f5"
6 },
7 "msg": "OK",
8 "ts": "1694584934947"
9}
异常示例
1{
2 "code": 11103270,
3 "msg": "实例暂未被使用,不能对该实例申请授权",
4 "ts": 1601192809490
5}
1{
2 "code": 11103271,
3 "msg": "当前实例授权连接个数已达上限",
4 "ts": 1601192809490
5}
实例解绑
基本信息
URL
请求格式
POST
版本号
3
使用场景
根据申请实例时传参的serverToken来释放实例。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
uuid | String | 必须 | 无 | 用户唯一标识。uuid是用来区分真实用户的唯一标识,必须与申请serverToken时的uuid一致 | 89e87993500e424ab0de340da6f3599e |
serverToken | String | 必须 | 无 | 申请实例时传入的serverToken | 50b13132bb394901f151bc45 |
返回参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
code | number | 非必须 | 响应码 | 0 |
data | object | 非必须 | 返回信息 | |
msg | string | 非必须 | 响应消息 | OK |
ts | number | 非必须 | 响应时间戳 | 1658393762049 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {},
4 "msg": "OK",
5 "ts": "1658455442690"
6}
异常示例
1{
2 "code": 11102027,
3 "msg": "serverToken无效",
4 "ts": "1658455442690"
5}
新增实例到期时间
基本信息
URL
https://platform.armvm.com/resources/instance/expire-time-increase
请求格式
POST
版本号
3
使用场景
按分钟数新增实例的到期时间
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
serverTokens | String[] | 必须 | 无 | 绑定的serverToken值 | ['021c6bee611b4d27aeb3de240d7144055'] |
time | Integer | 必须 | 无 | 新增的时长,单位:分钟,范围:[1, 5256000] | 1000 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 非必须 | |||
├─ failList | String[] | 必须 | 续时失败的serverToken值 | ||
msg | String | 必须 | 返回信息 | success | |
ts | Long | 必须 | 接口返回时时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "failList": []
4 },
5 "code": 0,
6 "msg": "OK",
7 "ts": "1702454509182"
8}
异常示例
1{
2 "code": 11102027,
3 "msg": "serverToken无效",
4 "ts": "1702458796121"
5}
更新实例到期时间
基本信息
URL
https://platform.armvm.com/resources/instance/expire-time-update
请求格式
POST
版本号
3
使用场景
更新实例的到期时间
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
serverTokens | String[] | 必须 | 无 | 绑定的serverToken值 | ['021c6bee611b4d27aeb3de240d7144055'] |
expireTime | Long | 必须 | 无 | 新的到期时间(时间戳) | 1704038400000 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 非必须 | |||
├─ failList | String[] | 必须 | 续时失败的serverToken值 | ||
msg | String | 必须 | 返回信息 | success | |
ts | Long | 必须 | 接口返回时时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "failList": []
4 },
5 "code": 0,
6 "msg": "OK",
7 "ts": "1702454509182"
8}
异常示例
1{
2 "code": 11102027,
3 "msg": "serverToken无效",
4 "ts": "1702458796121"
5}
查询实例的所有绑定信息
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
├─instanceCode | String | 非必须 | 实例编号 | VM011101100190 | ||
├─serverToken | String | 非必须 | serverToken | 49b1f2943e04468383b10e4acafaad2d5 | ||
├─uuid | String | 非必须 | 用户uid | 72f4d5bc0036 | ||
├─businessType | String | 非必须 | 绑定业务类型:cloud_phone-云手机;cloud_app-云游戏;oem-OEM | cloud_phone | ||
├─bindTime | Long | 非必须 | 绑定时间 | 1734578634443 | ||
├─expireTime | Long | 非必须 | 到期时间 | 1735587244443 | ||
├─controlStatus | String | 非必须 | 受控状态:online-非受控,control-受控 | online | ||
├─grantControl | String | 非必须 | 控制权:CONTROL-可控制,WATCH-仅观看 | CONTROL | ||
├─instanceControlTime | Long | 非必须 | 最近受控时间 | 1734578795543 | ||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "instanceCode": "VM011101100190",
5 "serverToken": "49b1f2943e04468383b10e4acafaad2d5",
6 "uuid": "72f4d5bc0036",
7 "businessType": "cloud_phone",
8 "bindTime": 1734578634443,
9 "expireTime": 1735587244443,
10 "controlStatus": "online",
11 "grantControl": "CONTROL",
12 "instanceControlTime": null
13 }
14 ],
15 "code": 0,
16 "msg": "OK",
17 "ts": "1734578646712"
18}
异常示例
1{
2 "code": 11103062,
3 "msg": "实例不存在",
4 "ts": "1734578806958"
5}
解绑实例的所有绑定信息
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object | 非必须 | ||||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {},
3 "code": 0,
4 "msg": "OK",
5 "ts": "1734578060146"
6}
异常示例
1{
2 "code": 11103062,
3 "msg": "实例不存在",
4 "ts": "1734578078843"
5}
6
7{
8 "code": 11103397,
9 "msg": "实例存在云游戏或OEM的绑定信息,暂不支持调用此接口解绑",
10 "ts": "1734578136525"
11}
实例批量解绑
基本信息
URL
请求格式
POST
版本号
3
使用场景
根据申请实例时传参的serverToken来批量释放实例。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
disconnectList | Object[] | 必须 | 无 | 需要解绑的uuid和serverToken集合,最多200个 | |
├─ uuid | String | 必须 | 无 | 用户唯一标识。uuid是用来区分真实用户的唯一标识,必须与申请serverToken时的uuid一致 | 89e87993500e424ab0de340da6f3599e |
├─ serverToken | String | 必须 | 无 | 申请实例时传入的serverToken | 50b13132bb394901f151bc45 |
返回参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
code | number | 非必须 | 响应码 | 0 |
data | object | 非必须 | 返回信息 | |
├─successList | String[] | 必须 | 成功的serverToken | ["50b13132bb394901f151bc45"] |
├─failList | Object[] | 必须 | 失败的serverToken和原因 | |
├───serverToken | String | 必须 | serverToken | 50b13132bb394901f151bc46 |
├───msg | String | 必须 | 失败原因 | serverToken无效 |
msg | string | 非必须 | 响应消息 | OK |
ts | number | 非必须 | 响应时间戳 | 1658393762049 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "successList": ["50b13132bb394901f151bc45"],
5 "failList": [
6 {
7 "serverToken": "50b13132bb394901f151bc46",
8 "msg": "serverToken无效"
9 }
10 ]
11 },
12 "msg": "OK",
13 "ts": "1658455442690"
14}
基础能力相关接口
分页查询实例信息
基本信息
URL
请求格式
POST
版本号
3
使用场景
根据查询条件分页获取实例列表信息。
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
page | Integer | 非必须 | 1 | 页码,默认值1,最小1页(包含1页) | 1 |
rows | Integer | 非必须 | 200 | 每页记录数,默认值200,最小1条(包含1条),最大1000条(包含1000条) | 10 |
instanceCodes | String[] | 非必须 | 实例编号集合,集合长度在200内(包含200) | ["VM192168001001"] | |
merchantPoolNos | Long[] | 非必须 | 实例池编号集合,集合长度在50内(包含50) | [1, 2] | |
deviceIps | String[] | 非必须 | 物理机IP集合,集合长度在200内(包含200) | ["192.168.1.1"] | |
instanceType | String | 非必须 | 实例类型:business-商业机;model-模板机;detect-检测机 | business | |
serverType | String | 非必须 | 服务器类型:G4(845)、G6(865)、G55(8550)、R1(3288)、R2(3399)、R3(3588)、A128(AmpereAltra128) | G4 | |
romVersion | String | 非必须 | 系统版本 | android12.0 | |
instanceGradeName | String | 非必须 | 实例等级名称 | VIP | |
idcCode | String | 非必须 | 所属机房编号 | GZNX-IDC-02 | |
usableStatus | String | 非必须 | 可用状态:usable-可用;unusable-不可用 | usable | |
maintainStatus | Integer | 非必须 | 维护状态:0-正常;1-维护 | 0 | |
recycleStatus | String | 非必须 | 释放状态:normal-正常;recycle-回收中;fail-失败 | normal | |
taskStatus | String | 非必须 | 任务状态:none-正常;executing-执行中 | none | |
instanceStatus | Integer | 非必须 | 实例在线状态:0:离线;1:在线 | 1 | |
deviceStatus | Integer | 非必须 | 物理机在线状态:0:离线;1:在线 | 1 | |
malfunctionStatus | Integer | 非必须 | 实例故障状态:0-正常;1-故障 | 0 | |
networkStatus | Integer | 非必须 | 网络状态:0-正常;1-欠费断网 | 0 | |
bindStatus | String | 非必须 | 绑定状态: bindable-未绑定;bound-已绑定 | bindable | |
controlStatus | String | 非必须 | 控制状态: online-在线;control-受控 | online | |
imageVersionId | Long | 非必须 | 系统镜像版本ID | 1234 | |
snapshotMountStatus | String | 非必须 | DuFS快照挂载状态:mounted-已挂载;unmounted-未挂载 | mounted | |
snapshotId | Long | 非必须 | 所挂载的DuFS快照ID | 1234 |
返回参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 |
data | Object | 非必须 | ||
├─total | Integer | 必须 | 总数 | 20 |
├─totalPage | Integer | 必须 | 总页码 | 2 |
├─page | Integer | 必须 | 页码 | 1 |
├─rows | Integer | 必须 | 每页数量 | 10 |
├─pageData | Object [] | 必须 | ||
├───instanceCode | String | 必须 | 实例编号 | VM192168232001 |
├───instanceIp | String | 必须 | 实例IP | 192.168.232.1 |
├───deviceIp | String | 必须 | 物理机IP | 192.168.1.100 |
├───deviceCode | String | 必须 | 物理机编号 | GZNX-IDC_DM011010099026 |
├───instanceType | String | 必须 | 实例类型:business-商业机;model-模板机;detect-检测机 | business |
├───serverType | String | 必须 | 服务器类型:G4(845)、G6(865)、G55(8550)、R1(3288)、R2(3399)、R3(3588)、A128(AmpereAltra128) | G4 |
├───instanceGrade | String | 必须 | 开数 | 1 |
├───romVersion | String | 必须 | 系统版本 | android12.0 |
├───merchantPoolNo | Long | 必须 | 商户实例池编号 | 1 |
├───idcCode | String | 必须 | 机房编号 | GZNX-IDC-02 |
├───idcName | String | 必须 | 机房名称 | 南翔机房-可用区1 |
├───availableStatus | String | 必须 | 可分配状态:unavailable-不可分配;available-可分配 | available |
├───usableStatus | String | 必须 | 可用状态:usable-可用;unusable-不可用 | usable |
├───maintainStatus | Integer | 必须 | 维护状态:0-正常;1-维护 | 0 |
├───recycleStatus | String | 必须 | 释放状态:normal-正常;recycle-回收中;fail-失败 | normal |
├───taskStatus | String | 必须 | 任务状态:none-正常;executing-执行中 | none |
├───instanceStatus | Integer | 必须 | 实例在线状态:0:离线;1:在线 | 1 |
├───deviceStatus | Integer | 必须 | 物理机在线状态:0:离线;1:在线 | 1 |
├───malfunctionStatus | Integer | 必须 | 实例故障状态:0-正常;1-故障 | 0 |
├───networkStatus | Integer | 必须 | 网络状态:0-正常;1-欠费断网 | 0 |
├───bindStatus | String | 必须 | 绑定状态: bindable-未绑定;bound-已绑定 | bindable |
├───controlStatus | String | 必须 | 控制状态: online-在线;control-受控 | online |
├───imageVersionId | Long | 非必须 | 系统镜像版本ID | 10001 |
├───imageVersionName | String | 非必须 | 系统镜像版本名称 | 3588_aosp10_v2.25.1(2025-03-13) |
├───snapshotMountStatus | String | 必须 | DuFS快照挂载状态:mounted-已挂载;unmounted-未挂载 | mounted |
├───snapshotId | Long | 非必须 | 所挂载的DuFS快照ID | 5001 |
├───memoryLimit | Integer | 非必须 | 内存限额,单位为MB,null则为不限额 | 1024 |
├───upSpeed | Double | 非必须 | 外网上行限速,单位为Mbps | 100.0 |
├───downSpeed | Double | 非必须 | 外网下行限速,单位为Mbps | 100.0 |
├───intranetUpSpeed | Double | 非必须 | 内网上行限速,单位为Mbps | 10.0 |
├───intranetDownSpeed | Double | 非必须 | 内网下行限速,单位为Mbps | 10.0 |
├───allocateTime | Date | 必须 | 调度时间(时间戳) | 1733297481137 |
├───recycleTime | Date | 必须 | 回收时间(时间戳) | 1733297481137 |
msg | String | 必须 | 响应消息 | |
ts | Long | 必须 | 时间戳 | 1733297481137 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 20,
5 "totalPage": 2,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "instanceCode": "VM192168232001",
11 "instanceIp": "192.168.232.1",
12 "deviceIp": "192.168.1.100",
13 "deviceCode": "GZNX-IDC_DM011010099026",
14 "instanceType": "business",
15 "serverType": "G4",
16 "instanceGrade": "1",
17 "romVersion": "android12.0",
18 "merchantPoolNo": 1,
19 "idcCode": "GZNX-IDC-02",
20 "idcName": "南翔机房-可用区1",
21 "availableStatus": "available",
22 "usableStatus": "usable",
23 "maintainStatus": 0,
24 "recycleStatus": "normal",
25 "taskStatus": "none",
26 "instanceStatus": 1,
27 "deviceStatus": 1,
28 "malfunctionStatus": 0,
29 "networkStatus": 0,
30 "bindStatus": "bindable",
31 "controlStatus": "online",
32 "imageVersionId": 10001,
33 "imageVersionName": "3588_aosp10_v2.25.1(2025-03-13)",
34 "snapshotMountStatus": "mounted",
35 "snapshotId": 5001,
36 "memoryLimit": 1024,
37 "upSpeed": 100.0,
38 "downSpeed": 100.0,
39 "intranetUpSpeed": 10.0,
40 "intranetDownSpeed": 10.0,
41 "allocateTime": 1733297481137,
42 "recycleTime": 1733297481137
43 }
44 ]
45 },
46 "msg": "success",
47 "ts": 1733297481137
48}
客户实例汇总数据查询
基本信息
URL
请求格式
POST
版本号
3
使用场景
客户可以通过该接口来实时查询当前所有机房下的总实例数、可用实例数和已绑定的实例数。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
merchantPoolNo | Long | 非必须 | 无 | 实例池编号 | 1 |
includeSubPool | Boolean | 非必须 | true | 是否包含子实例池 | true-包含子实例池,false-不包含子实例池 |
merchantPoolNo与includeSubPool的使用
merchantPoolNo | includeSubPool | 筛选实例范围 |
---|---|---|
null | null 或 true | 当前商户的所有可用实例 |
null | false | 当前商户顶级实例池中的可用实例 |
100 | null 或 true | 当前商户实例池编号为100的实例池及下层子实例池中的可用实例 |
100 | false | 当前商户实例池编号为100的实例池中的可用实例 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 必须 | |||
├─ totalData | Object | 必须 | 实例总数信息 | ||
├─├─ totalInstanceCount | Integer | 必须 | 总数 | 10 | |
├─├─ idcList | Object[] | 必须 | 机房列表 | ||
├─├─├─ idcName | String | 必须 | 机房名称 | 广州机房 | |
├─├─├─ idcCode | String | 必须 | 机房编码 | IDC-GZ | |
├─├─├─ instanceCount | Integer | 必须 | 数量 | 10 | |
├─ availableData | Object | 必须 | 可用实例总数 | ||
├─├─ totalInstanceCount | Integer | 必须 | 总数 | 5 | |
├─├─ idcList | Object[] | 必须 | 机房列表 | ||
├─├─├─ idcName | String | 必须 | 机房名称 | 广州机房 | |
├─├─├─ idcCode | String | 必须 | 机房编码 | IDC-GZ | |
├─├─├─ instanceCount | Integer | 必须 | 数量 | 5 | |
├─ boundData | Object | 必须 | 已绑定实例总数 | ||
├─├─ totalInstanceCount | Integer | 必须 | 总数 | ||
├─├─ idcList | Object[] | 必须 | 机房列表 | ||
├─├─├─ idcName | String | 必须 | 机房名称 | 广州机房 | |
├─├─├─ idcCode | String | 必须 | 机房编码 | IDC-GZ | |
├─├─├─ instanceCount | Integer | 必须 | 数量 | 5 | |
msg | String | 必须 | 返回信息 | success | |
ts | Long | 必须 | 接口返回时时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "success",
4 "ts": 1658455442690,
5 "data": {
6 "totalData": {
7 "totalInstanceCount": 10,
8 "idcList": [
9 {
10 "idcName": "广州机房",
11 "idcCode": "GZ-IDC-01",
12 "instanceCount": 10
13 }
14 ]
15 },
16 "boundData": {
17 "totalInstanceCount": 5,
18 "idcList": [
19 {
20 "idcName": "广州机房",
21 "idcCode": "GZ-IDC-01",
22 "instanceCount": 5
23 }
24 ]
25 },
26 "availableData": {
27 "totalInstanceCount": 5,
28 "idcList": [
29 {
30 "idcName": "广州机房",
31 "idcCode": "GZ-IDC-01",
32 "instanceCount": 5
33 }
34 ]
35 }
36 }
37}
获取实例设备信息
基本信息
只支持查询到从平台发起安装的应用信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 是 | 实例编号集合,最多只能传入200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object[] | 必须 | |||
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
├─storageSum | Double | 必须 | 设备可用磁盘总空间,单位GB | 100.0G | |
├─storageFree | Double | 必须 | 设备剩余磁盘空间,单位GB | 82.8G | |
├─appInstallList | Object[] | 必须 | |||
├─├─appId | Long | 必须 | 应用ID | 1001 | |
├─├─appName | String | 必须 | 应用名称 | demo | |
├─├─packageName | String | 必须 | 应用包名 | com.demo | |
├─├─versionName | String | 必须 | 应用版本名称 | 1.0.1 | |
├─├─appIconUrl | String | 必须 | 应用图标地址 | https://demo.com/xxx.jpg | |
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "data": [
5 {
6 "appInstallList": [
7 {
8 "appName": "demo",
9 "packageName": "com.demo",
10 "versionName": "1.0.1",
11 "appId": 1001,
12 "appIconUrl": "https://demo.com/xxx.jpg"
13 }
14 ],
15 "storageSum": 100.0,
16 "storageFree": 82.8,
17 "padCode": "VM192168001001"
18 }
19 ],
20 "ts": "1658455442690"
21}
异常示例
1{
2 "code": 11100050,
3 "msg": "系统异常,请联系客服人员"
4}
机房未绑定实例数信息
基本信息
URL
请求格式
POST
版本号
3
请求参数
无
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 非必须 | |||
├─totalAvailableCount | Integer | 非必须 | 可用实例总数 | 20 | |
├─idcInfos | Object[] | 非必须 | |||
├───idcName | String | 必须 | 机房名称 | 广州机房 | |
├───idcCode | String | 必须 | 机房编码 | GZ-IDC-TEST-01 | |
├───availableCount | Integer | 必须 | 可用数量 | 1001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "totalAvailableCount": 128,
5 "idcInfos": [
6 {
7 "idcName": "北京机房",
8 "idcCode": "BJ-1001",
9 "availableCount": 20
10 },
11 {
12 "idcName": "广州机房",
13 "idcCode": "GZ-10012",
14 "availableCount": 108
15 }
16 ],
17 "msg": "",
18 "ts": 1601021167163
19 }
20}
异常示例
机房已绑定实例数信息
基本信息
URL
https://platform.armvm.com/monitor/pad/enable-bind-count.html
请求格式
POST
版本号
3
请求参数
无
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 非必须 | |||
├─totalEnableBindCount | Integer | 非必须 | 客户已绑定的设备数 | 20000 | |
├─idcInfos | Object[] | 非必须 | |||
├───idcName | String | 必须 | 机房名称 | 广州机房 | |
├───idcCode | String | 必须 | 机房编码 | GZ-IDC-TEST-01 | |
├───enableBindCount | Integer | 必须 | 机房的已绑定的设备数 | 999 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "totalEnableBindCount": 2000,
5 "idcInfos": [
6 {
7 "idcName": "北京机房",
8 "idcCode": "BJ-1001",
9 "enableBindCount": 1001
10 },
11 {
12 "idcName": "广州机房",
13 "idcCode": "GZ-10012",
14 "enableBindCount": 999
15 }
16 ],
17 "msg": "",
18 "ts": 1601021167163
19 }
20}
异常示例
实例截图
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
padCodes | String[] | 必须 | ["VM192168043080", "VM192168043091"] | ||
quality | Integer | 非必须 | 3 | 枚举值:1,2,3,表示截图质量。 其中,1:高质量,2:中质量,3低质量 |
3 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Integer | 必须 | 任务ID | 1001 | |
├─padCode | String | 必须 | 实例编号 | VM192168043091 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "padCode": "VM192168043080"
7 },
8 {
9 "taskId": 1002,
10 "padCode": "VM192168043091"
11 }
12 ],
13 "msg": "",
14 "ts": 1668572148662
15}
异常示例
1{
2 "code":11103062,
3 "msg":"实例不存在",
4 "ts":"1668586771490"
5}
实例截图结果查询
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskIds | Integer[] | 必须 | 任务ID集合 | [1001, 1002] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Integer | 必须 | 任务ID | 1001 | |
├─padCode | String | 必须 | 实例编号 | VM192168043091 | |
├─taskStatus | Integer | 必须 | 截图任务状态,枚举值6,7,8。其中,6:截图中,7:截图成功,8:截图失败 | 7 | |
├─url | String | 必须 | 截图下载URL | ||
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "padCode": "VM192168043080",
7 "taskStatus": 7,
8 "url":"https://platform.armvm.com/files/screenshot/6a8030673f534b9c948c58b51c615553.png"
9 },
10 {
11 "taskId": 1002,
12 "padCode": "VM192168043091",
13 "taskStatus": 7,
14 "url":"https://platform.armvm.com/files/screenshot/6a8030673f534b9c948c58b51c615555.png"
15 }
16 ],
17 "msg": "",
18 "ts": 1668572148662
19}
异常示例
1{
2 "code":11109015,
3 "msg":"操作失败,请输入正确的任务ID",
4 "ts":"1668584368093"
5}
创建流量查询任务
基本信息
URL
请求格式
POST
版本号
3
使用场景
创建流量查询任务,查询给定实例集合的流量或宽带计费汇总,查询时间范围限制为只能查询60分钟以前60天以内的数据。
具有最大任务创建数限制,超过限制时,需要等待前面的任务执行完毕后才能创建新的查询任务。
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例列表集合 | ["VM011021103175"] | |
startTime | String | 必须 | 查询开始时间(必须为小时整点时间),格式为yyyy-MM-dd hh:mm:ss | 2023-02-23 18:00:00 | |
endTime | String | 必须 | 查询结束时间(必须为小时整点时间),格式为yyyy-MM-dd hh:mm:ss, | 2023-02-23 18:00:00 | |
billingType | String | 必须 | 计费类型,枚举类型:FLOW(流量计费)、PEEK_PERCENT_100(峰值带宽计费)、PEEK_PERCENT_95(95峰值带宽计费) | FLOW | |
taskDesc | String | 非必须 | 任务描述 | "2023年2月份流量计费汇总" |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 必须 | |||
├─ taskId | String | 必须 | 任务ID | "89695" | |
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "data": [
5 {
6 "taskId": "89695",
7 },
8 ],
9 "ts": "1658455442690"
10}
异常示例
1{
2 "code": 11100064,
3 "msg": "查询开始时间不能早于前60天",
4 "ts": 1601192809490
5}
1{
2 "code": 11100065,
3 "msg": "查询结束时间只能到60分钟以前",
4 "ts": 1601192809490
5}
1{
2 "code": 11109021,
3 "msg": "当前已有%s个查询任务正在执行,超过任务个数限制,请稍后再试",
4 "ts": 1601192809490
5}
1{
2 "code": 11100050,
3 "msg": "系统异常,请联系客服人员",
4 "ts": 1601192809490
5}
获取流量查询任务结果
基本信息
URL
https://platform.armvm.com/distribute/task/query-flow-result
请求格式
POST
版本号
3
使用场景
创建流量查询任务后,用返回的taskId调用该接口获取流量查询任务的结果
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | String | 必须 | 任务ID | "89695" |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 必须 | |||
├─ taskId | String | 必须 | 任务ID | "89695" | |
├─ taskDesc | String | 必须 | 创建任务传入的任务描述 | "2023年2月份流量计费汇总" | |
├─billingType | String | 必须 | 计费类型 | "FLOW" | |
├─taskStatus | String | 必须 | 任务状态,INIT 初始化, PROCESSING 处理中, SUCCESS 成功, NOT_EXIST 不存在, FAIL 失败; | "SUCCESS" | |
├─ msg | String | 非必须 | 任务失败时,描述失败原因 | ||
├─ billingValue | Double | 必须 | 计费值,成功状态时有值,流量(单位byte)或带宽(单位bps) | 100.0 | |
├─ bandwidthList | Object[] | 非必须 | 带宽明细列表 | ||
├─ ├─ recordTime | Long | 必须 | 记录时间(毫秒时间戳) | 1676020200000 | |
├─ ├─ send | Double | 必须 | 发送数据,单位:bps | 50.0 | |
├─ ├─ receive | Double | 必须 | 接收数据,单位:bps | 50.0 | |
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "data": {
5 "msg": "",
6 "billingValue": 100.0,
7 "taskStatus": "SUCCESS",
8 "billingType": "FLOW",
9 "taskId": "89695",
10 "taskDesc": "2023年2月份流量计费汇总",
11 "bandwidthList": [
12 {
13 "recordTime": 1676020200000,
14 "receive": 50.0,
15 "send": 50.0
16 }
17 ]
18 },
19 "ts": "1658455442690"
20}
异常示例
1{
2 "code": 11108002,
3 "msg": "请输入正确的任务ID",
4 "ts": 1601192809490
5}
1{
2 "code": 11100050,
3 "msg": "系统异常,请联系客服人员",
4 "ts": 1601192809490
5}
上传文件到实例
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编号集合 | ["VM192168043080", "VM192168043091"] | |
fileUrl | String | 必须 | 文件URL | http://platform.armvm.com/test.apk |
|
fileName | String | 必须 | 文件名称 | test.apk | |
fileMd5 | String | 必须 | 文件MD5摘要 | 185da05e944e869ebf077d6217d3efe9 | |
autoInstall | Integer | 非必须 | 枚举值:0,1,表示是否选择自动安装,仅上传apk时生效。 其中,0:不自动安装,1:自动安装 |
0 | |
customizeFilePath | String | 非必须 | 上传到实例的自定义路径 | /tmp/files/ |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1001 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168043091 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "instanceCode": "VM192168043080"
7 },
8 {
9 "taskId": 1002,
10 "instanceCode": "VM192168043091"
11 }
12 ],
13 "msg": "",
14 "ts": 1668572148662
15}
异常示例
1{
2 "code":11103062,
3 "msg":"实例不存在",
4 "ts":1668586771490
5}
1{
2 "code":11103082,
3 "msg":"自定义路径禁止包含[.]或空格",
4 "ts":1668586771490
5}
实例截图
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
padCodes | String[] | 必须 | 实例编号集合 | ["VM192168043080", "VM192168043091"] | |
scriptContent | String | 必须 | 脚本内容 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1001 | |
├─padCode | String | 必须 | 实例编号 | VM192168043091 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "padCode": "VM192168043080"
7 },
8 {
9 "taskId": 1002,
10 "padCode": "VM192168043091"
11 }
12 ],
13 "msg": "",
14 "ts": 1668572148662
15}
异常示例
1{
2 "code":11103062,
3 "msg":"实例不存在",
4 "ts":"1668586771490"
5}
实例备份
基本信息
对云手机实例进行数据备份,生成一份快照数据保存到对象存储中,之后可以通过实例还原功能将快照数据恢复到云手机实例中。
备份还原会产生大量流量,请谨慎使用外网的对象存储服务。
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
snapshotName | String | 必须 | 快照名称 | VM192168001001_0925 | |
ossConfig | Object | 必须 | 对象存储配置,需要支持s3协议 | ||
├─endpoint | String | 必须 | 对象存储endpoint | s3.bj.bcebos.com | |
├─bucket | String | 必须 | 对象存储bucket | test | |
├─accessKey | String | 必须 | 对象存储accessKey | ATqjcosksxz | |
├─secretKey | String | 必须 | 对象存储secretKey | sdfaweradfg | |
├─protocol | String | 必须 | 对象存储访问协议:http, https | https | |
snapshotPath | String | 非必须 | / | 快照数据保存在对象存储的路径,不传则默认保存在根目录"/"下 | /snapshot/data/ |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 100000 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
├─snapshotId | Long | 必须 | 快照id | 7290017192180314133 | |
├─snapshotName | String | 必须 | 快照名称 | VM192168001001_0925 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001",
7 "snapshotId": 7290017192180314133,
8 "snapshotName": "VM192168001001_0925"
9 }
10 ],
11 "msg": "",
12 "ts": 1601188620078
13}
异常示例
1{
2 "code": 11103062,
3 "msg": "实例不存在",
4 "ts": 1601021167163
5}
实例还原
基本信息
将已备份成功的快照数据恢复到指定的云手机实例。
备份还原会产生大量流量,请谨慎使用外网的对象存储服务。
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
snapshotId | Long | 必须 | 快照ID | 7290017192180314133 | |
instanceCodes | String[] | 必须 | 实例编号集合,最多200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 100000 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11108050,
3 "msg": "实例快照未完成创建",
4 "ts": 1601021167163
5}
分页查询实例快照信息
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
snapshotIds | Long[] | 非必须 | 快照ID集合 | [7290017192180314133] | |
snapshotName | String | 非必须 | 快照名称,可模糊查询 | ||
snapshotStatus | String | 非必须 | 快照状态: wait_create-待创建 creating-创建中 create_success-创建成功 create_failed-创建失败 |
create_success | |
page | Integer | 必须 | 页码 | 1 | |
rows | Integer | 必须 | 每页条数,最多200 | 10 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 非必须 | |||
├─total | Integer | 必须 | 总数 | 20 | |
├─totalPage | Integer | 必须 | 总页码 | 2 | |
├─page | Integer | 必须 | 页码 | 1 | |
├─rows | Integer | 必须 | 每页数量 | 10 | |
├─pageData | Object [] | 必须 | |||
├───snapshotId | Long | 必须 | 快照ID | 7290017192180314133 | |
├───snapshotName | String | 必须 | 快照名称 | VM192168001001_0925 | |
├───snapshotStatus | String | 必须 | 快照状态: wait_create-待创建 creating-创建中 create_success-创建成功 create_failed-创建失败 |
create_success | |
├───snapshotSize | Integer | 必须 | 快照大小,单位KB | 2048 | |
msg | String | 必须 | 响应消息 | ||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 1,
5 "totalPage": 1,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "snapshotId": 7290017192180314133,
11 "snapshotName": "VM192168001001_0925",
12 "snapshotStatus": "create_success",
13 "snapshotSize": 2048
14 }
15 ]
16 },
17 "msg": "",
18 "ts": 1601021167163
19}
异常示例
实例授权连接
基本信息
URL
请求格式
POST
版本号
3
使用场景
用于实例授权场景,将已连接的云手机授权给其他用户使用,支持主用户和授权用户可同时使用
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
uuid | String | 必须 | 用户唯一标识 | 89e87993500e424ab0de340da6f3599e | |
instanceCode | String | 必须 | 实例编号 | VM192168169028 | |
onlineTime | Integer | 必须 | 授权使用时间,单位:秒 | 3600 | |
grantControl | String | 必须 | 控制模式: CONTROL,可控制; WATCH:只能观看 |
CONTROL |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 必须 | |||
├─serverToken | String | 必须 | 服务端token | 50b13132bb394901f151bc45 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168169028 | |
├─streamModeList | String[] | 必须 | 推流方式配置 | ["1", "2"] | |
├─sessionId | String | 必须 | 会话id | 3WGVL2R7NQXUMKAAERANZXT003RNQRPZ | |
├─connData | String | 必须 | 连接信息(json格式) | ||
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "connData": {
5 "controlList": [
6 {
7 "controlCode": "TEST-TCP-CONTROL-242-bk",
8 "controlInfoList": [
9 {
10 "cmccLine": "",
11 "controlIp": "test.armvm.com",
12 "controlPort": 10038,
13 "ctLine": "",
14 "cuLine": "",
15 "traceServer": ""
16 }
17 ]
18 }
19 ],
20 "multiControlList": [
21 {
22 "multiControlCode": "multi-242",
23 "multiControlInfoList": [
24 {
25 "multiControlIp": "192.168.169.158",
26 "multiControlPort": 8080,
27 "traceServer": ""
28 }
29 ]
30 }
31 ],
32 "padCode": "VM192168169028",
33 "remoteList": [],
34 "screenList": [
35 {
36 "screenCode": "SCREEN-GZ-TEST001",
37 "screenInfoList": [
38 {
39 "bitrate": "50",
40 "fps": "20",
41 "gop": "5",
42 "resolution": "2048",
43 "screenIp": "127.0.0.1",
44 "screenPort": 80,
45 "traceServer": ""
46 }
47 ]
48 }
49 ],
50 "sessionExpireTime": "1694588533428",
51 "sessionId": "I0YUSI3Y9EX0BWF1JZF7XG4GG68ZE6VR",
52 "sessionInitTime": "1694584934428",
53 "webControlList": [
54 {
55 "webControlCode": "TEST-TCP-CONTROL-242-bk",
56 "webControlInfoList": [
57 {
58 "cmccLine": "",
59 "controlIp": "paas101.armvm.com",
60 "controlPort": 10040,
61 "ctLine": "",
62 "cuLine": "",
63 "traceServer": ""
64 }
65 ]
66 }
67 ],
68 "webRtcControlList": [
69 {
70 "controlCode": "TEST-TCP-CONTROL-242-bk",
71 "gateway": {
72 "cmccLine": "",
73 "ctLine": "",
74 "cuLine": "",
75 "gatewayIp": "paas101.armvm.com",
76 "gatewayPort": 8989
77 },
78 "webRtcControlInfoList": [
79 {
80 "controlIp": "192.168.170.242",
81 "controlPort": 10038,
82 "traceServer": ""
83 }
84 ]
85 }
86 ],
87 "webRtcMode": "",
88 "webScreenList": [
89 {
90 "webScreenCode": "SCREEN-GZ-TEST001",
91 "webScreenInfoList": [
92 {
93 "bitrate": "50",
94 "fps": "20",
95 "gop": "5",
96 "resolution": "2048",
97 "screenIp": "127.0.0.1",
98 "screenPort": 10036,
99 "traceServer": ""
100 }
101 ]
102 }
103 ]
104 },
105 "instanceCode": "VM192168169028",
106 "serverToken": "c5039adcda344cebb748e94644fbc68f5",
107 "sessionId": "I0YUSI3Y9EX0BWF1JZF7XG4GG68ZE6VR",
108 "streamModeList": [
109 "1",
110 "2"
111 ]
112 },
113 "msg": "OK",
114 "ts": "1694584934947"
115}
异常示例
1{
2 "code": 11103270,
3 "msg": "实例暂未被使用,不能对该实例申请授权",
4 "ts": 1601192809490
5}
1{
2 "code": 11103271,
3 "msg": "当前实例授权连接个数已达上限",
4 "ts": 1601192809490
5}
实例切换会话控制权
基本信息
URL
https://platform.armvm.com/resources/instance/session-control-switch
请求格式
POST
版本号
3
使用场景
切换已绑定实例的会话控制权
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
watchServerTokens | String[] | 非必须 | 需要切换成仅观看权限的serverToken集合;元素个数不能超过50 | ["39baa7d579034774af98da7cc449945c5","f209f26361bf487a9fdc88c88902753b5"] | |
controlServerTokens | String[] | 非必须 | 需要切换成可控制权限的serverToken集合;元素个数不能超过50 | ["39baa7d579034774af98da7cc449945c5","f209f26361bf487a9fdc88c88902753b5"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应码 | 0 | |
data | Object[] | 非必须 | 切换失败的serverToken和对应的失败信息 | ||
├─serverToken | String | 必须 | 切换失败的serverToken | 50b13132bb394901f151bc45 | |
├─errorMsg | String | 必须 | 切换失败原因 | serverToken无效 | |
msg | String | 必须 | 响应信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "serverToken": "39baa7d579034774af98da7cc449945c5",
5 "errorMsg": "serverToken无效"
6 },
7 {
8 "serverToken": "f209f26361bf487a9fdc88c88902753b5",
9 "errorMsg": "同一个serverToken的权限切换期望不能同时为WATCH和CONTROL"
10 }
11 ],
12 "code": 0,
13 "msg": "OK",
14 "ts": "1700721933096"
15}
异常示例
1{
2 "code": 11100003,
3 "msg": "watchServerTokens集合的元素个数不能大于50",
4 "ts": "1700721933096"
5}
实例设置内存限额
基本信息
URL
请求格式
POST
版本号
3
使用场景
用于修改实例可以使用的内存上限值
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编号集合(最多200个) | ["VM192168043080", "VM192168043091"] | |
memoryLimit | Integer | 非必须 | 内存限额值,单位MB(isLimit为true时,必须设置限额值) | 2048 | |
isLimit | Boolean | 必须 | 是否设置限额:true-限额|false-不限额 | true |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1001 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168043091 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "instanceCode": "VM192168043080"
7 },
8 {
9 "taskId": 1002,
10 "instanceCode": "VM192168043091"
11 }
12 ],
13 "msg": "",
14 "ts": 1668572148662
15}
异常示例
1{
2 "code":11103292,
3 "msg":"实例内存限额不能为空",
4 "ts":"1668584368093"
5}
实例分辨率调整
基本信息
URL
请求格式
POST
版本号
3
注意
在使用1080p以上分辨率时,请确保您的设备的 manage-agent 版本为 4.27.0 或以上。您可以与 PMO 确认设备的 manage-agent 版本是否满足该要求。这样可以确保您的设备能够正常处理更高的分辨率。
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String [] | 必须 | 实例编号列表,最多200个 | ["VM192168001001"] | |
height | Integer | 必须 | 高 | 范围:300~4096 | |
width | Integer | 必须 | 宽 | 范围:300~4096 | |
fps | Integer | 必须 | 帧率 | 枚举:30/60/90 | |
dpi | Integer | 必须 | dpi | 范围:120~480 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 100000 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11103062,
3 "msg": "实例不存在",
4 "ts": 1601021167163
5}
应用安装
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Integer | 必须 | 应用ID | 10001 | |
instanceCodes | String [] | 必须 | 云手机实例列表,最多200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 100000 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
应用卸载
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Integer | 必须 | 应用ID | 10001 | |
instanceCodes | String [] | 必须 | 云手机实例列表,最多200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─ | taskId | 必须 | 任务ID | 100000 | |
├─ | instanceCode | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
内置应用安装
基本信息
URL
https://platform.armvm.com/resources/app/app-builtin-install
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Long | 必须 | 应用ID | 10001 | |
instanceCodes | String [] | 必须 | 云手机实例列表,最多200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 100000 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
内置应用卸载
基本信息
URL
https://platform.armvm.com/resources/app/app-builtin-uninstall
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Long | 必须 | 应用ID | 10001 | |
instanceCodes | String [] | 必须 | 云手机实例列表,最多200个 | ["VM192168001001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─ | taskId | 必须 | 任务ID | 100000 | |
├─ | instanceCode | 必须 | 实例编号 | VM192168001001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM192168001001"
7 }
8 ],
9 "msg": "",
10 "ts": 1601188620078
11}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
应用启停
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
padCodes | String [] | 必须 | 实例编号,上限200个 | VM192168169029 | |
├─ | 非必须 | ||||
operateType | String | 必须 | 枚举:start、stop、restart | start | |
packageName | String | 必须 | 应用包名 | com.demo.app |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object [] | 必须 | |||
├─padCode | String | 必须 | 实例编号 | VM192168001001 | |
├─taskId | String | 必须 | 任务id | "10001" | |
msg | String | 非必须 | 响应消息 | ||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 1,
5 "pageData": [
6 {
7 "padCode": "VM192168232001",
8 "padStatus": "0",
9 "idcCode": "GZ-IDC-TEST-01",
10 "padGrade": "1",
11 "apps": [
12 1000016516
13 ]
14 }
15 ],
16 "totalPage": 1,
17 "page": 1,
18 "rows": 10
19 },
20 "msg": "",
21 "ts": 1601021167163
22}
异常示例
1{
2 "code": -1,
3 "msg": "实例[VM19216801100]不存在",
4 "ts": 1601021202058
5}
应用上传(新版)
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Long | 必须 | 应用ID | 1 | |
appName | String | 必须 | 应用名称,字符长度最长为64 | appTest | |
appPackageName | String | 必须 | 应用包名 ,字符长度最长为255 | com.demo.app | |
appUrl | String | 必须 | 应用下载地址 | https://www.demo.com/demo/download |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
msg | String | 非必须 | 响应消息 | ok | |
data | Object | 非必须 | 响应结果 | ||
├─ applicationVersionId | Long | 必须 | 应用版本ID | ||
├─ appId | Long | 必须 | 应用ID | ||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "ok",
4 "ts": 1601021167163
5}
异常示例
1{
2 "code": 11103153,
3 "msg": "AppId不能重复",
4 "ts": 1601021202058
5}
应用更新
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Long | 必须 | 应用ID | 1 | |
appName | String | 必须 | 应用名称,字符长度最长为64 | appTest | |
appPackageName | String | 必须 | 应用包名 ,字符长度最长为255 | com.demo.app | |
appUrl | String | 必须 | 应用下载地址 | https://www.demo.com/demo/download |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
msg | String | 非必须 | 响应消息 | ok | |
data | Object | 非必须 | 响应结果 | ||
├─ applicationVersionId | Long | 必须 | 应用版本ID | ||
├─ appId | Long | 必须 | 应用ID | ||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "ok",
4 "ts": 1601021167163
5}
异常示例
1{
2 "code": 11103153,
3 "msg": "AppId不能重复",
4 "ts": 1601021202058
5}
应用上传
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
apps | Object [] | 必须 | 应用数量,上限10个 | ||
├─ appId | Long | 必须 | 应用ID | 1 | |
├─ appName | String | 必须 | 应用名称,字符长度最长为64 |
appTest | |
├─ pkgName | String | 必须 | 应用包名 ,字符长度最长为255 | com.demo.app | |
├─ url | String | 必须 | 应用下载地址 | https://www.demo.com/demo/download | |
├─ md5sum | String | 必须 | 应用文件的MD5 | ||
taskId | Long | 非必须 | 任务id,不填则使用系统生成的taskId | 000001 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
msg | String | 非必须 | 响应消息 | ok | |
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "ok",
4 "ts": 1601021167163
5}
异常示例
1{
2 "code": 11103153,
3 "msg": "AppId不能重复",
4 "ts": 1601021202058
5}
应用删除
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appIds | Integer[] | 非必须 | 应用ID,最多200个 | [10001] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 非必须 | |||
msg | String | 必须 | 响应消息 | OK | |
ts | Long | 必须 | 时间戳 | 1601021167163 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {},
4 "msg": "",
5 "ts": 1601021167163
6}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
分页查询应用列表
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
appId | Integer | 非必须 | 应用ID | 10001 | |
appPackage | String | 非必须 | 应用包名 | com.example.app | |
page | Integer | 必须 | 页码 | 1 | |
rows | Integer | 必须 | 每页条数 | 10 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object | 非必须 | |||
├─total | Integer | 必须 | 总数 | 20 | |
├─totalPage | Integer | 必须 | 总页码 | 2 | |
├─page | Integer | 必须 | 页码 | 1 | |
├─rows | Integer | 必须 | 每页数量 | 10 | |
├─pageData | Object [] | 必须 | |||
├───appId | Integer | 必须 | 应用id | 10001 | |
├───appName | String | 必须 | 应用名称 | 云手机 | |
├───appPackage | String | 必须 | 应用包名 | com.example.app | |
├───versionName | String | 必须 | 版本 | 1.0 | |
├───appTaskStatus | Integer | 必须 | 应用任务状态;0-未同步,1-同步中,2-已同步,3-同步失败,4-文件下载中,5-文件下载失败,6-版本包名与应用包名不一致,7-安装包解析失败 | 1 | |
├───releaseMarketStatus | Integer | 必须 | 是否已发布应用市场;0-未发布,1-已发布 | 1 | |
├───md5sum | String | 必须 | MD5值 | 697c836fb7df257b7e60f2436a504445 | |
msg | String | 必须 | 响应消息 | OK | |
ts | Long | 必须 | 时间戳 | 1601021167163 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 20,
5 "totalPage": 2,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "appId": 10001,
11 "appName": "云手机",
12 "appPackage": "com.example.app",
13 "versionName":"1.0",
14 "syncStatus":1,
15 "releaseMarketStatus":1,
16 "md5sum": "697c836fb7df257b7e60f2436a504445"
17 }
18 ]
19 },
20 "msg": "",
21 "ts": 1601021167163
22}
异常示例
1{
2 "code": 11103072,
3 "msg": "应用不存在",
4 "ts": 1601021167163
5}
桌面推荐图标刷新
基本信息
URL
https://platform.armvm.com/resources/instance/recommend-app-icon-refresh
请求格式
POST
版本号
3
使用场景
用于刷新并展示实例桌面推荐应用。该接口会先重置桌面,因此限制只能操作未绑定实例
注:该功能只适用于OEM镜像的云手机
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编号集合 | ["VM192168043080", "VM192168043091"] | |
appIds | String[] | 非必须 | 应用ID集合 | ["10000", "10001"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1001 | |
├─instanceCode | String | 必须 | 实例编号 | VM192168043091 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1001,
6 "instanceCode": "VM192168043080"
7 },
8 {
9 "taskId": 1002,
10 "instanceCode": "VM192168043091"
11 }
12 ],
13 "msg": "",
14 "ts": 1668572148662
15}
异常示例
1{
2 "code":11103287,
3 "msg":"已绑定实例[VM192168043092]不能更新桌面推荐应用图标",
4 "ts":"1668584368093"
5}
任务结果查询
基本信息
URL
https://platform.armvm.com/command/pad/execute-task-info.html
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskIds | Long[] | 必须 | 任务ID列表,最多200个 | [1001,1002] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1000 | |
├─padCode | String | 必须 | 实例编号 | VM192168169028 | |
├─taskStatus | Integer | 必须 | 任务状态, 5-待执行 6-执行中 7-执行成功 8-执行失败 |
7 | |
├─taskResult | String | 必须 | 任务结果 | success | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "msg": "OK",
3 "code": 0,
4 "data": [{
5 "padCode": "VM011010067010",
6 "taskId": 2813218757970419736,
7 "taskStatus": 7,
8 "taskResult": "success"
9 }],
10 "ts": 1672820359299
11}
异常示例
1{
2 "code": 11108002,
3 "msg": "请输入正确的任务ID",
4 "ts": 1672820359299
5}
获取ssh连接信息
基本信息
URL
请求格式
POST
版本号
3
使用场景
获取ssh连接信息
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCode | String | 必须 | 无 | 实例编号 | VM011101102170 |
connectType | Integer | 必须 | 无 | 连接类型:1-ssh 2-adb | 1 |
liveTime | Integer | 必须 | 无 | 连接有效时间,单位:秒,范围:[1, 86400] | 600 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object | 非必须 | |||
├─ sshInfo | Object | 必须 | ssh连接信息 | ||
├─ ├─ instanceCode | String | 必须 | 实例编号 | ||
├─ ├─ sshCommand | String | 必须 | 连接命令 | ||
├─ ├─ sshPwd | String | 必须 | 连接秘钥 | ||
├─ expireTime | Long | 必须 | 过期时间戳 | ||
msg | String | 必须 | 返回信息 | success | |
ts | Long | 必须 | 接口返回时时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "sshInfo": {
4 "instanceCode": "VM011101102170",
5 "sshCommand": "ssh 11.101.102.170__62485__15920850610__1702456492@192.168.170.235 -p 17706",
6 "sshPwd": "XnoQiOuyAvTjL+YZG5pcM9qi4vOX1ZHga2EO4wBragMfD7NeDOJQPYjm4QRMJZkHDqFIVvufUYbpucGR0Tzvqg=="
7 },
8 "expireTime": "1702456492329"
9 },
10 "code": 0,
11 "msg": "OK",
12 "ts": "1702455888197"
13}
异常示例
1{
2 "code": 11109015,
3 "msg": "操作失败,实例不存在",
4 "ts": "1702458767487"
5}
实例调度
基本信息
URL
请求格式
POST
版本号
3
使用场景
对实例进行实例池之间的调度
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
merchantPoolNo | Long | 必须 | 目标实例池Id | 10000 | |
autoReset | Boolean | 非必须 | false | 调度到子商户实例池时,是否自动执行恢复出厂设置 | true |
instanceCodes | String[] | 必须 | 需要进行调度的实例编号;元素个数不能超过200 | ["VM192168001001","VM192168001002"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应码 | 0 | |
msg | String | 必须 | 响应信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "ts": "1601188620078"
5}
异常示例
1{
2 "code": 11103180,
3 "msg": "实例池不存在",
4 "ts": "1601188620078"
5}
获取同步截图url
基本信息
获取新的同步截图url,访问该url将从云手机实时获取截图
URL
https://platform.armvm.com/resources/instance/get-screenshot-url
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编号,最多200个 | ["VM192168169028"] | |
fullQuality | Integer | 非必须 | 80 | 截图质量数值 范围[1-100] | 100 |
scale | Integer | 非必须 | 288 | 缩放比,等比缩放截图 0为不缩放 最小值:0 最大值:720 | 288 |
rotate | Integer | 非必须 | 0 | 旋转角度 枚举:0,90,180,270 | 0 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
├─successList | Object[] | 必须 | 成功的实例编号以及截图token | ||
├───screenshotUrl | String | 必须 | 截图地址 | https://zc-sync-cap.armvm.com:9809/op-agent/pad/screenshot?time=1727581342254&route=%2BAiT1Lts4RASs6sBCRRYvg%3D%3D&screenshotToken=xxx | |
├───instanceCode | String | 必须 | 实例编号 | VM192168169029 | |
├─expireTime | Long | 必须 | token到期时间(时间戳) | 1727667742254 | |
├─failList | String[] | 必须 | 失败的实例编号列表 | ["VM192168169028"] | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1727581342086 |
使用说明:
- 每次获取的url有效期为10分钟,不可指定,可联系PMO调整每次获取url的有效期,最长不超过24小时
- 使用GET请求screenshotUrl,将在云手机实时截取一张图片,并返回图片流
-
截图状态码说明:
状态码 说明 200 成功 404、500 请求错误,包括:篡改过URL参数 400 无效的url 401 用户ID校验失败 402 url已过期 403 url已被销毁 501 执行截图程序失败,需要设备端排查 502 设备端程序端口不通 503 截图超时 504 设备ping不通 505 设备空间不足 - 调用建议:将接口返回的screenshotUrl缓存起来,在到期或被销毁之前可一直请求,并且捕获402/403状态码以便重新获取新的同步截图url
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "successList": [
4 {
5 "instanceCode": "VM192168169029",
6 "screenshotUrl": "https://zc-sync-cap.armvm.com:9809/op-agent/pad/screenshot?time=1727581342254&route=%2BAiT1Lts4RASs6sBCRRYvg%3D%3D&screenshotToken=YEl6G8YsTUPcQW4cyauhXOt%2FpXz%2BTmlSrKQyIGzYZs4B02G3HbdOUDSy5BDICjMig6xjIm%2B%2Bn0PvKPTeL8jGU2nOCfZlwR2EmELYdT4k3nkYKfQJY8Xy6QSEuFCNWc2VmBRdackUoBtLOd2j4L9UuNq%2BAulH6%2FCW5trQiE0R%2B5JFh9rfsNkJ%2BqFggMLXno8fwnwjFlJ9q6TRD3SCRD1hXlvMDDhBWNeoJkjPUkocDZrU3U911z3VQA%3D%3D"
7 }
8 ],
9 "failList": [],
10 "expireTime": 1727667742254
11 },
12 "code": 0,
13 "msg": "OK",
14 "ts": "1727581342086"
15}
异常示例
1{
2 "data": {
3 "successList": [],
4 "failList": [
5 "VM192168169029"
6 ],
7 "expireTime": 1727582003554
8 },
9 "code": 0,
10 "msg": "OK",
11 "ts": "1727582003554"
12}
销毁已获取的同步截图url
基本信息
销毁云手机当前所有的同步截图url
URL
https://platform.armvm.com/resources/instance/destroy-screenshot-url
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCode | String | 必须 | 实例编号 | VM192168169028 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1727581342086 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {},
3 "code": 0,
4 "msg": "OK",
5 "ts": "1727581342086"
6}
异常示例
1{
2 "code": 11105017,
3 "msg": "截图url不存在或已销毁",
4 "ts": "1727586992599"
5}
实例限速
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] | |
direction | String | 必须 | 限速类型,up-上行限速,down-下行限速 | up | |
speed | Double | 必须 | 外网限速,范围为0.2-1024,也可传入0取消限速 | 0.20 | |
intranetSpeed | Double | 非必须 | 内网限速,范围为1-1024,也可传入0取消限速 | 1.00 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
├─instanceCode | String | 必须 | 实例编码 | VM192168001001 | ||
├─taskId | String | 必须 | 任务编号 | "2840204519134814256" | ||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "instanceCode": "VM192168041004",
5 "taskId": "2840204353481548485",
6 },
7 "msg": "ok",
8 "ts": 1663664302000
9}
异常示例
1{
2 "code": -1,
3 "msg": "实例编号不存在",
4 "ts": 1663664302000
5}
物理机资源实时监控信息查询
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
deviceIps | String[] | 是 | 物理机IP列表,最多传入10个 | ["192.168.0.1","192.168.0.2"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
date | Object[] | 必须 | |||
├─deviceIp | String | 必须 | 物理机Ip | 192.168.0.1 | |
├─recordTime | Long | 必须 | 记录时间戳 | ||
├─cpuRate | Bigdecimal | 必须 | cpu使用率 | 12.40 | |
├─gpuRate | Bigdecimal | 必须 | gpu使用率 | ||
├─memRate | Bigdecimal | 必须 | 内存使用率 | ||
├─storageRate | Bigdecimal | 必须 | 存储使用率 | ||
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "deviceIp": "11.20.103.62",
5 "recordTime": "1736420400000",
6 "cpuRate": 19.76,
7 "gpuRate": 82.78,
8 "memRate": 62.85,
9 "storageRate": 9.52
10 }
11 ],
12 "code": 0,
13 "msg": "OK",
14 "ts": "1736423215818"
15}
异常示例
1{
2 "code": 11103402,
3 "msg": "获取物理机监控信息失败,请稍后再试",
4 "ts": 1601021202058
5}
物理机资源负载监控信息查询
基本信息
URL
https://platform.armvm.com/resources/device-monitor-info-query
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
deviceIps | String[] | 必须 | 物理机Ip列表,最多传入10个 | ["192.168.0.1","192.168.0.2"] | |
startTime | Date | 必须 | 开始时间,整小时;时间格式:yyyy-MM-dd HH:mm:ss;最早查询时间间隔:90天 | 2025-01-15 12:00:00 | |
endTime | Date | 必须 | 结束时间,整小时;时间格式:yyyy-MM-dd HH:mm:ss;与开始时间最大相差30天 | 2025-01-15 13:00:00 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
date | Object[] | 必须 | |||
├─deviceIp | String | 必须 | 物理机Ip | ||
├─ioLoadRate | Object[] | 必须 | io负载率 | ||
├──recordTime | Long | 必须 | 记录时间戳 | ||
├──value | BigDecimal | 必须 | 负载率 | ||
├─cpuLoadRate | Object[] | 必须 | cpu负载率 | ||
├──recordTime | Long | 必须 | 记录时间戳 | ||
├──value | BigDecimal | 必须 | 负载率 | ||
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "deviceIp": "11.20.103.62",
5 "ioLoadRate": [
6 {
7 "recordTime": "1736236800000",
8 "value": 23.81
9 }
10 ],
11 "cpuLoadRate": [
12 {
13 "recordTime": "1736236800000",
14 "value": 31.84
15 }
16 ]
17 }
18 ],
19 "code": 0,
20 "msg": "OK",
21 "ts": "1736496642188"
22}
异常示例
1{
2 "code": 11103402,
3 "msg": "获取物理机监控信息失败,请稍后再试",
4 "ts": 1601021202058
5}
实例资源实时监控信息查询
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例code列表,最多传入10个 | ["VM010107016082","VM010107016083"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object[] | 必须 | |||
├─instanceIp | String | 必须 | 实例Ip | 192.168.0.1 | |
├─recordTime | Long | 必须 | 记录时间戳 | ||
├─cpuRate | Bigdecimal | 必须 | cpu使用率 | 12.40 | |
├─gpuRate | Bigdecimal | 必须 | gpu使用率 | ||
├─memRate | Bigdecimal | 必须 | 内存使用率 | ||
├─storageRate | Bigdecimal | 必须 | 存储使用率 | ||
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "instanceIp": "192.168.0.1",
5 "recordTime": "1736420400000",
6 "cpuRate": 19.76,
7 "gpuRate": 82.78,
8 "memRate": 62.85,
9 "storageRate": 9.52
10 }
11 ],
12 "code": 0,
13 "msg": "OK",
14 "ts": "1736423215818"
15}
异常示例
1{
2 "code": 11103403,
3 "msg": "获取实例监控信息失败,请稍后再试",
4 "ts": 1601021202058
5}
实例应用监控信息查询
基本信息
URL
https://platform.armvm.com/resources/instance-app-monitor-info
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCode | String | 必须 | 实例code | "VM010107016082" | |
startTime | Date | 必须 | 开始时间,整5分钟;时间格式:yyyy-MM-dd HH:mm:ss;最早查询时间间隔:90天 | 2025-01-15 12:00:00 | |
endTime | Date | 必须 | 结束时间,整5分钟;时间格式:yyyy-MM-dd HH:mm:ss;与开始时间最大相差30天 | 2025-01-15 12:05:00 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
date | Object[] | 必须 | |||
├─cpuRateTopTen | Object[] | 必须 | cpu使用率Top10 | ||
├──appName | String | 必须 | app名称 | app.test1 | |
├──metricInfoList | Object[] | 必须 | 监控信息 | ||
├───recordTime | Long | 必须 | 记录时间戳 | 1736740800000 | |
├───value | BigDecimal | 必须 | 使用率 | 10.08 | |
├─memRateTopTen | Object[] | 必须 | 内存使用率Top10 | ||
├──appName | String | 必须 | app名称 | ||
├──metricInfoList | Object[] | 必须 | 监控信息 | ||
├───recordTime | Long | 必须 | 记录时间戳 | ||
├───value | BigDecimal | 必须 | 使用率 | ||
Msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "cpuRateTopTen": [
4 {
5 "appName": "app.test10",
6 "metricInfoList": [
7 {
8 "recordTime": "1736740800000",
9 "value": 73.15
10 }
11 ]
12 },
13 {
14 "appName": "app.test11",
15 "metricInfoList": [
16 {
17 "recordTime": "1736740800000",
18 "value": 10.08
19 }
20 ]
21 },
22 {
23 "appName": "app.test7",
24 "metricInfoList": [
25 {
26 "recordTime": "1736740800000",
27 "value": 7.77
28 }
29 ]
30 },
31 {
32 "appName": "app.test8",
33 "metricInfoList": [
34 {
35 "recordTime": "1736740800000",
36 "value": 8.24
37 }
38 ]
39 },
40 {
41 "appName": "app.test9",
42 "metricInfoList": [
43 {
44 "recordTime": "1736740800000",
45 "value": 21.48
46 }
47 ]
48 },
49 {
50 "appName": "app.test3",
51 "metricInfoList": [
52 {
53 "recordTime": "1736740800000",
54 "value": 9.36
55 }
56 ]
57 },
58 {
59 "appName": "app.test4",
60 "metricInfoList": [
61 {
62 "recordTime": "1736740800000",
63 "value": 14.7
64 }
65 ]
66 },
67 {
68 "appName": "app.test5",
69 "metricInfoList": [
70 {
71 "recordTime": "1736740800000",
72 "value": 12.45
73 }
74 ]
75 },
76 {
77 "appName": "app.test6",
78 "metricInfoList": [
79 {
80 "recordTime": "1736740800000",
81 "value": 7.78
82 }
83 ]
84 },
85 {
86 "appName": "app.test1",
87 "metricInfoList": [
88 {
89 "recordTime": "1736740800000",
90 "value": 36.43
91 }
92 ]
93 }
94 ],
95 "memRateTopTen": [
96 {
97 "appName": "app.test10",
98 "metricInfoList": [
99 {
100 "recordTime": "1736740800000",
101 "value": 73.15
102 }
103 ]
104 },
105 {
106 "appName": "app.test11",
107 "metricInfoList": [
108 {
109 "recordTime": "1736740800000",
110 "value": 10.08
111 }
112 ]
113 },
114 {
115 "appName": "app.test7",
116 "metricInfoList": [
117 {
118 "recordTime": "1736740800000",
119 "value": 7.77
120 }
121 ]
122 },
123 {
124 "appName": "app.test9",
125 "metricInfoList": [
126 {
127 "recordTime": "1736740800000",
128 "value": 21.48
129 }
130 ]
131 },
132 {
133 "appName": "app.test3",
134 "metricInfoList": [
135 {
136 "recordTime": "1736740800000",
137 "value": 9.36
138 }
139 ]
140 },
141 {
142 "appName": "app.test4",
143 "metricInfoList": [
144 {
145 "recordTime": "1736740800000",
146 "value": 14.7
147 }
148 ]
149 },
150 {
151 "appName": "app.test5",
152 "metricInfoList": [
153 {
154 "recordTime": "1736740800000",
155 "value": 12.45
156 }
157 ]
158 },
159 {
160 "appName": "app.test6",
161 "metricInfoList": [
162 {
163 "recordTime": "1736740800000",
164 "value": 7.78
165 }
166 ]
167 },
168 {
169 "appName": "app.test1",
170 "metricInfoList": [
171 {
172 "recordTime": "1736740800000",
173 "value": 36.43
174 }
175 ]
176 },
177 {
178 "appName": "app.test2",
179 "metricInfoList": [
180 {
181 "recordTime": "1736740800000",
182 "value": 6.21
183 }
184 ]
185 }
186 ]
187 },
188 "code": 0,
189 "msg": "OK",
190 "ts": "1736738330433"
191}
异常示例
1{
2 "code": 11103404,
3 "msg": "获取实例应用监控信息失败,请稍后再试",
4 "ts": 1601021202058
5}
修改实例的维护状态
基本信息
URL
https://platform.armvm.com/resources/instance/update-maintain-status
请求格式
POST
版本号
3
使用场景
修改实例的维护状态
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编号,最多200个 | ["VM192168001001","VM192168001002"] | |
maintainStatus | Integer | 必须 | 维护状态,0-正常,1-维护 | 1 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应码 | 0 | |
data | Object | 非必须 | 响应码 | ||
msg | String | 必须 | 响应信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "ts": "1601188620078"
5}
异常示例
1{
2 "code": 11103060,
3 "msg": "实例不存在",
4 "ts": "1601188620078"
5}
实例故障率统计
基本信息
URL
https://platform.armvm.com/monitor/instance/malfunction-statistics
请求格式
POST
版本号
3
使用场景
获取时间范围内的实例故障率统计数据
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
startTime | String | 必须 | 开始时间;yyyy-MM-dd HH:mm:ss | "2025-01-01 00:00:00" | |
endTime | String | 必须 | 结束时间;yyyy-MM-dd HH:mm:ss | "2025-02-19 23:59:59" | |
timeUnit | String | 必须 | 统计时间单位;分钟-MINUTE,小时-HOUR,天-DAY | "HOUR" | |
includeSubMerchant | boolean | 非必须 | false | 是否包含子商户 | true |
timeUnit支持的时间跨度
timeUnit | 时间跨度 |
---|---|
MINUTE | 一个自然日内 |
HOUR | 两个自然月内 |
DAY | 大于两个自然月 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应码 | 0 | |
data | Object[] | 非必须 | |||
├─statisticsTime | string | 必须 | 统计时间 | "2025-01-22 18:00:00" | |
├─serverType | String | 必须 | 设备类型 | "3588" | |
├─instanceMalfunctionRate | Double | 必须 | 故障率 | 0.2917 | |
msg | String | 必须 | 响应信息 | ||
ts | Long | 必须 | 时间戳 | 1738721318402 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "statisticsTime": "2025-01-01 12:00:00",
5 "serverType": "3588",
6 "instanceMalfunctionRate": 0.2917
7 },
8 {
9 "statisticsTime": "2025-01-01 12:00:00",
10 "serverType": "845",
11 "instanceMalfunctionRate": 1
12 }
13 ],
14 "code": 0,
15 "msg": "OK",
16 "ts": "1738721318402"
17}
异常示例
1{
2 "code": 1111113,
3 "msg": "统计时间单位不正确",
4 "ts": "1738721318402"
5}
实例批量执行脚本
基本信息
URL
https://platform.armvm.com/resources/instance/batch-execute-script
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
scripts | Object[] | 必须 | 实例编号和脚本内容集合,最多200个 | ||
├─ instanceCode | String | 必须 | 实例编号 | VM192168043080 | |
├─ scriptContent | String | 必须 | 脚本内容 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 非必须 | |||
├─successList | Object[] | 必须 | 成功的实例编号和任务ID | ||
├───instanceCode | String | 必须 | 实例编号 | VM192168043091 | |
├───taskId | Long | 必须 | 任务ID | 1001 | |
├─failList | Object[] | 必须 | 失败的实例编号和原因 | ||
├───instanceCode | String | 必须 | 实例编号 | VM192168043092 | |
├───msg | String | 必须 | 失败原因 | 实例不存在 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "successList": [
5 {
6 "instanceCode": "VM192168043091",
7 "taskId": 1001
8 }
9 ],
10 "failList": [
11 {
12 "instanceCode": "VM192168043092",
13 "msg": "实例不存在",
14 }
15 ]
16 },
17 "msg": "",
18 "ts": 1668572148662
19}
实例文件下载通知
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceFiles | Object[] | 必须 | 最多200个 | ||
├─ instanceCode | String | 必须 | 实例编号;注意:在一次请求中实例编号不可重复,如果存在重复,则取最后一条 | "VM192168001001" | |
├─ filePath | String | 必须 | 文件路径 | "/sdcard/file.txt" |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务ID | 1000 | |
├─instanceCode | String | 必须 | 实例编号 | "VM192168001001" | |
msg | String | 必须 | 信息 | "OK" | |
ts | Long | 必须 | 时间戳 | 1742961939356 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 1000,
6 "instanceCode": "VM192168001001"
7 },
8 {
9 "taskId": 1001,
10 "instanceCode": "VM192168001002"
11 }
12 ],
13 "msg": "OK",
14 "ts": 1742961939356
15}
异常示例
1{
2 "code":11103062,
3 "msg":"实例不存在",
4 "ts":1742961939356
5}
终止任务
基本信息
URL
https://platform.armvm.com/resources/instance/event-task-stop
请求格式
POST
版本号
3
使用场景
支持对状态为“待执行”和“准备中”的任务发起终止
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskIds | Long[] | 必须 | 任务ID列表,最大200个 | [12244837858185221] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
msg | String | 必须 | 响应消息 | ||
ts | Long | 必须 | 时间戳 | 1744275100700 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "",
4 "ts": 1744275100700
5}
异常示例
1{
2 "code": 11108041,
3 "msg": "工作流信息异常",
4 "ts": 1744275100700
5}
1{
2 "code": 11108011,
3 "msg": "批量更新任务状态只允许在同一个事件中",
4 "ts": 1744275100700
5}
1{
2 "code": 11108043,
3 "msg": "只允许终止待执行的工作流任务",
4 "ts": 1744275100700
5}
分页查询物理机信息
基本信息
URL
请求格式
POST
版本号
3
使用场景
根据查询条件分页获取物理机列表信息。
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
page | Integer | 非必须 | 1 | 页码,默认值1,最小1页(包含1页) | 1 |
rows | Integer | 非必须 | 200 | 每页记录数,默认值200,最小1条(包含1条),最大1000条(包含1000条) | 10 |
deviceCodes | String[] | 非必须 | 物理机编号集合,集合长度在200内(包含200) | ["GZNX-IDC_DM011010099026"] | |
deviceIps | String[] | 非必须 | 物理机IP集合,集合长度在200内(包含200) | ["192.168.1.1"] | |
idcCode | String | 非必须 | 所属机房编号 | GZNX-IDC-02 | |
serverType | String | 非必须 | 服务器类型:G4(845)、G6(865)、G55(8550)、R1(3288)、R2(3399)、R3(3588)、A128(AmpereAltra128) | G4 | |
romVersion | String | 非必须 | 系统版本 | android12.0 | |
deviceStatus | Integer | 非必须 | 物理机在线状态:0:离线;1:在线 | 1 |
返回参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 |
data | Object | 非必须 | ||
├─total | Integer | 必须 | 总数 | 20 |
├─totalPage | Integer | 必须 | 总页码 | 2 |
├─page | Integer | 必须 | 页码 | 1 |
├─rows | Integer | 必须 | 每页数量 | 10 |
├─pageData | Object [] | 必须 | ||
├───deviceIp | String | 必须 | 物理机IP | 192.168.1.100 |
├───deviceCode | String | 必须 | 物理机编号 | GZNX-IDC_DM011010099026 |
├───idcCode | String | 必须 | 机房编号 | GZNX-IDC-02 |
├───idcName | String | 必须 | 机房名称 | 南翔机房-可用区1 |
├───serverType | String | 必须 | 服务器类型:G4(845)、G6(865)、G55(8550)、R1(3288)、R2(3399)、R3(3588)、A128(AmpereAltra128) | G4 |
├───romVersion | String | 必须 | 系统版本 | android12.0 |
├───instanceGrade | Integer | 必须 | 开数 | 1 |
├───instanceGradeLimit | Integer | 必须 | 多开上限 | 5 |
├───allocateTime | Date | 必须 | 调度时间(时间戳) | 1733297481137 |
├───recycleTime | Date | 必须 | 回收时间(时间戳) | 1733297481137 |
├───memoryModel | String | 必须 | 内存规格 | 16GB |
├───cpuModel | String | 必须 | CPU规格 | 8C |
├───diskModel | String | 必须 | 磁盘规格 | 256GB |
├───deviceStatus | Integer | 必须 | 物理机在线状态:0:离线;1:在线 | 1 |
msg | String | 必须 | 响应消息 | |
ts | Long | 必须 | 时间戳 | 1733297481137 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 20,
5 "totalPage": 2,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "deviceIp": "192.168.1.100",
11 "deviceCode": "GZNX-IDC_DM011010099026",
12 "idcCode": "GZNX-IDC-02",
13 "idcName": "南翔机房-可用区1",
14 "serverType": "G4",
15 "romVersion": "android12.0",
16 "instanceGrade": 1,
17 "instanceGradeLimit": 5,
18 "allocateTime": 1733297481137,
19 "recycleTime": 1733297481137,
20 "memoryModel": "16GB",
21 "cpuModel": "8C",
22 "diskModel": "256GB",
23 "deviceStatus": 1
24 }
25 ]
26 },
27 "msg": "success",
28 "ts": 1733297481137
29}
带宽统计查询
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
idcCode | String | 非必须 | 机房编号 | GZNX-IDC-02 | |
statUnit | String | 必须 | 统计单位:Mbps/bps | bps | |
beginTime | String | 必须 | 开始时间:yyyy-MM-dd HH:mm:ss | 2025-03-19 00:05:00 | |
endTime | String | 必须 | 结束时间:yyyy-MM-dd HH:mm:ss | 2025-03-19 17:10:00 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
date | Object[] | 必须 | |||
├─peek | Double | 必须 | 峰值 | 4335.83 | |
├─peek95 | Double | 必须 | 95峰值 | 4034.76 | |
├─average | Double | 必须 | 平均带宽 | 3367.68 | |
├─bandwidthList | Object[] | 非必须 | 带宽明细列表,不指定机房编号查询时返回空 | ||
├───recordTime | String | 必须 | 记录时间:yyyy-MM-dd HH:mm:ss | 2025-03-19 17:10:00 | |
├───send | Double | 必须 | 发送数据 | 3321.62 | |
├───receive | Double | 必须 | 接收数据 | 3960.42 | |
ts | Long | 必须 | 接口返回时时间戳 | 1744287887367 |
请求示例
参考:调用方式
响应示例
1{
2 "data": {
3 "peek": 4335.83,
4 "peek95": 4034.76,
5 "average": 3367.68,
6 "bandwidthList": [
7 {
8 "recordTime": "2025-03-19 17:10:00",
9 "send": 3321.62,
10 "receive": 3960.42
11 },
12 {
13 "recordTime": "2025-03-19 17:05:00",
14 "send": 3362.98,
15 "receive": 3396.23
16 }
17 ]
18 },
19 "code": 0,
20 "msg": "OK",
21 "ts": "1744287887367"
22}
异常示例
1{
2 "code": 1111112,
3 "msg": "获取带宽流量数据失败,请稍后再试",
4 "ts": 1744287887367
5}
配置网络
基本信息
URL
https://platform.armvm.com/resources/instance/network-proxy-workflow-create
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
networkProxyConfigs | Object[] | 是 | 最大200个 | |
├─ instanceCode | String | 是 | 实例编码 | VM011101001096 |
├─ proxyHost | String | 是 | 代理主机 | 127.0.0.1 |
├─ proxyPort | Integer | 是 | 代理端口 | 18080 |
├─ proxyUser | String | 是 | 代理用户名 | user |
├─ proxyPassword | String | 是 | 代理密码 | password |
├─ proxyWhite | String | 是 | 代理白名单,多个时用半角逗号分隔 | user1,user2 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object[] | 是 | |||
├─instanceCode | String | 是 | 实例编号 | ||
├─taskId | Long | 是 | 任务ID | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1745494806123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM011101001096"
7 }
8 ],
9 "msg": "",
10 "ts": 1745494806123
11}
异常示例
1{
2 "code": 11103353,
3 "msg": "实例不存在或无操作权限",
4 "ts": 1745496581163
5}
实例对拷
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
dataCopyList | Object[] | 是 | 对拷实例列表,最多只能传入200个 | ||
├─ sourceInstanceCode | String | 是 | 源实例编号 | VM192168001001 | |
├─ targetInstanceCode | String | 是 | 目标实例编号 | VM192168001002 | |
├─ imei | String | 否 | 最大长度32 | ||
├─ serialno | String | 否 | 最大长度91 | ||
├─ wifimac | String | 否 | 最大长度32 | ||
├─ androidid | String | 否 | 最大长度91 | ||
├─ model | String | 否 | 最大长度91 | ||
├─ brand | String | 否 | 最大长度91 | ||
├─ manufacturer | String | 否 | 最大长度91 | ||
includes | String[] | 否 | 要包含的目录(文件),支持通配符*,最大长度50 此目录需要对安卓目录结构,非常了解,如果客户未做这方面调研,建议设置为空字符串 此目录为/data下的相对目录,不支持非/data目录下的include *符号表示此目录下所有层级子目录,如果只有一个,只会压缩一层目录 如果未填写includes,或者includes为空,则默认打包所有/data下的目录 |
["/aaa"] | |
excludes | String[] | 否 | 要排除的目录(文件),支持通配符*,最大长度50 同上,此目录为/data下的相对目录。可以使用通配符* 如果未填写excludes,或者excludes为空,则默认不排除任务目录 |
["/bbb"] | |
reset | Boolean | 是 | 对拷成功后,源实例是否恢复出厂设置 | true |
注意事项:
- 对拷的两个实例,要求所在机房、服务器类型、系统版本均一致
- 对拷实例列表中,如果有传入机型信息,将在对拷完成后,目标实例设置为此机型信息,否则将设置为源实例的机型信息
- 对拷实例列表中,如果有传入机型信息,那么机型的所有参数均不能为空(imei、serialno、wifimac、androidid、model、brand、manufacturer参数必须全部为空或者全部不为空)
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 返回状态,0-成功 | 0 | |
data | Object[] | 必须 | |||
├─sourceInstanceCode | String | 必须 | 源实例编号 | VM192168001001 | |
├─targetInstanceCode | String | 必须 | 目标实例编号 | VM192168001002 | |
├─taskId | Long | 必须 | 任务ID | 1001 | |
msg | String | 必须 | 返回信息 | ||
ts | Long | 必须 | 接口返回时时间戳 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "msg": "OK",
4 "data": [
5 {
6 "sourceInstanceCode": "VM192168001001",
7 "targetInstanceCode": "VM192168001002",
8 "taskId": "1001"
9 }
10 ],
11 "ts": "1658455442690"
12}
异常示例
1{
2 "code": 11103420,
3 "msg": "实例VM192168001001和VM192168001002的服务器类型不一致",
4 "ts": "1658455442690"
5}
6{
7 "code": 11103421,
8 "msg": "实例VM192168001001和VM192168001002的系统版本不一致",
9 "ts": "1658455442690"
10}
11{
12 "code": 11103422,
13 "msg": "实例VM192168001001和VM192168001002的所在机房不一致",
14 "ts": "1658455442690"
15}
16{
17 "code": 11103424,
18 "msg": "实例机型信息不完整",
19 "ts": "1658455442690"
20}
系统镜像相关接口
查询公共镜像
基本信息
URL
https://platform.armvm.com/resources/instance-base-image/list
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
serverType | String | 非必须 | 实例服务器类型: G4|G6|R1|R2|R3 |
G4 | |
romVersion | String | 非必须 | 系统版本: android6.0 android8.1 android10.0 android12.0 android13.0 |
android8.1 | |
imageVersionIds | Long[] | 非必须 | 镜像版本id,最多200个 | [5] | |
page | Integer | 必须 | 页码,最小值为1 | 1 | |
rows | Integer | 必须 | 每页条数,最小值为1,最大值为200 | 200 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─ total | Integer | 必须 | 总数 | 20 | |
├─ totalPage | Integer | 必须 | 总页码 | 2 | |
├─ page | Integer | 必须 | 当前页码 | 1 | |
├─ rows | Integer | 必须 | 每页数量 | 10 | |
├─ pageData | Object[] | 非必须 | |||
├─── imageVersionId | Long | 必须 | 镜像版本ID | 5 | |
├─── imageVersionName | Long | 必须 | 镜像版本名称 | 5 | |
├─── serverType | String | 必须 | 实例服务器类型 | G4 | |
├─── romVersion | String | 必须 | 系统版本 | android8.1 | |
├─── createTime | Long | 必须 | 上传时间(时间戳) | 1601188620078 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 1,
5 "totalPage": 1,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "imageVersionId": "5",
11 "imageVersionName": "baidu_phone_845_aosp8.1_v2.4.0_20240130172159.tar.gz",
12 "serverType": "G4",
13 "romVersion": "android8.1",
14 "createTime": 1716819459335
15 }
16 ]
17 },
18 "msg": "",
19 "ts": 1601021167163
20}
查询自定义镜像
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
page | Integer | 非必须 | 1 | 页码,最小值为1 | 1 |
rows | Integer | 非必须 | 200 | 每页条数,最小值为1,最大值为200 | 200 |
imageVersionId | Long | 非必须 | 镜像版本id | 10001 | |
imageVersionIds | Long[] | 非必须 | 镜像版本id,最多200个 | [10001,10002] | |
serverType | String | 非必须 | 实例服务器类型: G4|G6|R1|R2|R3 |
G4 | |
romVersion | String | 非必须 | 系统版本: android6.0 android8.1 android10.0 android12.0 android13.0 |
android8.1 | |
imageVersionName | String | 非必须 | 镜像版本名称,模糊查询 | xxx |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─ total | Integer | 必须 | 总数 | 20 | |
├─ totalPage | Integer | 必须 | 总页码 | 2 | |
├─ page | Integer | 必须 | 当前页码 | 1 | |
├─ rows | Integer | 必须 | 每页数量 | 10 | |
├─ pageData | Object[] | 非必须 | |||
├─── imageVersionId | Long | 必须 | 镜像版本ID | 10001 | |
├─── imageUploadStatus | String | 必须 | 镜像上传状态,wait_execute|executing:执⾏中|success:成功|fail:失败 | success | |
├─── serverType | String | 必须 | 实例服务器类型 | G4 | |
├─── romVersion | String | 必须 | 系统版本 | android8.1 | |
├─── imageFiles | Object[] | 必须 | 镜像文件信息 | ||
├───── imageFileUrl | String | 必须 | 镜像⽂件下载地址 | http://xxx.img | |
├───── imageFileName | String | 必须 | 镜像⽂件名称(带后缀) | root_aosp10_xx.img | |
├───── imageFileType | String | 必须 | odm_aosp root_aosp system_aosp vendor_aosp super_aosp |
root_aosp | |
├───── imageFileMd5 | String | 必须 | 镜像⽂件md5值 | xxxxxxx | |
├─── baseImageVersionId | Long | 必须 | 镜像底包ID | 5 | |
├─── imageVersionName | String | 必须 | 镜像版本名称 | xxx | |
├─── describe | String | 必须 | 镜像版本描述 | xxx | |
├─── createTime | Long | 必须 | 上传时间(时间戳) | 1601188620078 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "total": 1,
5 "totalPage": 1,
6 "page": 1,
7 "rows": 10,
8 "pageData": [
9 {
10 "imageVersionId": 10001,
11 "imageUploadStatus": "success",
12 "serverType": "G4",
13 "romVersion": "android8.1",
14 "imageFiles": [
15 {
16 "imageFileUrl": "https://baidu.com/armvm/root-v15.img",
17 "imageFileName": "root_aosp-v15.img",
18 "imageFileType": "root_aosp",
19 "imageFileMd5": "20d41ecb84d86667525a8a02d0102f2b"
20 },
21 {
22 "imageFileUrl": "https://baidu.com/armvm/system-v15.img",
23 "imageFileName": "system_aosp-v15.img",
24 "imageFileType": "system_aosp",
25 "imageFileMd5": "22aca472f2d66551f197ff14de8618f3"
26 }
27 ],
28 "baseImageVersionId": 5,
29 "imageVersionName": "xxx",
30 "describe": "xxx",
31 "createTime": 1601021167163
32 }
33 ]
34 },
35 "msg": "",
36 "ts": 1601021167163
37}
上传自定义镜像
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
imageFiles | Object[] | 必须 | 镜像⽂件信息,最多20个 | ||
├─ imageFileUrl | String | 必须 | 镜像⽂件下载地址 | http://xxx.img | |
├─ imageFileName | String | 必须 | 镜像⽂件名称。 镜像⽂件名称需要以镜像⽂件类型为前缀,⽐如说root_aosp类型的就需要以root_aosp开头命名,如root_aosp_xx.img ; 如果是安卓12,在⽂件类型后⾯应该带f2fs,如system_aosp_f2fs_xxx.img |
root_aosp10_xx.img | |
├─ imageFileType | String | 必须 | odm_aosp root_aosp system_aosp vendor_aosp super_aosp |
root_aosp | |
├─ imageFileMd5 | String | 必须 | 镜像⽂件md5值 | xxxxxxx | |
serverType | String | 必须 | 实例服务器类型: G4|G6|R1|R2|R3 |
G4 | |
romVersion | String | 必须 | 系统版本: android6.0 android8.1 android10.0 android12.0 android13.0 |
android8.1 | |
baseImageVersionId | Long | 非必须 | 镜像底包ID | 5 | |
imageVersionName | String | 必须 | 镜像版本名称,最多50个字符 | xxx | |
describe | String | 非必须 | 镜像版本描述,最多80个字符 | xxx |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
├─ imageVersionId | Long | 必须 | 镜像版本ID | 10001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "imageVersionId": 10001
5 },
6 "msg": "",
7 "ts": 1601021167163
8}
获取自定义镜像上传结果
基本信息
URL
https://platform.armvm.com/resources/instance-image/upload-info
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
imageVersionId | Long | 必须 | 实例镜像版本ID | 10001 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
├─ imageUploadStatus | String | 必须 | 镜像上传状态,wait_execute|executing:执⾏中|success:成功|fail:失败 | success | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "imageUploadStatus": "success"
5 },
6 "msg": "",
7 "ts": 1601021167163
8}
删除自定义镜像
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
imageVersionIds | Long[] | 必须 | 实例镜像版本ID | [10001] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object | 必须 | |||
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1728627866628 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {},
4 "msg": "",
5 "ts": 1728627866628
6}
创建实例更新镜像任务
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
imageVersionId | Long | 必须 | 镜像版本id | 5 | |
instanceCodes | String[] | 必须 | 实例编号集合,最多200个 | ["VM010100240100"] | |
configId | String | 否 | 配置项ID | ||
resourcePackageId | Long | 否 | 资源包ID | ||
reset | Bool | 否 | false | 是否恢复出厂设置 | false |
autoInstall | Bool | 否 | true | 是否自动安装镜像 | true |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─ instanceCode | String | 必须 | 实例编号 | VM010100240100 | |
├─ taskId | Long | 必须 | 任务id | 9001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "instanceCode": "VM010100240100",
6 "taskId": 9001
7 }
8 ],
9 "msg": "",
10 "ts": 1601021167163
11}
查询实例更新镜像结果
基本信息
URL
https://platform.armvm.com/resources/instance-image/update-info
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskIds | Long[] | 必须 | 任务ID集合,最多200个 | [8001,8002] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─taskId | Long | 必须 | 任务ID | 8001 | |
├─ instanceCode | String | 必须 | 实例编号 | VM010100240100 | |
├─ imageUpdateStatus | String | 必须 | 镜像更新状态,wait_execute:待执⾏|executing:执⾏中 success:成功 | fail:失败 | success | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "taskId": 8001,
6 "instanceCode": "VM010100240100",
7 "imageUpdateStatus": "success"
8 },
9 {
10 "taskId": 8002,
11 "instanceCode": "VM010100240101",
12 "imageUpdateStatus": "executing"
13 }
14 ],
15 "msg": "",
16 "ts": 1601021167163
17}
创建物理机更新镜像任务
注意事项
1.整个物理机下的所有实例均会清除镜像内数据且不可恢复,请谨慎操作。更新镜像过程中,云手机服务会中断几分钟。
2.若系统版本由高到低的降级操作(例如从 android 12.0 降至 android 10.0),需恢复出厂设置后才可正常使用。
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
imageVersionId | Integer | 是 | 镜像版本id | 10001 | |
deviceIps | String[] | 是 | 物理机IP集合,最多200个 | ["10.10.240.2"] | |
configId | String | 否 | 配置项ID | ||
resourcePackageId | Long | 否 | 资源包ID | ||
reset | Bool | 否 | false | 是否恢复出厂设置 | false |
autoInstall | Bool | 否 | true | 是否自动安装镜像 | true |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 错误码 | 0 | |
data | Object [] | 必须 | |||
├─deviceIp | String | 是 | 物理机IP | 10.10.240.2 | |
├─ taskId | Long | 必须 | 任务id | 9001 | |
msg | String | 必须 | 错误信息 | ||
ts | Long | 必须 | 时间戳 | 1601188620078 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": [
4 {
5 "deviceIp": "10.10.240.2",
6 "taskId": 9001
7 }
8 ],
9 "msg": "",
10 "ts": 1601021167163
11}
实例指令相关接口
实例重启
基本信息
URL
请求格式
POST
版本号
3
使用场景
重启指定实例编码的实例
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
padCodes | String[] | 非必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] | |
merchantPoolNos | Long[] | 非必须 | 实例池编号集合,集合长度在50内(包含50) | [1,2] |
说明
padCodes与merchantPoolNos不能同时为空; padCodes为空,merchantPoolNos不为空时则重启merchantPoolNos的所有实例;
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
├─padCode | String | 必须 | 实例编码 | VM192168001001 | ||
├─taskId | String | 必须 | 任务编号 | "2840204519134814256" | ||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "padCode": "VM192168041004",
5 "taskId": "2840204353481548485",
6 },
7 "msg": "ok",
8 "ts": 1663664302000
9}
异常示例
1{
2 "code": -1,
3 "msg": "实例编号不存在",
4 "ts": 1663664302000
5}
实例重置
基本信息
URL
请求格式
POST
版本号
3
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
padCodes | String[] | 非必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] | |
merchantPoolNos | Long[] | 非必须 | 实例池编号集合,集合长度在50内(包含50) | [1,2] |
说明
padCodes与merchantPoolNos不能同时为空; padCodes为空,merchantPoolNos不为空时则重启merchantPoolNos的所有实例;
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
├─padCode | String | 必须 | 实例编码 | VM192168001001 | ||
├─taskId | String | 必须 | 任务编号 | "2840204519134814256" | ||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "padCode": "VM192168041004",
5 "taskId": "2840204353481548485",
6 },
7 "msg": "ok",
8 "ts": 1663664302000
9}
异常示例
1{
2 "code": -1,
3 "msg": "实例编号不存在",
4 "ts": 1663664302000
5}
实例重启推流服务
基本信息
URL
https://platform.armvm.com/resources/instance/reboot-remote-play
请求格式
POST
版本号
3
使用场景
重启指定实例编码的实例推流服务
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCodes | String[] | 必须 | 实例编码集合,集合长度在200内(包含200) | ["VM192168001001","VM192168001002"] |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
├─instanceCode | String | 必须 | 实例编码 | VM192168001001 | ||
├─taskId | String | 必须 | 任务编号 | "2840204519134814256" | ||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data": {
4 "instanceCode": "VM192168041004",
5 "taskId": "2840204353481548485",
6 },
7 "msg": "ok",
8 "ts": 1663664302000
9}
异常示例
1{
2 "code": -1,
3 "msg": "实例编号不存在",
4 "ts": 1663664302000
5}
重启物理机
基本信息
URL
请求格式
POST
版本号
3
使用场景
重启指定物理机
请求参数
body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
deviceCodes | String[] | 必须 | 物理机编号,最多200个 | ["CS-IDC-01_DM001000000001"] | |
rebootType | Integer | 非必须 | 0 | 重启类型;0-软重启,1-硬重启,2-断电重启 | 1 |
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | |
data | Object[] | 非必须 | |||
├─taskId | Long | 必须 | 任务id | 12259080139067404 | |
├─deviceCode | String | 必须 | 物理机编号 | "CS-IDC-01_DM001000000001" | |
msg | String | 必须 | 响应消息 | "OK" | |
ts | Long | 必须 | 时间戳 | 1747035069000 |
请求示例
参考:调用方式
响应示例
1{
2 "data": [
3 {
4 "taskId": 12259080139067404,
5 "deviceCode": "CS-IDC-01_DM001000000001"
6 }
7 ],
8 "code": 0,
9 "msg": "OK",
10 "ts": 1747035069000
11}
异常示例
1{
2 "code": 11103250,
3 "msg": "物理机不存在",
4 "ts": 1747035069000
5}
快照能力相关接口
快照接口使用说明
快照定义
快照是存储在机房对象存储服务中的实例
/data
卷的完整备份。快照包含/data
卷上的所有数据,例如已安装的应用、应用生成的数据以及文件数据等。需要注意的是,由于快照仅支持备份/data
卷的数据,因此无法使用此功能备份和还原存储在系统卷中的数据,例如预置的应用等。
使用前提
如果您需要使用快照能力,请与PMO联系,需要配置一个合理的限额,此外,因设备需要做特殊处理,请确保您的设备符合使用要求。
注意事项 快照备份要求
要将实例的数据备份为一个快照,必须先经历一次初始化或挂载流程,否则无法备份。
快照删除限制
正在创建或待创建的快照不允许被删除;已被实例挂载的快照也不允许删除。
跨服务器和安卓版本支持
系统支持跨服务器类型进行快照挂载,然而,在跨安卓版本方面,仅支持低版本安卓实例生成的快照挂载到高版本安卓实例上。例如,系统版本为安卓 10 的实例所制作的快照可以挂载到安卓 12 的实例上,但安卓 12 实例制作的快照无法挂载到安卓 10 实例上。为了保证挂载的稳定,建议在相同服务器类型和系统版本之间使用快照功能。
快照重新挂载
为了确保业务的灵活性,允许已挂载快照的实例重新挂载一个新的快照。然而,请注意以下事项:如果在第一次挂载快照后,实例产生了增量数据,必须先卸载当前快照(即创建一个新的快照以保存数据),然后再挂载其他快照。如果不先进行卸载而直接挂载新的快照,实例在第一次挂载后产生的增量数据将会被清空。
功能列表 初始化
用途:在需要创建 0-1 快照的情况下,实例必须先进行初始化。未初始化的设备所生成的数据将无法进行备份。此外,初始化还有一个重要用途:当快照功能出现异常(例如挂载失败或卸载失败等情况)时,通过执行初始化操作,可以放弃当前数据,使实例恢复到可用状态。 初始化的流程:初始化的过程包括清空实例当前的所有数据,并挂载一个空目录。因此,初始化可以视为一种特殊的挂载操作,其挂载的是一个空快照。
挂载
用途:挂载是将对象存储中的远程快照文件挂载到实例上,其实际效果是还原数据到实例。 挂载的流程:将本地的数据清理,挂载一个远程快照,将远程快照中部分文件读取到本地后,启动实例。
卸载
用途:卸载是将实例当前的
/data
卷备份到机房对象存储中,并生成一个快照。其实际效果是创建一个对象存储文件,从而实现数据的备份。 卸载的流程:将当前data卷数据文件备份到对象存储,产生一个快照,并将数据从实例内清空,变回一个空的状态。
实例相关字段说明
挂载快照状态: 当前实例是否挂载快照 挂载快照ID: 当前正在挂载的快照编号
一次完整的快照使用流程
1、选择实例:选择一个处于空状态的实例,用于 0-1 快照制作。 2、初始化:将选择的实例进行初始化,并等待初始化任务完成。 3、使用实例:实例初始化完成后,在实例的
/data
卷中产生数据,例如安装应用程序等。 4、卸载快照:使用完成后,对该实例进行快照卸载,等待卸载完成,实例将恢复为未挂载状态。 5、查询快照:查询快照列表,找到刚刚生成的快照,并复制其快照 ID。 6、选择实例:找到一个或多个处于空状态的实例,用于挂载已创建的快照。 7、挂载快照:对选择的实例执行挂载快照的操作,并等待挂载任务完成。 8、使用实例并保存数据:在已挂载快照的实例上产生增量数据,然后再次卸载以保存数据。
快照各流程中云手机的相关状态 空状态
挂载快照状态: 未挂载 挂载快照ID: 无
初始化完成
挂载快照状态: 已挂载 挂载快照ID: 无
挂载完成
挂载快照状态: 已挂载 挂载快照ID: 有
卸载完成
挂载快照状态: 未挂载 挂载快照ID: 无
常见问题 1、挂载/卸载 和 备份/还原 的区别?
挂载/卸载 比 备份/还原 时效性更高。备份/还原 是需要把全量备份数据拷贝到本地后才能开机;挂载/卸载 是只需将分片数据中某些数据拷贝到本地后即可开机。
2、挂载快照后实例会被恢复到什么程度?
只会把数据还原到 /data卷,但实际登录状态,使用状态是没有保留的。
3、快照使用的存储空间是如何计算的?
卸载操作所产生的快照,会保存到对象存储里占用存储空间,且相同文件会重复计算空间。
例如某快照大小为100MB,此时需要计费的存储空间为100MB,不管被多少数量的实例挂载,计费的存储空间均为100MB;如果有十个实例挂载此快照,产生使用数据后也需要保存每个实例的快照,比如每台实例都在原本快照的基础上产生了额外30MB的数据,那么10个实例的快照卸载完成后,总的快照空间大小应为:100MB + (100MB + 30MB) x 10 = 1400MB。
快照初始化
基本信息
URL
请求格式
POST
版本号
3
使用场景
快照初始化
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
instanceCodes | String[] | 是 | 实例编号集合,最多200个 | ["VM011101001096", "VM011101001097"] |
quotaCapacity | Integer | 是 | 云手机的 data 目录可用容量,单位GB。范围: 最小值1GB,最大值1024GB | 256 |
memoryLimit | Integer | 否 | 内存限额大小,单位MB。范围:最小值512MB | 1024 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object[] | 是 | |||
├─instanceCode | String | 是 | 实例编号 | ||
├─taskId | Long | 是 | 任务ID | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
快照卸载
基本信息
URL
请求格式
POST
版本号
3
使用场景
对已挂载的实例发起快照卸载,会生成一个新的快照记录
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
instanceCodes | String[] | 是 | 实例编号集合,最多200个 | ["VM011101001096", "VM011101001097"] |
snapshotName | String | 是 | 快照名称 | "Test-Snapshot" |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object[] | 是 | |||
├─instanceCode | String | 是 | 实例编号 | ||
├─taskId | Long | 是 | 任务ID | ||
├─snapshotId | Long | 是 | 快照ID | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
快照挂载
基本信息
URL
请求格式
POST
版本号
3
使用场景
挂载已卸载成功产生的快照记录到云手机上
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
instanceCodes | String[] | 是 | 实例编号集合,最多200个 | ["VM011101001096", "VM011101001097"] |
snapshotId | Long | 是 | 快照ID | |
quotaCapacity | Integer | 否 | 云手机的 data 目录可用容量,单位GB。范围: 最小值1GB,最大值1024GB | 256 |
memoryLimit | Integer | 否 | 内存限额大小,单位MB。范围:最小值512MB | 1024 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object[] | 是 | |||
├─instanceCode | String | 是 | 实例编号 | ||
├─taskId | Long | 是 | 任务ID | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
分页查询快照记录
基本信息
URL
请求格式
POST
版本号
3
使用场景
分页查询快照记录
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
snapshotName | String | 否 | 快照名称,支持模糊搜索 | ["TEST-IDC-01_DM011101001096", "TEST-IDC-01_DM011101001097"] |
snapshotStatus | String | 否 | 快照状态:待创建-wait_create;创建中-creating;创建成功-create_success;创建失败-create_failed | "create_success" |
snapshotIds | Long[] | 否 | 快照ID集合 | |
page | Integer | 是 | 页码 | 1 |
rows | Integer | 是 | 每页条数,最多200 | 200 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object | 是 | |||
├─total | Integer | 是 | 总数 | ||
├─totalPage | Integer | 是 | 总页码 | ||
├─page | Integer | 是 | 页码 | ||
├─rows | Integer | 是 | 每页数量 | ||
├─pageData | Object[] | 是 | |||
├──snapshotId | Long | 是 | 快照ID | ||
├──snapshotName | String | 是 | 快照名称 | ||
├──snapshotStatus | String | 是 | 快照状态 | ||
├──instanceCode | String | 是 | 创建该快照的实例编号 | ||
├──idcCode | String | 是 | 快照所属机房编号 | ||
├──progress | String | 是 | 快照进度 | ||
├──snapshotSize | String | 是 | 快照大小,单位KB | ||
├──failReason | String | 是 | 失败原因 | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
删除快照
基本信息
URL
请求格式
POST
版本号
3
使用场景
删除掉不再需要的快照,只能删除创建成功或创建失败的快照,创建中的快照不允许被删除
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
snapshotIds | Long[] | 是 | 快照ID集合,最多200个 | [12214423066714199, 12214423066714198] |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object | 是 | |||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1598754678123 |
请求示例
参考:调用方式
快照初始化任务结果通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用快照初始化接口后,任务结果会通过该回调接口通知给客户。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123123123123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
快照卸载任务结果通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用快照卸载接口后,任务结果会通过该回调接口通知给客户。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123123123123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
快照挂载任务结果通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用快照挂载接口后,任务结果会通过该回调接口通知给客户。
请求参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123123123123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
快照批量挂载
基本信息
URL
https://platform.armvm.com/resources/dufs-snapshot/batch-mount
请求格式
POST
版本号
3
使用场景
批量挂载已卸载成功产生的快照记录到云手机上
请求参数
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
snapshotMountInfos | Object[] | 是 | 最大200个 | |
├─ instanceCode | String | 是 | 实例编码 | VM011101001096 |
├─ snapshotId | Long | 是 | 快照ID | |
├─ quotaCapacity | Integer | 否 | 云手机的 data 目录可用容量,单位GB。最小值1GB,最大值1024GB | 256 |
├─ memoryLimit | Integer | 否 | 内存限额大小,单位MB。范围:最小值512MB | 1024 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
code | Integer | 是 | 响应编码 | 0 | |
data | Object[] | 是 | |||
├─instanceCode | String | 是 | 实例编号 | ||
├─taskId | Long | 是 | 任务ID | ||
msg | String | 是 | 响应消息 | ||
ts | Long | 是 | 时间戳 | 1745494806123 |
请求示例
参考:调用方式
响应示例
1{
2 "code": 0,
3 "data":[
4 {
5 "taskId": 100000,
6 "instanceCode": "VM011101001096"
7 }
8 ],
9 "msg": "",
10 "ts": 1745494806123
11}
异常示例
1{
2 "code": 11108051,
3 "msg": "快照不存在",
4 "ts": 1745494806123
5}
服务回调相关接口
回调接口使用示例
以实例重启回调为例,其他回调接口使用方法类似。
配置说明
需要客户在客户开放平台配置实例重启通知的回调地址,如接口地址为http://host:port/api/v1/instance/reboot-fb,则配置为http://host:port/api/v1/instance/reboot-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Long | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | Boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
客户服务端接收请求示例
Java
1 // 配置好客户自己的desKey,可在开放平台的账号管理菜单下查看和重置
2 private String desKey = "d3b5c2b2e480e9e452c8b9f75fbe192b";
3 private String appSecret = "5e5b5f13052dfc53159e2069af12e6cf";
4
5 @PostMapping("http:127.0.0.1:8888/api/v1/instance/reboot-fb")
6 public Map<String, Object> instanceReboot(String appkey, String nonce, String s, String auth_ver, @RequestBody
7 (required = false) String body) throws Exception {
8 // 校验签名
9 StringBuilder paramsStr = new StringBuilder();
10 paramsStr.append("appkey").append(appkey)
11 .append("auth_ver").append(auth_ver)
12 .append("nonce").append(nonce)
13 .append(appSecret);//接口签名密钥(可配置)
14 String sign = DigestUtils.md5Hex(org.apache.commons.codec.binary.StringUtils.getBytesUtf8(paramsStr.toString()));
15 if (!sign.equals(s)) {
16 // 签名校验不合法
17 }
18
19 Map<String, Object> bodyMap = new ObjectMapper().readValue(body, Map.class);
20 Long bodyNonce = (Long) bodyMap.get("createTime");
21 String msg = (String) bodyMap.get("msg");
22 byte[] key = desKey.getBytes("UTF-8");
23 ByteBuffer byteBuffer = ByteBuffer.allocate(8);
24 byteBuffer.order(ByteOrder.BIG_ENDIAN);
25 byteBuffer.putLong(bodyNonce);
26 byte[] iv = byteBuffer.array();
27 byte[] message = Base64.decodeBase64(msg);
28 Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
29 SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
30 SecretKey secretKey = skf.generateSecret(new DESedeKeySpec(key));
31 IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
32 cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
33 byte[] bytes = cipher.doFinal(message);
34
35 // 获取回调的内容
36 String requestBody = new String(bytes, "UTF-8");
37 logger.info("回调消息, request body : {}", requestBody);
38
39 // 处理客户自己的业务逻辑
40
41 // 返回响应信息
42 Map<String, Object> responseHeader = new HashMap<>();
43 responseHeader.put("time", System.currentTimeMillis());
44 responseHeader.put("version", "2");
45 responseHeader.put("status", 200);
46
47 Map<String, Object> response = new HashMap<>();
48 response.put("responseHeader", responseHeader);
49 return response;
50 }
测试请求示例
Java
1 // PaaS 平台分配给第三方用户的接口Key
2 String appkey = "50b13132bb394901f151bc45";
3 // 接口版本号,现在有2和3两种版本的接口
4 String auth_ver = "2";
5 // 当前的时间戳
6 long nonce = new Date().getTime();
7 // 方法签名,生成示例见‘方法签名生成示例’
8 String s = "efabcaca7c66d629a639cee37d924813";
9 //desKey 3DES秘钥(可配置),根据商户平台实际生成的替换此值
10 String desKey = "d3b5c2b2e480e9e452c8b9f75fb1qazs";
11 // 拼接公共参数到URl
12 String apiUrl = "http://host:port/api/v1/instance/reboot-fb?s=" + s + "&appkey=" + appkey + "&auth_ver=" + auth_ver + "&nonce=" + nonce;
13
14 // 填装请求参数
15 Map param = new HashMap();
16 param.put("taskId", 1);
17 param.put("result", true);
18 param.put("msg", "ok");
19 param.put("padCode", "VM123");
20
21 // 请求参数转化为JSON字符串
22 String requestParam = new Gson().toJson(param);
23
24 // 请求参数加密
25 Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
26 SecretKeyFactory skf = SecretKeyFactory.getInstance("DESede");
27 SecretKey secretKey = skf.generateSecret(new DESedeKeySpec(desKey.getBytes("utf-8")));
28 ByteBuffer byteBuffer = ByteBuffer.allocate(8);
29 byteBuffer.order(ByteOrder.BIG_ENDIAN);
30 byteBuffer.putLong(nonce);
31 byte[] iv = byteBuffer.array();
32 IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
33 cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
34 byte[] cipherText = cipher.doFinal(requestParam.getBytes("utf-8"));
35 String msg = Base64.encodeBase64String(cipherText);
36 Map map = new HashMap();
37 map.put("createTime", nonce);
38 map.put("msg", msg);
39 // 转化为JSON字符串
40 String encryptBody = new Gson().toJson(map);
41
42 // 构造请求
43 URL url = new URL(apiUrl);
44 HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
45 // 连接超时时间
46 httpURLConnection.setConnectTimeout(1000);
47 // 读取结果超时时间
48 httpURLConnection.setReadTimeout(1000);
49 httpURLConnection.setDoInput(true);
50 httpURLConnection.setDoOutput(true);
51 httpURLConnection.setUseCaches(false);
52 httpURLConnection.setRequestProperty("Content-type", "application/json;charset=utf-8");
53 httpURLConnection.setRequestMethod("POST");
54 if ("https".equalsIgnoreCase(url.getProtocol())) {
55 HttpsURLConnection husn = (HttpsURLConnection) httpURLConnection;
56 husn.setSSLSocketFactory(new BaseHttpSSLSocketFactory());
57 //解决由于服务器证书问题导致HTTPS无法访问的情况
58 husn.setHostnameVerifier(new BaseHttpSSLSocketFactory.TrustAnyHostnameVerifier());
59 httpURLConnection = husn;
60 }
61 // 得到请求的输出流对象
62 OutputStreamWriter out = new OutputStreamWriter(httpURLConnection.getOutputStream());
63 // 把数据写入请求的Body
64 out.write(encryptBody);
65 out.flush();
66 out.close();
67
68 String result = "";
69 try (InputStream in = 200 == httpURLConnection.getResponseCode() ? httpURLConnection.getInputStream() : httpURLConnection.getErrorStream();) {
70 byte[] buf = new byte[1024];
71 int length = 0;
72 ByteArrayOutputStream bout = new ByteArrayOutputStream();
73 while ((length = in.read(buf, 0, buf.length)) > 0) {
74 bout.write(buf, 0, length);
75 }
76 bout.flush();
77 result = new String(bout.toByteArray(), StandardCharsets.UTF_8);
78 } catch (Exception e) {
79 throw e;
80 } finally {
81 if (null != httpURLConnection) {
82 httpURLConnection.disconnect();
83 }
84 }
85 int responseCode = httpURLConnection.getResponseCode();
86 if (responseCode == 200) {
87 System.out.println("调用成功,接口返回结果:\n" + result);
88 } else {
89 System.out.println("调用失败");
90 }
请求参数示例
1{
2 "taskId": 1,
3 "padCode": "VM123",
4 "result": true,
5 "msg": "ok"
6 }
应用安装通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
应用安装任务的结果会通过该回调接口通知。
配置说明
需要在开放平台配置应用安装通知的回调地址,如接口地址为http://host:port/api/v1/app/install-fb,则配置为http://host:port/api/v1/app/install-fb
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
apps | Object | 必须 | 应用信息 | ||
├─appId | Long | 必须 | 应用ID | 10001 | |
├─padCode | String | 必须 | 实例编码 | VM123 | |
├─appName | String | 必须 | 应用名称 | demo | |
├─pkgName | String | 必须 | 应用包名 | com.demo | |
├─result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
应用卸载通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
应用卸载任务的结果会通过该回调接口通知。
配置说明
需要在开放平台配置应用卸载通知的回调地址,如接口地址为http://host:port/api/v1/app/uninstall-fb,则配置为http://host:port/api/v1/app/uninstall-fb
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
apps | Object | 必须 | 应用信息 | ||
├─appId | Long | 必须 | 应用ID | 10001 | |
├─padCode | String | 必须 | 实例编码 | VM123 | |
├─appName | String | 必须 | 应用名称 | demo | |
├─pkgName | String | 必须 | 应用包名 | com.demo | |
├─result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
应用上传通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏应用上传接口,应用上传情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置保存应用通知的回调地址,如接口地址为http://host:port/api/v1/apps/upload-fb,则配置为http://host:port/api/v1/apps/upload-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
packageName | String | 必须 | 应用包名 | com.demo | |
taskStatus | String | 必须 | 任务结果:7: 成功 ; 8: 失败 | 7 | |
apps | Object | 必须 | 应用信息 | ||
├─appId | Long | 必须 | 应用ID | 10001 | |
├─appName | String | 必须 | 应用名称 | demo | |
├─pkgName | String | 必须 | 包名 | com.demo | |
├─result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
应用启动通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏应用启动接口后,应用启动情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置应用启动通知的回调地址,如接口地址为http://host:port/api/v1/apps/start-fb,则配置为http://host:port/api/v1/apps/start-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
packageName | String | 必须 | 应用包名 | com.demo | |
operateType | String | 必须 | startApp:应用启动 | startApp | |
taskStatus | String | 必须 | 任务结果:7: 成功 ; 8: 失败 | 7 | |
apps | Object | 必须 | 应用信息 | ||
├─appId | Long | 必须 | 应用ID | 10001 | |
├─padCode | String | 必须 | 实例编码 | VM123 | |
├─appName | String | 必须 | 应用名称 | demo | |
├─pkgName | String | 必须 | 包名 | com.demo | |
├─result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
应用停止通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏应用停止接口后,应用停止情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置应用停止通知的回调地址,如接口地址为http://host:port/api/v1/apps/stop-fb,则配置为http://host:port/api/v1/apps/stop-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
packageName | String | 必须 | 应用包名 | com.demo | |
operateType | String | 必须 | killApp:应用停止 | killApp | |
taskStatus | String | 必须 | 任务结果:7: 成功 ; 8: 失败 | 7 | |
apps | Object | 必须 | 应用信息 | ||
├─appId | Long | 必须 | 应用ID | 10001 | |
├─padCode | Long | 必须 | 实例编码 | VM123 | |
├─appName | String | 必须 | 应用名称 | demo | |
├─pkgName | String | 必须 | 包名 | com.demo | |
├─result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例解绑通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
客户调用百度云游戏实例解绑接口后,实例解绑情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例解绑通知的回调地址,如接口地址为http://host:port/api/v1/instance/unbind-fb,则配置为http://host:port/api/v1/instance/unbind-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
uuid | String | 必须 | uuid | 123456 | |
padCode | String | 必须 | 实例编码 | VM123123123123 | |
sessionId | String | 必须 | 会话ID | JKWEUNBL6RX3WCBUQ92AGYCU9MLX0WTB | |
endTimestamp | Long | 必须 | 完成解绑操作的时间戳 | 1669020092256 |
使用示例
参考:回调接口使用示例
实例重置通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏实例重置接口后,实例重置情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例重置通知的回调地址,如接口地址为http://host:port/api/v1/instance/reset-fb,则配置为http://host:port/api/v1/instance/reset-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例重启通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏实例重启接口后,实例重启情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例重启通知的回调地址,如接口地址为http://host:port/api/v1/instance/reboot-fb,则配置为http://host:port/api/v1/instance/reboot-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例执行脚本通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏实例执行脚本接口后,脚本执行情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例重启通知的回调地址,如接口地址为http://host:port/api/v1/instance/execute-script-fb,则配置为http://host:port/api/v1/instance/execute-script-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Long | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | Boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
上传文件到实例通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏上传文件到实例接口后,文件上传结果会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例重启通知的回调地址,如接口地址为http://host:port/api/v1/instance/file-upload-fb,则配置为http://host:port/api/v1/instance/file-upload-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Long | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | Boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
桌面推荐图标刷新通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云桌面推荐图标刷新,刷新结果会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置桌面推荐图标刷新通知的回调地址,如接口地址为http://host:port/api/v1/instance/recommend-app-icon-refresh,则配置为http://host:port/api/v1/instance/recommend-app-icon-refresh
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM192168043080 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例备份通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云实例备份接口后,实例备份的结果会通过该回调接口通知。
配置说明
需要在开放平台配置实例备份通知的回调地址,如接口地址为http://host:port/api/v1/instance/backup-fb,则配置为http://host:port/api/v1/instance/backup-fb
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例还原通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用百度云游戏实例重置接口后,实例重置情况会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例重置通知的回调地址,如接口地址为http://host:port/api/v1/instance/restore-fb,则配置为http://host:port/api/v1/instance/restore-fb
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Integer | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | boolean | 必须 | 上传结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
实例分辨率调整通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
调用实例分辨率调整接口后,调整结果会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置实例分辨率调整通知的回调地址,如接口地址为http://host:port/api/v1/instance/resolution-fb,则配置为http://host:port/api/v1/instance/resolution-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Long | 必须 | 任务编号 | 1 | |
padCode | String | 必须 | 实例编码 | VM123 | |
msg | String | 必须 | 返回信息 | ok | |
result | Boolean | 必须 | 执行结果的标识。true:成功,false:失败 | true |
使用示例
参考:回调接口使用示例
进程死亡告警通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
实例应用进程异常死亡后,进程死亡信息会通过该回调接口通知给客户。
配置说明
需要客户在客户开放平台配置进程死亡告警通知的回调地址,如接口地址为http://host:port/api/v1/monitor/process-died-alarm-fb,则配置为http://host:port/api/v1/monitor/process-died-alarm-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
instanceCode | String | 必须 | 实例编码 | VM123 | |
content | Object | 必须 | |||
├─packageName | String | 必须 | 应用包名 | com.example.app | |
├─reason | String | 必须 | 进程死亡原因;参考reason枚举表; | process other exception died | |
├─controlStatus | String | 必须 | 实例受控状态;control:受控,online:非受控; | online | |
├─uuid | String | 必须 | 实例绑定的uuid | ||
├─recordTime | String | 必须 | 进程死亡时间 | 2024-10-30 12:00:00 |
reason枚举
reason | 含义 |
---|---|
anr | 进程anr被终止 |
bg anr | 后台进程anr被终止 |
crash | 进程崩溃被终止 |
start timeout | 进程启动超时被终止 |
depends on provider | 所绑定的provider已销毁所以被杀 |
lmk-kill | 进程被Low Memory Killer终止 |
使用示例
参考:回调接口使用示例
实例文件下载通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
请求实例文件下载后,任务将进行异步执行,执行完毕后会通过该回调接口通知到客户;
配置说明
需要客户在客户开放平台配置实例文件下载通知的回调地址,如接口地址为http://host:port/api/v1/instance/file-download-fb,则配置为http://host:port/api/v1/instance/file-download-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
taskId | Long | 必须 | 任务编号 | 1000 | |
instanceCode | String | 必须 | 实例编码 | "VM192168001001" | |
result | Boolean | 必须 | 任务执行结果;true:成功,false:失败 | true | |
msg | String | 必须 | 返回信息 | "https://callback.example.com/file.txt" |
使用示例
参考:回调接口使用示例
实例会话受控状态变更通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
当实例会话受控状态变更时,将会通过该回调接口通知到客户;
配置说明
需要客户在客户开放平台配置受控状态变更通知的回调地址,如接口地址为http://host:port/api/v1/instance/control-status-change-fb,则配置为http://host:port/api/v1/instance/control-status-change-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
changeInfos | Object[] | 必须 | |||
├─uuid | String | 必须 | 用户标识 | ||
├─instanceCode | String | 必须 | 实例编号 | "VM192168001001" | |
├─serverToken | String | 必须 | 会话的serverToken | ||
├─controlStatus | String | 必须 | 受控状态;online-非受控,control-受控 | "control" | |
changeTime | Long | 必须 | 变更时间 | 1740573508898 |
使用示例
参考:回调接口使用示例
实例对拷结果通知
基本信息
URL
请求格式
POST
版本号
3
使用场景
实例对拷任务完成后,对拷结果会通过该接口回调给客户。
配置说明
需要客户在客户开放平台配置实例对拷结果通知的回调地址,如接口地址为http://host:port/api/v1/instance/data-copy-fb,则配置为http://host:port/api/v1/instance/data-copy-fb
配置示例
请求参数
Body
名称 | 类型 | 是否必须 | 备注 | 示例值 |
---|---|---|---|---|
taskId | Long | 必须 | 任务ID | 1001 |
sourceInstanceCode | String | 必须 | 源实例编号 | VM192168001001 |
targetInstanceCode | String | 必须 | 目标实例编号 | VM192168001002 |
result | Boolean | 必须 | 任务结果的标识。true:成功,false:失败 | true |
msg | String | 非必须 | 附带信息,一般是失败信息 |
使用示例
参考:回调接口使用示例
返回结果
版本一
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 |
---|---|---|---|---|---|
resultCode | Integer | 必须 | 操作结果代码,0代表成功 -1代表失败 9999代表系统错误 | 0 | |
resultInfo | String | 必须 | 操作具体描述以及数据封装 |
版本二
返回参数
名称 | 类型 | 是否必须 | 默认值 | 备注 | 示例值 | |
---|---|---|---|---|---|---|
code | Integer | 必须 | 响应编码 | 0 | ||
data | Object[] | 非必须 | ||||
msg | String | 非必须 | 响应消息 | |||
ts | Long | 必须 | 十三位时间戳 | 1598754678123 |
错误码
错误码 | 错误信息 | 备注 |
---|---|---|
11100050 | 系统异常,请联系客服人员 | |
11101100 | 商户信息异常 | |
11101118 | 商户类型错误,只允许云手机客户使用 | |
11102027 | serverToken无效 | |
11102032 | serverToken无效,[serverToken] | |
11103062 | 实例不存在 | |
11103078 | 实例不属于此用户 | |
11103103 | 无设备可绑定 | |
11103180 | 实例池不存在 | |
11103183 | 实例池中无实例 | |
11103184 | 实例编号和实例池编码不能同时为空 | |
11103185 | 实例池不存在或无实例 | |
11103190 | 实例池不存在,[实例池编号] | |
11108003 | 工作任务不存在 | |
11108009 | 找不到脚本[脚本名称],请确定是否有配置 | |
11109002 | 内部服务通信失败 |