summaryrefslogtreecommitdiff
path: root/data/zh_cn/linkvisual/2023-06-30/api-docs.php
diff options
context:
space:
mode:
authorZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
committerZhineng Li <im@zhineng.li>2026-07-12 17:11:17 +0800
commit1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 (patch)
tree5f0857666365b7e40cdaa3733ebe1f3ba9e13c67 /data/zh_cn/linkvisual/2023-06-30/api-docs.php
parent7347bac4ab7e136157fc94777e6cf87ef9e08599 (diff)
downloadafterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.tar.gz
afterglow-metadata-full-1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634.zip
update APIs 20260712
Diffstat (limited to 'data/zh_cn/linkvisual/2023-06-30/api-docs.php')
-rw-r--r--data/zh_cn/linkvisual/2023-06-30/api-docs.php7567
1 files changed, 2868 insertions, 4699 deletions
diff --git a/data/zh_cn/linkvisual/2023-06-30/api-docs.php b/data/zh_cn/linkvisual/2023-06-30/api-docs.php
index 668ef12..65ae76b 100644
--- a/data/zh_cn/linkvisual/2023-06-30/api-docs.php
+++ b/data/zh_cn/linkvisual/2023-06-30/api-docs.php
@@ -1,65 +1,139 @@
<?php return [
'version' => '1.0',
- 'info' => [
- 'style' => 'RPC',
- 'product' => 'Linkvisual',
- 'version' => '2023-06-30',
- ],
+ 'info' => ['style' => 'RPC', 'product' => 'Linkvisual', 'version' => '2023-06-30'],
'directories' => [
[
- 'id' => 352715,
- 'title' => '其他',
- 'type' => 'directory',
'children' => [
- 'BindStorageOrder',
- 'CheckFreeStorageValid',
- 'ConsumeFreeStorage',
- 'CreateAndPayStorageOrder',
- 'EnableFreeStorage',
- 'EnableStorageOrder',
- 'FreezeFreeStorage',
- 'GenerateDevice',
- 'FreezeStorageOrder',
- 'GenerateDeviceByBatchId',
- 'QueryBatchStatus',
- 'QueryDeviceDetail',
- 'QueryFreeStorage',
- 'QueryDevicesDownloadUrl',
- 'QueryGenerateDevicesInfoList',
- 'QueryGenerateDevicesRecord',
- 'QueryStorageCommodityList',
- 'QueryStorageOrder',
- 'QueryStorageOrderList',
- 'TransferStorageOrder',
- 'UploadDeviceNameList',
- 'GetThingEventSnapshot',
- 'BatchBindDevice',
- 'GetAccountById',
- 'GetDeviceStatus',
- 'GetSubDeviceList',
- 'GetThingPropertySnapshot',
- 'InvokeThingService',
- 'ListBindingAccountByDevice',
- 'ListBindingDeviceByAccount',
- 'SetThingProperty',
- 'UnbindAllUserByDevice',
- 'UnbindDevice',
+ 'BindStorageOrder', 'CheckFreeStorageValid', 'ConsumeFreeStorage', 'CreateAndPayStorageOrder', 'EnableFreeStorage', 'EnableStorageOrder', 'FreezeFreeStorage', 'GenerateDevice', 'FreezeStorageOrder', 'GenerateDeviceByBatchId', 'QueryBatchStatus', 'QueryDeviceDetail', 'QueryFreeStorage', 'QueryDevicesDownloadUrl', 'QueryGenerateDevicesInfoList', 'QueryGenerateDevicesRecord', 'QueryStorageCommodityList', 'QueryStorageOrder', 'QueryStorageOrderList', 'TransferStorageOrder',
+ 'UploadDeviceNameList', 'GetThingEventSnapshot', 'BatchBindDevice', 'GetAccountById', 'GetDeviceStatus', 'GetSubDeviceList', 'GetThingPropertySnapshot', 'InvokeThingService', 'ListBindingAccountByDevice', 'ListBindingDeviceByAccount', 'SetThingProperty', 'UnbindAllUserByDevice', 'UnbindDevice',
],
+ 'type' => 'directory',
+ 'title' => '其他',
+ 'id' => 298112,
],
],
'components' => [
'schemas' => [],
],
'apis' => [
- 'BindStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
+ 'BatchBindDevice' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'OpenId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => false],
+ ],
+ [
+ 'name' => 'OpenIdAppKey',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => false],
+ ],
+ [
+ 'name' => 'IdentityId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => false],
+ ],
+ [
+ 'name' => 'DeviceList',
+ 'in' => 'query',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ProductKey' => ['type' => 'string', 'required' => false],
+ 'DeviceName' => ['type' => 'string', 'required' => false],
+ 'IotId' => ['type' => 'string', 'required' => false],
+ ],
+ ],
+ 'required' => true,
+ 'maxItems' => 20,
+ ],
+ ],
],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
+ 'Data' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BindDeviceList' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BindResultMessage' => ['type' => 'string'],
+ 'ProductKey' => ['type' => 'string'],
+ 'BindResultCode' => ['type' => 'integer', 'format' => 'int32'],
+ 'DeviceName' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.GetAccountInfoFailed', 'errorMessage' => 'Get account info failed.', 'description' => '查询账号详情信息失败。'],
+ ['errorCode' => 'iot.vision.AccountNotFound', 'errorMessage' => 'Account not found.', 'description' => '找不到账号。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
+ ['errorCode' => 'iot.vision.IdentityAppKeyProductNotBind', 'errorMessage' => 'The app associated with the identityId does not have permission to access the product.', 'description' => '账号对应AppKey没有关联产品。'],
+ ['errorCode' => 'iot.vision.BindFailed', 'errorMessage' => 'Bind account and device failed.', 'description' => '账号和设备绑定失败。'],
+ ],
+ 403 => [
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ],
+ 429 => [
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchBindDevice'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:BatchBindDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"BindDeviceList\\": [\\n {\\n \\"BindResultMessage\\": \\"\\",\\n \\"ProductKey\\": \\"\\",\\n \\"BindResultCode\\": 0,\\n \\"DeviceName\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'BindStorageOrder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -70,104 +144,57 @@
[
'name' => 'EventRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '30',
- 'minimum' => '0',
- 'default' => '10',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '0', 'default' => '10'],
],
[
'name' => 'OrderId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'EventRecordProlong',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'UserName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'UserId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'MaxRecordFileDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '3600',
- 'minimum' => '600',
- 'default' => '1800',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '600', 'default' => '1800'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'EnableDefaultPlan',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'PreRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '5',
- 'minimum' => '0',
- 'default' => '0',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '5', 'minimum' => '0', 'default' => '0'],
],
],
'responses' => [
@@ -175,84 +202,32 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -261,74 +236,49 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed',
- 'errorMessage' => 'Get owner identity info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.SetDefaultRecordPlanFailed',
- 'errorMessage' => 'Set default record plan failed.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed', 'errorMessage' => 'Get owner identity info failed.', 'description' => '查询设备管理员用户信息失败。'],
+ ['errorCode' => 'iot.vision.SetDefaultRecordPlanFailed', 'errorMessage' => 'Set default record plan failed.', 'description' => '设置默认的录像计划失败。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindStorageOrder'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:BindStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
],
'CheckFreeStorageValid' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -339,26 +289,17 @@
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -366,84 +307,57 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
],
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.FreeStorageQuotaLimit',
- 'errorMessage' => 'No enough free storage quota or exceed limit.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageCommodity',
- 'errorMessage' => 'Invalid storage commodity.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.GetDeviceInfoFailed',
- 'errorMessage' => 'Get device info failed.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.FreeStorageQuotaLimit', 'errorMessage' => 'No enough free storage quota or exceed limit.', 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['errorCode' => 'iot.vision.InvalidStorageCommodity', 'errorMessage' => 'Invalid storage commodity.', 'description' => '无效的云存储商品规格。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.GetDeviceInfoFailed', 'errorMessage' => 'Get device info failed.', 'description' => '查询设备详情失败。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckFreeStorageValid'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:CheckFreeStorageValid',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]',
],
'ConsumeFreeStorage' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -454,88 +368,47 @@
[
'name' => 'EventRecordProlong',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'EventRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '30',
- 'minimum' => '0',
- 'default' => '10',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '0', 'default' => '10'],
],
[
'name' => 'ImmediateUse',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'EnableDefaultPlan',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'PreRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '5',
- 'minimum' => '0',
- 'default' => '0',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '5', 'minimum' => '0', 'default' => '0'],
],
[
'name' => 'Quota',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '100',
- 'minimum' => '1',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1'],
],
],
'responses' => [
@@ -543,57 +416,23 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'Type' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'Months' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Expired' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'RemainQuota' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'Consumed' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Lifecycle' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
+ 'EndTime' => ['type' => 'string'],
+ 'Type' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTime' => ['type' => 'string'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'Months' => ['type' => 'integer', 'format' => 'int32'],
+ 'Expired' => ['type' => 'integer', 'format' => 'int32'],
+ 'RemainQuota' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'Consumed' => ['type' => 'integer', 'format' => 'int32'],
+ 'Lifecycle' => ['type' => 'integer', 'format' => 'int32'],
],
],
],
@@ -602,74 +441,44 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.FreeStorageQuotaLimit',
- 'errorMessage' => 'No enough free storage quota or exceed limit.',
- ],
- [
- 'errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed',
- 'errorMessage' => 'Get owner identity info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetDeviceInfoFailed',
- 'errorMessage' => 'Get device info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.SetDefaultRecordPlanFailed',
- 'errorMessage' => 'Set default record plan failed.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.FreeStorageQuotaLimit', 'errorMessage' => 'No enough free storage quota or exceed limit.', 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed', 'errorMessage' => 'Get owner identity info failed.', 'description' => '查询设备管理员用户信息失败。'],
+ ['errorCode' => 'iot.vision.GetDeviceInfoFailed', 'errorMessage' => 'Get device info failed.', 'description' => '查询设备详情失败。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.SetDefaultRecordPlanFailed', 'errorMessage' => 'Set default record plan failed.', 'description' => '设置默认的录像计划失败。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ConsumeFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"EndTime\\": \\"\\",\\n \\"Type\\": 0,\\n \\"StartTime\\": \\"\\",\\n \\"EndTimeUTC\\": \\"\\",\\n \\"Months\\": 0,\\n \\"Expired\\": 0,\\n \\"RemainQuota\\": 0,\\n \\"StartTimeUTC\\": \\"\\",\\n \\"Consumed\\": 0,\\n \\"Lifecycle\\": 0\\n }\\n}","type":"json"}]',
],
'CreateAndPayStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -680,141 +489,77 @@
[
'name' => 'DeviceNoOwner',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'EventRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '30',
- 'minimum' => '0',
- 'default' => '10',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '0', 'default' => '10'],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'Copies',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '100',
- 'minimum' => '1',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1'],
],
[
'name' => 'CommodityCode',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'EventRecordProlong',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'Specification',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ImmediateUse',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'UserName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'UserId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'MaxRecordFileDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '3600',
- 'minimum' => '600',
- 'default' => '1800',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '3600', 'minimum' => '600', 'default' => '1800'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'EnableDefaultPlan',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'PreRecordDuration',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '5',
- 'minimum' => '0',
- 'default' => '0',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '5', 'minimum' => '0', 'default' => '0'],
],
],
'responses' => [
@@ -822,84 +567,32 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -908,98 +601,55 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.CreateStorageOrderFailed',
- 'errorMessage' => 'Create storage order failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetDeviceInfoFailed',
- 'errorMessage' => 'Get device info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageCommodity',
- 'errorMessage' => 'Invalid storage commodity.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageCommodityUnavailable',
- 'errorMessage' => 'Storage commodity unavailable.',
- ],
- [
- 'errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed',
- 'errorMessage' => 'Get owner identity info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.SetDefaultRecordPlanFailed',
- 'errorMessage' => 'Set default record plan failed.',
- ],
- [
- 'errorCode' => 'iot.vision.QueryCommodityPriceFailed',
- 'errorMessage' => 'Query commodity price failed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderAlreadyPaid',
- 'errorMessage' => 'Storage order had been paid.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderPayFailed',
- 'errorMessage' => 'Storage order pay failed.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.CreateStorageOrderFailed', 'errorMessage' => 'Create storage order failed.', 'description' => '创建云存储订单失败。'],
+ ['errorCode' => 'iot.vision.GetDeviceInfoFailed', 'errorMessage' => 'Get device info failed.', 'description' => '查询设备详情失败。'],
+ ['errorCode' => 'iot.vision.InvalidStorageCommodity', 'errorMessage' => 'Invalid storage commodity.', 'description' => '无效的云存储商品规格。'],
+ ['errorCode' => 'iot.vision.StorageCommodityUnavailable', 'errorMessage' => 'Storage commodity unavailable.', 'description' => '云存储商品不支持使用。'],
+ ['errorCode' => 'iot.vision.GetOwnerIdentityInfoFailed', 'errorMessage' => 'Get owner identity info failed.', 'description' => '查询设备管理员用户信息失败。'],
+ ['errorCode' => 'iot.vision.SetDefaultRecordPlanFailed', 'errorMessage' => 'Set default record plan failed.', 'description' => '设置默认的录像计划失败。'],
+ ['errorCode' => 'iot.vision.QueryCommodityPriceFailed', 'errorMessage' => 'Query commodity price failed.', 'description' => '查询云存储商品价格失败。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.StorageOrderAlreadyPaid', 'errorMessage' => 'Storage order had been paid.', 'description' => '云存储订单已经支付。'],
+ ['errorCode' => 'iot.vision.StorageOrderPayFailed', 'errorMessage' => 'Storage order pay failed.', 'description' => '云存储订单支付失败。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAndPayStorageOrder'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:CreateAndPayStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
],
'EnableFreeStorage' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1010,26 +660,17 @@
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -1037,57 +678,23 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'Type' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'Months' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Expired' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'RemainQuota' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'Consumed' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Lifecycle' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
+ 'EndTime' => ['type' => 'string'],
+ 'Type' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTime' => ['type' => 'string'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'Months' => ['type' => 'integer', 'format' => 'int32'],
+ 'Expired' => ['type' => 'integer', 'format' => 'int32'],
+ 'RemainQuota' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'Consumed' => ['type' => 'integer', 'format' => 'int32'],
+ 'Lifecycle' => ['type' => 'integer', 'format' => 'int32'],
],
],
],
@@ -1096,66 +703,47 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.FreeStorageQuotaLimit',
- 'errorMessage' => 'No enough free storage quota or exceed limit.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.FreeStorageQuotaLimit', 'errorMessage' => 'No enough free storage quota or exceed limit.', 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableFreeStorage'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:EnableFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"EndTime\\": \\"\\",\\n \\"Type\\": 0,\\n \\"StartTime\\": \\"\\",\\n \\"EndTimeUTC\\": \\"\\",\\n \\"Months\\": 0,\\n \\"Expired\\": 0,\\n \\"RemainQuota\\": 0,\\n \\"StartTimeUTC\\": \\"\\",\\n \\"Consumed\\": 0,\\n \\"Lifecycle\\": 0\\n }\\n}","type":"json"}]',
],
'EnableStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1166,34 +754,22 @@
[
'name' => 'OrderId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -1201,84 +777,32 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -1287,70 +811,48 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderStatusInvalid',
- 'errorMessage' => 'Storage order status invalid.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.StorageOrderStatusInvalid', 'errorMessage' => 'Storage order status invalid.', 'description' => '当前云存储订单状态不支持操作。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableStorageOrder'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:EnableStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
],
'FreezeFreeStorage' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1361,26 +863,17 @@
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -1388,57 +881,23 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'Type' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'Months' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Expired' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'RemainQuota' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'Consumed' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Lifecycle' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
+ 'EndTime' => ['type' => 'string'],
+ 'Type' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTime' => ['type' => 'string'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'Months' => ['type' => 'integer', 'format' => 'int32'],
+ 'Expired' => ['type' => 'integer', 'format' => 'int32'],
+ 'RemainQuota' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'Consumed' => ['type' => 'integer', 'format' => 'int32'],
+ 'Lifecycle' => ['type' => 'integer', 'format' => 'int32'],
],
],
],
@@ -1447,180 +906,47 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.FreeStorageQuotaLimit',
- 'errorMessage' => 'No enough free storage quota or exceed limit.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.FreeStorageQuotaLimit', 'errorMessage' => 'No enough free storage quota or exceed limit.', 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'GenerateDevice' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FreezeFreeStorage'],
],
],
- 'systemTags' => [],
- 'parameters' => [
+ 'ramActions' => [
[
- 'name' => 'Amount',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => true,
- 'maximum' => '10000',
- 'minimum' => '1',
- ],
- ],
- [
- 'name' => 'ProductKey',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- [
- 'name' => 'ProjectId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'type' => 'object',
- 'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
- 'Data' => [
- 'type' => 'object',
- 'properties' => [
- 'BatchId' => [
- 'type' => 'string',
- ],
- ],
- ],
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:FreezeFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.ActiveCodeInsufficient',
- 'errorMessage' => 'Active code quota is insufficient.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesCountExceedLimit',
- 'errorMessage' => 'The devices count exceed the limit.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit',
- 'errorMessage' => 'Devices count exceed the limit of unreleased product.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- ],
- 429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
- ],
- ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"EndTime\\": \\"\\",\\n \\"Type\\": 0,\\n \\"StartTime\\": \\"\\",\\n \\"EndTimeUTC\\": \\"\\",\\n \\"Months\\": 0,\\n \\"Expired\\": 0,\\n \\"RemainQuota\\": 0,\\n \\"StartTimeUTC\\": \\"\\",\\n \\"Consumed\\": 0,\\n \\"Lifecycle\\": 0\\n }\\n}","type":"json"}]',
],
'FreezeStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1631,43 +957,27 @@
[
'name' => 'DeviceNoOwner',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
'name' => 'OrderId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -1675,84 +985,32 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -1761,66 +1019,47 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'GenerateDeviceByBatchId' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FreezeStorageOrder'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:FreezeStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
+ ],
+ 'GenerateDevice' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1829,28 +1068,19 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'BatchId',
+ 'name' => 'Amount',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '10000', 'minimum' => '1'],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProjectId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
],
'responses' => [
@@ -1858,24 +1088,14 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'BatchId' => [
- 'type' => 'string',
- ],
+ 'BatchId' => ['type' => 'string'],
],
],
],
@@ -1884,70 +1104,44 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.ParamBatchIdInvalid',
- 'errorMessage' => 'Parameter batchId is invalid.',
- ],
- [
- 'errorCode' => 'iot.vision.BatchHasCreated',
- 'errorMessage' => 'This batch task has been created.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNameChecking',
- 'errorMessage' => 'Device names are checking.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNameCheckFailed',
- 'errorMessage' => 'Device names check failed.',
- ],
- [
- 'errorCode' => 'iot.vision.ActiveCodeInsufficient',
- 'errorMessage' => 'Active code quota is insufficient.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesCountExceedLimit',
- 'errorMessage' => 'The devices count exceed the limit.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit',
- 'errorMessage' => 'Devices count exceed the limit of unreleased product.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.ActiveCodeInsufficient', 'errorMessage' => 'Active code quota is insufficient.', 'description' => '可用激活码不足。'],
+ ['errorCode' => 'iot.vision.DevicesCountExceedLimit', 'errorMessage' => 'The devices count exceed the limit.', 'description' => '创建设备数量超过限制。'],
+ ['errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit', 'errorMessage' => 'Devices count exceed the limit of unreleased product.', 'description' => '创建设备数量超过未发布产品的试产设备数量。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryBatchStatus' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDevice'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GenerateDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"BatchId\\": \\"\\"\\n }\\n}","type":"json"}]',
+ ],
+ 'GenerateDeviceByBatchId' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -1958,26 +1152,17 @@
[
'name' => 'BatchId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProjectId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
],
'responses' => [
@@ -1985,50 +1170,14 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'string',
- ],
- 'InvalidDetailList' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'ErrorMsg' => [
- 'type' => 'string',
- ],
- ],
- ],
- ],
- 'InvalidList' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'string',
- ],
- ],
- 'ValidList' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'string',
- ],
- ],
+ 'BatchId' => ['type' => 'string'],
],
],
],
@@ -2037,42 +1186,48 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.ParamBatchIdInvalid', 'errorMessage' => 'Parameter batchId is invalid.', 'description' => '参数批次ID无效。'],
+ ['errorCode' => 'iot.vision.BatchHasCreated', 'errorMessage' => 'This batch task has been created.', 'description' => '该批次已经创建设备。'],
+ ['errorCode' => 'iot.vision.DeviceNameChecking', 'errorMessage' => 'Device names are checking.', 'description' => '设备名称校验未完成。'],
+ ['errorCode' => 'iot.vision.DeviceNameCheckFailed', 'errorMessage' => 'Device names check failed.', 'description' => '设备名称校验失败。'],
+ ['errorCode' => 'iot.vision.ActiveCodeInsufficient', 'errorMessage' => 'Active code quota is insufficient.', 'description' => '可用激活码不足。'],
+ ['errorCode' => 'iot.vision.DevicesCountExceedLimit', 'errorMessage' => 'The devices count exceed the limit.', 'description' => '创建设备数量超过限制。'],
+ ['errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit', 'errorMessage' => 'Devices count exceed the limit of unreleased product.', 'description' => '创建设备数量超过未发布产品的试产设备数量。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryDeviceDetail' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDeviceByBatchId'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GenerateDeviceByBatchId',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"BatchId\\": \\"\\"\\n }\\n}","type":"json"}]',
+ ],
+ 'GetAccountById' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -2081,53 +1236,27 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'ProductKey',
- 'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
- ],
- [
- 'name' => 'DeviceName',
+ 'name' => 'OpenId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['description' => '三方平台用户ID。'."\n"
+ .'><notice> 如果传入该参数,需同时传入**OpenIdAppKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => '60yqjd1**************************561da00851'],
],
[
- 'name' => 'IotId',
+ 'name' => 'OpenIdAppKey',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['description' => '三方平台颁发的AppKey。'."\n"
+ ."\n"
+ .'><notice> 如果传入该参数,需同时传入**OpenId**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => '76****57'],
],
[
- 'name' => 'ProjectId',
+ 'name' => 'IdentityId',
'in' => 'query',
- 'schema' => [
- 'description' => '项目ID。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'a123qs*****sy4QU',
- ],
+ 'schema' => ['description' => '用户身份ID。'."\n"
+ ."\n"
+ .'><notice> **IdentityId**作为用户标识符,和**OpenId**与**OpenIdAppKey**组合是一一对应的关系。如果传入该参数,则无需传入**OpenId**和**OpenIdAppKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => '5035op97******************a63994'],
],
],
'responses' => [
@@ -2135,184 +1264,52 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Unexpected internal error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => '设备状态。取值:'."\n"
- ."\n"
- .'- **ONLINE**:设备在线。'."\n"
- .'- **OFFLINE**:设备离线。'."\n"
- .'- **UNACTIVE**:设备未激活。'."\n"
- .'- **DISABLE**:设备已禁用。',
- 'type' => 'string',
- 'example' => 'ONLINE',
- ],
- 'ProductName' => [
- 'description' => '设备所属产品的名称。',
- 'type' => 'string',
- 'example' => 'test',
- ],
- 'DeviceName' => [
- 'description' => '设备名称。',
- 'type' => 'string',
- 'example' => 'Device01',
- ],
- 'CreateTime' => [
- 'description' => '设备的创建时间,13位毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1834500000000',
- ],
- 'FirmwareVersion' => [
- 'description' => '设备默认(default)OTA模块的版本号。',
- 'type' => 'string',
- 'example' => 'V1.0.0.0',
- ],
- 'OnlineTime' => [
- 'description' => '设备最后上线时间,13位毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '2298700000000',
- ],
- 'ActiveTime' => [
- 'description' => '设备的激活时间,13位毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1934500000000',
- ],
- 'ProductKey' => [
- 'description' => '设备所属产品的**ProductKey**。',
- 'type' => 'string',
- 'example' => 'a1Bw******',
- ],
- 'IpAddress' => [
- 'description' => '设备的IP地址。',
- 'type' => 'string',
- 'example' => '10.***.***.***',
- ],
- 'NodeType' => [
- 'description' => '节点类型,取值:'."\n"
- ."\n"
- .'- **0**:设备。设备不能挂载子设备。'."\n"
- .'- **1**:网关。网关可以挂载子设备。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '0',
- ],
- 'Region' => [
- 'description' => '设备所在地域的ID。',
- 'type' => 'string',
- 'example' => 'cn-shanghai',
- ],
- 'DeviceSecret' => [
- 'description' => '设备密钥。',
- 'type' => 'string',
- 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****',
- ],
- 'Nickname' => [
- 'description' => '设备的备注名称。',
- 'type' => 'string',
- 'example' => 'detectors_in_beijing',
- ],
- 'IotId' => [
- 'description' => '设备ID。',
- 'type' => 'string',
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'LoginName' => ['description' => '账号登录名称。', 'type' => 'string', 'example' => '18*******20'],
+ 'Email' => ['description' => '邮箱地址。', 'type' => 'string', 'example' => '******'],
+ 'IdentityId' => ['description' => '用户身份ID。', 'type' => 'string', 'example' => '5035op97******************a63994'],
+ 'LastLoginTime' => ['description' => '最后登录时间,13位毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1700209499000'],
+ 'GmtCreate' => ['description' => '账号创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1700189358000'],
+ 'NickName' => ['description' => '用户昵称。', 'type' => 'string', 'example' => '18*******20'],
+ 'GmtModified' => ['description' => '账号修改时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1700209499000'],
+ 'Phone' => ['description' => '手机号。', 'type' => 'string', 'example' => '18*******20'],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNameFormatInvalid',
- 'errorMessage' => 'Device name format invalid.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductKeyFormatInvalid',
- 'errorMessage' => 'Product key format invalid.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.GetAccountInfoFailed', 'errorMessage' => 'Get account info failed.', 'description' => '查询账号详情信息失败。'],
+ ['errorCode' => 'iot.vision.AccountNotFound', 'errorMessage' => 'Account not found.', 'description' => '找不到账号。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"Device01\\",\\n \\"CreateTime\\": 1834500000000,\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"OnlineTime\\": 2298700000000,\\n \\"ActiveTime\\": 1934500000000,\\n \\"ProductKey\\": \\"a1Bw******\\",\\n \\"IpAddress\\": \\"10.***.***.***\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"IotId\\": \\"C47T6xwp6ms4bNlkHRWCg4****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<QueryDeviceDetailResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Status>ONLINE</Status>\\n <ProductName>test</ProductName>\\n <DeviceSecret>mz2Canp4GB7qRVf1OYPNtRqB2anu****</DeviceSecret>\\n <CreateTime>1834500000000</CreateTime>\\n <OnlineTime>2298700000000</OnlineTime>\\n <FirmwareVersion>V1.0.0.0</FirmwareVersion>\\n <IotId>C47T6xwp6ms4bNlkHRWCg4****</IotId>\\n <ActiveTime>1934500000000</ActiveTime>\\n <NodeType>0</NodeType>\\n <Region>cn-shanghai</Region>\\n <IpAddress>10.***.***.***</IpAddress>\\n <ProductKey>a1Bw******</ProductKey>\\n <Nickname>detectors_in_beijing</Nickname>\\n <DeviceName>Device01</DeviceName>\\n</Data>\\n<Success>true</Success>\\n</QueryDeviceDetailResponse>","errorExample":""}]',
- 'title' => 'QueryDeviceDetail',
- 'summary' => '调用该接口查询指定设备的详细信息。',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"LoginName\\": \\"18*******20\\",\\n \\"Email\\": \\"******\\",\\n \\"IdentityId\\": \\"5035op97******************a63994\\",\\n \\"LastLoginTime\\": 1700209499000,\\n \\"GmtCreate\\": 1700189358000,\\n \\"NickName\\": \\"18*******20\\",\\n \\"GmtModified\\": 1700209499000,\\n \\"Phone\\": \\"18*******20\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetAccountByIdResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <LastLoginTime>1700209499000</LastLoginTime>\\n <LoginName>18*******20</LoginName>\\n <GmtCreate>1700189358000</GmtCreate>\\n <Email>******</Email>\\n <Phone>18*******20</Phone>\\n <GmtModified>1700209499000</GmtModified>\\n <IdentityId>5035op97******************a63994</IdentityId>\\n <NickName>18*******20</NickName>\\n</Data>\\n<Success>true</Success>\\n</GetAccountByIdResponse>","errorExample":""}]',
+ 'title' => 'GetAccountById',
+ 'summary' => '调用该接口根据用户身份ID(IdentityId)或三方平台用户ID(OpenId)查询用户账号信息。',
'description' => '## QPS限制'."\n"
."\n"
.'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
@@ -2321,16 +1318,29 @@
'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'QueryFreeStorage' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccountById'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetAccountById',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'GetDeviceStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -2341,26 +1351,26 @@
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
],
'responses' => [
@@ -2368,210 +1378,83 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Unexpected internal error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
+ 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'Type' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'Months' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Expired' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'RemainQuota' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'Consumed' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Lifecycle' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
+ 'Status' => ['description' => '设备当前状态。'."\n"
+ ."\n"
+ .'- **ONLINE**:设备在线。'."\n"
+ .'- **OFFLINE**:设备离线。'."\n"
+ .'- **UNACTIVE**:设备未激活。'."\n"
+ .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.FreeStorageQuotaLimit',
- 'errorMessage' => 'No enough free storage quota or exceed limit.',
- ],
- [
- 'errorCode' => 'iot.vision.GetDeviceInfoFailed',
- 'errorMessage' => 'Get device info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryDevicesDownloadUrl' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetDeviceStatusResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Status>ONLINE</Status>\\n</Data>\\n<Success>true</Success>\\n</GetDeviceStatusResponse>","errorExample":""}]',
+ 'title' => 'GetDeviceStatus',
+ 'summary' => '调用该接口查询设备的状态。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceStatus'],
],
],
- 'systemTags' => [],
- 'parameters' => [
+ 'ramActions' => [
[
- 'name' => 'ProductKey',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- [
- 'name' => 'BatchId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- ],
- 'responses' => [
- 200 => [
- 'schema' => [
- 'type' => 'object',
- 'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
- 'Data' => [
- 'type' => 'object',
- 'properties' => [
- 'OssDownloadUrl' => [
- 'type' => 'string',
- ],
- ],
- ],
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetDeviceStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
],
],
],
],
- 'errorCodes' => [
- 400 => [
- [
- 'errorCode' => 'iot.system.SystemException',
- 'errorMessage' => 'An internal error occurred. Try again later.',
- ],
- [
- 'errorCode' => 'iot.common.AuthActionPermissionDeny',
- 'errorMessage' => 'The authorization fails.',
- ],
- ],
- 403 => [
- [
- 'errorCode' => 'iot.lv.requestAuthError',
- 'errorMessage' => 'Request auth error.',
- ],
- [
- 'errorCode' => 'iot.lv.requestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- ],
- ],
],
- 'QueryGenerateDevicesInfoList' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'GetSubDeviceList' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -2582,40 +1465,36 @@
[
'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '50',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值是50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '1', 'example' => '5'],
],
[
- 'name' => 'BatchId',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['description' => '网关设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
- 'name' => 'PageNo',
+ 'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '1000',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '网关设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
- 'name' => 'ProjectId',
+ 'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['description' => '网关设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
+ ],
+ [
+ 'name' => 'PageNo',
+ 'in' => 'query',
+ 'schema' => ['description' => '指定显示返回结果中的第几页,最大值为100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'],
],
],
'responses' => [
@@ -2623,102 +1502,93 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
+ 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'PageNo' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PageSize' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Total' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'ListData' => [
+ 'PageNo' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'],
+ 'SubDeviceList' => [
+ 'description' => '子设备列表信息。',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
- 'DeviceSecret' => [
- 'type' => 'string',
- ],
+ 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'wse5******'],
+ 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'device-test'],
+ 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'qswdfrttgg*********'],
],
+ 'description' => '',
],
],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.common.RamActionPermissionDeny',
- 'errorMessage' => 'You do not have the RAM permission.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryGenerateDevicesRecord' => [
- 'methods' => [
- 'post',
- 'get',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 1,\\n \\"SubDeviceList\\": [\\n {\\n \\"ProductKey\\": \\"wse5******\\",\\n \\"DeviceName\\": \\"device-test\\",\\n \\"IotId\\": \\"qswdfrttgg*********\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetSubDeviceListResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <PageSize/>\\n <Total>1</Total>\\n <PageNo/>\\n <SubDeviceList>\\n <IotId>qswdfrttgg*********</IotId>\\n <ProductKey>wse5******</ProductKey>\\n <DeviceName>device-test</DeviceName>\\n </SubDeviceList>\\n</Data>\\n<Success>true</Success>\\n</GetSubDeviceListResponse>","errorExample":""}]',
+ 'title' => 'GetSubDeviceList',
+ 'summary' => '调用该接口查询网关设备的子设备列表。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSubDeviceList'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetSubDeviceList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'GetThingEventSnapshot' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -2727,59 +1597,33 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'PageSize',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '指定返回结果中每页显示的记录数量,最大值是100。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '1',
- ],
+ 'name' => 'Identifier',
+ 'in' => 'query',
+ 'schema' => ['description' => '物模型的事件标识符。', 'type' => 'string', 'required' => true, 'example' => 'AlarmType'],
],
[
- 'name' => 'PageNo',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '指定显示返回结果中的第几页,最大值为1,000。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '1000',
- 'minimum' => '1',
- 'example' => '1',
- ],
+ 'name' => 'ProductKey',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
- 'name' => 'StartTime',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '起始时间的毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => true,
- 'maximum' => '9999999999999',
- 'minimum' => '1',
- 'example' => '1690819200000',
- ],
+ 'name' => 'DeviceName',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
- 'name' => 'EndTime',
- 'in' => 'formData',
- 'schema' => [
- 'description' => '结束时间的毫秒级时间戳。'."\n"
- ."\n"
- .'><notice> 起止时间间隔不能超过30天。'."\n"
- .'></notice>',
- 'type' => 'integer',
- 'format' => 'int64',
- 'required' => true,
- 'maximum' => '9999999999999',
- 'minimum' => '1',
- 'example' => '1659283200000',
- ],
+ 'name' => 'IotId',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
],
'responses' => [
@@ -2787,289 +1631,198 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => '调用结果状态码:'."\n"
- .'- 调用成功,返回200。'."\n"
- .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E5******-4***-***B-8**E-D3********65',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Unexpected internal error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
- 'description' => '调用成功,返回的结果。',
- 'type' => 'object',
- 'properties' => [
- 'PageNo' => [
- 'description' => '当前页码。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'PageSize' => [
- 'description' => '每页显示的记录数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Total' => [
- 'description' => '总记录数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '5',
- ],
- 'ListData' => [
- 'description' => '设备注册记录的详细信息。',
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'ApplyDeviceCount' => [
- 'description' => '申请的设备数量。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '133',
- ],
- 'SpecCode' => [
- 'description' => '激活码规格Code。取值:'."\n"
- ."\n"
- .'- **Consumer_IPC_512Kbps**:消费类IPC 512Kbps。'."\n"
- .'- **Consumer_IPC_1Mbps**:消费类IPC 1Mbps。'."\n"
- .'- **Consumer_IPC_2Mbps**:消费类IPC 2Mbps。'."\n"
- .'- **Consumer_IPC_4Mbps**:消费类IPC 4Mbps。'."\n"
- .'- **Industry_IPC**:行业类IPC。'."\n"
- .'- **NVR_Less64**:NVR小于等于64路。'."\n"
- .'- **NVR_Higher64**:NVR大于64路。',
- 'type' => 'string',
- 'example' => 'Consumer_IPC_512Kbps',
- ],
- 'ProductKey' => [
- 'description' => '设备所属产品的**ProductKey**。',
- 'type' => 'string',
- 'example' => 'a3w******',
- ],
- 'ProductName' => [
- 'description' => '设备所属产品的名称。',
- 'type' => 'string',
- 'example' => '电饭煲',
- ],
- 'CreateTime' => [
- 'description' => '批量注册设备任务的提交时间,格式为毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1690819200000',
- ],
- 'BatchStatus' => [
- 'description' => '批量注册的批次状态。'."\n"
- ."\n"
- .'- **CREATE**:正在创建设备。'."\n"
- .'- **CREATE_SUCCESS**:申请单中的所有设备创建成功。'."\n"
- .'- **CREATE_FAILED**:申请单中有设备创建失败。',
- 'type' => 'string',
- 'example' => 'CREATE',
- ],
- 'NetworkType' => [
- 'description' => '产品的连网方式。取值:'."\n"
- ."\n"
- .'- **WIFI**:Wi-Fi。'."\n"
- .'- **CELLULAR**:蜂窝GPRS/3G/4G/5G。'."\n"
- .'- **ETHERNET**:以太网。'."\n"
- .'- **OTHER**:其他网络类型。',
- 'type' => 'string',
- 'example' => 'WIFI',
- ],
- 'OperateUid' => [
- 'description' => '操作账号的UID。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '110000000000',
- ],
- 'SuccessCount' => [
- 'description' => '批量注册设备成功的设备数量。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '5',
- ],
- 'BatchId' => [
- 'description' => '申请的批次ID。',
- 'type' => 'string',
- 'example' => '1508******195',
- ],
- ],
- ],
- ],
+ 'description' => '调用成功,返回的数据。',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'EventType' => ['description' => '事件类型。'."\n"
+ ."\n"
+ .'- **info**:信息。'."\n"
+ .'- **alert**:告警。'."\n"
+ .'- **error**:故障。', 'type' => 'string', 'example' => 'alert'],
+ 'EventCode' => ['description' => '事件Code。', 'type' => 'string', 'example' => 'IntelligentAlarm'],
+ 'Identifier' => ['description' => '事件标识符。', 'type' => 'string', 'example' => 'IntelligentAlarm'],
+ 'Timestamp' => ['description' => '事件发生的时间戳。单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1700010288668'],
+ 'EventBody' => ['description' => '事件内容。', 'type' => 'string', 'example' => '{\\"EventList \\":[{\\"AlarmPicID \\":\\"\\",\\"EventTime \\":\\"1700010288542 \\",\\"AlarmType \\":1,\\"AlarmPicSize \\":1,\\"Data \\":\\"test \\"}]}'],
+ 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
+ ],
+ 'description' => '',
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelNotExist', 'errorMessage' => 'Thing model not exist.', 'description' => '物模型功能不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelIdentifierNotExist', 'errorMessage' => 'Thing model identifier not exist.', 'description' => '物模型功能标识符不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
+ ['errorCode' => 'iot.vision.GetThingEventSnapshotFailed', 'errorMessage' => 'Get thing event snapshot failed.', 'description' => '查询物模型事件快照失败。'],
+ ['errorCode' => 'iot.vision.ThingEventNotFound', 'errorMessage' => 'Thing event not found.', 'description' => '物模型事件不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E5******-4***-***B-8**E-D3********65\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 5,\\n \\"ListData\\": [\\n {\\n \\"ApplyDeviceCount\\": 133,\\n \\"SpecCode\\": \\"Consumer_IPC_512Kbps\\",\\n \\"ProductKey\\": \\"a3w******\\",\\n \\"ProductName\\": \\"电饭煲\\",\\n \\"CreateTime\\": 1690819200000,\\n \\"BatchStatus\\": \\"CREATE\\",\\n \\"NetworkType\\": \\"WIFI\\",\\n \\"OperateUid\\": 110000000000,\\n \\"SuccessCount\\": 5,\\n \\"BatchId\\": \\"1508******195\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<QueryGenerateDevicesRecordResponse>\\n<RequestId>E5******-4***-***B-8**E-D3********65</RequestId>\\n<Data>\\n <PageSize>1</PageSize>\\n <Total>5</Total>\\n <PageNo>1</PageNo>\\n <ListData>\\n <SpecCode>Consumer_IPC_512Kbps</SpecCode>\\n <OperateUid>110000000000</OperateUid>\\n <ProductName>电饭煲</ProductName>\\n <NetworkType>WIFI</NetworkType>\\n <BatchStatus>CREATE</BatchStatus>\\n <CreateTime>1690819200000</CreateTime>\\n <BatchId>1508******195</BatchId>\\n <SuccessCount>5</SuccessCount>\\n <ProductKey>a3w******</ProductKey>\\n <ApplyDeviceCount>133</ApplyDeviceCount>\\n </ListData>\\n</Data>\\n<Code>200</Code>\\n<Success>true</Success>\\n</QueryGenerateDevicesRecordResponse>","errorExample":""}]',
- 'title' => 'QueryGenerateDevicesRecord',
- 'summary' => '调用该接口查询设备批量注册的记录信息。',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"EventType\\": \\"alert\\",\\n \\"EventCode\\": \\"IntelligentAlarm\\",\\n \\"Identifier\\": \\"IntelligentAlarm\\",\\n \\"Timestamp\\": 1700010288668,\\n \\"EventBody\\": \\"{\\\\\\\\\\\\\\"EventList \\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"AlarmPicID \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTime \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1700010288542 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AlarmType \\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"AlarmPicSize \\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Data \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"test \\\\\\\\\\\\\\"}]}\\",\\n \\"IotId\\": \\"C47T6xwp6ms4bNlkHRWCg4****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetThingEventSnapshotResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <IotId>C47T6xwp6ms4bNlkHRWCg4****</IotId>\\n <Identifier>IntelligentAlarm</Identifier>\\n <EventBody>{\\"EventList \\":[{\\"AlarmPicID \\":\\"\\",\\"EventTime \\":\\"1700010288542 \\",\\"AlarmType \\":1,\\"AlarmPicSize \\":1,\\"Data \\":\\"test \\"}]}</EventBody>\\n <EventType>alert</EventType>\\n <Timestamp>1700010288668</Timestamp>\\n <EventCode>IntelligentAlarm</EventCode>\\n</Data>\\n<Success>true</Success>\\n</GetThingEventSnapshotResponse>","errorExample":""}]',
+ 'title' => '查询物模型事件的快照',
'description' => '## QPS限制'."\n"
."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
."\n"
.'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'QueryStorageCommodityList' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingEventSnapshot'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetThingEventSnapshot',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'GetThingPropertySnapshot' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
],
],
'systemTags' => [],
- 'parameters' => [],
+ 'parameters' => [
+ [
+ 'name' => 'ProductKey',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
+ ],
+ [
+ 'name' => 'DeviceName',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
+ ],
+ [
+ 'name' => 'IotId',
+ 'in' => 'query',
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
+ ],
+ ],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
- 'Data' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'Specification' => [
- 'type' => 'string',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'Months' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityName' => [
- 'type' => 'string',
- ],
- 'Lifecycle' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- ],
- ],
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'Data' => ['description' => '调用成功,返回的属性数据。', 'type' => 'string', 'example' => '{\\"StreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"MotionDetectSensitivity\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"ImageFlipState\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"SubStreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmSwitch\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmFrequencyLevel\\":{\\"time\\":1700009930921,\\"value\\":\\"10\\"}}'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelNotExist', 'errorMessage' => 'Thing model not exist.', 'description' => '物模型功能不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"StreamVideoQuality\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"MotionDetectSensitivity\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"ImageFlipState\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"SubStreamVideoQuality\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"AlarmSwitch\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"AlarmFrequencyLevel\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1700009930921,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"10\\\\\\\\\\\\\\"}}\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetThingPropertySnapshotResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>{\\"StreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"MotionDetectSensitivity\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"ImageFlipState\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"SubStreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmSwitch\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmFrequencyLevel\\":{\\"time\\":1700009930921,\\"value\\":\\"10\\"}}</Data>\\n<Success>true</Success>\\n</GetThingPropertySnapshotResponse>","errorExample":""}]',
+ 'title' => 'GetThingPropertySnapshot',
+ 'summary' => '调用该接口查询指定设备的所有物模型属性快照,返回物模型属性的最新数据。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingPropertySnapshot'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetThingPropertySnapshot',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'InvokeThingService' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3078,45 +1831,38 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'DeviceNoOwner',
+ 'name' => 'Identifier',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['description' => '物模型的服务标识符。', 'type' => 'string', 'required' => true, 'example' => 'SetNum'],
],
[
- 'name' => 'OrderId',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
- 'name' => 'ProductKey',
+ 'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
- 'name' => 'DeviceName',
+ 'name' => 'Args',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。', 'type' => 'string', 'required' => false, 'example' => '{"param1":1}'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
],
'responses' => [
@@ -3124,152 +1870,88 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
+ 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'Data' => ['description' => '调用服务结果,JSON字符串。', 'type' => 'string', 'example' => '{"param1":1}'],
+ 'MessageId' => ['description' => '云端向设备下发服务调用的消息ID。', 'type' => 'string', 'example' => 'abcabcabc1234****'],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelNotExist', 'errorMessage' => 'Thing model not exist.', 'description' => '物模型功能不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelIdentifierNotExist', 'errorMessage' => 'Thing model identifier not exist.', 'description' => '物模型功能标识符不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
+ ['errorCode' => 'iot.vision.ServiceParamNotExist', 'errorMessage' => 'Invoke service failed as service param not exist.', 'description' => '物模型服务参数不存在。'],
+ ['errorCode' => 'iot.vision.ServiceNotFound', 'errorMessage' => 'Invoke service failed as service not found.', 'description' => '物模型服务不存在。'],
+ ['errorCode' => 'iot.vision.DeviceInactive', 'errorMessage' => 'Device inactive.', 'description' => '设备未激活。'],
+ ['errorCode' => 'iot.vision.DevcieOffline', 'errorMessage' => 'Device offline.', 'description' => '设备不在线。'],
+ ['errorCode' => 'iot.vision.ServiceEnumSpecError', 'errorMessage' => 'Service enum spec error.', 'description' => '物模型服务枚举参数错误。'],
+ ['errorCode' => 'iot.vision.ServiceResponseTimeout', 'errorMessage' => 'Invoke service response timeout.', 'description' => '超时未收到设备响应。'],
+ ['errorCode' => 'iot.vision.InvokeServiceFailed', 'errorMessage' => 'Invoke service failed:%s', 'description' => '物模型服务调用失败。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'QueryStorageOrderList' => [
- 'methods' => [
- 'post',
- 'get',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Data\\": \\"{\\\\\\"param1\\\\\\":1}\\",\\n \\"MessageId\\": \\"abcabcabc1234****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<InvokeThingServiceResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Data>{\\"param1\\":1}</Data>\\n <MessageId>abcabcabc1234****</MessageId>\\n</Data>\\n<Success>true</Success>\\n</InvokeThingServiceResponse>","errorExample":""}]',
+ 'title' => 'InvokeThingService',
+ 'summary' => '调用该接口在单个设备上调用指定服务。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InvokeThingService'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:InvokeThingService',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'ListBindingAccountByDevice' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3278,59 +1960,47 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'DeviceNoOwner',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
- ],
- [
'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '200',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值是50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '1', 'example' => '5'],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
[
'name' => 'PageNo',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '1000',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '指定显示返回结果中的第几页,最大值为100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'],
+ ],
+ [
+ 'name' => 'Owned',
+ 'in' => 'query',
+ 'schema' => ['description' => '用户和设备绑定类型。'."\n"
+ ."\n"
+ .'- **0**:表示分享用户。'."\n"
+ .'- **1**:表示管理员用户。'."\n"
+ .'- 不传则查询所有用户。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1', 'minimum' => '0', 'example' => '0'],
],
],
'responses' => [
@@ -3338,172 +2008,90 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Unexpected internal error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
+ 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'PageNo' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PageSize' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Total' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PageCount' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'StorageOrderList' => [
+ 'PageNo' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'AccountList' => [
+ 'description' => '用户列表信息。',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'IdentityAlias' => ['description' => '用户显示名称。', 'type' => 'string', 'example' => '18*******20'],
+ 'IdentityId' => ['description' => '用户身份ID。', 'type' => 'string', 'example' => '5035op97******************a63994'],
+ 'BindTime' => ['description' => '设备绑定用户的时间,13位毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '2222220000000'],
],
+ 'description' => '',
],
],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
+ ['errorCode' => 'iot.vision.QueryBindingAccountFailed', 'errorMessage' => 'Query binding account failed.', 'description' => '查询绑定的用户失败。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'TransferStorageOrder' => [
- 'methods' => [
- 'post',
- 'get',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 1,\\n \\"AccountList\\": [\\n {\\n \\"IdentityAlias\\": \\"18*******20\\",\\n \\"IdentityId\\": \\"5035op97******************a63994\\",\\n \\"BindTime\\": 2222220000000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListBindingAccountByDeviceResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <PageSize>1</PageSize>\\n <Total>1</Total>\\n <PageNo>1</PageNo>\\n <AccountList>\\n <BindTime>1700209801000</BindTime>\\n <IdentityId>5035op97******************a63994</IdentityId>\\n <IdentityAlias>18*******20</IdentityAlias>\\n </AccountList>\\n</Data>\\n<Success>true</Success>\\n</ListBindingAccountByDeviceResponse>","errorExample":""}]',
+ 'title' => 'ListBindingAccountByDevice',
+ 'summary' => '调用该接口查询指定设备所绑定的用户列表。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListBindingAccountByDevice'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ListBindingAccountByDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'ListBindingDeviceByAccount' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3512,104 +2100,34 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'EventRecordDuration',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '30',
- 'minimum' => '0',
- 'default' => '10',
- ],
- ],
- [
- 'name' => 'DstIotId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- [
- 'name' => 'SupportCrossIdentityTransfer',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
- ],
- [
- 'name' => 'SrcIotId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- [
- 'name' => 'SrcOrderId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
- ],
- [
- 'name' => 'EventRecordProlong',
+ 'name' => 'OpenId',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'ImmediateUse',
+ 'name' => 'OpenIdAppKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'UserName',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '1'],
],
[
- 'name' => 'UserId',
+ 'name' => 'IdentityId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'EnableDefaultPlan',
+ 'name' => 'PageNo',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'false',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1'],
],
[
- 'name' => 'PreRecordDuration',
+ 'name' => 'SubDevice',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '5',
- 'minimum' => '0',
- 'default' => '0',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false],
],
],
'responses' => [
@@ -3617,83 +2135,30 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'Status' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Copies' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Specification' => [
- 'type' => 'string',
- ],
- 'RecordType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'CommodityCode' => [
- 'type' => 'string',
- ],
- 'PreConsume' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'EndTimeUTC' => [
- 'type' => 'string',
- ],
- 'UserId' => [
- 'type' => 'string',
- ],
- 'IdentityId' => [
- 'type' => 'string',
- ],
- 'StartTimeUTC' => [
- 'type' => 'string',
- ],
- 'EndTime' => [
- 'type' => 'string',
- ],
- 'StartTime' => [
- 'type' => 'string',
- ],
- 'OutOrderNo' => [
- 'type' => 'string',
- ],
- 'Price' => [
- 'type' => 'string',
- ],
- 'OrderType' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PaymentStatus' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'UserName' => [
- 'type' => 'string',
- ],
- 'OrderId' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
+ 'PageNo' => ['type' => 'integer', 'format' => 'int32'],
+ 'PageSize' => ['type' => 'integer', 'format' => 'int32'],
+ 'Total' => ['type' => 'integer', 'format' => 'int64'],
+ 'PageCount' => ['type' => 'integer', 'format' => 'int32'],
+ 'DeviceList' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'ProductKey' => ['type' => 'string'],
+ 'Owned' => ['type' => 'integer', 'format' => 'int32'],
+ 'DeviceName' => ['type' => 'string'],
+ 'NodeType' => ['type' => 'string'],
+ 'BindTime' => ['type' => 'integer', 'format' => 'int64'],
+ 'IotId' => ['type' => 'string'],
+ ],
+ ],
],
],
],
@@ -3703,70 +2168,46 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNoOwner',
- 'errorMessage' => 'Device has no owner.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceOwnerChanged',
- 'errorMessage' => 'Device owner changed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidStorageOrder',
- 'errorMessage' => 'Invalid storage order.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderGetLockFailed',
- 'errorMessage' => 'Get storage order lock failed try again later.',
- ],
- [
- 'errorCode' => 'iot.vision.StorageOrderStatusInvalid',
- 'errorMessage' => 'Storage order status invalid.',
- ],
- [
- 'errorCode' => 'iot.vision.TargetDeviceOwnerDifferent',
- 'errorMessage' => 'Target device owner is different.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.QueryBindingDeviceFailed', 'errorMessage' => 'Query binding device failed.', 'description' => '查询绑定设备列表失败。'],
+ ['errorCode' => 'iot.vision.GetAccountInfoFailed', 'errorMessage' => 'Get account info failed.', 'description' => '查询账号详情信息失败。'],
+ ['errorCode' => 'iot.vision.AccountNotFound', 'errorMessage' => 'Account not found.', 'description' => '找不到账号。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'UploadDeviceNameList' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListBindingDeviceByAccount'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ListBindingDeviceByAccount',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Total\\": 0,\\n \\"PageCount\\": 0,\\n \\"DeviceList\\": [\\n {\\n \\"ProductKey\\": \\"\\",\\n \\"Owned\\": 0,\\n \\"DeviceName\\": \\"\\",\\n \\"NodeType\\": \\"\\",\\n \\"BindTime\\": 0,\\n \\"IotId\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'QueryBatchStatus' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3775,33 +2216,19 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'DeviceNames',
- 'in' => 'formData',
- 'style' => 'repeatList',
- 'schema' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'string',
- ],
- 'required' => true,
- 'maxItems' => 10000,
- ],
+ 'name' => 'BatchId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
'name' => 'ProjectId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => true,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
],
'responses' => [
@@ -3809,49 +2236,31 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'BatchId' => [
- 'type' => 'string',
- ],
+ 'Status' => ['type' => 'string'],
'InvalidDetailList' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'ErrorMsg' => [
- 'type' => 'string',
- ],
+ 'DeviceName' => ['type' => 'string'],
+ 'ErrorMsg' => ['type' => 'string'],
],
],
],
- 'RepeatedDeviceNameList' => [
+ 'InvalidList' => [
'type' => 'array',
- 'items' => [
- 'type' => 'string',
- ],
+ 'items' => ['type' => 'string'],
],
- 'InvalidDeviceNameList' => [
+ 'ValidList' => [
'type' => 'array',
- 'items' => [
- 'type' => 'string',
- ],
+ 'items' => ['type' => 'string'],
],
],
],
@@ -3861,54 +2270,41 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.ActiveCodeInsufficient',
- 'errorMessage' => 'Active code quota is insufficient.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesCountExceedLimit',
- 'errorMessage' => 'The devices count exceed the limit.',
- ],
- [
- 'errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit',
- 'errorMessage' => 'Devices count exceed the limit of unreleased product.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'GetThingEventSnapshot' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryBatchStatus'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryBatchStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"\\",\\n \\"InvalidDetailList\\": [\\n {\\n \\"DeviceName\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\"\\n }\\n ],\\n \\"InvalidList\\": [\\n \\"\\"\\n ],\\n \\"ValidList\\": [\\n \\"\\"\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'QueryDeviceDetail' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -3917,53 +2313,33 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'Identifier',
- 'in' => 'query',
- 'schema' => [
- 'description' => '物模型的事件标识符。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'AlarmType',
- ],
- ],
- [
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
+ ],
+ [
+ 'name' => 'ProjectId',
+ 'in' => 'query',
+ 'schema' => ['description' => '项目ID。', 'type' => 'string', 'required' => true, 'example' => 'a123qs*****sy4QU'],
],
],
'responses' => [
@@ -3971,147 +2347,70 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Unexpected internal error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
'description' => '调用成功,返回的数据。',
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'EventType' => [
- 'description' => '事件类型。'."\n"
- ."\n"
- .'- **info**:信息。'."\n"
- .'- **alert**:告警。'."\n"
- .'- **error**:故障。',
- 'type' => 'string',
- 'example' => 'alert',
- ],
- 'EventCode' => [
- 'description' => '事件Code。',
- 'type' => 'string',
- 'example' => 'IntelligentAlarm',
- ],
- 'Identifier' => [
- 'description' => '事件标识符。',
- 'type' => 'string',
- 'example' => 'IntelligentAlarm',
- ],
- 'Timestamp' => [
- 'description' => '事件发生的时间戳。单位为毫秒。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1700010288668',
- ],
- 'EventBody' => [
- 'description' => '事件内容。',
- 'type' => 'string',
- 'example' => '{\\"EventList \\":[{\\"AlarmPicID \\":\\"\\",\\"EventTime \\":\\"1700010288542 \\",\\"AlarmType \\":1,\\"AlarmPicSize \\":1,\\"Data \\":\\"test \\"}]}',
- ],
- 'IotId' => [
- 'description' => '设备ID。',
- 'type' => 'string',
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
- ],
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['description' => '设备状态。取值:'."\n"
+ ."\n"
+ .'- **ONLINE**:设备在线。'."\n"
+ .'- **OFFLINE**:设备离线。'."\n"
+ .'- **UNACTIVE**:设备未激活。'."\n"
+ .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'],
+ 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'test'],
+ 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'Device01'],
+ 'CreateTime' => ['description' => '设备的创建时间,13位毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1834500000000'],
+ 'FirmwareVersion' => ['description' => '设备默认(default)OTA模块的版本号。', 'type' => 'string', 'example' => 'V1.0.0.0'],
+ 'OnlineTime' => ['description' => '设备最后上线时间,13位毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '2298700000000'],
+ 'ActiveTime' => ['description' => '设备的激活时间,13位毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1934500000000'],
+ 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1Bw******'],
+ 'IpAddress' => ['description' => '设备的IP地址。', 'type' => 'string', 'example' => '10.***.***.***'],
+ 'NodeType' => ['description' => '节点类型,取值:'."\n"
+ ."\n"
+ .'- **0**:设备。设备不能挂载子设备。'."\n"
+ .'- **1**:网关。网关可以挂载子设备。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'],
+ 'Region' => ['description' => '设备所在地域的ID。', 'type' => 'string', 'example' => 'cn-shanghai'],
+ 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****'],
+ 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => 'detectors_in_beijing'],
+ 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelNotExist',
- 'errorMessage' => 'Thing model not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelIdentifierNotExist',
- 'errorMessage' => 'Thing model identifier not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
- [
- 'errorCode' => 'iot.vision.GetThingEventSnapshotFailed',
- 'errorMessage' => 'Get thing event snapshot failed.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingEventNotFound',
- 'errorMessage' => 'Thing event not found.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNameFormatInvalid', 'errorMessage' => 'Device name format invalid.', 'description' => '设备名称格式无效。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
+ ['errorCode' => 'iot.vision.ProductKeyFormatInvalid', 'errorMessage' => 'Product key format invalid.', 'description' => '产品Key格式无效。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"EventType\\": \\"alert\\",\\n \\"EventCode\\": \\"IntelligentAlarm\\",\\n \\"Identifier\\": \\"IntelligentAlarm\\",\\n \\"Timestamp\\": 1700010288668,\\n \\"EventBody\\": \\"{\\\\\\\\\\\\\\"EventList \\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"AlarmPicID \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"EventTime \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1700010288542 \\\\\\\\\\\\\\",\\\\\\\\\\\\\\"AlarmType \\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"AlarmPicSize \\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"Data \\\\\\\\\\\\\\":\\\\\\\\\\\\\\"test \\\\\\\\\\\\\\"}]}\\",\\n \\"IotId\\": \\"C47T6xwp6ms4bNlkHRWCg4****\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"<GetThingEventSnapshotResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <IotId>C47T6xwp6ms4bNlkHRWCg4****</IotId>\\n <Identifier>IntelligentAlarm</Identifier>\\n <EventBody>{\\"EventList \\":[{\\"AlarmPicID \\":\\"\\",\\"EventTime \\":\\"1700010288542 \\",\\"AlarmType \\":1,\\"AlarmPicSize \\":1,\\"Data \\":\\"test \\"}]}</EventBody>\\n <EventType>alert</EventType>\\n <Timestamp>1700010288668</Timestamp>\\n <EventCode>IntelligentAlarm</EventCode>\\n</Data>\\n<Success>true</Success>\\n</GetThingEventSnapshotResponse>","errorExample":""}]',
- 'title' => '查询物模型事件的快照',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"Device01\\",\\n \\"CreateTime\\": 1834500000000,\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"OnlineTime\\": 2298700000000,\\n \\"ActiveTime\\": 1934500000000,\\n \\"ProductKey\\": \\"a1Bw******\\",\\n \\"IpAddress\\": \\"10.***.***.***\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"IotId\\": \\"C47T6xwp6ms4bNlkHRWCg4****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<QueryDeviceDetailResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Status>ONLINE</Status>\\n <ProductName>test</ProductName>\\n <DeviceSecret>mz2Canp4GB7qRVf1OYPNtRqB2anu****</DeviceSecret>\\n <CreateTime>1834500000000</CreateTime>\\n <OnlineTime>2298700000000</OnlineTime>\\n <FirmwareVersion>V1.0.0.0</FirmwareVersion>\\n <IotId>C47T6xwp6ms4bNlkHRWCg4****</IotId>\\n <ActiveTime>1934500000000</ActiveTime>\\n <NodeType>0</NodeType>\\n <Region>cn-shanghai</Region>\\n <IpAddress>10.***.***.***</IpAddress>\\n <ProductKey>a1Bw******</ProductKey>\\n <Nickname>detectors_in_beijing</Nickname>\\n <DeviceName>Device01</DeviceName>\\n</Data>\\n<Success>true</Success>\\n</QueryDeviceDetailResponse>","errorExample":""}]',
+ 'title' => 'QueryDeviceDetail',
+ 'summary' => '调用该接口查询指定设备的详细信息。',
'description' => '## QPS限制'."\n"
."\n"
.'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
@@ -4120,16 +2419,29 @@
'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'BatchBindDevice' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDetail'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryDeviceDetail',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'QueryDevicesDownloadUrl' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -4138,55 +2450,14 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'OpenId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
- ],
- [
- 'name' => 'OpenIdAppKey',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
- ],
- [
- 'name' => 'IdentityId',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
- 'name' => 'DeviceList',
+ 'name' => 'BatchId',
'in' => 'query',
- 'style' => 'repeatList',
- 'schema' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'ProductKey' => [
- 'type' => 'string',
- 'required' => false,
- ],
- 'DeviceName' => [
- 'type' => 'string',
- 'required' => false,
- ],
- 'IotId' => [
- 'type' => 'string',
- 'required' => false,
- ],
- ],
- ],
- 'required' => true,
- 'maxItems' => 20,
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
],
'responses' => [
@@ -4194,45 +2465,14 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
- 'BindDeviceList' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'BindResultMessage' => [
- 'type' => 'string',
- ],
- 'ProductKey' => [
- 'type' => 'string',
- ],
- 'BindResultCode' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
- ],
- ],
- ],
+ 'OssDownloadUrl' => ['type' => 'string'],
],
],
],
@@ -4241,66 +2481,38 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetAccountInfoFailed',
- 'errorMessage' => 'Get account info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.AccountNotFound',
- 'errorMessage' => 'Account not found.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
- ],
- [
- 'errorCode' => 'iot.vision.IdentityAppKeyProductNotBind',
- 'errorMessage' => 'The app associated with the identityId does not have permission to access the product.',
- ],
- [
- 'errorCode' => 'iot.vision.BindFailed',
- 'errorMessage' => 'Bind account and device failed.',
- ],
+ ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => ''],
+ ['errorCode' => 'iot.common.AuthActionPermissionDeny', 'errorMessage' => 'The authorization fails.', 'description' => '鉴权失败。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.lv.requestAuthError', 'errorMessage' => 'Request auth error.', 'description' => '认证出错。'],
+ ['errorCode' => 'iot.lv.requestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
],
- 429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicesDownloadUrl'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryDevicesDownloadUrl',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"OssDownloadUrl\\": \\"\\"\\n }\\n}","type":"json"}]',
],
- 'GetAccountById' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'QueryFreeStorage' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -4309,42 +2521,19 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'OpenId',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'description' => '三方平台用户ID。'."\n"
- .'><notice> 如果传入该参数,需同时传入**OpenIdAppKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => '60yqjd1**************************561da00851',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'OpenIdAppKey',
+ 'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'description' => '三方平台颁发的AppKey。'."\n"
- ."\n"
- .'><notice> 如果传入该参数,需同时传入**OpenId**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => '76****57',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'IdentityId',
+ 'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'description' => '用户身份ID。'."\n"
- ."\n"
- .'><notice> **IdentityId**作为用户标识符,和**OpenId**与**OpenIdAppKey**组合是一一对应的关系。如果传入该参数,则无需传入**OpenId**和**OpenIdAppKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => '5035op97******************a63994',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -4352,76 +2541,23 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Unexpected internal error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
- 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'LoginName' => [
- 'description' => '账号登录名称。',
- 'type' => 'string',
- 'example' => '18*******20',
- ],
- 'Email' => [
- 'description' => '邮箱地址。',
- 'type' => 'string',
- 'example' => '******',
- ],
- 'IdentityId' => [
- 'description' => '用户身份ID。',
- 'type' => 'string',
- 'example' => '5035op97******************a63994',
- ],
- 'LastLoginTime' => [
- 'description' => '最后登录时间,13位毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1700209499000',
- ],
- 'GmtCreate' => [
- 'description' => '账号创建时间。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1700189358000',
- ],
- 'NickName' => [
- 'description' => '用户昵称。',
- 'type' => 'string',
- 'example' => '18*******20',
- ],
- 'GmtModified' => [
- 'description' => '账号修改时间。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1700209499000',
- ],
- 'Phone' => [
- 'description' => '手机号。',
- 'type' => 'string',
- 'example' => '18*******20',
- ],
+ 'EndTime' => ['type' => 'string'],
+ 'Type' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTime' => ['type' => 'string'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'Months' => ['type' => 'integer', 'format' => 'int32'],
+ 'Expired' => ['type' => 'integer', 'format' => 'int32'],
+ 'RemainQuota' => ['type' => 'integer', 'format' => 'int32'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'Consumed' => ['type' => 'integer', 'format' => 'int32'],
+ 'Lifecycle' => ['type' => 'integer', 'format' => 'int32'],
],
],
],
@@ -4430,69 +2566,47 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetAccountInfoFailed',
- 'errorMessage' => 'Get account info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.AccountNotFound',
- 'errorMessage' => 'Account not found.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.FreeStorageQuotaLimit', 'errorMessage' => 'No enough free storage quota or exceed limit.', 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['errorCode' => 'iot.vision.GetDeviceInfoFailed', 'errorMessage' => 'Get device info failed.', 'description' => '查询设备详情失败。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"LoginName\\": \\"18*******20\\",\\n \\"Email\\": \\"******\\",\\n \\"IdentityId\\": \\"5035op97******************a63994\\",\\n \\"LastLoginTime\\": 1700209499000,\\n \\"GmtCreate\\": 1700189358000,\\n \\"NickName\\": \\"18*******20\\",\\n \\"GmtModified\\": 1700209499000,\\n \\"Phone\\": \\"18*******20\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetAccountByIdResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <LastLoginTime>1700209499000</LastLoginTime>\\n <LoginName>18*******20</LoginName>\\n <GmtCreate>1700189358000</GmtCreate>\\n <Email>******</Email>\\n <Phone>18*******20</Phone>\\n <GmtModified>1700209499000</GmtModified>\\n <IdentityId>5035op97******************a63994</IdentityId>\\n <NickName>18*******20</NickName>\\n</Data>\\n<Success>true</Success>\\n</GetAccountByIdResponse>","errorExample":""}]',
- 'title' => 'GetAccountById',
- 'summary' => '调用该接口根据用户身份ID(IdentityId)或三方平台用户ID(OpenId)查询用户账号信息。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'GetDeviceStatus' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryFreeStorage'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"EndTime\\": \\"\\",\\n \\"Type\\": 0,\\n \\"StartTime\\": \\"\\",\\n \\"EndTimeUTC\\": \\"\\",\\n \\"Months\\": 0,\\n \\"Expired\\": 0,\\n \\"RemainQuota\\": 0,\\n \\"StartTimeUTC\\": \\"\\",\\n \\"Consumed\\": 0,\\n \\"Lifecycle\\": 0\\n }\\n}","type":"json"}]',
+ ],
+ 'QueryGenerateDevicesInfoList' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -4501,43 +2615,24 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'ProductKey',
+ 'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '1'],
],
[
- 'name' => 'DeviceName',
+ 'name' => 'BatchId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
- 'name' => 'IotId',
+ 'name' => 'PageNo',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '1000', 'minimum' => '1'],
+ ],
+ [
+ 'name' => 'ProjectId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => true],
],
],
'responses' => [
@@ -4545,42 +2640,26 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Unexpected internal error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
- 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'Status' => [
- 'description' => '设备当前状态。'."\n"
- ."\n"
- .'- **ONLINE**:设备在线。'."\n"
- .'- **OFFLINE**:设备离线。'."\n"
- .'- **UNACTIVE**:设备未激活。'."\n"
- .'- **DISABLE**:设备已禁用。',
- 'type' => 'string',
- 'example' => 'ONLINE',
+ 'PageNo' => ['type' => 'integer', 'format' => 'int32'],
+ 'PageSize' => ['type' => 'integer', 'format' => 'int32'],
+ 'Total' => ['type' => 'integer', 'format' => 'int32'],
+ 'ListData' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DeviceName' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
+ 'DeviceSecret' => ['type' => 'string'],
+ ],
+ ],
],
],
],
@@ -4590,77 +2669,43 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.common.RamActionPermissionDeny', 'errorMessage' => 'You do not have the RAM permission.', 'description' => '没有资源访问控制(RAM)权限。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetDeviceStatusResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Status>ONLINE</Status>\\n</Data>\\n<Success>true</Success>\\n</GetDeviceStatusResponse>","errorExample":""}]',
- 'title' => 'GetDeviceStatus',
- 'summary' => '调用该接口查询设备的状态。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'GetSubDeviceList' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryGenerateDevicesInfoList'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryGenerateDevicesInfoList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Total\\": 0,\\n \\"ListData\\": [\\n {\\n \\"DeviceName\\": \\"\\",\\n \\"IotId\\": \\"\\",\\n \\"DeviceSecret\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'QueryGenerateDevicesRecord' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -4670,68 +2715,26 @@
'parameters' => [
[
'name' => 'PageSize',
- 'in' => 'query',
- 'schema' => [
- 'description' => '指定返回结果中每页显示的记录数量,最大值是50。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '50',
- 'minimum' => '1',
- 'example' => '5',
- ],
- ],
- [
- 'name' => 'ProductKey',
- 'in' => 'query',
- 'schema' => [
- 'description' => '网关设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'in' => 'formData',
+ 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值是100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'],
],
[
- 'name' => 'DeviceName',
- 'in' => 'query',
- 'schema' => [
- 'description' => '网关设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'name' => 'PageNo',
+ 'in' => 'formData',
+ 'schema' => ['description' => '指定显示返回结果中的第几页,最大值为1,000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '1000', 'minimum' => '1', 'example' => '1'],
],
[
- 'name' => 'IotId',
- 'in' => 'query',
- 'schema' => [
- 'description' => '网关设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'name' => 'StartTime',
+ 'in' => 'formData',
+ 'schema' => ['description' => '起始时间的毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999999', 'minimum' => '1', 'example' => '1690819200000'],
],
[
- 'name' => 'PageNo',
- 'in' => 'query',
- 'schema' => [
- 'description' => '指定显示返回结果中的第几页,最大值为100。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '1',
- ],
+ 'name' => 'EndTime',
+ 'in' => 'formData',
+ 'schema' => ['description' => '结束时间的毫秒级时间戳。'."\n"
+ ."\n"
+ .'><notice> 起止时间间隔不能超过30天。'."\n"
+ .'></notice>', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999999', 'minimum' => '1', 'example' => '1659283200000'],
],
],
'responses' => [
@@ -4739,233 +2742,142 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['description' => '调用结果状态码:'."\n"
+ .'- 调用成功,返回200。'."\n"
+ .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E5******-4***-***B-8**E-D3********65'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
'Data' => [
- 'description' => '调用成功,返回的数据。',
+ 'description' => '调用成功,返回的结果。',
'type' => 'object',
'properties' => [
- 'PageNo' => [
- 'description' => '当前页码。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'PageSize' => [
- 'description' => '每页显示的记录数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Total' => [
- 'description' => '总记录数。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '1',
- ],
- 'SubDeviceList' => [
- 'description' => '子设备列表信息。',
+ 'PageNo' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'],
+ 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'],
+ 'ListData' => [
+ 'description' => '设备注册记录的详细信息。',
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'ProductKey' => [
- 'description' => '设备所属产品的**ProductKey**。',
- 'type' => 'string',
- 'example' => 'wse5******',
- ],
- 'DeviceName' => [
- 'description' => '设备名称。',
- 'type' => 'string',
- 'example' => 'device-test',
- ],
- 'IotId' => [
- 'description' => '设备ID。',
- 'type' => 'string',
- 'example' => 'qswdfrttgg*********',
- ],
+ 'ApplyDeviceCount' => ['description' => '申请的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '133'],
+ 'SpecCode' => ['description' => '激活码规格Code。取值:'."\n"
+ ."\n"
+ .'- **Consumer_IPC_512Kbps**:消费类IPC 512Kbps。'."\n"
+ .'- **Consumer_IPC_1Mbps**:消费类IPC 1Mbps。'."\n"
+ .'- **Consumer_IPC_2Mbps**:消费类IPC 2Mbps。'."\n"
+ .'- **Consumer_IPC_4Mbps**:消费类IPC 4Mbps。'."\n"
+ .'- **Industry_IPC**:行业类IPC。'."\n"
+ .'- **NVR_Less64**:NVR小于等于64路。'."\n"
+ .'- **NVR_Higher64**:NVR大于64路。', 'type' => 'string', 'example' => 'Consumer_IPC_512Kbps'],
+ 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a3w******'],
+ 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => '电饭煲'],
+ 'CreateTime' => ['description' => '批量注册设备任务的提交时间,格式为毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1690819200000'],
+ 'BatchStatus' => ['description' => '批量注册的批次状态。'."\n"
+ ."\n"
+ .'- **CREATE**:正在创建设备。'."\n"
+ .'- **CREATE_SUCCESS**:申请单中的所有设备创建成功。'."\n"
+ .'- **CREATE_FAILED**:申请单中有设备创建失败。', 'type' => 'string', 'example' => 'CREATE'],
+ 'NetworkType' => ['description' => '产品的连网方式。取值:'."\n"
+ ."\n"
+ .'- **WIFI**:Wi-Fi。'."\n"
+ .'- **CELLULAR**:蜂窝GPRS/3G/4G/5G。'."\n"
+ .'- **ETHERNET**:以太网。'."\n"
+ .'- **OTHER**:其他网络类型。', 'type' => 'string', 'example' => 'WIFI'],
+ 'OperateUid' => ['description' => '操作账号的UID。', 'type' => 'integer', 'format' => 'int64', 'example' => '110000000000'],
+ 'SuccessCount' => ['description' => '批量注册设备成功的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '5'],
+ 'BatchId' => ['description' => '申请的批次ID。', 'type' => 'string', 'example' => '1508******195'],
],
+ 'description' => '',
],
],
],
],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 1,\\n \\"SubDeviceList\\": [\\n {\\n \\"ProductKey\\": \\"wse5******\\",\\n \\"DeviceName\\": \\"device-test\\",\\n \\"IotId\\": \\"qswdfrttgg*********\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<GetSubDeviceListResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <PageSize/>\\n <Total>1</Total>\\n <PageNo/>\\n <SubDeviceList>\\n <IotId>qswdfrttgg*********</IotId>\\n <ProductKey>wse5******</ProductKey>\\n <DeviceName>device-test</DeviceName>\\n </SubDeviceList>\\n</Data>\\n<Success>true</Success>\\n</GetSubDeviceListResponse>","errorExample":""}]',
- 'title' => 'GetSubDeviceList',
- 'summary' => '调用该接口查询网关设备的子设备列表。',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E5******-4***-***B-8**E-D3********65\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 5,\\n \\"ListData\\": [\\n {\\n \\"ApplyDeviceCount\\": 133,\\n \\"SpecCode\\": \\"Consumer_IPC_512Kbps\\",\\n \\"ProductKey\\": \\"a3w******\\",\\n \\"ProductName\\": \\"电饭煲\\",\\n \\"CreateTime\\": 1690819200000,\\n \\"BatchStatus\\": \\"CREATE\\",\\n \\"NetworkType\\": \\"WIFI\\",\\n \\"OperateUid\\": 110000000000,\\n \\"SuccessCount\\": 5,\\n \\"BatchId\\": \\"1508******195\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<QueryGenerateDevicesRecordResponse>\\n<RequestId>E5******-4***-***B-8**E-D3********65</RequestId>\\n<Data>\\n <PageSize>1</PageSize>\\n <Total>5</Total>\\n <PageNo>1</PageNo>\\n <ListData>\\n <SpecCode>Consumer_IPC_512Kbps</SpecCode>\\n <OperateUid>110000000000</OperateUid>\\n <ProductName>电饭煲</ProductName>\\n <NetworkType>WIFI</NetworkType>\\n <BatchStatus>CREATE</BatchStatus>\\n <CreateTime>1690819200000</CreateTime>\\n <BatchId>1508******195</BatchId>\\n <SuccessCount>5</SuccessCount>\\n <ProductKey>a3w******</ProductKey>\\n <ApplyDeviceCount>133</ApplyDeviceCount>\\n </ListData>\\n</Data>\\n<Code>200</Code>\\n<Success>true</Success>\\n</QueryGenerateDevicesRecordResponse>","errorExample":""}]',
+ 'title' => 'QueryGenerateDevicesRecord',
+ 'summary' => '调用该接口查询设备批量注册的记录信息。',
'description' => '## QPS限制'."\n"
."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n"
."\n"
.'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
'responseParamsDescription' => ' ',
'extraInfo' => ' ',
- ],
- 'GetThingPropertySnapshot' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
- 'security' => [
- [
- 'AK' => [],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryGenerateDevicesRecord'],
],
],
- 'systemTags' => [],
- 'parameters' => [
+ 'ramActions' => [
[
- 'name' => 'ProductKey',
- 'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
- ],
- [
- 'name' => 'DeviceName',
- 'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryGenerateDevicesRecord',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
+ ],
+ ],
+ 'QueryStorageCommodityList' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
[
- 'name' => 'IotId',
- 'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'AK' => [],
],
],
+ 'systemTags' => [],
+ 'parameters' => [],
'responses' => [
200 => [
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
- 'description' => '调用成功,返回的属性数据。',
- 'type' => 'string',
- 'example' => '{\\"StreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"MotionDetectSensitivity\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"ImageFlipState\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"SubStreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmSwitch\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmFrequencyLevel\\":{\\"time\\":1700009930921,\\"value\\":\\"10\\"}}',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Specification' => ['type' => 'string'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'Price' => ['type' => 'string'],
+ 'Months' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityName' => ['type' => 'string'],
+ 'Lifecycle' => ['type' => 'integer', 'format' => 'int32'],
+ ],
+ ],
],
],
],
@@ -4973,81 +2885,42 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelNotExist',
- 'errorMessage' => 'Thing model not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"Data\\": \\"{\\\\\\\\\\\\\\"StreamVideoQuality\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"MotionDetectSensitivity\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"ImageFlipState\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"SubStreamVideoQuality\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"AlarmSwitch\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1699951400324,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"AlarmFrequencyLevel\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"time\\\\\\\\\\\\\\":1700009930921,\\\\\\\\\\\\\\"value\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"10\\\\\\\\\\\\\\"}}\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<GetThingPropertySnapshotResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>{\\"StreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"MotionDetectSensitivity\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"ImageFlipState\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"SubStreamVideoQuality\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmSwitch\\":{\\"time\\":1699951400324,\\"value\\":\\"0\\"},\\"AlarmFrequencyLevel\\":{\\"time\\":1700009930921,\\"value\\":\\"10\\"}}</Data>\\n<Success>true</Success>\\n</GetThingPropertySnapshotResponse>","errorExample":""}]',
- 'title' => 'GetThingPropertySnapshot',
- 'summary' => '调用该接口查询指定设备的所有物模型属性快照,返回物模型属性的最新数据。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'InvokeThingService' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageCommodityList'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageCommodityList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"Specification\\": \\"\\",\\n \\"CommodityCode\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"Price\\": \\"\\",\\n \\"Months\\": 0,\\n \\"CommodityName\\": \\"\\",\\n \\"Lifecycle\\": 0\\n }\\n ]\\n}","type":"json"}]',
+ ],
+ 'QueryStorageOrder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5056,63 +2929,29 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'Identifier',
+ 'name' => 'DeviceNoOwner',
'in' => 'query',
- 'schema' => [
- 'description' => '物模型的服务标识符。',
- 'type' => 'string',
- 'required' => true,
- 'example' => 'SetNum',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
- 'name' => 'ProductKey',
+ 'name' => 'OrderId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
- 'name' => 'DeviceName',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
- 'name' => 'Args',
+ 'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。',
- 'type' => 'string',
- 'required' => false,
- 'example' => '{"param1":1}',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
],
'responses' => [
@@ -5120,43 +2959,32 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
- 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'Data' => [
- 'description' => '调用服务结果,JSON字符串。',
- 'type' => 'string',
- 'example' => '{"param1":1}',
- ],
- 'MessageId' => [
- 'description' => '云端向设备下发服务调用的消息ID。',
- 'type' => 'string',
- 'example' => 'abcabcabc1234****',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -5165,113 +2993,47 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelNotExist',
- 'errorMessage' => 'Thing model not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelIdentifierNotExist',
- 'errorMessage' => 'Thing model identifier not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
- [
- 'errorCode' => 'iot.vision.ServiceParamNotExist',
- 'errorMessage' => 'Invoke service failed as service param not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ServiceNotFound',
- 'errorMessage' => 'Invoke service failed as service not found.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceInactive',
- 'errorMessage' => 'Device inactive.',
- ],
- [
- 'errorCode' => 'iot.vision.DevcieOffline',
- 'errorMessage' => 'Device offline.',
- ],
- [
- 'errorCode' => 'iot.vision.ServiceEnumSpecError',
- 'errorMessage' => 'Service enum spec error.',
- ],
- [
- 'errorCode' => 'iot.vision.ServiceResponseTimeout',
- 'errorMessage' => 'Invoke service response timeout.',
- ],
- [
- 'errorCode' => 'iot.vision.InvokeServiceFailed',
- 'errorMessage' => 'Invoke service failed:%s',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Data\\": \\"{\\\\\\"param1\\\\\\":1}\\",\\n \\"MessageId\\": \\"abcabcabc1234****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"<InvokeThingServiceResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <Data>{\\"param1\\":1}</Data>\\n <MessageId>abcabcabc1234****</MessageId>\\n</Data>\\n<Success>true</Success>\\n</InvokeThingServiceResponse>","errorExample":""}]',
- 'title' => 'InvokeThingService',
- 'summary' => '调用该接口在单个设备上调用指定服务。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListBindingAccountByDevice' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageOrder'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
+ ],
+ 'QueryStorageOrderList' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5280,86 +3042,34 @@
'systemTags' => [],
'parameters' => [
[
+ 'name' => 'DeviceNoOwner',
+ 'in' => 'query',
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
+ ],
+ [
'name' => 'PageSize',
'in' => 'query',
- 'schema' => [
- 'description' => '指定返回结果中每页显示的记录数量,最大值是50。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '50',
- 'minimum' => '1',
- 'example' => '5',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '200', 'minimum' => '1'],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'PageNo',
'in' => 'query',
- 'schema' => [
- 'description' => '指定显示返回结果中的第几页,最大值为100。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '100',
- 'minimum' => '1',
- 'example' => '1',
- ],
- ],
- [
- 'name' => 'Owned',
- 'in' => 'query',
- 'schema' => [
- 'description' => '用户和设备绑定类型。'."\n"
- ."\n"
- .'- **0**:表示分享用户。'."\n"
- .'- **1**:表示管理员用户。'."\n"
- .'- 不传则查询所有用户。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => false,
- 'maximum' => '1',
- 'minimum' => '0',
- 'example' => '0',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '1000', 'minimum' => '1'],
],
],
'responses' => [
@@ -5367,73 +3077,41 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Unexpected internal error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
- 'description' => '调用成功,返回的数据。',
'type' => 'object',
'properties' => [
- 'PageNo' => [
- 'description' => '当前页码。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'PageSize' => [
- 'description' => '每页显示的记录数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'Total' => [
- 'description' => '总记录数。',
- 'type' => 'integer',
- 'format' => 'int32',
- 'example' => '1',
- ],
- 'AccountList' => [
- 'description' => '用户列表信息。',
+ 'PageNo' => ['type' => 'integer', 'format' => 'int32'],
+ 'PageSize' => ['type' => 'integer', 'format' => 'int32'],
+ 'Total' => ['type' => 'integer', 'format' => 'int32'],
+ 'PageCount' => ['type' => 'integer', 'format' => 'int32'],
+ 'StorageOrderList' => [
'type' => 'array',
'items' => [
'type' => 'object',
'properties' => [
- 'IdentityAlias' => [
- 'description' => '用户显示名称。',
- 'type' => 'string',
- 'example' => '18*******20',
- ],
- 'IdentityId' => [
- 'description' => '用户身份ID。',
- 'type' => 'string',
- 'example' => '5035op97******************a63994',
- ],
- 'BindTime' => [
- 'description' => '设备绑定用户的时间,13位毫秒级时间戳。',
- 'type' => 'integer',
- 'format' => 'int64',
- 'example' => '2222220000000',
- ],
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -5445,65 +3123,46 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
- ],
- [
- 'errorCode' => 'iot.vision.QueryBindingAccountFailed',
- 'errorMessage' => 'Query binding account failed.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Unexpected internal error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 1,\\n \\"Total\\": 1,\\n \\"AccountList\\": [\\n {\\n \\"IdentityAlias\\": \\"18*******20\\",\\n \\"IdentityId\\": \\"5035op97******************a63994\\",\\n \\"BindTime\\": 2222220000000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"<ListBindingAccountByDeviceResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Data>\\n <PageSize>1</PageSize>\\n <Total>1</Total>\\n <PageNo>1</PageNo>\\n <AccountList>\\n <BindTime>1700209801000</BindTime>\\n <IdentityId>5035op97******************a63994</IdentityId>\\n <IdentityAlias>18*******20</IdentityAlias>\\n </AccountList>\\n</Data>\\n<Success>true</Success>\\n</ListBindingAccountByDeviceResponse>","errorExample":""}]',
- 'title' => 'ListBindingAccountByDevice',
- 'summary' => '调用该接口查询指定设备所绑定的用户列表。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
- ],
- 'ListBindingDeviceByAccount' => [
- 'methods' => [
- 'post',
- 'get',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageOrderList'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageOrderList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Total\\": 0,\\n \\"PageCount\\": 0,\\n \\"StorageOrderList\\": [\\n {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'SetThingProperty' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5512,58 +3171,35 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'OpenId',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
- ],
- [
- 'name' => 'OpenIdAppKey',
- 'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
- ],
- [
- 'name' => 'PageSize',
+ 'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '50',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '视频设备所属产品的**ProductKey**。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'a1Bw******'],
],
[
- 'name' => 'IdentityId',
+ 'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备名称。'."\n"
+ ."\n"
+ .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'Device01'],
],
[
- 'name' => 'PageNo',
+ 'name' => 'Args',
'in' => 'query',
- 'schema' => [
- 'type' => 'integer',
- 'format' => 'int32',
- 'required' => true,
- 'maximum' => '100',
- 'minimum' => '1',
- ],
+ 'schema' => ['description' => '要设置的属性信息,数据格式为JSON。'."\n"
+ ."\n"
+ .'每个属性信息由**标识符**与**属性值**(**key:value**)构成,多个属性用英文逗号隔开。', 'type' => 'string', 'required' => true, 'example' => '{"Switch":1,"Color":"blue"}'],
],
[
- 'name' => 'SubDevice',
+ 'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- ],
+ 'schema' => ['description' => '视频设备的设备ID。'."\n"
+ .'><notice>'."\n"
+ .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
+ .'></notice>', 'type' => 'string', 'required' => false, 'example' => 'C47T6xwp6ms4bNlkHRWCg4****'],
],
],
'responses' => [
@@ -5571,129 +3207,76 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
- 'Data' => [
- 'type' => 'object',
- 'properties' => [
- 'PageNo' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'PageSize' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'Total' => [
- 'type' => 'integer',
- 'format' => 'int64',
- ],
- 'PageCount' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'DeviceList' => [
- 'type' => 'array',
- 'items' => [
- 'type' => 'object',
- 'properties' => [
- 'ProductKey' => [
- 'type' => 'string',
- ],
- 'Owned' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'NodeType' => [
- 'type' => 'string',
- ],
- 'BindTime' => [
- 'type' => 'integer',
- 'format' => 'int64',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
- ],
- ],
- ],
- ],
- ],
+ 'Code' => ['description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'],
+ 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Request parameter error.'],
+ 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'],
+ 'Success' => ['description' => '是否调用成功。'."\n"
+ ."\n"
+ .'- **true**:调用成功。'."\n"
+ .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'],
],
+ 'description' => '',
],
],
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.QueryBindingDeviceFailed',
- 'errorMessage' => 'Query binding device failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetAccountInfoFailed',
- 'errorMessage' => 'Get account info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.AccountNotFound',
- 'errorMessage' => 'Account not found.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.InvalidIotInstance', 'errorMessage' => 'Invalid iot instance.', 'description' => '无效的实例或者找不到对应实例。'],
+ ['errorCode' => 'iot.vision.ProductNotExist', 'errorMessage' => 'Product not exist.', 'description' => '产品不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelNotExist', 'errorMessage' => 'Thing model not exist.', 'description' => '物模型功能不存在。'],
+ ['errorCode' => 'iot.vision.ThingModelIdentifierNotExist', 'errorMessage' => 'Thing model identifier not exist.', 'description' => '物模型功能标识符不存在。'],
+ ['errorCode' => 'iot.vision.DeviceNotExist', 'errorMessage' => 'Device not exist.', 'description' => '设备不存在。'],
+ ['errorCode' => 'iot.vision.InstanceArrearage', 'errorMessage' => 'Instance arrearage.', 'description' => '实例已欠费。'],
+ ['errorCode' => 'iot.vision.SetPropertyFailed', 'errorMessage' => 'Set property failed.', 'description' => '设置物模型属性失败。'],
+ ['errorCode' => 'iot.vision.PropertyNotFound', 'errorMessage' => 'Property not found.', 'description' => '物模型属性不存在。'],
+ ['errorCode' => 'iot.vision.PropertyReadOnly', 'errorMessage' => 'Property is read only.', 'description' => '物模型属性是只读的。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ['errorCode' => 'iot.vision.HasNoAccessPermission', 'errorMessage' => 'Has no access permission.', 'description' => '没有访问权限。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
- ],
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
],
],
- ],
- 'SetThingProperty' => [
- 'methods' => [
- 'post',
- 'get',
+ 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<SetThingPropertyResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Success>true</Success>\\n</SetThingPropertyResponse>","errorExample":""}]',
+ 'title' => 'SetThingProperty',
+ 'summary' => '调用该接口为指定设备设置属性值。',
+ 'description' => '## QPS限制'."\n"
+ ."\n"
+ .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
+ ."\n"
+ .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
+ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
+ 'responseParamsDescription' => ' ',
+ 'extraInfo' => ' ',
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetThingProperty'],
+ ],
],
- 'schemes' => [
- 'http',
- 'https',
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:SetThingProperty',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ ],
+ 'TransferStorageOrder' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5702,55 +3285,59 @@
'systemTags' => [],
'parameters' => [
[
- 'name' => 'ProductKey',
+ 'name' => 'EventRecordDuration',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备所属产品的**ProductKey**。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**DeviceName**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'a1Bw******',
- ],
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '30', 'minimum' => '0', 'default' => '10'],
],
[
- 'name' => 'DeviceName',
+ 'name' => 'DstIotId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备名称。'."\n"
- ."\n"
- .'><notice>如果传入该参数,需同时传入**ProductKey**。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'Device01',
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
],
[
- 'name' => 'Args',
+ 'name' => 'SupportCrossIdentityTransfer',
'in' => 'query',
- 'schema' => [
- 'description' => '要设置的属性信息,数据格式为JSON。'."\n"
- ."\n"
- .'每个属性信息由**标识符**与**属性值**(**key:value**)构成,多个属性用英文逗号隔开。',
- 'type' => 'string',
- 'required' => true,
- 'example' => '{"Switch":1,"Color":"blue"}',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
],
[
- 'name' => 'IotId',
+ 'name' => 'SrcIotId',
'in' => 'query',
- 'schema' => [
- 'description' => '视频设备的设备ID。'."\n"
- .'><notice>'."\n"
- .'**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n"
- .'></notice>',
- 'type' => 'string',
- 'required' => false,
- 'example' => 'C47T6xwp6ms4bNlkHRWCg4****',
- ],
+ 'schema' => ['type' => 'string', 'required' => true],
+ ],
+ [
+ 'name' => 'SrcOrderId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => true],
+ ],
+ [
+ 'name' => 'EventRecordProlong',
+ 'in' => 'query',
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
+ ],
+ [
+ 'name' => 'ImmediateUse',
+ 'in' => 'query',
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
+ ],
+ [
+ 'name' => 'UserName',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => false],
+ ],
+ [
+ 'name' => 'UserId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => false],
+ ],
+ [
+ 'name' => 'EnableDefaultPlan',
+ 'in' => 'query',
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'],
+ ],
+ [
+ 'name' => 'PreRecordDuration',
+ 'in' => 'query',
+ 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '5', 'minimum' => '0', 'default' => '0'],
],
],
'responses' => [
@@ -5758,28 +3345,33 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'description' => ' 调用失败时,返回错误码。详细信息,请参见下文**错误码**。',
- 'type' => 'string',
- 'example' => '400',
- ],
- 'ErrorMessage' => [
- 'description' => '调用失败时,返回的出错信息。',
- 'type' => 'string',
- 'example' => 'Request parameter error.',
- ],
- 'RequestId' => [
- 'description' => '阿里云为该请求生成的唯一标识符。',
- 'type' => 'string',
- 'example' => 'E55***B7-4***-4***-8***-D3******F565',
- ],
- 'Success' => [
- 'description' => '是否调用成功。'."\n"
- ."\n"
- .'- **true**:调用成功。'."\n"
- .'- **false**:调用失败。',
- 'type' => 'boolean',
- 'example' => 'true',
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
+ 'Data' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Status' => ['type' => 'integer', 'format' => 'int32'],
+ 'Copies' => ['type' => 'integer', 'format' => 'int32'],
+ 'Specification' => ['type' => 'string'],
+ 'RecordType' => ['type' => 'integer', 'format' => 'int32'],
+ 'CommodityCode' => ['type' => 'string'],
+ 'PreConsume' => ['type' => 'integer', 'format' => 'int32'],
+ 'EndTimeUTC' => ['type' => 'string'],
+ 'UserId' => ['type' => 'string'],
+ 'IdentityId' => ['type' => 'string'],
+ 'StartTimeUTC' => ['type' => 'string'],
+ 'EndTime' => ['type' => 'string'],
+ 'StartTime' => ['type' => 'string'],
+ 'OutOrderNo' => ['type' => 'string'],
+ 'Price' => ['type' => 'string'],
+ 'OrderType' => ['type' => 'integer', 'format' => 'int32'],
+ 'PaymentStatus' => ['type' => 'integer', 'format' => 'int32'],
+ 'UserName' => ['type' => 'string'],
+ 'OrderId' => ['type' => 'string'],
+ 'IotId' => ['type' => 'string'],
+ ],
],
],
],
@@ -5787,97 +3379,48 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.InvalidIotInstance',
- 'errorMessage' => 'Invalid iot instance.',
- ],
- [
- 'errorCode' => 'iot.vision.ProductNotExist',
- 'errorMessage' => 'Product not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelNotExist',
- 'errorMessage' => 'Thing model not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.ThingModelIdentifierNotExist',
- 'errorMessage' => 'Thing model identifier not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.DeviceNotExist',
- 'errorMessage' => 'Device not exist.',
- ],
- [
- 'errorCode' => 'iot.vision.InstanceArrearage',
- 'errorMessage' => 'Instance arrearage.',
- ],
- [
- 'errorCode' => 'iot.vision.SetPropertyFailed',
- 'errorMessage' => 'Set property failed.',
- ],
- [
- 'errorCode' => 'iot.vision.PropertyNotFound',
- 'errorMessage' => 'Property not found.',
- ],
- [
- 'errorCode' => 'iot.vision.PropertyReadOnly',
- 'errorMessage' => 'Property is read only.',
- ],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.DeviceNoOwner', 'errorMessage' => 'Device has no owner.', 'description' => '设备没有绑定管理员。'],
+ ['errorCode' => 'iot.vision.DeviceOwnerChanged', 'errorMessage' => 'Device owner changed.', 'description' => '设备的管理员用户变更。'],
+ ['errorCode' => 'iot.vision.InvalidStorageOrder', 'errorMessage' => 'Invalid storage order.', 'description' => '无效的云存储订单。'],
+ ['errorCode' => 'iot.vision.StorageOrderGetLockFailed', 'errorMessage' => 'Get storage order lock failed try again later.', 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['errorCode' => 'iot.vision.StorageOrderStatusInvalid', 'errorMessage' => 'Storage order status invalid.', 'description' => '当前云存储订单状态不支持操作。'],
+ ['errorCode' => 'iot.vision.TargetDeviceOwnerDifferent', 'errorMessage' => 'Target device owner is different.', 'description' => '目标设备的管理员用户与待转移订单的管理员用户不一致。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
- [
- 'errorCode' => 'iot.vision.HasNoAccessPermission',
- 'errorMessage' => 'Has no access permission.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TransferStorageOrder'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:TransferStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
- 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"Request parameter error.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"<SetThingPropertyResponse>\\n<RequestId>E55***B7-4***-4***-8***-D3******F565</RequestId>\\n<Success>true</Success>\\n</SetThingPropertyResponse>","errorExample":""}]',
- 'title' => 'SetThingProperty',
- 'summary' => '调用该接口为指定设备设置属性值。',
- 'description' => '## QPS限制'."\n"
- ."\n"
- .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n"
- ."\n"
- .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。',
- 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。',
- 'responseParamsDescription' => ' ',
- 'extraInfo' => ' ',
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 0,\\n \\"Copies\\": 0,\\n \\"Specification\\": \\"\\",\\n \\"RecordType\\": 0,\\n \\"CommodityCode\\": \\"\\",\\n \\"PreConsume\\": 0,\\n \\"EndTimeUTC\\": \\"\\",\\n \\"UserId\\": \\"\\",\\n \\"IdentityId\\": \\"\\",\\n \\"StartTimeUTC\\": \\"\\",\\n \\"EndTime\\": \\"\\",\\n \\"StartTime\\": \\"\\",\\n \\"OutOrderNo\\": \\"\\",\\n \\"Price\\": \\"\\",\\n \\"OrderType\\": 0,\\n \\"PaymentStatus\\": 0,\\n \\"UserName\\": \\"\\",\\n \\"OrderId\\": \\"\\",\\n \\"IotId\\": \\"\\"\\n }\\n}","type":"json"}]',
],
'UnbindAllUserByDevice' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -5888,34 +3431,22 @@
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'UnbindSubDevice',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false],
],
],
'responses' => [
@@ -5923,18 +3454,10 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
@@ -5943,22 +3466,11 @@
'items' => [
'type' => 'object',
'properties' => [
- 'UnbindResultMessage' => [
- 'type' => 'string',
- ],
- 'ProductKey' => [
- 'type' => 'string',
- ],
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'UnbindResultCode' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'UnbindResultMessage' => ['type' => 'string'],
+ 'ProductKey' => ['type' => 'string'],
+ 'DeviceName' => ['type' => 'string'],
+ 'UnbindResultCode' => ['type' => 'integer', 'format' => 'int32'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -5970,70 +3482,48 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetAccountInfoFailed',
- 'errorMessage' => 'Get account info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.AccountNotFound',
- 'errorMessage' => 'Account not found.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
- ],
- [
- 'errorCode' => 'iot.vision.UnbindFailed',
- 'errorMessage' => 'Unbind account and device failed.',
- ],
- [
- 'errorCode' => 'iot.vision.BindingRelationNotFound',
- 'errorMessage' => 'Account and device binding relation not found.',
- ],
- [
- 'errorCode' => 'iot.vision.QueryBindingAccountFailed',
- 'errorMessage' => 'Query binding account failed.',
- ],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.GetAccountInfoFailed', 'errorMessage' => 'Get account info failed.', 'description' => '查询账号详情信息失败。'],
+ ['errorCode' => 'iot.vision.AccountNotFound', 'errorMessage' => 'Account not found.', 'description' => '找不到账号。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
+ ['errorCode' => 'iot.vision.UnbindFailed', 'errorMessage' => 'Unbind account and device failed.', 'description' => '账号和设备解绑失败。'],
+ ['errorCode' => 'iot.vision.BindingRelationNotFound', 'errorMessage' => 'Account and device binding relation not found.', 'description' => '账号和设备不存在绑定关系。'],
+ ['errorCode' => 'iot.vision.QueryBindingAccountFailed', 'errorMessage' => 'Query binding account failed.', 'description' => '查询绑定的用户失败。'],
],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindAllUserByDevice'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UnbindAllUserByDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SubDeviceUnbindResult\\": [\\n {\\n \\"UnbindResultMessage\\": \\"\\",\\n \\"ProductKey\\": \\"\\",\\n \\"DeviceName\\": \\"\\",\\n \\"UnbindResultCode\\": 0,\\n \\"IotId\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
],
'UnbindDevice' => [
- 'methods' => [
- 'post',
- 'get',
- ],
- 'schemes' => [
- 'http',
- 'https',
- ],
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
'security' => [
[
'AK' => [],
@@ -6044,59 +3534,37 @@
[
'name' => 'OpenId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'OpenIdAppKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'ProductKey',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'DeviceName',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IotId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'IdentityId',
'in' => 'query',
- 'schema' => [
- 'type' => 'string',
- 'required' => false,
- ],
+ 'schema' => ['type' => 'string', 'required' => false],
],
[
'name' => 'UnbindSubDevice',
'in' => 'query',
- 'schema' => [
- 'type' => 'boolean',
- 'required' => false,
- 'default' => 'true',
- ],
+ 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'true'],
],
],
'responses' => [
@@ -6104,18 +3572,10 @@
'schema' => [
'type' => 'object',
'properties' => [
- 'Code' => [
- 'type' => 'string',
- ],
- 'ErrorMessage' => [
- 'type' => 'string',
- ],
- 'RequestId' => [
- 'type' => 'string',
- ],
- 'Success' => [
- 'type' => 'boolean',
- ],
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
'Data' => [
'type' => 'object',
'properties' => [
@@ -6124,22 +3584,11 @@
'items' => [
'type' => 'object',
'properties' => [
- 'UnbindResultMessage' => [
- 'type' => 'string',
- ],
- 'ProductKey' => [
- 'type' => 'string',
- ],
- 'DeviceName' => [
- 'type' => 'string',
- ],
- 'UnbindResultCode' => [
- 'type' => 'integer',
- 'format' => 'int32',
- ],
- 'IotId' => [
- 'type' => 'string',
- ],
+ 'UnbindResultMessage' => ['type' => 'string'],
+ 'ProductKey' => ['type' => 'string'],
+ 'DeviceName' => ['type' => 'string'],
+ 'UnbindResultCode' => ['type' => 'integer', 'format' => 'int32'],
+ 'IotId' => ['type' => 'string'],
],
],
],
@@ -6151,134 +3600,854 @@
],
'errorCodes' => [
400 => [
- [
- 'errorCode' => 'iot.vision.UnexpectedInternalError',
- 'errorMessage' => 'Unexpected internal error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestParamError',
- 'errorMessage' => 'Request parameter error.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestFailed',
- 'errorMessage' => 'Request failed.',
- ],
- [
- 'errorCode' => 'iot.vision.GetAccountInfoFailed',
- 'errorMessage' => 'Get account info failed.',
- ],
- [
- 'errorCode' => 'iot.vision.AccountNotFound',
- 'errorMessage' => 'Account not found.',
- ],
- [
- 'errorCode' => 'iot.vision.TenantMismatch',
- 'errorMessage' => 'Caller tenant and account belong tenant mismatch.',
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.RequestFailed', 'errorMessage' => 'Request failed.', 'description' => '请求失败。'],
+ ['errorCode' => 'iot.vision.GetAccountInfoFailed', 'errorMessage' => 'Get account info failed.', 'description' => '查询账号详情信息失败。'],
+ ['errorCode' => 'iot.vision.AccountNotFound', 'errorMessage' => 'Account not found.', 'description' => '找不到账号。'],
+ ['errorCode' => 'iot.vision.TenantMismatch', 'errorMessage' => 'Caller tenant and account belong tenant mismatch.', 'description' => '接口调用方的租户和账号归属的租户不一致。'],
+ ['errorCode' => 'iot.vision.BindingRelationNotFound', 'errorMessage' => 'Account and device binding relation not found.', 'description' => '账号和设备不存在绑定关系。'],
+ ['errorCode' => 'iot.vision.UnbindFailed', 'errorMessage' => 'Unbind account and device failed.', 'description' => '账号和设备解绑失败。'],
+ ],
+ 403 => [
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
+ ],
+ 429 => [
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindDevice'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UnbindDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
- [
- 'errorCode' => 'iot.vision.BindingRelationNotFound',
- 'errorMessage' => 'Account and device binding relation not found.',
+ ],
+ ],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SubDeviceUnbindResult\\": [\\n {\\n \\"UnbindResultMessage\\": \\"\\",\\n \\"ProductKey\\": \\"\\",\\n \\"DeviceName\\": \\"\\",\\n \\"UnbindResultCode\\": 0,\\n \\"IotId\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]',
+ ],
+ 'UploadDeviceNameList' => [
+ 'methods' => ['post', 'get'],
+ 'schemes' => ['http', 'https'],
+ 'security' => [
+ [
+ 'AK' => [],
+ ],
+ ],
+ 'systemTags' => [],
+ 'parameters' => [
+ [
+ 'name' => 'DeviceNames',
+ 'in' => 'formData',
+ 'style' => 'repeatList',
+ 'schema' => [
+ 'type' => 'array',
+ 'items' => ['type' => 'string'],
+ 'required' => true,
+ 'maxItems' => 10000,
],
- [
- 'errorCode' => 'iot.vision.UnbindFailed',
- 'errorMessage' => 'Unbind account and device failed.',
+ ],
+ [
+ 'name' => 'ProductKey',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => true],
+ ],
+ [
+ 'name' => 'ProjectId',
+ 'in' => 'query',
+ 'schema' => ['type' => 'string', 'required' => true],
+ ],
+ ],
+ 'responses' => [
+ 200 => [
+ 'schema' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'Code' => ['type' => 'string'],
+ 'ErrorMessage' => ['type' => 'string'],
+ 'RequestId' => ['type' => 'string'],
+ 'Success' => ['type' => 'boolean'],
+ 'Data' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'BatchId' => ['type' => 'string'],
+ 'InvalidDetailList' => [
+ 'type' => 'array',
+ 'items' => [
+ 'type' => 'object',
+ 'properties' => [
+ 'DeviceName' => ['type' => 'string'],
+ 'ErrorMsg' => ['type' => 'string'],
+ ],
+ ],
+ ],
+ 'RepeatedDeviceNameList' => [
+ 'type' => 'array',
+ 'items' => ['type' => 'string'],
+ ],
+ 'InvalidDeviceNameList' => [
+ 'type' => 'array',
+ 'items' => ['type' => 'string'],
+ ],
+ ],
+ ],
+ ],
],
],
+ ],
+ 'errorCodes' => [
+ 400 => [
+ ['errorCode' => 'iot.vision.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误。'],
+ ['errorCode' => 'iot.vision.UnexpectedInternalError', 'errorMessage' => 'Unexpected internal error.', 'description' => '未知内部错误。'],
+ ['errorCode' => 'iot.vision.ActiveCodeInsufficient', 'errorMessage' => 'Active code quota is insufficient.', 'description' => '可用激活码不足。'],
+ ['errorCode' => 'iot.vision.DevicesCountExceedLimit', 'errorMessage' => 'The devices count exceed the limit.', 'description' => '创建设备数量超过限制。'],
+ ['errorCode' => 'iot.vision.DevicesExceedUnreleasedProductLimit', 'errorMessage' => 'Devices count exceed the limit of unreleased product.', 'description' => '创建设备数量超过未发布产品的试产设备数量。'],
+ ],
403 => [
- [
- 'errorCode' => 'iot.vision.RequestAuthFailed',
- 'errorMessage' => 'Request auth failed.',
- ],
- [
- 'errorCode' => 'iot.vision.RequestForbidden',
- 'errorMessage' => 'Request forbidden.',
- ],
+ ['errorCode' => 'iot.vision.RequestAuthFailed', 'errorMessage' => 'Request auth failed.', 'description' => '请求鉴权失败。'],
+ ['errorCode' => 'iot.vision.RequestForbidden', 'errorMessage' => 'Request forbidden.', 'description' => '请求被禁止。'],
],
429 => [
- [
- 'errorCode' => 'iot.vision.RequestTrafficControl',
- 'errorMessage' => 'Request traffic control.',
+ ['errorCode' => 'iot.vision.RequestTrafficControl', 'errorMessage' => 'Request traffic control.', 'description' => '请求太频繁被限流。'],
+ ],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadDeviceNameList'],
+ ],
+ ],
+ 'ramActions' => [
+ [
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UploadDeviceNameList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
],
],
],
+ 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"BatchId\\": \\"\\",\\n \\"InvalidDetailList\\": [\\n {\\n \\"DeviceName\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\"\\n }\\n ],\\n \\"RepeatedDeviceNameList\\": [\\n \\"\\"\\n ],\\n \\"InvalidDeviceNameList\\": [\\n \\"\\"\\n ]\\n }\\n}","type":"json"}]',
],
],
'endpoints' => [
- [
- 'regionId' => 'cn-qingdao',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-beijing',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-zhangjiakou',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-huhehaote',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-hangzhou',
- 'endpoint' => 'linkvisual.cn-hangzhou.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shanghai',
- 'endpoint' => 'linkvisual.cn-shanghai.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-shenzhen',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'cn-hongkong',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-northeast-1',
- 'endpoint' => 'linkvisual.ap-northeast-1.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-2',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-3',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-southeast-5',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'us-east-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'us-west-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'eu-west-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'eu-central-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
- ],
- [
- 'regionId' => 'ap-south-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
+ ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.ap-northeast-1.aliyuncs.com', 'endpoint' => 'linkvisual.ap-northeast-1.aliyuncs.com', 'vpc' => 'linkvisual-vpc.ap-northeast-1.aliyuncs.com'],
+ ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'ap-southeast-2', 'regionName' => '澳大利亚(悉尼)已关停', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'ap-southeast-5', 'regionName' => '印度尼西亚(雅加达)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.cn-hangzhou.aliyuncs.com', 'endpoint' => 'linkvisual.cn-hangzhou.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-huhehaote', 'regionName' => '华北5(呼和浩特)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-qingdao', 'regionName' => '华北1(青岛)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.cn-shanghai.aliyuncs.com', 'endpoint' => 'linkvisual.cn-shanghai.aliyuncs.com', 'vpc' => 'linkvisual-vpc.cn-shanghai.aliyuncs.com'],
+ ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'eu-west-1', 'regionName' => '英国(伦敦)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'me-east-1', 'regionName' => '阿联酋(迪拜)', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'linkvisual.aliyuncs.com', 'endpoint' => 'linkvisual.aliyuncs.com', 'vpc' => ''],
+ ],
+ 'errorCodes' => [
+ ['code' => '403', 'message' => 'tenant auth error', 'http_code' => 200, 'description' => '请求因设备或用户信息鉴权失败被禁止'],
+ ['code' => '403', 'message' => 'request forbidden.', 'http_code' => 200, 'description' => '请求因参数鉴权失败被禁止'],
+ ['code' => '460', 'message' => 'picture type error.', 'http_code' => 200, 'description' => '图片类型错误'],
+ ['code' => '460', 'message' => 'RAM system auth error.', 'http_code' => 200, 'description' => 'RAM鉴权失败'],
+ ['code' => '460', 'message' => 'beginTime can not bigger or equal endTime.', 'http_code' => 200, 'description' => '开始时间不得晚于结束时间'],
+ ['code' => '460', 'message' => 'beginTime or endTime can not be null.', 'http_code' => 200, 'description' => ' 起止时间不能为空'."\n"],
+ ['code' => '460', 'message' => 'product is not active.', 'http_code' => 200, 'description' => '设备产品未激活视频服务'."\n"],
+ ['code' => '466', 'message' => 'request too frequently.', 'http_code' => 200, 'description' => '请求过于频繁'],
+ ['code' => '466', 'message' => 'alarm picture exist.', 'http_code' => 200, 'description' => '报警图片已经存在,不允许重复上传'],
+ ['code' => '466', 'message' => 'device offline.', 'http_code' => 200, 'description' => ' 设备不在线'],
+ ['code' => '466', 'message' => 'deviceList lifecycle not exist.', 'http_code' => 200, 'description' => '设备存储生命周期不存在'],
+ ['code' => '466', 'message' => 'triggerPicture failed.', 'http_code' => 200, 'description' => '设备抓图失败'],
+ ['code' => '466', 'message' => 'push stream fail.', 'http_code' => 200, 'description' => '设备推流失败'],
+ ['code' => '466', 'message' => 'device status is disable.', 'http_code' => 200, 'description' => '设备物联网通道被禁用'],
+ ['code' => '466', 'message' => 'device status is initial.', 'http_code' => 200, 'description' => '设备未激活物联网通道(第一次上线后激活)'],
+ ['code' => '466', 'message' => 'device status is offline.', 'http_code' => 200, 'description' => '设备不在线'],
+ ['code' => 'Forbidden.RiskControl', 'message' => 'Your account is at risk. Contact customer support for more details.', 'http_code' => 400, 'description' => '无权限'],
+ ['code' => 'InternalError', 'message' => 'The request processing has failed due to some unknown error.', 'http_code' => 500, 'description' => '服务端未知错误。'],
+ ['code' => 'iot.common.AuthActionPermissionDeny', 'message' => 'The authorization fails.', 'http_code' => 400, 'description' => '鉴权失败。'],
+ ['code' => 'iot.common.RamActionPermissionDeny', 'message' => 'You do not have the RAM permission.', 'http_code' => 400, 'description' => '没有资源访问控制(RAM)权限。'],
+ ['code' => 'iot.lv.requestAuthError', 'message' => 'Request auth error.', 'http_code' => 403, 'description' => '认证出错。'],
+ ['code' => 'iot.lv.requestError', 'message' => 'Post-paid change limit.', 'http_code' => 400, 'description' => '按量计费功能变更次数超限制。'],
+ ['code' => 'iot.lv.requestError', 'message' => 'Request error.', 'http_code' => 400, 'description' => '请求出错'],
+ ['code' => 'iot.lv.requestError', 'message' => 'Request error', 'http_code' => 400, 'description' => '请求出错'],
+ ['code' => 'iot.lv.requestParamError', 'message' => 'Request parameter error.', 'http_code' => 403, 'description' => '请求参数错误。'],
+ ['code' => 'iot.lv.requestTimeError', 'message' => 'Request time error.', 'http_code' => 403, 'description' => '请求查询时间参数错误'],
+ ['code' => 'iot.system.InstanceNotFound', 'message' => 'The instance ID does not exist.', 'http_code' => 400, 'description' => '实例ID不存在。'],
+ ['code' => 'iot.system.UidNotFound', 'message' => 'The Alibaba Cloud account does not exist or the IoT Platform service is not activated.', 'http_code' => 400, 'description' => '阿里云账号不存在或未开通物联网服务。'],
+ ['code' => 'iot.vision.AccountAlreadyExist', 'message' => 'Account already exist.', 'http_code' => 400, 'description' => '账号已存在。'],
+ ['code' => 'iot.vision.AccountNotFound', 'message' => 'Account not found.', 'http_code' => 400, 'description' => '找不到账号。'],
+ ['code' => 'iot.vision.AccountRegistryAddFailed', 'message' => 'Add account registry failed.', 'http_code' => 400, 'description' => '新增账号注册信息失败。'],
+ ['code' => 'iot.vision.AccountRegistryLockFailed', 'message' => 'Get account registry lock failed.', 'http_code' => 400, 'description' => '账号注册获取分布式锁失败。'],
+ ['code' => 'iot.vision.AccountRegistryRemoveFailed', 'message' => 'Remove account registry failed.', 'http_code' => 400, 'description' => '删除账号注册信息失败。'],
+ ['code' => 'iot.vision.ActiveCodeInsufficient', 'message' => 'Active code quota is insufficient.', 'http_code' => 400, 'description' => '可用激活码不足。'],
+ ['code' => 'iot.vision.AppNameExist', 'message' => 'AppName exist.', 'http_code' => 400, 'description' => '应用名称已存在。'],
+ ['code' => 'iot.vision.BatchHasCreated', 'message' => 'This batch task has been created.', 'http_code' => 400, 'description' => '该批次已经创建设备。'],
+ ['code' => 'iot.vision.BatchUpgradeDeviceFailed', 'message' => 'Batch upgrade device failed:%s', 'http_code' => 400, 'description' => '批量升级设备失败。'],
+ ['code' => 'iot.vision.BindFailed', 'message' => 'Bind account and device failed.', 'http_code' => 400, 'description' => '账号和设备绑定失败。'],
+ ['code' => 'iot.vision.BindingRelationNotFound', 'message' => 'Account and device binding relation not found.', 'http_code' => 400, 'description' => '账号和设备不存在绑定关系。'],
+ ['code' => 'iot.vision.CancelOTATaskFailed', 'message' => 'Cancel ota task failed:%s', 'http_code' => 400, 'description' => '取消升级任务失败。'],
+ ['code' => 'iot.vision.CancelUpgradeTaskFailed', 'message' => 'Cancel upgrade task failed:%s', 'http_code' => 400, 'description' => '取消设备升级失败。'],
+ ['code' => 'iot.vision.CheckDeviceFileFailed', 'message' => 'Check device file failed:%s', 'http_code' => 400, 'description' => '设备列表文件校验失败。'],
+ ['code' => 'iot.vision.CheckDeviceFileRequestFailed', 'message' => 'Check device file request failed:%s', 'http_code' => 400, 'description' => '校验设备列表文件的请求失败。'],
+ ['code' => 'iot.vision.ConcurrencyExceedLimit', 'message' => 'Concurrency exceed the limit.', 'http_code' => 400, 'description' => '并发数超过限额。'],
+ ['code' => 'iot.vision.CreateDeviceFailed', 'message' => 'create device failed.', 'http_code' => 400, 'description' => '创建设备失败。'],
+ ['code' => 'iot.vision.CreateFirmwareFailed', 'message' => 'Create firmware failed:%s', 'http_code' => 400, 'description' => '创建升级包失败。'],
+ ['code' => 'iot.vision.CreateFirmwareModuleFailed', 'message' => 'Create firmware module failed:%s', 'http_code' => 400, 'description' => '创建升级包模块失败。'],
+ ['code' => 'iot.vision.CreateProductFailed', 'message' => 'Create product failed.', 'http_code' => 400, 'description' => '创建产品失败。'],
+ ['code' => 'iot.vision.CreateProductNotAllow', 'message' => 'Create product not allow.', 'http_code' => 400, 'description' => '不支持创建产品。'],
+ ['code' => 'iot.vision.CreateProjectFailed', 'message' => 'Create project failed.', 'http_code' => 400, 'description' => '创建项目失败。'],
+ ['code' => 'iot.vision.CreateStorageOrderFailed', 'message' => 'Create storage order failed.', 'http_code' => 400, 'description' => '创建云存储订单失败。'],
+ ['code' => 'iot.vision.CreateSubscribeRelationFailed', 'message' => 'Create subscribe relation failed:%s', 'http_code' => 400, 'description' => '创建订阅关系失败。'],
+ ['code' => 'iot.vision.DeleteDeviceFailed', 'message' => 'delete device failed.', 'http_code' => 400, 'description' => '删除设备失败。'],
+ ['code' => 'iot.vision.DeleteFirmwareFailed', 'message' => 'Delete firmware failed:%s', 'http_code' => 400, 'description' => '删除升级包失败。'],
+ ['code' => 'iot.vision.DeleteFirmwareModuleFailed', 'message' => 'Delete firmware module failed:%s', 'http_code' => 400, 'description' => '删除升级包模块失败。'],
+ ['code' => 'iot.vision.DeleteProductFailed', 'message' => 'Delete product failed.', 'http_code' => 400, 'description' => '删除产品失败。'],
+ ['code' => 'iot.vision.DeleteProjectFailed', 'message' => 'Delete project failed.', 'http_code' => 400, 'description' => '删除项目失败。'],
+ ['code' => 'iot.vision.DeleteSubscribeRelationFailed', 'message' => 'Delete subscribe relation failed:%s', 'http_code' => 400, 'description' => '删除订阅关系失败。'],
+ ['code' => 'iot.vision.DevcieOffline', 'message' => 'Device offline.', 'http_code' => 400, 'description' => '设备不在线。'],
+ ['code' => 'iot.vision.DeviceInactive', 'message' => 'Device inactive.', 'http_code' => 400, 'description' => '设备未激活。'],
+ ['code' => 'iot.vision.DeviceNameCheckFailed', 'message' => 'Device names check failed.', 'http_code' => 400, 'description' => '设备名称校验失败。'],
+ ['code' => 'iot.vision.DeviceNameChecking', 'message' => 'Device names are checking.', 'http_code' => 400, 'description' => '设备名称校验未完成。'],
+ ['code' => 'iot.vision.DeviceNameDuplicate', 'message' => 'Device name duplicate.', 'http_code' => 400, 'description' => '设备名已存在。'],
+ ['code' => 'iot.vision.DeviceNameFormatInvalid', 'message' => 'Device name format invalid.', 'http_code' => 400, 'description' => '设备名称格式无效。'],
+ ['code' => 'iot.vision.DeviceNicknameInvalid', 'message' => 'Device nickname invalid.', 'http_code' => 400, 'description' => '设备昵称无效。'],
+ ['code' => 'iot.vision.DeviceNoOwner', 'message' => 'Device has no owner.', 'http_code' => 400, 'description' => '设备没有绑定管理员。'],
+ ['code' => 'iot.vision.DeviceNotExist', 'message' => 'Device not exist.', 'http_code' => 400, 'description' => '设备不存在。'],
+ ['code' => 'iot.vision.DeviceNotStreaming', 'message' => 'Device is not streaming.', 'http_code' => 400, 'description' => '设备未推流。'],
+ ['code' => 'iot.vision.DeviceNumLimit', 'message' => 'device num exceed limit.', 'http_code' => 400, 'description' => '设备数量超限。'],
+ ['code' => 'iot.vision.DeviceOffline', 'message' => 'Device is offline.', 'http_code' => 400, 'description' => '设备不在线。'],
+ ['code' => 'iot.vision.DeviceOwnerChanged', 'message' => 'Device owner changed.', 'http_code' => 400, 'description' => '设备的管理员用户变更。'],
+ ['code' => 'iot.vision.DevicePropertyFormatInvalid', 'message' => 'Device property format invalid.', 'http_code' => 400, 'description' => '设备属性格式无效。'],
+ ['code' => 'iot.vision.DevicesCountExceedLimit', 'message' => 'The devices count exceed the limit.', 'http_code' => 400, 'description' => '创建设备数量超过限制。'],
+ ['code' => 'iot.vision.DevicesExceedUnreleasedProductLimit', 'message' => 'Devices count exceed the limit of unreleased product.', 'http_code' => 400, 'description' => '创建设备数量超过未发布产品的试产设备数量。'],
+ ['code' => 'iot.vision.DownloadJobError', 'message' => 'Download job error.', 'http_code' => 400, 'description' => '下载任务异常。'],
+ ['code' => 'iot.vision.FirmwareNotFound', 'message' => 'The specified firmware does not exist.', 'http_code' => 400, 'description' => '该版本升级包不存在。'],
+ ['code' => 'iot.vision.FirmwareNotVerified', 'message' => 'Firmware validation not completed.', 'http_code' => 400, 'description' => '升级包验证未完成。'],
+ ['code' => 'iot.vision.FirmwareSourceVersionMismatch', 'message' => 'Current firmware version of device does not match source version of firmware.', 'http_code' => 400, 'description' => '设备当前版本号与升级包的源版本号不匹配。'],
+ ['code' => 'iot.vision.FirmwareVerifyFailed', 'message' => 'Firmware verify failed.', 'http_code' => 400, 'description' => '升级包验证失败。'],
+ ['code' => 'iot.vision.FirmwareVersionMismatch', 'message' => 'The version of firmware mismatch.', 'http_code' => 400, 'description' => '升级包版本号不匹配。'],
+ ['code' => 'iot.vision.FreeStorageLimit', 'message' => 'Free storage quota exceed limit.', 'http_code' => 400, 'description' => '无免费试用的云存储配额。'],
+ ['code' => 'iot.vision.FreeStorageQuotaLimit', 'message' => 'No enough free storage quota or exceed limit.', 'http_code' => 400, 'description' => '免费试用的云存储配额不足或超限制。'],
+ ['code' => 'iot.vision.GbIdDuplicate', 'message' => 'The GB28181 deviceId is duplicated.', 'http_code' => 400, 'description' => '国标ID重复。'],
+ ['code' => 'iot.vision.GbServiceNotEnabled', 'message' => 'The GB28181 service has not been enabled.', 'http_code' => 400, 'description' => '国标服务未开启。'],
+ ['code' => 'iot.vision.GenerateDeviceNameListUrlFailed', 'message' => 'Generate device name list url failed:%s', 'http_code' => 400, 'description' => '生成设备列表上传URL请求失败。'],
+ ['code' => 'iot.vision.GenerateFirmwareUploadUrlFailed', 'message' => 'Generate firmware upload url failed:%s', 'http_code' => 400, 'description' => '生成固件上传URL失败。'],
+ ['code' => 'iot.vision.GetAccountInfoFailed', 'message' => 'Get account info failed.', 'http_code' => 400, 'description' => '查询账号详情信息失败。'],
+ ['code' => 'iot.vision.GetDeviceInfoFailed', 'message' => 'Get device info failed.', 'http_code' => 400, 'description' => '查询设备详情失败。'],
+ ['code' => 'iot.vision.GetOwnerIdentityInfoFailed', 'message' => 'Get owner identity info failed.', 'http_code' => 400, 'description' => '查询设备管理员用户信息失败。'],
+ ['code' => 'iot.vision.GetThingEventSnapshotFailed', 'message' => 'Get thing event snapshot failed.', 'http_code' => 400, 'description' => '查询物模型事件快照失败。'],
+ ['code' => 'iot.vision.HasNoAccessPermission', 'message' => 'Has no access permission.', 'http_code' => 403, 'description' => '没有访问权限。'],
+ ['code' => 'iot.vision.HasRelatedProduct', 'message' => 'Has related product.', 'http_code' => 400, 'description' => '仍有关联产品不能删除。'],
+ ['code' => 'iot.vision.IdentityAppKeyProductNotBind', 'message' => 'The app associated with the identityId does not have permission to access the product.', 'http_code' => 400, 'description' => '账号对应AppKey没有关联产品。'],
+ ['code' => 'iot.vision.ImportProjectFailed', 'message' => 'Import project failed.', 'http_code' => 400, 'description' => '导入项目失败。'],
+ ['code' => 'iot.vision.InstanceArrearage', 'message' => 'Instance arrearage.', 'http_code' => 400, 'description' => '实例已欠费。'],
+ ['code' => 'iot.vision.InvalidCallerType', 'message' => 'Invalid caller type.', 'http_code' => 400, 'description' => '无效的调用类型参数。'],
+ ['code' => 'iot.vision.InvalidFirmwareId', 'message' => 'Invalid firmware Id.', 'http_code' => 400, 'description' => '无效的升级包ID。'],
+ ['code' => 'iot.vision.InvalidIotInstance', 'message' => 'Invalid iot instance.', 'http_code' => 400, 'description' => '无效的实例或者找不到对应实例。'],
+ ['code' => 'iot.vision.InvalidStorageCommodity', 'message' => 'Invalid storage commodity.', 'http_code' => 400, 'description' => '无效的云存储商品规格。'],
+ ['code' => 'iot.vision.InvalidStorageOrder', 'message' => 'Invalid storage order.', 'http_code' => 400, 'description' => '无效的云存储订单。'],
+ ['code' => 'iot.vision.InvokeServiceFailed', 'message' => '%s', 'http_code' => 400, 'description' => '物模型服务调用失败。'],
+ ['code' => 'iot.vision.InvokeServiceFailed', 'message' => '%s failed.', 'http_code' => 400, 'description' => '物模型服务调用失败。'],
+ ['code' => 'iot.vision.InvokeServiceFailed', 'message' => 'Invoke service failed:%s', 'http_code' => 400, 'description' => '物模型服务调用失败。'],
+ ['code' => 'iot.vision.JobNotExist', 'message' => 'Job not exist or expired.', 'http_code' => 400, 'description' => '任务不存在或已过期。'],
+ ['code' => 'iot.vision.ModifyFirmwareFailed', 'message' => 'Modify firmware failed:%s', 'http_code' => 400, 'description' => '修改升级包失败。'],
+ ['code' => 'iot.vision.NoAvailableActiveCode', 'message' => 'No available active codes.', 'http_code' => 400, 'description' => '没有可用的激活码。'],
+ ['code' => 'iot.vision.NoStorageQuota', 'message' => 'No storage quota.', 'http_code' => 400, 'description' => '无存储配额。'],
+ ['code' => 'iot.vision.ParamBatchIdInvalid', 'message' => 'Parameter batchId is invalid.', 'http_code' => 400, 'description' => '参数批次ID无效。'],
+ ['code' => 'iot.vision.PreviousImportProjectTaskNotFinished', 'message' => 'Previous import project task not finished.', 'http_code' => 400, 'description' => '之前的项目导入任务尚未完成。'],
+ ['code' => 'iot.vision.ProductCancelReleaseFailed.', 'message' => 'Product cancel release failed.', 'http_code' => 400, 'description' => '产品撤销发布失败。'],
+ ['code' => 'iot.vision.ProductHasRelatedAuthorization', 'message' => 'Product has related authorization.', 'http_code' => 400, 'description' => '产品存在关联授权。'],
+ ['code' => 'iot.vision.ProductHasRelatedResource', 'message' => 'Product has related resource.', 'http_code' => 400, 'description' => '产品存在关联的资源。'],
+ ['code' => 'iot.vision.ProductKeyFormatInvalid', 'message' => 'Product key format invalid.', 'http_code' => 400, 'description' => '产品Key格式无效。'],
+ ['code' => 'iot.vision.ProductNameDuplicated', 'message' => 'Product name duplicated.', 'http_code' => 400, 'description' => '产品名称重复。'],
+ ['code' => 'iot.vision.ProductNameFormatInvalid', 'message' => 'Product name format invalid.', 'http_code' => 400, 'description' => '产品名称格式错误。'],
+ ['code' => 'iot.vision.ProductNameLengthInvalid', 'message' => 'Product name length invalid.', 'http_code' => 400, 'description' => '产品名称长度无效。'],
+ ['code' => 'iot.vision.ProductNotExist', 'message' => 'Product not exist.', 'http_code' => 400, 'description' => '产品不存在。'],
+ ['code' => 'iot.vision.ProductNotRelease', 'message' => 'Product not release.', 'http_code' => 400, 'description' => '产品未发布。'],
+ ['code' => 'iot.vision.ProductNumLimit', 'message' => 'Product number exceed limit.', 'http_code' => 400, 'description' => '产品数量超上限。'],
+ ['code' => 'iot.vision.ProductReleased', 'message' => 'Product had been released.', 'http_code' => 400, 'description' => '产品已经发布。'],
+ ['code' => 'iot.vision.ProductReleaseFailed', 'message' => 'Product release failed.', 'http_code' => 400, 'description' => '产品发布失败。'],
+ ['code' => 'iot.vision.ProductShouldNotDelete', 'message' => 'Product should not delete.', 'http_code' => 400, 'description' => '产品不支持删除。'],
+ ['code' => 'iot.vision.ProductShouldNotEdit', 'message' => 'Product should not edit.', 'http_code' => 400, 'description' => '产品不支持编辑。'],
+ ['code' => 'iot.vision.ProductTagDuplicated', 'message' => 'Product tag duplicated.', 'http_code' => 400, 'description' => '产品标签重复。'],
+ ['code' => 'iot.vision.ProductTagLengthInvalid', 'message' => 'Product tag length invalid.', 'http_code' => 400, 'description' => '产品标签的长度无效。'],
+ ['code' => 'iot.vision.ProductTagNotFound', 'message' => 'Product tag not found.', 'http_code' => 400, 'description' => '产品标签不存在。'],
+ ['code' => 'iot.vision.ProductTagNumLimit', 'message' => 'Product tag num limit.', 'http_code' => 400, 'description' => '产品标签数量超过限制。'],
+ ['code' => 'iot.vision.ProductTypeMismatch', 'message' => 'Product type mismatch.', 'http_code' => 400, 'description' => '产品类型不匹配。'],
+ ['code' => 'iot.vision.ProductUpdateFailed', 'message' => 'Product update failed.', 'http_code' => 400, 'description' => '产品更新失败。'],
+ ['code' => 'iot.vision.ProjectCreateLimit', 'message' => 'Project still in initializing please try again later.', 'http_code' => 400, 'description' => '您还有项目处于创建中,请稍后再试。'],
+ ['code' => 'iot.vision.ProjectHasNoProducts', 'message' => 'Project has no products.', 'http_code' => 400, 'description' => '项目下没有产品。'],
+ ['code' => 'iot.vision.ProjectHasRelatedResource', 'message' => 'Project has related resource.', 'http_code' => 400, 'description' => '项目存在关联的资源。'],
+ ['code' => 'iot.vision.ProjectNameDuplicated', 'message' => 'Project name duplicated.', 'http_code' => 400, 'description' => '项目名称重复。'],
+ ['code' => 'iot.vision.ProjectNameLengthInvalid', 'message' => 'Project name length invalid.', 'http_code' => 400, 'description' => '项目名称长度无效。'],
+ ['code' => 'iot.vision.ProjectNotExist', 'message' => 'Project does not exist.', 'http_code' => 400, 'description' => '项目不存在。'],
+ ['code' => 'iot.vision.ProjectNumLimit', 'message' => 'Project num exceed limit.', 'http_code' => 400, 'description' => '项目数量超上限。'],
+ ['code' => 'iot.vision.PropertyNotFound', 'message' => 'Property not found.', 'http_code' => 400, 'description' => '物模型属性不存在。'],
+ ['code' => 'iot.vision.PropertyReadOnly', 'message' => 'Property is read only.', 'http_code' => 400, 'description' => '物模型属性是只读的。'],
+ ['code' => 'iot.vision.QueryAppListError', 'message' => 'No Result.', 'http_code' => 400, 'description' => '请求无数据。'],
+ ['code' => 'iot.vision.QueryBindingAccountFailed', 'message' => 'Query binding account failed.', 'http_code' => 400, 'description' => '查询绑定的用户失败。'],
+ ['code' => 'iot.vision.QueryBindingDeviceFailed', 'message' => 'Query binding device failed.', 'http_code' => 400, 'description' => '查询绑定设备列表失败。'],
+ ['code' => 'iot.vision.QueryCommodityPriceFailed', 'message' => 'Query commodity price failed.', 'http_code' => 400, 'description' => '查询云存储商品价格失败。'],
+ ['code' => 'iot.vision.QueryConsumerGroupFailed', 'message' => 'Query consumer group failed:%s', 'http_code' => 400, 'description' => '查询消费组失败。'],
+ ['code' => 'iot.vision.QueryDeviceFailed', 'message' => 'query device failed.', 'http_code' => 400, 'description' => '查询设备失败。'],
+ ['code' => 'iot.vision.QueryDeviceGroupFailed', 'message' => 'Query device group failed:%s', 'http_code' => 400, 'description' => '查询设备分组失败。'],
+ ['code' => 'iot.vision.QueryDeviceUpgradeCountFailed', 'message' => 'Query device upgrade count failed:%s', 'http_code' => 400, 'description' => '查询设备升级数量失败。'],
+ ['code' => 'iot.vision.QueryDeviceUpgradeInfoFailed', 'message' => 'Query device upgrade info failed:%s', 'http_code' => 400, 'description' => '查询设备升级情况失败。'],
+ ['code' => 'iot.vision.QueryDeviceVersionStatisticsFailed', 'message' => 'Query device version statistics failed:%s', 'http_code' => 400, 'description' => '查询设备版本分布详情失败。'],
+ ['code' => 'iot.vision.QueryFirmwareFailed', 'message' => 'Query firmware failed:%s', 'http_code' => 400, 'description' => '查询固件失败。'],
+ ['code' => 'iot.vision.QueryFirmwareModuleFailed', 'message' => 'Query firmware module failed:%s', 'http_code' => 400, 'description' => '查询升级包模块失败。'],
+ ['code' => 'iot.vision.QueryFirmwareVersionFailed', 'message' => 'Query firmware version failed:%s', 'http_code' => 400, 'description' => '查询升级包版本失败。'],
+ ['code' => 'iot.vision.QueryProductRelatedDeviceFailed', 'message' => 'Query product related device failed.', 'http_code' => 400, 'description' => '查询产品关联的设备失败。'],
+ ['code' => 'iot.vision.QuerySubscribeRelationFailed', 'message' => 'Query subscribe relation failed:%s', 'http_code' => 400, 'description' => '查询订阅列表失败。'],
+ ['code' => 'iot.vision.QueryUpgradeDefaultTimeoutFailed', 'message' => 'Query upgrade default timeout failed:%s', 'http_code' => 400, 'description' => '查询升级默认超时时间请求失败。'],
+ ['code' => 'iot.vision.QueryUpgradeDeviceFailed', 'message' => 'Query upgrade device failed:%s', 'http_code' => 400, 'description' => '查询待升级设备失败。'],
+ ['code' => 'iot.vision.QueryUpgradeStatisticsInfoFailed', 'message' => 'Query upgrade statistics info failed:%s', 'http_code' => 400, 'description' => '查询升级统计信息失败。'],
+ ['code' => 'iot.vision.QueryUpgradeTaskFailed', 'message' => 'Query upgrade task failed:%s', 'http_code' => 400, 'description' => '查询升级任务失败。'],
+ ['code' => 'iot.vision.RecordNotExist', 'message' => 'Record not exist.', 'http_code' => 400, 'description' => '录像文件不存在。'],
+ ['code' => 'iot.vision.RefreshTooFrequently', 'message' => 'Refresh too frequently.', 'http_code' => 400, 'description' => '刷新太频繁。'],
+ ['code' => 'iot.vision.RequestAuthFailed', 'message' => 'Request auth failed.', 'http_code' => 403, 'description' => '请求鉴权失败。'],
+ ['code' => 'iot.vision.RequestError', 'message' => 'Request error.', 'http_code' => 400, 'description' => '请求失败。'],
+ ['code' => 'iot.vision.RequestFailed', 'message' => 'Request failed.', 'http_code' => 400, 'description' => '请求失败。'],
+ ['code' => 'iot.vision.RequestFailed', 'message' => 'product already publish operation not allowed.', 'http_code' => 400, 'description' => '产品已发布不支持此操作。'],
+ ['code' => 'iot.vision.RequestFailed', 'message' => 'product not exist.', 'http_code' => 400, 'description' => '产品不存在。'],
+ ['code' => 'iot.vision.RequestForbidden', 'message' => 'Request forbidden.', 'http_code' => 403, 'description' => '请求被禁止。'],
+ ['code' => 'iot.vision.RequestParamError', 'message' => 'Request parameter error.', 'http_code' => 400, 'description' => '请求参数错误。'],
+ ['code' => 'iot.vision.RequestParamError', 'message' => 'Request parameter error:%s', 'http_code' => 400, 'description' => '请求参数错误。'],
+ ['code' => 'iot.vision.RequestParameterError', 'message' => 'Request parameter error:%s', 'http_code' => 400, 'description' => '请求参数错误。'],
+ ['code' => 'iot.vision.RequestTrafficControl', 'message' => 'Request traffic control.', 'http_code' => 429, 'description' => '请求太频繁被限流。'],
+ ['code' => 'iot.vision.ReUpgradeDeviceFailed', 'message' => 'ReUpgrade device failed:%s', 'http_code' => 400, 'description' => '重新升级设备失败。'],
+ ['code' => 'iot.vision.RtmpKeyNotSet', 'message' => 'Rtmp key not set.', 'http_code' => 400, 'description' => '鉴权密钥未设置。'],
+ ['code' => 'iot.vision.ServerError', 'message' => 'server error.', 'http_code' => 400, 'description' => '服务器端出错。'],
+ ['code' => 'iot.vision.ServiceEnumSpecError', 'message' => 'Service enum spec error.', 'http_code' => 400, 'description' => '物模型服务枚举参数错误。'],
+ ['code' => 'iot.vision.ServiceNotFound', 'message' => 'Invoke service failed as service not found.', 'http_code' => 400, 'description' => '物模型服务不存在。'],
+ ['code' => 'iot.vision.ServiceParamNotExist', 'message' => 'Invoke service failed as service param not exist.', 'http_code' => 400, 'description' => '物模型服务参数不存在。'],
+ ['code' => 'iot.vision.ServiceResponseTimeout', 'message' => 'Invoke service response timeout.', 'http_code' => 400, 'description' => '超时未收到设备响应。'],
+ ['code' => 'iot.vision.SetAccountFailed', 'message' => 'Set account failed.', 'http_code' => 400, 'description' => '配置自有账号失败。'],
+ ['code' => 'iot.vision.SetDefaultRecordPlanFailed', 'message' => 'Set default record plan failed.', 'http_code' => 400, 'description' => '设置默认的录像计划失败。'],
+ ['code' => 'iot.vision.SetPropertyFailed', 'message' => 'Set property failed.', 'http_code' => 400, 'description' => '设置物模型属性失败。'],
+ ['code' => 'iot.vision.StorageCommodityUnavailable', 'message' => 'Storage commodity unavailable.', 'http_code' => 400, 'description' => '云存储商品不支持使用。'],
+ ['code' => 'iot.vision.StorageOrderAlreadyPaid', 'message' => 'Storage order had been paid.', 'http_code' => 400, 'description' => '云存储订单已经支付。'],
+ ['code' => 'iot.vision.StorageOrderGetLockFailed', 'message' => 'Get storage order lock failed try again later.', 'http_code' => 400, 'description' => '获取云存储订单分布式锁失败,请稍后重试。'],
+ ['code' => 'iot.vision.StorageOrderPayFailed', 'message' => 'Storage order pay failed.', 'http_code' => 400, 'description' => '云存储订单支付失败。'],
+ ['code' => 'iot.vision.StorageOrderStatusInvalid', 'message' => 'Storage order status invalid.', 'http_code' => 400, 'description' => '当前云存储订单状态不支持操作。'],
+ ['code' => 'iot.vision.StreamNameDuplicate', 'message' => 'Stream name duplicate.', 'http_code' => 400, 'description' => '流名称重复。'],
+ ['code' => 'iot.vision.StreamPushFailed', 'message' => 'Stream push failed.', 'http_code' => 400, 'description' => '推流失败。'],
+ ['code' => 'iot.vision.TargetDeviceOwnerDifferent', 'message' => 'Target device owner is different.', 'http_code' => 400, 'description' => '目标设备的管理员用户与待转移订单的管理员用户不一致。'],
+ ['code' => 'iot.vision.TemplateMacroInvalid', 'message' => 'macro invalid.', 'http_code' => 400, 'description' => '宏格式错误。'],
+ ['code' => 'iot.vision.TemplateTextInvalid', 'message' => 'var or text invalid.', 'http_code' => 400, 'description' => '变量或文本格式错误。'],
+ ['code' => 'iot.vision.TenantMismatch', 'message' => 'Caller tenant and account belong tenant mismatch.', 'http_code' => 400, 'description' => '接口调用方的租户和账号归属的租户不一致。'],
+ ['code' => 'iot.vision.ThingAbilityNameDuplicated', 'message' => 'Thing model ability name duplicated.', 'http_code' => 400, 'description' => '物模型功能名称重复。'],
+ ['code' => 'iot.vision.ThingEventNotFound', 'message' => 'Thing event not found.', 'http_code' => 400, 'description' => '物模型事件不存在。'],
+ ['code' => 'iot.vision.ThingModelAbilityDuplicated', 'message' => 'Thing model ability duplicated.', 'http_code' => 400, 'description' => '物模型功能重复。'],
+ ['code' => 'iot.vision.ThingModelIdentifierNotExist', 'message' => 'Thing model identifier not exist.', 'http_code' => 400, 'description' => '物模型功能标识符不存在。'],
+ ['code' => 'iot.vision.ThingModelNotExist', 'message' => 'Thing model not exist.', 'http_code' => 400, 'description' => '物模型功能不存在。'],
+ ['code' => 'iot.vision.ThingModelParamsFormatInvalid', 'message' => 'Thing model params format invalid.', 'http_code' => 400, 'description' => '物模型参数格式无效。'],
+ ['code' => 'iot.vision.ThingModelParamsInvalid', 'message' => 'Thing model params invalid.', 'http_code' => 400, 'description' => '物模型参数无效。'],
+ ['code' => 'iot.vision.ThingModelUpdateFailed', 'message' => 'Thing model update failed.', 'http_code' => 400, 'description' => '物模型编辑更新失败。'],
+ ['code' => 'iot.vision.UnbindFailed', 'message' => 'Unbind account and device failed.', 'http_code' => 400, 'description' => '账号和设备解绑失败。'],
+ ['code' => 'iot.vision.UnexpectedInternalError', 'message' => 'Unexpected internal error.', 'http_code' => 400, 'description' => '未知内部错误。'],
+ ['code' => 'iot.vision.UpdateConsumerGroupFailed', 'message' => 'Update consumer group failed:%s', 'http_code' => 400, 'description' => '更新消费组失败。'],
+ ['code' => 'iot.vision.UpdateFirmwareModuleFailed', 'message' => 'Update firmware module failed:%s', 'http_code' => 400, 'description' => '更新升级包模块失败。'],
+ ['code' => 'iot.vision.UpdateOTATaskStrategyFailed', 'message' => 'Update ota task strategy failed:%s', 'http_code' => 400, 'description' => '更新OTA升级任务策略失败。'],
+ ['code' => 'iot.vision.UpdateSubscribeRelationFailed', 'message' => 'Update subscribe relation failed:%s', 'http_code' => 400, 'description' => '更新订阅关系失败。'],
+ ['code' => 'iot.vision.VerifyFirmwareRequestFailed', 'message' => 'Verify firmware request failed:%s', 'http_code' => 400, 'description' => '验证升级包请求失败。'],
+ ],
+ 'changeSet' => [],
+ 'flowControl' => [
+ 'flowControlList' => [
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingEventSnapshot'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FreezeFreeStorage'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSubDeviceList'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageOrder'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicesDownloadUrl'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TransferStorageOrder'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetThingProperty'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceStatus'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableFreeStorage'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'FreezeStorageOrder'],
+ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryFreeStorage'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindDevice'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListBindingDeviceByAccount'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryBatchStatus'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDevice'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindAllUserByDevice'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryGenerateDevicesRecord'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckFreeStorageValid'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableStorageOrder'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindStorageOrder'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingPropertySnapshot'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageOrderList'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDeviceByBatchId'],
+ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UploadDeviceNameList'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDetail'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InvokeThingService'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListBindingAccountByDevice'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateAndPayStorageOrder'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStorageCommodityList'],
+ ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryGenerateDevicesInfoList'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchBindDevice'],
+ ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetAccountById'],
+ ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ConsumeFreeStorage'],
],
- [
- 'regionId' => 'me-east-1',
- 'endpoint' => 'linkvisual.aliyuncs.com',
+ ],
+ 'ram' => [
+ 'productCode' => 'LinkVisual',
+ 'productName' => '物联网智能视频服务',
+ 'ramCodes' => ['linkvisual'],
+ 'ramLevel' => '资源级',
+ 'ramConditions' => [],
+ 'ramActions' => [
+ [
+ 'apiName' => 'FreezeStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:FreezeStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GenerateDeviceByBatchId',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GenerateDeviceByBatchId',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'EnableFreeStorage',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:EnableFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryFreeStorage',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'CreateAndPayStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:CreateAndPayStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'SetThingProperty',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:SetThingProperty',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListBindingDeviceByAccount',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ListBindingDeviceByAccount',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'EnableStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:EnableStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetThingEventSnapshot',
+ 'description' => '查询物模型事件的快照',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetThingEventSnapshot',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GenerateDevice',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GenerateDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryDeviceDetail',
+ 'description' => 'QueryDeviceDetail',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryDeviceDetail',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UploadDeviceNameList',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UploadDeviceNameList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'FreezeFreeStorage',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:FreezeFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryGenerateDevicesRecord',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryGenerateDevicesRecord',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryStorageCommodityList',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageCommodityList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'CheckFreeStorageValid',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:CheckFreeStorageValid',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UnbindDevice',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UnbindDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'InvokeThingService',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:InvokeThingService',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'UnbindAllUserByDevice',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:UnbindAllUserByDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'TransferStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:TransferStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryGenerateDevicesInfoList',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryGenerateDevicesInfoList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryDevicesDownloadUrl',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryDevicesDownloadUrl',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'BindStorageOrder',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:BindStorageOrder',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetSubDeviceList',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetSubDeviceList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetThingPropertySnapshot',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetThingPropertySnapshot',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetDeviceStatus',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetDeviceStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'GetAccountById',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:GetAccountById',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryBatchStatus',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryBatchStatus',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'BatchBindDevice',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:BatchBindDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ConsumeFreeStorage',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ConsumeFreeStorage',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'ListBindingAccountByDevice',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:ListBindingAccountByDevice',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
+ [
+ 'apiName' => 'QueryStorageOrderList',
+ 'description' => '',
+ 'operationType' => '',
+ 'ramAction' => [
+ 'action' => 'linkvisual:QueryStorageOrderList',
+ 'authLevel' => 'operate',
+ 'actionConditions' => [],
+ 'resources' => [
+ ['validationType' => 'always', 'product' => 'LinkVisual', 'resourceType' => '全部资源', 'arn' => '*'],
+ ],
+ ],
+ ],
],
+ 'resourceTypes' => [],
],
];