From 1c7f908ce09f98fdcbf79ed2a8ae21be60eaa634 Mon Sep 17 00:00:00 2001 From: Zhineng Li Date: Sun, 12 Jul 2026 17:11:17 +0800 Subject: update APIs 20260712 --- data/zh_cn/iot/2016-01-04/api-docs.php | 517 +- data/zh_cn/iot/2016-05-30/api-docs.php | 2453 +- data/zh_cn/iot/2017-04-20/api-docs.php | 2102 +- data/zh_cn/iot/2017-06-20/api-docs.php | 545 +- data/zh_cn/iot/2017-07-20/api-docs.php | 635 +- data/zh_cn/iot/2018-01-20/api-docs.php | 96528 +++++++++++++------------------ 6 files changed, 41717 insertions(+), 61063 deletions(-) (limited to 'data/zh_cn/iot') diff --git a/data/zh_cn/iot/2016-01-04/api-docs.php b/data/zh_cn/iot/2016-01-04/api-docs.php index 5594c9e..dcad21b 100644 --- a/data/zh_cn/iot/2016-01-04/api-docs.php +++ b/data/zh_cn/iot/2016-01-04/api-docs.php @@ -1,27 +1,12 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Iot', - 'version' => '2016-01-04', - ], + 'info' => ['style' => 'RPC', 'product' => 'Iot', 'version' => '2016-01-04'], 'directories' => [ [ 'id' => 0, 'title' => '其它', 'type' => 'directory', - 'children' => [ - 'DeviceGrant', - 'DevicePermitModify', - 'DeviceRevokeById', - 'DeviceRevokeByTopic', - 'ListDevicePermits', - 'Pub', - 'PushByteMessage', - 'RevertRpc', - 'Sub', - 'UnSub', - ], + 'children' => ['DeviceGrant', 'DevicePermitModify', 'DeviceRevokeById', 'DeviceRevokeByTopic', 'ListDevicePermits', 'Pub', 'PushByteMessage', 'RevertRpc', 'Sub', 'UnSub'], ], ], 'components' => [ @@ -29,14 +14,8 @@ ], 'apis' => [ 'DeviceGrant' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -47,27 +26,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'GrantType', @@ -75,11 +44,7 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'PUB', - 'SUB', - 'ALL', - ], + 'enum' => ['PUB', 'SUB', 'ALL'], ], ], ], @@ -88,15 +53,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -105,14 +64,8 @@ 'responseDemo' => '', ], 'DevicePermitModify' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -123,36 +76,22 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'GrantType', @@ -160,11 +99,7 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'ALL', - 'PUB', - 'SUB', - ], + 'enum' => ['ALL', 'PUB', 'SUB'], ], ], ], @@ -173,15 +108,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -190,14 +119,8 @@ 'responseDemo' => '', ], 'DeviceRevokeById' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -208,31 +131,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -240,15 +149,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -257,14 +160,8 @@ 'responseDemo' => '', ], 'DeviceRevokeByTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -275,30 +172,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'GrantType', @@ -307,11 +191,7 @@ 'type' => 'string', 'required' => true, 'docRequired' => true, - 'enum' => [ - 'PUB', - 'SUB', - 'ALL', - ], + 'enum' => ['PUB', 'SUB', 'ALL'], ], ], ], @@ -320,15 +200,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -337,14 +211,8 @@ 'responseDemo' => '', ], 'ListDevicePermits' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -355,19 +223,12 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -375,15 +236,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DevicePermissions' => [ 'type' => 'object', 'itemNode' => true, @@ -393,27 +248,12 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TopicFullName' => [ - 'type' => 'string', - ], - 'GrantType' => [ - 'type' => 'string', - ], - 'AppKey' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'TopicUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'TopicFullName' => ['type' => 'string'], + 'GrantType' => ['type' => 'string'], + 'AppKey' => ['type' => 'integer', 'format' => 'int64'], + 'DeviceId' => ['type' => 'string'], + 'TopicUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -427,14 +267,8 @@ 'responseDemo' => '', ], 'Pub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -445,27 +279,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'MessageContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -473,15 +297,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -490,14 +308,8 @@ 'responseDemo' => '', ], 'PushByteMessage' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -508,27 +320,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'DeviceIds', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'PushContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -536,18 +338,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MessageId' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'MessageId' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -556,14 +350,8 @@ 'responseDemo' => '', ], 'RevertRpc' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -574,40 +362,22 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'RpcContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'TimeOut', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -615,21 +385,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Rpccode' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ResponseContent' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Rpccode' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ResponseContent' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -638,14 +398,8 @@ 'responseDemo' => '', ], 'Sub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -656,27 +410,17 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'SubCallback', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicList', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', @@ -684,9 +428,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => false, 'maxItems' => 10, ], @@ -697,15 +439,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -714,14 +450,8 @@ 'responseDemo' => '', ], 'UnSub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -732,19 +462,12 @@ [ 'name' => 'AppKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicList', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', @@ -752,9 +475,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => false, 'maxItems' => 10, ], @@ -765,15 +486,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -783,37 +498,13 @@ ], ], 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', - ], + ['regionId' => 'cn-beijing', 'endpoint' => 'iot.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'endpoint' => 'iot.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'endpoint' => 'iot.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'endpoint' => 'iot.eu-central-1.aliyuncs.com'], ], ]; diff --git a/data/zh_cn/iot/2016-05-30/api-docs.php b/data/zh_cn/iot/2016-05-30/api-docs.php index 33a028a..7187380 100644 --- a/data/zh_cn/iot/2016-05-30/api-docs.php +++ b/data/zh_cn/iot/2016-05-30/api-docs.php @@ -1,63 +1,15 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Iot', - 'version' => '2016-05-30', - ], + 'info' => ['style' => 'RPC', 'product' => 'Iot', 'version' => '2016-05-30'], 'directories' => [ [ 'id' => 0, 'title' => '其它', 'type' => 'directory', 'children' => [ - 'ApplyDeviceWithNames', - 'BatchGetDeviceState', - 'CheckTopicPermission', - 'CreateProduct', - 'CreateProductTopic', - 'CreateRule', - 'CreateRuleAction', - 'DebugRuleSql', - 'DeleteDevice', - 'DeleteProductTopic', - 'DeleteRule', - 'DeleteRuleAction', - 'DeviceGrant', - 'DevicePermitModify', - 'DeviceRevokeById', - 'DeviceRevokeByTopic', - 'GetCats', - 'GetRule', - 'GetRuleAction', - 'ListDevicePermits', - 'ListRule', - 'ListRuleActions', - 'Pub', - 'QueryApplyStatus', - 'QueryDevice', - 'QueryDeviceById', - 'QueryDeviceByName', - 'QueryDeviceTopic', - 'QueryPageByApplyId', - 'QueryProduct', - 'QueryProductByUserId', - 'QueryProductTopic', - 'QueryServerCallback', - 'QueryTopic', - 'RegistDevice', - 'RevertRpc', - 'SaveServerCallback', - 'ServerOnline', - 'StartRule', - 'StopRule', - 'Sub', - 'SubTopicFilter', - 'UnSub', - 'UpdateProduct', - 'UpdateProductTopic', - 'UpdateRule', - 'UpdateRuleAction', + 'ApplyDeviceWithNames', 'BatchGetDeviceState', 'CheckTopicPermission', 'CreateProduct', 'CreateProductTopic', 'CreateRule', 'CreateRuleAction', 'DebugRuleSql', 'DeleteDevice', 'DeleteProductTopic', 'DeleteRule', 'DeleteRuleAction', 'DeviceGrant', 'DevicePermitModify', 'DeviceRevokeById', 'DeviceRevokeByTopic', 'GetCats', 'GetRule', 'GetRuleAction', 'ListDevicePermits', + 'ListRule', 'ListRuleActions', 'Pub', 'QueryApplyStatus', 'QueryDevice', 'QueryDeviceById', 'QueryDeviceByName', 'QueryDeviceTopic', 'QueryPageByApplyId', 'QueryProduct', 'QueryProductByUserId', 'QueryProductTopic', 'QueryServerCallback', 'QueryTopic', 'RegistDevice', 'RevertRpc', 'SaveServerCallback', 'ServerOnline', 'StartRule', 'StopRule', + 'Sub', 'SubTopicFilter', 'UnSub', 'UpdateProduct', 'UpdateProductTopic', 'UpdateRule', 'UpdateRuleAction', ], ], ], @@ -66,14 +18,8 @@ ], 'apis' => [ 'ApplyDeviceWithNames' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -84,11 +30,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceName', @@ -96,9 +38,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 1000, ], @@ -109,19 +49,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ApplyId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'ApplyId' => ['type' => 'integer', 'format' => 'int64'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -130,14 +61,8 @@ 'responseDemo' => '', ], 'BatchGetDeviceState' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -148,10 +73,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', @@ -159,9 +81,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 50, ], @@ -172,15 +92,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DeviceStatusList' => [ 'type' => 'object', 'itemNode' => true, @@ -190,21 +104,11 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'LastOnlineTime' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'AsAddress' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], + 'Status' => ['type' => 'string'], + 'LastOnlineTime' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'AsAddress' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], ], ], ], @@ -218,14 +122,8 @@ 'responseDemo' => '', ], 'CheckTopicPermission' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -239,30 +137,18 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'UNKNOW', - 'PUB', - 'SUB', - 'ALL', - ], + 'enum' => ['UNKNOW', 'PUB', 'SUB', 'ALL'], ], ], [ 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -270,18 +156,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Permit' => [ - 'type' => 'boolean', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Permit' => ['type' => 'boolean'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -290,14 +168,8 @@ 'responseDemo' => '', ], 'CreateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -308,37 +180,22 @@ [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'CatId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'ExtProps', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'SecurityPolicy', @@ -347,11 +204,7 @@ 'type' => 'string', 'required' => false, 'default' => 'P_D', - 'enum' => [ - 'P_D', - 'P', - 'D', - ], + 'enum' => ['P_D', 'P', 'D'], ], ], ], @@ -360,50 +213,22 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'ProductInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductDesc' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'ProductName' => [ - 'type' => 'string', - ], - 'ProductSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'FromSource' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ExtProps' => [ - 'type' => 'string', - ], - 'CatId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'ProductDesc' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'ProductName' => ['type' => 'string'], + 'ProductSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'FromSource' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'ExtProps' => ['type' => 'string'], + 'CatId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -414,14 +239,8 @@ 'responseDemo' => '', ], 'CreateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -432,34 +251,22 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -467,15 +274,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -484,14 +285,8 @@ 'responseDemo' => '', ], 'CreateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -502,51 +297,32 @@ [ 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Where', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RuleDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -554,15 +330,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -571,14 +341,8 @@ 'responseDemo' => '', ], 'CreateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -589,27 +353,17 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Configuration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -617,15 +371,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -634,14 +382,8 @@ 'responseDemo' => '', ], 'DebugRuleSql' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -652,18 +394,12 @@ [ 'name' => 'Sql', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'JsonInfo', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -671,21 +407,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Where' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'PayloadJson' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Where' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'PayloadJson' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -694,14 +420,8 @@ 'responseDemo' => '', ], 'DeleteDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -712,18 +432,12 @@ [ 'name' => 'DeviceName', '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], ], ], 'responses' => [ @@ -731,15 +445,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -748,14 +456,8 @@ 'responseDemo' => '', ], 'DeleteProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -766,10 +468,7 @@ [ 'name' => 'TopicId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -777,15 +476,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -794,14 +487,8 @@ 'responseDemo' => '', ], 'DeleteRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -812,11 +499,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -824,15 +507,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -841,14 +518,8 @@ 'responseDemo' => '', ], 'DeleteRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -859,11 +530,7 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -871,15 +538,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -888,14 +549,8 @@ 'responseDemo' => '', ], 'DeviceGrant' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -906,27 +561,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'GrantType', @@ -934,11 +579,7 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'PUB', - 'SUB', - 'ALL', - ], + 'enum' => ['PUB', 'SUB', 'ALL'], ], ], ], @@ -947,19 +588,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -968,14 +600,8 @@ 'responseDemo' => '', ], 'DevicePermitModify' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -986,36 +612,22 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'GrantType', @@ -1023,11 +635,7 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'ALL', - 'PUB', - 'SUB', - ], + 'enum' => ['ALL', 'PUB', 'SUB'], ], ], ], @@ -1036,15 +644,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1053,14 +655,8 @@ 'responseDemo' => '', ], 'DeviceRevokeById' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1071,28 +667,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1100,15 +685,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1117,14 +696,8 @@ 'responseDemo' => '', ], 'DeviceRevokeByTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1135,27 +708,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'GrantType', @@ -1163,11 +726,7 @@ 'schema' => [ 'type' => 'string', 'required' => true, - 'enum' => [ - 'PUB', - 'SUB', - 'ALL', - ], + 'enum' => ['PUB', 'SUB', 'ALL'], ], ], ], @@ -1176,15 +735,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1193,14 +746,8 @@ 'responseDemo' => '', ], 'GetCats' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1211,11 +758,7 @@ [ 'name' => 'RootId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1223,28 +766,15 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'CatInfo' => [ 'type' => 'object', 'properties' => [ - 'HasChild' => [ - 'type' => 'boolean', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'HasChild' => ['type' => 'boolean'], + 'Name' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], 'Childs' => [ 'type' => 'object', 'itemNode' => true, @@ -1254,16 +784,9 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'HasChild' => [ - 'type' => 'boolean', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'HasChild' => ['type' => 'boolean'], + 'Name' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1279,14 +802,8 @@ 'responseDemo' => '', ], 'GetRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1297,11 +814,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1309,57 +822,24 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'RuleInfo' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'Modified' => [ - 'type' => 'string', - ], - 'Select' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Where' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Topic' => [ - 'type' => 'string', - ], - 'ShortTopic' => [ - 'type' => 'string', - ], - 'RuleDesc' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Created' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Status' => ['type' => 'string'], + 'Modified' => ['type' => 'string'], + 'Select' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Where' => ['type' => 'string'], + 'ProductKey' => ['type' => 'integer', 'format' => 'int64'], + 'Topic' => ['type' => 'string'], + 'ShortTopic' => ['type' => 'string'], + 'RuleDesc' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + 'Created' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1370,14 +850,8 @@ 'responseDemo' => '', ], 'GetRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1388,11 +862,7 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1400,32 +870,16 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'RuleActionInfo' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'type' => 'string', - ], - 'Configuration' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RuleId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Type' => ['type' => 'string'], + 'Configuration' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], + 'RuleId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1436,14 +890,8 @@ 'responseDemo' => '', ], 'ListDevicePermits' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1454,21 +902,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -1476,15 +915,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DevicePermissions' => [ 'type' => 'object', 'itemNode' => true, @@ -1494,20 +927,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TopicFullName' => [ - 'type' => 'string', - ], - 'GrantType' => [ - 'type' => 'string', - ], - 'TopicUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'TopicFullName' => ['type' => 'string'], + 'GrantType' => ['type' => 'string'], + 'TopicUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1521,14 +944,8 @@ 'responseDemo' => '', ], 'ListRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1539,22 +956,12 @@ [ 'name' => 'CurrenPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -1562,27 +969,12 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -1592,45 +984,18 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'Modified' => [ - 'type' => 'string', - ], - 'Select' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Where' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Topic' => [ - 'type' => 'string', - ], - 'ShortTopic' => [ - 'type' => 'string', - ], - 'RuleDesc' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Created' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Status' => ['type' => 'string'], + 'Modified' => ['type' => 'string'], + 'Select' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Where' => ['type' => 'string'], + 'ProductKey' => ['type' => 'integer', 'format' => 'int64'], + 'Topic' => ['type' => 'string'], + 'ShortTopic' => ['type' => 'string'], + 'RuleDesc' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + 'Created' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1644,14 +1009,8 @@ 'responseDemo' => '', ], 'ListRuleActions' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1662,11 +1021,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1674,15 +1029,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'RuleActionList' => [ 'type' => 'object', 'itemNode' => true, @@ -1692,20 +1041,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'type' => 'string', - ], - 'Configuration' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RuleId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Type' => ['type' => 'string'], + 'Configuration' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], + 'RuleId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1719,14 +1058,8 @@ 'responseDemo' => '', ], 'Pub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1737,11 +1070,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Qos', @@ -1751,27 +1080,18 @@ 'format' => 'int32', 'required' => false, 'default' => '0', - 'enum' => [ - '0', - '1', - ], + 'enum' => ['0', '1'], ], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'MessageContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1779,15 +1099,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1796,14 +1110,8 @@ 'responseDemo' => '', ], 'QueryApplyStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1814,11 +1122,7 @@ [ 'name' => 'ApplyId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1826,18 +1130,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Finish' => [ - 'type' => 'boolean', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Finish' => ['type' => 'boolean'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1846,14 +1142,8 @@ 'responseDemo' => '', ], 'QueryDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1864,28 +1154,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], ], 'responses' => [ @@ -1893,31 +1172,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -1927,27 +1188,13 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -1961,14 +1208,8 @@ 'responseDemo' => '', ], 'QueryDeviceById' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1979,10 +1220,7 @@ [ 'name' => 'DeviceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1990,39 +1228,19 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DeviceInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -2033,14 +1251,8 @@ 'responseDemo' => '', ], 'QueryDeviceByName' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2051,18 +1263,12 @@ [ 'name' => 'DeviceName', '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], ], ], 'responses' => [ @@ -2070,39 +1276,19 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DeviceInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -2113,14 +1299,8 @@ 'responseDemo' => '', ], 'QueryDeviceTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2131,18 +1311,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2150,15 +1324,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'TopicList' => [ 'type' => 'object', 'itemNode' => true, @@ -2168,19 +1336,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TopicTemplate' => [ - 'type' => 'boolean', - ], - 'Operation' => [ - 'type' => 'string', - ], - 'TopicName' => [ - 'type' => 'string', - ], - 'TopicMessageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'TopicTemplate' => ['type' => 'boolean'], + 'Operation' => ['type' => 'string'], + 'TopicName' => ['type' => 'string'], + 'TopicMessageCount' => ['type' => 'integer', 'format' => 'int32'], ], ], ], @@ -2194,14 +1353,8 @@ 'responseDemo' => '', ], 'QueryPageByApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2212,29 +1365,17 @@ [ 'name' => 'CurrenPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'ApplyId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -2242,31 +1383,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'ApplyDeviceList' => [ 'type' => 'object', 'itemNode' => true, @@ -2276,15 +1399,9 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], ], ], ], @@ -2298,14 +1415,8 @@ 'responseDemo' => '', ], 'QueryProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2316,10 +1427,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2327,53 +1435,23 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'ProductInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductDesc' => [ - 'type' => 'string', - ], - 'SecurePolicy' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'ProductName' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'ProductSecret' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'FromSource' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ExtProps' => [ - 'type' => 'string', - ], - 'CatId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'ProductDesc' => ['type' => 'string'], + 'SecurePolicy' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'ProductName' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'ProductSecret' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'FromSource' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'ExtProps' => ['type' => 'string'], + 'CatId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -2384,14 +1462,8 @@ 'responseDemo' => '', ], 'QueryProductByUserId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2404,26 +1476,12 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '1000', - 'minimum' => '0', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '1000', 'minimum' => '0'], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'maximum' => '1000', - 'minimum' => '0', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '1000', 'minimum' => '0'], ], ], 'responses' => [ @@ -2431,31 +1489,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -2465,41 +1505,17 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductDesc' => [ - 'type' => 'string', - ], - 'SecurePolicy' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'ProductName' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'ProductSecret' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'FromSource' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ExtProps' => [ - 'type' => 'string', - ], - 'CatId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'ProductDesc' => ['type' => 'string'], + 'SecurePolicy' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'ProductName' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'ProductSecret' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'FromSource' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'ExtProps' => ['type' => 'string'], + 'CatId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -2513,14 +1529,8 @@ 'responseDemo' => '', ], 'QueryProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2531,10 +1541,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2542,15 +1549,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -2560,21 +1561,11 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Operation' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'TopicShortName' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'string', - ], - 'Desc' => [ - 'type' => 'string', - ], + 'Operation' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'TopicShortName' => ['type' => 'string'], + 'Id' => ['type' => 'string'], + 'Desc' => ['type' => 'string'], ], ], ], @@ -2588,14 +1579,8 @@ 'responseDemo' => '', ], 'QueryServerCallback' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2606,10 +1591,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2617,38 +1599,18 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'ServerCallbackInfo' => [ 'type' => 'object', 'properties' => [ - 'CallbackType' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'MnsConfiguration' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'CallbackType' => ['type' => 'integer', 'format' => 'int32'], + 'ProductKey' => ['type' => 'string'], + 'MnsConfiguration' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -2659,14 +1621,8 @@ 'responseDemo' => '', ], 'QueryTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2677,18 +1633,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2696,15 +1646,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'TopicList' => [ 'type' => 'object', 'itemNode' => true, @@ -2714,19 +1658,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TopicName' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'OwnerUserId' => [ - 'type' => 'string', - ], - 'TopicMessageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'TopicName' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'OwnerUserId' => ['type' => 'string'], + 'TopicMessageCount' => ['type' => 'integer', 'format' => 'int32'], ], ], ], @@ -2740,14 +1675,8 @@ 'responseDemo' => '', ], 'RegistDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2758,19 +1687,12 @@ [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -2778,27 +1700,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], ], ], ], @@ -2807,14 +1715,8 @@ 'responseDemo' => '', ], 'RevertRpc' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2825,40 +1727,22 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'RpcContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'string', 'required' => true, 'docRequired' => true], ], [ 'name' => 'TimeOut', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true], ], ], 'responses' => [ @@ -2866,21 +1750,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ResponseContent' => [ - 'type' => 'string', - ], - 'RpcCode' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ResponseContent' => ['type' => 'string'], + 'RpcCode' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -2889,14 +1763,8 @@ 'responseDemo' => '', ], 'SaveServerCallback' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2907,27 +1775,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'MnsConfiguration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'CallbackType', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], ], 'responses' => [ @@ -2935,38 +1793,18 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'ServerCallbackInfo' => [ 'type' => 'object', 'properties' => [ - 'CallbackType' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'MnsConfiguration' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'CallbackType' => ['type' => 'integer', 'format' => 'int32'], + 'ProductKey' => ['type' => 'string'], + 'MnsConfiguration' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -2977,14 +1815,8 @@ 'responseDemo' => '', ], 'ServerOnline' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2995,11 +1827,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -3007,15 +1835,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3024,14 +1846,8 @@ 'responseDemo' => '', ], 'StartRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3042,11 +1858,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -3054,15 +1866,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3071,14 +1877,8 @@ 'responseDemo' => '', ], 'StopRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3089,11 +1889,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -3101,15 +1897,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3118,14 +1908,8 @@ 'responseDemo' => '', ], 'Sub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3136,27 +1920,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'SubCallback', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicList', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', @@ -3164,9 +1938,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => false, 'maxItems' => 10, ], @@ -3177,15 +1949,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3194,14 +1960,8 @@ 'responseDemo' => '', ], 'SubTopicFilter' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3212,19 +1972,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'SubCallback', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Topic', @@ -3232,9 +1985,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 10, ], @@ -3245,15 +1996,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3262,14 +2007,8 @@ 'responseDemo' => '', ], 'UnSub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3280,19 +2019,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'TopicList', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', @@ -3300,9 +2032,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => false, 'maxItems' => 10, ], @@ -3313,15 +2043,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3330,14 +2054,8 @@ 'responseDemo' => '', ], 'UpdateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3348,43 +2066,27 @@ [ 'name' => 'ProductName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ProductDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ExtProps', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'CatId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -3392,15 +2094,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3409,14 +2105,8 @@ 'responseDemo' => '', ], 'UpdateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3427,34 +2117,22 @@ [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'TopicId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -3462,15 +2140,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3479,14 +2151,8 @@ 'responseDemo' => '', ], 'UpdateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3497,60 +2163,37 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Where', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RuleDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -3558,15 +2201,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3575,14 +2212,8 @@ 'responseDemo' => '', ], 'UpdateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -3593,27 +2224,17 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Configuration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -3621,15 +2242,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -3639,37 +2254,13 @@ ], ], 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', - ], + ['regionId' => 'cn-beijing', 'endpoint' => 'iot.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'endpoint' => 'iot.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'endpoint' => 'iot.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'endpoint' => 'iot.eu-central-1.aliyuncs.com'], ], ]; diff --git a/data/zh_cn/iot/2017-04-20/api-docs.php b/data/zh_cn/iot/2017-04-20/api-docs.php index dc152b5..a74691c 100644 --- a/data/zh_cn/iot/2017-04-20/api-docs.php +++ b/data/zh_cn/iot/2017-04-20/api-docs.php @@ -1,54 +1,14 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Iot', - 'version' => '2017-04-20', - ], + 'info' => ['style' => 'RPC', 'product' => 'Iot', 'version' => '2017-04-20'], 'directories' => [ [ 'id' => 0, 'title' => '其它', 'type' => 'directory', 'children' => [ - 'ApplyDeviceWithNames', - 'BatchGetDeviceState', - 'CreateProduct', - 'CreateProductTopic', - 'CreateRule', - 'CreateRuleAction', - 'CreateTopicRouteTable', - 'DeleteDeviceProp', - 'DeleteProductTopic', - 'DeleteRule', - 'DeleteRuleAction', - 'DeleteTopicRouteTable', - 'GetDeviceShadow', - 'GetRule', - 'GetRuleAction', - 'ListRule', - 'ListRuleActions', - 'Pub', - 'PubBroadcast', - 'QueryApplyStatus', - 'QueryDevice', - 'QueryDeviceByName', - 'QueryDeviceProp', - 'QueryPageByApplyId', - 'QueryProductTopic', - 'QueryTopicReverseRouteTable', - 'QueryTopicRouteTable', - 'RRpc', - 'RamAuth', - 'RegistDevice', - 'SaveDeviceProp', - 'StartRule', - 'StopRule', - 'UpdateDeviceShadow', - 'UpdateProduct', - 'UpdateProductTopic', - 'UpdateRule', - 'UpdateRuleAction', + 'ApplyDeviceWithNames', 'BatchGetDeviceState', 'CreateProduct', 'CreateProductTopic', 'CreateRule', 'CreateRuleAction', 'CreateTopicRouteTable', 'DeleteDeviceProp', 'DeleteProductTopic', 'DeleteRule', 'DeleteRuleAction', 'DeleteTopicRouteTable', 'GetDeviceShadow', 'GetRule', 'GetRuleAction', 'ListRule', 'ListRuleActions', 'Pub', 'PubBroadcast', 'QueryApplyStatus', + 'QueryDevice', 'QueryDeviceByName', 'QueryDeviceProp', 'QueryPageByApplyId', 'QueryProductTopic', 'QueryTopicReverseRouteTable', 'QueryTopicRouteTable', 'RRpc', 'RamAuth', 'RegistDevice', 'SaveDeviceProp', 'StartRule', 'StopRule', 'UpdateDeviceShadow', 'UpdateProduct', 'UpdateProductTopic', 'UpdateRule', 'UpdateRuleAction', ], ], ], @@ -57,14 +17,8 @@ ], 'apis' => [ 'ApplyDeviceWithNames' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -75,10 +29,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', @@ -86,9 +37,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 1001, ], @@ -99,22 +48,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ApplyId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'ApplyId' => ['type' => 'integer', 'format' => 'int64'], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -123,14 +61,8 @@ 'responseDemo' => '', ], 'BatchGetDeviceState' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -141,10 +73,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', @@ -152,9 +81,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 51, ], @@ -165,18 +92,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'], 'DeviceStatusList' => [ 'type' => 'object', 'itemNode' => true, @@ -186,21 +105,11 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'LastOnlineTime' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'AsAddress' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], + 'Status' => ['type' => 'string'], + 'LastOnlineTime' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'AsAddress' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], ], ], ], @@ -214,14 +123,8 @@ 'responseDemo' => '', ], 'CreateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -232,52 +135,32 @@ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'NodeType', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'CatId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false], ], [ 'name' => 'ExtProps', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'SecurityPolicy', @@ -286,21 +169,13 @@ 'type' => 'string', 'required' => false, 'default' => 'P_D', - 'enum' => [ - 'P_D', - 'P', - 'D', - ], + 'enum' => ['P_D', 'P', 'D'], ], ], [ 'name' => 'Id2', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, - 'default' => 'false', - ], + 'schema' => ['type' => 'boolean', 'required' => false, 'default' => 'false'], ], [ 'name' => 'PayType', @@ -310,10 +185,7 @@ 'format' => 'int32', 'required' => false, 'default' => '0', - 'enum' => [ - '0', - '1', - ], + 'enum' => ['0', '1'], ], ], ], @@ -322,60 +194,25 @@ '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'], 'ProductInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductName' => [ - 'type' => 'string', - ], - 'ProductSecret' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'CatId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ProductDesc' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'NodeType' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Id2' => [ - 'type' => 'boolean', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'FromSource' => [ - 'type' => 'string', - ], - 'ExtProps' => [ - 'type' => 'string', - ], + 'ProductName' => ['type' => 'string'], + 'ProductSecret' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'CatId' => ['type' => 'integer', 'format' => 'int64'], + 'ProductDesc' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'NodeType' => ['type' => 'integer', 'format' => 'int32'], + 'Id2' => ['type' => 'boolean'], + 'GmtCreate' => ['type' => 'string'], + 'FromSource' => ['type' => 'string'], + 'ExtProps' => ['type' => 'string'], ], ], ], @@ -386,14 +223,8 @@ 'responseDemo' => '', ], 'CreateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -404,34 +235,22 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -439,22 +258,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'TopicId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'TopicId' => ['type' => 'integer', 'format' => 'int64'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -463,14 +271,8 @@ 'responseDemo' => '', ], 'CreateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -482,58 +284,37 @@ [ 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Where', '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' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RuleDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'DataType', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -541,22 +322,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'RuleId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'RuleId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -565,14 +335,8 @@ 'responseDemo' => '', ], 'CreateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -583,27 +347,17 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Configuration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -611,22 +365,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ActionId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'ActionId' => ['type' => 'integer', 'format' => 'int64'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -635,14 +378,8 @@ 'responseDemo' => '', ], 'CreateTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -653,18 +390,12 @@ [ 'name' => 'SrcTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'DstTopic', @@ -672,9 +403,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 100, ], @@ -685,30 +414,18 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'IsAllSucceed' => [ - 'type' => 'boolean', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'IsAllSucceed' => ['type' => 'boolean'], + 'Success' => ['type' => 'boolean'], 'FailureTopics' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Topic' => [ 'type' => 'array', - 'items' => [ - 'type' => 'object', - ], + 'items' => ['type' => 'object'], ], ], ], @@ -720,14 +437,8 @@ 'responseDemo' => '', ], 'DeleteDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -738,26 +449,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'PropKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -765,18 +467,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'], ], ], ], @@ -785,14 +479,8 @@ 'responseDemo' => '', ], 'DeleteProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -803,10 +491,7 @@ [ 'name' => 'TopicId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -814,18 +499,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'], ], ], ], @@ -834,14 +511,8 @@ 'responseDemo' => '', ], 'DeleteRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -852,11 +523,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -864,18 +531,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'], ], ], ], @@ -884,14 +543,8 @@ 'responseDemo' => '', ], 'DeleteRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -902,11 +555,7 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -914,18 +563,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'], ], ], ], @@ -934,14 +575,8 @@ 'responseDemo' => '', ], 'DeleteTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -952,18 +587,12 @@ [ 'name' => 'SrcTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'DstTopic', @@ -971,9 +600,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 100, ], @@ -984,30 +611,18 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'IsAllSucceed' => [ - 'type' => 'boolean', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'IsAllSucceed' => ['type' => 'boolean'], + 'Success' => ['type' => 'boolean'], 'FailureTopics' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Topic' => [ 'type' => 'array', - 'items' => [ - 'type' => 'object', - ], + 'items' => ['type' => 'object'], ], ], ], @@ -1019,14 +634,8 @@ 'responseDemo' => '', ], 'GetDeviceShadow' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1037,26 +646,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ShadowMessage', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -1064,21 +664,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ShadowMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ShadowMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1087,14 +677,8 @@ 'responseDemo' => '', ], 'GetRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1105,11 +689,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1117,62 +697,26 @@ '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'], 'RuleInfo' => [ 'type' => 'object', 'properties' => [ - 'Modified' => [ - 'type' => 'string', - ], - 'Status' => [ - 'type' => 'string', - ], - 'DataType' => [ - 'type' => 'string', - ], - 'Select' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Where' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'Topic' => [ - 'type' => 'string', - ], - 'ShortTopic' => [ - 'type' => 'string', - ], - 'RuleDesc' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Created' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Modified' => ['type' => 'string'], + 'Status' => ['type' => 'string'], + 'DataType' => ['type' => 'string'], + 'Select' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Where' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'Topic' => ['type' => 'string'], + 'ShortTopic' => ['type' => 'string'], + 'RuleDesc' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + 'Created' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1183,14 +727,8 @@ 'responseDemo' => '', ], 'GetRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1201,11 +739,7 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1213,35 +747,17 @@ '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'], 'RuleActionInfo' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'type' => 'string', - ], - 'Configuration' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RuleId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Type' => ['type' => 'string'], + 'Configuration' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], + 'RuleId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1252,14 +768,8 @@ 'responseDemo' => '', ], 'ListRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1271,20 +781,12 @@ [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], ], 'responses' => [ @@ -1292,30 +794,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Code' => [ - 'type' => 'string', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Code' => ['type' => 'string'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -1325,47 +810,19 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Modified' => [ - 'type' => 'string', - ], - 'Status' => [ - 'type' => 'string', - ], - 'DataType' => [ - 'type' => 'string', - ], - 'Select' => [ - 'type' => 'string', - ], - 'CreateUserId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'Where' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'Topic' => [ - 'type' => 'string', - ], - 'ShortTopic' => [ - 'type' => 'string', - ], - 'RuleDesc' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Created' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Modified' => ['type' => 'string'], + 'Status' => ['type' => 'string'], + 'DataType' => ['type' => 'string'], + 'Select' => ['type' => 'string'], + 'CreateUserId' => ['type' => 'integer', 'format' => 'int64'], + 'Where' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'Topic' => ['type' => 'string'], + 'ShortTopic' => ['type' => 'string'], + 'RuleDesc' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + 'Created' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1379,14 +836,8 @@ 'responseDemo' => '', ], 'ListRuleActions' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1397,11 +848,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -1409,18 +856,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'], 'RuleActionList' => [ 'type' => 'object', 'itemNode' => true, @@ -1430,20 +869,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'type' => 'string', - ], - 'Configuration' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RuleId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Type' => ['type' => 'string'], + 'Configuration' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], + 'RuleId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -1457,14 +886,8 @@ 'responseDemo' => '', ], 'Pub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1475,10 +898,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Qos', @@ -1488,27 +908,18 @@ 'format' => 'int32', 'required' => false, 'default' => '0', - 'enum' => [ - '0', - '1', - ], + 'enum' => ['0', '1'], ], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'MessageContent', 'in' => 'formData', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1516,21 +927,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'MessageId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'MessageId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1539,14 +940,8 @@ 'responseDemo' => '', ], 'PubBroadcast' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1557,26 +952,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'MessageContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1584,22 +970,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'MessageId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Code' => ['type' => 'string'], + 'MessageId' => ['type' => 'integer', 'format' => 'int64'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1608,14 +983,8 @@ 'responseDemo' => '', ], 'QueryApplyStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1626,13 +995,7 @@ [ 'name' => 'ApplyId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '0', - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '0'], ], ], 'responses' => [ @@ -1640,21 +1003,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Finish' => [ - 'type' => 'boolean', - ], - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Finish' => ['type' => 'boolean'], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1663,14 +1016,8 @@ 'responseDemo' => '', ], 'QueryDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1681,30 +1028,17 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'default' => '10', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'default' => '1', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'default' => '1'], ], ], 'responses' => [ @@ -1712,34 +1046,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Code' => [ - 'type' => 'string', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Code' => ['type' => 'string'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -1749,30 +1063,14 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceType' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceType' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -1786,14 +1084,8 @@ 'responseDemo' => '', ], 'QueryDeviceByName' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1804,26 +1096,17 @@ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1831,48 +1114,22 @@ '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'], 'DeviceInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceType' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'ClientIp' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceType' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'ClientIp' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -1883,14 +1140,8 @@ 'responseDemo' => '', ], 'QueryDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1901,18 +1152,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -1920,21 +1165,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Props' => [ - 'type' => 'string', - ], - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Props' => ['type' => 'string'], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -1943,14 +1178,8 @@ 'responseDemo' => '', ], 'QueryPageByApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -1961,29 +1190,17 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'ApplyId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], ], 'responses' => [ @@ -1991,34 +1208,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Code' => [ - 'type' => 'string', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Code' => ['type' => 'string'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'ApplyDeviceList' => [ 'type' => 'object', 'itemNode' => true, @@ -2028,15 +1225,9 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], ], ], ], @@ -2050,14 +1241,8 @@ 'responseDemo' => '', ], 'QueryProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2068,10 +1253,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2079,18 +1261,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', 'itemNode' => true, @@ -2100,21 +1274,11 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Operation' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'TopicShortName' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'string', - ], - 'Desc' => [ - 'type' => 'string', - ], + 'Operation' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'TopicShortName' => ['type' => 'string'], + 'Id' => ['type' => 'string'], + 'Desc' => ['type' => 'string'], ], ], ], @@ -2128,14 +1292,8 @@ 'responseDemo' => '', ], 'QueryTopicReverseRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2146,18 +1304,12 @@ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2165,27 +1317,17 @@ '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'], 'SrcTopics' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Topic' => [ 'type' => 'array', - 'items' => [ - 'type' => 'object', - ], + 'items' => ['type' => 'object'], ], ], ], @@ -2197,14 +1339,8 @@ 'responseDemo' => '', ], 'QueryTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2215,18 +1351,12 @@ [ 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2234,27 +1364,17 @@ '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'], 'DstTopics' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'Topic' => [ 'type' => 'array', - 'items' => [ - 'type' => 'object', - ], + 'items' => ['type' => 'object'], ], ], ], @@ -2266,14 +1386,8 @@ 'responseDemo' => '', ], 'RRpc' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2284,43 +1398,27 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Timeout', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'RequestBase64Byte', 'in' => 'formData', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -2328,28 +1426,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MessageId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Code' => [ - 'type' => 'string', - ], - 'PayloadBase64Byte' => [ - 'type' => 'string', - ], - 'RrpcCode' => [ - 'type' => 'string', - ], + 'MessageId' => ['type' => 'integer', 'format' => 'int64'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Code' => ['type' => 'string'], + 'PayloadBase64Byte' => ['type' => 'string'], + 'RrpcCode' => ['type' => 'string'], ], ], ], @@ -2358,14 +1441,8 @@ 'responseDemo' => '', ], 'RamAuth' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2379,25 +1456,12 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'IotToken' => [ - 'type' => 'string', - ], - 'ValidDuration' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'IotId' => [ - 'type' => 'string', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'IotToken' => ['type' => 'string'], + 'ValidDuration' => ['type' => 'integer', 'format' => 'int64'], + 'IotId' => ['type' => 'string'], ], ], ], @@ -2406,14 +1470,8 @@ 'responseDemo' => '', ], 'RegistDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2424,18 +1482,12 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -2443,30 +1495,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'Code' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'Code' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], ], ], ], @@ -2475,14 +1511,8 @@ 'responseDemo' => '', ], 'SaveDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2493,26 +1523,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Props', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2520,18 +1541,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'], ], ], ], @@ -2540,14 +1553,8 @@ 'responseDemo' => '', ], 'StartRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2558,11 +1565,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -2570,18 +1573,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'], ], ], ], @@ -2590,14 +1585,8 @@ 'responseDemo' => '', ], 'StopRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2608,11 +1597,7 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -2620,18 +1605,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'], ], ], ], @@ -2640,14 +1617,8 @@ 'responseDemo' => '', ], 'UpdateDeviceShadow' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2658,26 +1629,17 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ShadowMessage', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -2685,18 +1647,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'], ], ], ], @@ -2705,14 +1659,8 @@ 'responseDemo' => '', ], 'UpdateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2723,52 +1671,32 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ProductName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ExtProps', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'NodeType', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'ProductDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'CatId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false], ], ], 'responses' => [ @@ -2776,18 +1704,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'], ], ], ], @@ -2796,14 +1716,8 @@ 'responseDemo' => '', ], 'UpdateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2814,34 +1728,22 @@ [ 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'TopicId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -2849,18 +1751,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'], ], ], ], @@ -2869,14 +1763,8 @@ 'responseDemo' => '', ], 'UpdateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2887,59 +1775,37 @@ [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Where', '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' => 'Name', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'RuleDesc', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -2947,18 +1813,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'], ], ], ], @@ -2967,14 +1825,8 @@ 'responseDemo' => '', ], 'UpdateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -2985,27 +1837,17 @@ [ 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Configuration', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -3013,18 +1855,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'], ], ], ], @@ -3034,37 +1868,13 @@ ], ], 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', - ], + ['regionId' => 'cn-beijing', 'endpoint' => 'iot.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'endpoint' => 'iot.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'endpoint' => 'iot.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'endpoint' => 'iot.eu-central-1.aliyuncs.com'], ], ]; diff --git a/data/zh_cn/iot/2017-06-20/api-docs.php b/data/zh_cn/iot/2017-06-20/api-docs.php index fae38c7..3ed4ab7 100644 --- a/data/zh_cn/iot/2017-06-20/api-docs.php +++ b/data/zh_cn/iot/2017-06-20/api-docs.php @@ -1,27 +1,12 @@ '1.0', - 'info' => [ - 'style' => 'ROA', - 'product' => 'Iot', - 'version' => '2017-06-20', - ], + 'info' => ['style' => 'ROA', 'product' => 'Iot', 'version' => '2017-06-20'], 'directories' => [ [ 'id' => 0, 'title' => '其它', 'type' => 'directory', - 'children' => [ - 'BatchGetDeviceState', - 'GetDeviceShadow', - 'GetCats', - 'Pub', - 'PubBroadcast', - 'QueryApplyStatus', - 'QueryDevice', - 'QueryDeviceByName', - 'RegistDevice', - 'UpdateDeviceShadow', - ], + 'children' => ['BatchGetDeviceState', 'GetDeviceShadow', 'GetCats', 'Pub', 'PubBroadcast', 'QueryApplyStatus', 'QueryDevice', 'QueryDeviceByName', 'RegistDevice', 'UpdateDeviceShadow'], ], ], 'components' => [ @@ -30,12 +15,8 @@ 'apis' => [ 'BatchGetDeviceState' => [ 'path' => '/batchGetDeviceState/{ProductKey}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -46,10 +27,7 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', @@ -57,9 +35,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 51, ], @@ -70,15 +46,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DeviceStatusList' => [ 'type' => 'object', 'itemNode' => true, @@ -88,21 +58,11 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'LastOnlineTime' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'AsAddress' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], + 'Status' => ['type' => 'string'], + 'LastOnlineTime' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'AsAddress' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], ], ], ], @@ -117,12 +77,8 @@ ], 'GetDeviceShadow' => [ 'path' => '/getDeviceShadow/{ProductKey}/{DeviceName}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -133,26 +89,17 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ShadowMessage', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -160,18 +107,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'ShadowMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'ShadowMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -181,12 +120,8 @@ ], 'GetCats' => [ 'path' => '/getCats/{RootId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -197,11 +132,7 @@ [ 'name' => 'RootId', 'in' => 'path', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -209,28 +140,15 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'CatInfo' => [ 'type' => 'object', 'properties' => [ - 'HasChild' => [ - 'type' => 'boolean', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'HasChild' => ['type' => 'boolean'], + 'Name' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], 'Childs' => [ 'type' => 'object', 'itemNode' => true, @@ -240,16 +158,9 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'HasChild' => [ - 'type' => 'boolean', - ], - 'Name' => [ - 'type' => 'string', - ], - 'Id' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'HasChild' => ['type' => 'boolean'], + 'Name' => ['type' => 'string'], + 'Id' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -266,12 +177,8 @@ ], 'Pub' => [ 'path' => '/pub/{ProductKey}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -282,10 +189,7 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Qos', @@ -295,27 +199,18 @@ 'format' => 'int32', 'required' => false, 'default' => '0', - 'enum' => [ - '0', - '1', - ], + 'enum' => ['0', '1'], ], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'MessageContent', 'in' => 'formData', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -323,18 +218,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MessageId' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'MessageId' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -344,12 +231,8 @@ ], 'PubBroadcast' => [ 'path' => '/pubBroadcast/{ProductKey}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -360,26 +243,17 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'MessageContent', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -387,19 +261,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MessageId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'MessageId' => ['type' => 'integer', 'format' => 'int64'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -409,12 +274,8 @@ ], 'QueryApplyStatus' => [ 'path' => '/queryApplyStatus/{ApplyId}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -425,11 +286,7 @@ [ 'name' => 'ApplyId', 'in' => 'path', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -437,18 +294,10 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Finish' => [ - 'type' => 'boolean', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'Finish' => ['type' => 'boolean'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -458,12 +307,8 @@ ], 'QueryDevice' => [ 'path' => '/queryDevice/{ProductKey}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -474,28 +319,17 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], ], 'responses' => [ @@ -503,31 +337,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -537,30 +353,14 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceType' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceType' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -575,12 +375,8 @@ ], 'QueryDeviceByName' => [ 'path' => '/queryDeviceByName/{DeviceName}/{ProductKey}', - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['get'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -591,18 +387,12 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -610,42 +400,20 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'DeviceInfo' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceType' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'DeviceId' => ['type' => 'string'], + 'DeviceType' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], ], ], ], @@ -657,12 +425,8 @@ ], 'RegistDevice' => [ 'path' => '/registDevice/{ProductKey}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -673,18 +437,12 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -692,27 +450,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'DeviceSecret' => [ - 'type' => 'string', - ], - 'DeviceStatus' => [ - 'type' => 'string', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'DeviceId' => ['type' => 'string'], + 'DeviceSecret' => ['type' => 'string'], + 'DeviceStatus' => ['type' => 'string'], ], ], ], @@ -722,12 +466,8 @@ ], 'UpdateDeviceShadow' => [ 'path' => '/updateDeviceShadow/{ProductKey}/{DeviceName}', - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'https', - ], + 'methods' => ['post'], + 'schemes' => ['https'], 'security' => [ [ 'AK' => [], @@ -738,26 +478,17 @@ [ 'name' => 'ProductKey', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'path', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'ShadowMessage', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -765,15 +496,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], @@ -783,37 +508,13 @@ ], ], 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', - ], + ['regionId' => 'cn-beijing', 'endpoint' => 'iot.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'endpoint' => 'iot.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'endpoint' => 'iot.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'endpoint' => 'iot.eu-central-1.aliyuncs.com'], ], ]; diff --git a/data/zh_cn/iot/2017-07-20/api-docs.php b/data/zh_cn/iot/2017-07-20/api-docs.php index 910d27f..6026fe1 100644 --- a/data/zh_cn/iot/2017-07-20/api-docs.php +++ b/data/zh_cn/iot/2017-07-20/api-docs.php @@ -1,24 +1,12 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Iot', - 'version' => '2017-07-20', - ], + 'info' => ['style' => 'RPC', 'product' => 'Iot', 'version' => '2017-07-20'], 'directories' => [ [ 'id' => 0, 'title' => '其它', 'type' => 'directory', - 'children' => [ - 'QueryDeviceByPkAndVersion', - 'QueryDeviceUpgradeInfo', - 'QueryFirmwareByName', - 'QueryFirmwareVerifyInfo', - 'QueryFirmwareByUid', - 'QueryFirmwareVersionById', - 'QueryVersionsByPk', - ], + 'children' => ['QueryDeviceByPkAndVersion', 'QueryDeviceUpgradeInfo', 'QueryFirmwareByName', 'QueryFirmwareVerifyInfo', 'QueryFirmwareByUid', 'QueryFirmwareVersionById', 'QueryVersionsByPk'], ], ], 'components' => [ @@ -26,14 +14,8 @@ ], 'apis' => [ 'QueryDeviceByPkAndVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -44,36 +26,22 @@ [ 'name' => 'PageNumber', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'IndistinctDevName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'FirmwareVersion', @@ -81,9 +49,7 @@ 'style' => 'repeatList', 'schema' => [ 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string'], 'required' => true, 'maxItems' => 20, ], @@ -94,31 +60,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'TotalNum' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'TotalNum' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -128,18 +76,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'FirmwareVersion' => [ - 'type' => 'string', - ], - 'IotId' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'FirmwareVersion' => ['type' => 'string'], + 'IotId' => ['type' => 'string'], ], ], ], @@ -153,14 +93,8 @@ 'responseDemo' => '', ], 'QueryDeviceUpgradeInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -171,53 +105,32 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'FirmwareName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], ], 'responses' => [ @@ -225,31 +138,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -259,39 +154,16 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'CurrentUpgradePercent' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'JobStatus' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ProductName' => [ - 'type' => 'string', - ], - 'JobDesc' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'Version' => [ - 'type' => 'string', - ], - 'JobId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'JobResult' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'CurrentUpgradePercent' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'JobStatus' => ['type' => 'integer', 'format' => 'int32'], + 'ProductName' => ['type' => 'string'], + 'JobDesc' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'Version' => ['type' => 'string'], + 'JobId' => ['type' => 'integer', 'format' => 'int64'], + 'GmtModified' => ['type' => 'string'], + 'JobResult' => ['type' => 'integer', 'format' => 'int32'], ], ], ], @@ -305,14 +177,8 @@ 'responseDemo' => '', ], 'QueryFirmwareByName' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -323,10 +189,7 @@ [ 'name' => 'FirmwareName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -334,90 +197,35 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Strategy' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'CreateTime' => [ - 'type' => 'string', - ], - 'UpgradeType' => [ - 'type' => 'string', - ], - 'StrategyType' => [ - 'type' => 'string', - ], + 'Strategy' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'CreateTime' => ['type' => 'string'], + 'UpgradeType' => ['type' => 'string'], + 'StrategyType' => ['type' => 'string'], 'FirmwareInfo' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ProductName' => [ - 'type' => 'string', - ], - 'FirmwareUrl' => [ - 'type' => 'string', - ], - 'FirmwareName' => [ - 'type' => 'string', - ], - 'FileName' => [ - 'type' => 'string', - ], - 'FirmwareSign' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'FirmwareModifier' => [ - 'type' => 'string', - ], - 'Region' => [ - 'type' => 'string', - ], - 'FirmwareCreator' => [ - 'type' => 'string', - ], - 'IsDeleted' => [ - 'type' => 'string', - ], - 'FrmwareSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'FirmwareDesc' => [ - 'type' => 'string', - ], - 'ScrVersion' => [ - 'type' => 'string', - ], - 'SignMethod' => [ - 'type' => 'string', - ], - 'DestVersion' => [ - 'type' => 'string', - ], - 'FirmwareId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Status' => ['type' => 'integer', 'format' => 'int32'], + 'ProductName' => ['type' => 'string'], + 'FirmwareUrl' => ['type' => 'string'], + 'FirmwareName' => ['type' => 'string'], + 'FileName' => ['type' => 'string'], + 'FirmwareSign' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'FirmwareModifier' => ['type' => 'string'], + 'Region' => ['type' => 'string'], + 'FirmwareCreator' => ['type' => 'string'], + 'IsDeleted' => ['type' => 'string'], + 'FrmwareSize' => ['type' => 'integer', 'format' => 'int32'], + 'GmtCreate' => ['type' => 'string'], + 'FirmwareDesc' => ['type' => 'string'], + 'ScrVersion' => ['type' => 'string'], + 'SignMethod' => ['type' => 'string'], + 'DestVersion' => ['type' => 'string'], + 'FirmwareId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -428,14 +236,8 @@ 'responseDemo' => '', ], 'QueryFirmwareVerifyInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -446,10 +248,7 @@ [ 'name' => 'FirmwareName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -457,23 +256,11 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'SucceedUpgradeDevice' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'TotalUpgradeDevice' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'SucceedUpgradeDevice' => ['type' => 'integer', 'format' => 'int32'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'TotalUpgradeDevice' => ['type' => 'integer', 'format' => 'int32'], + 'Success' => ['type' => 'boolean'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -483,18 +270,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'FirmwareVersion' => [ - 'type' => 'string', - ], - 'IotId' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'FirmwareVersion' => ['type' => 'string'], + 'IotId' => ['type' => 'string'], ], ], ], @@ -508,14 +287,8 @@ 'responseDemo' => '', ], 'QueryFirmwareByUid' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -526,29 +299,17 @@ [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ 'name' => 'DeleteStatus', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], [ 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], ], 'responses' => [ @@ -556,31 +317,13 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageCount' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Page' => [ - 'type' => 'integer', - 'format' => 'int32', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'PageCount' => ['type' => 'integer', 'format' => 'int32'], + 'Page' => ['type' => 'integer', 'format' => 'int32'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -590,57 +333,22 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'FirmwareUrl' => [ - 'type' => 'string', - ], - 'FirmwareName' => [ - 'type' => 'string', - ], - 'FirmwareSign' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'FirmwareModifier' => [ - 'type' => 'string', - ], - 'FirmwareCreator' => [ - 'type' => 'string', - ], - 'IsDeleted' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'FrmwareSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ScrVersion' => [ - 'type' => 'string', - ], - 'FirmwareDesc' => [ - 'type' => 'string', - ], - 'SignMethod' => [ - 'type' => 'string', - ], - 'DestVersion' => [ - 'type' => 'string', - ], - 'FirmwareId' => [ - 'type' => 'integer', - 'format' => 'int64', - ], + 'Status' => ['type' => 'integer', 'format' => 'int32'], + 'FirmwareUrl' => ['type' => 'string'], + 'FirmwareName' => ['type' => 'string'], + 'FirmwareSign' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'FirmwareModifier' => ['type' => 'string'], + 'FirmwareCreator' => ['type' => 'string'], + 'IsDeleted' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'FrmwareSize' => ['type' => 'integer', 'format' => 'int32'], + 'ScrVersion' => ['type' => 'string'], + 'FirmwareDesc' => ['type' => 'string'], + 'SignMethod' => ['type' => 'string'], + 'DestVersion' => ['type' => 'string'], + 'FirmwareId' => ['type' => 'integer', 'format' => 'int64'], ], ], ], @@ -654,14 +362,8 @@ 'responseDemo' => '', ], 'QueryFirmwareVersionById' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -672,11 +374,7 @@ [ 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], ], ], 'responses' => [ @@ -684,15 +382,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -702,9 +394,7 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'FirmwareVersion' => [ - 'type' => 'string', - ], + 'FirmwareVersion' => ['type' => 'string'], ], ], ], @@ -718,14 +408,8 @@ 'responseDemo' => '', ], 'QueryVersionsByPk' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -736,10 +420,7 @@ [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -747,15 +428,9 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], + 'RequestId' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'Data' => [ 'type' => 'object', 'itemNode' => true, @@ -765,18 +440,10 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'FirmwareVersion' => [ - 'type' => 'string', - ], - 'IotId' => [ - 'type' => 'string', - ], + 'ProductKey' => ['type' => 'string'], + 'DeviceName' => ['type' => 'string'], + 'FirmwareVersion' => ['type' => 'string'], + 'IotId' => ['type' => 'string'], ], ], ], @@ -791,37 +458,13 @@ ], ], 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', - ], + ['regionId' => 'cn-beijing', 'endpoint' => 'iot.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com'], + ['regionId' => 'cn-shenzhen', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'ap-northeast-1', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'endpoint' => 'iot.us-east-1.aliyuncs.com'], + ['regionId' => 'us-west-1', 'endpoint' => 'iot.us-west-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'endpoint' => 'iot.eu-central-1.aliyuncs.com'], ], ]; diff --git a/data/zh_cn/iot/2018-01-20/api-docs.php b/data/zh_cn/iot/2018-01-20/api-docs.php index 6058979..f748d80 100644 --- a/data/zh_cn/iot/2018-01-20/api-docs.php +++ b/data/zh_cn/iot/2018-01-20/api-docs.php @@ -1,712 +1,363 @@ '1.0', - 'info' => [ - 'style' => 'RPC', - 'product' => 'Iot', - 'version' => '2018-01-20', - ], + 'info' => ['style' => 'RPC', 'product' => 'Iot', 'version' => '2018-01-20'], 'directories' => [ [ - 'id' => 184536, - 'title' => '实例迁移', + 'children' => ['BatchGrayMigrationDevice'], 'type' => 'directory', - 'children' => [ - 'BatchGrayMigrationDevice', - ], + 'title' => '实例迁移', + 'id' => 308148, ], [ - 'id' => 96338, - 'title' => '产品管理', + 'children' => ['CreateProduct', 'QueryProduct', 'QueryProductList', 'UpdateProduct', 'DeleteProduct', 'CreateProductTags', 'UpdateProductTags', 'DeleteProductTags', 'ListProductTags', 'ListProductByTags', 'UpdateProductFilterConfig', 'QueryProductCertInfo', 'SetProductCertInfo', 'ReleaseProduct', 'CancelReleaseProduct'], 'type' => 'directory', - 'children' => [ - 'CreateProduct', - 'QueryProduct', - 'QueryProductList', - 'UpdateProduct', - 'DeleteProduct', - 'CreateProductTags', - 'UpdateProductTags', - 'DeleteProductTags', - 'ListProductTags', - 'ListProductByTags', - 'UpdateProductFilterConfig', - 'QueryProductCertInfo', - 'SetProductCertInfo', - 'ReleaseProduct', - 'CancelReleaseProduct', - ], + 'title' => '产品管理', + 'id' => 307736, ], [ - 'id' => 96475, - 'title' => '设备管理', - 'type' => 'directory', 'children' => [ - 'RegisterDevice', - 'QueryClientIds', - 'TransformClientId', - 'DeleteClientIds', - 'QueryDeviceInfo', - 'QueryDeviceDetail', - 'BatchQueryDeviceDetail', - 'QueryDevice', - 'DeleteDevice', - 'GetDeviceStatus', - 'BatchGetDeviceState', - 'DisableThing', - 'EnableThing', - 'ResetThing', - 'BatchCheckDeviceNames', - 'BatchRegisterDeviceWithApplyId', - 'BatchRegisterDevice', - 'BatchUpdateDeviceNickname', - 'QueryBatchRegisterDeviceStatus', - 'QueryPageByApplyId', - 'GetGatewayBySubDevice', - 'QueryDeviceProp', - 'SaveDeviceProp', - 'DeleteDeviceProp', - 'QueryDeviceByTags', - 'GetThingTopo', - 'NotifyAddThingTopo', - 'BatchAddThingTopo', - 'RemoveThingTopo', - 'QueryDeviceStatistics', - 'QueryLoRaJoinPermissions', - 'CreateLoRaNodesTask', - 'GetLoraNodesTask', - 'QueryDeviceFileList', - 'QueryDeviceFile', - 'DeleteDeviceFile', - 'QueryDeviceCert', - 'QueryCertUrlByApplyId', - 'QueryDeviceByStatus', - 'QueryDeviceBySQL', - 'ImportDevice', - 'BatchImportDevice', - 'QueryImportedDeviceByApplyId', - 'BatchCheckImportDevice', - 'BatchImportVehicleDevice', - 'BatchCheckVehicleDevice', - 'QueryVehicleDevice', + 'RegisterDevice', 'QueryClientIds', 'TransformClientId', 'DeleteClientIds', 'QueryDeviceInfo', 'QueryDeviceDetail', 'BatchQueryDeviceDetail', 'QueryDevice', 'DeleteDevice', 'GetDeviceStatus', 'BatchGetDeviceState', 'DisableThing', 'EnableThing', 'ResetThing', 'BatchCheckDeviceNames', 'BatchRegisterDeviceWithApplyId', 'BatchRegisterDevice', 'BatchUpdateDeviceNickname', 'QueryBatchRegisterDeviceStatus', 'QueryPageByApplyId', + 'GetGatewayBySubDevice', 'QueryDeviceProp', 'SaveDeviceProp', 'DeleteDeviceProp', 'QueryDeviceByTags', 'GetThingTopo', 'NotifyAddThingTopo', 'BatchAddThingTopo', 'RemoveThingTopo', 'QueryDeviceStatistics', 'QueryLoRaJoinPermissions', 'CreateLoRaNodesTask', 'GetLoraNodesTask', 'QueryDeviceFileList', 'QueryDeviceFile', 'DeleteDeviceFile', 'QueryDeviceCert', 'QueryCertUrlByApplyId', 'QueryDeviceByStatus', 'QueryDeviceBySQL', + 'ImportDevice', 'BatchImportDevice', 'QueryImportedDeviceByApplyId', 'BatchCheckImportDevice', 'BatchImportVehicleDevice', 'BatchCheckVehicleDevice', 'QueryVehicleDevice', ], + 'type' => 'directory', + 'title' => '设备管理', + 'id' => 307879, ], [ - 'id' => 169156, - 'title' => '设备分发', + 'children' => ['CreateDeviceDistributeJob', 'CreateProductDistributeJob', 'QueryDeviceDistributeDetail', 'QueryDeviceDistributeJob', 'ListDeviceDistributeJob', 'DeleteDeviceDistributeJob', 'ListDistributedDevice', 'ListDistributedProduct', 'QueryDeviceProvisioning'], 'type' => 'directory', - 'children' => [ - 'CreateDeviceDistributeJob', - 'CreateProductDistributeJob', - 'QueryDeviceDistributeDetail', - 'QueryDeviceDistributeJob', - 'ListDeviceDistributeJob', - 'DeleteDeviceDistributeJob', - 'ListDistributedDevice', - 'ListDistributedProduct', - 'QueryDeviceProvisioning', - ], + 'title' => '设备分发', + 'id' => 307951, ], [ - 'id' => 169267, - 'title' => '安全隧道管理', + 'children' => ['CreateDeviceTunnel', 'CloseDeviceTunnel', 'DeleteDeviceTunnel', 'QueryDeviceTunnel'], 'type' => 'directory', - 'children' => [ - 'CreateDeviceTunnel', - 'CloseDeviceTunnel', - 'DeleteDeviceTunnel', - 'QueryDeviceTunnel', - ], + 'title' => '安全隧道管理', + 'id' => 307986, ], [ - 'id' => 96467, - 'title' => '分组管理', + 'children' => ['CreateDeviceGroup', 'CreateDeviceDynamicGroup', 'UpdateDeviceGroup', 'DeleteDeviceGroup', 'DeleteDeviceDynamicGroup', 'BatchAddDeviceGroupRelations', 'BatchDeleteDeviceGroupRelations', 'QueryDeviceGroupInfo', 'QueryDynamicGroupDevices', 'QueryDeviceGroupList', 'SetDeviceGroupTags', 'QueryDeviceGroupTagList', 'QueryDeviceGroupByDevice', 'QuerySuperDeviceGroup', 'QueryDeviceListByDeviceGroup', 'QueryDeviceGroupByTags'], 'type' => 'directory', - 'children' => [ - 'CreateDeviceGroup', - 'CreateDeviceDynamicGroup', - 'UpdateDeviceGroup', - 'DeleteDeviceGroup', - 'DeleteDeviceDynamicGroup', - 'BatchAddDeviceGroupRelations', - 'BatchDeleteDeviceGroupRelations', - 'QueryDeviceGroupInfo', - 'QueryDynamicGroupDevices', - 'QueryDeviceGroupList', - 'SetDeviceGroupTags', - 'QueryDeviceGroupTagList', - 'QueryDeviceGroupByDevice', - 'QuerySuperDeviceGroup', - 'QueryDeviceListByDeviceGroup', - 'QueryDeviceGroupByTags', - ], + 'title' => '分组管理', + 'id' => 307862, ], [ - 'id' => 96372, - 'title' => '物模型管理', + 'children' => ['CreateThingModel', 'UpdateThingModel', 'QueryThingModel', 'CopyThingModel', 'PublishThingModel', 'DeleteThingModel', 'ListThingTemplates', 'GetThingTemplate', 'ListThingModelVersion', 'GetThingModelTsl', 'ImportThingModelTsl', 'QueryThingModelPublished', 'GetThingModelTslPublished', 'QueryThingModelExtendConfig', 'QueryThingModelExtendConfigPublished', 'CreateThingScript', 'UpdateThingScript', 'GetThingScript'], 'type' => 'directory', - 'children' => [ - 'CreateThingModel', - 'UpdateThingModel', - 'QueryThingModel', - 'CopyThingModel', - 'PublishThingModel', - 'DeleteThingModel', - 'ListThingTemplates', - 'GetThingTemplate', - 'ListThingModelVersion', - 'GetThingModelTsl', - 'ImportThingModelTsl', - 'QueryThingModelPublished', - 'GetThingModelTslPublished', - 'QueryThingModelExtendConfig', - 'QueryThingModelExtendConfigPublished', - 'CreateThingScript', - 'UpdateThingScript', - 'GetThingScript', - ], + 'title' => '物模型管理', + 'id' => 307764, ], [ - 'id' => 169268, - 'title' => '物模型使用', + 'children' => ['SetDeviceProperty', 'SetDevicesProperty', 'InvokeThingService', 'InvokeThingsService', 'QueryDevicePropertyData', 'QueryDevicePropertiesData', 'QueryDeviceEventData', 'QueryDeviceServiceData', 'SetDeviceDesiredProperty', 'QueryDeviceDesiredProperty', 'QueryDevicePropertyStatus', 'QueryDeviceOriginalPropertyStatus', 'QueryDeviceOriginalPropertyData', 'QueryDeviceOriginalEventData', 'QueryDeviceOriginalServiceData', 'ClearDeviceDesiredProperty'], 'type' => 'directory', - 'children' => [ - 'SetDeviceProperty', - 'SetDevicesProperty', - 'InvokeThingService', - 'InvokeThingsService', - 'QueryDevicePropertyData', - 'QueryDevicePropertiesData', - 'QueryDeviceEventData', - 'QueryDeviceServiceData', - 'SetDeviceDesiredProperty', - 'QueryDeviceDesiredProperty', - 'QueryDevicePropertyStatus', - 'QueryDeviceOriginalPropertyStatus', - 'QueryDeviceOriginalPropertyData', - 'QueryDeviceOriginalEventData', - 'QueryDeviceOriginalServiceData', - 'ClearDeviceDesiredProperty', - ], + 'title' => '物模型使用', + 'id' => 307991, ], [ - 'id' => 96358, - 'title' => '任务管理', + 'children' => ['CreateJob', 'GenerateFileUploadURL', 'UpdateJob', 'QueryJob', 'ListJob', 'CancelJob', 'DeleteJob', 'ListTask', 'QueryTask', 'QueryJobStatistics', 'RerunJob'], 'type' => 'directory', - 'children' => [ - 'CreateJob', - 'GenerateFileUploadURL', - 'UpdateJob', - 'QueryJob', - 'ListJob', - 'CancelJob', - 'DeleteJob', - 'ListTask', - 'QueryTask', - 'QueryJobStatistics', - 'RerunJob', - ], + 'title' => '任务管理', + 'id' => 307752, ], [ - 'id' => 169157, - 'title' => 'Topic管理', + 'children' => ['CreateProductTopic', 'UpdateProductTopic', 'QueryProductTopic', 'DeleteProductTopic', 'CreateTopicRouteTable', 'QueryTopicRouteTable', 'QueryTopicReverseRouteTable', 'DeleteTopicRouteTable'], 'type' => 'directory', - 'children' => [ - 'CreateProductTopic', - 'UpdateProductTopic', - 'QueryProductTopic', - 'DeleteProductTopic', - 'CreateTopicRouteTable', - 'QueryTopicRouteTable', - 'QueryTopicReverseRouteTable', - 'DeleteTopicRouteTable', - ], + 'title' => 'Topic管理', + 'id' => 307961, ], [ - 'id' => 96441, - 'title' => '云产品流转(旧版)', + 'children' => ['CreateRule', 'CreateRuleAction', 'DeleteRule', 'DeleteRuleAction', 'GetRule', 'GetRuleAction', 'ListRule', 'ListRuleActions', 'StartRule', 'StopRule', 'UpdateRule', 'UpdateRuleAction'], 'type' => 'directory', - 'children' => [ - 'CreateRule', - 'CreateRuleAction', - 'DeleteRule', - 'DeleteRuleAction', - 'GetRule', - 'GetRuleAction', - 'ListRule', - 'ListRuleActions', - 'StartRule', - 'StopRule', - 'UpdateRule', - 'UpdateRuleAction', - ], + 'title' => '云产品流转(旧版)', + 'id' => 307849, ], [ - 'id' => 169348, - 'title' => '云产品流转(新版)', - 'type' => 'directory', 'children' => [ - 'CreateParser', - 'UpdateParser', - 'ListParser', - 'GetParser', - 'DeleteParser', - 'CreateParserDataSource', - 'UpdateParserDataSource', - 'ListParserDataSource', - 'GetParserDataSource', - 'DeleteParserDataSource', - 'CreateDataSourceItem', - 'ListDataSourceItem', - 'DeleteDataSourceItem', - 'CreateDestination', - 'UpdateDestination', - 'ListDestination', - 'DeleteDestination', - 'GetDestination', - 'AttachParserDataSource', - 'AttachDestination', - 'DetachParserDataSource', - 'DetachDestination', - 'ListParserDestination', - 'PublishScript', - 'SaveScript', - 'StartParser', - 'StopParser', + 'CreateParser', 'UpdateParser', 'ListParser', 'GetParser', 'DeleteParser', 'CreateParserDataSource', 'UpdateParserDataSource', 'ListParserDataSource', 'GetParserDataSource', 'DeleteParserDataSource', 'CreateDataSourceItem', 'ListDataSourceItem', 'DeleteDataSourceItem', 'CreateDestination', 'UpdateDestination', 'ListDestination', 'DeleteDestination', 'GetDestination', 'AttachParserDataSource', 'AttachDestination', + 'DetachParserDataSource', 'DetachDestination', 'ListParserDestination', 'PublishScript', 'SaveScript', 'StartParser', 'StopParser', ], + 'type' => 'directory', + 'title' => '云产品流转(新版)', + 'id' => 308025, ], [ - 'id' => 96431, - 'title' => '数据服务', + 'children' => ['ListAnalyticsData', 'WriteDevicesHotStorageData', 'QueryDevicesHotStorageDataStatus', 'QueryDevicesHotStorageData', 'ResetDeviceTimeline', 'CreateDataAPIService', 'GetDataAPIServiceDetail', 'InvokeDataAPIService', 'AddDataForApiSource', 'BatchAddDataForApiSource', 'CreateDownloadDataJob', 'GetDownloadFile'], 'type' => 'directory', - 'children' => [ - 'ListAnalyticsData', - 'WriteDevicesHotStorageData', - 'QueryDevicesHotStorageDataStatus', - 'QueryDevicesHotStorageData', - 'ResetDeviceTimeline', - 'CreateDataAPIService', - 'GetDataAPIServiceDetail', - 'InvokeDataAPIService', - 'AddDataForApiSource', - 'BatchAddDataForApiSource', - 'CreateDownloadDataJob', - 'GetDownloadFile', - ], + 'title' => '数据服务', + 'id' => 307836, ], [ - 'id' => 169269, - 'title' => '消息通信', + 'children' => ['BatchPub', 'Pub', 'PubBroadcast', 'RRpc', 'AsyncRRpc', 'QueryMessageInfo', 'SubscribeTopic', 'QueryDeviceSubTopic', 'UpdateTopicConfig'], 'type' => 'directory', - 'children' => [ - 'BatchPub', - 'Pub', - 'PubBroadcast', - 'RRpc', - 'AsyncRRpc', - 'QueryMessageInfo', - 'SubscribeTopic', - 'QueryDeviceSubTopic', - 'UpdateTopicConfig', - ], + 'title' => '消息通信', + 'id' => 308008, ], [ - 'id' => 96326, - 'title' => '服务端订阅', + 'children' => ['CreateSubscribeRelation', 'UpdateSubscribeRelation', 'QuerySubscribeRelation', 'DeleteSubscribeRelation', 'CreateConsumerGroup', 'UpdateConsumerGroup', 'QueryConsumerGroupByGroupId', 'QueryConsumerGroupList', 'QueryConsumerGroupStatus', 'ResetConsumerGroupPosition', 'DeleteConsumerGroup', 'CreateConsumerGroupSubscribeRelation', 'DeleteConsumerGroupSubscribeRelation'], 'type' => 'directory', - 'children' => [ - 'CreateSubscribeRelation', - 'UpdateSubscribeRelation', - 'QuerySubscribeRelation', - 'DeleteSubscribeRelation', - 'CreateConsumerGroup', - 'UpdateConsumerGroup', - 'QueryConsumerGroupByGroupId', - 'QueryConsumerGroupList', - 'QueryConsumerGroupStatus', - 'ResetConsumerGroupPosition', - 'DeleteConsumerGroup', - 'CreateConsumerGroupSubscribeRelation', - 'DeleteConsumerGroupSubscribeRelation', - ], + 'title' => '服务端订阅', + 'id' => 307711, ], [ - 'id' => 169270, - 'title' => '设备影子', + 'children' => ['GetDeviceShadow', 'UpdateDeviceShadow'], 'type' => 'directory', - 'children' => [ - 'GetDeviceShadow', - 'UpdateDeviceShadow', - ], + 'title' => '设备影子', + 'id' => 308018, ], [ - 'id' => 96400, - 'title' => 'OTA升级', - 'type' => 'directory', 'children' => [ - 'GenerateOTAUploadURL', - 'GenerateDeviceNameListURL', - 'CreateOTAFirmware', - 'ModifyOTAFirmware', - 'DeleteOTAFirmware', - 'ListOTAFirmware', - 'QueryOTAFirmware', - 'CreateOTAVerifyJob', - 'CreateOTAStaticUpgradeJob', - 'CreateOTADynamicUpgradeJob', - 'ListOTAJobByFirmware', - 'ListOTAJobByDevice', - 'ListOTATaskByJob', - 'QueryOTAJob', - 'CancelOTAStrategyByJob', - 'CancelOTATaskByJob', - 'CancelOTATaskByDevice', - 'CreateOTAModule', - 'UpdateOTAModule', - 'DeleteOTAModule', - 'ListOTAModuleByProduct', - 'ConfirmOTATask', - 'ListOTAUnfinishedTaskByDevice', - 'ReupgradeOTATask', - 'ListOTAModuleVersionsByDevice', + 'GenerateOTAUploadURL', 'GenerateDeviceNameListURL', 'CreateOTAFirmware', 'ModifyOTAFirmware', 'DeleteOTAFirmware', 'ListOTAFirmware', 'QueryOTAFirmware', 'CreateOTAVerifyJob', 'CreateOTAStaticUpgradeJob', 'CreateOTADynamicUpgradeJob', 'ListOTAJobByFirmware', 'ListOTAJobByDevice', 'ListOTATaskByJob', 'QueryOTAJob', 'CancelOTAStrategyByJob', 'CancelOTATaskByJob', 'CancelOTATaskByDevice', 'CreateOTAModule', 'UpdateOTAModule', 'DeleteOTAModule', + 'ListOTAModuleByProduct', 'ConfirmOTATask', 'ListOTAUnfinishedTaskByDevice', 'ReupgradeOTATask', 'ListOTAModuleVersionsByDevice', ], + 'type' => 'directory', + 'title' => 'OTA升级', + 'id' => 307810, ], [ - 'id' => 96313, - 'title' => '开通服务', + 'children' => ['OpenIotService'], 'type' => 'directory', - 'children' => [ - 'OpenIotService', - ], + 'title' => '开通服务', + 'id' => 307709, ], [ - 'id' => 169425, - 'title' => '增值服务', - 'type' => 'directory', 'children' => [ [ - 'id' => 169428, - 'title' => '音视频通信服务', + 'children' => ['BindLicenseProduct', 'UnbindLicenseProduct', 'BindLicenseDevice', 'CheckBindLicenseDeviceProgress', 'QueryLicenseDeviceList', 'ReBindLicenseDevice'], 'type' => 'directory', - 'children' => [ - 'BindLicenseProduct', - 'UnbindLicenseProduct', - 'BindLicenseDevice', - 'CheckBindLicenseDeviceProgress', - 'QueryLicenseDeviceList', - 'ReBindLicenseDevice', - ], + 'title' => '音视频通信服务', + 'id' => 308094, ], [ - 'id' => 184548, - 'title' => 'IoT孪生引擎', + 'children' => ['ImportDTData'], 'type' => 'directory', - 'children' => [ - 'ImportDTData', - ], + 'title' => 'IoT孪生引擎', + 'id' => 308132, ], [ - 'id' => 169427, - 'title' => '寄雁传书服务', + 'children' => ['PrintByTemplate'], 'type' => 'directory', - 'children' => [ - 'PrintByTemplate', - ], + 'title' => '寄雁传书服务', + 'id' => 308092, ], [ - 'id' => 169430, - 'title' => '位置服务', + 'children' => ['GisQueryDeviceLocation', 'GisSearchDeviceTrace'], 'type' => 'directory', - 'children' => [ - 'GisQueryDeviceLocation', - 'GisSearchDeviceTrace', - ], + 'title' => '位置服务', + 'id' => 308126, ], [ - 'id' => 169426, - 'title' => '千里传音', - 'type' => 'directory', 'children' => [ - 'CreateSpeech', - 'UpdateSpeech', - 'QuerySpeechLicenseAvailableQuota', - 'GetSpeechVoice', - 'TestSpeech', - 'QuerySpeech', - 'QuerySpeechList', - 'PushSpeech', - 'DeleteSpeech', - 'QuerySolutionDeviceGroupPage', - 'QuerySpeechPushJob', - 'QuerySpeechPushJobDevice', - 'QuerySpeechPushJobSpeech', - 'SpeechByCombination', - 'SyncSpeechByCombination', - 'SpeechBySynthesis', - 'QuerySpeechDevice', - 'QueryDeviceSpeech', - 'GetSpeechDeviceDetail', - 'DeleteDeviceSpeech', - 'GetShareTaskByDeviceOpen', - 'GetShareSpeechModelAudio', - 'GetSpeechLicenseDeviceStatistics', - 'QuerySpeechLicenseDeviceList', - 'AddShareTaskDevice', - 'DeleteShareTaskDevice', - 'QueryProjectShareDeviceList', - 'QueryShareTaskDeviceList', - 'ShareSpeechByCombination', - 'PageQuerySharedSpeechOpen', - 'CountSpeechBroadcastHour', - 'PageQuerySpeechBroadcastHour', - 'CreateSharePromotionActivity', - 'QuerySharePromotionActivityAuditResult', - 'AddDeviceToSharePromotion', - 'CreateSharePromotionSpeechModel', - 'QueryShareProductNameByProductKey', - ], - ], - [ - 'id' => 169429, - 'title' => '声码服务', + 'CreateSpeech', 'UpdateSpeech', 'QuerySpeechLicenseAvailableQuota', 'GetSpeechVoice', 'TestSpeech', 'QuerySpeech', 'QuerySpeechList', 'PushSpeech', 'DeleteSpeech', 'QuerySolutionDeviceGroupPage', 'QuerySpeechPushJob', 'QuerySpeechPushJobDevice', 'QuerySpeechPushJobSpeech', 'SpeechByCombination', 'SyncSpeechByCombination', 'SpeechBySynthesis', 'QuerySpeechDevice', 'QueryDeviceSpeech', 'GetSpeechDeviceDetail', 'DeleteDeviceSpeech', + 'GetShareTaskByDeviceOpen', 'GetShareSpeechModelAudio', 'GetSpeechLicenseDeviceStatistics', 'QuerySpeechLicenseDeviceList', 'AddShareTaskDevice', 'DeleteShareTaskDevice', 'QueryProjectShareDeviceList', 'QueryShareTaskDeviceList', 'ShareSpeechByCombination', 'PageQuerySharedSpeechOpen', 'CountSpeechBroadcastHour', 'PageQuerySpeechBroadcastHour', 'CreateSharePromotionActivity', 'QuerySharePromotionActivityAuditResult', 'AddDeviceToSharePromotion', 'CreateSharePromotionSpeechModel', 'QueryShareProductNameByProductKey', + ], 'type' => 'directory', + 'title' => '千里传音', + 'id' => 308054, + ], + [ 'children' => [ - 'CreateSoundCode', - 'DeleteSoundCode', - 'QuerySoundCodeList', - 'GetSoundCodeAudio', - 'CreateSoundCodeSchedule', - 'UpdateSoundCodeSchedule', - 'DeleteSoundCodeSchedule', - 'QuerySoundCodeScheduleList', - 'GetSoundCodeSchedule', - 'UpdateSchedulePeriod', - 'CreateSchedulePeriod', - 'DeleteSchedulePeriod', - 'QuerySchedulePeriodList', - 'CreateSoundCodeLabel', - 'UpdateSoundCodeLabel', - 'DeleteSoundCodeLabel', - 'QuerySoundCodeLabelList', - 'BatchCreateSoundCodeLabel', - 'BatchCreateSoundCodeLabelWithLabels', - 'QuerySoundCodeLabelBatchList', - 'QuerySoundCodeLabelBatchFailedResult', - 'PackageSoundCodeLabelBatchAudio', - 'RetrySoundCodeLabelBatch', - 'UpdateSoundCode', + 'CreateSoundCode', 'DeleteSoundCode', 'QuerySoundCodeList', 'GetSoundCodeAudio', 'CreateSoundCodeSchedule', 'UpdateSoundCodeSchedule', 'DeleteSoundCodeSchedule', 'QuerySoundCodeScheduleList', 'GetSoundCodeSchedule', 'UpdateSchedulePeriod', 'CreateSchedulePeriod', 'DeleteSchedulePeriod', 'QuerySchedulePeriodList', 'CreateSoundCodeLabel', 'UpdateSoundCodeLabel', 'DeleteSoundCodeLabel', 'QuerySoundCodeLabelList', 'BatchCreateSoundCodeLabel', 'BatchCreateSoundCodeLabelWithLabels', 'QuerySoundCodeLabelBatchList', + 'QuerySoundCodeLabelBatchFailedResult', 'PackageSoundCodeLabelBatchAudio', 'RetrySoundCodeLabelBatch', 'UpdateSoundCode', ], + 'type' => 'directory', + 'title' => '声码服务', + 'id' => 308101, ], ], + 'type' => 'directory', + 'title' => '增值服务', + 'id' => 308053, ], [ - 'id' => 96332, - 'title' => '场景联动', + 'children' => ['CreateSceneRule', 'DeleteSceneRule', 'UpdateSceneRule', 'GetSceneRule', 'QuerySceneRule', 'EnableSceneRule', 'DisableSceneRule', 'TriggerSceneRule', 'QuerySummarySceneRuleLog', 'QueryDetailSceneRuleLog'], 'type' => 'directory', - 'children' => [ - 'CreateSceneRule', - 'DeleteSceneRule', - 'UpdateSceneRule', - 'GetSceneRule', - 'QuerySceneRule', - 'EnableSceneRule', - 'DisableSceneRule', - 'TriggerSceneRule', - 'QuerySummarySceneRuleLog', - 'QueryDetailSceneRuleLog', - ], + 'title' => '场景联动', + 'id' => 307725, ], [ - 'id' => 96543, - 'title' => '边缘实例管理', - 'type' => 'directory', 'children' => [ - 'CreateEdgeInstance', - 'DeleteEdgeInstance', - 'UpdateEdgeInstance', - 'GetEdgeInstance', - 'QueryEdgeInstance', - 'BindGatewayToEdgeInstance', - 'QueryEdgeInstanceGateway', - 'BindDriverToEdgeInstance', - 'UnbindDriverFromEdgeInstance', - 'QueryEdgeInstanceDriver', - 'SetEdgeInstanceDriverConfigs', - 'ClearEdgeInstanceDriverConfigs', - 'BatchGetEdgeInstanceDriverConfigs', - 'BatchBindDeviceToEdgeInstanceWithDriver', - 'BatchUnbindDeviceFromEdgeInstance', - 'QueryEdgeInstanceDevice', - 'BatchSetEdgeInstanceDeviceConfig', - 'BatchClearEdgeInstanceDeviceConfig', - 'BatchGetEdgeInstanceDeviceConfig', - 'CreateEdgeInstanceDeployment', - 'CloseEdgeInstanceDeployment', - 'GetEdgeInstanceDeployment', - 'QueryEdgeInstanceHistoricDeployment', + 'CreateEdgeInstance', 'DeleteEdgeInstance', 'UpdateEdgeInstance', 'GetEdgeInstance', 'QueryEdgeInstance', 'BindGatewayToEdgeInstance', 'QueryEdgeInstanceGateway', 'BindDriverToEdgeInstance', 'UnbindDriverFromEdgeInstance', 'QueryEdgeInstanceDriver', 'SetEdgeInstanceDriverConfigs', 'ClearEdgeInstanceDriverConfigs', 'BatchGetEdgeInstanceDriverConfigs', 'BatchBindDeviceToEdgeInstanceWithDriver', 'BatchUnbindDeviceFromEdgeInstance', 'QueryEdgeInstanceDevice', 'BatchSetEdgeInstanceDeviceConfig', 'BatchClearEdgeInstanceDeviceConfig', 'BatchGetEdgeInstanceDeviceConfig', 'CreateEdgeInstanceDeployment', + 'CloseEdgeInstanceDeployment', 'GetEdgeInstanceDeployment', 'QueryEdgeInstanceHistoricDeployment', ], + 'type' => 'directory', + 'title' => '边缘实例管理', + 'id' => 307927, ], [ - 'id' => 96388, - 'title' => '边缘计算新增API', - 'type' => 'directory', 'children' => [ - 'CreateEdgeDriver', - 'DeleteEdgeDriver', - 'BatchGetEdgeDriver', - 'QueryEdgeDriver', - 'CreateEdgeDriverVersion', - 'DeleteEdgeDriverVersion', - 'UpdateEdgeDriverVersion', - 'GetEdgeDriverVersion', - 'QueryEdgeDriverVersion', - 'CreateEdgeOssPreSignedAddress', - 'BindApplicationToEdgeInstance', - 'UnbindApplicationFromEdgeInstance', - 'CreateEdgeInstanceChannel', - 'BatchDeleteEdgeInstanceChannel', - 'UpdateEdgeInstanceChannel', - 'BatchGetEdgeInstanceChannel', - 'QueryEdgeInstanceChannel', - 'BatchSetEdgeInstanceDeviceChannel', - 'BatchGetEdgeInstanceDeviceChannel', - 'QueryEdgeInstanceDeviceByDriver', - 'BatchGetEdgeInstanceDeviceDriver', - 'BatchGetDeviceBindStatus', - 'ReplaceEdgeInstanceGateway', - 'ReleaseEdgeDriverVersion', - 'BindRoleToEdgeInstance', - 'UnbindRoleFromEdgeInstance', + 'CreateEdgeDriver', 'DeleteEdgeDriver', 'BatchGetEdgeDriver', 'QueryEdgeDriver', 'CreateEdgeDriverVersion', 'DeleteEdgeDriverVersion', 'UpdateEdgeDriverVersion', 'GetEdgeDriverVersion', 'QueryEdgeDriverVersion', 'CreateEdgeOssPreSignedAddress', 'BindApplicationToEdgeInstance', 'UnbindApplicationFromEdgeInstance', 'CreateEdgeInstanceChannel', 'BatchDeleteEdgeInstanceChannel', 'UpdateEdgeInstanceChannel', 'BatchGetEdgeInstanceChannel', 'QueryEdgeInstanceChannel', 'BatchSetEdgeInstanceDeviceChannel', 'BatchGetEdgeInstanceDeviceChannel', 'QueryEdgeInstanceDeviceByDriver', + 'BatchGetEdgeInstanceDeviceDriver', 'BatchGetDeviceBindStatus', 'ReplaceEdgeInstanceGateway', 'ReleaseEdgeDriverVersion', 'BindRoleToEdgeInstance', 'UnbindRoleFromEdgeInstance', ], + 'type' => 'directory', + 'title' => '边缘计算新增API', + 'id' => 307783, ], [ - 'id' => 169271, - 'title' => '边缘计算-场景联动', + 'children' => ['BindSceneRuleToEdgeInstance', 'UnbindSceneRuleFromEdgeInstance', 'QueryEdgeInstanceSceneRule'], 'type' => 'directory', - 'children' => [ - 'BindSceneRuleToEdgeInstance', - 'UnbindSceneRuleFromEdgeInstance', - 'QueryEdgeInstanceSceneRule', - ], + 'title' => '边缘计算-场景联动', + 'id' => 308021, ], [ - 'id' => 169434, - 'title' => '边缘计算-远程运维', + 'children' => ['EnableDeviceTunnel', 'GetDeviceTunnelStatus', 'DisableDeviceTunnel', 'GetDeviceTunnelShareStatus', 'EnableDeviceTunnelShare', 'DisableDeviceTunnelShare', 'RefreshDeviceTunnelSharePassword'], 'type' => 'directory', - 'children' => [ - 'EnableDeviceTunnel', - 'GetDeviceTunnelStatus', - 'DisableDeviceTunnel', - 'GetDeviceTunnelShareStatus', - 'EnableDeviceTunnelShare', - 'DisableDeviceTunnelShare', - 'RefreshDeviceTunnelSharePassword', - ], + 'title' => '边缘计算-远程运维', + 'id' => 308134, ], [ - 'id' => 169435, - 'title' => '边缘计算-消息路由', + 'children' => ['CreateEdgeInstanceMessageRouting', 'DeleteEdgeInstanceMessageRouting', 'UpdateEdgeInstanceMessageRouting', 'GetEdgeInstanceMessageRouting', 'QueryEdgeInstanceMessageRouting'], 'type' => 'directory', - 'children' => [ - 'CreateEdgeInstanceMessageRouting', - 'DeleteEdgeInstanceMessageRouting', - 'UpdateEdgeInstanceMessageRouting', - 'GetEdgeInstanceMessageRouting', - 'QueryEdgeInstanceMessageRouting', - 'QueryEdgeInstanceMessageRouting', - ], + 'title' => '边缘计算-消息路由', + 'id' => 308142, ], [ - 'id' => 169158, - 'title' => '物联网应用开发API管理', + 'children' => ['BatchBindProductsIntoProject', 'BatchUnbindProjectProducts', 'BatchBindDevicesIntoProject', 'BatchUnbindProjectDevices', 'QueryStudioProjectList', 'SetStudioProjectCooperation', 'QueryStudioAppList', 'QueryStudioAppPageListOpen', 'QueryStudioAppDomainListOpen', 'DeleteStudioAppDomainOpen', 'CreateStudioAppDomainOpen', 'SetupStudioAppAuthModeOpen', 'GetStudioAppTokenOpen', 'RefreshStudioAppTokenOpen', 'PublishStudioApp'], 'type' => 'directory', - 'children' => [ - 'BatchBindProductsIntoProject', - 'BatchUnbindProjectProducts', - 'BatchBindDevicesIntoProject', - 'BatchUnbindProjectDevices', - 'QueryStudioProjectList', - 'SetStudioProjectCooperation', - 'QueryStudioAppList', - 'QueryStudioAppPageListOpen', - 'QueryStudioAppDomainListOpen', - 'DeleteStudioAppDomainOpen', - 'CreateStudioAppDomainOpen', - 'SetupStudioAppAuthModeOpen', - 'GetStudioAppTokenOpen', - 'RefreshStudioAppTokenOpen', - 'PublishStudioApp', - ], + 'title' => '物联网应用开发API管理', + 'id' => 307970, ], [ - 'id' => 186351, - 'title' => '其他', + 'children' => ['TestSwitch', 'CreateTopicConfig', 'DeleteTopicConfig', 'QueryTopicConfig', 'DeleteUserDefineTableDataByPrimaryKey', 'AddPowerStation', 'DeletePowerStation', 'ListPowerStation', 'ModifyPowerStation', 'StartPTDetection', 'UpdateOTAJob', 'QueryCustomTimelineTableStatus', 'CopyThingModelAsync', 'GetThingModelStatusInner', 'PublishThingModelAsync', 'PublishThingModelAsyncInner', 'UnsubscribeTopic'], 'type' => 'directory', - 'children' => [ - 'TestSwitch', - 'CreateTopicConfig', - 'DeleteTopicConfig', - 'QueryTopicConfig', - 'DeleteUserDefineTableDataByPrimaryKey', - 'AddPowerStation', - 'DeletePowerStation', - 'ListPowerStation', - 'ModifyPowerStation', - 'StartPTDetection', - 'UpdateOTAJob', - 'QueryCustomTimelineTableStatus', - 'CopyThingModelAsync', - 'GetThingModelStatusInner', - 'PublishThingModelAsync', - 'PublishThingModelAsyncInner', - 'UnsubscribeTopic', - ], + 'title' => '其他', + 'id' => 308150, ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ - 'BatchGrayMigrationDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddDataForApiSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => true, 'example' => 'iot-0pp1n*****'], + ], + [ + 'name' => 'ApiId', + 'in' => 'query', + 'schema' => ['description' => 'API数据源ID,即**API ID**。您可在物联网平台控制台的**数据分析** > **数据采集** > **数据源**页面,查看API数据源的**API ID**。'."\n" + ."\n" + .'API数据源的更多信息,请参见[配置API数据源](~~307003~~)。', 'type' => 'string', 'required' => true, 'example' => 'cxatswiniekxw***'], + ], + [ + 'name' => 'Content', 'in' => 'query', + 'schema' => ['description' => '上传到物联网平台的数据内容。JSON格式。'."\n" + .'JSON中必须包含**ts**字段,用来表示数据产生的时间点(unix 毫秒精度的时间戳)。', 'type' => 'string', 'required' => true, 'example' => '{"key":"value","ts":16376582*****}'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'Data' => ['description' => '数据ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1234567890'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09934561E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.serverError', 'errorMessage' => 'server hsf error please try later.', 'description' => '后端HSF服务错误,请稍后重试'], + ['errorCode' => 'iot.dap.insight.notEnoughCU', 'errorMessage' => 'There is not enough CU for the operation.', 'description' => 'CU不足,无法执行操作。'], + ['errorCode' => 'iot.dap.insight.notEnoughStorage', 'errorMessage' => 'There is not enough storage for the operation.', 'description' => '存储空间不足,无法执行操作。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": 1234567890,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09934561E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n BB71E443-4447-4024-A000-EDE09934561E\\n 1234567890\\n \\n true\\n","errorExample":""}]', + 'title' => 'AddDataForApiSource', + 'summary' => '调用该接口向物联网平台导入外部数据。通过此API导入物联网平台的数据,称为API数据源的数据。您可将本地或其他平台的数据上传至物联网平台,用于数据的分析和处理。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'AddDeviceToSharePromotion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'DeviceNames', + 'name' => 'SharePromotionActivityId', + 'in' => 'formData', + 'schema' => ['description' => '促销活动ID。'."\n" + ."\n" + .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', 'type' => 'string', 'required' => true, 'example' => '61******_****_4901_****_47***********'], + ], + [ + 'name' => 'ShareTaskCode', + 'in' => 'formData', + 'schema' => ['description' => '分享任务的分享码。'."\n" + ."\n" + .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', 'type' => 'string', 'required' => true, 'example' => '52******_7**e_4**3_9**e_61**********'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cv3********'], + ], + [ + 'name' => 'DeviceSimpleInfoList', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '待灰度迁移的设备名称列表。'."\n" - ."\n" - .'单次调用本接口,最多传入10个设备名称。超出10个的设备名称会被直接丢弃。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '待添加共享设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a2YwD2****'], + 'DeviceName' => ['description' => '待添加的共享设备名称。', 'type' => 'string', 'required' => true, 'example' => 'device01'], + ], + 'description' => '', ], 'required' => true, - 'example' => 'light', - 'maxItems' => 10, + 'maxItems' => 200, + 'description' => '', ], ], ], @@ -715,402 +366,186 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.speech.InvalidIotInstanceId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Invalid instance ID.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的迁移结果。', + 'description' => '返回的添加结果。', 'type' => 'object', 'properties' => [ - 'Details' => [ + 'FailDeviceSimpleInfoList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ 'item' => [ - 'description' => '返回的设备迁移状态信息。', + 'description' => '添加失败的共享设备列表文件。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '设备迁移状态。'."\n" - ."\n" - .'- **DEVICE_SUCCEEDED**:成功。'."\n" - .'- **DEVICE_FAILED**:失败。', - 'type' => 'string', - 'example' => 'SUCCEEDED', - ], - 'Code' => [ - 'description' => '迁移失败返回的错误码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '500', - ], - 'Message' => [ - 'description' => '迁移失败,返回的出错信息。', - 'type' => 'string', - 'example' => '系统错误', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], + 'ProductKey' => ['description' => '添加失败的共享设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a2YwD2****'], + 'DeviceName' => ['description' => '添加失败的共享设备名称。', 'type' => 'string', 'example' => 'device02'], + 'FailReason' => ['description' => '添加失败的描述。', 'type' => 'string', 'example' => '设备在共享中不存在'], + 'FailCode' => ['description' => '添加失败的错误码。'."\n" + ."\n" + .'- **1**:设备在共享中不存在。'."\n" + .'- **2**:设备已经在大促中存在。'."\n" + .'- **3**:批量操作异常,请稍后重试。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.InvalidParams', - 'errorMessage' => 'The parameter is invalid。', - ], - [ - 'errorCode' => 'iot.provisioning.TaskNotExist', - 'errorMessage' => 'Task not exists.', - ], - [ - 'errorCode' => 'iot.provisioning.InvalidDistributionStatus', - 'errorMessage' => 'The distribution status is invalid.', - ], + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Details\\": {\\n \\"item\\": [\\n {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"Code\\": 500,\\n \\"Message\\": \\"系统错误\\",\\n \\"DeviceName\\": \\"light\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n
\\n \\n DEVICE_SUCCEEDED\\n light\\n \\n
\\n
\\ntrue\\n
","errorExample":""}]', - 'title' => 'BatchGrayMigrationDevice', - 'summary' => '调用该接口持续灰度迁移新增设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"FailDeviceSimpleInfoList\\": {\\n \\"item\\": [\\n {\\n \\"ProductKey\\": \\"a2YwD2****\\",\\n \\"DeviceName\\": \\"device02\\",\\n \\"FailReason\\": \\"设备在共享中不存在\\",\\n \\"FailCode\\": 1\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n \\n \\n 1\\n 设备在共享中不存在\\n a2YwD2****\\n device02\\n \\n \\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'AddDeviceToSharePromotion', + 'summary' => '调用该接口将千里传音分享任务中已有共享设备添加到促销活动中。', 'description' => '## 使用说明'."\n" - .'实例迁移时,如果有新增设备未灰度迁移,可以调用本接口持续灰度迁移增量设备。'."\n" - ."\n" - .'调用本接口前,已在[物联网平台控制台](https://iot.console.aliyun.com/)创建灰度迁移任务,并灰度验证完成,任务已处于灰度完成状态。具体操作,请参见[实例迁移](~~353160~~)。'."\n" + .'促销活动使用的详细说明,请参见**CreateSharePromotionActivity**接口文档的**使用说明**。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CreateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AddPowerStation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot-***-v64***', - ], - ], - [ - 'name' => 'ProductName', - 'in' => 'query', - 'schema' => [ - 'description' => '为新建产品命名。'."\n" - .'产品名称长度为4~30个字符,可以包含中文、英文字母、数字和下划线(_)。一个中文算2个字符。'."\n" - ."\n" - .'> 产品名称在当前实例下需保持唯一。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => 'Light', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'NodeType', + 'name' => 'AlgorithmInstanceUid', 'in' => 'query', - 'schema' => [ - 'description' => '产品的节点类型,取值:'."\n" - ."\n" - .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。作为网关子设备时,必须同时传入**ProtocolType**。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。'."\n" - ."\n" - .''."\n" - .'>MQTT型实例下,设备需作为直连设备接入物联网平台,**NodeType**必须传入**0.**。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'DataFormat', + 'name' => 'PowerStationName', 'in' => 'query', - 'schema' => [ - 'description' => '数据格式。可选值:'."\n" - ."\n" - .'- **0**:透传/自定义格式(CUSTOM_FORMAT)。'."\n" - .'- **1**:Alink协议(ALINK_FORMAT)。'."\n" - ."\n" - .''."\n" - .'>MQTT型实例下,设备通信的数据格式为原始自定义格式,**DataFormat**必须传入**0**。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '为新建产品添加描述信息。长度不超过100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'Product test', - ], - ], - [ - 'name' => 'AliyunCommodityCode', - 'in' => 'query', - 'schema' => [ - 'description' => '产品版本类型。 '."\n" - ."\n" - .'- 不传入此参数:表示默认创建基础版产品,不支持使用物模型。'."\n" - .'- 传入此参数:仅支持输入**iothub_senior**,表示创建使用物模型的产品。此时需要同时传入参数**DataFormat**。'."\n" - ."\n" - .''."\n" - .'>'."\n" - .'- MQTT型实例下,不支持使用物模型,无需传入此参数。'."\n" - .'- 对于基础版产品,不支持在物联网平台控制台使用**在线调试**和**事件响应**功能。'."\n" - ."\n" - .'>'."\n" - ."\n" - .''."\n" - .'>对于基础版产品,不支持在物联网平台控制台使用**在线调试**功能。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iothub_senior', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'Id2', + 'name' => 'RatedPower', 'in' => 'query', - 'schema' => [ - 'description' => '是否使用ID²认证。可选值:'."\n" - ."\n" - .''."\n" - .'- **true**:开通ID²认证。'."\n" - .'- **false**:不开通ID²认证。'."\n" - ."\n" - .''."\n" - ."\n" - .'不传入此参数,则默认为**false**,不开通ID²认证。'."\n" - ."\n" - .''."\n" - .'> 仅华东2(上海)地域支持ID²认证方式。如果此参数值设置为**true**,但传入的**AuthType**参数值不是**id2**,系统将以**AuthType**参数值为准。'."\n" - ."\n" - .'无需传入。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], - [ - 'name' => 'ProtocolType', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备接入网关的协议类型。'."\n" - .'使用物模型的产品(**AliyunCommodityCode**=**iothub_senior**),且产品下的设备需通过网关接入物联网平台,需传入此参数。'."\n" - ."\n" - .'可选值:'."\n" - ."\n" - .'- **modbus**:Modbus协议。'."\n" - .'- **opc-ua**:OPC UA协议。'."\n" - .'- **customize**:自定义协议。'."\n" - .'- **ble**:BLE协议。'."\n" - .'- **zigbee**:ZigBee协议。', - 'type' => 'string', - 'required' => false, - 'example' => 'modbus', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'string'], + 'Data' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + ], ], ], - [ - 'name' => 'NetType', - 'in' => 'query', - 'schema' => [ - 'description' => '连网方式。'."\n" - .'产品下的设备为网关设备或直连设备时,需传入此参数。'."\n" - ."\n" - .'可选值:'."\n" - ."\n" - .'- **LORA**:LoRaWAN。'."\n" - .'- **WIFI**: Wi-Fi。'."\n" - .'- **CELLULAR**:蜂窝网。'."\n" - .'- **ETHERNET**:以太网。'."\n" - .'- **OTHER**:其他。'."\n" - ."\n" - .'若不传入此参数,则默认为Wi-Fi。'."\n" - ."\n" - .''."\n" - .'>MQTT型实例下,**NetType**不支持传入**LORA**。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'WIFI', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.exceedSubscribeNumber', 'errorMessage' => 'Exceed subscribe number.', 'description' => '超过购买站点数,无法创建站点。'], ], - [ - 'name' => 'JoinPermissionId', - 'in' => 'query', - 'schema' => [ - 'description' => 'LoRaWAN入网凭证ID。连网方式**NetType**选择为**LORA**时,该参数必需。'."\n" - ."\n" - .'请调用[QueryLoRaJoinPermissions](~~109293~~)查询您账号下的LoRaWAN入网凭证的**JoinPermissionId**。'."\n" - ."\n" - .'如果您还没有LoRaWAN入网凭证,请访问[物联网络管理平台](https://linkwan.console.aliyun.com/join-permission-authorization)创建。'."\n" - ."\n" - .'无需传入。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '8***', - ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], ], + ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Data\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'AddShareTaskDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>'."\n" - .'- 目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'- 历史调用本API设置的资源组仍有效。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph***', - ], + 'AK' => [], ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'AuthType', - 'in' => 'query', - 'schema' => [ - 'description' => '产品下的设备接入物联网平台的认证方式。'."\n" - ."\n" - .''."\n" - .'- **secret**:使用设备密钥进行设备身份认证。更多信息,请参见[MQTT-TCP连接通信](~~73742~~)。'."\n" - ."\n" - .'- **id2**:使用物联网设备身份认证ID²。'."\n" - ."\n" - .' > 仅华东2(上海)地域支持ID²认证方式。连网方式**NetType**为**LORA**的产品不支持ID²认证方式。 选择使用ID²认证,需购买ID²服务。'."\n" - ."\n" - .' 更多信息,请参见[使用ID²认证](~~141661~~)。'."\n" - ."\n" - .'- **one-party**:需要将设备认证信息(UserName、Password、SN)导入物联网平台,物联网平台基于设备认证信息对设备进行身份认证。'."\n" - ."\n" - .' > 仅MQTT型实例下,**AuthType**可以且必须传入**one-party**。'."\n" - ."\n\n" - .''."\n" - ."\n\n" - .'若不传入此参数,默认值为**secret**。'."\n" - ."\n" - .'无需传入此参数。默认值为**secret**,表示使用设备密钥进行设备身份认证。更多信息,请参见[MQTT-TCP连接通信](~~73742~~)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'secret', - ], + 'name' => 'ShareTaskId', + 'in' => 'formData', + 'schema' => ['description' => '分享任务ID。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'CategoryKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品品类的标识符。如果传入此参数,创建的产品将使用指定品类的物模型;不传入,则不使用任何品类的标准物模型。'."\n" - .'调用[ListThingTemplates](~~150316~~),从返回结果中查看物联网平台预定义的品类信息,获取CategoryKey的取值。', - 'type' => 'string', - 'required' => false, - 'example' => 'Lighting', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], ], [ - 'name' => 'PublishAuto', - 'in' => 'query', - 'schema' => [ - 'description' => '是否在产品创建后自动发布物模型。'."\n" - ."\n" - .'- **true**:发布。'."\n" - .'- **false**:不发布。'."\n" - ."\n" - .'不传入此参数,取默认值为**true**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '待添加设备所属产品的**ProductKey**。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => false, 'example' => 'a2YwD23***'], ], [ - 'name' => 'ValidateType', - 'in' => 'query', + 'name' => 'IotIdList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '数据校验级别。不传入此参数时,默认为弱校验。可取值:'."\n" - ."\n" - .'- **1**:弱校验。只校验设备数据的idetifier和dataType字段,不校验其他字段,可流转全量数据。'."\n" - ."\n" - .' 校验通过的数据展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。校验不通过的数据则不展示。'."\n" - ."\n" - .' 通过流转数据中的参数**checkFailedData**,可查看校验不通过的数据。更多信息,请参见[数据格式](~~73736~~)。'."\n" - ."\n" - .'- **2**:免校验。对上报的数据不进行校验,流转全量数据。'."\n" + 'description' => '待添加的设备列表,需传入设备对应的**IotId**,该参数可以通过调用[QueryDevice](~~69905~~)获取。'."\n" ."\n" - .' 数据不展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', + .'>如果传入该参数,则无需传入**ProductKey**。如果您同时传入**IotIdList**和**ProductKey**,则以**IotIdList**为准。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => '1', + 'example' => 'y4u2weAIrpp****WHMle1234 ', + 'maxItems' => 10000, ], ], ], @@ -1119,506 +554,198 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], - 'ProductKey' => [ - 'description' => '产品的**ProductKey**,物联网平台为产品颁发的唯一标识符。', - 'type' => 'string', - 'example' => 'a1FlqIQ****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的新建产品信息。', + 'description' => '返回的添加结果。', 'type' => 'object', 'properties' => [ - 'AuthType' => [ - 'description' => '产品下的设备接入物联网平台的认证方式。'."\n" - ."\n" - .''."\n" - .'- **secret**:使用设备密钥进行设备身份认证。'."\n" - .'- **id2**:使用物联网设备身份认证ID²。'."\n" - .'- **one-party**:使用自定义认证信息(Username、Password、SN)认证。'."\n" - ."\n" - .'', - 'type' => 'string', - 'example' => 'secret', - ], - 'ProductKey' => [ - 'description' => '物联网平台为新建产品颁发的全局唯一标识。'."\n" - ."\n" - .'> 请妥善保管新建产品的**ProductKey**。在其他操作中会用到该信息。', - 'type' => 'string', - 'example' => 'a1FlqIQ****', - ], - 'ProductName' => [ - 'description' => '产品的名称。', - 'type' => 'string', - 'example' => 'Test', - ], - 'NodeType' => [ - 'description' => '产品的节点类型,取值:'."\n" - ."\n" - .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。'."\n" - ."\n" - .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '产品描述信息。', - 'type' => 'string', - 'example' => 'Product test', - ], - 'Id2' => [ - 'description' => '是否使用ID²认证。'."\n" - ."\n" - .'- **true**:开通ID²认证。'."\n" - .'- **false**:不开通ID²认证。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'ProductSecret' => [ - 'description' => '产品密钥。', - 'type' => 'string', - 'example' => 'U5tW7i44uilc****', - ], - 'ProtocolType' => [ - 'description' => '设备接入网关协议类型。'."\n" - ."\n" - .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', - 'type' => 'string', - 'example' => 'modbus', - ], - 'DataFormat' => [ - 'description' => '产品类型数据格式。'."\n" - ."\n" - .'- **0**:透传/自定义格式(CUSTOM_FORMAT)。'."\n" - .'- **1**:Alink协议(ALINK_FORMAT)。'."\n" - ."\n" - .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'AliyunCommodityCode' => [ - 'description' => '产品类型。'."\n" - ."\n" - .'- **iothub_senior**:使用物模型。'."\n" - .'- **iothub**:不使用物模型。', - 'type' => 'string', - 'example' => 'iothub_senior', - ], + 'ProgressId' => ['description' => '进度ID。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'SuccessSum' => ['description' => '添加成功的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Progress' => ['description' => '添加进度,可取值0~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'FailedResultCsvFile' => ['description' => '添加失败的设备列表文件。', 'type' => 'string', 'example' => 'https://****.csv'], + 'FailSum' => ['description' => '添加失败的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ProductKey\\": \\"a1FlqIQ****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1FlqIQ****\\",\\n \\"ProductName\\": \\"Test\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"Product test\\",\\n \\"Id2\\": false,\\n \\"ProductSecret\\": \\"U5tW7i44uilc****\\",\\n \\"ProtocolType\\": \\"modbus\\",\\n \\"DataFormat\\": 1,\\n \\"AliyunCommodityCode\\": \\"iothub_senior\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n Product test\\n 1\\n modbus\\n a1FlqIQ****\\n U5tW7i44uilc****\\n 0\\n Test\\n iothub_senior\\n secret\\n rg-acfmxazb4ph****\\n \\n a1FlqIQ****\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n","errorExample":""}]', - 'title' => '新建产品', - 'summary' => '调用该接口创建产品。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.sharetask.EmptyShareDevice', 'errorMessage' => 'no device to share.', 'description' => '无设备分享。'], + ['errorCode' => 'iot.sharetask.ShareDeviceProcessing', 'errorMessage' => 'share device processing.', 'description' => '分享设备处理中。'], + ['errorCode' => 'Iot.sharetask.ImportDevicePartFail', 'errorMessage' => 'Failed to import some of the devices.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProgressId\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"FailedResultCsvFile\\": \\"https://****.csv\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n https://****.csv\\n 100\\n Md3ZiTL888K9llXDy7890***********\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'AddShareTaskDevice', + 'summary' => '调用该接口添加设备到分享任务。', 'description' => '## 使用说明'."\n" - .''."\n" - .'- 若产品需要使用物模型功能,必选传入请求参数**AliyunCommodityCode**和**DataFormat**,且**AliyunCommodityCode**值为**iothub_senior**。详细说明,请参见下文**请求参数**表。'."\n" - .'- 在MQTT型实例下仅支持创建一个产品。'."\n" - ."\n" - .''."\n" - ."\n" - .'若产品需要使用物模型功能,必选传入请求参数**AliyunCommodityCode**和**DataFormat**,且**AliyunCommodityCode**值为**iothub_senior**。详细说明,请参见下文**请求参数**表。'."\n" + .'单次调用本接口添加设备的数量不能超过50。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AsyncRRpc' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要接收消息的设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'aldfeSe****'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:表示调用成功。'."\n" - ."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的产品信息详情。', - 'type' => 'object', - 'properties' => [ - 'Owner' => [ - 'description' => '调用者是否是产品的拥有者。'."\n" - ."\n" - .'- **true**:是。'."\n" - ."\n" - .'- **false**:不是。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => '路灯', - ], - 'ProductSecret' => [ - 'description' => '产品密钥。', - 'type' => 'string', - 'example' => 'U5tW7i44uilc****', - ], - 'DataFormat' => [ - 'description' => '设备与云端之间的数据通信协议类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n" - .'取值:'."\n" - ."\n" - .'- **0**:透传模式。使用自定义的串口数据格式。该模式下,设备可以上报原始数据(如二进制数据流)。阿里云物联网平台会运行您配置在云端的数据解析脚本,将原始数据转换成Alink JSON标准数据格式。'."\n" - ."\n" - .'- **1**:Alink JSON。阿里云物联网平台定义的设备与云端的数据交换协议,采用 JSON 格式。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CategoryName' => [ - 'description' => '产品所属品类的名称。'."\n" - .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。'."\n" - .'该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。', - 'type' => 'string', - 'example' => '路灯照明', - ], - 'ProductStatus' => [ - 'description' => '产品的状态。'."\n" - ."\n" - .'- **DEVELOPMENT_STATUS**:开发中。'."\n" - ."\n" - .'- **RELEASE_STATUS**:产品已发布。', - 'type' => 'string', - 'example' => 'DEVELOPMENT_STATUS', - ], - 'AliyunCommodityCode' => [ - 'description' => '产品类型,决定是否使用物模型功能。'."\n" - .'取值:'."\n" - ."\n" - .'- **iothub_senior**:使用物模型。'."\n" - .'- **iothub**:不使用物模型。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'iothub_senior', - ], - 'DeviceCount' => [ - 'description' => '该产品下的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'AuthType' => [ - 'description' => '产品下的设备接入物联网平台的认证方式。'."\n" - ."\n" - .'- **secret**:使用设备密钥进行设备身份认证。'."\n" - ."\n" - .'- **id2**:使用物联网设备身份认证ID²。'."\n" - ."\n" - .'- **x509**:使用设备X.509证书进行设备身份认证。', - 'type' => 'string', - 'example' => 'secret', - ], - 'ProductKey' => [ - 'description' => '产品的ProductKey。创建产品时,物联网平台为该产品颁发的全局唯一标识。', - 'type' => 'string', - 'example' => 'a1T27vz****', - ], - 'NodeType' => [ - 'description' => '产品的节点类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。取值:'."\n" - ."\n" - .'- **0**:设备。设备不能挂载子设备,可以直连IoT Hub,也可以作为网关的子设备连接IoT Hub。'."\n" - ."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,并且可以将拓扑关系同步到云端。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '产品描述。', - 'type' => 'string', - 'example' => '智能路灯', - ], - 'ValidateType' => [ - 'description' => '数据校验级别。可取值:'."\n" - ."\n" - .'- **2**:免校验。对上报的数据不进行校验,流转全量数据。'."\n" - ."\n" - .' 数据不展示在物联网平台控制台对应设备的设备详情页物模型数据页签。'."\n" - ."\n" - .'- **1**:弱校验。只校验设备数据的idetifier和dataType字段,不校验其他字段,流转全量数据。'."\n" - ."\n\n" - .'- **0**:强校验。校验所有字段,仅流转校验通过的数据。'."\n" - .' '."\n" - .'对于2020年10月14日之前(不含当日)创建的产品,仅支持强校验。'."\n" - ."\n" - .'对于2020年10月14日(含当日)之后创建的产品,支持弱校验和免校验。'."\n" - ."\n" - .'强校验和弱校验后:'."\n" - ."\n" - .'- 校验通过的数据展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。校验不通过的数据则不展示。'."\n" - ."\n" - .'- 通过流转数据中的参数**checkFailedData**,可查看校验不通过的数据,请参见[数据格式](~~73736~~)。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Id2' => [ - 'description' => '该产品是否使用ID²认证。取值:'."\n" - ."\n" - .'- **true**:使用ID²认证。'."\n" - ."\n" - .'- **false**:不使用ID²认证。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'NetType' => [ - 'description' => '产品下设备的联网方式。取值:'."\n" - ."\n" - .'- **3**:Wi-Fi。'."\n" - ."\n" - .'- **6**:Cellular(2G/3G/4G/5G)蜂窝网。'."\n" - ."\n" - .'- **7**:Ethernet以太网。'."\n" - ."\n" - .'- **8**:其他。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'GmtCreate' => [ - 'description' => '该产品的创建时间。毫秒级时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942000', - ], - 'ProtocolType' => [ - 'description' => '子设备接入网关的协议类型。'."\n" - .'此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior),且产品节点类型为要接入网关的设备的特有参数。取值:'."\n" - ."\n" - .'- **modbus**:Modbus协议。'."\n" - ."\n" - .'- **opc-ua**:OPC UA协议。'."\n" - ."\n" - .'- **customize**:自定义协议。'."\n" - ."\n" - .'- **ble**:BLE协议。'."\n" - ."\n" - .'- **zigbee**:ZigBee协议。', - 'type' => 'string', - 'example' => 'modbus', - ], - 'CategoryKey' => [ - 'description' => '产品所属品类的标识符。'."\n" - .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。'."\n" - .'该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n", - 'type' => 'string', - 'example' => 'Lighting', - ], - ], - ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要接收消息的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'device1'], + ], + [ + 'name' => 'ExtInfo', + 'in' => 'query', + 'schema' => ['description' => '发送消息给云网关GB/T 32960协议的设备时,需要传入此参数,标识消息的命令类型,可取值:'."\n" + ."\n" + .'- **128**:查询命令(0x80)。'."\n" + .'- **129**:设置命令(0x81)。'."\n" + .'- **130**:车载终端控制命令(0x82)。'."\n" + ."\n\n" + .'云网关GB/T 32960协议的设备接入详情,请参见[云网关GB/T 32960协议概述](~~2248990~~)。', 'type' => 'string', 'required' => false, 'example' => '{"commandType": 128}'], + ], + [ + 'name' => 'MessageContent', + 'in' => 'formData', + 'schema' => ['description' => '要发送的消息主体。'."\n" + ."\n" + .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', 'type' => 'string', 'required' => true, 'example' => 'eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0='], + ], + [ + 'name' => 'TopicFullName', + 'in' => 'query', + 'schema' => ['description' => '发送消息给MQTT协议设备时,需要传入对应设备的自定义Topic。Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" + ."\n" + .'发送消息给云网关GB/T 32960协议的设备时,无需传入此参数。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '/a1uZfYb****/A_Vol****/user/update'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.device.InvalidFormattedDeviceName'], + 'MessageId' => ['description' => '成功发送请求消息后,云端生成的消息ID,用于标识该消息。', 'type' => 'integer', 'format' => 'int64', 'example' => '889455942124347392'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '设备名称格式错误。'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Owner\\": true,\\n \\"ProductName\\": \\"路灯\\",\\n \\"ProductSecret\\": \\"U5tW7i44uilc****\\",\\n \\"DataFormat\\": 1,\\n \\"CategoryName\\": \\"路灯照明\\",\\n \\"ProductStatus\\": \\"DEVELOPMENT_STATUS\\",\\n \\"AliyunCommodityCode\\": \\"iothub_senior\\",\\n \\"DeviceCount\\": 0,\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1T27vz****\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"智能路灯\\",\\n \\"ValidateType\\": 1,\\n \\"Id2\\": false,\\n \\"NetType\\": 3,\\n \\"GmtCreate\\": 1581595942000,\\n \\"ProtocolType\\": \\"modbus\\",\\n \\"CategoryKey\\": \\"Lighting\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 路灯照明\\n 1\\n a1BwAGV****\\n DEVELOPMENT_STATUS\\n 1581595942000\\n U5tW7i44uilc****\\n 0\\n 路灯\\n 1\\n 0\\n 3\\n secret\\n Lighting\\n false\\n iothub_senior\\n\\nDA5A3C45-D457-48ED-9A20-AEDEA8503401\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定产品的详细信息', - 'summary' => '调用该接口查询指定产品的详细信息。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n" - .' '."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey is empty.', 'description' => '入参产品ID没有赋值。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is incorrect.', 'description' => '请求参数ProductKey错误,请修改后重试。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The deviceName is empty.', 'description' => '空的设备名称。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The deviceName format is incorrect.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'iot.device.InactiveDevice', 'errorMessage' => 'The device is inactive.', 'description' => '设备未激活,即物理设备从未连接物联网平台。'], + ['errorCode' => 'iot.device.OfflineDevice', 'errorMessage' => 'The device is offline.', 'description' => '设备离线。'], + ['errorCode' => 'iot.Device.NotExistedDevice', 'errorMessage' => 'This device does not exist.', 'description' => '设备不存在或未激活。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidFormattedDeviceName\\",\\n \\"MessageId\\": 889455942124347400,\\n \\"ErrorMessage\\": \\"设备名称格式错误。\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n889455942124347400\\n","errorExample":""}]', + 'title' => 'AsyncRRpc', + 'summary' => '调用该接口向指定设备发送消息。', + 'description' => '## 使用说明'."\n" + .'对于MQTT协议(包括云网关和非云网关)和云网关GB/T 32960协议的设备,可调用本接口从服务端下发消息给对应设备。'."\n" ."\n" - .' ', + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1,000。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryProductList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'AttachDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', + 'name' => 'IsFailover', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的产品数量,最大值是200。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], + 'schema' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'required' => true, 'example' => 'false'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'AliyunCommodityCode', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '指定要查看的产品类型,取值:'."\n" - ."\n" - .'- **iothub_senior**:使用物模型版产品。'."\n" - ."\n" - .'- **iothub**:不使用物模型版产品。'."\n" - ."\n" - .'> 如果不传入该参数,则返回所有产品的列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'iothub_senior', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999', 'minimum' => '1', 'example' => '1000'], ], [ - 'name' => 'CurrentPage', + 'name' => 'DestinationId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999', 'minimum' => '0', 'example' => '1002'], ], ], 'responses' => [ @@ -1626,228 +753,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '4B4ECF2C-6222-42EC-A4B5-C12202E71CEA', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:表示调用成功。'."\n" - ."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的产品信息。具体信息请参见以下参数。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示的产品数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Total' => [ - 'description' => '产品总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '184', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '92', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductInfo' => [ - 'description' => '产品信息列表。'."\n" - ."\n" - .'> 返回的产品信息按照产品创建时间倒序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AuthType' => [ - 'description' => '产品下的设备接入物联网平台的认证方式。'."\n" - ."\n" - .'- **secret**:使用设备密钥进行设备身份认证。'."\n" - ."\n" - .'- **id2**:使用物联网设备身份认证ID²。'."\n" - ."\n" - .'- **x509**:使用设备X.509证书进行设备身份认证。', - 'type' => 'string', - 'example' => 'secret', - ], - 'ProductKey' => [ - 'description' => '产品的ProductKey。创建产品时,物联网平台为该产品颁发的全局唯一标识。', - 'type' => 'string', - 'example' => 'a1T27vz****', - ], - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => '路灯', - ], - 'Description' => [ - 'description' => '产品描述。', - 'type' => 'string', - 'example' => 'This is a test product.', - ], - 'NodeType' => [ - 'description' => '产品的节点类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。取值:'."\n" - ."\n" - .'- **0**:设备。设备不能挂载子设备,可以直连IoT Hub,也可以作为网关的子设备连接IoT Hub。'."\n" - ."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,并且可以将拓扑关系同步到云端。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'GmtCreate' => [ - 'description' => '该产品的创建时间。毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942000', - ], - 'DataFormat' => [ - 'description' => '设备与云端之间的数据通信协议类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n" - .'取值:'."\n" - ."\n" - .'- **0**:透传模式。使用自定义的串口数据格式。该模式下,设备可以上报原始数据(如二进制数据流)。阿里云物联网平台会运行您配置在云端的数据解析脚本,将原始数据转换成Alink JSON标准数据格式。'."\n" - ."\n" - .'- **1**:Alink JSON。阿里云物联网平台定义的设备与云端的数据交换协议,采用JSON格式。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DeviceCount' => [ - 'description' => '产品下的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '128', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4B4ECF2C-6222-42EC-A4B5-C12202E71CEA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 184,\\n \\"PageCount\\": 92,\\n \\"List\\": {\\n \\"ProductInfo\\": [\\n {\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1T27vz****\\",\\n \\"ProductName\\": \\"路灯\\",\\n \\"Description\\": \\"This is a test product.\\",\\n \\"NodeType\\": 0,\\n \\"GmtCreate\\": 1581595942000,\\n \\"DataFormat\\": 1,\\n \\"DeviceCount\\": 128\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n 92\\n 2\\n \\n \\n 1\\n a1A0D4t****\\n 0\\n 路灯产品\\n 1\\n 1569233025000\\n secret\\n \\n \\n 1\\n a1dEvuQ****\\n 0\\n 子设备custom\\n 0\\n 1568690432000\\n secret\\n \\n \\n 1\\n 184\\n\\n4B4ECF2C-6222-42EC-A4B5-C12202E71CEA\\ntrue\\n","errorExample":""}]', - 'title' => '查看所有产品列表', - 'summary' => '调用该接口查看所有产品列表。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'Destination not found', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.SameDestinationExisted', 'errorMessage' => 'The destination has been attached', 'description' => ''], + ['errorCode' => 'iot.ruleng.OnlyAllowOneErrorAction', 'errorMessage' => 'You can specify only one destination to forward data errors in a rule', 'description' => ''], + ['errorCode' => 'iot.rule.TooManyRuleAction', 'errorMessage' => 'The rule action exceeds the maximum number', 'description' => ''], + ['errorCode' => 'iot.rule.DestinationNotAvailable', 'errorMessage' => 'destination not available', 'description' => '云产品数据目的配置暂不可用,请稍后重试'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'AttachDestination', + 'summary' => '调用该接口为解析器关联指定数据目的。', + 'description' => '## 使用说明'."\n" + .'已经创建数据目的([CreateDestination](~~433032~~))和解析器([CreateParser](~~429044~~))。'."\n" ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + .'## QPS限制'."\n" ."\n" - .'- 当请求参数**CurrentPage**与**PageSize**的值相乘结果大于或等于100000时,会降低调用该接口的QPS。'."\n" - .' 此时,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - ."\n\n" - ."\n\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:AttachDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'AttachParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '描述产品信息。长度不超过100个字符。一个中文算一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '第二代路灯产品。', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'ProductKey', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**,物联网平台为产品颁发的全局唯一标识符。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)接口,查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999999', 'minimum' => '1', 'example' => '1000'], ], [ - 'name' => 'ProductName', + 'name' => 'DataSourceId', 'in' => 'query', - 'schema' => [ - 'description' => '修改后的产品名称。'."\n" - .'产品名称长度为4~30个字符,可以包含中文、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" - ."\n" - .'> 产品名称在当前实例下需保持唯一。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '路灯', - ], + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -1855,92 +843,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC4FDA54C-4201-487F-92E9-022F42387458\\ntrue\\n","errorExample":""}]', - 'title' => '修改指定产品的信息', - 'summary' => '调用该接口修改指定产品的信息。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'AttachParserDataSource', + 'summary' => '调用该接口为指定解析器关联指定数据源。', + 'description' => '## 使用说明'."\n" + .'已调用接口创建数据源([CreateParserDataSource](~~433011~~))和解析器([CreateParser](~~429044~~))。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'>'."\n" + .'1个解析器最多关联1个数据源,如果指定解析器已关联数据源,调用该接口会覆盖该解析器关联的原数据源。'."\n" + .'>'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:AttachParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchAddDataForApiSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-64***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => true, 'example' => 'iot-0pp1n*****'], ], [ - 'name' => 'ProductKey', + 'name' => 'ApiId', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => 'API数据源ID,即**API ID**。您可在物联网平台控制台的**数据分析** > **数据采集** > **数据源**页面,查看API数据源的**API ID**。'."\n" + ."\n" + .'API数据源的更多信息,请参见[配置API数据源](~~307003~~)。', 'type' => 'string', 'required' => true, 'example' => 'cxatswiniekxw***'], + ], + [ + 'name' => 'ContentList', + 'in' => 'query', + 'schema' => ['description' => '批量上传到物联网平台的数据内容,为JSON列表格式。'."\n" + .'- JSON列表中JSON对象个数不得超过100个。'."\n" + .'- JSON中必须包含**ts**字段,用来表示数据产生的时间点(unix 毫秒精度的时间戳)。', 'type' => 'string', 'required' => true, 'example' => '[{"key":"value1","ts":1637658286000},{"key":"value2","ts":1637658287000}]'], ], ], 'responses' => [ @@ -1948,121 +937,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n ","errorExample":""}]', - 'title' => '删除指定产品', - 'summary' => '调用该接口删除指定产品。', - 'description' => '## 使用说明'."\n" - .'产品删除后,产品Key(ProductKey)将失效,与产品关联的其他信息也一并删除,您将无法执行与该产品关联的任何操作。'."\n" - ."\n\n" - .'## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.serverError', 'errorMessage' => 'server hsf error please try later.', 'description' => '后端HSF服务错误,请稍后重试'], + ['errorCode' => 'iot.dap.insight.notEnoughCU', 'errorMessage' => 'There is not enough CU for the operation.', 'description' => 'CU不足,无法执行操作。'], + ['errorCode' => 'iot.dap.insight.notEnoughStorage', 'errorMessage' => 'There is not enough storage for the operation.', 'description' => '存储空间不足,无法执行操作。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nBB71E443-4447-4024-A000-EDE09922891E\\n{\\"count\\":2,\\"hasNext\\":false,\\"items\\":[{\\"key\\":\\"value1\\",\\"ts\\":1637658286000,\\"id\\":1234567890},{\\"key\\":\\"value2\\",\\"ts\\":1637658287000,\\"id\\":1234567891}],\\"pageNum\\":1,\\"pageSize\\":2}\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchAddDataForApiSource', + 'summary' => '调用该接口向物联网平台批量导入外部数据。通过此API导入物联网平台的数据,称为API数据源的数据。您可将本地或其他平台的数据批量上传至物联网平台,用于数据的分析和处理。', + 'description' => '## 使用限制'."\n" + .'一次调用最多可批量写入100条记录。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'## QPS限制'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateProductTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddDataForApiSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchAddDeviceGroupRelations' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => '6VfhebLg5iUe****'], ], [ - 'name' => 'ProductTag', + 'name' => 'Device', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '产品标签列表。', + 'description' => '要添加到分组的设备列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TagValue' => [ - 'description' => '产品标签值(Value)。长度不可超过128字符,可包含中文、英文字母、数字、下划线(_)和短划线(-)。一个中文汉字算2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'TagValue', - ], - 'TagKey' => [ - 'description' => '产品标签键(Key)。长度不可超过30个字符,可包含英文大小写字母,数字和半角句号(.)。', - 'type' => 'string', - 'required' => false, - 'example' => 'room', - ], + 'ProductKey' => ['description' => '要添加到分组的设备所属的产品ProductKey,最多可传入200个。', 'type' => 'string', 'required' => true, 'example' => 'a1kORrK****'], + 'DeviceName' => ['description' => '要添加到分组的设备名称,最多可传入200个。', 'type' => 'string', 'required' => true, 'example' => 'ZHuPo6sZzv7pOzYh****'], ], 'required' => false, + 'description' => '', ], - 'required' => true, - 'maxItems' => 10, + 'required' => false, + 'maxItems' => 200, ], ], ], @@ -2071,150 +1039,109 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功,表示产品绑定标签成功。'."\n" - .'- **false**:调用失败,表示产品绑定标签失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InvalidProductTags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductTag' => [ - 'description' => '调用失败时,返回不合法的产品标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => '123$', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'room', - ], - ], - ], - ], - ], - ], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'ExceedTenGroupDeviceCount' => ['description' => '请求参数中,已经添加到10个或者10个以上分组的设备数量(一个设备最多添加到10个分组)。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'AlreadyRelatedGroupDeviceCount' => ['description' => '原已经添加到此分组的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ValidDeviceCount' => ['description' => '请求参数中合法的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'SuccessAddedDeviceCount' => ['description' => '成功添加到分组的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"InvalidProductTags\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"123$\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n","errorExample":""}]', - 'title' => 'CreateProductTags', - 'summary' => '调用该接口为指定产品创建标签。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 单次调用该接口最多能为指定产品创建10个标签。'."\n" - ."\n" - .'- 单个产品的标签总数不超过100个。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"ExceedTenGroupDeviceCount\\": 0,\\n \\"AlreadyRelatedGroupDeviceCount\\": 0,\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ValidDeviceCount\\": 2,\\n \\"SuccessAddedDeviceCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 2\\r\\n 0\\r\\n 2 devices have been added, and 0 devices failed to be added.\\r\\n 2\\r\\n 0\\r\\n 671D0F8F-FDC7-4B12-93FA-336C079C965A\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'BatchAddDeviceGroupRelations', + 'summary' => '调用该接口添加设备到某一分组(可批量添加设备)。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateProductTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddDeviceGroupRelations', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchAddThingTopo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'GwProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '网关设备所属的产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1vL7cp****'], ], [ - 'name' => 'ProductTag', + 'name' => 'GwDeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关设备的名称。', 'type' => 'string', 'required' => true, 'example' => 'gateway'], + ], + [ + 'name' => 'TopoAddItem', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '产品标签列表。', + 'description' => '添加的的设备拓扑关系列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TagValue' => [ - 'description' => '更新后的标签值(value)。长度不可超过128字符,可包含中文、英文字母、数字、下划线(_)和短划线(-)。一个中文汉字算2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '202', - ], - 'TagKey' => [ - 'description' => '产品标签键(key)。长度不可超过30个字符,可包含英文大小写字母,数字和英文句号(.)。'."\n" - ."\n" - .'> 传入标签的TagKey必须是已存在的标签key。传入标签的TagKey不能重复。', - 'type' => 'string', - 'required' => false, - 'example' => 'room', - ], + 'ProductKey' => ['description' => '要接入网关的子设备所属的产品ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '要接入网关的子设备名称。', 'type' => 'string', 'required' => true, 'example' => 'light'], + 'Sign' => ['description' => '添加拓扑关系的签名。'."\n" + .'根据签名计算方式**SignMethod(deviceSecret,content)**,计算出的结果作为Sign的取值。'."\n" + ."\n" + .'其中,**content**是将所有提交给服务器的子设备参数(Sign、SignMethod除外),按照英文字母升序,依次排序拼接(无拼接符号)的结果。'."\n" + ."\n" + .'例如,如果传入的设备参数为**ClientId=868575026974305、DeviceName=868575026974305、ProductKey=a1PB5fp1234、SignMethod=hmacmd5,且deviceSecret=1234**,那么签名计算为`hmacmd5(1234, clientId868575026974305deviceName868575026974305productKeya1PB5fpX1234)`;签名计算结果为`C1C1606D61884C5F16C9EA6622E5****`。'."\n" + .'> 示例中的**ClientId**为设备的客户端ID,您可自定义。', 'type' => 'string', 'required' => true, 'example' => 'C1C1606D61884C5F16C9EA6622E5****'], + 'Timestamp' => ['description' => 'UTC时间戳。非必选。如果传入该参数,则需包含到签名计算中。', 'type' => 'string', 'required' => false, 'example' => '1579335899000'], + 'SignMethod' => ['description' => '签名方法。支持**hmacSha1**、**hmacSha256**、**hmacMd5**和**Sha256**(大小写不敏感)。', 'type' => 'string', 'required' => true, 'example' => 'hmacMd5'], + 'ClientId' => ['description' => '设备端ID,可使用设备的SN码或MAC地址。非必选参数。如果传入该参数,则需包含到签名计算中。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****device1'], ], 'required' => false, + 'description' => '', ], 'required' => true, - 'maxItems' => 10, + 'maxItems' => 50, ], ], ], @@ -2223,132 +1150,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'InvalidProductTags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductTag' => [ - 'description' => '调用失败时,返回不合法的产品标签列表(**ProductTag**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => '123', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'room', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"InvalidProductTags\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"123\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n","errorExample":""}]', - 'title' => 'UpdateProductTags', - 'summary' => '调用该接口更新产品标签。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchAddThingTopo', + 'summary' => '调用该接口批量添加设备拓扑关系。', 'description' => '## 使用说明'."\n" ."\n" - .'单次调用该接口最多可更新10个标签。'."\n" + .'- 单次调用最多可为一个网关添加10个子设备。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'- 接口调用者必须是网关的所有者(Owner)。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'- 单个阿里云账号调用该接口的QPS限流为5。'."\n" + ."\n" + .'- 如果传入的子设备已存在拓扑关系,则会将子设备原有的网关替换为当前网关。'."\n" + ."\n" + .'- 任意一个子设备与网关的拓扑关系建立失败时,系统回滚,传入的所有子设备与当前网关建立拓扑关系失败。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteProductTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'changeSet' => [], + 'ramActions' => [ [ - 'AK' => [], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], ], - 'systemTags' => [ - 'operationType' => 'delete', + ], + 'BatchBindDeviceToEdgeInstanceWithDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'ProductTagKey', + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '021d154d2a2f4dd7a489773d9e04****'], + ], + [ + 'name' => 'IotIds', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '要删除的标签键列表。', + 'description' => '设备ID列表。'."\n" + .'可调用[QueryDevice](~~69905~~)查询当前账号下所有设备信息,获取设备IotId。'."\n" + ."\n" + .'> 单次调用最多可绑定20个设备。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'room', - 'maxItems' => 10, + 'example' => 'BXPV9Ks3bxwM9fD****0000101', + 'maxItems' => 21, ], ], ], @@ -2357,92 +1249,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BFFA9519-6AF1-4D15-AFAF-FD412714C1BE'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE7E8456E-EDD7-41D3-83B1-62FF4F5ED6BD\\ntrue\\n","errorExample":""}]', - 'title' => '删除产品标签', - 'summary' => '调用该接口删除产品标签。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单次调用该接口最多可删除10个标签。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BFFA9519-6AF1-4D15-AFAF-FD412714C1BE\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BFFA9519-6AF1-4D15-AFAF-FD412714C1BE\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量将设备分配到边缘实例', + 'summary' => '批量将设备分配到边缘实例中,并为设备设置驱动。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListProductTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchBindDeviceToEdgeInstanceWithDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchBindDevicesIntoProject' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], + ], + [ + 'name' => 'Devices', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', + 'description' => '设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '关联到项目的设备所隶属的产品ProductKey列表。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '需要关联到项目的设备DeviceName列表。', 'type' => 'string', 'required' => true, 'example' => 'Ee2******'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'a1BwAGV****', + 'maxItems' => 10, ], ], ], @@ -2451,153 +1336,74 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductTag' => [ - 'description' => '调用成功时,返回产品标签信息列表,具体信息,请参见**ProductTag**包含的参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => '102', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'room', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"102\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n alterTable\\n binary\\n \\n \\n json2\\n extt\\n \\n \\n 1234\\n Lock\\n \\n \\n support\\n Lockk\\n \\n \\n reen\\n Reen\\n \\n \\n try\\n Reenn\\n \\n \\n DropTable\\n roc\\n \\n \\n 7FBE60F8-4AB5-4A8C-AFCB-F4F38851F01F\\n true\\n","errorExample":""}]', - 'title' => '查询指定产品的所有标签', - 'summary' => '调用该接口查询指定产品的所有标签。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ], + 400 => [ + ['errorCode' => 'Studio.Device.BatchAddDevicesToProjectFailed', 'errorMessage' => 'batch add devices to project failed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t3737EE71-7FB9-418E-9B29-929F32CFF314\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n\\t\\r\\n","errorExample":""}]', + 'title' => 'BatchBindDevicesIntoProject', + 'summary' => '调用该接口批量关联设备到项目中。', + 'description' => '## 限制说明'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'- 单次调用该接口最多可关联10个设备。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListProductByTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchBindProductsIntoProject' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], - ], - [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量。最大值是50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123********'], ], [ - 'name' => 'ProductTag', - 'in' => 'query', + 'name' => 'ProductKeys', + 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '产品标签列表。', + 'description' => '需要关联到项目的产品ProductKey列表。', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '产品标签值。', - 'type' => 'string', - 'required' => false, - 'example' => '102', - ], - 'TagKey' => [ - 'description' => '产品标签键。', - 'type' => 'string', - 'required' => true, - 'example' => 'room', - ], - ], - 'required' => false, - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, + 'example' => 'a1BwAGV****', 'maxItems' => 10, ], ], @@ -2607,170 +1413,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ProductInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductInfo' => [ - 'description' => '调用成功时,返回产品信息列表(**ProductInfo**)。'."\n" - ."\n" - .'> 返回的产品信息按照产品创建时间倒序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '产品的ProductKey。是物联网平台为新建产品颁发的全局唯一标识符。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => '路灯', - ], - 'NodeType' => [ - 'description' => '产品的节点类型,取值:'."\n" - .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Description' => [ - 'description' => '产品描述。', - 'type' => 'string', - 'example' => 'This is a test product.', - ], - 'CreateTime' => [ - 'description' => '产品创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1545355537000', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- true:调用成功。'."\n" + .'- false:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"ProductInfos\\": {\\n \\"ProductInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ProductName\\": \\"路灯\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"This is a test product.\\",\\n \\"CreateTime\\": 1545355537000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n09AA366E-81EC-4CF0-B49E-61BCD7C95338\\ntrue\\n\\n \\n a1BwAGV****\\n 0\\n 1581595942000\\n 路灯\\n \\n \\n a1PO***\\n 0\\n 1580898565000\\n 传感器\\n \\n\\n","errorExample":""}]', - 'title' => 'ListProductByTags', - 'summary' => '调用该接口根据标签分页查询产品列表。', - 'description' => '## 使用说明'."\n" - .'- 支持按照TagKey和TagValue组合,或只按照TagKey来搜索。'."\n" - ."\n" - .'- 传入多个ProductTag是**或**的关系。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n" - ."\n", + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ], + 400 => [ + ['errorCode' => 'Studio.Product.BindFailed', 'errorMessage' => 'bind failed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n\\tAF4C862A-233A-43CA-A4BD-AB43FFD25A87\\n\\ttrue\\n\\ttrue\\n ","errorExample":""}]', + 'title' => '批量绑定产品到项目中', + 'summary' => '批量关联产品到项目中。', + 'description' => '## 限制说明'."\n" + .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + .'- 单次调用该接口最多可关联10个产品。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateProductFilterConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchBindProductsIntoProject', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchCheckDeviceNames' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。'."\n" - .'您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要注册的设备所属的产品ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PropertyTimestampFilter', - 'in' => 'query', + 'name' => 'DeviceName', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否根据属性上报时间进行消息去重。可选值:'."\n" - ."\n" - .'- **true**:对设备上报的时间戳相同的属性消息进行去重。'."\n" - ."\n" - .'- **false**:不根据时间戳进行消息去重。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'false', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], + 'required' => false, + 'maxItems' => 10000, + 'description' => '', ], ], [ - 'name' => 'PropertyValueFilter', - 'in' => 'query', + 'name' => 'DeviceNameList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否根据属性值进行消息去重。可选值:'."\n" - ."\n" - .'- **true**:对设备上报相同属性值的消息进行去重。'."\n" - ."\n" - .'- **false**:不根据属性值进行消息去重。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'true', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceNickname' => ['type' => 'string', 'required' => false, 'description' => ''], + 'DeviceName' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + 'required' => false, + 'description' => '', + ], + 'required' => false, + 'maxItems' => 10000, + 'description' => '', ], ], ], @@ -2779,94 +1525,170 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。'."\n", 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的数据。', + 'type' => 'object', + 'properties' => [ + 'ApplyId' => ['description' => '调用成功时,系统返回的申请批次ID。使用该ApplyId,调用[BatchRegisterDeviceWithApplyId](~~69514~~)接口来批量创建设备。', 'type' => 'integer', 'format' => 'int64', 'example' => '1295006'], + 'InvalidDetailList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDetailList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'NickName' => ['type' => 'string', 'description' => ''], + 'ErrorMsg' => ['type' => 'string', 'description' => ''], + 'DeviceName' => ['type' => 'string', 'description' => ''], + ], + 'description' => '', + ], + 'description' => '', + ], + ], + 'description' => '', + ], + 'RepeatedDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RepeatDevieNameList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDeviceName' => [ + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的不合法设备名称列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceName": [ "APT$", "aw" ] }'], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidDeviceNicknameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDeviceNickname' => [ + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的不合法设备备注名称列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceNickname": [ "APT$", "aw" ] }'], + 'description' => '', + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', - 'title' => '更新产品设备上报属性消息去重规则', - 'summary' => '更新产品下设备上报属性消息的去重规则。即时生效。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"NickName\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\",\\n \\"DeviceName\\": \\"\\"\\n }\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"RepeatDevieNameList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"InvalidDeviceName\\": [\\n \\"{ \\\\\\"InvalidDeviceName\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceNicknameList\\": {\\n \\"InvalidDeviceNickname\\": [\\n \\"{ \\\\\\"InvalidDeviceNickname\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1234567\\n\\nE976E36B-6874-4FA4-8BC0-55F9BEC5E2EF\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchCheckDeviceNames', + 'summary' => '调用该接口在指定产品下批量自定义设备名称。物联网平台将检查名称的合法性。', 'description' => '## 使用说明'."\n" - .'消息去重规则:物联网平台根据您设置的去重规则,决定是否通过您设置的规则引擎云产品流转或服务端订阅,将设备上报的属性数据流转至指定目的地。'."\n" - ."\n" - .'规则触发条件之间是和(AND)关系。例如您设置了PropertyValueFilter=true和PropertyTimestampFilter=true,那么必须这两个条件都满足时,才会触发规则,去掉重复的消息。'."\n" + .'该接口和**BatchRegisterDeviceWithApplyId**接口结合使用,在一个产品下批量注册多个设备,并且为每个设备单独命名。'."\n" + .'批量注册设备流程:'."\n" ."\n" - .'## QPS限制'."\n" + .'1. 调用本接口,传入要批量注册的设备的名称,物联网平台返回申请批次ID(**ApplyId**)。返回成功结果,表示批量校验设备名称的申请已经提交成功。实际的校验是异步执行的,会有一个过程。'."\n" + .'2. 调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看名称设置结果。'."\n" + .'3. 调用[BatchRegisterDeviceWithApplyId](~~69514~~)批量注册设备。'."\n" + .'4. (可选)调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看设备注册结果。'."\n" + .'5. 调用[QueryPageByApplyId](~~69518~~)查看批量注册的设备信息。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'## 使用限制'."\n" + .'单次调用,最多能定义1,0000 个设备名称。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享该阿里云账号配额。'."\n" + ."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryProductCertInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchCheckImportDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', + 'description' => '批量校验的设备列表。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备的信息。超过该限制的数据会被丢弃。', + 'type' => 'array', + 'items' => [ + 'description' => '设备信息。', + 'type' => 'object', + 'properties' => [ + 'Sn' => ['description' => '设备的序列号。'."\n" + ."\n" + .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备序列号。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'QC4******001'], + 'DeviceName' => ['description' => '设备的名称。'."\n" + ."\n" + .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" + ."\n" + .'设备名称在产品维度下不可重复。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => true, 'example' => 'light'], + 'DeviceSecret' => ['description' => '设备的密钥。'."\n" + ."\n" + .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备密钥。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => true, 'example' => 'b4d43f7******10ba5e5'], + ], + 'required' => false, + ], 'required' => true, - 'example' => 'a2YwD23****', + 'maxItems' => 10000, ], ], ], @@ -2875,214 +1697,284 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'MissingProductKey', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'ProductKey is mandatory for this action.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:表示调用成功。'."\n" - ."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ProductCertInfo' => [ - 'description' => '返回的证书信息(**IssueModel**)。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,如果有校验失败的数据,则返回对应的失败信息。', 'type' => 'object', 'properties' => [ - 'IssueModel' => [ - 'description' => '证书颁发模式。'."\n" - ."\n" - .'- **1**:物联网平台颁发的X.509证书。'."\n" - ."\n" - .'- **3**:第三方平台颁发的X.509证书。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', + 'InvalidDetailList' => [ + 'description' => '不合法设备列表。', + 'type' => 'array', + 'items' => [ + 'description' => '不合法设备信息。', + 'type' => 'object', + 'properties' => [ + 'ErrorMsg' => ['description' => '导入设备失败时,返回的出错信息。', 'type' => 'string', 'example' => 'The device name is illegal.'], + 'Sn' => ['description' => '设备SN码。', 'type' => 'string', 'example' => 'QC4001#'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light%'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => ' ^67$'], + ], + ], + ], + 'RepeatedDeviceNameList' => [ + 'description' => '设备信息校验失败时,返回的重复设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => '设备信息校验失败时,返回的重复设备名称。', 'type' => 'string', 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }'], + ], + 'InvalidSnList' => [ + 'description' => '设备信息校验失败时,返回的不合法设备序列号的列表。', + 'type' => 'array', + 'items' => ['description' => '设备信息校验失败时,返回的不合法设备序列号。', 'type' => 'string', 'example' => '{ "InvalidSnList": [ "" ] }'], + ], + 'InvalidDeviceSecretList' => [ + 'description' => '设备信息校验失败时,返回的不合法设备密钥的列表。', + 'type' => 'array', + 'items' => ['description' => '设备信息校验失败时,返回的不合法设备密钥。', 'type' => 'string', 'example' => '{ "InvalidDeviceSecretList": [ "^67$", "1" ] }'], + ], + 'InvalidDeviceNameList' => [ + 'description' => '设备信息校验失败时,返回的不合法设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => '设备信息校验失败时,返回的不合法设备名称。', 'type' => 'string', 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }'], ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingProductKey\\",\\n \\"ErrorMessage\\": \\"ProductKey is mandatory for this action.\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"ProductCertInfo\\": {\\n \\"IssueModel\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 1\\n\\n","errorExample":""}]', - 'title' => '获取产品的X.509证书信息', - 'summary' => '调用该接口获取产品的X.509证书信息。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', 'errorMessage' => 'The devices you query exceed the maximum number.', 'description' => '请求查询的设备名称数量超过最大限制。'], + ['errorCode' => 'iot.device.NoneDeviceNameElement', 'errorMessage' => 'The DeviceName list is empty.', 'description' => '设备名称列表为空。'], + ['errorCode' => 'iot.device.InvalidDeviceParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数非法。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"Sn\\": \\"QC4001#\\",\\n \\"DeviceName\\": \\"light%\\",\\n \\"DeviceSecret\\": \\"\\\\t^67$\\"\\n }\\n ],\\n \\"RepeatedDeviceNameList\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ],\\n \\"InvalidSnList\\": [\\n \\"{ \\\\\\"InvalidSnList\\\\\\": [ \\\\\\"\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceSecretList\\": [\\n \\"{ \\\\\\"InvalidDeviceSecretList\\\\\\": [ \\\\\\"^67$\\\\\\", \\\\\\"1\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceNameList\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => '批量校验导入的设备', + 'summary' => '调用该接口批量校验导入的设备。', 'description' => '## QPS限制'."\n" - ."\n\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。 ', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetProductCertInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchCheckImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchCheckVehicleDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => true, 'example' => 'iot-1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'aS2dewS****', - ], + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Bw****'], ], [ - 'name' => 'IssueModel', - 'in' => 'query', - 'schema' => [ - 'description' => '证书颁发模式。'."\n" - ."\n" - .'- **1**:由物联网平台颁发X.509证书。'."\n" - ."\n" - .'- **3**:由第三方平台颁发X.509证书。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - ], - 'responses' => [ - 200 => [ + 'name' => 'DeviceList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'MissingProductKey', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'ProductKey is mandatory for this action.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" + 'description' => '批量校验的设备列表。', + 'type' => 'array', + 'items' => [ + 'description' => '设备信息。', + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['description' => '校验导入的GB/T 32960协议云网关设备时,需传入的设备名称。'."\n" + ."\n" + .'设备名称支持英文字母和数字,长度限制为4~17个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'vin0001'], + 'DeviceId' => ['description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备ID。'."\n" + ."\n" + .'设备ID支持英文字母、数字、短划线(-),长度限制为4~30个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备ID。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'di0001'], + 'DeviceSecret' => ['type' => 'string', 'required' => false, 'description' => ''], + 'DeviceModel' => ['description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备型号。'."\n" + ."\n" + .'设备型号支持英文字母、数字、短划线(-),长度限制为4~30个字符。'."\n" ."\n" - .'- **true**:表示调用成功。'."\n" + .'> 单次调用该接口,最多能传入10,000个设备型号。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'dm0001'], + 'Manufacturer' => ['description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备厂商ID。'."\n" ."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + .'设备厂商ID支持英文字母、数字、短划线(-),长度限制为4~11个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备厂商ID。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'mf0001'], ], + 'required' => false, ], + 'required' => true, + 'maxItems' => 10000, ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingProductKey\\",\\n \\"ErrorMessage\\": \\"ProductKey is mandatory for this action.\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => '设置产品的X.509证书信息', - 'summary' => '调用该接口设置产品的X.509证书信息。', - 'description' => '## QPS限制'."\n" + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,如果有校验失败的数据,则返回对应的失败信息。', + 'type' => 'object', + 'properties' => [ + 'InvalidDetailList' => [ + 'description' => '不合法设备列表信息。', + 'type' => 'array', + 'items' => [ + 'description' => '不合法设备信息。', + 'type' => 'object', + 'properties' => [ + 'ErrorMsg' => ['description' => '设备校验失败,返回的出错信息。', 'type' => 'string', 'example' => 'The device name is illegal.'], + 'DeviceModel' => ['description' => 'JT/T 808协议云网关设备的设备型号。', 'type' => 'string', 'example' => 'dm_*0001'], + 'DeviceName' => ['description' => 'GB/T 32960协议云网关设备的设备名称。', 'type' => 'string', 'example' => 'device_*0001'], + 'DeviceId' => ['description' => 'JT/T 808协议云网关设备的设备ID。', 'type' => 'string', 'example' => 'di_*0001'], + 'Manufacturer' => ['description' => 'JT/T 808协议云网关设备的设备厂商ID。', 'type' => 'string', 'example' => 'mf_*0001'], + ], + ], + ], + 'InvalidManufacturerList' => [ + 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备厂商ID的列表。', + 'type' => 'array', + 'items' => ['description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备厂商ID的列表。', 'type' => 'string', 'example' => '{ "InvalidManufacturerList": [ "manufacturer#&_", "aw" ] }'], + ], + 'RepeatedDeviceIdList' => [ + 'description' => 'JT/T 808协议云网关设备信息校验失败时,重复设备ID的列表。', + 'type' => 'array', + 'items' => ['description' => 'JT/T 808协议云网关设备信息校验失败时,返回的重复设备ID的列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceIdList": [ "deviceId01", "deviceId02" ] }'], + ], + 'RepeatedDeviceNameList' => [ + 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的重复设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的重复设备名称的列表。', 'type' => 'string', 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }'], + ], + 'InvalidDeviceIdList' => [ + 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备ID的列表。', + 'type' => 'array', + 'items' => ['description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备ID的列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceIdList": [ "DEVIC^*$" ] }'], + ], + 'InvalidDeviceModelList' => [ + 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备型号的列表。', + 'type' => 'array', + 'items' => ['description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备型号的列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceModelList": [ "DEM$", "DE" ] }'], + ], + 'InvalidDeviceNameList' => [ + 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的不合法设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的不合法设备名称的列表。', 'type' => 'string', 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }'], + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', 'errorMessage' => 'The devices you query exceed the maximum number.', 'description' => '请求查询的设备名称数量超过最大限制。'], + ['errorCode' => 'iot.device.NoneDeviceNameElement', 'errorMessage' => 'The DeviceName list is empty.', 'description' => '设备名称列表为空。'], + ['errorCode' => 'iot.device.InvalidDeviceParams', 'errorMessage' => 'The request parameters are invalid.', 'description' => '请求参数非法。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"DeviceModel\\": \\"dm_*0001\\",\\n \\"DeviceName\\": \\"device_*0001\\",\\n \\"DeviceId\\": \\"di_*0001\\",\\n \\"Manufacturer\\": \\"mf_*0001\\"\\n }\\n ],\\n \\"InvalidManufacturerList\\": [\\n \\"{ \\\\\\"InvalidManufacturerList\\\\\\": [ \\\\\\"manufacturer#&_\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ],\\n \\"RepeatedDeviceIdList\\": [\\n \\"{ \\\\\\"InvalidDeviceIdList\\\\\\": [ \\\\\\"deviceId01\\\\\\", \\\\\\"deviceId02\\\\\\" ] }\\"\\n ],\\n \\"RepeatedDeviceNameList\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceIdList\\": [\\n \\"{ \\\\\\"InvalidDeviceIdList\\\\\\": [ \\\\\\"DEVIC^*$\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceModelList\\": [\\n \\"{ \\\\\\"InvalidDeviceModelList\\\\\\": [ \\\\\\"DEM$\\\\\\", \\\\\\"DE\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceNameList\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchCheckVehicleDevice', + 'summary' => '调用该接口批量校验导入的云网关设备。', + 'description' => '## 使用说明'."\n" + .'本接口适用于批量校验导入的JT/T 808协议和GB/T 32960协议的云网关设备。'."\n" + ."\n\n" + .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ReleaseProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchClearEdgeInstanceDeviceConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], + ], + [ + 'name' => 'IotIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '待发布产品的**ProductKey**。', - 'type' => 'string', + 'description' => '要查询的设备ID列表。可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" + ."\n" + .'>单次调用最多可填写20个设备ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'a1BwAGV****', + 'example' => 'BXPV9Ks3bxwM9fD****0000101', + 'maxItems' => 21, ], ], ], @@ -3091,93 +1983,167 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '产品发布', - 'summary' => '指定产品的发布。', - 'description' => '## 使用说明'."\n" - ."\n" - .'产品发布成功后,不可调用接口[CreateThingModel](~~150323~~)、[UpdateThingModel](~~151240~~)、[ImportThingModelTSL](~~150320~~)、[PublishThingModel](~~150311~~)、[DeleteThingModel](~~150312~~)、[CopyThingModel](~~150322~~)编辑物模型。如需编辑,请先调用接口[CancelReleaseProduct](~~213875~~)取消产品发布。'."\n" - .' '."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量清空边缘实例设备配置', + 'summary' => '批量清空边缘实例设备配置。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CancelReleaseProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchCreateSoundCodeLabel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'Total', + 'in' => 'formData', + 'schema' => ['description' => '批量创建声码个数,数量为1~200个,系统将为每个声码自动生成由字母、数字随机组合的标签。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '200', 'minimum' => '1', 'example' => '20'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '批次描述,长度为1~64个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '声码标签批次唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidLabelBatchDescription', 'errorMessage' => 'invalid sound code label batch description', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchCreateSoundCodeLabel', + 'summary' => '调用该接口为指定排程批量创建声码标签。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchCreateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'BatchCreateSoundCodeLabelWithLabels' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '批次描述,长度为1~64个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'Labels', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '待取消发布产品的**ProductKey**。', - 'type' => 'string', + 'description' => '标签列表,数量为1~200个,每个标签长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'a1BwAGV****', + 'example' => 'test', + 'maxItems' => 200, ], ], ], @@ -3186,178 +2152,193 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '声码标签批次唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5573D217-8E3E-47AD-9331-2083B88E64B2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '取消指定产品的发布', - 'summary' => '调用该接口取消指定产品的发布。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidLabel', 'errorMessage' => 'invalid sound code label', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidLabelBatchDescription', 'errorMessage' => 'invalid sound code label batch description', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchCreateSoundCodeLabelWithLabels', + 'summary' => '调用该接口为指定排程批量创建指定声码标签。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'RegisterDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchCreateSoundCodeLabelWithLabels', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchDeleteDeviceGroupRelations' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '待注册设备所隶属的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。'."\n" - .'您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'W16X8Tvdosec****'], ], [ - 'name' => 'DeviceName', + 'name' => 'Device', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '为待注册的设备命名。设备名称长度为4~32个字符,可以包含英文字母、数字和特殊字符:短划线(-)、下划线(_)、at(@)、半角句号(.)、半角冒号(:)。'."\n" - ."\n" - .'DeviceName通常与ProductKey组合使用,用作设备标识。'."\n" - ."\n" - .'> 如果不传入该参数,则由系统随机生成设备名称。', - 'type' => 'string', + 'description' => '要从分组中删除的设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '要从分组中删除的设备所属产品的ProductKey,最多可传入200个。', 'type' => 'string', 'required' => true, 'example' => 'a1kORrK****'], + 'DeviceName' => ['description' => '要从分组中删除的设备名称,最多可传入200个。', 'type' => 'string', 'required' => true, 'example' => 'ZHuPo6sZzv7pOzYh****'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => 'light', + 'maxItems' => 200, ], ], - [ - 'name' => 'DevEui', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'LoRaWAN设备的DevEUI。'."\n" - ."\n" - .'创建LoRaWAN设备时,该参数必传。', - 'type' => 'string', - 'required' => false, - 'example' => 'e8SDdgeIlk3nED****', + 'type' => 'object', + 'properties' => [ + 'SuccessDeviceCount' => ['description' => '成功从分组中删除的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '8739385E-143F-4389-B900-B7DF9174CE0D'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'AlreadyRelatedGroupDeviceCount' => ['description' => '删除前,已添加到此分组的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ValidDeviceCount' => ['description' => '请求参数中要删除的设备中,有效的设备数量(即可删除的设备数量)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"SuccessDeviceCount\\": 2,\\n \\"RequestId\\": \\"8739385E-143F-4389-B900-B7DF9174CE0D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"AlreadyRelatedGroupDeviceCount\\": 2,\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ValidDeviceCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 2\\r\\n 2\\r\\n 2\\r\\n 8739385E-143F-4389-B900-B7DF9174CE0D\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'BatchDeleteDeviceGroupRelations', + 'summary' => '调用BatchDeleteDeviceGroupRelations接口批量删除指定分组中的设备。该操作仅删除设备与分组的关联关系,不会删除设备本身。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Nickname', - 'in' => 'query', - 'schema' => [ - 'description' => '为待注册的设备设置备注名称。备注名称长度为4~64个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" - ."\n" - .'> 如果不传入该参数,系统不会为设备生成备注名称。', - 'type' => 'string', - 'required' => false, - 'example' => '园区灯', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchDeleteDeviceGroupRelations', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'BatchDeleteEdgeInstanceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'PinCode', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'LoRaWAN设备的PIN Code,用于校验DevEUI的合法性。'."\n" - ."\n" - .'创建LoRaWAN设备时,**LoraNodeType**为**ALIYUNDEFINED**,该参数必传。', - 'type' => 'string', - 'required' => false, - 'example' => 'DIe80dfeg*****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'JoinEui', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'LoRaWAN设备的入网凭证JoinEui。'."\n" - ."\n" - .'创建LoRaWAN设备时,**LoraNodeType**为**USERDEFINED**,该参数必传。', - 'type' => 'string', - 'required' => false, - 'example' => 'Ede4tde8erth****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'AppKey', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => 'LoRaWAN设备的AppKey。'."\n" - ."\n" - .'创建LoRaWAN设备时,**LoraNodeType**为**USERDEFINED**,该参数必传。', - 'type' => 'string', - 'required' => false, - 'example' => '674f***', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ - 'name' => 'LoraNodeType', + 'name' => 'ChannelIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'LoRaWAN设备类型。可取值:'."\n" + 'description' => '驱动通道ID列表。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取通道ID。'."\n" ."\n" - .'- **ALIYUNDEFINED**:阿里云颁发类型,需同时传入**DevEui**和**PinCode**。'."\n" - .'- **USERDEFINED**:用户自定义类型,需同时传入**DevEui**、**JoinEui**和**AppKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'ALIYUNDEFINED', - 'default' => 'ALIYUNDEFINED', + .'> 单次调用最多可填写20个通道ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', + 'maxItems' => 21, ], ], ], @@ -3366,147 +2347,57 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回注册的设备信息。', - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'DevEui' => [ - 'description' => 'LoRaWAN设备的DevEUI。仅LoRaWAN设备才会返回该参数。', - 'type' => 'string', - 'example' => 'e8SDdgeIlk3nED****', - ], - 'DeviceName' => [ - 'description' => '设备名称。'."\n" - ."\n" - .'> 请妥善保管,勿泄露。'."\n" - .'> ', - 'type' => 'string', - 'example' => 'light', - ], - 'JoinEui' => [ - 'description' => 'LoRaWAN设备的入网凭证 JoinEUI。仅LoRaWAN设备才会返回该参数。', - 'type' => 'string', - 'example' => 'Ede4tde8erth****', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。'."\n" - ."\n" - .'> 请妥善保管,勿泄露。'."\n" - .'> ', - 'type' => 'string', - 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。'."\n" - .'若您没有为该设备设置备注名称,则该参数返回为空。', - 'type' => 'string', - 'example' => '园区灯', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的设备ID,作为该设备的唯一标识符。'."\n" - ."\n" - .'> 请妥善保管,勿泄露。'."\n" - .'> ', - 'type' => 'string', - 'example' => '1O4YPNtRqB2anumz2Canp4GB7q****', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DevEui\\": \\"e8SDdgeIlk3nED****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"JoinEui\\": \\"Ede4tde8erth****\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"Nickname\\": \\"园区灯\\",\\n \\"IotId\\": \\"1O4YPNtRqB2anumz2Canp4GB7q****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n device1\\n a1rYuVF****\\n tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\n CqXL5h5ysRTA4NxjABjj0010fa****\\n detectors_in_beijing\\n\\n","errorExample":""}]', - 'title' => '在指定产品下注册设备', - 'summary' => '调用该接口在指定产品下注册设备。', - 'description' => '## 接口说明'."\n" - .'注册设备指在物联网平台产品下添加设备。在指定产品下成功注册设备后,阿里云物联网平台为设备颁发全局唯一的设备ID(IotId),用来标识该设备。在进行与设备相关的操作时,您可能需要提供目标设备的IotId。'."\n" - ."\n" - .'您也可以使用ProductKey和DeviceName组合来标识一个设备。其中ProductKey是新建产品时,物联网平台为产品颁发的ProductKey,DeviceName是注册设备时,由您指定或由系统随机生成的设备名称。IotId的优先级高于ProductKey和DeviceName组合。'."\n" - ."\n" - .'如需在同一产品下,批量注册多个设备,请参见[BatchRegisterDeviceWithApplyId接口的使用说明](~~69514~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量删除边缘实例中驱动的通道', + 'summary' => '批量删除边缘实例中驱动的通道。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryClientIds' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchGetDeviceBindStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。您可调用[QueryDeviceInfo](~~257184~~)接口查询**IotId**。', - 'type' => 'string', - 'required' => true, - 'example' => 'y4u2weAIrpp****WHMle1234', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'IotIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" + 'description' => '设备ID列表。可调用[QueryDevice](~~69905~~)接口查询设备ID。'."\n" ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-a****13l', + .'> 单次调用最多可填写20个设备ID。', + 'type' => 'array', + 'items' => ['description' => '设备ID。可调用[QueryDevice](~~69905~~)接口查询设备ID。', 'type' => 'string', 'required' => false, 'example' => 'sjI0Sd124XFYyjBYMiYO******'], + 'required' => true, + 'example' => 'sjI0Sd124XFYyjBYMiYO******', + 'maxItems' => 21, ], ], ], @@ -3515,129 +2406,116 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。'."\n", - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。'."\n", - 'type' => 'string', - 'example' => '89F22330-BAEE-****-****-41BA46D6E267', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B1DF865D-2474-4CD5-9B7E-59B06D204CBF'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '设备包含标识ID时,返回的标识列表。详细内容,请参见**DynamicRegClientIds**信息。', - 'type' => 'object', - 'properties' => [ - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'y4u2weAI********HMle1234', - ], - 'DynamicRegClientIds' => [ - 'description' => '设备标识列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CreateTime' => [ - 'description' => '设备标识创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1636514022424', - ], - 'ClientId' => [ - 'description' => '设备标识。', - 'type' => 'string', - 'example' => '9rSzYt4js92********f000112', - ], - ], - ], + 'description' => '调用成功时返回的数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'BindStatus' => ['description' => '网关或设备是否已绑定到边缘实例。'."\n" + ."\n" + .'- 0:表示未绑定。'."\n" + ."\n" + .'- 1:表示已绑定。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'InstanceId' => ['description' => '实例ID。', 'type' => 'string', 'example' => 'iot-v64********'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'sjI0Sd124XFYyjBYMiYO******'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"IotId\\": \\"y4u2weAI********HMle1234\\",\\n \\"DynamicRegClientIds\\": [\\n {\\n \\"CreateTime\\": 1636514022424,\\n \\"ClientId\\": \\"9rSzYt4js92********f000112\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nCA991E7C-BDE7-5887-B3B7-E08C68C0D346\\n\\n kRLP***0000\\n \\n 1635847637823\\n K19uYV***000100\\n \\n \\n 1635846982286\\n bpQwyW***000100\\n \\n \\n 1635847426368\\n ntnIvez***000100\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryClientIds', - 'summary' => '一型一密免注册场景下,调用该接口查看单个设备的标识列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B1DF865D-2474-4CD5-9B7E-59B06D204CBF\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"BindStatus\\": 1,\\n \\"InstanceId\\": \\"iot-v64********\\",\\n \\"IotId\\": \\"sjI0Sd124XFYyjBYMiYO******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B1DF865D-2474-4CD5-9B7E-59B06D204CBF\\r\\n \\r\\n \\r\\n sjI0Sd124XFYyjBYMiYO******\\r\\n 0\\r\\n \\r\\n \\r\\n BXPV9Ks3bxwM9fDl9Ck0******\\r\\n 1\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量获取网关或设备绑定到边缘实例的状态', + 'summary' => '调用该接口批量获取网关或设备绑定到边缘实例的状态。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'TransformClientId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetDeviceBindStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetDeviceState' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fD****0000101', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ClientId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备标识ID。', - 'type' => 'string', - 'required' => true, - 'example' => '9rSz********UNMWj33f000112', - ], + 'schema' => ['description' => '要查看运行状态的设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'DeviceName', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', + 'description' => '要查看运行状态的设备的名称列表。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>'."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => false, + 'example' => 'light', + 'maxItems' => 51, + ], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '要查看运行状态的设备ID列表。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => 'iot-02****43', + 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'maxItems' => 51, ], ], ], @@ -3646,90 +2524,106 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。'."\n", - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。'."\n", - 'type' => 'string', - 'example' => '89F22330-BAEE-****-****-41BA46D6E267', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceStatusList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DeviceStatus' => [ + 'description' => '调用成功时,返回设备状态信息列表,请参见**DeviceStatus**下的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备状态。取值:'."\n" + .'- **ONLINE**:设备在线。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'OFFLINE'], + 'LastOnlineTime' => ['description' => '设备最后一次上线的时间。', 'type' => 'string', 'example' => '2020-01-17 16:19:11'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'DeviceId' => ['description' => '设备ID(旧版参数)。'."\n" + ."\n" + .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前,有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', 'type' => 'string', 'example' => 'dwnS41bhNxjslDAI****'], + 'Timestamp' => ['description' => '设备状态变更时间。单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557062301656'], + 'AsAddress' => ['description' => '设备IP地址。', 'type' => 'string', 'example' => '192.0.2.1'], + 'IotId' => ['description' => '设备ID,物联网平台为设备颁发的唯一标识。', 'type' => 'string', 'example' => 'dwnS41bhNxjslDAI****000100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n89F22330-BAEE-****-****-41BA46D6E267\\nSuccess\\ntrue\\n","errorExample":""}]', - 'title' => 'TransformClientId', - 'summary' => '一型一密免注册场景下,若设备包含多个设备标识,需调用该接口指定一个正确的设备标识,以防止非法的设备登录。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"DeviceStatusList\\": {\\n \\"DeviceStatus\\": [\\n {\\n \\"Status\\": \\"OFFLINE\\",\\n \\"LastOnlineTime\\": \\"2020-01-17 16:19:11\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"dwnS41bhNxjslDAI****\\",\\n \\"Timestamp\\": 1557062301656,\\n \\"AsAddress\\": \\"192.0.2.1\\",\\n \\"IotId\\": \\"dwnS41bhNxjslDAI****000100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n OFFLINE\\n dwnS41bhNxjslDAI****\\n Humidity\\n 192.0.2.1\\n 2020-01-17 16:19:11\\n 1557062301656\\n dwnS41bhNxjslDAI****000100\\n \\n\\n3258D872-EDC5-4039-B564-C27ED7176741\\ntrue\\n","errorExample":""}]', + 'title' => '批量查看同一产品下指定设备的运行状态', + 'summary' => '调用该接口批量查看同一产品下指定设备的运行状态。', 'description' => '## 使用说明'."\n" - .'您可调用[QueryClientIds](~~371985~~)接口,查看设备的设备标识列表。'."\n" + .'调用本接口时:'."\n" + .'- 请求参数同时传入**ProductKey**和多个**DeviceName**:查询同一产品多个设备的运行状态。'."\n" + .'- 请求参数传入多个**IotId**:可传入不同产品下设备的**IotId**,查询不同产品下设备的运行状态。'."\n" + ."\n" + .'>单次调用本接口最多可查询50个设备的运行状态。'."\n" + .'>'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteClientIds' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetDeviceState', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fD****0000101', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'ot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'DriverIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-12****78', + 'description' => '驱动ID列表。最多可填写30个驱动ID,即一次最多支持查询30个驱动的信息。格式请参见本文下方请求示例。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'fec565038d7544978d9aed5c1a******', + 'maxItems' => 31, ], ], ], @@ -3738,120 +2632,122 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '89F22330-BAEE-****-****-41BA46D6E267', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A42CAB88-6E26-4DC7-9A35-584D17E82DE0'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DriverList' => [ + 'description' => '驱动信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '驱动类型。'."\n" + ."\n" + .'- 0:表示官方驱动。'."\n" + .'- 1:表示自研驱动。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'CpuArch' => ['description' => '驱动适配的CPU架构。有如下几种架构:'."\n" + ."\n" + .'- armv7'."\n" + .'- armv7-hf'."\n" + .'- aarch64'."\n" + .'- x86-64'."\n" + .'- x86', 'type' => 'string', 'example' => 'x86-64'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => 'fec565038d7544978d9aed5c1a******'], + 'IsBuiltIn' => ['description' => '驱动文件是否内置。'."\n" + ."\n" + .'- true:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" + .'- false:表示驱动为非内置驱动。', 'type' => 'boolean', 'example' => 'false'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Runtime' => ['description' => '驱动的语言类型。有如下三种类型:'."\n" + ."\n" + .'- nodejs8:Node.js v8'."\n" + .'- python3:Python v3.5'."\n" + .'- c: C语言', 'type' => 'string', 'example' => 'c'], + 'DriverName' => ['description' => '驱动名称。', 'type' => 'string', 'example' => 'MyLedDriver'], + 'DriverProtocol' => ['description' => '驱动通信协议。'."\n" + ."\n" + .'- modbus:Modbus通信协议。'."\n" + .'- opc-ua:OPC UA通信协议。'."\n" + .'- customize:自定义通信协议。', 'type' => 'string', 'example' => 'customize'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n89F22330-BAEE-****-****-41BA46D6E267\\nSuccess\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteClientIds', - 'summary' => '一型一密免注册场景下,若单个设备的标识个数超出限制(5个),可调用该接口删除设备下的所有标识。', - 'description' => '## 使用说明'."\n" - .'- 您可调用[QueryClientIds](~~371985~~)接口,查看设备的设备标识列表,得出该设备的标识个数。'."\n" - .'- 调用本接口会清空设备下所有标识,且不可恢复。此时,您可为设备重新注册设备标识。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"A42CAB88-6E26-4DC7-9A35-584D17E82DE0\\",\\n \\"Success\\": true,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 1,\\n \\"CpuArch\\": \\"x86-64\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"IsBuiltIn\\": false,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Runtime\\": \\"c\\",\\n \\"DriverName\\": \\"MyLedDriver\\",\\n \\"DriverProtocol\\": \\"customize\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n A42CAB88-6E26-4DC7-9A35-584D17E82DE0\\r\\n \\r\\n \\r\\n customize\\r\\n 1\\r\\n c\\r\\n 2019-12-01 22:28:00\\r\\n fec565038d7544978d9aed5c1a******\\r\\n MyLedDriver\\r\\n 2019-12-01 22:28:00\\r\\n false\\r\\n x86-64\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量查询驱动信息', + 'summary' => '批量查询驱动信息。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeInstanceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属产品的ProductKey。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的设备名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ - 'name' => 'IotId', + 'name' => 'ChannelIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询设备的设备ID。'."\n" - ."\n\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'description' => '驱动通道ID列表。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取通道ID。'."\n" + ."\n" + .'> 单次调用最多可填写20个通道ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', + 'maxItems' => 21, ], ], ], @@ -3860,207 +2756,123 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '5B86570E-C1A7-4569-BF7B-F7F09EB35BEB'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回设备的基本信息。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => 'detectors_in_beijing', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1rYuVF****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'Channel' => [ + 'description' => '调用成功时返回的数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChannelName' => ['description' => '驱动通道名称。', 'type' => 'string', 'example' => 'le_name0'], + 'ChannelId' => ['description' => '驱动通道ID。', 'type' => 'string', 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], + 'ConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Config' => [ + 'description' => '配置信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。', 'type' => 'string', 'example' => 'key1'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '5d6016035c1a451daf174b1051******'], + 'Format' => ['description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'example' => 'JSON'], + 'Content' => ['description' => '配置内容。', 'type' => 'string', 'example' => '{\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'Iot.common.QueryDeviceActionError', - 'errorMessage' => 'An error occurred while querying the device.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', - 'errorMessage' => 'The DeviceName list contains an invalid DeviceName.', - ], - [ - 'errorCode' => 'iot.common.InvalidTenant', - 'errorMessage' => 'The tenant is invalid.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The DeviceName format is invalid.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.DTInstanceInvalidThingType', - 'errorMessage' => 'The digital twin operation is not supported.', - ], - [ - 'errorCode' => 'iot.gateway.BackEndServiceInvalid', - 'errorMessage' => 'Request has failed due to invalid backend server', - ], - [ - 'errorCode' => 'Iot.device.InvalidIoTId', - 'errorMessage' => 'The specified device ID is invalid.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The deviceName is empty.', - ], - [ - 'errorCode' => 'iot.device.DeviceInstanceInconsistency', - 'errorMessage' => 'The instance of devices is inconsistency.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The productKey is empty.', - ], - [ - 'errorCode' => 'iot.common.QueryDevicePropertyActionError', - 'errorMessage' => 'An error occurred while querying the device property.', - ], - [ - 'errorCode' => 'iot.common.QueryManyDevicesActionError', - 'errorMessage' => 'An error occurred while querying the devices', - ], - [ - 'errorCode' => 'iot.Sre.IotInstanceStatusForbidden', - 'errorMessage' => 'Instance status forbidden.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"ProductKey\\": \\"a1rYuVF****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n Q7uOhVRdZRRlDnTLv****00100\\n mz2Canp4GB7qRVf1OYPNtRqB2anu****\\n a1rYuVF****\\n detectors_in_beijing\\n light\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备信息', - 'summary' => '查询指定设备的基本信息(设备ID、设备证书和备注名称)。', - 'description' => '## QPS限制'."\n" - ."\n\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"5B86570E-C1A7-4569-BF7B-F7F09EB35BEB\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Channel\\": [\\n {\\n \\"ChannelName\\": \\"le_name0\\",\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ConfigList\\": {\\n \\"Config\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"5d6016035c1a451daf174b1051******\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"protocol\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TCP\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.2.3.4\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"port\\\\\\\\\\\\\\":1}\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5B86570E-C1A7-4569-BF7B-F7F09EB35BEB\\r\\n \\r\\n \\r\\n le_name0\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}\\r\\n 5d6016035c1a451daf174b1051******\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量查询边缘实例中的驱动通道', + 'summary' => '批量查询边缘实例中的驱动通道。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceDetail' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeInstanceDeviceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所隶属的产品Key。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '指定要查询的设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ - 'name' => 'IotId', + 'name' => 'IotIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的设备ID。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询子设备ID。'."\n" + ."\n" + .'> 单次调用最多可填写20个子设备ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'Hathoyxglj9jpYPyw3WN******', + 'maxItems' => 21, ], ], ], @@ -4069,214 +2881,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回设备的详细信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '设备状态。取值:'."\n" - ."\n" - .'- **ONLINE**:设备在线。'."\n" - ."\n" - .'- **OFFLINE**:设备离线。'."\n" - ."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - ."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'Owner' => [ - 'description' => 'API调用者是否是该设备的拥有者。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'UtcActive' => [ - 'description' => '设备的激活时间,UTC格式。', - 'type' => 'string', - 'example' => '2018-08-06T02:48:41.000Z', - ], - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'UtcCreate' => [ - 'description' => '设备的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2018-08-06T02:47:50.000Z', - ], - 'FirmwareVersion' => [ - 'description' => '设备默认(default)OTA模块的版本号。'."\n" - ."\n" - .'如果需要查询设备上报过的其他OTA模块版本信息,请参见[ListOTAModuleVersionsByDevice](~~190622~~)。', - 'type' => 'string', - 'example' => 'V1.0.0.0', - ], - 'GmtOnline' => [ - 'description' => '设备最近一次上线的时间,GMT格式。', - 'type' => 'string', - 'example' => '2018-08-06 13:43:12', - ], - 'UtcOnline' => [ - 'description' => '设备最近一次上线的时间,UTC格式。', - 'type' => 'string', - 'example' => '2018-08-06T05:43:12.000Z', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1rYuVF****', - ], - 'IpAddress' => [ - 'description' => '设备的IP地址。', - 'type' => 'string', - 'example' => '10.0.0.1', - ], - 'NodeType' => [ - 'description' => '节点类型,取值:'."\n" - .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Region' => [ - 'description' => '设备所在地区(与控制台上的物联网地平台服务地域对应)。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****', - ], - 'GmtActive' => [ - 'description' => '设备的激活时间,GMT格式。', - 'type' => 'string', - 'example' => '2018-08-06 10:48:41', - ], - 'GmtCreate' => [ - 'description' => '设备的创建时间,GMT格式。', - 'type' => 'string', - 'example' => '2018-08-06 10:47:50', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => 'detectors_in_beijing', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '029BC40B-8353-48B3-94C3-7ABF296F0AE5'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceChannelList' => [ + 'description' => '子设备关联的驱动通道列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ChannelId' => ['description' => '驱动通道ID。', 'type' => 'string', 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], + 'ChannelName' => ['description' => '驱动通道名称。', 'type' => 'string', 'example' => 'le_name_update'], + 'IotId' => ['description' => '子设备ID。', 'type' => 'string', 'example' => 'Hathoyxglj9jpYPyw3WN0******'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"Owner\\": true,\\n \\"UtcActive\\": \\"2018-08-06T02:48:41.000Z\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2018-08-06T02:47:50.000Z\\",\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"GmtOnline\\": \\"2018-08-06 13:43:12\\",\\n \\"UtcOnline\\": \\"2018-08-06T05:43:12.000Z\\",\\n \\"ProductKey\\": \\"a1rYuVF****\\",\\n \\"IpAddress\\": \\"10.0.0.1\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"GmtActive\\": \\"2018-08-06 10:48:41\\",\\n \\"GmtCreate\\": \\"2018-08-06 10:47:50\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 2020-01-16 13:33:37\\n Humidity\\n a1ttsqu****\\n sLefbFmN9SYfnWLJTePG893XNuRV****\\n 42.120.75.144\\n 2020-01-08 14:47:08\\n 2020-01-08T06:47:08.000Z\\n dwnS41bhNxjslDAIF****00100\\n OFFLINE\\n 2020-01-17T08:19:11.091Z\\n cn-shanghai\\n 2020-01-16T05:33:37.830Z\\n 温湿度\\n 0\\n 2020-01-17 16:19:11\\n 光照温湿度传感器\\n\\nD2D2DE90-DD0F-44EA-9F56-63F07A59F65B\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的详细信息', - 'summary' => '调用该接口查询指定设备的详细信息。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"029BC40B-8353-48B3-94C3-7ABF296F0AE5\\",\\n \\"Success\\": true,\\n \\"DeviceChannelList\\": [\\n {\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ChannelName\\": \\"le_name_update\\",\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN0******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 029BC40B-8353-48B3-94C3-7ABF296F0AE5\\r\\n Success\\r\\n true\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN0******\\r\\n le_name_update\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n","errorExample":""}]', + 'title' => '批量获取子设备关联的驱动通道', + 'summary' => '批量获取子设备关联的驱动通道。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchQueryDeviceDetail' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeInstanceDeviceConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '**DeviceName.N**中设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'DeviceName', + 'name' => 'IotIds', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的设备名称列表。最多可包含100个设备名称。'."\n" + 'description' => '要查询的设备ID列表。可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" ."\n" - .'> 查询的设备必须在同一产品下。'."\n", + .'> 单次调用最多可填写20个设备ID。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'light', - 'maxItems' => 100, + 'example' => 'BXPV9Ks3bxwM9fDl****000101', + 'maxItems' => 21, ], ], ], @@ -4285,228 +2972,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Data' => [ - 'description' => '调用成功时,返回设备的详细信息。', - 'type' => 'array', - 'items' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'D4A102C2-36A5-4964-9694-0F8EFF95CCA8'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceConfigList' => [ + 'description' => '调用成功时,返回的设备配置数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'sjI0Sd124XFYyjBY****000101'], + 'Config' => [ + 'description' => '设备配置信息。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '设备状态。取值:'."\n" - .'- **ONLINE**:设备在线。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'UtcActive' => [ - 'description' => '​设备的激活时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-06-21T12:31:42.000Z', - ], - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => '路灯产品', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'UtcCreate' => [ - 'description' => '​设备的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-06-21T12:31:42.000Z', - ], - 'FirmwareVersion' => [ - 'description' => '设备的固件版本号。', - 'type' => 'string', - 'example' => 'V1.0.0.0', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'NodeType' => [ - 'description' => '节点类型,取值:'."\n" - .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Region' => [ - 'description' => '设备所在地域(与控制台上物联网平台服务地域对应)。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****', - ], - 'GmtCreate' => [ - 'description' => '设备的创建时间,GMT格式。', - 'type' => 'string', - 'example' => '2019-06-21 20:31:42', - ], - 'GmtActive' => [ - 'description' => '设备的激活时间,GMT格式。', - 'type' => 'string', - 'example' => '2019-06-21 20:33:00', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => '智能路灯', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'Content' => ['description' => '配置内容文本或存储配置内容文件的OSS地址。', 'type' => 'string', 'example' => '{\\"test\\": \\"device_config_demo\\"}'], + 'Format' => ['description' => '配置文件格式。参数值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'example' => 'JSON'], ], ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"UtcActive\\": \\"2019-06-21T12:31:42.000Z\\",\\n \\"ProductName\\": \\"路灯产品\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2019-06-21T12:31:42.000Z\\",\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"GmtCreate\\": \\"2019-06-21 20:31:42\\",\\n \\"GmtActive\\": \\"2019-06-21 20:33:00\\",\\n \\"Nickname\\": \\"智能路灯\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n Humidity\\n 2020-01-16 13:33:37\\n a1ttsqu****\\n sLefbFmN9SYfnWLJTePG893XNuRV****\\n 2020-01-08 14:47:08\\n 2020-01-08T06:47:08.000Z\\n dwnS41bhNxjslDAIF****00100\\n OFFLINE\\n 2020-01-08T06:47:08.000Z\\n cn-shanghai\\n 温湿度\\n 0\\n 光照温湿度传感器\\n \\n \\n OFFLINE\\n 2020-01-17 16:23:15\\n TH_sensor\\n cn-shanghai\\n 2020-01-17T03:39:14.000Z\\n a1ttsqu****\\n 0\\n dCYdTU3gw5Z77bsHjPk6lPHPVnBT****\\n 光照温湿度传感器\\n 2020-01-17 11:39:14\\n 2020-01-17T03:39:14.000Z\\n RKYkCRstfGBh5SZXL****00100\\n \\n\\nD4C12DD8-4390-4877-B1DC-4049CF4868BC\\ntrue\\n","errorExample":""}]', - 'title' => '批量查询设备详情', - 'summary' => '查询指定产品下多个设备的详细信息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 单次调用最多能查询100个设备。'."\n" - .'- 只能批量查询当前阿里云账号下的设备详情。如果传入的设备信息中,有设备不属于当前账号,则直接返回失败结果。'."\n" - .'- 若传入的设备信息中,包含不存在的设备,则只返回存在的设备详情。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4A102C2-36A5-4964-9694-0F8EFF95CCA8\\",\\n \\"Success\\": true,\\n \\"DeviceConfigList\\": [\\n {\\n \\"IotId\\": \\"sjI0Sd124XFYyjBY****000101\\",\\n \\"Config\\": {\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"device_config_demo\\\\\\\\\\\\\\"}\\",\\n \\"Format\\": \\"JSON\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n sjI0Sd124XFYyjBY****000101\\r\\n \\r\\n JSON\\r\\n {\\"test\\": \\"device_config_demo\\"}\\r\\n \\r\\n \\r\\n \\r\\n BXPV9Ks3bxwM9fD****0000101\\r\\n \\r\\n JSON\\r\\n {\\"test\\": \\"device_config_demo\\"}\\r\\n \\r\\n \\r\\n \\r\\n D4A102C2-36A5-4964-9694-0F8EFF95CCA8\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量获取边缘实例设备配置', + 'summary' => '批量获取边缘实例设备配置。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeInstanceDeviceDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,最大值是50。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'CurrentPage', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页的内容。默认值是 1。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'NextToken', + 'name' => 'IotIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '下一页标识,首次查询无需传入。后续查询需使用的**NextToken**,要从上一次查询的返回结果中获取。'."\n" - ."\n\n" - ."\n" - .'当**PageSize**×**CurrentPage**值大于10,000时,必须传入**NextToken**。否则,无法返回数据。'."\n" - ."\n\n" - .'>'."\n" - .'如果传入**NextToken**值,则**PageSize**×**CurrentPage**值必须小于1,000,000。否则,无法返回数据。'."\n" + 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询设备ID。'."\n" ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'TGlzdFJlc291cm***', + .'> 单次调用最多可填写20个设备ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'Hathoyxglj9jpYPyw3WN******', + 'maxItems' => 21, ], ], ], @@ -4515,238 +3068,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" - ."\n" - .'如果**NextToken**值为空,表示没有下一页数据。', - 'type' => 'string', - 'example' => 'TGlzdFJlc291cm***', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Page' => [ - 'description' => '当前页面号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DeviceInfo' => [ - 'description' => '调用成功时,返回设备信息列表(**DeviceInfo**)。'."\n" - .'> 返回的设备信息按照设备创建时间倒序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceId' => [ - 'description' => '设备ID(旧版参数)。'."\n" - ."\n" - .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前,有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', - 'type' => 'string', - 'example' => 'dwnS41bhNxjslDAI****', - ], - 'DeviceType' => [ - 'description' => '设备所属产品的品类。'."\n" - ."\n" - .'> 目前不返回此参数。', - 'type' => 'string', - 'example' => 'Lighting', - ], - 'UtcCreate' => [ - 'description' => '设备创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-02-20T02:16:09.000Z', - ], - 'DeviceStatus' => [ - 'description' => '设备状态。取值:'."\n" - .'- **ONLINE**:设备在线。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'GmtModified' => [ - 'description' => '设备信息最后一次更新时的时间,GMT格式。', - 'type' => 'string', - 'example' => 'Wed, 20-Feb-2019 02:16:09 GMT', - ], - 'ProductKey' => [ - 'description' => '设备所隶属的产品ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'UtcModified' => [ - 'description' => '设备信息最后一次更新时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-02-20T02:16:09.000Z', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'sLefbFmN9SYfnWLJTePG893XNuRV****', - ], - 'GmtCreate' => [ - 'description' => '设备创建时间,GMT格式。', - 'type' => 'string', - 'example' => 'Wed, 20-Feb-2019 02:16:09 GMT', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => '智能灯设备', - ], - 'IotId' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E8D82F7A-0F84-4BD3-AE8A-5444A5B42800'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceDriverList' => [ + 'description' => '子设备的驱动列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => '9c1ae7bd59f1469abbdccc9592******'], + 'IotId' => ['description' => '子设备ID。', 'type' => 'string', 'example' => 'Hathoyxglj9jpYPyw3WN******'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 2,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DeviceInfo\\": [\\n {\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"dwnS41bhNxjslDAI****\\",\\n \\"DeviceType\\": \\"Lighting\\",\\n \\"UtcCreate\\": \\"2019-02-20T02:16:09.000Z\\",\\n \\"DeviceStatus\\": \\"ONLINE\\",\\n \\"GmtModified\\": \\"Wed, 20-Feb-2019 02:16:09 GMT\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"UtcModified\\": \\"2019-02-20T02:16:09.000Z\\",\\n \\"DeviceSecret\\": \\"sLefbFmN9SYfnWLJTePG893XNuRV****\\",\\n \\"GmtCreate\\": \\"Wed, 20-Feb-2019 02:16:09 GMT\\",\\n \\"Nickname\\": \\"智能灯设备\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\nTGlzdFJlc291cm***\\n\\n \\n Av8NGHGtwPrH9BYG****\\n Av8NGHGtwPrH9BYGLMBi\\n a1dafDE****\\n d7GYhf5hfcPHDe1bXSd3n9MjO1G3****\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n Av8NGHGtwPrH9BYGLMBi00****\\n UNACTIVE\\n SensorInShanghai\\n \\n \\n zNIcSmWQ9BPJlmkj****\\n zNIcSmWQ9BPJlmkjn3H1\\n a1dafDE****\\n C27XXmC18yLIEDXvUj6FSlvgO7ag****\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n zNIcSmWQ9BPJlmkjn3H100****\\n UNACTIVE\\n DriverInShanghai\\n \\n\\n1\\n10\\nCD9E5F99-A095-4A05-9256-D924EA3075E8\\ntrue\\n2\\n","errorExample":""}]', - 'title' => '查询指定产品下的所有设备列表', - 'summary' => '调用该接口查询指定产品下的所有设备列表。', - 'description' => '## 使用说明'."\n" - .'调用该接口,单次最多查询到100万个设备。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E8D82F7A-0F84-4BD3-AE8A-5444A5B42800\\",\\n \\"Success\\": true,\\n \\"DeviceDriverList\\": [\\n {\\n \\"DriverId\\": \\"9c1ae7bd59f1469abbdccc9592******\\",\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E8D82F7A-0F84-4BD3-AE8A-5444A5B42800\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN******\\r\\n 9c1ae7bd59f1469abbdccc9592******\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量获取子设备关联的驱动', + 'summary' => '批量获取子设备关联的驱动。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'- 当请求参数**CurrentPage**与**PageSize**的值相乘结果大于或等于100,000时,会降低调用该接口的QPS。'."\n" - .' 此时,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGetEdgeInstanceDriverConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的设备所属的产品**ProductKey**。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1FlqIQ****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定要删除的设备的名称。'."\n" + 'description' => '要查询的驱动ID列表。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的设备ID。'."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。'."\n" ."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'MpEKNuEUJzIORNANAWJX0010929900*****', + .'> 最多可传入20个驱动ID,即最多可批量获取20个驱动的配置。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => '021d154d2a2f4dd7a489773d9e04****', + 'maxItems' => 21, ], ], ], @@ -4755,128 +3160,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.prod.NullProductKey', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '入参产品ID没有赋值。', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'false', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'D6113390-F507-458B-8544-7B01F945630B'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DriverConfigList' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => '021d154d2a2f4dd7a489773d9e04****'], + 'ConfigList' => [ + 'description' => '驱动配置信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', 'type' => 'string', 'example' => 'key1'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => 'dac71722ceac4a299dbf3e8dc3c8****'], + 'Format' => ['description' => '配置文件格式,取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'example' => 'JSON'], + 'Content' => ['description' => '配置内容文本或存储配置内容文件的OSS地址。', 'type' => 'string', 'example' => '{\\"test\\":123}'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.prod.NullProductKey\\",\\n \\"ErrorMessage\\": \\"入参产品ID没有赋值。\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteDevice', - 'summary' => 'Deletes a device. You can also call this operation to delete the topological relationships between a gateway and the sub-devices that are connected to the gateway.', - 'description' => '## 使用说明'."\n" - .'**调用本接口前须知**'."\n" - ."\n" - .'- 使用主账号登录时,物联网平台会进行短信验证,以确认是您本人操作。'."\n" - .'- 使用RAM用户账号时,物联网平台默认无需短信验证。为保障设备安全,您可创建自定义权限策略进行精细化权限管理。具体内容,请参见[IoT授权映射表](~~47485~~)和[自定义权限](~~47495~~)。'."\n" - ."\n" - .'>'."\n" - .'- 设备删除后,设备ID(**IotId**)将失效,与设备关联的其他信息也一并删除,您将无法执行与该设备关联的任何操作。'."\n" - .'- 在物联网平台控制台删除设备前,对应的真实设备必须离线。否则,在物联网平台删除该设备后,真实设备会一直向物联网平台发起建连请求,发起请求数超出限制后,触发物联网平台的限流机制,会影响您当前账号下设备的正常接入。'."\n" - .'- 设备删除后,该设备证书会失效,且不能恢复。请谨慎操作。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'**调用本接口时**'."\n" - ."\n" - .'- 传入请求参数时,需传入**IotId**或**ProductKey**与**DeviceName**组合,用于指定设备。'."\n" - .'- 如果指定设备是网关设备,且其子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D6113390-F507-458B-8544-7B01F945630B\\",\\n \\"Success\\": true,\\n \\"DriverConfigList\\": [\\n {\\n \\"DriverId\\": \\"021d154d2a2f4dd7a489773d9e04****\\",\\n \\"ConfigList\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"dac71722ceac4a299dbf3e8dc3c8****\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\":123}\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n 021d154d2a2f4dd7a489773d9e0****c\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"test\\":123}\\r\\n dac71722ceac4a299dbf3e8dc3c8****\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n D6113390-F507-458B-8544-7B01F945630B\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量获取边缘实例驱动配置', + 'summary' => '批量获取边缘实例驱动配置。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetDeviceStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchGrayMigrationDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', + 'name' => 'DeviceNames', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, + 'description' => '待灰度迁移的设备名称列表。'."\n" + ."\n" + .'单次调用本接口,最多传入10个设备名称。超出10个的设备名称会被直接丢弃。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, 'example' => 'light', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'maxItems' => 10, ], ], ], @@ -4885,146 +3255,146 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回设备状态信息。', + 'description' => '返回的迁移结果。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '设备状态。取值:'."\n" - .'- **ONLINE**:设备在线。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'Timestamp' => [ - 'description' => '设备状态变更时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557062301656', + 'Details' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'item' => [ + 'description' => '返回的设备迁移状态信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备迁移状态。'."\n" + ."\n" + .'- **DEVICE_SUCCEEDED**:成功。'."\n" + .'- **DEVICE_FAILED**:失败。', 'type' => 'string', 'example' => 'SUCCEEDED'], + 'Code' => ['description' => '迁移失败返回的错误码。', 'type' => 'integer', 'format' => 'int32', 'example' => '500'], + 'Message' => ['description' => '迁移失败,返回的出错信息。', 'type' => 'string', 'example' => '系统错误'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"Timestamp\\": 1557062301656\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n ONLINE\\n 1557062301656\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查看指定设备的运行状态', - 'summary' => '调用该接口查看指定设备的运行状态。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.InvalidParams', 'errorMessage' => 'The parameter is invalid。', 'description' => '无效的参数。'], + ['errorCode' => 'iot.provisioning.TaskNotExist', 'errorMessage' => 'Task not exists.', 'description' => '任务不存在。'], + ['errorCode' => 'iot.provisioning.InvalidDistributionStatus', 'errorMessage' => 'The distribution status is invalid.', 'description' => '该任务状态下,禁止操作。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Details\\": {\\n \\"item\\": [\\n {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"Code\\": 500,\\n \\"Message\\": \\"系统错误\\",\\n \\"DeviceName\\": \\"light\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n
\\n \\n DEVICE_SUCCEEDED\\n light\\n \\n
\\n
\\ntrue\\n
","errorExample":""}]', + 'title' => 'BatchGrayMigrationDevice', + 'summary' => '调用该接口持续灰度迁移新增设备。', + 'description' => '## 使用说明'."\n" + .'实例迁移时,如果有新增设备未灰度迁移,可以调用本接口持续灰度迁移增量设备。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'调用本接口前,已在[物联网平台控制台](https://iot.console.aliyun.com/)创建灰度迁移任务,并灰度验证完成,任务已处于灰度完成状态。具体操作,请参见[实例迁移](~~353160~~)。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchGetDeviceState' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchGrayMigrationDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchImportDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查看运行状态的设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要查看运行状态的设备的名称列表。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'light', - 'maxItems' => 51, - ], + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'IotId', - 'in' => 'query', + 'name' => 'DeviceList', + 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '要查看运行状态的设备ID列表。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', + 'description' => '待批量导入的设备列表。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备。超过该限制的数据会被丢弃。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'description' => '设备信息。', + 'type' => 'object', + 'properties' => [ + 'Sn' => ['description' => '设备的序列号。'."\n" + ."\n" + .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备序列号。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => false, 'example' => 'QC4******001'], + 'DeviceName' => ['description' => '设备的名称。'."\n" + ."\n" + .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" + ."\n" + .'设备名称在产品维度下不可重复。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => true, 'example' => 'device1'], + 'DeviceSecret' => ['description' => '设备的密钥。'."\n" + ."\n" + .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。'."\n" + ."\n" + .'> 单次调用该接口,最多能传入10,000个设备密钥。超过该限制的数据会被丢弃。', 'type' => 'string', 'required' => true, 'example' => 'b4d43f7******10ba5e5'], + ], + 'required' => false, ], - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - 'maxItems' => 51, + 'required' => true, + 'maxItems' => 10000, ], ], ], @@ -5033,544 +3403,466 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceStatusList' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'DeviceStatus' => [ - 'description' => '调用成功时,返回设备状态信息列表,请参见**DeviceStatus**下的参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '设备状态。取值:'."\n" - .'- **ONLINE**:设备在线。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', - 'example' => 'OFFLINE', - ], - 'LastOnlineTime' => [ - 'description' => '设备最后一次上线的时间。', - 'type' => 'string', - 'example' => '2020-01-17 16:19:11', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceId' => [ - 'description' => '设备ID(旧版参数)。'."\n" - ."\n" - .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前,有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', - 'type' => 'string', - 'example' => 'dwnS41bhNxjslDAI****', - ], - 'Timestamp' => [ - 'description' => '设备状态变更时间。单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557062301656', - ], - 'AsAddress' => [ - 'description' => '设备IP地址。', - 'type' => 'string', - 'example' => '192.0.2.1', - ], - 'IotId' => [ - 'description' => '设备ID,物联网平台为设备颁发的唯一标识。', - 'type' => 'string', - 'example' => 'dwnS41bhNxjslDAI****000100', + 'ApplyId' => ['description' => '调用成功时,系统返回的申请批次ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1295006'], + 'InvalidDetailList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDetailList' => [ + 'description' => '导入设备失败时,不合法设备列表的详细信息。', + 'type' => 'array', + 'items' => [ + 'description' => '导入设备失败时,不合法设备的详细信息。', + 'type' => 'object', + 'properties' => [ + 'ErrorMsg' => ['description' => '导入设备失败时,返回的出错信息。', 'type' => 'string', 'example' => 'The device name is illegal.'], + 'Sn' => ['description' => '设备SN码。', 'type' => 'string', 'example' => 'QC4001#'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light%'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => '^67$'], + ], ], ], ], + 'description' => '', + ], + 'RepeatedDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'repeatedDeviceName' => [ + 'description' => '调用失败时,返回的重复设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的重复设备名称。', 'type' => 'string', 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }'], + ], + ], + 'description' => '', + ], + 'InvalidSnList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidSn' => [ + 'description' => '调用失败时,返回的不合法设备SN码的列表。', + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的不合法设备SN码。', 'type' => 'string', 'example' => '{ "InvalidSnList": [ "" ] }'], + ], + ], + 'description' => '', + ], + 'InvalidDeviceSecretList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidDeviceSecret' => [ + 'description' => '调用失败时,返回的不合法设备密钥的列表。', + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的不合法设备密钥。', 'type' => 'string', 'example' => '{ "InvalidDeviceSecretList": [ "^67$", "1" ] }'], + ], + ], + 'description' => '', + ], + 'InvalidDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidDeviceName' => [ + 'description' => '调用失败时,返回的不合法设备名称的列表。', + 'type' => 'array', + 'items' => ['description' => '调用失败时,返回的不合法设备名称。', 'type' => 'string', 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }'], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"DeviceStatusList\\": {\\n \\"DeviceStatus\\": [\\n {\\n \\"Status\\": \\"OFFLINE\\",\\n \\"LastOnlineTime\\": \\"2020-01-17 16:19:11\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"dwnS41bhNxjslDAI****\\",\\n \\"Timestamp\\": 1557062301656,\\n \\"AsAddress\\": \\"192.0.2.1\\",\\n \\"IotId\\": \\"dwnS41bhNxjslDAI****000100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n OFFLINE\\n dwnS41bhNxjslDAI****\\n Humidity\\n 192.0.2.1\\n 2020-01-17 16:19:11\\n 1557062301656\\n dwnS41bhNxjslDAI****000100\\n \\n\\n3258D872-EDC5-4039-B564-C27ED7176741\\ntrue\\n","errorExample":""}]', - 'title' => '批量查看同一产品下指定设备的运行状态', - 'summary' => '调用该接口批量查看同一产品下指定设备的运行状态。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', 'errorMessage' => 'The devices you query exceed the maximum number.', 'description' => '请求查询的设备名称数量超过最大限制。'], + ['errorCode' => 'iot.device.ApplyManyDevicesFailed', 'errorMessage' => 'An error occurred while creating multiple devices.', 'description' => '申请批量创建设备失败。'], + ['errorCode' => 'iot.device.DeviceNumerExceedTenant', 'errorMessage' => 'The device total number beyond limit.', 'description' => '设备数量超限。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"Sn\\": \\"QC4001#\\",\\n \\"DeviceName\\": \\"light%\\",\\n \\"DeviceSecret\\": \\"^67$\\"\\n }\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"repeatedDeviceName\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidSnList\\": {\\n \\"invalidSn\\": [\\n \\"{ \\\\\\"InvalidSnList\\\\\\": [ \\\\\\"\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceSecretList\\": {\\n \\"invalidDeviceSecret\\": [\\n \\"{ \\\\\\"InvalidDeviceSecretList\\\\\\": [ \\\\\\"^67$\\\\\\", \\\\\\"1\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"invalidDeviceName\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1295006\\n\\ntrue\\n","errorExample":""}]', + 'title' => '在MQTT云网关产品下批量导入设备', + 'summary' => '调用该接口在MQTT型实例或MQTT云网关产品下批量导入设备。', 'description' => '## 使用说明'."\n" - .'调用本接口时:'."\n" - .'- 请求参数同时传入**ProductKey**和多个**DeviceName**:查询同一产品多个设备的运行状态。'."\n" - .'- 请求参数传入多个**IotId**:可传入不同产品下设备的**IotId**,查询不同产品下设备的运行状态。'."\n" + .'若添加MQTT云网关设备,调用该接口前,请先添加MQTT云网关并成功创建云网关产品,获取产品的**Productkey**。具体操作,请参见[创建云网关产品(MQTT)](~~433804~~)。'."\n" + ."\n\n" + .'## QPS限制'."\n" ."\n" - .'>单次调用本接口最多可查询50个设备的运行状态。'."\n" - .'>'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DisableThing' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要禁用设备的ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => '禁用指定设备', - 'summary' => '调用该接口禁用指定设备。', - 'description' => '## 使用说明'."\n" - .'设备被禁用后将不能接入物联网平台,您将无法执行与设备有关的操作,但与设备关联的信息依然保留。您可以调用[EnableThing](~~69603~~)接口重新接入被禁用的设备。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'EnableThing' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchImportVehicleDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => true, 'example' => 'iot-1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要解除禁用的设备所属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Bw****'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', + 'name' => 'DeviceList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要解除禁用的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['type' => 'string', 'required' => false, 'description' => ''], + 'DeviceId' => ['type' => 'string', 'required' => false, 'description' => ''], + 'DeviceSecret' => ['type' => 'string', 'required' => false, 'description' => ''], + 'DeviceModel' => ['type' => 'string', 'required' => false, 'description' => ''], + 'Manufacturer' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + 'maxItems' => 10000, + 'description' => '', ], ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要解除禁用设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - 'responses' => [ - 200 => [ + ], + 'responses' => [ + 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n" + ."\n" + .'设备导入失败时,会返回以下信息:'."\n" + ."\n" + .'- **InvalidDeviceIdList**:不合法设备ID的列表。'."\n" + .'- **InvalidDeviceModelList**:不合法设备型号的列表。'."\n" + .'- **InvalidManufacturerList**:不合法设备厂商ID的列表。'."\n" + .'- **RepeatedDeviceIdList**:重复设备ID的列表。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'ApplyId' => ['description' => '调用成功时,系统返回的申请批次ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1295006'], + 'InvalidDetailList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDetailList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ErrorMsg' => ['type' => 'string', 'description' => ''], + 'DeviceModel' => ['type' => 'string', 'description' => ''], + 'DeviceName' => ['type' => 'string', 'description' => ''], + 'DeviceId' => ['type' => 'string', 'description' => ''], + 'Manufacturer' => ['type' => 'string', 'description' => ''], + ], + 'description' => '', + ], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidManufacturerList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidManufacturerList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'RepeatedDeviceIdList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'repeatedDeviceIdList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'RepeatedDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RepeatedDeviceNameList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidDeviceIdList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidDeviceIdList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidDeviceModelList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidDeviceModelList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + 'InvalidDeviceNameList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'InvalidDeviceNameList' => [ + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'description' => '', + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => '启用指定设备', - 'summary' => '调用该接口解除指定设备的禁用状态,即启用被禁用的设备。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', 'errorMessage' => 'The devices you query exceed the maximum number.', 'description' => '请求查询的设备名称数量超过最大限制。'], + ['errorCode' => 'iot.device.ApplyManyDevicesFailed', 'errorMessage' => 'An error occurred while creating multiple devices.', 'description' => '申请批量创建设备失败。'], + ['errorCode' => 'iot.common.InvalidTenant', 'errorMessage' => 'the device tenantId is invalid.', 'description' => '设备的租户信息不匹配。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', 'errorMessage' => 'The DeviceName list contains an invalid DeviceName.', 'description' => '设备名称列表中存在非法格式的设备名称。'], + ['errorCode' => 'iot.prod.InvalidProductAuthType', 'errorMessage' => 'The product authentication type is invalid.', 'description' => '不合法的产品认证类型。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is invalid.', 'description' => '入参产品ProductKey格式错误。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"\\",\\n \\"DeviceModel\\": \\"\\",\\n \\"DeviceName\\": \\"\\",\\n \\"DeviceId\\": \\"\\",\\n \\"Manufacturer\\": \\"\\"\\n }\\n ]\\n },\\n \\"InvalidManufacturerList\\": {\\n \\"invalidManufacturerList\\": [\\n \\"\\"\\n ]\\n },\\n \\"RepeatedDeviceIdList\\": {\\n \\"repeatedDeviceIdList\\": [\\n \\"\\"\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"RepeatedDeviceNameList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceIdList\\": {\\n \\"invalidDeviceIdList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceModelList\\": {\\n \\"invalidDeviceModelList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"InvalidDeviceNameList\\": [\\n \\"\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1295006\\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchImportVehicleDevice', + 'summary' => '调用该接口在云网关产品下批量导入设备。', + 'description' => '## 使用说明'."\n" + .'本接口用于批量导入JT/T 808协议云网关设备。'."\n" + ."\n\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ResetThing' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchPub' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要发送消息的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'Qos', + 'in' => 'query', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + 'description' => '指定消息的发送方式。取值:'."\n" ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + .'- **0**:最多发送一次。'."\n" + .'- **1**:最少发送一次。'."\n" ."\n" - .'>'."\n" + .'如果不传入此参数,则使用默认值**0**。'."\n" ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', + .'> QoS=1的消息在物联网平台中最多可以保存7天。物联网平台不保存QoS=0的消息。', + 'type' => 'integer', + 'format' => 'int32', 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], ], ], [ - 'name' => 'ProductKey', + 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'description' => '要重置的设备所属的产品ProductKey。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1KiV******', - ], + 'schema' => ['description' => '自定义Topic的后缀。'."\n" + .'自定义Topic的格式为`/${productKey}/${deviceName}/user/${TopicShortName}`,传入后缀${TopicShortName}。'."\n" + ."\n" + .'> 指定Topic的操作权限须为订阅,或发布和订阅,且所有设备已订阅该Topic。'."\n" + ."\n" + .'您可通过以下途径查看自定义Topic:'."\n" + .'- 在产品详情页的**Topic类列表**页签下,查看产品下的自定义Topic。'."\n" + .'- 在设备详情页的**Topic列表**页签下,查看设备已订阅的自定义Topic。'."\n" + .'- 调用[QueryProductTopic](~~69647~~)接口查询产品下的自定义Topic。', 'type' => 'string', 'required' => false, 'example' => 'get'], ], [ - 'name' => 'DeviceName', + 'name' => 'MessageContent', 'in' => 'query', - 'schema' => [ - 'description' => '指定重置的设备的名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], + 'schema' => ['description' => '要发送的消息主体。最大报文256 KB。'."\n" + ."\n" + .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', 'type' => 'string', 'required' => true, 'example' => 'eyJ0ZXN0IjoidGFzayBiYXRjaHB1YiBicm9hZGNhc3QifQ=='], ], [ - 'name' => 'IotId', + 'name' => 'TopicTemplateName', 'in' => 'query', - 'schema' => [ - 'description' => '要重置的设备ID。'."\n" - ."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,与**ProductKey**和**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'SR8FiTu1R9tlUR2V1bmi0010a5****', - ], + 'schema' => ['type' => 'string', 'required' => false], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '是否调用成功。**true**表示调用成功,**false**表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JobId' => [ - 'description' => '设备任务ID,设备任务的全局唯一标识符。', - 'type' => 'string', - 'example' => '450407b***', - ], - ], - ], + [ + 'name' => 'ResponseTopicTemplateName', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"450407b***\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '重置设备', - 'summary' => '重置指定设备,重置直连设备一型一密状态,同时删除当前设备的拓扑关系。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 如果直连设备通过动态注册获取设备证书信息(ProductKey、DeviceName和DeviceSecret)并激活后,您可调用本接口,重置设备的动态注册状态为未注册,然后再次通过动态注册获取设备证书信息。'."\n" - .' > 调用本接口是重置设备动态注册状态,不是重置设备激活状态,即物联网平台控制台对应设备的状态不会重置为未激活。'."\n" - ."\n" - .'- 如果指定设备是网关设备,且其子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" - ."\n\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchCheckDeviceNames' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'CorrelationData', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'PayloadFormatIndicator', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], [ - 'name' => 'ProductKey', + 'name' => 'ContentType', 'in' => 'query', - 'schema' => [ - 'description' => '要注册的设备所属的产品ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'MessageExpiryInterval', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false], + ], + [ + 'name' => 'Retained', + 'in' => 'query', + 'schema' => ['type' => 'boolean', 'required' => false], ], [ 'name' => 'DeviceName', - 'in' => 'formData', + 'in' => 'query', 'style' => 'repeatList', 'schema' => [ + 'description' => '要接收消息的设备名称。'."\n" + ."\n" + .'> - 与**ProductKey**结合使用,传入设备必须属于同一产品。'."\n" + .'- 单次调用,最多传入100个设备名称,且设备名称不可重复。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10000, + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'newdevice1', + 'maxItems' => 100, ], ], [ - 'name' => 'DeviceNameList', - 'in' => 'formData', + 'name' => 'UserProp', + 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'DeviceNickname' => [ - 'type' => 'string', - 'required' => false, - ], - 'DeviceName' => [ - 'type' => 'string', - 'required' => false, - ], + 'Key' => ['type' => 'string', 'required' => false], + 'Value' => ['type' => 'string', 'required' => false], ], - 'required' => false, ], 'required' => false, - 'maxItems' => 10000, + 'maxItems' => 20, ], ], ], @@ -5579,187 +3871,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。'."\n", - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'properties' => [ - 'ApplyId' => [ - 'description' => '调用成功时,系统返回的申请批次ID。使用该ApplyId,调用[BatchRegisterDeviceWithApplyId](~~69514~~)接口来批量创建设备。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1295006', - ], - 'InvalidDetailList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDetailList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'NickName' => [ - 'type' => 'string', - ], - 'ErrorMsg' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'RepeatedDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RepeatDevieNameList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'InvalidDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDeviceName' => [ - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的不合法设备名称列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceName": [ "APT$", "aw" ] }', - ], - ], - ], - ], - 'InvalidDeviceNicknameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDeviceNickname' => [ - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的不合法设备备注名称列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceNickname": [ "APT$", "aw" ] }', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"NickName\\": \\"\\",\\n \\"ErrorMsg\\": \\"\\",\\n \\"DeviceName\\": \\"\\"\\n }\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"RepeatDevieNameList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"InvalidDeviceName\\": [\\n \\"{ \\\\\\"InvalidDeviceName\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceNicknameList\\": {\\n \\"InvalidDeviceNickname\\": [\\n \\"{ \\\\\\"InvalidDeviceNickname\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1234567\\n\\nE976E36B-6874-4FA4-8BC0-55F9BEC5E2EF\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchCheckDeviceNames', - 'summary' => '调用该接口在指定产品下批量自定义设备名称。物联网平台将检查名称的合法性。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\r\\ntrue\\r\\n","errorExample":""}]', + 'title' => '向设备批量发送消息', + 'summary' => '通过自定义Topic,向指定产品下的多个设备,批量发送消息。', 'description' => '## 使用说明'."\n" - .'该接口和**BatchRegisterDeviceWithApplyId**接口结合使用,在一个产品下批量注册多个设备,并且为每个设备单独命名。'."\n" - .'批量注册设备流程:'."\n" - ."\n" - .'1. 调用本接口,传入要批量注册的设备的名称,物联网平台返回申请批次ID(**ApplyId**)。返回成功结果,表示批量校验设备名称的申请已经提交成功。实际的校验是异步执行的,会有一个过程。'."\n" - .'2. 调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看名称设置结果。'."\n" - .'3. 调用[BatchRegisterDeviceWithApplyId](~~69514~~)批量注册设备。'."\n" - .'4. (可选)调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看设备注册结果。'."\n" - .'5. 调用[QueryPageByApplyId](~~69518~~)查看批量注册的设备信息。'."\n" ."\n" - .'## 使用限制'."\n" - .'单次调用,最多能定义1,0000 个设备名称。'."\n" + .'- 单批次最多向同一产品下的100个设备发送消息。'."\n" + .'- 不支持使用BatchPub接口下发设置属性和调用服务的指令。设置属性,请使用接口[SetDeviceProperty](~~69579~~)或[SetDevicesProperty](~~96243~~);调用服务,请使用接口[InvokeThingService](~~69584~~)或[InvokeThingsService](~~96242~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享该阿里云账号配额。'."\n" - ."\n", + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BatchRegisterDeviceWithApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchQueryDeviceDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '**DeviceName.N**中设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要批量注册的设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'ApplyId', + 'name' => 'DeviceName', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要批量注册的设备的申请批次ID。申请批次ID由调用[BatchCheckDeviceNames](~~69482~~)接口生成。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '要查询的设备名称列表。最多可包含100个设备名称。'."\n" + ."\n" + .'> 查询的设备必须在同一产品下。'."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '1295006', + 'example' => 'light', + 'maxItems' => 100, ], ], ], @@ -5768,125 +3950,120 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的数据,详情请参见以下参数。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ApplyId' => [ - 'description' => '申请批次ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1295006', + 'Data' => [ + 'description' => '调用成功时,返回设备的详细信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备状态。取值:'."\n" + .'- **ONLINE**:设备在线。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'UtcActive' => ['description' => '​设备的激活时间,UTC格式。', 'type' => 'string', 'example' => '2019-06-21T12:31:42.000Z'], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => '路灯产品'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'UtcCreate' => ['description' => '​设备的创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-06-21T12:31:42.000Z'], + 'FirmwareVersion' => ['description' => '设备的固件版本号。', 'type' => 'string', 'example' => 'V1.0.0.0'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'NodeType' => ['description' => '节点类型,取值:'."\n" + .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Region' => ['description' => '设备所在地域(与控制台上物联网平台服务地域对应)。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****'], + 'GmtCreate' => ['description' => '设备的创建时间,GMT格式。', 'type' => 'string', 'example' => '2019-06-21 20:31:42'], + 'GmtActive' => ['description' => '设备的激活时间,GMT格式。', 'type' => 'string', 'example' => '2019-06-21 20:33:00'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => '智能路灯'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1234567\\n\\n82C16DC1-41B5-45F8-9AFD-1FB42448D405\\ntrue\\n","errorExample":""}]', - 'title' => '批量注册设备', - 'summary' => '根据申请批次ID(ApplyId)批量注册设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"UtcActive\\": \\"2019-06-21T12:31:42.000Z\\",\\n \\"ProductName\\": \\"路灯产品\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2019-06-21T12:31:42.000Z\\",\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"GmtCreate\\": \\"2019-06-21 20:31:42\\",\\n \\"GmtActive\\": \\"2019-06-21 20:33:00\\",\\n \\"Nickname\\": \\"智能路灯\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n Humidity\\n 2020-01-16 13:33:37\\n a1ttsqu****\\n sLefbFmN9SYfnWLJTePG893XNuRV****\\n 2020-01-08 14:47:08\\n 2020-01-08T06:47:08.000Z\\n dwnS41bhNxjslDAIF****00100\\n OFFLINE\\n 2020-01-08T06:47:08.000Z\\n cn-shanghai\\n 温湿度\\n 0\\n 光照温湿度传感器\\n \\n \\n OFFLINE\\n 2020-01-17 16:23:15\\n TH_sensor\\n cn-shanghai\\n 2020-01-17T03:39:14.000Z\\n a1ttsqu****\\n 0\\n dCYdTU3gw5Z77bsHjPk6lPHPVnBT****\\n 光照温湿度传感器\\n 2020-01-17 11:39:14\\n 2020-01-17T03:39:14.000Z\\n RKYkCRstfGBh5SZXL****00100\\n \\n\\nD4C12DD8-4390-4877-B1DC-4049CF4868BC\\ntrue\\n","errorExample":""}]', + 'title' => '批量查询设备详情', + 'summary' => '查询指定产品下多个设备的详细信息。', 'description' => '## 使用说明'."\n" - .'批量注册设备有两种方式:'."\n" - .'- 由系统随机生成设备名称:请调用[BatchRegisterDevice](~~69473~~)接口。'."\n" - .'- 自定义设备名称:需本接口与**BatchCheckDeviceNames**等接口结合实现。请按以下流程操作:'."\n" - .' 1. 调用[BatchCheckDeviceNames](~~69482~~)接口,传入要批量注册的设备的名称。物联网平台检查您提交的设备名称符合要求后,返回申请批次ID(**ApplyId**)。**ApplyId**将用于设备名称校验结果查询、批量设备注册和设备信息查询。'."\n" - .' 2. 调用[QueryBatchRegisterDeviceStatus](~~69483~~)接口,根据申请批次ID,查看名称校验结果。请确保自定义设备名称全部校验通过,再执行后续操作完成设备注册。 '."\n" - .' > 如果有校验失败的设备名称,请根据错误信息提示进行修正,然后重新调用[BatchCheckDeviceNames](~~69482~~)接口获取新的申请批次ID(**ApplyId**)后,再次调用[QueryBatchRegisterDeviceStatus](~~69483~~)接口确认全部设备名称校验通过。'."\n" ."\n" - .' 3. 调用本接口批量注册设备。本接口调用返回的成功结果,仅表示批量注册的申请已经提交成功。实际的注册会有一个过程。'."\n" - .' 4. (可选)调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看设备注册结果。'."\n" - .' 5. 调用[QueryPageByApplyId](~~69518~~)查看批量注册的设备信息。'."\n" + .'- 单次调用最多能查询100个设备。'."\n" + .'- 只能批量查询当前阿里云账号下的设备详情。如果传入的设备信息中,有设备不属于当前账号,则直接返回失败结果。'."\n" + .'- 若传入的设备信息中,包含不存在的设备,则只返回存在的设备详情。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchQueryDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], ], 'BatchRegisterDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要批量注册的设备所隶属的产品ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要批量注册的设备所隶属的产品ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ 'name' => 'Count', 'in' => 'query', - 'schema' => [ - 'description' => '要注册的设备数量。'."\n" - ."\n" - .'> 单次调用,最多可创建10,000个设备。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '100', - ], + 'schema' => ['description' => '要注册的设备数量。'."\n" + ."\n" + .'> 单次调用,最多可创建10,000个设备。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '100'], ], ], 'responses' => [ @@ -5894,41 +4071,21 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'ApplyId' => [ - 'description' => '调用成功时,系统返回的申请批次ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1295006', - ], + 'ApplyId' => ['description' => '调用成功时,系统返回的申请批次ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1295006'], ], ], ], + 'description' => '', ], ], ], @@ -5958,88 +4115,53 @@ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchUpdateDeviceNickname' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchRegisterDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchRegisterDeviceWithApplyId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceNicknameInfo', + 'name' => 'ProductKey', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要修改备注名称的设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '要修改备注名称的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '要修改备注名称的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - 'Nickname' => [ - 'description' => '新的设备备注名称。备注名称长度为4~32个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" - ."\n" - .'> 若不传入该参数,则删除该设备原有的备注名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'AliyunDataCenter', - ], - 'IotId' => [ - 'description' => '要修改备注名称的设备ID。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 50, - ], + 'schema' => ['description' => '要批量注册的设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'ApplyId', + 'in' => 'query', + 'schema' => ['description' => '要批量注册的设备的申请批次ID。申请批次ID由调用[BatchCheckDeviceNames](~~69482~~)接口生成。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1295006'], ], ], 'responses' => [ @@ -6047,101 +4169,108 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据,详情请参见以下参数。', + 'type' => 'object', + 'properties' => [ + 'ApplyId' => ['description' => '申请批次ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1295006'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchUpdateDeviceNickname', - 'summary' => '调用该接口批量修改设备备注名称。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1234567\\n\\n82C16DC1-41B5-45F8-9AFD-1FB42448D405\\ntrue\\n","errorExample":""}]', + 'title' => '批量注册设备', + 'summary' => '根据申请批次ID(ApplyId)批量注册设备。', + 'description' => '## 使用说明'."\n" + .'批量注册设备有两种方式:'."\n" + .'- 由系统随机生成设备名称:请调用[BatchRegisterDevice](~~69473~~)接口。'."\n" + .'- 自定义设备名称:需本接口与**BatchCheckDeviceNames**等接口结合实现。请按以下流程操作:'."\n" + .' 1. 调用[BatchCheckDeviceNames](~~69482~~)接口,传入要批量注册的设备的名称。物联网平台检查您提交的设备名称符合要求后,返回申请批次ID(**ApplyId**)。**ApplyId**将用于设备名称校验结果查询、批量设备注册和设备信息查询。'."\n" + .' 2. 调用[QueryBatchRegisterDeviceStatus](~~69483~~)接口,根据申请批次ID,查看名称校验结果。请确保自定义设备名称全部校验通过,再执行后续操作完成设备注册。 '."\n" + .' > 如果有校验失败的设备名称,请根据错误信息提示进行修正,然后重新调用[BatchCheckDeviceNames](~~69482~~)接口获取新的申请批次ID(**ApplyId**)后,再次调用[QueryBatchRegisterDeviceStatus](~~69483~~)接口确认全部设备名称校验通过。'."\n" + ."\n" + .' 3. 调用本接口批量注册设备。本接口调用返回的成功结果,仅表示批量注册的申请已经提交成功。实际的注册会有一个过程。'."\n" + .' 4. (可选)调用[QueryBatchRegisterDeviceStatus](~~69483~~)查看设备注册结果。'."\n" + .' 5. 调用[QueryPageByApplyId](~~69518~~)查看批量注册的设备信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryBatchRegisterDeviceStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchRegisterDeviceWithApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchSetEdgeInstanceDeviceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'ApplyId', + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], + ], + [ + 'name' => 'ChannelId', 'in' => 'query', + 'schema' => ['description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], + ], + [ + 'name' => 'IotIds', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的申请批次ID。'."\n" + 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询子设备ID。'."\n" ."\n" - .'申请批次ID在成功调用[BatchCheckDeviceNames](~~69482~~)或[BatchRegisterDevice](~~69473~~)接口的返回结果中。', - 'type' => 'integer', - 'format' => 'int64', + .'> 单次调用最多可填写20个子设备ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '1295006', + 'example' => 'Hathoyxglj9jpYPyw3WN******', + 'maxItems' => 21, ], ], ], @@ -6150,213 +4279,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n" - ."\n" - .'> 目前仅华东2(cn-shanghai)地域支持设备X.509证书,如果地域不是华东2(cn-shanghai),则不能生成X.509证书,返回错误码iot.device.RegionNotSupportX509。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的状态信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '申请单的处理状态和结果,取值:'."\n" - ."\n" - .'- **CHECK**:正在校验设备名称。'."\n" - ."\n" - .'- **CHECK_SUCCESS**:申请单中的所有设备名称校验成功。'."\n" - ."\n" - .'- **CHECK_FAILED**:申请单中有设备名称校验失败。'."\n" - ."\n" - .'- **CREATE**:正在创建设备。'."\n" - ."\n" - .'- **CREATE_SUCCESS**:申请单中的所有设备创建成功。'."\n" - .' > 当设备所属产品的认证类型是X.509证书时,表示所有设备和对应的X.509证书都创建成功。'."\n" - ."\n" - .'- **CREATE_FAILED**:申请单中有设备创建失败。'."\n" - ."\n" - .' > 当设备所属产品的认证类型是X.509时,只要当前批次中,任意一个设备或X.509证书创建失败,则返回创建失败。', - 'type' => 'string', - 'example' => 'CREATE_SUCCESS', - ], - 'InvalidDetailList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidDetailList' => [ - 'description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建失败的设备的详情集合。'."\n" - .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回失败详情,该参数为空数组。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ErrorMsg' => [ - 'description' => '创建设备失败,返回的出错信息。'."\n" - ."\n" - .'> 多个出错信息间使用竖线(|)隔开。', - 'type' => 'string', - 'example' => 'The nick name is illegal.', - ], - 'NickName' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => '园区灯-1', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - ], - ], - ], - ], - ], - 'InvalidList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Name' => [ - 'type' => 'array', - 'items' => [ - 'description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建失败的设备名称集合。'."\n" - .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回设备列表,该参数为空数组。', - 'type' => 'string', - 'example' => '{ "Name": ["Elec_instrument"] }', - ], - ], - ], - ], - 'ValidList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Name' => [ - 'type' => 'array', - 'items' => [ - 'description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建成功的设备名称集合。'."\n" - .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回设备列表,该参数为空数组。', - 'type' => 'string', - 'example' => '{ "Name": ["light3"] }', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B0325EA9-671C-460B-B0F3-83F41CFF855B'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"CREATE_SUCCESS\\",\\n \\"InvalidDetailList\\": {\\n \\"invalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The nick name is illegal.\\",\\n \\"NickName\\": \\"园区灯-1\\",\\n \\"DeviceName\\": \\"light\\"\\n }\\n ]\\n },\\n \\"InvalidList\\": {\\n \\"Name\\": [\\n \\"{ \\\\\\"Name\\\\\\": [\\\\\\"Elec_instrument\\\\\\"] }\\"\\n ]\\n },\\n \\"ValidList\\": {\\n \\"Name\\": [\\n \\"{ \\\\\\"Name\\\\\\": [\\\\\\"light3\\\\\\"] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n CREATE_SUCCESS\\n \\n \\n The nick name is illegal. | The nick name is illegal.\\n 园区灯-1\\n Elec_instrument\\n \\n \\n \\n light3\\n \\n \\n Elec_instrument\\n \\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询批量注册设备申请的处理状态和结果', - 'summary' => '调用该接口查询批量注册设备申请的处理状态和结果。', - 'description' => '## 使用说明'."\n" - ."\n" - .'批量注册设备时,可调用本接口根据申请批次ID(**ApplyId**),查看设备名称校验结果或注册结果。'."\n" - ."\n" - .'使用自定义设备名称批量注册设备时,必须先调用本接口确保自定义设备名称全部校验通过,再调用[BatchRegisterDeviceWithApplyId](~~69514~~)接口根据对应申请批次ID完成设备注册。'."\n" - ."\n" - .'> - 如果有校验失败的设备名称,请根据错误信息提示进行修正,然后重新调用[BatchCheckDeviceNames](~~69482~~)接口获取新的申请批次ID(**ApplyId**)后,再次调用**QueryBatchRegisterDeviceStatus**接口确认全部设备名称校验通过。'."\n" - .'- 如果返回的**Status**为**CHECK**,请耐心等待。批量注册设备有一个过程,您可再次调用本接口查看**Status**确认全部设备名称校验通过。'."\n" - ."\n" - .'使用自定义设备名称批量注册设备的完整流程,请参见[BatchCheckDeviceNames](~~69482~~)的**使用说明**。'."\n" - ."\n" - .'## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B0325EA9-671C-460B-B0F3-83F41CFF855B\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B0325EA9-671C-460B-B0F3-83F41CFF855B\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量关联驱动通道到子设备', + 'summary' => '批量关联驱动通道到子设备。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryPageByApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchSetEdgeInstanceDeviceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchSetEdgeInstanceDeviceConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量。数量限制:每页最多可显示50条。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'ApplyId', + 'name' => 'DeviceConfigs', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的申请批次ID。申请批次ID可在[BatchRegisterDeviceWithApplyId](~~69514~~)和[BatchRegisterDevice](~~69473~~)接口返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '设备配置信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Content' => ['description' => '配置内容,可以选择传入:'."\n" + ."\n" + .'- 配置内容文本。格式请参见[设备配置说明](~~172319~~)。'."\n" + .'- 存储配置文件的阿里云对象存储(OSS)地址。'."\n" + ."\n" + .'> 单次调用最多可填写20个配置信息。', 'type' => 'string', 'required' => true, 'example' => '{"test": "device_config_demo"}'], + 'IotId' => ['description' => '设备ID。'."\n" + ."\n" + .'可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" + ."\n" + .'> 单次调用最多可填写20个设备ID。', 'type' => 'string', 'required' => true, 'example' => 'sjI0Sd124XFYyjBY****000101'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => '1295006', - ], - ], - [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'maxItems' => 21, ], ], ], @@ -6365,172 +4371,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '该批次的设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => '当前页面号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ApplyDeviceList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ApplyDeviceInfo' => [ - 'description' => '调用成功时,生成的已注册的设备列表(**ApplyDeviceInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceId' => [ - 'description' => '设备ID(旧版参数)。'."\n" - ."\n" - .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', - 'type' => 'string', - 'example' => 'gQG2GJ2y10m6hIk8****', - ], - 'IotId' => [ - 'description' => '设备ID,物联网平台为该设备颁发的唯一标识符。', - 'type' => 'string', - 'example' => 'vWxNur6BUApsqjv9****000100', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'SkfeXXKrTgp1DbDxYr74mfJ5cnui****', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '748659E2-EDC9-4E3E-BF9D-06F16995CF66'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"ApplyDeviceList\\": {\\n \\"ApplyDeviceInfo\\": [\\n {\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"gQG2GJ2y10m6hIk8****\\",\\n \\"IotId\\": \\"vWxNur6BUApsqjv9****000100\\",\\n \\"DeviceSecret\\": \\"SkfeXXKrTgp1DbDxYr74mfJ5cnui****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n vWxNur6BUApsqjv9****\\n APItest\\n tXXEtily4XuV7WS1fosJoDkhRIIU****\\n vWxNur6BUApsqjv****4000100\\n \\n \\n hoiwszKPYmHk074H****\\n awfg\\n BYpg1b2nmuq21BO7fxOogYQQZd9z****\\n hoiwszKPYmHk074HA****000100\\n \\n\\n1\\n10\\n762F7AAD-8B87-4C65-BBF3-4575B002B384\\ntrue\\n2\\n","errorExample":""}]', - 'title' => '查询批量注册的设备信息', - 'summary' => '调用该接口查询批量注册的设备信息。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"748659E2-EDC9-4E3E-BF9D-06F16995CF66\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 748659E2-EDC9-4E3E-BF9D-06F16995CF66\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'BatchSetEdgeInstanceDeviceConfig', + 'summary' => '调用该接口批量配置边缘实例设备。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetGatewayBySubDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:BatchSetEdgeInstanceDeviceConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchUnbindDeviceFromEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '子设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '子设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'IotId', + 'name' => 'IotIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '子设备ID。物联网平台为该子设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'description' => '设备ID列表。可调用[QueryDevice](~~69905~~)查询当前账号下所有设备信息,获取设备IotId。'."\n" + ."\n" + .'> 单次调用最多可移除20个设备。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'BXPV9Ks3bxwM9fD****0000101', + 'maxItems' => 21, ], ], ], @@ -6539,201 +4448,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的网关设备的详细信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '网关设备状态。取值:'."\n" - .'- **online**:设备在线。'."\n" - .'- **offline**:设备离线。'."\n" - .'- **unactive**:设备未激活。'."\n" - .'- **disable**:设备已禁用', - 'type' => 'string', - 'example' => 'online', - ], - 'UtcActive' => [ - 'description' => '网关设备的激活时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', - 'type' => 'string', - 'example' => '2019-12-18T15:25:30.176Z', - ], - 'ProductName' => [ - 'description' => '网关设备隶属的产品名称。', - 'type' => 'string', - 'example' => 'LinkIoT', - ], - 'DeviceName' => [ - 'description' => '网关设备名称。', - 'type' => 'string', - 'example' => 'gateway', - ], - 'FirmwareVersion' => [ - 'description' => '网关设备的固件版本号。', - 'type' => 'string', - 'example' => 'V1.0.1', - ], - 'UtcCreate' => [ - 'description' => '网关设备的创建时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', - 'type' => 'string', - 'example' => '2019-12-18T08:58:33.000Z', - ], - 'region' => [ - 'description' => '网关设备所在地域(与控制台上的地域对应)。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'GmtOnline' => [ - 'description' => '网关设备最近一次上线的时间,GMT格式,是用户所在地的当地时间。', - 'type' => 'string', - 'example' => '2020-01-20 17:41:04', - ], - 'iotId' => [ - 'description' => '物联网平台为该网关设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'WuyjPSDQE1L22z1d****000100', - ], - 'UtcOnline' => [ - 'description' => '网关设备最近一次上线的时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', - 'type' => 'string', - 'example' => '2020-01-20T09:41:04.879Z', - ], - 'ProductKey' => [ - 'description' => '网关设备隶属的产品**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'IpAddress' => [ - 'description' => '网关设备的IP地址。', - 'type' => 'string', - 'example' => '106.**.1**.**', - ], - 'NodeType' => [ - 'description' => '节点类型,取值为1,表示该设备为网关设备。', - 'type' => 'string', - 'example' => '1', - ], - 'DeviceSecret' => [ - 'description' => '网关设备密钥。', - 'type' => 'string', - 'example' => 'dCYdTU3gw5Z77bsHjPk6lPHPVnBT****', - ], - 'GmtCreate' => [ - 'description' => '网关设备的创建时间,GMT格式,是用户所在地的当地时间。', - 'type' => 'string', - 'example' => '2019-12-18 16:58:33', - ], - 'GmtActive' => [ - 'description' => '网关设备的激活时间,GMT格式,是用户所在地的当地时间。', - 'type' => 'string', - 'example' => '2019-12-18 23:25:30', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '34755DC3-2809-4AE2-BAD8-7B81ED69D570'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"online\\",\\n \\"UtcActive\\": \\"2019-12-18T15:25:30.176Z\\",\\n \\"ProductName\\": \\"LinkIoT\\",\\n \\"DeviceName\\": \\"gateway\\",\\n \\"FirmwareVersion\\": \\"V1.0.1\\",\\n \\"UtcCreate\\": \\"2019-12-18T08:58:33.000Z\\",\\n \\"region\\": \\"cn-shanghai\\",\\n \\"GmtOnline\\": \\"2020-01-20 17:41:04\\",\\n \\"iotId\\": \\"WuyjPSDQE1L22z1d****000100\\",\\n \\"UtcOnline\\": \\"2020-01-20T09:41:04.879Z\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"IpAddress\\": \\"106.**.1**.**\\",\\n \\"NodeType\\": \\"1\\",\\n \\"DeviceSecret\\": \\"dCYdTU3gw5Z77bsHjPk6lPHPVnBT****\\",\\n \\"GmtCreate\\": \\"2019-12-18 16:58:33\\",\\n \\"GmtActive\\": \\"2019-12-18 23:25:30\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n cn-shanghai\\n gateway_04\\n 2019-12-18 23:25:30\\n a1vL7cp****\\n 106.**.1**.**\\n 2019-12-18 16:58:33\\n 2019-12-18T08:58:33.000Z\\n 2020-01-20T09:41:04.879Z\\n 2019-12-18T15:25:30.176Z\\n online\\n 1\\n 2020-01-20 17:41:04\\n LinkIoTEdge_Gateway\\n WuyjPSDQE1L22z1****000100\\n\\n0377D5A9-BDE1-48C2-96C9-BDC048899186\\ntrue\\n","errorExample":""}]', - 'title' => '查询网关设备信息', - 'summary' => '根据挂载的子设备信息查询对应的网关设备信息。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享该阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"34755DC3-2809-4AE2-BAD8-7B81ED69D570\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 34755DC3-2809-4AE2-BAD8-7B81ED69D570\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '批量将设备从边缘实例中移除', + 'summary' => '批量将设备从边缘实例中移除。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchUnbindDeviceFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchUnbindProjectDevices' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], ], [ - 'name' => 'IotId', - 'in' => 'query', + 'name' => 'Devices', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'description' => '需要解除关联的设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '解除项目中关联设备所隶属的产品ProductKey列表。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '需要解除项目中关联设备的DeviceName列表。', 'type' => 'string', 'required' => true, 'example' => 'Ee2******'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + 'maxItems' => 10, ], ], ], @@ -6742,137 +4535,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Props' => [ - 'description' => '调用成功时,返回的设备标签信息列表,JSON String格式。', - 'type' => 'string', - 'example' => '{"coordinate":"104.07086:30.549169"}', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Props\\": \\"{\\\\\\"coordinate\\\\\\":\\\\\\"104.07086:30.549169\\\\\\"}\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nD8CEF5E7-1484-4164-A242-C06BA3A54E0F\\n{\\"coordinate\\":\\"104.07086:30.549169\\"}\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的标签列表', - 'summary' => '调用该接口查询指定设备的标签列表。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ], + 400 => [ + ['errorCode' => 'Studio.Device.BatchRemoveDevicesFromProjectFailed', 'errorMessage' => 'batch remove devices from project failed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tD87124B4-8567-4E86-9F39-35F9C3668A3B\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n","errorExample":""}]', + 'title' => 'BatchUnbindProjectDevices', + 'summary' => '调用该接口批量解除项目中关联的设备。', + 'description' => '## 限制说明'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + .'- 单次调用该接口最多可解除10个关联设备。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'SaveDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BatchUnbindProjectProducts' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123********'], ], [ - 'name' => 'Props', - 'in' => 'query', + 'name' => 'ProductKeys', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要设置的设备标签,支持设置多个标签。'."\n" - ."\n" - .'设备标签是JSON格式,每个标签的具体结构为:**Key:Value**。**Key**是标签名称,**Value**是对应的标签值。'."\n" - ."\n" - .'多个标签使用半角逗号隔开,例如**Props={"color":"red","shape":"round"}**。'."\n" - ."\n" - .' > '."\n" - .'- **Props**的总大小不超过5 KB。'."\n" - .'- `abc`为物联网平台系统保留的标签**Key**,即标签**Key**不能设置为abc。若设置`Key=abc`,使用标签检索时会直接被过滤。'."\n" - ."\n" - .'>', - 'type' => 'string', + 'description' => '需要解除项目中关联产品的ProductKey列表。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '{"color":"red"}', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'example' => 'a1BwAGV****', + 'maxItems' => 10, ], ], ], @@ -6881,129 +4612,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- true:调用成功。'."\n" + .'- false:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => '为指定设备设置标签', - 'summary' => '调用该接口为指定设备设置标签。', - 'description' => '## 使用说明'."\n" - ."\n" - .' - 单个设备的设备标签总数不超过100个。'."\n" - .' - 单次修改或新增的设备标签数不超过100个。'."\n" - ."\n\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ], + 400 => [ + ['errorCode' => 'Studio.Product.UnbindFailed', 'errorMessage' => 'unbind failed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tE0600442-A846-4D15-92B8-8B0B9FF7A801\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n\\r\\n","errorExample":""}]', + 'title' => '批量解绑项目产品', + 'summary' => '解绑指定项目下的指定产品。支持批量。', + 'description' => '## 限制说明'."\n" + .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + .'- 单次调用该接口最多可解除10个关联产品。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDeviceProp' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchUnbindProjectProducts', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BatchUpdateDeviceNickname' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'DeviceNicknameInfo', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '标签所属设备隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '标签所属设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - ], - [ - 'name' => 'PropKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的设备标签键值(Key)。'."\n" - ."\n" - .'> 物联网平台在目标设备的标签中检索您提供的Key值,并删除与之对应的标签。如果目标设备的标签中没有与您提供的Key值对应的记录,则不执行任何操作。', - 'type' => 'string', + 'description' => '要修改备注名称的设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '要修改备注名称的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '要修改备注名称的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], + 'Nickname' => ['description' => '新的设备备注名称。备注名称长度为4~32个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" + ."\n" + .'> 若不传入该参数,则删除该设备原有的备注名称。', 'type' => 'string', 'required' => false, 'example' => 'AliyunDataCenter'], + 'IotId' => ['description' => '要修改备注名称的设备ID。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'room', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '标签所属设备的ID'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'maxItems' => 50, ], ], ], @@ -7012,132 +4714,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', - 'title' => '删除设备下的指定标签', - 'summary' => '调用该接口删除设备下的指定标签。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => 'BatchUpdateDeviceNickname', + 'summary' => '调用该接口批量修改设备备注名称。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceByTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:BatchUpdateDeviceNickname', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindApplicationToEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'CurrentPage', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'Tb4r9k3GWHJFWv******'], ], [ - 'name' => 'PageSize', + 'name' => 'ApplicationId', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的设备记录数量,最大值是50。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标悬浮在目标应用名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => '361368ba5a094da9bf5625d092******'], ], [ - 'name' => 'Tag', + 'name' => 'ApplicationVersion', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '设备标签的值。', - 'type' => 'string', - 'required' => true, - 'example' => '101', - ], - 'TagKey' => [ - 'description' => '设备标签的Key。', - 'type' => 'string', - 'required' => true, - 'example' => 'room', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => '边缘应用的版本号。', 'type' => 'string', 'required' => true, 'example' => '3.7'], ], ], 'responses' => [ @@ -7145,196 +4788,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => '当前页面号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SimpleDeviceInfo' => [ - 'description' => '调用成功时,返回的设备信息列表(**SimpleDeviceInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => 'lamp', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light1', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '86B23D5F-BF86-4F29-82E2-686D7B4D9AAA'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ProductName\\": \\"lamp\\",\\n \\"DeviceName\\": \\"light1\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n 1102jichu02\\n a1SM5S1****\\n GookTiUcwqRbHosp9Ta10****3a00\\n TEST\\n \\n\\n10\\n1\\n2B5091E4-32D5-4884-A5B2-2E8E713D84AF\\ntrue\\n1\\n","errorExample":""}]', - 'title' => 'QueryDeviceByTags', - 'summary' => '调用该接口通过标签查询设备。', - 'description' => '## 使用说明'."\n" - .'单次调用,最多可输入10个标签。'."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"86B23D5F-BF86-4F29-82E2-686D7B4D9AAA\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 86B23D5F-BF86-4F29-82E2-686D7B4D9AAA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '绑定边缘应用到边缘实例', + 'summary' => '绑定边缘应用到边缘实例。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetThingTopo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindApplicationToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindDriverToEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大值不超过50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc959228****'], ], [ - 'name' => 'PageNo', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。'."\n" - ."\n" - .'查询数据最多不能超过10,000条,**PageNo**值不能超过数据能显示的页数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '驱动版本号。为空则默认为最新版本驱动。', 'type' => 'string', 'required' => false, 'example' => '2.0.0'], ], [ - 'name' => 'IotId', + 'name' => 'OrderId', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备ID。物联网平台为该网关设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '订单编号。'."\n" + ."\n" + .'> 当驱动为已购驱动时必填;驱动为官方驱动或自研驱动时不需要填写。', 'type' => 'string', 'required' => false, 'example' => '11123458765****'], ], ], 'responses' => [ @@ -7342,185 +4870,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。详情请参见以下参数。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'deviceInfo' => [ - 'description' => '子设备信息集合(**deviceInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '子设备所属的产品ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '子设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'IotId' => [ - 'description' => '子设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextToken\\": \\"TGlzdFJlc291***\\",\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"deviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1\\n 2\\n 1\\n TGlzdFJlc291***\\n \\n \\n APItest\\n a1T27vz****\\n vWxNur6BUApsqjv****000100\\n \\n \\n 1\\n\\n93F05C63-9FD1-4CC8-B0FF-6D6C1A6632D1\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的拓扑关系', - 'summary' => '调用该接口查询指定网关设备的子设备列表。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n\n" - ."\n\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n FEA6A369-2E16-4DB3-A0A6-6D14FD244170\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '将驱动分配到边缘实例中', + 'summary' => '将驱动分配到边缘实例中。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'NotifyAddThingTopo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindDriverToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindGatewayToEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceListStr', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要挂载在目标网关设备上的子设备数组,为JSON字符串形式的子设备标识信息,可使用**ProductKey**和**DeviceName**或**IotId**指代设备,例如**[{"productKey":"a1BwAGxxx","deviceName":"device1"},{"IotId":"Q7uOhxxx"}]**。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"productKey":"a1BwAGV****","deviceName":"device1"},{"IotId":"Q7uOhVRdZRRlDnTLv****00100"}]', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'GwIotId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'vWxNur6BUApsqjv****4000100', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。'."\n" + ."\n" + .'> 如果传入此参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1mAdeG****'], ], [ - 'name' => 'GwProductKey', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1T27vz****', - ], + 'schema' => ['description' => '网关设备名称。'."\n" + ."\n" + .'> 如果传入此参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], [ - 'name' => 'GwDeviceName', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'gateway', - ], + 'schema' => ['description' => '网关设备的ID,物联网平台为设备生成的唯一标识符,与**ProductKey**和**DeviceName**组合一一对应。'."\n" + ."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**;如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => '4z819VQHk6VSLmmBJfrf0010******'], ], ], 'responses' => [ @@ -7528,172 +4953,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'MessageId' => [ - 'description' => '云端向网关设备下发增加拓扑关系的消息ID。', - 'type' => 'string', - 'example' => '5443123', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"5443123\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n419A3FC1-B517-4958-9414-5546765FA51F\\ntrue\\n\\n 2345123\\n\\n","errorExample":""}]', - 'title' => '通知网关设备增加拓扑关系', - 'summary' => '调用该接口通知网关设备增加拓扑关系。', - 'description' => '## 使用说明'."\n" - .'返回的成功结果只表示添加拓扑关系的指令成功下发给网关,并不表示网关成功添加拓扑关系。'."\n" - .'开发网关设备端时,需订阅通知添加拓扑关系消息的Topic。具体Topic和消息格式,请参见[管理拓扑关系](~~89299~~)。'."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E3817065-2A17-4814-82FA-66FAB2CC01DF\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '将网关分配到边缘实例中', + 'summary' => '将网关分配到边缘实例中 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchAddThingTopo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindGatewayToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindLicenseDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => false, 'example' => 'iot-e3***'], ], [ - 'name' => 'GwProductKey', + 'name' => 'LicenseCode', 'in' => 'query', - 'schema' => [ - 'description' => '网关设备所属的产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1vL7cp****', - ], + 'schema' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', 'type' => 'string', 'required' => true, 'example' => '720P'], ], [ - 'name' => 'GwDeviceName', + 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '待授权设备所属产品的**ProductKey**。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a2YwD23***'], + ], + [ + 'name' => 'IotIdList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '网关设备的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'gateway', + 'description' => '待授权License的设备列表,需传入设备对应的**IotId**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', + 'type' => 'array', + 'items' => ['description' => '待授权License的设备,需传入设备对应的**IotId**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + 'required' => false, + 'maxItems' => 10000, ], ], [ - 'name' => 'TopoAddItem', - 'in' => 'query', + 'name' => 'DeviceNameList', + 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '添加的的设备拓扑关系列表。', + 'description' => '待授权License的设备列表,需传入设备对应的**DeviceName**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '要接入网关的子设备所属的产品ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '要接入网关的子设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'light', - ], - 'Sign' => [ - 'description' => '添加拓扑关系的签名。'."\n" - .'根据签名计算方式**SignMethod(deviceSecret,content)**,计算出的结果作为Sign的取值。'."\n" - ."\n" - .'其中,**content**是将所有提交给服务器的子设备参数(Sign、SignMethod除外),按照英文字母升序,依次排序拼接(无拼接符号)的结果。'."\n" - ."\n" - .'例如,如果传入的设备参数为**ClientId=868575026974305、DeviceName=868575026974305、ProductKey=a1PB5fp1234、SignMethod=hmacmd5,且deviceSecret=1234**,那么签名计算为`hmacmd5(1234, clientId868575026974305deviceName868575026974305productKeya1PB5fpX1234)`;签名计算结果为`C1C1606D61884C5F16C9EA6622E5****`。'."\n" - .'> 示例中的**ClientId**为设备的客户端ID,您可自定义。', - 'type' => 'string', - 'required' => true, - 'example' => 'C1C1606D61884C5F16C9EA6622E5****', - ], - 'Timestamp' => [ - 'description' => 'UTC时间戳。非必选。如果传入该参数,则需包含到签名计算中。', - 'type' => 'string', - 'required' => false, - 'example' => '1579335899000', - ], - 'SignMethod' => [ - 'description' => '签名方法。支持**hmacSha1**、**hmacSha256**、**hmacMd5**和**Sha256**(大小写不敏感)。', - 'type' => 'string', - 'required' => true, - 'example' => 'hmacMd5', - ], - 'ClientId' => [ - 'description' => '设备端ID,可使用设备的SN码或MAC地址。非必选参数。如果传入该参数,则需包含到签名计算中。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****device1', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 50, + 'items' => ['description' => '待授权License的设备,需传入设备对应的**DeviceName**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'test'], + 'required' => false, + 'maxItems' => 10000, ], ], ], @@ -7702,123 +5052,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见本文下方_错误码_。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的授权结果。', + 'type' => 'object', + 'properties' => [ + 'SuccessSum' => ['description' => '授权License成功的设备个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Progress' => ['description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ResultCsvFile' => ['description' => '授权License完成后,授权失败设备文件的URL。', 'type' => 'string', 'example' => 'http://***'], + 'CheckProgressId' => ['description' => '查询批量授权设备进度的唯一ID。', 'type' => 'string', 'example' => '123***'], + 'FailSum' => ['description' => '授权License失败的设备个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchAddThingTopo', - 'summary' => '调用该接口批量添加设备拓扑关系。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'Invalid product key.', 'description' => '无效的产品KEY。'], + ['errorCode' => 'iot.rtc.license.product.relation.nonexist', 'errorMessage' => 'License product relation non existent.', 'description' => '产品未授权。'], + ['errorCode' => 'iot.rtc.license.quota.lack', 'errorMessage' => 'License quota is not enough.', 'description' => 'License额度不够,请购买。'], + ['errorCode' => 'iot.vas.EmptyLicenseDeviceList', 'errorMessage' => 'Empty license device list.', 'description' => 'License设备列表为空。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'Invalid license code.', 'description' => '无效的License编码。'], + ['errorCode' => 'iot.rtc.license.device.authorization.executing', 'errorMessage' => 'Authorization for this license device is in progress.', 'description' => '此实例和License类型的设备授权在运行中,请等待。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"ResultCsvFile\\": \\"http://***\\",\\n \\"CheckProgressId\\": \\"123***\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\n\\n 123***\\n 10\\n http://***\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', + 'title' => '为指定产品下设备授权License', + 'summary' => '调用该接口为指定产品下设备授权License。', 'description' => '## 使用说明'."\n" + .'调用本接口前,请确认完成以下操作:'."\n" ."\n" - .'- 单次调用最多可为一个网关添加10个子设备。'."\n" - ."\n" - .'- 接口调用者必须是网关的所有者(Owner)。'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的QPS限流为5。'."\n" - ."\n" - .'- 如果传入的子设备已存在拓扑关系,则会将子设备原有的网关替换为当前网关。'."\n" - ."\n" - .'- 任意一个子设备与网关的拓扑关系建立失败时,系统回滚,传入的所有子设备与当前网关建立拓扑关系失败。'."\n" - ."\n" + .'1. 请购买License。具体内容,请参见[购买方式](~~427935~~)。'."\n" + .'2. 为目标设备所属产品授权License。具体操作,请参见[BindLicenseProduct](~~427956~~)或[产品授权](~~427937~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" + ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'RemoveThingTopo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'BindLicenseProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除拓扑关系的设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => false, 'example' => 'iot-23***'], ], [ - 'name' => 'DeviceName', + 'name' => 'LicenseCode', 'in' => 'query', - 'schema' => [ - 'description' => '要删除拓扑关系的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', 'type' => 'string', 'required' => true, 'example' => '480P'], ], [ - 'name' => 'IotId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要删除拓扑关系的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '待授权的产品的ProductKey。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV***'], ], ], 'responses' => [ @@ -7826,118 +5137,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '删除拓扑关系的结果。'."\n" - ."\n" - .'- **true**:删除成功。'."\n" - .'- **false**:删除失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见本文下方的**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '表示产品授权License是否成功。'."\n" + .'- **true**:产品授权License成功。'."\n" + .'- **false**:产品授权License失败。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Data\\": true,\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"450407b***\\",\\n \\"Code\\": \\"iot.system.SystemException\\"\\n}","errorExample":""},{"type":"xml","example":"\\ntrue\\n098BEEF4-58F4-4181-A891-5D37DB6C4C3B\\ntrue\\n","errorExample":""}]', - 'title' => '移除网关与子设备的拓扑关系', - 'summary' => '调用该接口移除网关与子设备的拓扑关系。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'invalid license code', 'description' => ''], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'invalid product key', 'description' => '无效的产品KEY'], + ['errorCode' => 'iot.rtc.license.product.relation.exist', 'errorMessage' => 'license product relation has exist', 'description' => '产品已经授权'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\ntrue\\ntrue\\n","errorExample":""}]', + 'title' => '为指定产品授权License', + 'summary' => '调用该接口为指定产品授权License。', 'description' => '## 使用说明'."\n" - .'- 如果传入的设备信息是网关设备,则移除该网关与其下所有子设备的拓扑关系。'."\n" - .'- 如果传入的设备信息是子设备,则移除该子设备与其关联网关的拓扑关系。'."\n" - .'- 如果网关设备的子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" - ."\n" + .'调用本接口前,请购买License。具体内容,请参见[购买方式](~~427935~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceStatistics' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BindLicenseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindRoleToEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品ProductKey。'."\n" - .'- 传入此参数,返回该产品下的设备统计数据。如果同时传入**GroupId**,返回指定分组下该产品的设备统计数据。'."\n" - .'- 不传入此参数和**GroupId**,则返回当前账号下所有设备统计数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'GroupId', + 'name' => 'RoleArn', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的分组ID。'."\n" - ."\n" - .'- 传入此参数,返回该分组下的设备统计数据。如果同时传入**ProductKey**,返回该分组下指定产品的设备统计数据。'."\n" - .'- 不传入此参数和**ProductKey**,返回当前账号下所有设备统计数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'W16X8Tvdosec****', - ], + 'schema' => ['description' => '授权角色的全局资源描述符(ARN)。在[RAM控制台](https://ram.console.aliyun.com/)创建角色后,单击角色名,可在**基本信息**页查看其ARN。', 'type' => 'string', 'required' => true, 'example' => 'acs:ram::176********:role/iotedgerole'], + ], + [ + 'name' => 'RoleName', + 'in' => 'query', + 'schema' => ['description' => '角色名称。', 'type' => 'string', 'required' => true, 'example' => 'IoTEdgeRole'], ], ], 'responses' => [ @@ -7945,98 +5226,67 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备统计信息。', - 'type' => 'object', - 'properties' => [ - 'deviceCount' => [ - 'description' => '设备总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'activeCount' => [ - 'description' => '已激活的设备数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'onlineCount' => [ - 'description' => '在线的设备数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '3DE428F8-22AF-4B37-8FEC-E64CFBE4A125'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"deviceCount\\": 100,\\n \\"activeCount\\": 10,\\n \\"onlineCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 2\\n 2\\n 0\\n\\n8AC026D2-6F16-4719-A396-969D63DCA138\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备统计数据', - 'summary' => '调用该接口查询设备统计数据,包括在线设备数、已激活设备数和已创建的设备总数。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3DE428F8-22AF-4B37-8FEC-E64CFBE4A125\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3DE428F8-22AF-4B37-8FEC-E64CFBE4A125\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '将角色绑定到边缘实例', + 'summary' => '将角色绑定到边缘实例。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryLoRaJoinPermissions' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindRoleToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'BindSceneRuleToEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'llL44UVXUqb9m5******'], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], ], 'responses' => [ @@ -8044,181 +5294,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ProductKey' => [ - 'description' => '使用该凭证的设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JoinPermissions' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'JoinPermission' => [ - 'description' => '调用成功时,返回的入网凭证数据(**JoinPermission**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Enabled' => [ - 'description' => '入网凭证的启停用状态。取值:'."\n" - ."\n" - .'- **true**:启用。'."\n" - .'- **false**:停用。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JoinPermissionType' => [ - 'description' => '入网凭证的类型。取值:'."\n" - ."\n" - .'- **LOCAL**:专用凭证。'."\n" - .'- **ROAMING**:漫游凭证。', - 'type' => 'string', - 'example' => 'LOCAL', - ], - 'JoinPermissionId' => [ - 'description' => '入网凭证ID,入网凭证的唯一标识。', - 'type' => 'string', - 'example' => '80***', - ], - 'JoinPermissionName' => [ - 'description' => '入网凭证名称。', - 'type' => 'string', - 'example' => 'ForTest', - ], - 'OwnerAliyunPk' => [ - 'description' => '入网凭证创建者的阿里云账号ID。', - 'type' => 'string', - 'example' => '1375364789****', - ], - 'ClassMode' => [ - 'description' => '入网凭证采用的通信模式。取值:'."\n" - ."\n" - .'- **A**:终端设备允许双向通信。'."\n" - .'- **B**:终端设备会在预设时间中开放接收窗口。'."\n" - .'- **C**:终端设备持续开放接收窗口,只在传输时关闭。', - 'type' => 'string', - 'example' => 'A', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JoinPermissions\\": {\\n \\"JoinPermission\\": [\\n {\\n \\"Enabled\\": true,\\n \\"JoinPermissionType\\": \\"LOCAL\\",\\n \\"JoinPermissionId\\": \\"80***\\",\\n \\"JoinPermissionName\\": \\"ForTest\\",\\n \\"OwnerAliyunPk\\": \\"1375364789****\\",\\n \\"ClassMode\\": \\"A\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1C1BD4E7-2FD3-4535-9D97-DE51803192AD\\ntrue\\n\\n \\n true\\n LOCAL\\n 50***\\n 198426864326****\\n A\\n 给开发者B使用\\n \\n\\n","errorExample":""}]', - 'title' => '查询LoRaWAN入网凭证列表', - 'summary' => '调用该接口查询LoRaWAN入网凭证列表。', - 'description' => '## 限制说明'."\n" - ."\n\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '绑定场景联动规则到边缘实例', + 'summary' => '绑定场景联动规则到边缘实例 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateLoRaNodesTask' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindSceneRuleToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所隶属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'DeviceInfo', + 'name' => 'JobId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'LoRaWAN设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DevEui' => [ - 'description' => 'LoRaWAN设备的DevEUI,其全球唯一标识。', - 'type' => 'string', - 'required' => false, - 'example' => 'd896e0efff00****', - ], - 'PinCode' => [ - 'description' => 'LoRaWAN设备的PIN Code,用于校验DevEUI的合法性。', - 'type' => 'string', - 'required' => false, - 'example' => '123***', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 1000, - ], + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'XUbmsMHmkqv0PiAG****010001'], ], ], 'responses' => [ @@ -8226,93 +5359,78 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'TaskId' => [ - 'description' => '调用成功时,返回的任务ID。'."\n" - ."\n" - .'> 请妥善保管该ID。查询设备创建的状态时需使用该ID。', - 'type' => 'string', - 'example' => '62146', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C25255EA-9F6E-4E04-85FE-AC1E9C136EBB'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"TaskId\\": \\"62146\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n38D5FDA5-19B9-445D-8713-213B743266DE\\n62146\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateLoRaNodesTask', - 'summary' => '调用该接口生成批量注册LoRaWAN设备的任务。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"C25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', + 'title' => '取消任务', + 'summary' => '调用该接口取消任务的执行。', 'description' => '## 使用说明'."\n" - .'单次调用最多可添加500个设备。'."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n\n" + ."\n" + .'- 取消任务过程中,任务处于**CANCELLING**状态。如果对该状态任务,重复调用CancelJob,系统直接返回失败。'."\n" + ."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' '."\n" + .' > RAM用户共享阿里云账号配额。 ', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetLoraNodesTask' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelOTAStrategyByJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TaskId', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '注册LoRaWAN设备任务的ID,即调用[CreateLoRaNodesTask](~~109299~~)创建任务后,返回的**TaskId**。', - 'type' => 'string', - 'required' => true, - 'example' => '623***', - ], + 'schema' => ['description' => '升级批次ID。'."\n" + ."\n" + .'您调用[CreateOTADynamicUpgradeJob](~~147887~~)创建批次返回的**JobId**。您也可以在物联网平台控制台固件的**固件详情**页查看。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'HvKuBpuk3rdk6E92CP****0200'], ], ], 'responses' => [ @@ -8320,176 +5438,107 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'TaskState' => [ - 'description' => '任务执行状态。'."\n" - ."\n" - .'- **RUNNING**:任务正在执行中。'."\n" - ."\n" - .'- **FINISH**:任务已执行完毕。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'SuccessCount' => [ - 'description' => '注册成功的数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'TotalCount' => [ - 'description' => '任务中待注册设备的总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '200', - ], - 'TaskId' => [ - 'description' => '调用成功时,返回的任务ID。', - 'type' => 'string', - 'example' => '625***', - ], - 'SuccessDevEuis' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SuccessDevEui' => [ - 'type' => 'array', - 'items' => [ - 'description' => '注册成功的设备的DevEUI列表。', - 'type' => 'string', - 'example' => '[ "d896e0ffff01****","d896e0ffff01****"]', - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"TaskState\\": \\"RUNNING\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"SuccessCount\\": 100,\\n \\"TotalCount\\": 200,\\n \\"TaskId\\": \\"625***\\",\\n \\"SuccessDevEuis\\": {\\n \\"SuccessDevEui\\": [\\n \\"[ \\\\\\"d896e0ffff01****\\\\\\",\\\\\\"d896e0ffff01****\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n2\\n1C0BBCD4-A271-4853-A5B0-3C246565E68C\\n2\\n\\n d896e0ffff01****\\n d896e0ffff01****\\n\\n156***\\ntrue\\nFINISH\\n","errorExample":""}]', - 'title' => '查询批量注册LoRaWAN设备任务状态', - 'summary' => '调用该接口查询批量注册LoRaWAN设备任务的状态。', - 'description' => '## 限制说明'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '取消动态升级策略', + 'summary' => '调用该接口取消动态升级策略。', + 'description' => '## 使用说明'."\n" + .'只支持取消动态升级批次所关联的动态升级策略。该接口对静态升级批次无效。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'该接口执行成功后,会将动态升级批次的状态(**JobStatus**)设置为已取消(CANCELED)。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceFileList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CancelOTAStrategyByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelOTATaskByDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的文件记录数量。最大取值200,默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" + ."\n" + .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'T0F5b5tpFnHQrgfk****030100'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '要取消升级的设备所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1V4kde****'], ], [ - 'name' => 'IotId', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '升级批次ID。传入此参数则只取消指定批次下的设备升级任务。'."\n" + .'批次ID是您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务后返回的**JobId**。您也可以在物联网平台控制台上固件的**固件详情**页查看。', 'type' => 'string', 'required' => false, 'example' => 'wahVIzGkCMuAUE2gDERM02****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'DeviceName', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '显示返回结果中的第几页。最小取值1,默认值 1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'description' => '要取消升级的设备名称。'."\n" + ."\n" + .'设备名称不能重复。'."\n" + ."\n" + .'最多可传入200个设备名称。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'device1', + 'maxItems' => 200, ], ], ], @@ -8498,182 +5547,123 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的文件个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '文件总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'FileSummary' => [ - 'description' => '调用成功时,返回的文件信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UtcCreatedOn' => [ - 'description' => '文件创建时间。', - 'type' => 'string', - 'example' => '2019-03-21T08:45:42.000Z', - ], - 'Name' => [ - 'description' => '文件名称。', - 'type' => 'string', - 'example' => 'testFile2.txt', - ], - 'Size' => [ - 'description' => '文件大小,单位:KB。', - 'type' => 'string', - 'example' => '1024000', - ], - 'FileId' => [ - 'description' => '文件ID,文件的唯一标识符。', - 'type' => 'string', - 'example' => 'xL0G67MBLBDtkR7GCfT******', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Data\\": {\\n \\"FileSummary\\": [\\n {\\n \\"UtcCreatedOn\\": \\"2019-03-21T08:45:42.000Z\\",\\n \\"Name\\": \\"testFile2.txt\\",\\n \\"Size\\": \\"1024000\\",\\n \\"FileId\\": \\"xL0G67MBLBDtkR7GCfT******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n testFile2.txt\\n xL0G67MBLBDtkR7GCfT******\\n 2019-03-21T08:45:42.000Z\\n 102400\\n \\n \\n testFile3.txt\\n 6UCo1SqbqnQEoh9aKqD******\\n 2019-03-21T08:45:42.000Z\\n 102400\\n \\n \\n testFile1.txt\\n IhXXww3Eeu6uzSOSCyu******\\n 2019-03-21T08:45:40.000Z\\n 102400\\n \\n\\n10\\n7C7BA526-826D-46AA-A45E-55D21E6D1583\\n1\\ntrue\\n3\\n","errorExample":""}]', - 'title' => '查询设备上传到物联网平台文件列表', - 'summary' => '查询指定设备上传到物联网平台的所有文件列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '取消待升级设备升级作业', + 'summary' => '取消指定固件下状态为待升级的设备升级作业。', 'description' => '## 使用说明'."\n" - .'调用该接口返回的文件信息中,不包括文件下载地址。如需获取文件下载地址,请调用[QueryDeviceFile](~~112002~~)查询。'."\n" + .'该接口只能取消待推送、已推送、升级中状态的设备升级。'."\n" + ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceFile' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelOTATaskByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelOTATaskByJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '升级批次ID。'."\n" + ."\n" + .'您调用[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建批次返回的**JobId**。您也可以在物联网平台控制台固件的**固件详情**页查看。', 'type' => 'string', 'required' => true, 'example' => '7glPHmaDYLAYMD1HHutT02****'], ], [ - 'name' => 'DeviceName', + 'name' => 'CancelScheduledTask', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '取消定时升级批次下的设备升级作业,即调用[CreateOTAStaticUpgradeJob](~~147496~~)时,传入了**ScheduleTime**参数创建的升级批次。取值:'."\n" + ."\n" + .'- **true**:取消。'."\n" + .'- **false**(默认):不取消。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'IotId', + 'name' => 'CancelQueuedTask', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '取消批次下所有状态为待推送(**QUEUED**)的设备升级作业。取值:'."\n" + ."\n" + .'- **true**:取消。'."\n" + .'- **false**(默认):不取消。'."\n" + ."\n" + .'>该参数值为**true**时,如果传入**CancelUnconfirmedTask**参数值,则仅取消待推送状态的设备升级作业;如果不传入**CancelUnconfirmedTask**参数值,则会取消待确认和待推送状态的设备升级任务。'."\n" + .'>'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'FileId', + 'name' => 'CancelInProgressTask', 'in' => 'query', - 'schema' => [ - 'description' => '文件标识符。您可以调用[QueryDeviceFileList](~~112001~~),从返回结果中查看文件ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'xL0G67MBLBDtkR7GCfT******', - ], + 'schema' => ['description' => '取消批次下所有状态为升级中(**IN_PROGRESS**)的设备升级作业。取值:'."\n" + ."\n" + .'- **true**:取消。'."\n" + .'- **false**(默认):不取消。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'CancelNotifiedTask', + 'in' => 'query', + 'schema' => ['description' => '取消批次下所有状态为已推送(**NOTIFIED**)的设备升级作业。取值:'."\n" + ."\n" + .'- **true**:取消。'."\n" + .'- **false**(默认):不取消。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'CancelUnconfirmedTask', + 'in' => 'query', + 'schema' => ['description' => "\n" + .'取消批次下所有状态为待确认(**CONFIRM**)的设备升级作业。取值:'."\n" + ."\n" + .'- **true**:取消。'."\n" + .'- **false**:不取消。'."\n" + ."\n" + .'默认值为空。'."\n" + ."\n" + .'>如果不传入此参数,当**CancelQueuedTask**值为**true**时,会同步取消待确认状态的设备升级任务;当**CancelQueuedTask**值为**false**时,不会取消待确认状态的设备升级作业。'."\n" + .'>', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -8681,154 +5671,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。'."\n", - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的文件信息。', - 'type' => 'object', - 'properties' => [ - 'UtcCreatedOn' => [ - 'description' => '文件创建时间。', - 'type' => 'string', - 'example' => '2019-03-21T08:45:42.000Z', - ], - 'Name' => [ - 'description' => '文件名称。', - 'type' => 'string', - 'example' => 'testFile3.txt', - ], - 'DownloadUrl' => [ - 'description' => '文件下载URL。', - 'type' => 'string', - 'example' => 'http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******', - ], - 'Size' => [ - 'description' => '文件大小,单位:KB。', - 'type' => 'string', - 'example' => '102400', - ], - 'FileId' => [ - 'description' => '文件标识符。', - 'type' => 'string', - 'example' => '6UCo1SqbqnQEoh9aKqDQ01****', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"UtcCreatedOn\\": \\"2019-03-21T08:45:42.000Z\\",\\n \\"Name\\": \\"testFile3.txt\\",\\n \\"DownloadUrl\\": \\"http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******\\",\\n \\"Size\\": \\"102400\\",\\n \\"FileId\\": \\"6UCo1SqbqnQEoh9aKqDQ01****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n93C5276D-5C8A-40D9-BFD6-4BD5B8C1A08F\\n\\n testFile3.txt\\n http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******\\n 6UCo1SqbqnQEoh9aKqDQ01****\\n 2019-03-21T08:45:42.000Z\\n 102400\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备文件信息', - 'summary' => '查询指定设备上传到物联网平台的指定文件信息。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '取消指定批次下的设备升级作业', + 'summary' => '调用该接口取消指定批次下的设备升级作业。', + 'description' => '## 使用说明'."\n" + .'调用本接口时,除必传参数**JobId**,还需对照非必选参数,传入待取消升级作业对应的类型或状态,否则调用接口会失败。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDeviceFile' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelOTATaskByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CancelReleaseProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要删除文件所属的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除文件所属的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除文件所属的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'FileId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的文件ID。可调用[QueryDeviceFileList](~~112001~~),从返回结果中查看对应文件ID。', - 'type' => 'string', - 'required' => true, - 'example' => '6UCo1SqbqnQEoh9aK4561****', - ], + 'schema' => ['description' => '待取消发布产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], ], 'responses' => [ @@ -8836,97 +5744,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', - 'title' => '删除指定设备上传到物联网平台的指定文件', - 'summary' => '调用该接口删除指定设备上传到物联网平台的指定文件。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5573D217-8E3E-47AD-9331-2083B88E64B2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '取消指定产品的发布', + 'summary' => '调用该接口取消指定产品的发布。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceCert' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ + 'changeSet' => [], + 'ramActions' => [ [ - 'AK' => [], + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CancelReleaseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', + ], + 'CheckBindLicenseDeviceProgress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2ws****'], + ], + [ + 'name' => 'LicenseCode', + 'in' => 'query', + 'schema' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', 'type' => 'string', 'required' => true, 'example' => '720P'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'uhf5****'], ], [ - 'name' => 'DeviceName', + 'name' => 'CheckProgressId', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'light', - ], + 'schema' => ['description' => '查询批量授权设备进度的唯一ID。', 'type' => 'string', 'required' => true, 'example' => '23****'], ], ], 'responses' => [ @@ -8934,122 +5828,115 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。'."\n", - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceCertInfo' => [ - 'description' => '返回的证书信息列表。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见本文下方**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的查询结果。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '证书生成状态。'."\n" - ."\n" - .'- **0**:生成中。'."\n" - ."\n" - .'- **1**:生成失败。'."\n" - ."\n" - .'- **2**:生成成功。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Certificate' => [ - 'description' => 'X.509证书。', - 'type' => 'string', - 'example' => 'tXHf4ezGEHcwdyMwoCDHGBmk9avi****', - ], - 'PrivateKey' => [ - 'description' => 'X.509证书密钥。', - 'type' => 'string', - 'example' => 'CqXL5h5ysRTA4NxjABjj0010fa****', - ], - 'CertSN' => [ - 'description' => 'X.509证书ID。', - 'type' => 'string', - 'example' => '636217374433****', - ], + 'SuccessSum' => ['description' => '授权License成功的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '9'], + 'Progress' => ['description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '80'], + 'ResultCsvFile' => ['description' => '授权完成后的结果文件的URL。即文件在对象存储(OSS)上的存储地址。', 'type' => 'string', 'example' => 'http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***'], + 'FailSum' => ['description' => '授权License失败的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"DeviceCertInfo\\": {\\n \\"Status\\": 2,\\n \\"Certificate\\": \\"tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\",\\n \\"PrivateKey\\": \\"CqXL5h5ysRTA4NxjABjj0010fa****\\",\\n \\"CertSN\\": \\"636217374433****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 2\\n tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\n CqXL5h5ysRTA4NxjABjj0010fa****\\n 636217374433****\\n\\n","errorExample":""}]', - 'title' => '查询设备的X.509证书', - 'summary' => '调用该接口查询设备的X.509证书。', - 'description' => '## 限制说明'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'Invalid product key.', 'description' => '无效的产品KEY。'], + ['errorCode' => 'iot.rtc.license.product.relation.nonexist', 'errorMessage' => 'License product relation non existent.', 'description' => '产品未授权。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'Invalid license code.', 'description' => '无效的License编码。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 9,\\n \\"Progress\\": 80,\\n \\"ResultCsvFile\\": \\"http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***\\",\\n \\"FailSum\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\n\\n 80\\n http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***\\n 1\\n 9\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'CheckBindLicenseDeviceProgress', + 'summary' => '调用该接口根据批量授权设备接口返回的唯一ID(CheckProgressId)查询授权的进度。', + 'description' => '## 使用说明'."\n" + .'已调用[BindLicenseDevice](~~427961~~)接口为设备授权License,获取返回的查询授权进度的**CheckProgressId**。'."\n" ."\n" - .'- 仅支持地域为华东2(上海),且认证方式为X.509证书的设备。'."\n" - ."\n\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'## QPS限制'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryCertUrlByApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CheckBindLicenseDeviceProgress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ClearDeviceDesiredProperty' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'ApplyId', + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要清空期望属性值的设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要清空期望属性值的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', 'in' => 'query', + 'schema' => ['description' => '要清空期望属性值的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'Identifies', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的申请批次ID。申请批次ID可在[BatchRegisterDeviceWithApplyId](~~69514~~)和[BatchRegisterDevice](~~69473~~)接口返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1234567', + 'description' => '要清空期望属性值的属性标识符列表。属性标识符个数不能超过10个。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => false, + 'example' => 'temperature', + 'maxItems' => 10, ], ], ], @@ -9058,146 +5945,173 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CertUrl' => [ - 'description' => '该批次设备的X.509证书下载链接。', - 'type' => 'string', - 'example' => 'https://****', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'Versions' => ['description' => '本次清空期望属性值后,对应属性的期望属性值的最新版本号。', 'type' => 'string', 'example' => '{\\"temperature\\":0}'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertUrl\\": \\"https://****\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\nhttps://****\\n","errorExample":""}]', - 'title' => '获取批量注册设备X.509证书下载链接', - 'summary' => '获取批量注册设备的X.509证书下载链接。', - 'description' => '## 限制说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The DeviceName format is invalid.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'iot.device.NotSupportExemptionValidateType', 'errorMessage' => 'The feature does not support the specified verification type.', 'description' => '该功能不支持物模型免校验类型。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.prod.QueryProductPropertyFailed', 'errorMessage' => 'An error occurred while querying the product property.', 'description' => '查询产品属性失败。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'Iot.digitaltwin.DTInstanceInvalidThingType', 'errorMessage' => 'The digital twin operation is not supported.', 'description' => '孪生数据类型不支持使用此接口访问。'], + ['errorCode' => 'iot.check.NullParameter', 'errorMessage' => 'Specify parameter is null.', 'description' => '参数{}不能为空。'], + ['errorCode' => 'iot.device.CanNotSetReadOnlyProperty', 'errorMessage' => 'Cannot set read only property.', 'description' => '无法设置只读属性。'], + ['errorCode' => 'iot.device.DeviceIsDisable', 'errorMessage' => 'The specified device has been disabled.', 'description' => '真实设备被禁用。'], + ['errorCode' => 'iot.device.InvalidIoTId', 'errorMessage' => 'The specified device ID is invalid.', 'description' => '设备ID错误。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The DeviceName parameter cannot be empty.', 'description' => '设备名称不能为空。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey parameter cannot be empty.', 'description' => '入参产品ProductKey不能为空。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is invalid.', 'description' => '入参产品ProductKey格式错误。'], + ['errorCode' => 'iot.common.InvalidTenant', 'errorMessage' => 'The Invalid tenant.', 'description' => '不合法的租户或者创建租户失败。'], + ['errorCode' => 'iot.prod.QueryPropertyNotFound', 'errorMessage' => 'Query property not found.', 'description' => '查询属性不存在。'], + ['errorCode' => 'iot.device.ClearPropertyDesiredFailed', 'errorMessage' => 'Failed to clear desired value of property.', 'description' => '清空属性期望值失败。'], + ['errorCode' => 'iot.prod.QueryProductAbilitiesNotFound', 'errorMessage' => 'query product abilities not found.', 'description' => ''], + ['errorCode' => 'iot.Device.NotExistedDevice', 'errorMessage' => 'This device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.prod.NullAbilityIdentifier', 'errorMessage' => 'You must specify a feature identifier.', 'description' => '功能标识符不能为空。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Versions\\": \\"{\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\":0}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n {\\"temperature\\":0}\\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'ClearDeviceDesiredProperty', + 'summary' => '调用该接口清空设备已设置的期望属性值。', + 'description' => '## 使用说明'."\n" + .'- 调用本接口时,必须传入要清空的属性标识符(**Identifies**)。如果不传入**Identifies**,调用会失败。'."\n" + .'- 单次调用本接口,**Identifies**最多可传入10个属性标识符。'."\n" + .'- 调用本接口清空期望属性值成功后,调用[QueryDeviceDesiredProperty](~~107566~~)接口查询期望属性值时,会返回对应参数**Identifier**(属性标识符),不会返回对应参数**Value**了。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceByStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ClearDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ClearEdgeInstanceDriverConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'Status', + 'name' => 'DriverId', 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '021d154d2a2f4dd7a489773d9e04****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备状态。 可选值:'."\n" - ."\n" - .'- **0**:未激活。'."\n" - .'- **1**:在线。'."\n" - .'- **3**:离线。'."\n" - .'- **8**:已禁用。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '清空边缘实例驱动配置', + 'summary' => '清空边缘实例驱动配置。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ClearEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'CloseDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'TunnelId', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,最大值是50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '要关闭的安全隧道的ID。', 'type' => 'string', 'required' => true, 'example' => 'd4098041-a560-***'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-***-v6***'], ], ], 'responses' => [ @@ -9205,186 +6119,145 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '查询到的设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SimpleDeviceInfo' => [ - 'description' => '调用成功时,返回的设备信息列表(**SimpleDeviceInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '设备状态。 取值:'."\n" - ."\n" - .'- **UNACTIVE**:未激活。'."\n" - ."\n" - .'- **ONLINE**:在线。'."\n" - ."\n" - .'- **OFFLINE**:离线。'."\n" - ."\n" - .'- **DISABLE**:已禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'UtcModified' => [ - 'description' => '设备信息最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2021-02-18T02:46:32.000Z', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => 'sLefbFmN9SYfnWLJTePG893XNuRV****', - ], - 'UtcCreate' => [ - 'description' => '设备创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2021-02-18T02:46:32.000Z', - ], - 'GmtCreate' => [ - 'description' => '设备创建时的时间,GMT格式。', - 'type' => 'string', - 'example' => '2021-02-18 10:46:32', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => 'SensorInShanghai', - ], - 'GmtModified' => [ - 'description' => '设备信息最后一次修改时的时间,GMT格式。', - 'type' => 'string', - 'example' => '2021-02-18 10:46:32', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'Av8NGHGtwPrH9BYGLMBi00****', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcModified\\": \\"2021-02-18T02:46:32.000Z\\",\\n \\"DeviceSecret\\": \\"sLefbFmN9SYfnWLJTePG893XNuRV****\\",\\n \\"UtcCreate\\": \\"2021-02-18T02:46:32.000Z\\",\\n \\"GmtCreate\\": \\"2021-02-18 10:46:32\\",\\n \\"Nickname\\": \\"SensorInShanghai\\",\\n \\"GmtModified\\": \\"2021-02-18 10:46:32\\",\\n \\"IotId\\": \\"Av8NGHGtwPrH9BYGLMBi00****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n CD9E5F99-A095-4A05-9256-D924EA3075E8\\n true\\n 1\\n 10\\n 1\\n 2\\n \\n \\n Av8NGHGtwPrH9BYGLMBi00****\\n Av8NGHG***\\n a1dafDE****\\n d7GYhf5hfcPHDe1bXSd3n9MjO1G3****\\n 2021-02-18T02:46:32.000Z\\n 2021-02-18 10:46:32\\n 2021-02-18T02:46:32.000Z\\n 2021-02-18 10:46:32\\n UNACTIVE\\n SensorInShanghai\\n \\n \\n zNIcSmWQ9BPJlmkjn3H100****\\n zNIcSmWQ***\\n a1dafDE****\\n C27XXmC18yLIEDXvUj6FSlvgO7ag****\\n 2021-02-09T09:44:55.000Z\\n 2021-02-09 17:44:55\\n 2021-02-09T09:44:55.000Z\\n 2021-02-09 17:44:55\\n UNACTIVE\\n DriverInShanghai\\n \\n \\n","errorExample":""}]', - 'title' => '根据设备状态查询设备列表', - 'summary' => '调用该接口根据设备状态查询设备列表。', - 'description' => '## 使用说明'."\n" - .'设备状态变更后,新的状态数据会在变更后10秒内生效。变更数据生效后,才能根据新状态查询到该设备;变更数据生效前,根据原状态仍能查询到该设备。'."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.securetunnel.TunnelNotExist', 'errorMessage' => 'The device tunnel does not exist.', 'description' => '设备隧道不存在'], + ['errorCode' => 'iot.securetunnel.InstanceIdMismatch', 'errorMessage' => 'The instanceId does not match the parameter.', 'description' => '实例id跟其他参数不匹配。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => '关闭状态为已打开的安全隧道', + 'summary' => '安全隧道在创建并使用完毕后,可以关闭状态为已打开的安全隧道。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceBySQL' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CloseDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CloseEdgeInstanceDeployment' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'PgEfYupSn6Pvhfkx****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '3C969586-3DD1-41A7-9B8E-E8B134CA6600'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3C969586-3DD1-41A7-9B8E-E8B134CA6600\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3C969586-3DD1-41A7-9B8E-E8B134CA6600\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '关闭边缘实例部署任务单', + 'summary' => '关闭边缘实例部署任务单。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'SQL', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CloseEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'ConfirmOTATask' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], + ], + [ + 'name' => 'TaskId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '查询设备的类SQL语句。具体要求和示例见下文请求参数补充说明。', - 'type' => 'string', + 'description' => '待确认的设备升级作业ID。最多可传入10个TaskId。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'SELECT * FROM device where product_key = "a1*********" limit 100, 20', + 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', + 'maxItems' => 10, ], ], ], @@ -9393,521 +6266,241 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'TotalCount' => [ - 'description' => '当SELECT子句为`SELECT count(*) FROM device`时,返回的count计数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '设备状态。返回值:'."\n" - ."\n" - .'- **ONLINE**:在线。'."\n" - .'- **OFFLINE**:离线。'."\n" - .'- **UNACTIVE**:未激活。'."\n" - .'- **DISABLE**:已禁用。'."\n", - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'ProductKey' => [ - 'description' => '设备所属产品**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV**** ', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'GmtCreate' => [ - 'description' => '设备创建时间,GMT格式。', - 'type' => 'string', - 'example' => '2020-04-04 16:38:17.000', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => '智能灯设备', - ], - 'ActiveTime' => [ - 'description' => '设备激活时间,GMT格式。', - 'type' => 'string', - 'example' => '2020-04-04 16:38:18.607', - ], - 'GmtModified' => [ - 'description' => '设备信息最后一次更新时间,GMT格式。', - 'type' => 'string', - 'example' => '2020-04-04 16:38:19.000', - ], - 'IotId' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100 ', - ], - 'Groups' => [ - 'description' => '设备分组信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => 'a1d21d2fas', - ], - ], - ], - ], - 'Tags' => [ - 'description' => '设备标签信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagName' => [ - 'description' => '标签名。', - 'type' => 'string', - 'example' => 'Color', - ], - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'Red', - ], - ], - ], - ], - 'OTAModules' => [ - 'description' => '设备的模块固件信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ModuleName' => [ - 'description' => 'OTA模块名称。'."\n", - 'type' => 'string', - 'example' => 'SomeSampleModule', - ], - 'FirmwareVersion' => [ - 'description' => 'OTA模块版本号。', - 'type' => 'string', - 'example' => 'a1-dads2-dad2', - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"TotalCount\\": 100,\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\\\t\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"GmtCreate\\": \\"2020-04-04 16:38:17.000\\",\\n \\"Nickname\\": \\"智能灯设备\\",\\n \\"ActiveTime\\": \\"2020-04-04 16:38:18.607\\",\\n \\"GmtModified\\": \\"2020-04-04 16:38:19.000\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\\\t\\",\\n \\"Groups\\": [\\n {\\n \\"GroupId\\": \\"a1d21d2fas\\"\\n }\\n ],\\n \\"Tags\\": [\\n {\\n \\"TagName\\": \\"Color\\",\\n \\"TagValue\\": \\"Red\\"\\n }\\n ],\\n \\"OTAModules\\": [\\n {\\n \\"ModuleName\\": \\"SomeSampleModule\\",\\n \\"FirmwareVersion\\": \\"a1-dads2-dad2\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n501CFABA-2C48-468D-B88C-3AA8E3B3A8F3\\n\\n OFFLINE\\n ii1*******\\n 2020-04-04 16:38:17.000\\n 2020-04-04 16:38:18.607\\n 2020-04-04 16:38:19.000\\n a1*********\\n testDevcieae7f3a\\n\\n\\n UNACTIVE\\n 5wt*******\\n 2020-04-04 16:37:32.000\\n \\n Ix4*******\\n \\n \\n Xrn*******\\n \\n \\n J9l*******\\n \\n \\n SomeSampleModule\\n a1-dads2-dad2\\n \\n \\n SampleModule\\n a1-dads2-dad1\\n \\n 2020-04-04 16:37:32.000\\n a1*********\\n testDevcie676a22\\n\\ntrue\\n","errorExample":""}]', - 'title' => '通过类SQL语句搜索设备', - 'summary' => '通过类SQL语句快速搜索满足指定条件的设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\ntrue\\n","errorExample":""}]', + 'title' => '批量确认设备升级作业', + 'summary' => '批量确认,处于待确认状态的设备升级作业。', 'description' => '## 使用说明'."\n" + .'若批次升级任务设置了定时升级,仅可在升级时间范围内,调用本接口来确认设备升级作业。'."\n" ."\n" - .'- 仅支持搜索华东2(上海)、华北2(北京)、华南1(深圳)、日本(东京)地域企业版实例中的设备。'."\n" - .'- 调用该接口,单次最多查询到10,000个设备。使用说明,请参见下文SQL语句的`LIMIT`子句说明。'."\n" - ."\n\n" .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '使用QueryDeviceBySQL进行设备高级搜索时,类SQL语句由SELECT子句、WHERE子句、ORDER BY子句(可选)、LIMIT子句(可选)组成。长度限制400个字符。'."\n" - .'示例:'."\n" - .'`SELECT * FROM device WHERE product_key = "a1*********" order by active_time limit 0,10`'."\n" - .'|SQL子句|说明 |'."\n" - .'|------------- |------------ |'."\n" - .'|SELECT子句|`SELECT [field]/[count(*)] FROM device`
其中field为需要获取的字段,请参见下面的检索字段说明。也可填\\*,获取所有字段。
如果需要获取count计数,则填count(*)。|'."\n" - .'|WHERE子句|`WHERE [condition1] AND [condition2]`
最多使用5个condition,且不支持嵌套,请参见下面的检索字段说明、运算符说明。
连接词支持AND、OR,最多使用5个连接词。|'."\n" - .'|ORDER BY子句(可选)|ORDER BY子句用于实现自定义排序,可自定义排序的字段包括gmt\\_create、gmt\\_modified、active\\_time。
该子句可不填,不填时随机排序。|'."\n" - .'|LIMIT子句(可选)|LIMIT子句用于控制查询的偏移量,有两种用法,参见下表“LIMIT子句使用方法”。
如果不填LIMIT子句,则默认为`limit 20`。|'."\n" - ."\n" - .'LIMIT子句使用方法:'."\n" - .'|方法|说明 |'."\n" - .'|------------- |------------ |'."\n" - .'|limit k|限制k<=50,即单页最大为50。示例:
`SELECT * FROM device WHERE product_key = "a1*****" limit 10`|'."\n" - .'|limit n,k|限制n\\+k<=10000且k<=50,即最大偏移量为10000且单页最大为50。示例:
`SELECT * FROM device WHERE product_key = "a1*****" limit 40,10`|'."\n" - ."\n\n" - ."\n" - .'**检索字段说明**'."\n" - ."\n" - .'|字段名|类型 |说明|'."\n" - .'|------------- |------------ |------------ |'."\n" - .'|product_key|text|设备所属产品ProductKey。|'."\n" - .'|iot_id|text|设备标识符。默认返回iot_id。|'."\n" - .'|name|text|设备名称。|'."\n" - .'|active_time|date|设备激活时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" - .'|nickname|text|设备备注名称。|'."\n" - .'|gmt_create|date|设备创建时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" - .'|gmt_modified|date|设备信息最后一次更新时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" - .'|status|text|设备状态,取值:
ONLINE:在线。
OFFLINE:离线。
UNACTIVE:未激活。
DISABLE:已禁用。|'."\n" - .'|group.group_id|text|设备分组ID。|'."\n" - .'|tag.tag_name|text|设备标签名。|'."\n" - .'|tag.tag_value|text|设备标签值。|'."\n" - .'|ota\\_module.name|text|OTA模块名称。
与ota\\_module.version配合使用,用于指定设备当前OTA版本号对应的OTA模块。
ota\\_module.version可不传入,不传入时,将不能根据模块名称检索设备。|'."\n" - .'|ota\\_module.version|text|OTA固件版本。|'."\n" - ."\n" - .'**运算符说明**'."\n" - ."\n" - .'|运算符|支持的字段数值类型|'."\n" - .'| ------------- |------------ |'."\n" - .'|=|number、date、text|'."\n" - .'|!=|number、date、text|'."\n" - .'|> |number、date|'."\n" - .'|<|number、date|'."\n" - .'|LIKE|text|'."\n" - ."\n" - .'其中:'."\n" - .'- =和!=:使用时,支持检索字段值取值为null。'."\n" - .'- LIKE:使用时,支持前缀匹配,不支持后缀匹配或通配符匹配。前缀不得少于4个字符,且不能包含任何特殊字符,例如反斜线(\\)、正斜线(/)、and(&)、加号(+)、短划线(-)、感叹号(!)、半角圆括号(())、半角冒号(:)、波浪线(~)、大括号({})、星号(*)、半角问号(?)等。前缀填写完成后,必须固定以`%` 结尾。'."\n" - ."\n" - .' 示例:`SELECT * FROM device where product_key = "a1*********" and name LIKE "test%" limit 10` '."\n" - ."\n\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ImportDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CopyThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], ], [ - 'name' => 'DeviceName', + 'name' => 'SourceProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备的名称。'."\n" - ."\n" - .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" - ."\n" - .'设备名称在产品维度下不可重复。', - 'type' => 'string', - 'required' => true, - 'example' => 'light', - ], + 'schema' => ['description' => '要复制的物模型所属产品的ProductKey。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Nickname', + 'name' => 'TargetProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备的备注名称。'."\n" - ."\n" - .'备注名称支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" - ."\n" - .'> 如果不传入该参数,系统不会为设备生成备注名称。', - 'type' => 'string', - 'required' => false, - 'example' => '园区灯', - ], + 'schema' => ['description' => '目标产品的**ProductKey**。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwwG0****'], ], [ - 'name' => 'Sn', + 'name' => 'SourceModelVersion', 'in' => 'query', + 'schema' => ['description' => '要复制的物模型版本号。'."\n" + .'可以调用[ListThingModelVersion](~~150318~~),查看源物模型的版本号。', 'type' => 'string', 'required' => false, 'example' => 'V1.0.0'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备的序列号。'."\n" - ."\n" - .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" - ."\n" - .'> 如果不传入该参数,系统不会为设备生成序列号。', - 'type' => 'string', - 'required' => false, - 'example' => 'QC4******001', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], - [ - 'name' => 'DeviceSecret', - 'in' => 'query', - 'schema' => [ - 'description' => '设备的密钥。'."\n" - ."\n" - .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'b4d43f7******10ba5e5', + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', + 'title' => '复制指定产品的物模型到目标产品', + 'summary' => '调用该接口复制指定产品的物模型到目标产品。', + 'description' => '## 使用说明'."\n" + .'- 如果目标产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口复制物模型。'."\n" + .'- 目标产品和物模型源产品的品类(**CategoryKey**)必须相同。您可调用[QueryProduct](~~69272~~)接口,从返回结果中查看产品的**CategoryKey**。'."\n" + .'- 要复制的物模型版本号必须传入,即必须传入请求参数**SourceModelVersion**的值,否则调用接口会失败。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CopyThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + ], + 'CopyThingModelAsync' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'TargetProductKey', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'SourceModelVersion', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'SourceProductKey', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回导入的设备信息。', - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'Sn' => [ - 'description' => '设备序列号。'."\n" - ."\n" - .'> 若您没有为设备传入序列号,则该参数返回为空。', - 'type' => 'string', - 'example' => 'QC4******001', - ], - 'DeviceName' => [ - 'description' => '设备名称。'."\n" - ."\n" - .'>'."\n" - .'请妥善保管,勿泄露。'."\n" - .'>', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。'."\n" - .'>'."\n" - .'请妥善保管,勿泄露。'."\n" - .'>', - 'type' => 'string', - 'example' => 'b4d43f7******10ba5e5', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。'."\n" - ."\n" - .'> 若您没有为该设备传入备注名称,则该参数返回为空。', - 'type' => 'string', - 'example' => '园区灯', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的设备ID,作为该设备的唯一标识符。'."\n" - ."\n" - .'>'."\n" - .'请妥善保管,勿泄露。'."\n" - .'>', - 'type' => 'string', - 'example' => '1O4YPNtRqB2anumz2Canp4GB7*****', - ], - ], - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'iot.device.CreateDeviceFailed', - 'errorMessage' => 'An error occurred while creating the device.', - ], - [ - 'errorCode' => 'iot.device.AlreadyExistedDeviceName', - 'errorMessage' => 'The DeviceName already exists.', + 400 => [ + ['errorCode' => 'Request.param.error', 'errorMessage' => 'Request.param.error. %s.', 'description' => '请求参数错误。%s。'], + ['errorCode' => 'Product.Key.Invalid', 'errorMessage' => 'Product key is invalid.', 'description' => '产品key无效。'], + ['errorCode' => 'Product.not.found', 'errorMessage' => 'Product.not.found.', 'description' => '产品找不到。'], + ['errorCode' => 'Distribute.thing.module.no.edit', 'errorMessage' => 'Distribute.thing.module.no.edit.', 'description' => '分发产品的东西模型不允许编辑。'], + ['errorCode' => 'Thing.Model.Get.Lock.Failed', 'errorMessage' => 'The thing model get lock failed. Please try again later.', 'description' => '物模型锁获取失败,请稍后重试。'], + ['errorCode' => 'Product.authright.illegal', 'errorMessage' => 'Product authRight illegal.', 'description' => '产品权限非法。'], + ['errorCode' => 'Thing.model.not.found', 'errorMessage' => 'The thing model is not existed.', 'description' => '物模型不存在。'], + ['errorCode' => 'Server.error', 'errorMessage' => 'Server error.', 'description' => '服务器错误。'], + ['errorCode' => 'Thing.Model.Status.Not.Final', 'errorMessage' => 'The thing model may be importing or copying or publishing. Please wait for the final status.', 'description' => '物模型可能在导入/拷贝/发布中,请稍后再试。'], + ['errorCode' => 'Product.has.published', 'errorMessage' => 'Product has published.', 'description' => '产品已发布。'], + ['errorCode' => 'Category.not.same', 'errorMessage' => 'Category must be the same.', 'description' => '品类必须一致。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CopyThingModelAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"Sn\\": \\"QC4******001\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"b4d43f7******10ba5e5\\",\\n \\"Nickname\\": \\"园区灯\\",\\n \\"IotId\\": \\"1O4YPNtRqB2anumz2Canp4GB7*****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1O4YPNtRqB2anumz2Canp4GB7*****\\n b4d43f7******10ba5e5\\n QC4******001\\n a1BwAGV****\\n 园区灯\\n light\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'MQTT云网关产品下单个导入设备', - 'summary' => '调用该接口在MQTT云网关产品下单个导入设备。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用该接口前,请先添加MQTT云网关并成功创建云网关产品,获取产品的**Productkey**。具体操作,请参见[创建云网关产品(MQTT)](~~433804~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'BatchImportDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CountSpeechBroadcastHour' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-1n8t****', - ], + 'name' => 'ShareTaskCode', + 'in' => 'formData', + 'schema' => ['description' => '语料分享任务的分享码。'."\n" + ."\n" + .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', 'type' => 'string', 'required' => true, 'example' => 'ebed9280_ba25_48df_80c2_****'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'DeviceList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待批量导入的设备列表。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备。超过该限制的数据会被丢弃。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息。', - 'type' => 'object', - 'properties' => [ - 'Sn' => [ - 'description' => '设备的序列号。'."\n" - ."\n" - .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备序列号。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'QC4******001', - ], - 'DeviceName' => [ - 'description' => '设备的名称。'."\n" - ."\n" - .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" - ."\n" - .'设备名称在产品维度下不可重复。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], - 'DeviceSecret' => [ - 'description' => '设备的密钥。'."\n" - ."\n" - .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备密钥。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => true, - 'example' => 'b4d43f7******10ba5e5', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10000, - ], + 'name' => 'QueryDateTimeHour', + 'in' => 'query', + 'schema' => ['description' => '要查询的时间。2020090919表示2020年09月09日19时。', 'type' => 'string', 'required' => true, 'example' => '2020090919'], ], ], 'responses' => [ @@ -9915,245 +6508,159 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'properties' => [ - 'ApplyId' => [ - 'description' => '调用成功时,系统返回的申请批次ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1295006', - ], - 'InvalidDetailList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDetailList' => [ - 'description' => '导入设备失败时,不合法设备列表的详细信息。', - 'type' => 'array', - 'items' => [ - 'description' => '导入设备失败时,不合法设备的详细信息。', - 'type' => 'object', - 'properties' => [ - 'ErrorMsg' => [ - 'description' => '导入设备失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'The device name is illegal.', - ], - 'Sn' => [ - 'description' => '设备SN码。', - 'type' => 'string', - 'example' => 'QC4001#', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light%', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => '^67$', - ], - ], - ], - ], - ], - ], - 'RepeatedDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'repeatedDeviceName' => [ - 'description' => '调用失败时,返回的重复设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的重复设备名称。', - 'type' => 'string', - 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }', - ], - ], - ], - ], - 'InvalidSnList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidSn' => [ - 'description' => '调用失败时,返回的不合法设备SN码的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的不合法设备SN码。', - 'type' => 'string', - 'example' => '{ "InvalidSnList": [ "" ] }', - ], - ], - ], - ], - 'InvalidDeviceSecretList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidDeviceSecret' => [ - 'description' => '调用失败时,返回的不合法设备密钥的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的不合法设备密钥。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceSecretList": [ "^67$", "1" ] }', - ], - ], - ], - ], - 'InvalidDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidDeviceName' => [ - 'description' => '调用失败时,返回的不合法设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '调用失败时,返回的不合法设备名称。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'String iot.system.SystemException '], + 'Data' => ['description' => '共享播报的小时数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', - 'errorMessage' => 'The devices you query exceed the maximum number.', - ], - [ - 'errorCode' => 'iot.device.ApplyManyDevicesFailed', - 'errorMessage' => 'An error occurred while creating multiple devices.', - ], - [ - 'errorCode' => 'iot.device.DeviceNumerExceedTenant', - 'errorMessage' => 'The device total number beyond limit.', - ], + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'invalid instance id', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"Sn\\": \\"QC4001#\\",\\n \\"DeviceName\\": \\"light%\\",\\n \\"DeviceSecret\\": \\"^67$\\"\\n }\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"repeatedDeviceName\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidSnList\\": {\\n \\"invalidSn\\": [\\n \\"{ \\\\\\"InvalidSnList\\\\\\": [ \\\\\\"\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceSecretList\\": {\\n \\"invalidDeviceSecret\\": [\\n \\"{ \\\\\\"InvalidDeviceSecretList\\\\\\": [ \\\\\\"^67$\\\\\\", \\\\\\"1\\\\\\" ] }\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"invalidDeviceName\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1295006\\n\\ntrue\\n","errorExample":""}]', - 'title' => '在MQTT云网关产品下批量导入设备', - 'summary' => '调用该接口在MQTT型实例或MQTT云网关产品下批量导入设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"Data\\": 1000,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n1000\\ntrue\\n","errorExample":""}]', + 'title' => 'CountSpeechBroadcastHour', + 'summary' => '调用该接口分页查询千里传音中共享播报的小时数据量。', 'description' => '## 使用说明'."\n" - .'若添加MQTT云网关设备,调用该接口前,请先添加MQTT云网关并成功创建云网关产品,获取产品的**Productkey**。具体操作,请参见[创建云网关产品(MQTT)](~~433804~~)。'."\n" + ."\n" + .'调用该接口可查询的共享播报数据的时间会延迟6小时。例如早上07:15分播报数据,需要延迟6个小时后,即在13:15后才能查询到07:15分播报的数据。'."\n" ."\n\n" .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryImportedDeviceByApplyId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CountSpeechBroadcastHour', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateConsumerGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'PageSize', + 'name' => 'GroupName', 'in' => 'query', + 'schema' => ['description' => '消费组名称。支持中文汉字、英文字母、数字和下划线(_),长度为4~30个字符,一个汉字计为两个字符。', 'type' => 'string', 'required' => true, 'example' => '消费组1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,默认值为10,最大值不超过50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '1000', - 'minimum' => '1', - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2'], + 'GroupId' => ['description' => '创建的消费组ID。', 'type' => 'string', 'example' => 'nJRaJPn5U1JITGf******'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n nJRaJPn5U1JITGf******\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建消费组', + 'summary' => '调用该接口创建一个消费组,用于创建AMQP服务端订阅。', + 'description' => '## 限制说明'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'CreateConsumerGroupSubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ [ - 'name' => 'ApplyId', + 'name' => 'ConsumerGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的申请批次ID。申请批次ID可在[BatchImportDevice](~~433878~~)接口返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '100000000000000000', - 'minimum' => '1', - 'example' => '1295006', - ], + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGfjBO9l00****'], ], [ - 'name' => 'PageNo', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,取值范围为1~10,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '该订阅中的产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], ], ], 'responses' => [ @@ -10161,430 +6668,307 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageNo' => [ - 'description' => '显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '返回结果的总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'DeviceList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'device' => [ - 'description' => '返回的设备列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'Sn' => [ - 'description' => '设备序列号。'."\n" - ."\n" - .'> 若您没有为设备传入序列号,则该参数返回为空。', - 'type' => 'string', - 'example' => 'QC4******001', - ], - 'DeviceName' => [ - 'description' => '设备名称。'."\n" - ."\n" - .'>'."\n" - .'请妥善保管,勿泄露。'."\n" - .'>', - 'type' => 'string', - 'example' => 'light', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。'."\n" - ."\n" - .'>'."\n" - .'请妥善保管,勿泄露。'."\n" - .'>', - 'type' => 'string', - 'example' => 'b4d43f7******10ba5e5', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'iot.device.DeviceApplyIsNotFound', - 'errorMessage' => 'The application ID for the device does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 100,\\n \\"PageSize\\": 10,\\n \\"DeviceList\\": {\\n \\"device\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"Sn\\": \\"QC4******001\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"b4d43f7******10ba5e5\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n100\\n10\\n1\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\na1BwAGV****\\n\\n \\n b4d43f7******10ba5e5\\n QC4******001\\n a1BwAGV****\\n light\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询批量导入的设备列表', - 'summary' => '调用该接口根据申请批次ID(ApplyId)查询批量导入的设备列表。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '在AMQP订阅中添加一个消费组', + 'summary' => '调用该接口在AMQP订阅中添加一个消费组。', 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchCheckImportDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateConsumerGroupSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDataAPIService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', + 'name' => 'RequestParam', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', + 'description' => '请求参数列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', 'type' => 'string', 'required' => false, 'example' => 'VARCHAR'], + 'Required' => ['description' => '该参数是否必填。'."\n" + ."\n" + .'- true:必填。'."\n" + .'- false:非必填。'."\n" + ."\n" + .'默认值为true。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'Example' => ['description' => '参数值示例。', 'type' => 'string', 'required' => false, 'example' => 'dksiaiek23s'], + 'Name' => ['description' => '参数名称。'."\n" + ."\n" + .'例如,`${status}`格式的模板参数,参数名称就是`status`。', 'type' => 'string', 'required' => false, 'example' => 'status'], + 'Desc' => ['description' => '参数描述。', 'type' => 'string', 'required' => false, 'example' => '设备状态'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => 'iot-1n8t****', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', + 'maxItems' => 100, ], ], [ - 'name' => 'DeviceList', + 'name' => 'ResponseParam', 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '批量校验的设备列表。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备的信息。超过该限制的数据会被丢弃。', + 'description' => '响应参数列表。', 'type' => 'array', 'items' => [ - 'description' => '设备信息。', 'type' => 'object', 'properties' => [ - 'Sn' => [ - 'description' => '设备的序列号。'."\n" - ."\n" - .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备序列号。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'QC4******001', - ], - 'DeviceName' => [ - 'description' => '设备的名称。'."\n" - ."\n" - .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" - ."\n" - .'设备名称在产品维度下不可重复。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => true, - 'example' => 'light', - ], - 'DeviceSecret' => [ - 'description' => '设备的密钥。'."\n" - ."\n" - .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备密钥。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => true, - 'example' => 'b4d43f7******10ba5e5', - ], + 'Type' => ['description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', 'type' => 'string', 'required' => false, 'example' => 'INTEGER'], + 'Required' => ['description' => '该参数是否必填。'."\n" + ."\n" + .'- true:必填。'."\n" + .'- false:非必填。'."\n" + ."\n" + .'> 返回参数中,此参数无需处理。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + 'Example' => ['description' => '参数值示例。', 'type' => 'string', 'required' => false, 'example' => '100'], + 'Name' => ['description' => '参数名称。', 'type' => 'string', 'required' => false, 'example' => 'deviceCount'], + 'Desc' => ['description' => '参数描述。', 'type' => 'string', 'required' => false, 'example' => '设备总数'], ], 'required' => false, + 'description' => '', ], - 'required' => true, - 'maxItems' => 10000, + 'required' => false, + 'maxItems' => 100, ], ], + [ + 'name' => 'DisplayName', + 'in' => 'formData', + 'schema' => ['description' => 'API的显示名称,需具有全局唯一性。仅支持中文汉字、英文字母、数字、下划线(_)、连接符(-)、英文圆括号和空格,长度不超过20个字符。', 'type' => 'string', 'required' => true, 'example' => '查询设备总数'], + ], + [ + 'name' => 'OriginSql', + 'in' => 'formData', + 'schema' => ['description' => 'API对应的原始SQL,指定数据开发的SQL样式。'."\n" + ."\n" + .'例如`select count(*) as deviceCount from ${system.device} where status = 1`。其中,`${system.device}`是平台系统的设备表,具体请参见[数据表](~~120902~~)中的表说明。', 'type' => 'string', 'required' => true, 'example' => 'SELECT COUNT(iot_id) AS deviceCount FROM ${system.device} WHERE status=1'], + ], + [ + 'name' => 'Desc', + 'in' => 'formData', + 'schema' => ['description' => 'API的描述。', 'type' => 'string', 'required' => false, 'example' => '数据分析API'], + ], + [ + 'name' => 'TemplateSql', + 'in' => 'formData', + 'schema' => ['description' => '服务的模板SQL,即原始SQL的模板化。'."\n" + ."\n" + .'例如`select count(*) as deviceCount from ${system.device} where status = ${status}`。其中,`${status}`是模板化的参数。支持设置模板参数为动态值。', 'type' => 'string', 'required' => true, 'example' => 'SELECT COUNT(iot_id) AS deviceCount FROM ${system.device} WHERE status=${status}'], + ], + [ + 'name' => 'ApiPath', + 'in' => 'formData', + 'schema' => ['description' => 'API调用地址的自定义部分。作为API资源标识符,需具有全局唯一性。'."\n" + ."\n" + .'> API调用地址的前一段部分由系统生成。', 'type' => 'string', 'required' => true, 'example' => 'device/getDeviceCountByStatus'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '请求参数错误'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,如果有校验失败的数据,则返回对应的失败信息。', + 'description' => '调用成功时,返回注册的设备信息。', 'type' => 'object', 'properties' => [ - 'InvalidDetailList' => [ - 'description' => '不合法设备列表。', - 'type' => 'array', - 'items' => [ - 'description' => '不合法设备信息。', - 'type' => 'object', - 'properties' => [ - 'ErrorMsg' => [ - 'description' => '导入设备失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'The device name is illegal.', - ], - 'Sn' => [ - 'description' => '设备SN码。', - 'type' => 'string', - 'example' => 'QC4001#', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light%', - ], - 'DeviceSecret' => [ - 'description' => '设备密钥。', - 'type' => 'string', - 'example' => ' ^67$', - ], - ], - ], - ], - 'RepeatedDeviceNameList' => [ - 'description' => '设备信息校验失败时,返回的重复设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息校验失败时,返回的重复设备名称。', - 'type' => 'string', - 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }', - ], - ], - 'InvalidSnList' => [ - 'description' => '设备信息校验失败时,返回的不合法设备序列号的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息校验失败时,返回的不合法设备序列号。', - 'type' => 'string', - 'example' => '{ "InvalidSnList": [ "" ] }', - ], - ], - 'InvalidDeviceSecretList' => [ - 'description' => '设备信息校验失败时,返回的不合法设备密钥的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息校验失败时,返回的不合法设备密钥。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceSecretList": [ "^67$", "1" ] }', - ], - ], - 'InvalidDeviceNameList' => [ - 'description' => '设备信息校验失败时,返回的不合法设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息校验失败时,返回的不合法设备名称。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }', - ], - ], + 'LastUpdateTime' => ['description' => 'API的最后更新时间,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557839468865'], + 'ApiSrn' => ['description' => 'API资源标识符,API的全局唯一标识。'."\n" + ."\n" + .'示例:'."\n" + ."\n" + .'`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" + ."\n" + .'以上示例中的信息说明如下:'."\n" + ."\n" + .'- `127103983461****`是阿里云主账号ID。'."\n" + ."\n" + .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', 'type' => 'string', 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2'], + 'CreateTime' => ['description' => 'API的创建时间,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557839468865'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', - 'errorMessage' => 'The devices you query exceed the maximum number.', - ], - [ - 'errorCode' => 'iot.device.NoneDeviceNameElement', - 'errorMessage' => 'The DeviceName list is empty.', - ], - [ - 'errorCode' => 'iot.device.InvalidDeviceParams', - 'errorMessage' => 'The request parameters are invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"Sn\\": \\"QC4001#\\",\\n \\"DeviceName\\": \\"light%\\",\\n \\"DeviceSecret\\": \\"\\\\t^67$\\"\\n }\\n ],\\n \\"RepeatedDeviceNameList\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ],\\n \\"InvalidSnList\\": [\\n \\"{ \\\\\\"InvalidSnList\\\\\\": [ \\\\\\"\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceSecretList\\": [\\n \\"{ \\\\\\"InvalidDeviceSecretList\\\\\\": [ \\\\\\"^67$\\\\\\", \\\\\\"1\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceNameList\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => '批量校验导入的设备', - 'summary' => '调用该接口批量校验导入的设备。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"请求参数错误\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"LastUpdateTime\\": 1557839468865,\\n \\"ApiSrn\\": \\"acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\",\\n \\"CreateTime\\": 1557839468865\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n \\r\\n acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\r\\n 1557839468865\\r\\n 1557839468865\\r\\n \\r\\n","errorExample":""}]', + 'title' => 'CreateDataAPIService', + 'summary' => '调用该接口创建数据算法服务API。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchImportVehicleDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDataAPIService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDataSourceItem' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t***'], + ], + [ + 'name' => 'DataSourceId', + 'in' => 'query', + 'schema' => ['description' => '数据源ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999', 'minimum' => '0', 'example' => '1002'], + ], + [ + 'name' => 'Topic', + 'in' => 'query', + 'schema' => ['description' => '应用到规则引擎的具体Topic,格式一般为:`/${productKey}/${deviceName}/topicShortName`。其中,`${productKey}`是设备所属产品的**ProductKey**,`${deviceName}`是具体设备的名称,`topicShortName`是Topic剩余部分。'."\n" + ."\n" + .'- 基础通信Topic或物模型通信Topic的格式一般为:`/${productKey}/${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" + ."\n" + .' - `/thing/event/property/post `设备上报的属性消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" + .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" + .' - `/thing/list/found`网关上报发现子设备消息。'."\n" + .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" + .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" + .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" + .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" + ."\n" + .' OTA升级批次状态通知Topic也属于基础通信Topic,格式为:`/${productKey}/${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" + .'- 自定义消息Topic为:`/${productKey}/${deviceName}/user/#`,如:`/${productKey}/${deviceName}/user/get`。'."\n" + ."\n" + .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" + ."\n" + .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" + .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" + .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" + .' '."\n" + .'- 设备状态变化通知Topic为:`/as/mqtt/status/${productKey}/${deviceName}`。'."\n" + ."\n" + .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。'."\n" + ."\n" + .'使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" + ."\n" + .'Topic数据格式的详细说明,请参见[数据格式](~~73736~~)。'."\n" + ."\n" + .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,仅支持自定义的消息Topic、设备状态变化通知Topic和设备生命周期变更Topic。自定义的消息Topic说明,请参见消息通信说明。若输入自定义的消息Topic,需同时传入**ScopeType**和**ProductKey**。若**ScopeType**为**DEVICE**,还需传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '/as/mqtt/status/gy***z/+'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Bw****', - ], + 'schema' => ['description' => '自定义的消息Topic所属产品的**ProductKey**。'."\n" + ."\n" + .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,必须设置此参数。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'gy***z'], ], [ - 'name' => 'DeviceList', - 'in' => 'formData', - 'style' => 'repeatList', + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '自定义的消息Topic所属的设备名称。'."\n" + ."\n" + .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,**scopeType**为**DEVICE**时,必须设置此参数。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], + ], + [ + 'name' => 'ScopeType', + 'in' => 'query', 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'type' => 'string', - 'required' => false, - ], - 'DeviceId' => [ - 'type' => 'string', - 'required' => false, - ], - 'DeviceSecret' => [ - 'type' => 'string', - 'required' => false, - ], - 'DeviceModel' => [ - 'type' => 'string', - 'required' => false, - ], - 'Manufacturer' => [ - 'type' => 'string', - 'required' => false, - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10000, + 'description' => '自定义的消息Topic订阅的作用域,可取值:'."\n" + ."\n" + .'- **PRODUCT **:产品维度,表示作用在产品下的所有设备上。即需同时传入**ProductKey**。'."\n" + .'- **DEVICE **:设备维度,表示作用在产品下指定的设备上。即需同时传入**DeviceName**。'."\n" + ."\n" + .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,必须设置此参数。'."\n" + .'>', + 'type' => 'string', + 'required' => false, + 'example' => 'PRODUCT', + 'enum' => ['PRODUCT', 'DEVICE'], ], ], ], @@ -10593,302 +6977,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n" - ."\n" - .'设备导入失败时,会返回以下信息:'."\n" - ."\n" - .'- **InvalidDeviceIdList**:不合法设备ID的列表。'."\n" - .'- **InvalidDeviceModelList**:不合法设备型号的列表。'."\n" - .'- **InvalidManufacturerList**:不合法设备厂商ID的列表。'."\n" - .'- **RepeatedDeviceIdList**:重复设备ID的列表。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'ApplyId' => [ - 'description' => '调用成功时,系统返回的申请批次ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1295006', - ], - 'InvalidDetailList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDetailList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ErrorMsg' => [ - 'type' => 'string', - ], - 'DeviceModel' => [ - 'type' => 'string', - ], - 'DeviceName' => [ - 'type' => 'string', - ], - 'DeviceId' => [ - 'type' => 'string', - ], - 'Manufacturer' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - 'InvalidManufacturerList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidManufacturerList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'RepeatedDeviceIdList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'repeatedDeviceIdList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'RepeatedDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RepeatedDeviceNameList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'InvalidDeviceIdList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidDeviceIdList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'InvalidDeviceModelList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'invalidDeviceModelList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - 'InvalidDeviceNameList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'InvalidDeviceNameList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', - 'errorMessage' => 'The devices you query exceed the maximum number.', - ], - [ - 'errorCode' => 'iot.device.ApplyManyDevicesFailed', - 'errorMessage' => 'An error occurred while creating multiple devices.', - ], - [ - 'errorCode' => 'iot.common.InvalidTenant', - 'errorMessage' => 'the device tenantId is invalid.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', - 'errorMessage' => 'The DeviceName list contains an invalid DeviceName.', - ], - [ - 'errorCode' => 'iot.prod.InvalidProductAuthType', - 'errorMessage' => 'The product authentication type is invalid.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is invalid.', - ], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.common.QueryProductActionError', 'errorMessage' => 'query product info fail', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'data source not exist', 'description' => ''], + ['errorCode' => 'iot.rule.ItemExceedsLimit', 'errorMessage' => 'item exceeds limit', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceItemExists', 'errorMessage' => 'data source item exist', 'description' => ''], + ['errorCode' => 'iot.common.TooManyRequest', 'errorMessage' => 'Request frequency is too high', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ApplyId\\": 1295006,\\n \\"InvalidDetailList\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"\\",\\n \\"DeviceModel\\": \\"\\",\\n \\"DeviceName\\": \\"\\",\\n \\"DeviceId\\": \\"\\",\\n \\"Manufacturer\\": \\"\\"\\n }\\n ]\\n },\\n \\"InvalidManufacturerList\\": {\\n \\"invalidManufacturerList\\": [\\n \\"\\"\\n ]\\n },\\n \\"RepeatedDeviceIdList\\": {\\n \\"repeatedDeviceIdList\\": [\\n \\"\\"\\n ]\\n },\\n \\"RepeatedDeviceNameList\\": {\\n \\"RepeatedDeviceNameList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceIdList\\": {\\n \\"invalidDeviceIdList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceModelList\\": {\\n \\"invalidDeviceModelList\\": [\\n \\"\\"\\n ]\\n },\\n \\"InvalidDeviceNameList\\": {\\n \\"InvalidDeviceNameList\\": [\\n \\"\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1295006\\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchImportVehicleDevice', - 'summary' => '调用该接口在云网关产品下批量导入设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateDataSourceItem', + 'summary' => '调用该接口为规则引擎中数据源添加Topic。', 'description' => '## 使用说明'."\n" - .'本接口用于批量导入JT/T 808协议云网关设备。'."\n" - ."\n\n" - .'## QPS限制'."\n" + .'调用该接口前,请先创建数据源,具体操作,请参见[创建数据源的步骤1~步骤6](~~270932~~);然后在物联网平台控制台对应实例下**消息转发 > 云产品流转**页面的**数据源**页签,查看**数据源ID**。'."\n" ."\n" + .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,必须传入**ScopeType**和**ProductKey**。若**ScopeType**为**DEVICE**,还需传入**DeviceName**。'."\n" + .'>'."\n" + ."\n" + .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchCheckVehicleDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ + [ + 'name' => 'Configuration', + 'in' => 'query', + 'schema' => ['description' => '数据目的对应的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例请参见本表格下方的参数补充说明。', 'type' => 'string', 'required' => true, 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'ProductKey', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Bw****', - ], + 'schema' => ['description' => '数据目的操作类型,可取值:'."\n" + ."\n" + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'string', 'required' => true, 'example' => 'REPUBLISH'], ], [ - 'name' => 'DeviceList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '批量校验的设备列表。', - 'type' => 'array', - 'items' => [ - 'description' => '设备信息。', - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'description' => '校验导入的GB/T 32960协议云网关设备时,需传入的设备名称。'."\n" - ."\n" - .'设备名称支持英文字母和数字,长度限制为4~17个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'vin0001', - ], - 'DeviceId' => [ - 'description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备ID。'."\n" - ."\n" - .'设备ID支持英文字母、数字、短划线(-),长度限制为4~30个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备ID。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'di0001', - ], - 'DeviceSecret' => [ - 'type' => 'string', - 'required' => false, - ], - 'DeviceModel' => [ - 'description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备型号。'."\n" - ."\n" - .'设备型号支持英文字母、数字、短划线(-),长度限制为4~30个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备型号。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'dm0001', - ], - 'Manufacturer' => [ - 'description' => '校验导入的JT/T 808协议云网关设备时,需传入的设备厂商ID。'."\n" - ."\n" - .'设备厂商ID支持英文字母、数字、短划线(-),长度限制为4~11个字符。'."\n" - ."\n" - .'> 单次调用该接口,最多能传入10,000个设备厂商ID。超过该限制的数据会被丢弃。', - 'type' => 'string', - 'required' => false, - 'example' => 'mf0001', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10000, - ], + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '数据目的名称。', 'type' => 'string', 'required' => true, 'example' => 'DataPurpose'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '数据目的描述信息。', 'type' => 'string', 'required' => false, 'example' => '数据流转至数据库。'], ], ], 'responses' => [ @@ -10896,409 +7088,236 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,如果有校验失败的数据,则返回对应的失败信息。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Destination' => [ + 'description' => '创建成功后,返回的数据目的信息。', 'type' => 'object', 'properties' => [ - 'InvalidDetailList' => [ - 'description' => '不合法设备列表信息。', - 'type' => 'array', - 'items' => [ - 'description' => '不合法设备信息。', - 'type' => 'object', - 'properties' => [ - 'ErrorMsg' => [ - 'description' => '设备校验失败,返回的出错信息。', - 'type' => 'string', - 'example' => 'The device name is illegal.', - ], - 'DeviceModel' => [ - 'description' => 'JT/T 808协议云网关设备的设备型号。', - 'type' => 'string', - 'example' => 'dm_*0001', - ], - 'DeviceName' => [ - 'description' => 'GB/T 32960协议云网关设备的设备名称。', - 'type' => 'string', - 'example' => 'device_*0001', - ], - 'DeviceId' => [ - 'description' => 'JT/T 808协议云网关设备的设备ID。', - 'type' => 'string', - 'example' => 'di_*0001', - ], - 'Manufacturer' => [ - 'description' => 'JT/T 808协议云网关设备的设备厂商ID。', - 'type' => 'string', - 'example' => 'mf_*0001', - ], - ], - ], - ], - 'InvalidManufacturerList' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备厂商ID的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备厂商ID的列表。', - 'type' => 'string', - 'example' => '{ "InvalidManufacturerList": [ "manufacturer#&_", "aw" ] }', - ], - ], - 'RepeatedDeviceIdList' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,重复设备ID的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,返回的重复设备ID的列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceIdList": [ "deviceId01", "deviceId02" ] }', - ], - ], - 'RepeatedDeviceNameList' => [ - 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的重复设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的重复设备名称的列表。', - 'type' => 'string', - 'example' => '{ "RepeatedDeviceNameList": [ "abcd", "asdf" ] }', - ], - ], - 'InvalidDeviceIdList' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备ID的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备ID的列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceIdList": [ "DEVIC^*$" ] }', - ], - ], - 'InvalidDeviceModelList' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,不合法设备型号的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'JT/T 808协议云网关设备信息校验失败时,返回的不合法设备型号的列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceModelList": [ "DEM$", "DE" ] }', - ], - ], - 'InvalidDeviceNameList' => [ - 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的不合法设备名称的列表。', - 'type' => 'array', - 'items' => [ - 'description' => 'GB/T 32960协议云网关设备信息校验失败时,返回的不合法设备名称的列表。', - 'type' => 'string', - 'example' => '{ "InvalidDeviceNameList": [ "APT$", "aw" ] }', - ], - ], + 'Type' => ['description' => '数据目的操作类型。', 'type' => 'string', 'example' => 'REPUBLISH'], + 'DestinationId' => ['description' => '数据目的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1003'], + 'Configuration' => ['description' => '数据目的对应的配置信息。', 'type' => 'string', 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + 'Name' => ['description' => '数据目的名称。', 'type' => 'string', 'example' => 'DataPurpose'], + 'UtcCreated' => ['description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'IsFailover' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'false'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.TooManyDeviceNamesPerRequest', - 'errorMessage' => 'The devices you query exceed the maximum number.', - ], - [ - 'errorCode' => 'iot.device.NoneDeviceNameElement', - 'errorMessage' => 'The DeviceName list is empty.', - ], - [ - 'errorCode' => 'iot.device.InvalidDeviceParams', - 'errorMessage' => 'The request parameters are invalid.', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.ruleng.NullRuleActionConfig', 'errorMessage' => 'The rule action configuration is empty.', 'description' => '规则动作的配置为空。'], + ['errorCode' => 'iot.ruleng.NullRuleActionType', 'errorMessage' => 'The specified rule action is invalid or the rule action type is unspecified.', 'description' => '规则动作类型(参数Type)不能为空。'], + ['errorCode' => 'iot.ruleng.InvalidRamRole', 'errorMessage' => 'The RAM role is invalid', 'description' => '无效的RAM角色'], + ['errorCode' => 'iot.rule.DestinationCountExceed', 'errorMessage' => 'The count of destination exceeds the maximum number', 'description' => '流转目的地数量超过限制'], + ['errorCode' => 'iot.rule.DestinationNameExisted', 'errorMessage' => 'The destination name is existed', 'description' => '同名数据目的地已存在'], + ['errorCode' => 'iot.rule.InvalidDestinationName', 'errorMessage' => 'The destination name is invalid', 'description' => '数据目的名称无效'], + ['errorCode' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', 'errorMessage' => 'The specified region does not support creating rules to publish messages to the specified cloud product', 'description' => '此region不支持将规则转发到该云产品'], + ['errorCode' => 'iot.ruleng.IncorrectRegionName', 'errorMessage' => 'The regionName value is incorrect', 'description' => 'regionName值错误'], + ['errorCode' => 'iot.consumer.group.InvalidConsumerGroupId', 'errorMessage' => 'Illegal consumer group ID', 'description' => '非法的消费组ID'], + ['errorCode' => 'iot.ruleng.NullProjectOfDatahub', 'errorMessage' => 'The project in DataHub is empty', 'description' => 'DATAHUB的project为空'], + ['errorCode' => 'iot.ruleng.NotFoundTopicInDataHubProject', 'errorMessage' => 'This specified topic does not exist in the project in DataHub', 'description' => 'Datahub的project中不存在此topic'], + ['errorCode' => 'iot.ruleng.NotFoundVpcInstance', 'errorMessage' => 'The specified VPC instance does not exist.', 'description' => 'vpc实例不存在'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"InvalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The device name is illegal.\\",\\n \\"DeviceModel\\": \\"dm_*0001\\",\\n \\"DeviceName\\": \\"device_*0001\\",\\n \\"DeviceId\\": \\"di_*0001\\",\\n \\"Manufacturer\\": \\"mf_*0001\\"\\n }\\n ],\\n \\"InvalidManufacturerList\\": [\\n \\"{ \\\\\\"InvalidManufacturerList\\\\\\": [ \\\\\\"manufacturer#&_\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ],\\n \\"RepeatedDeviceIdList\\": [\\n \\"{ \\\\\\"InvalidDeviceIdList\\\\\\": [ \\\\\\"deviceId01\\\\\\", \\\\\\"deviceId02\\\\\\" ] }\\"\\n ],\\n \\"RepeatedDeviceNameList\\": [\\n \\"{ \\\\\\"RepeatedDeviceNameList\\\\\\": [ \\\\\\"abcd\\\\\\", \\\\\\"asdf\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceIdList\\": [\\n \\"{ \\\\\\"InvalidDeviceIdList\\\\\\": [ \\\\\\"DEVIC^*$\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceModelList\\": [\\n \\"{ \\\\\\"InvalidDeviceModelList\\\\\\": [ \\\\\\"DEM$\\\\\\", \\\\\\"DE\\\\\\" ] }\\"\\n ],\\n \\"InvalidDeviceNameList\\": [\\n \\"{ \\\\\\"InvalidDeviceNameList\\\\\\": [ \\\\\\"APT$\\\\\\", \\\\\\"aw\\\\\\" ] }\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchCheckVehicleDevice', - 'summary' => '调用该接口批量校验导入的云网关设备。', - 'description' => '## 使用说明'."\n" - .'本接口适用于批量校验导入的JT/T 808协议和GB/T 32960协议的云网关设备。'."\n" - ."\n\n" - .'## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Destination\\": {\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": 1003,\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1003\\n DataPurpose\\n\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => '创建解析器流转数据目的', + 'summary' => '创建解析器流转数据目的。', + 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '**REPUBLISH类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|------|------|'."\n" + .'|productKey|转发至另一个Topic所属产品的ProductKey。|'."\n" ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'REPUBLISH类型**Configuration**示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "productKey":"hf****3xn"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**AMQP类型Configuration定义**'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|groupId|消费组ID。|'."\n" + ."\n" + .'AMQP类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "groupId":"ZTh1JmuZcUfv44p4z00****"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**OTS类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|instanceName|表格存储中用来接收信息的实例名称。|'."\n" + .'|regionName|目标实例所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|tableName|表格存储中用来接收信息的数据表名称。|'."\n" + .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的表格存储。授权角色信息:
`{"roleName":"AliyunIOTAccessingOTSRole","roleArn":"acs:ram::${uid}:role/aliyuniotaccessingotsrole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingOTSRole`是访问控制中定义的服务角色。用于授予物联网平台访问表格存储。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'OTS类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "instanceName":"${instanceName}",'."\n" + .' "regionName":"cn-shanghai",'."\n" + .' "tableName":"test_table",'."\n" + .' "role":{'."\n" + .' "roleName":"AliyunIOTAccessingOTSRole",'."\n" + .' "roleArn":"acs:ram::${uid}:role/aliyuniotaccessingotsrole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**DATAHUB类型Configuration定义**'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------ |'."\n" + .'|projectName|目标DataHub中用来接收信息的具体Project。|'."\n" + .'|topicName|目标DataHub中用来接收信息的具体Topic。|'."\n" + .'|regionName|目标DataHub所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|role|授权角色信息。通过授予IoT指定的系统服务角色,您可以授权物联网平台访问您的DataHub。授权角色信息格式:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingDataHubRole`是访问控制中定义的服务角色。用于授予物联网平台访问DataHub。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'DATAHUB类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "role":{'."\n" + .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingdatahubrole",'."\n" + .' "roleName": "AliyunIOTAccessingDataHubRole"'."\n" + .' },'."\n" + .' "ProjectName": "test_project_name",'."\n" + .' "RegionName": "cn-shanghai",'."\n" + .' "TopicName": "test_topic"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**MNS类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|themeName| 消息服务中用来接收信息的目标主题名称。|'."\n" + .'|regionName| 目标消息服务所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'MNS类型**​Configuration**​​示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "themeName": "test_name",'."\n" + .' "role":{'."\n" + .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingmnsrole",'."\n" + .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" + .' },'."\n" + .' "regionName": "cn-shanghai"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**ONS类型Configuration定义**'."\n" + ."\n" + .'> 您需通过调用消息队列RocketMQ的SDK,或在消息队列RocketMQ控制台,授权物联网平台访问消息队列RocketMQ(至少要授予物联网平台发布权限),然后才能够成功创建将Topic数据转发至消息队列RocketMQ的规则动作。'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|instanceId|RocketMQ中用来接收消息的目标Topic所属的实例ID。|'."\n" + .'|topic|RocketMQ中用来接收信息的目标Topic。|'."\n" + .'|regionName|目标RocketMQ实例所在的阿里云地域代码,例如cn-shanghai。
目前仅支持同地域内数据流转。'."\n" + .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息队列RocketMQ服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingmqrole","roleName": "AliyunIOTAccessingMQRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMQRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息队列RocketMQ。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'ONS类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "instanceId": "${MQ_INST_ID}",'."\n" + .' "role":'."\n" + .' {'."\n" + .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingmqrole",'."\n" + .' "roleName": "AliyunIOTAccessingMQRole"'."\n" + .' },'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "topic": "test_topic"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**FC类型Configuration定义**'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|functionName| 函数服务中用来接收信息的目标函数名称。|'."\n" + .'|serviceName| 函数服务中用来接收信息的目标服务名称。|'."\n" + .'|regionName| 目标函数服务实例所在阿里云地域的代码,如cn-shanghai。|'."\n" + .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的函数计算服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingFCRole`是访问控制中定义的服务角色。用于授予物联网平台访问函数计算。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'FC类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "role":'."\n" + .' {'."\n" + .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingfcrole",'."\n" + .' "roleName": "AliyunIOTAccessingFCRole"'."\n" + .' },'."\n" + .' "functionName": "${function_name}",'."\n" + .' "serviceName": "${service_name}",'."\n" + .' "regionName": "cn-shanghai"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryVehicleDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDeviceDistributeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1Bw****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回的设备信息。', - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属云网关产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ModifiedTime' => [ - 'description' => '设备更新时间的时间戳。单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1657062301656', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'Protocol' => [ - 'description' => '云网关协议类型。取值:'."\n" - ."\n" - .'- **gb32960**:GB/T 32960协议。'."\n" - .'- **jt808**:JT/T 808协议。'."\n" - .'- **sl651**:SL 651协议。', - 'type' => 'string', - 'example' => 'gb32960', - ], - 'CreateTime' => [ - 'description' => '设备创建时间的时间戳。单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557062301656', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'dm0001', - ], - 'JtProtocolDeviceData' => [ - 'description' => '仅JT/T 808协议云网关设备返回的注册认证信息。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '设备状态。可取值:'."\n" - ."\n" - .'- **create**:设备已创建。'."\n" - .'- **register**:设备已注册。'."\n" - .'- **unregister**:设备已注销。', - 'type' => 'string', - 'example' => 'create', - ], - 'RegisterTime' => [ - 'description' => '设备注册时间的时间戳。单位为毫秒。', - 'type' => 'string', - 'format' => 'int64', - 'example' => '1517062301656', - ], - 'AuthCode' => [ - 'description' => '设备认证的鉴权码。', - 'type' => 'string', - 'example' => '*******', - ], - 'VehicleColour' => [ - 'description' => '车牌颜色。取值符合标准JT/T 808协议要求即可。详细说明,请参见[JT/T 808的2019版本协议](https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/file-manage-files/zh-CN/20221220/mdsf/JT-T%20808-2019.pdf)。', - 'type' => 'string', - 'example' => '1', - ], - 'DeviceId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'di0001', - ], - 'VehicleNumber' => [ - 'description' => '车牌号。', - 'type' => 'string', - 'example' => '浙A****', - ], - 'City' => [ - 'description' => '设备注册的城市。', - 'type' => 'string', - 'example' => '杭州', - ], - 'DeviceModel' => [ - 'description' => '设备型号。', - 'type' => 'string', - 'example' => 'dm0001', - ], - 'Manufacturer' => [ - 'description' => '设备厂商ID。', - 'type' => 'string', - 'example' => 'mf0001', - ], - 'Province' => [ - 'description' => '设备注册的省。', - 'type' => 'string', - 'example' => '浙江', - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The ProductKey or DeviceName parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.device.NoPermission', - 'errorMessage' => 'The Operation has not permission to the device.', - ], - [ - 'errorCode' => 'Iot.Device.NoVehicleProtocolDevice', - 'errorMessage' => 'The device non vehicle protocol data.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ModifiedTime\\": 1657062301656,\\n \\"DeviceName\\": \\"light\\",\\n \\"Protocol\\": \\"gb32960\\",\\n \\"CreateTime\\": 1557062301656,\\n \\"IotId\\": \\"dm0001\\",\\n \\"JtProtocolDeviceData\\": {\\n \\"Status\\": \\"create\\",\\n \\"RegisterTime\\": 1517062301656,\\n \\"AuthCode\\": \\"*******\\",\\n \\"VehicleColour\\": \\"1\\",\\n \\"DeviceId\\": \\"di0001\\",\\n \\"VehicleNumber\\": \\"浙A****\\",\\n \\"City\\": \\"杭州\\",\\n \\"DeviceModel\\": \\"dm0001\\",\\n \\"Manufacturer\\": \\"mf0001\\",\\n \\"Province\\": \\"浙江\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nCF291A12-EBB7-5A38-A087-C8A04450913E\\n\\n ERfsXh***************wk05dm0\\n 1695274556000\\n 1695274556000\\n gb32960\\n k05d******\\n Device01\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryVehicleDevice', - 'summary' => '调用该接口查询云网关设备信息。', - 'description' => '## 使用说明'."\n" - .'本接口适用于查询JT/T 808协议、GB/T 32960协议和SL 651协议云网关设备的信息。'."\n" - ."\n" - .'使用云网关协议接入设备的具体流程和通信说明,请参见[JT/T 808协议云网关概述](~~474256~~)、[GB/T 32960协议云网关概述](~~2248990~~)和[SL 651协议云网关概述](~~2636038~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateDeviceDistributeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'style' => 'repeatList', + 'name' => 'DeviceName', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ 'description' => '待分发的设备名称列表。最多包含1000个设备名称。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => true, 'example' => 'RepeatList', 'maxItems' => 10000, @@ -11314,17 +7333,13 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'TargetInstanceId' => [ - 'description' => '设备分发的目标实例配置。实例ID详情,请参见参数**SourceInstanceId**描述。'."\n" - ."\n" - .'- 当参数**Strategy**为**1**时,此处可传入多个实例ID。'."\n" - .'- 当参数**Strategy**为**0**时,此处传入一个实例ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-cn-6ja***', - ], + 'TargetInstanceId' => ['description' => '设备分发的目标实例配置。实例ID详情,请参见参数**SourceInstanceId**描述。'."\n" + ."\n" + .'- 当参数**Strategy**为**1**时,此处可传入多个实例ID。'."\n" + .'- 当参数**Strategy**为**0**时,此处传入一个实例ID。', 'type' => 'string', 'required' => true, 'example' => 'iot-cn-6ja***'], ], 'required' => false, + 'description' => '', ], 'required' => true, 'maxItems' => 10, @@ -11333,75 +7348,49 @@ [ 'name' => 'SourceInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的源实例ID。'."\n" - ."\n" - .'- 各地域公共实例ID:'."\n" - ."\n" - .' - 华东2(上海):iotx-oxssharez200。'."\n" - .' - 日本:iotx-oxssharez300。'."\n" - .' - 新加坡:iotx-oxssharez400。'."\n" - .' - 美国(硅谷):iotx-oxssharez500。'."\n" - .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" - .' - 德国(法兰克福):iotx-oxssharez700。'."\n" - ."\n" - .'- 企业版实例ID:'."\n" - .' '."\n" - .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" - .' '."\n" - .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'iot-060***', - ], + 'schema' => ['description' => '设备所属的源实例ID。'."\n" + ."\n" + .'- 各地域公共实例ID:'."\n" + ."\n" + .' - 华东2(上海):iotx-oxssharez200。'."\n" + .' - 日本:iotx-oxssharez300。'."\n" + .' - 新加坡:iotx-oxssharez400。'."\n" + .' - 美国(硅谷):iotx-oxssharez500。'."\n" + .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" + .' - 德国(法兰克福):iotx-oxssharez700。'."\n" + ."\n" + .'- 企业版实例ID:'."\n" + .' '."\n" + .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" + .' '."\n" + .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n", 'type' => 'string', 'required' => true, 'example' => 'iot-060***'], ], [ 'name' => 'ProductKey', 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ 'name' => 'TargetUid', 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**安全设置**页面查看。'."\n" - ."\n" - .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', - 'type' => 'string', - 'required' => false, - 'example' => '198***', - ], + 'schema' => ['description' => '设备所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**安全设置**页面查看。'."\n" + ."\n" + .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', 'type' => 'string', 'required' => false, 'example' => '198***'], ], [ 'name' => 'TargetAliyunId', 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的阿里云账号。可登录物联网平台控制台,单击账号头像,跳转至**安全设置**页面查看。'."\n" - ."\n" - .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', - 'type' => 'string', - 'required' => false, - 'example' => ' io****@example.com', - ], + 'schema' => ['description' => '设备所属的阿里云账号。可登录物联网平台控制台,单击账号头像,跳转至**安全设置**页面查看。'."\n" + ."\n" + .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', 'type' => 'string', 'required' => false, 'example' => ' io****@example.com'], ], [ 'name' => 'Strategy', 'in' => 'formData', - 'schema' => [ - 'description' => '分发策略。默认值为0。'."\n" - ."\n" - .'- **0**:指定地域,将设备分发到指定地域的一个实例中。'."\n" - .'- **1**:就近接入,配置多个地域的实例ID,设备将根据设备的IP位置动态接入其中距离最近的地域。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => '分发策略。默认值为0。'."\n" + ."\n" + .'- **0**:指定地域,将设备分发到指定地域的一个实例中。'."\n" + .'- **1**:就近接入,配置多个地域的实例ID,设备将根据设备的IP位置动态接入其中距离最近的地域。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], ], ], 'responses' => [ @@ -11409,34 +7398,15 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JobId' => [ - 'description' => '调用成功后,返回的任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'JobId' => ['description' => '调用成功后,返回的任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => 'UbmsMHmkqv0PiAG****010001'], ], + 'description' => '', ], ], ], @@ -11481,95 +7451,52 @@ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateProductDistributeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDeviceDynamicGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'SourceInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '产品所属的源实例ID。'."\n" - ."\n" - .'- 各地域公共实例ID:'."\n" - ."\n" - .' - 华东2(上海):iotx-oxssharez200。'."\n" - .' - 日本:iotx-oxssharez300。'."\n" - .' - 新加坡:iotx-oxssharez400。'."\n" - .' - 美国(硅谷):iotx-oxssharez500。'."\n" - .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" - .' - 德国(法兰克福):iotx-oxssharez700。'."\n" - ."\n" - .'- 企业版实例ID:'."\n" - .' '."\n" - .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" - .' '."\n" - .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n" - ."\n" - .' ', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-cn-st2***', - ], - ], - [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '待分发产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-***'], ], [ - 'name' => 'TargetInstanceId', + 'name' => 'GroupDesc', 'in' => 'query', - 'schema' => [ - 'description' => '产品分发的目标实例ID。实例ID详情,请参见参数**SourceInstanceId**描述。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-cn-6ja***', - ], + 'schema' => ['description' => '分组描述。长度不超过100个字符,一个中文占一个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'TargetUid', + 'name' => 'GroupName', 'in' => 'query', - 'schema' => [ - 'description' => '产品所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。'."\n" - ."\n" - .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', - 'type' => 'string', - 'required' => false, - 'example' => '198***', - ], + 'schema' => ['description' => '分组名称。名称长度为4~30个字符,可包含中文、英文字母、数字和下划线(_)。一个中文占两个字符。', 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], [ - 'name' => 'TargetAliyunId', + 'name' => 'DynamicGroupExpression', 'in' => 'query', - 'schema' => [ - 'description' => '产品所属的阿里云账号。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**登录账号**。'."\n" - ."\n" - .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', - 'type' => 'string', - 'required' => false, - 'example' => ' io****@example.com', - ], + 'schema' => ['description' => '动态分组规则,用于查询并动态匹配设备到分组。规则表达式编写方法,请参见[类SQL语法说明](~~185713~~)。', 'type' => 'string', 'required' => true, 'example' => 'product_key = "a1***" and name LIKE "test%"'], ], ], 'responses' => [ @@ -11577,87 +7504,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JobId' => [ - 'description' => '调用成功后,返回的任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => 'UbmsMHmkqv0PiAG****010001', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0634D'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的分组信息。', + 'type' => 'object', + 'properties' => [ + 'DynamicGroupExpression' => ['description' => '动态分组规则。', 'type' => 'string', 'example' => 'product_key = "a1***" and name LIKE "test%"'], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'grouptest'], + 'GroupId' => ['description' => '分组ID,系统为分组生成的全局唯一标识符。', 'type' => 'string', 'example' => 'HtMLECKbdJQL***'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'test'], + 'UtcCreate' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2021-10-17T11:19:31.000Z'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nUbmsMHmkqv0PiAG****010001\\ntrue\\n","errorExample":""}]', - 'title' => '创建产品分发任务', - 'summary' => '调用该接口创建产品分发任务,将指定产品分发到指定的目标实例。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" - ."\n" - .'- 不支持调用本接口创建跨账号的分发任务。'."\n" - ."\n" - .'- 产品分发任务不会同步分发产品下设备。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.group.DynamicGroupMatchedDeviceCountExceedMax', 'errorMessage' => 'The maximum number of device matched by dynamic group condition is exceeded.', 'description' => '动态分组规则匹配设备数量过多。'], + ['errorCode' => 'iot.group.GroupCountExceedMax', 'errorMessage' => 'The number of device groups exceeds the limit.', 'description' => '分组数量超过最大值。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLError', 'errorMessage' => 'The SQL statement is invalid.', 'description' => '不合法的SQL语句。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLOffsetError', 'errorMessage' => 'The SQL offset is invalid.', 'description' => '不合法的SQL偏移量。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLFieldError', 'errorMessage' => 'The SQL statement contains invalid field names.', 'description' => 'SQL包含不合法的字段名。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLConditionError', 'errorMessage' => 'The SQL statement contains too many conditions.', 'description' => 'SQL的连接词个数超过限制。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLOrderError', 'errorMessage' => 'The SQL statement contains invalid ORDER BY conditions.', 'description' => 'SQL的排序规则错误。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLOperatorTypeError', 'errorMessage' => 'The operator and data type in the SQL statement do not match.', 'description' => 'SQL运算符和数据类型不匹配。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLParamError', 'errorMessage' => 'The SQL syntax is unsupported.', 'description' => '不支持的SQL语法。'], + ['errorCode' => 'iot.devicesearch.InvalidSQLIdentfierError', 'errorMessage' => 'The TSL identifier is not configured.', 'description' => '物模型Identifier未配置。'], + ['errorCode' => 'iot.group.InvalidGroupName', 'errorMessage' => 'The specified device group name is invalid.', 'description' => '分组名称不合法。'], + ['errorCode' => 'iot.group.LongGroupDescError', 'errorMessage' => 'The group description exceeds the length limit.', 'description' => '分组描述字段过长。'], + ['errorCode' => 'iot.group.SuperGroupUnsupport', 'errorMessage' => 'The super groups do not support subGroups.', 'description' => '子分组不支持添加到该父分组。'], + ['errorCode' => 'iot.common.APINotSupportedInInstance', 'errorMessage' => 'This API operation is not supported in this instance.', 'description' => '当前实例不支持该API。'], + ['errorCode' => 'iot.group.GroupNameExisted', 'errorMessage' => 'The specified device group name already exists.', 'description' => '分组名称已存在。'], + ['errorCode' => 'iot.group.CreateGroupFailed', 'errorMessage' => 'An error occurred while creating a device group.', 'description' => '创建分组失败。'], + ['errorCode' => 'iot.device.RegionNotSupportDynamicGroup', 'errorMessage' => 'The region does not currently support the dynamic group feature.', 'description' => '该region目前不支持动态分组功能。'], + ['errorCode' => 'MissingDynamicGroupExpression', 'errorMessage' => 'DynamicGroupExpression is mandatory for this action.', 'description' => '动态分组规则必填。'], + ['errorCode' => 'iot.databus.SearchIndexConfigNotFound', 'errorMessage' => 'The search index config is not found.', 'description' => '未配置高级设备检索。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DynamicGroupExpression\\": \\"product_key = \\\\\\"a1***\\\\\\" and name LIKE \\\\\\"test%\\\\\\"\\",\\n \\"GroupName\\": \\"grouptest\\",\\n \\"GroupId\\": \\"HtMLECKbdJQL***\\",\\n \\"GroupDesc\\": \\"test\\",\\n \\"UtcCreate\\": \\"2021-10-17T11:19:31.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\n\\n grouptest\\n 2021-10-17T11:19:31.000Z\\n test\\n product_key = \\"a1***\\" and name LIKE \\"test%\\"\\n HtMLECKbdJQL***\\n\\ntrue\\n","errorExample":""}]', + 'title' => '创建动态分组', + 'summary' => '创建动态分组,将符合动态分组条件的设备加入分组。', + 'description' => '## 限制说明'."\n" ."\n" - .'- 产品分发完成后,不支持修改产品的物模型及相关脚本信息。'."\n" + .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" ."\n" - .'- 单个阿里云账号下,产品分发和设备分发的任务总数不超过10个。创建设备分发任务,请参见[CreateDeviceDistributeJob](~~199390~~)。'."\n" + .'- 单个阿里云账号下最多可创建10个动态分组。'."\n" ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" ."\n" .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceDistributeDetail' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceDynamicGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDeviceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '分发任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'SuperGroupId', + 'in' => 'query', + 'schema' => ['description' => '父组ID。'."\n" + ."\n" + .'若要创建的是一级分组,则不传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'SuperGroupId1'], + ], + [ + 'name' => 'GroupDesc', + 'in' => 'query', + 'schema' => ['description' => '分组描述。长度不超过100个字符,一个中文汉字占一个字符。', 'type' => 'string', 'required' => false, 'example' => 'Group test'], + ], + [ + 'name' => 'GroupName', + 'in' => 'query', + 'schema' => ['description' => '分组名称。名称长度为4~30个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字占两个字符。'."\n", 'type' => 'string', 'required' => true, 'example' => 'grouptest'], ], ], 'responses' => [ @@ -11665,79 +7626,111 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'File' => [ - 'description' => '分发结果的文件URL,即文件在对象存储(OSS)上的存储地址,有效期为10分钟。'."\n", - 'type' => 'string', - 'example' => 'https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0634D'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的分组信息。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '分组ID,系统为分组生成的全局唯一标识符。', 'type' => 'string', 'example' => 'HtMLECKbdJQL****'], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'grouptest'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'Group test'], + 'UtcCreate' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2018-10-17T11:19:31.000Z'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"File\\": \\"https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nhttps://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***\\ntrue\\n","errorExample":""}]', - 'title' => '获取设备分发任务执行完成后的结果信息', - 'summary' => '调用该接口获取设备分发任务执行完成后的结果信息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" - ."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"HtMLECKbdJQL****\\",\\n \\"GroupName\\": \\"grouptest\\",\\n \\"GroupDesc\\": \\"Group test\\",\\n \\"UtcCreate\\": \\"2018-10-17T11:19:31.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n Group test\\r\\n grouptest\\r\\n 2018-10-17T11:19:31.000Z\\r\\n HtMLECKbdJQL****\\r\\n \\r\\n 4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建设备分组', + 'summary' => '新建设备分组。', + 'description' => '## QPS限制'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceDistributeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '分发任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], + 'schema' => ['description' => '指定设备的设备ID。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv***00100'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '安全隧道的描述信息。内容长度不超过1024个字符。', 'type' => 'string', 'required' => false, 'example' => '用于远程登录到摄像头。'], + ], + [ + 'name' => 'Udi', + 'in' => 'query', + 'schema' => ['description' => '推送给设备的自定义信息,数据格式自定义,长度不超过4096个字符。'."\n" + ."\n" + .'会在通知设备创建安全隧道时发送给设备。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'reboot'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '指定设备所属产品的**ProductKey**。'."\n" + ."\n" + .'>如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV***'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '指定设备的设备名称。'."\n" + .'>如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-***-v64***'], ], ], 'responses' => [ @@ -11745,463 +7738,263 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => ' E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => ' iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功后,返回的设备分发任务详情。', + 'description' => '调用成功时,返回安全隧道的基本信息。', 'type' => 'object', 'properties' => [ - 'Strategy' => [ - 'description' => '分发策略。'."\n" - ."\n" - .'- **0**:指定地域,将设备分发到指定地域的指定实例。'."\n" - .'- **1**:就近接入,配置了多个地域的实例ID,设备将根据设备的IP位置动态接入其中距离最近的地域。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Status' => [ - 'description' => '分发任务状态。'."\n" - ."\n" - .'- **0**:任务初始化。'."\n" - ."\n" - .'- **1**:任务执行中。'."\n" - .' '."\n" - .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" - ."\n" - .'- **3**:任务异常中断。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'TargetUid' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => '198***', - ], - 'JobId' => [ - 'description' => '分发任务的ID。', - 'type' => 'string', - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], - 'GmtCreate' => [ - 'description' => '分发任务的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942000', - ], - 'SourceUid' => [ - 'description' => '阿里云账号ID。', - 'type' => 'string', - 'example' => '198***', - ], - 'Total' => [ - 'description' => '分发任务中的设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'SourceInstanceId' => [ - 'description' => '源实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - 'TargetInstanceConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'targetInstanceConfigs' => [ - 'description' => '目标实例ID列表。'."\n" - ."\n" - .'- 当参数**Strategy**为**1**时,列表可有多个实例ID。'."\n" - .'- 当参数**Strategy**为**0**时,列表有一个实例ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TargetInstanceId' => [ - 'description' => '目标实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - ], - ], - ], - ], - ], + 'TunnelId' => ['description' => '安全隧道ID。', 'type' => 'string', 'example' => 'd4098041-***'], + 'SourceURI' => ['description' => '通过安全隧道访问对应设备,建立WebSocket的URL。', 'type' => 'string', 'example' => 'wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source'], + 'SourceAccessToken' => ['description' => '通过安全隧道访问对应设备的认证Token,用于WebSocket建连的认证阶段,详细说明,请参见[安全隧道使用流程](~~312333~~)。', 'type' => 'string', 'example' => '521c43e4-a6da-***'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\" E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Strategy\\": 0,\\n \\"Status\\": 1,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"SourceUid\\": \\"198***\\",\\n \\"Total\\": 5,\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\",\\n \\"TargetInstanceConfigs\\": {\\n \\"targetInstanceConfigs\\": [\\n {\\n \\"TargetInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 1581595942000\\n 198***\\n 5\\n 0\\n 198***\\n iot-cn-6ja***\\n \\n \\n iot-cn-6ja***\\n \\n \\n a1BwAGV****\\n UbmsMHmkqv0PiAG****010001\\n\\ntrue\\n","errorExample":""}]', - 'title' => '获取设备分发任务的详细信息', - 'summary' => '调用该接口获取设备分发任务的详细信息。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.securetunnel.ParamInvalid', 'errorMessage' => 'The parameter is invalid.', 'description' => '设备隧道api参数非法。'], + ['errorCode' => 'iot.securetunnel.DescriptionTooLong', 'errorMessage' => 'The description of the device tunnel has exceeded the maximum length.', 'description' => '设备隧道的描述超长。'], + ['errorCode' => 'iot.securetunnel.UdiTooLong', 'errorMessage' => 'The Udi of the device tunnel has exceeded the maximum length.', 'description' => '设备隧道的udi超长。'], + ['errorCode' => 'iot.securetunnel.TunnelAmountExceedByDevice', 'errorMessage' => 'The tunnel amount of the device has exceeded the limit.', 'description' => '设备设备的隧道数量超过限制。'], + ['errorCode' => 'iot.securetunnel.TunnelAmountExceedByInstance', 'errorMessage' => 'The tunnel amount for the instance has exceeded the limit.', 'description' => '实例粒度的隧道数量超过限制。'], + ['errorCode' => 'iot.securetunnel.DeviceNotExist', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在。'], + ['errorCode' => 'iot.securetunnel.DeviceNotOnline', 'errorMessage' => 'The device must be online.', 'description' => '设备需要为在线状态。'], + ['errorCode' => 'iot.securetunnel.DeviceNotSpecified', 'errorMessage' => 'The device is not specified.', 'description' => '设备未被指定。'], + ['errorCode' => 'iot.securetunnel.InstanceIdMismatch', 'errorMessage' => 'The instanceId does not match the parameter.', 'description' => '实例id跟其他参数不匹配。'], + ['errorCode' => 'iot.securetunnel.TunnelQuotaExhausted', 'errorMessage' => 'The quota for secure tunnel has been exhausted.', 'description' => '隧道额度已经被耗尽。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"\\\\tiot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TunnelId\\": \\"d4098041-***\\",\\n \\"SourceURI\\": \\"wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source\\",\\n \\"SourceAccessToken\\": \\"521c43e4-a6da-***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source\\n 521c43e4-a6da-***\\n d4098041-***\\n\\ntrue\\n","errorExample":""}]', + 'title' => '创建设备安全隧道', + 'summary' => '为指定设备创建安全隧道。', 'description' => '## 使用说明'."\n" ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" + .'调用本接口创建安全隧道成功后,该安全隧道状态默认为**已打开**。'."\n" + .'- 创建24小时后,安全隧道状态自动更新为**已关闭**。'."\n" + .'- 创建30天后,安全隧道会被系统自动删除。'."\n" ."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'## 使用限制'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', + .'- 单个设备最多包含10个安全隧道。'."\n" + .'- 单个实例下最多包含1,000个安全隧道。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListDeviceDistributeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateDownloadDataJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'TargetUid', - 'in' => 'query', - 'schema' => [ - 'description' => '设备分发的目标阿里云账号ID。', - 'type' => 'string', - 'required' => false, - 'example' => '198***', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-npk1u******'], ], [ - 'name' => 'CurrentPage', + 'name' => 'TableName', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。'."\n" - ."\n" - .'**NextToken**与**CurrentPage**是设置显示结果的条件参数,可任选一个传入。如果同时传入,则**NextToken**优先级更高。'."\n" - ."\n" - .'**NextToken**参数的使用说明,请参见**NextToken**描述。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '需下载的表名称。', 'type' => 'string', 'required' => true, 'example' => 'product_info'], ], [ - 'name' => 'PageSize', + 'name' => 'DownloadDataType', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的分发任务数量。最大不超过200条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '下载对象的类型,暂只支持**TABLE**。', 'type' => 'string', 'required' => true, 'example' => 'TABLE'], ], [ - 'name' => 'Status', + 'name' => 'FileConfig', 'in' => 'query', - 'schema' => [ - 'description' => '设备分发任务的状态。'."\n" - ."\n" - .'- **0**:任务初始化。'."\n" - ."\n" - .'- **1**:任务执行中。'."\n" - .' '."\n" - .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" - ."\n" - .'- **3**:任务异常中断。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备分发任务的ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => false, - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], + 'style' => 'json', + 'schema' => ['description' => '下载文件设置。给下载文件设置一个名称(fileName),可自定义,若fileName不传则默认生成一个文件名。', 'type' => 'object', 'required' => false, 'example' => '{"fileName":"fileName01"}'], ], [ - 'name' => 'NextToken', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识,首次查询无需传入。'."\n" - ."\n" - .'**NextToken**与**CurrentPage**是设置显示结果的条件参数,可任选一个传入。如果同时传入,则**NextToken**优先级更高。'."\n" - ."\n" - .'>'."\n" - .'定义查询结果的偏移数量为:**PageSize**×(**CurrentPage**-1)。'."\n" - ."\n" - .'当偏移数量大于10,000时,必须传入上一次调用本接口返回的**NextToken**值,才会返回**Data**数据。否则,接口请求会被中断,无法返回**Data**数据。'."\n" - ."\n" - .'>'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'TGlzdFJlc291***', - ], + 'schema' => ['description' => '时间范围,查询数据的开始时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1658332800000'], ], [ - 'name' => 'ProductKey', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '设备所隶属的产品ProductKey。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1T27vz****', - ], + 'schema' => ['description' => '时间范围,查询数据的结束时间。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1658406464534'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '请求返回结果', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'no authorization.'], + 'RequestId' => ['description' => '请求ID,阿里云为该请求生成的唯一标识符。'."\n", 'type' => 'string', 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0643F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功后,返回的设备分发任务列表,详情参见**JobInfo**下信息。', + 'description' => '请求的返回结果。', 'type' => 'object', 'properties' => [ - 'Total' => [ - 'description' => '返回的设备分发任务总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'NextToken' => [ - 'description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" - ."\n" - .'如果返回值为空,则表示没有下一页数据了。', - 'type' => 'string', - 'example' => 'TGlzdFJlc291***', - ], - 'JobInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'items' => [ - 'description' => '任务的信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Strategy' => [ - 'description' => '分发策略。'."\n" - ."\n" - .'- **0**(默认):指定地域,将设备分发到指定地域的指定实例。'."\n" - .'- **1**:就近接入,即设备分发任务中,配置了多个地域的实例ID,设备根据设备的IP位置,分发到距离其最近地域的实例中。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Status' => [ - 'description' => '任务状态。'."\n" - ."\n" - .'- **0**:任务初始化。'."\n" - ."\n" - .'- **1**:任务执行中。'."\n" - .' '."\n" - .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" - ."\n" - .'- **3**:任务异常中断。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'TargetUid' => [ - 'description' => '目标阿里云账号ID。', - 'type' => 'string', - 'example' => '198***', - ], - 'JobId' => [ - 'description' => '任务的ID。', - 'type' => 'string', - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], - 'GmtCreate' => [ - 'description' => '任务的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942000', - ], - 'SourceInstanceName' => [ - 'description' => '源实例名称。', - 'type' => 'string', - 'example' => '实例调试1', - ], - 'SourceUid' => [ - 'description' => '源阿里云账号ID。', - 'type' => 'string', - 'example' => '198***', - ], - 'Total' => [ - 'description' => '分发任务中的设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'SourceRegion' => [ - 'description' => '源实例所在地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'SourceInstanceId' => [ - 'description' => '源实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - 'TargetInstanceConfigs' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'targetInstanceConfigs' => [ - 'description' => '目标实例ID列表。'."\n" - ."\n" - .'- 当参数**Strategy**为**1**时,列表可有多个实例ID。'."\n" - .'- 当参数**Strategy**为**0**时,列表有一个实例ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TargetInstanceName' => [ - 'description' => '目标实例名称。', - 'type' => 'string', - 'example' => '实例调试2', - ], - 'TargetRegion' => [ - 'description' => '目标实例所在地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'TargetInstanceId' => [ - 'description' => '目标实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Status' => ['description' => '下载任务的执行状态。'."\n" + .'- **-1**:初始化中。'."\n" + .'- **0**:运行中。'."\n" + .'- **1**:执行成功。'."\n" + .'- **2**:执行失败。'."\n" + .'- **3**:已提交,等待中。'."\n" + .'- **4**:已取消。', 'type' => 'integer', 'format' => 'int32', 'example' => '-1'], + 'LongJobId' => ['description' => '下载任务的ID。', 'type' => 'string', 'example' => '62d949808bc742187xxxxxx'], + 'AsyncExecute' => ['description' => '是否是异步查询。'."\n" + .'- **true**:是异步查询。'."\n" + .'- **false**:不是异步查询,是同步查询。', 'type' => 'boolean', 'example' => 'true'], + 'CsvUrl' => ['description' => 'OSS文件的下载地址。', 'type' => 'string', 'example' => 'https://oss-xxxx-xxxx.xxxx......'], + 'CsvFileName' => ['description' => '下载文件的名称。', 'type' => 'string', 'example' => 'test_download_file'], ], ], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"NextToken\\": \\"TGlzdFJlc291***\\",\\n \\"JobInfo\\": {\\n \\"items\\": [\\n {\\n \\"Strategy\\": 0,\\n \\"Status\\": 1,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"SourceInstanceName\\": \\"实例调试1\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"Total\\": 5,\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\",\\n \\"TargetInstanceConfigs\\": {\\n \\"targetInstanceConfigs\\": [\\n {\\n \\"TargetInstanceName\\": \\"实例调试2\\",\\n \\"TargetRegion\\": \\"cn-shanghai\\",\\n \\"TargetInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n TGlzdFJlc291***\\n 10\\n \\n \\n 1\\n 实例调试1\\n 1581595942000\\n 198***\\n 5\\n 0\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n a1BwAGV****\\n UbmsMHmkqv0PiAG****010001\\n \\n \\n cn-shanghai\\n 实例调试2\\n iot-cn-6ja***\\n \\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'ListDeviceDistributeJob', - 'summary' => '调用该接口获取设备分发任务列表。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.serverError', 'errorMessage' => 'server hsf error please try later', 'description' => '后端HSF服务错误,请稍后重试'], + ['errorCode' => 'iot.dap.insight.queryTimeMoreThanQueryDays', 'errorMessage' => 'The query time range exceeded the allowed time range', 'description' => '查询的时间范围超出允许的时间范围'], + ['errorCode' => 'iot.dap.insight.processDownloadJobMoreConcurrenceCount', 'errorMessage' => 'the number of concurrent download tasks in progress exceeds the upper limit', 'description' => '当前运行中的下载任务超过规定的最大并发数'], + ['errorCode' => 'iot.dap.insight.downloadTimesUpperLimit', 'errorMessage' => 'the number of current job downloaded tasks exceeded the upper limit', 'description' => '当前任务当天下载次数超过上限'], + ['errorCode' => 'iot.dap.insight.downloadTaskNumUpperLimit', 'errorMessage' => 'the number of downloaded tasks exceeded the upper limit', 'description' => '当天运行的下载任务超过上限'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"no authorization.\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0643F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": -1,\\n \\"LongJobId\\": \\"62d949808bc742187xxxxxx\\",\\n \\"AsyncExecute\\": true,\\n \\"CsvUrl\\": \\"https://oss-xxxx-xxxx.xxxx......\\",\\n \\"CsvFileName\\": \\"test_download_file\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 200\\n \\n true\\n 62d949808bc742187xxxxxx\\n \\n -1\\n \\n C8E9E92F-ADD1-1434-BA90-E85F70F5C536\\n true\\n","errorExample":""}]', + 'title' => 'CreateDownloadDataJob', + 'summary' => '调用接口创建数据下载任务。', 'description' => '## 使用说明'."\n" ."\n" - .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" - .' '."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'- 该任务等同于在控制台创建的数据下载任务,用户可在对应数据表的导出管理页面查看此次下载任务的日志,并下载文件。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'- 通过该接口创建下载任务会增加[AMQP消息推送](~~143601~~),其中`consumerGroupId`请选用`dop_aliyun_group_name`,消息内容包含此次下载任务的执行状态,用户可根据此状态,配合[GetDownloadFile](~~445783~~)接口获取文件下载地址或查看下载任务的异常信息。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', + .'## 使用限制'."\n" + ."\n" + .'- 同一数据实例下,每次只能创建1个下载任务。待上一个任务执行完成后才能创建新的下载任务,否则会提示超过下载任务数限制异常。'."\n" + ."\n" + .'- 单次下载数据时间范围最多为3天。'."\n" + ."\n" + .'- 1天内只能创建3个下载任务,RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteDeviceDistributeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDownloadDataJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateEdgeDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '分发任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'UbmsMHmkqv0PiAG****010001', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'DriverName', + 'in' => 'query', + 'schema' => ['description' => '驱动名称。支持大小写英文字母、数字和下划线(_),必须以英文字母开头,不超过20个字符。', 'type' => 'string', 'required' => true, 'example' => 'MyLedDriver'], + ], + [ + 'name' => 'DriverProtocol', + 'in' => 'query', + 'schema' => ['description' => '驱动通信协议。取值如下:'."\n" + ."\n" + .'- modbus:Modbus通信协议。'."\n" + .'- opc-ua:OPC UA通信协议。'."\n" + .'- customize:自定义通信协议。', 'type' => 'string', 'required' => true, 'example' => 'customize'], + ], + [ + 'name' => 'Runtime', + 'in' => 'query', + 'schema' => ['description' => '驱动的语言类型。支持如下三种类型:'."\n" + ."\n" + .'- nodejs8:Node.js v8'."\n" + .'- python3:Python v3.5'."\n" + .'- c: C语言', 'type' => 'string', 'required' => true, 'example' => 'c'], + ], + [ + 'name' => 'CpuArch', + 'in' => 'query', + 'schema' => ['description' => '驱动适配的CPU架构。取值如下:'."\n" + ."\n" + .'- armv7'."\n" + .'- armv7-hf'."\n" + .'- aarch64'."\n" + .'- x86-64'."\n" + .'- x86', 'type' => 'string', 'required' => false, 'example' => 'x86-64'], + ], + [ + 'name' => 'IsBuiltIn', + 'in' => 'query', + 'schema' => ['description' => '是否内置驱动文件。'."\n" + ."\n" + .'- true:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" + .'- false:表示驱动为非内置驱动。 非内置驱动必须上传驱动代码。默认为false。'."\n" + ."\n" + .' > 非内置驱动必须上传驱动代码。如需通过API的方式上传驱动代码并获取阿里云对象存储(OSS)地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口创建预签名地址后,使用OSS SDK上传驱动文件。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -12209,144 +8002,126 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => 'fec565038d7544978d9aed5c1a******'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => '删除设备分发任务', - 'summary' => '调用该接口删除设备分发任务。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" - ."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n fec565038d7544978d9aed5c1a******\\r\\n BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建驱动', + 'summary' => '创建驱动 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListDistributedDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的设备数量。最大不超过200条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '200', - 'minimum' => '1', - 'example' => '5', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'mydevice', - ], + 'schema' => ['description' => '驱动版本号。必须是该驱动唯一的版本号,即一个驱动不可以设置两个相同的版本号。允许中文、英文字母、数字、下划线(_)、短划线(-)和英文句号(.),长度不超过64个字符。', 'type' => 'string', 'required' => true, 'example' => '1.2.0'], ], [ - 'name' => 'CurrentPage', + 'name' => 'EdgeVersion', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '驱动适配的边缘版本,即该驱动只能在该边缘版本及以上版本的网关中运行。例如2.4.0,表示在v2.4.0及以上的边缘版本中运行该驱动。', 'type' => 'string', 'required' => true, 'example' => '2.0.0'], ], [ - 'name' => 'TargetUid', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。', - 'type' => 'string', - 'required' => false, - 'example' => '198***', - ], + 'schema' => ['description' => '驱动描述。长度不超过256个字节。', 'type' => 'string', 'required' => false, 'example' => 'Led驱动'], ], [ - 'name' => 'SourceInstanceId', + 'name' => 'SourceConfig', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属的源实例ID。'."\n" - ."\n" - .'- 各地域公共实例ID:'."\n" - ."\n" - .' - 华东2(上海):iotx-oxssharez200。'."\n" - .' - 日本:iotx-oxssharez300。'."\n" - .' - 新加坡:iotx-oxssharez400。'."\n" - .' - 美国(硅谷):iotx-oxssharez500。'."\n" - .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" - .' - 德国(法兰克福):iotx-oxssharez700。'."\n" - ."\n" - .'- 企业版实例ID:'."\n" - .' '."\n" - .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" - .' '."\n" - .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot-060***', - ], + 'schema' => ['description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'` {"ossAddress":"http://***/driver_code.zip"}`'."\n" + ."\n" + .'其中,`ossAddress`为对象存储(OSS)访问地址,如需通过API的方式上传驱动代码并获取OSS地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => '{"ossAddress":"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30c******/ck3n3koe200003h6zf******.zip"}'], + ], + [ + 'name' => 'DriverConfig', + 'in' => 'query', + 'schema' => ['description' => '驱动配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"format":"JSON","content":"{}"}`'."\n" + ."\n" + .'参数说明如下所示。'."\n" + ."\n" + .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" + .'- content:配置内容。format为KV或JSON时,请填配置内容;format为FILE时,请填OSS地址。 '."\n" + ."\n" + .' > OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => '[{"format":"JSON","content":"{\\"defaultConfig\\":\\"this is default driver config demo\\"}"}]'], + ], + [ + 'name' => 'ContainerConfig', + 'in' => 'query', + 'schema' => ['description' => '容器配置。JSON格式字符串。更多信息,请参见本文下方**ContainerConfig**表格。', 'type' => 'string', 'required' => false, 'example' => '{"privileged":1,"devMappings":[],"volumeMappings":[],"hostNetworkMode":0,"portMappings":[]}'], + ], + [ + 'name' => 'ConfigCheckRule', + 'in' => 'query', + 'schema' => ['description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" + ."\n" + .'参数说明如下。'."\n" + ."\n" + .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" + ."\n" + .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。'."\n" + ."\n" + .'`required`为true表示参数不能为空;false表示参数允许为空。', 'type' => 'string', 'required' => false, 'example' => '{"deviceConfig":{"required":false},"driverConfig":{"required":false}}'], + ], + [ + 'name' => 'Argument', + 'in' => 'query', + 'schema' => ['description' => 'JVM(Java Virtual Machine)启动参数。', 'type' => 'string', 'required' => false, 'example' => '-XX:+PrintGCDetails'], ], ], 'responses' => [ @@ -12354,243 +8129,214 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备列表,详情请参见**Info**下信息。', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '返回的设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Info' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'items' => [ - 'description' => '设备的信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'mydevice', - ], - 'TargetAliyunId' => [ - 'description' => '接收设备的目标阿里云账号。', - 'type' => 'string', - 'example' => 'io****@example.com', - ], - 'SourceUid' => [ - 'description' => '分发设备的源阿里云账号ID。'."\n" - ."\n" - .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**TargetUid**值相同。', - 'type' => 'string', - 'example' => '198***', - ], - 'GmtModified' => [ - 'description' => '分发任务的修改时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942222', - ], - 'TargetInstanceId' => [ - 'description' => '设备的目标实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-09k***', - ], - 'TargetUid' => [ - 'description' => '接收设备的目标阿里云账号ID。'."\n" - ."\n" - .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**SourceUid**值相同。', - 'type' => 'string', - 'example' => '198***', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV***', - ], - 'TargetRegion' => [ - 'description' => '设备的目标地域。', - 'type' => 'string', - 'example' => 'cn-shenzhen', - ], - 'GmtCreate' => [ - 'description' => '设备所属分发任务的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942000', - ], - 'TargetInstanceName' => [ - 'description' => '设备的目标实例名称。', - 'type' => 'string', - 'example' => 'newinstance', - ], - 'SourceInstanceName' => [ - 'description' => '设备的源实例名称。', - 'type' => 'string', - 'example' => 'myproInstance', - ], - 'SourceRegion' => [ - 'description' => '设备所属的源地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'SourceInstanceId' => [ - 'description' => '设备的源实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '001ADA35-8846-4B6F-93E7-E5C076F8BB56'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"Info\\": {\\n \\"items\\": [\\n {\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"TargetAliyunId\\": \\"io****@example.com\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"GmtModified\\": 1581595942222,\\n \\"TargetInstanceId\\": \\"iot-cn-09k***\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"ProductKey\\": \\"a1BwAGV***\\",\\n \\"TargetRegion\\": \\"cn-shenzhen\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"TargetInstanceName\\": \\"newinstance\\",\\n \\"SourceInstanceName\\": \\"myproInstance\\",\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 10\\n \\n \\n cn-shenzhen\\n myproInstance\\n io****@example.com\\n 198***\\n 1581595942222\\n iot-cn-09k***\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n 1581595942000\\n newinstance\\n a1BwAGV***\\n mydevice\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询已分发的设备列表', - 'summary' => '调用该接口查询已分发的设备列表。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"001ADA35-8846-4B6F-93E7-E5C076F8BB56\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 001ADA35-8846-4B6F-93E7-E5C076F8BB56\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '新增驱动版本', + 'summary' => '新增驱动版本。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'- 多个阿里云账号同时调用该接口的QPS最大限制为200。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。'."\n" + ."\n\n" + .'**ContainerConfig参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| privileged | Integer | 否 | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" + .'| hostNetworkMode | Integer | 否 | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" + .'| portMappings | List | 否 | 网络端口映射。使用宿主机host模式时无须配置此项。最多可添加10个网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" + .'| devMappings | List | 否 | 设备映射。使用特权模式时无须配置此项。最多可添加10个设备映射。格式请参考本文下方devMappings表格。 |'."\n" + .'| volumeMappings | List | 否 | 卷映射。最多可添加10个卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" + ."\n\n" + .'**portMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPort | Integer | 是 | 宿主机端口。端⼝取值范围为1~65535。 |'."\n" + .'| containerPort | Integer | 是 | 容器内端口。端⼝取值范围为1~65535。 |'."\n" + .'| protocol | Integer | 是 | 协议类型。取值有tcp和udp两种。 |'."\n" + ."\n\n" + .'**devMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPath | String | 是 | 设备名称。需要以**/dev/**开头,长度为1~128个字符。 |'."\n" + .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" + .'| comment | String | 否 | 注释信息。长度为1~128个字符。 |'."\n" + ."\n\n" + .'**volumeMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPath | String | 是 | 源路径。长度为1~128个字符,不支持空格。 |'."\n" + .'| containerPath | String | 是 | 目的路径。须填写绝对路径,不支持根目录,以正斜杠(/)开头,长度为2~128个字符,不支持空格。 |'."\n" + .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListDistributedProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'PageSize', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的产品数量。最大不超过200条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '200', - 'minimum' => '1', - 'example' => '5', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SourceInstanceId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '产品所属的源实例ID。'."\n" - ."\n" - .'- 各地域公共实例ID:'."\n" - ."\n" - .' - 华东2(上海):iotx-oxssharez200。'."\n" - .' - 日本:iotx-oxssharez300。'."\n" - .' - 新加坡:iotx-oxssharez400。'."\n" - .' - 美国(硅谷):iotx-oxssharez500。'."\n" - .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" - .' - 德国(法兰克福):iotx-oxssharez700。'."\n" - ."\n" - .'- 查看企业版实例ID的步骤:'."\n" - .' '."\n" - .' 1. 登录[物联网平台控制台](https://iot.console.aliyun.com/),从顶部导航栏左上方的下拉菜单选择地域。'."\n" - .' '."\n" - .' 2. 在**实例概览**页面,找到目标实例,查看**ID**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot-060***', - ], + 'schema' => ['description' => '边缘实例名称。'."\n" + .'支持中文汉字、英文大小写、数字、下划线(_)和短划线(-),不超过20个字符(一个中文汉字算2个字符)。', 'type' => 'string', 'required' => true, 'example' => 'LinkIoTEdge_Node'], ], [ - 'name' => 'ProductKey', + 'name' => 'Tags', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例标签。每个标签由`key:value`组成,多个标签间以英文逗号隔开。如`k1:v1,k2:v2`。'."\n" + .'- 标签key限制如下: '."\n" + .' - 不可为空。'."\n" + .' - 在该边缘实例中唯一。'."\n" + .' - 仅支持英文大小写。'."\n" + .' - 不可超过20个字符。'."\n" + .'- 标签value限制如下:'."\n" + .' - 不可为空。'."\n" + .' - 支持中文、英文大小写、数字、下划线(_)和短划线(-)。'."\n" + .' - 不可超过20个字符(一个中文汉字算2个字符)。', 'type' => 'string', 'required' => false, 'example' => 'k1:v1,k2:v2'], ], [ - 'name' => 'TargetInstanceId', + 'name' => 'Spec', 'in' => 'query', + 'schema' => ['description' => '产品规格。'."\n" + .'- 10:轻量版。'."\n" + .'- 20:标准版。'."\n" + .'- 30:专业版。'."\n" + ."\n" + .'默认值为20(标准版)。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '产品分发的目标实例ID。实例ID详情,请参见参数**SourceInstanceId**描述。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-6ja***', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'InstanceId' => ['description' => '边缘实例ID。', 'type' => 'string', 'example' => 'F3APY0tPLhmgGtx0****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"InstanceId\\": \\"F3APY0tPLhmgGtx0****\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 28D159F4-980F-423D-95F0-F705E9DFC016\\r\\n F3APY0tPLhmgGtx0****\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建边缘实例', + 'summary' => '创建边缘实例。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'TargetUid', - 'in' => 'query', - 'schema' => [ - 'description' => '产品所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。', - 'type' => 'string', - 'required' => false, - 'example' => '198***', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'CreateEdgeInstanceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'CurrentPage', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], + ], + [ + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], + ], + [ + 'name' => 'ChannelName', + 'in' => 'query', + 'schema' => ['description' => '驱动通道名称。支持中文、英文大小写字母、数字和下划线(_),长度限制1~30个字符。', 'type' => 'string', 'required' => true, 'example' => 'le_name0'], + ], + [ + 'name' => 'Configs', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '配置列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', 'type' => 'string', 'required' => false, 'example' => 'key1'], + 'Format' => ['description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'required' => true, 'example' => 'JSON'], + 'Content' => ['description' => '配置内容。'."\n" + ."\n" + .'- **Configs.N.Format**参数的值为KV或JSON时,此处请填写配置内容。配置内容格式,请参见[驱动通道配置说明](~~172321~~)。'."\n" + ."\n" + .'- **Configs.N.Format**参数的值为FILE时,此处请填写阿里云对象存储OSS地址。OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '{"protocol":"TCP", "ip":"1.2.3.4", "port":1}'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'minimum' => '1', - 'example' => '1', + 'maxItems' => 21, ], ], ], @@ -12599,168 +8345,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的产品列表,详情请参见**Info**下信息。', - 'type' => 'object', - 'properties' => [ - 'Total' => [ - 'description' => '返回的产品总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Info' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'items' => [ - 'description' => '产品的信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TargetRegion' => [ - 'description' => '产品分发的目标地域。', - 'type' => 'string', - 'example' => 'cn-shenzhen', - ], - 'ProductKey' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'TargetUid' => [ - 'description' => '接收产品的目标阿里云账号ID。'."\n" - ."\n" - .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**SourceUid**值相同。', - 'type' => 'string', - 'example' => '198***', - ], - 'TargetInstanceName' => [ - 'description' => '产品分发的目标实例名称。', - 'type' => 'string', - 'example' => 'newinstance', - ], - 'TargetAliyunId' => [ - 'description' => '接收产品的目标阿里云账号。', - 'type' => 'string', - 'example' => 'io****@example.com', - ], - 'GmtCreate' => [ - 'description' => '产品所属分发任务的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581595942', - ], - 'SourceInstanceName' => [ - 'description' => '产品的源实例名称。', - 'type' => 'string', - 'example' => 'myproInstance', - ], - 'SourceUid' => [ - 'description' => '分发产品的源阿里云账号ID。目前仅支持同一阿里云账号下跨地域和跨实例分发产品,此参数与**TargetUid**值相同。', - 'type' => 'string', - 'example' => '198***', - ], - 'TargetInstanceId' => [ - 'description' => '产品分发的目标实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-09k***', - ], - 'SourceRegion' => [ - 'description' => '产品所属的源地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - 'SourceInstanceId' => [ - 'description' => '产品的源实例ID。', - 'type' => 'string', - 'example' => 'iot-cn-6ja***', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'Data' => ['description' => '调用成功时返回的驱动通道ID。', 'type' => 'string', 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B34673EA-ECE7-44F5-BF01-40B5FAE633B6'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"Info\\": {\\n \\"items\\": [\\n {\\n \\"TargetRegion\\": \\"cn-shenzhen\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"TargetInstanceName\\": \\"newinstance\\",\\n \\"TargetAliyunId\\": \\"io****@example.com\\",\\n \\"GmtCreate\\": 1581595942,\\n \\"SourceInstanceName\\": \\"myproInstance\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"TargetInstanceId\\": \\"iot-cn-09k***\\",\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 10\\n \\n \\n cn-shenzhen\\n myproInstance\\n io****@example.com\\n 1581595942\\n 198***\\n newinstance\\n iot-cn-09k***\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n a1BwAGV****\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '获取分布式产品列表', - 'summary' => '调用该接口查询已分发的产品列表。', - 'description' => '## 使用说明'."\n" - .'调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Data\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B34673EA-ECE7-44F5-BF01-40B5FAE633B6\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B34673EA-ECE7-44F5-BF01-40B5FAE633B6\\r\\n BE0BD49EF5EF4D119D09CC1B2******\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateEdgeInstanceChannel', + 'summary' => '调用该接口创建边缘实例中的驱动通道。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceProvisioning' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateEdgeInstanceDeployment' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1ji*****', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'testDevcieBwT3Un', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'PgEfYupSn6Pvhfkx****'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => '部署单类型。'."\n" + ."\n" + .'- deploy:部署。'."\n" + .'- reset:重置。', 'type' => 'string', 'required' => true, 'example' => 'deploy'], ], ], 'responses' => [ @@ -12768,384 +8417,128 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '- 调用成功时,返回**success**。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功后,返回的设备分发结果。', - 'type' => 'object', - 'properties' => [ - 'TargetRegion' => [ - 'description' => '设备所属的目标地域。', - 'type' => 'string', - 'example' => 'ap-southeast-1', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1ji*****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'testDevcieBwT3Un', - ], - 'GmtCreate' => [ - 'description' => '设备所属分发任务的创建时间(毫秒级时间戳)。'."\n" - ."\n" - .'如果设备未分发,则返回当前服务器时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1676297683000', - ], - 'TargetIotInstanceId' => [ - 'description' => '设备所属的目标实例ID。', - 'type' => 'string', - 'example' => 'iot-09k****', - ], - 'SourceIotInstanceId' => [ - 'description' => '设备所属的源实例ID。', - 'type' => 'string', - 'example' => 'iot-6ja****', - ], - 'AliyunUid' => [ - 'description' => '设备当前所属阿里云账号。', - 'type' => 'string', - 'example' => 'io****@example.com', - ], - 'GmtModified' => [ - 'description' => '设备所属分发任务的修改时间(毫秒级时间戳)。'."\n" - ."\n" - .'如果设备未分发,则返回当前服务器时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1676297683000', - ], - 'SourceRegion' => [ - 'description' => '设备所属的源地域。', - 'type' => 'string', - 'example' => 'cn-shanghai', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'DeploymentId' => ['description' => '调用成功时,返回的部署任务单ID。', 'type' => 'string', 'example' => '38d544b1222d45b4b425240167bf****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C8293A57-6BBC-42FB-B093-BF304D5BF09C'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.common.APINotSupportedInInstance', - 'errorMessage' => 'This API operation is not supported in this instance.', - ], - [ - 'errorCode' => 'iot.common.RamActionPermissionDeny', - 'errorMessage' => 'You do not have the RAM permission.', - ], - [ - 'errorCode' => 'iot.common.InvalidTenant', - 'errorMessage' => 'The Invalid tenant.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"DeploymentId\\": \\"38d544b1222d45b4b425240167bf****\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C8293A57-6BBC-42FB-B093-BF304D5BF09C\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C8293A57-6BBC-42FB-B093-BF304D5BF09C\\r\\n 38d544b1222d45b4b425240167bf****\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建边缘实例部署单', + 'summary' => '部署边缘实例,创建边缘实例部署单。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TargetRegion\\": \\"ap-southeast-1\\",\\n \\"ProductKey\\": \\"a1ji*****\\",\\n \\"DeviceName\\": \\"testDevcieBwT3Un\\",\\n \\"GmtCreate\\": 1676297683000,\\n \\"TargetIotInstanceId\\": \\"iot-09k****\\",\\n \\"SourceIotInstanceId\\": \\"iot-6ja****\\",\\n \\"AliyunUid\\": \\"io****@example.com\\",\\n \\"GmtModified\\": 1676297683000,\\n \\"SourceRegion\\": \\"cn-shanghai\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n ap-southeast-1\\n 1676297683000\\n iot-09k****\\n io****@example.com\\n 1676297683000\\n iot-6ja****\\n cn-shanghai\\n a1ji*****\\n testDevcieBwT3Un\\n\\nsuccess\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryDeviceProvisioning', - 'summary' => '调用该接口查询指定设备的分发结果。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'CreateDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateEdgeInstanceMessageRouting' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定设备的设备ID。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv***00100', - ], + 'schema' => ['description' => '物联网平台的实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Description', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '安全隧道的描述信息。内容长度不超过1024个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '用于远程登录到摄像头。', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => 'nF9oXo7kLRWQ********'], ], [ - 'name' => 'Udi', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '推送给设备的自定义信息,数据格式自定义,长度不超过4096个字符。'."\n" - ."\n" - .'会在通知设备创建安全隧道时发送给设备。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'reboot', - ], + 'schema' => ['description' => '消息路由名称。长度限制为4~32个字符,汉字和全角符号算2个字符。', 'type' => 'string', 'required' => false, 'example' => 'le_lite2'], ], [ - 'name' => 'ProductKey', + 'name' => 'TopicFilter', 'in' => 'query', - 'schema' => [ - 'description' => '指定设备所属产品的**ProductKey**。'."\n" - ."\n" - .'>如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV***', - ], + 'schema' => ['description' => '消息过滤条件,取值如下:'."\n" + .'- 具体消息Topic:表示来自消息源,且符合该消息Topic的消息,会被传给消息接收者。Topic相关信息,请参见[什么是Topic](~~73731~~)。'."\n" + .'- **all**:表示来自消息源的所有消息,都会被传给消息接收者。', 'type' => 'string', 'required' => false, 'example' => 'all'], ], [ - 'name' => 'DeviceName', + 'name' => 'SourceType', 'in' => 'query', - 'schema' => [ - 'description' => '指定设备的设备名称。'."\n" - .'>如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '消息来源,取值如下:'."\n" + .'- **device**:表示消息由设备发出。'."\n" + .'- **function**:表示消息由边缘应用发出。'."\n" + .'- **IotHub**:表示消息由云端发出。', 'type' => 'string', 'required' => true, 'example' => 'device'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'SourceData', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-***-v64***', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => ' iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回安全隧道的基本信息。', - 'type' => 'object', - 'properties' => [ - 'TunnelId' => [ - 'description' => '安全隧道ID。', - 'type' => 'string', - 'example' => 'd4098041-***', - ], - 'SourceURI' => [ - 'description' => '通过安全隧道访问对应设备,建立WebSocket的URL。', - 'type' => 'string', - 'example' => 'wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source', - ], - 'SourceAccessToken' => [ - 'description' => '通过安全隧道访问对应设备的认证Token,用于WebSocket建连的认证阶段,详细说明,请参见[安全隧道使用流程](~~312333~~)。', - 'type' => 'string', - 'example' => '521c43e4-a6da-***', - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.securetunnel.ParamInvalid', - 'errorMessage' => 'The parameter is invalid.', - ], - [ - 'errorCode' => 'iot.securetunnel.DescriptionTooLong', - 'errorMessage' => 'The description of the device tunnel has exceeded the maximum length.', - ], - [ - 'errorCode' => 'iot.securetunnel.UdiTooLong', - 'errorMessage' => 'The Udi of the device tunnel has exceeded the maximum length.', - ], - [ - 'errorCode' => 'iot.securetunnel.TunnelAmountExceedByDevice', - 'errorMessage' => 'The tunnel amount of the device has exceeded the limit.', - ], - [ - 'errorCode' => 'iot.securetunnel.TunnelAmountExceedByInstance', - 'errorMessage' => 'The tunnel amount for the instance has exceeded the limit.', - ], - [ - 'errorCode' => 'iot.securetunnel.DeviceNotExist', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.securetunnel.DeviceNotOnline', - 'errorMessage' => 'The device must be online.', - ], - [ - 'errorCode' => 'iot.securetunnel.DeviceNotSpecified', - 'errorMessage' => 'The device is not specified.', - ], - [ - 'errorCode' => 'iot.securetunnel.InstanceIdMismatch', - 'errorMessage' => 'The instanceId does not match the parameter.', - ], - [ - 'errorCode' => 'iot.securetunnel.TunnelQuotaExhausted', - 'errorMessage' => 'The quota for secure tunnel has been exhausted.', - ], + 'schema' => ['description' => '消息来源的数据,取值分如下几种情况:'."\n" + ."\n" + .'- **SourceType**取值为**device**时: '."\n" + .' - 如果由指定产品下的指定设备发送消息,则此处取值格式为`/{Your_ProductKey}/{Your_DeviceName}`。'."\n" + ."\n" + .' > 请将{Your_ProductKey}和{Your_DeviceName}替换为您实际设备的ProductKey和DeviceName。'."\n" + ."\n" + .' - 如果由指定产品下的所有设备发送消息,则此处取值格式为`/{Your_ProductKey}/+`。'."\n" + ."\n" + .' > 请将{Your_ProductKey}替换为您实际设备的ProductKey。'."\n" + ."\n" + .' - 如果由边缘实例中所有产品下的所有设备发送消息,则此处取值为`#`。'."\n" + ."\n" + .'- **SourceType**取值为**function**:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" + ."\n" + .'- **SourceType**取值为**IotHub**时:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '#'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"\\\\tiot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TunnelId\\": \\"d4098041-***\\",\\n \\"SourceURI\\": \\"wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source\\",\\n \\"SourceAccessToken\\": \\"521c43e4-a6da-***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n wss://secure-tunnel-ws.iot.aliyun.test/tunnel/1834248a-37b7-4fd2-***/source\\n 521c43e4-a6da-***\\n d4098041-***\\n\\ntrue\\n","errorExample":""}]', - 'title' => '创建设备安全隧道', - 'summary' => '为指定设备创建安全隧道。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用本接口创建安全隧道成功后,该安全隧道状态默认为**已打开**。'."\n" - .'- 创建24小时后,安全隧道状态自动更新为**已关闭**。'."\n" - .'- 创建30天后,安全隧道会被系统自动删除。'."\n" - ."\n" - .'## 使用限制'."\n" - ."\n" - .'- 单个设备最多包含10个安全隧道。'."\n" - .'- 单个实例下最多包含1,000个安全隧道。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CloseDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'TargetType', + 'in' => 'query', + 'schema' => ['description' => '消息接收者,取值分如下几种情况:'."\n" + .'- **SourceType**取值为**device**时:该参数可取的值为**function**或**IotHub**,表示由设备发出的消息,传给边缘应用或云端。'."\n" + .'- **SourceType**取值为**function**时:该参数可取的值为**function**或**IotHub**,表示由边缘应用发出的消息,传给另一个边缘应用或云端。'."\n" + .'- **SourceType**取值为**IotHub**时:该参数可取的值为**function**,表示由云端发出的消息,传给边缘应用。', 'type' => 'string', 'required' => true, 'example' => 'function'], ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'TunnelId', + 'name' => 'TargetData', 'in' => 'query', - 'schema' => [ - 'description' => '要关闭的安全隧道的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'd4098041-a560-***', - ], + 'schema' => ['description' => '消息接收者的数据,取值分如下几种情况:'."\n" + .'- **TargetType**取值为**function**时:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" + .'- **TargetType**取值为**IotHub**时:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '58c46749ac934db3925fe5********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'TargetIotHubQos', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-***-v6***', - ], + 'schema' => ['description' => '服务级别。取值如下:'."\n" + ."\n" + .'- **0**:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" + ."\n" + .'- **1**:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。'."\n" + ."\n" + .'> 当**TargetType**为**IoTHub**时,必须传入此参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], ], 'responses' => [ @@ -13153,406 +8546,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AC786033-00C5-4FD6-8435-F2807740D9FA'], + 'RouteId' => ['description' => '消息路由的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '123456'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.securetunnel.TunnelNotExist', - 'errorMessage' => 'The device tunnel does not exist.', - ], - [ - 'errorCode' => 'iot.securetunnel.InstanceIdMismatch', - 'errorMessage' => 'The instanceId does not match the parameter.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => '关闭状态为已打开的安全隧道', - 'summary' => '安全隧道在创建并使用完毕后,可以关闭状态为已打开的安全隧道。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AC786033-00C5-4FD6-8435-F2807740D9FA\\",\\n \\"RouteId\\": 123456,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\r\\n 123456\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateEdgeInstanceMessageRouting', + 'summary' => '调用该接口,为指定的边缘实例创建消息路由。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'TunnelId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的安全隧道的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'd4098041-a560-***', - ], - ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-***-v6***', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.securetunnel.InstanceIdMismatch', - 'errorMessage' => 'The instanceId does not match the parameter.', - ], - [ - 'errorCode' => 'iot.securetunnel.TunnelNotExist', - 'errorMessage' => 'The device tunnel does not exist.', - ], - [ - 'errorCode' => 'iot.securetunnel.IllegalState', - 'errorMessage' => 'The tunnel state does not meet the requirement.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => '删除设备安全隧道', - 'summary' => '已经关闭的安全隧道,可以调用该PI进行删除。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'QueryDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateEdgeOssPreSignedAddress' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'TunnelId', + 'name' => 'ResourceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询安全隧道的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'd4098041-a560-***', - ], + 'schema' => ['description' => '资源ID。目前仅支持驱动资源,因此此处为驱动ID。'."\n" + ."\n" + .'可在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取驱动ID。您也可以调用[QueryEdgeDriver](~~155776~~)接口获取驱动ID。', 'type' => 'string', 'required' => true, 'example' => 'df9b9f441*********4c90d0c21d14'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'FileName', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-***-v6***', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回安全隧道的信息。', - 'type' => 'object', - 'properties' => [ - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'UtcClosed' => [ - 'description' => '安全隧道关闭的UTC时间。', - 'type' => 'string', - 'example' => '2021-09-22T12:44:12.000Z', - ], - 'DeviceConnState' => [ - 'description' => '设备端连接状态。'."\n" - ."\n" - .'- **CONNECTED**:已连接。'."\n" - .'- **DISCONNECTED**:未连接。', - 'type' => 'string', - 'example' => 'CONNECTED', - ], - 'UtcCreated' => [ - 'description' => '安全隧道创建的UTC时间。', - 'type' => 'string', - 'example' => '2021-09-22T12:44:12.000Z', - ], - 'SourceConnState' => [ - 'description' => '访问端连接状态。'."\n" - ."\n" - .'- **CONNECTED**:已连接。'."\n" - .'- **DISCONNECTED**:未连接。', - 'type' => 'string', - 'example' => 'DISCONNECTED', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1rYuVF***', - ], - 'Description' => [ - 'description' => '安全隧道的描述信息。', - 'type' => 'string', - 'example' => '用于远程登录到摄像头。', - ], - 'TunnelId' => [ - 'description' => '安全隧道的ID。', - 'type' => 'string', - 'example' => ' d4098041-a560-***', - ], - 'TunnelState' => [ - 'description' => '安全隧道的状态。'."\n" - ."\n" - .'- **OPEN**:已打开,支持通过安全隧道访问对应设备。'."\n" - .'- **CLOSED**:已关闭,不支持通过安全隧道访问对应设备了。', - 'type' => 'string', - 'example' => 'OPEN', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv***00100', - ], - 'Udi' => [ - 'description' => '推送给设备的自定义信息。', - 'type' => 'string', - 'example' => 'reboot', - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.securetunnel.InstanceIdMismatch', - 'errorMessage' => 'The instanceId does not match the parameter.', - ], - [ - 'errorCode' => 'iot.securetunnel.TunnelNotExist', - 'errorMessage' => 'The device tunnel does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcClosed\\": \\"2021-09-22T12:44:12.000Z\\",\\n \\"DeviceConnState\\": \\"CONNECTED\\",\\n \\"UtcCreated\\": \\"2021-09-22T12:44:12.000Z\\",\\n \\"SourceConnState\\": \\"DISCONNECTED\\",\\n \\"ProductKey\\": \\"a1rYuVF***\\",\\n \\"Description\\": \\"用于远程登录到摄像头。\\",\\n \\"TunnelId\\": \\" d4098041-a560-***\\",\\n \\"TunnelState\\": \\"OPEN\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv***00100\\",\\n \\"Udi\\": \\"reboot\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n Q7uOhVRdZRRlDnTLv***00100\\n 用于远程登录到摄像头。\\n 2021-09-22T12:44:12.000Z\\n 2021-09-22T12:44:12.000Z\\n CONNECTED\\n OPEN\\n DISCONNECTED\\n reboot\\n d4098041-a560-***\\n a1rYuVF***\\n test\\n light\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询单个安全隧道的详细信息', - 'summary' => '查询单个安全隧道的详细信息,包括安全隧道的所属设备、创建时间、ID、连接状态等。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateDeviceGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['description' => '文件名,格式为`<文件名>.<后缀>`。', 'type' => 'string', 'required' => true, 'example' => 'testfile.zip'], ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SuperGroupId', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '父组ID。'."\n" - ."\n" - .'若要创建的是一级分组,则不传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'SuperGroupId1', - ], + 'schema' => ['description' => '文件内容类型。有如下三种类型:'."\n" + ."\n" + .'- DRIVER_VERSION_CONTENT:驱动某一版本的代码。'."\n" + .'- DRIVER_VERSION_DEFAULT_CONFIG:驱动某一版本的默认配置。'."\n" + .'- INSTANCE_DRIVER_VERSION_CONFIG:边缘实例驱动某一版本的配置。', 'type' => 'string', 'required' => true, 'example' => 'DRIVER_VERSION_CONTENT'], ], [ - 'name' => 'GroupDesc', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '分组描述。长度不超过100个字符,一个中文汉字占一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'Group test', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。'."\n" + ."\n" + .'> 当**Type**参数取值为**INSTANCE_DRIVER_VERSION_CONFIG**时,此项不可为空。', 'type' => 'string', 'required' => false, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'GroupName', + 'name' => 'ResourceVersion', 'in' => 'query', - 'schema' => [ - 'description' => '分组名称。名称长度为4~30个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字占两个字符。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '资源版本。目前仅支持驱动资源,因此此处为驱动版本。', 'type' => 'string', 'required' => true, 'example' => '2.0.0'], ], ], 'responses' => [ @@ -13560,357 +8642,128 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0634D', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '91E2BFA2-ECD7-4E11-B36B-66BCC4773922'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的分组信息。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'GroupId' => [ - 'description' => '分组ID,系统为分组生成的全局唯一标识符。', - 'type' => 'string', - 'example' => 'HtMLECKbdJQL****', - ], - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'Group test', - ], - 'UtcCreate' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2018-10-17T11:19:31.000Z', - ], + 'OssAddress' => ['description' => 'OSS地址。', 'type' => 'string', 'example' => 'http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip'], + 'OssPreSignedAddress' => ['description' => 'OSS预签名地址。更多信息,请参见[OSS文档](~~32016~~)。', 'type' => 'string', 'example' => 'http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires\\u003d1581586402\\u0026OSSAccessKeyId\\u003daS4MT0IYrP******\\u0026Signature\\u003dIUUjZ881H3rUoCOwjMXPmGbw******'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"HtMLECKbdJQL****\\",\\n \\"GroupName\\": \\"grouptest\\",\\n \\"GroupDesc\\": \\"Group test\\",\\n \\"UtcCreate\\": \\"2018-10-17T11:19:31.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n Group test\\r\\n grouptest\\r\\n 2018-10-17T11:19:31.000Z\\r\\n HtMLECKbdJQL****\\r\\n \\r\\n 4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建设备分组', - 'summary' => '新建设备分组。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"91E2BFA2-ECD7-4E11-B36B-66BCC4773922\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"OssAddress\\": \\"http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip\\",\\n \\"OssPreSignedAddress\\": \\"http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires\\\\\\\\u003d1581586402\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYrP******\\\\\\\\u0026Signature\\\\\\\\u003dIUUjZ881H3rUoCOwjMXPmGbw******\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 91E2BFA2-ECD7-4E11-B36B-66BCC4773922\\r\\n \\r\\n http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires=1581586402&OSSAccessKeyId=aS4MT0IYrP******&Signature=IUUjZ881H3rUoCOwjMXPmGbw******\\r\\n http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建对象存储OSS预签名地址', + 'summary' => '创建对象存储 OSS 预签名地址。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CreateDeviceDynamicGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'GroupDesc', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '分组描述。长度不超过100个字符,一个中文占一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '任务的描述信息。长度不超过100个字符。', 'type' => 'string', 'required' => false, 'example' => 'jobDescription'], ], [ - 'name' => 'GroupName', + 'name' => 'JobDocument', 'in' => 'query', - 'schema' => [ - 'description' => '分组名称。名称长度为4~30个字符,可包含中文、英文字母、数字和下划线(_)。一个中文占两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'grouptest', - ], + 'schema' => ['description' => '下发给设备的任务执行规则文件。数据格式为JSON,长度不超过65536个字符。'."\n" + ."\n" + .'更多信息,请参见下文“JobDocument定义”。', 'type' => 'string', 'required' => true, 'example' => '{ "serviceIdentifier": "test_service", "params": { "key1": "value1", "key2": "value2" } } '], ], [ - 'name' => 'DynamicGroupExpression', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '动态分组规则,用于查询并动态匹配设备到分组。规则表达式编写方法,请参见[类SQL语法说明](~~185713~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'product_key = "a1***" and name LIKE "test%"', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0634D', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的分组信息。', - 'type' => 'object', - 'properties' => [ - 'DynamicGroupExpression' => [ - 'description' => '动态分组规则。', - 'type' => 'string', - 'example' => 'product_key = "a1***" and name LIKE "test%"', - ], - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'grouptest', - ], - 'GroupId' => [ - 'description' => '分组ID,系统为分组生成的全局唯一标识符。', - 'type' => 'string', - 'example' => 'HtMLECKbdJQL***', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'UtcCreate' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2021-10-17T11:19:31.000Z', - ], - ], - ], - ], - ], + 'schema' => ['description' => '任务类型。取值:'."\n" + .'- **INVOKE_SERVICE**:设备批量服务调用任务。'."\n" + .'- **SET_PROPERTY**:设备批量属性设置任务。'."\n" + .'- **PUB**:Pub批量消息推送任务。'."\n" + .'- **CUSTOM_JOB**:自定义任务。'."\n", 'type' => 'string', 'required' => true, 'example' => 'INVOKE_SERVICE'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.group.DynamicGroupMatchedDeviceCountExceedMax', - 'errorMessage' => 'The maximum number of device matched by dynamic group condition is exceeded.', - ], - [ - 'errorCode' => 'iot.group.GroupCountExceedMax', - 'errorMessage' => 'The number of device groups exceeds the limit.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLError', - 'errorMessage' => 'The SQL statement is invalid.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLOffsetError', - 'errorMessage' => 'The SQL offset is invalid.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLFieldError', - 'errorMessage' => 'The SQL statement contains invalid field names.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLConditionError', - 'errorMessage' => 'The SQL statement contains too many conditions.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLOrderError', - 'errorMessage' => 'The SQL statement contains invalid ORDER BY conditions.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLOperatorTypeError', - 'errorMessage' => 'The operator and data type in the SQL statement do not match.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLParamError', - 'errorMessage' => 'The SQL syntax is unsupported.', - ], - [ - 'errorCode' => 'iot.devicesearch.InvalidSQLIdentfierError', - 'errorMessage' => 'The TSL identifier is not configured.', - ], - [ - 'errorCode' => 'iot.group.InvalidGroupName', - 'errorMessage' => 'The specified device group name is invalid.', - ], - [ - 'errorCode' => 'iot.group.LongGroupDescError', - 'errorMessage' => 'The group description exceeds the length limit.', - ], - [ - 'errorCode' => 'iot.group.SuperGroupUnsupport', - 'errorMessage' => 'The super groups do not support subGroups.', - ], - [ - 'errorCode' => 'iot.common.APINotSupportedInInstance', - 'errorMessage' => 'This API operation is not supported in this instance.', - ], - [ - 'errorCode' => 'iot.group.GroupNameExisted', - 'errorMessage' => 'The specified device group name already exists.', - ], - [ - 'errorCode' => 'iot.group.CreateGroupFailed', - 'errorMessage' => 'An error occurred while creating a device group.', - ], - [ - 'errorCode' => 'iot.device.RegionNotSupportDynamicGroup', - 'errorMessage' => 'The region does not currently support the dynamic group feature.', - ], - [ - 'errorCode' => 'MissingDynamicGroupExpression', - 'errorMessage' => 'DynamicGroupExpression is mandatory for this action.', - ], - [ - 'errorCode' => 'iot.databus.SearchIndexConfigNotFound', - 'errorMessage' => 'The search index config is not found.', - ], + [ + 'name' => 'JobFile', + 'in' => 'query', + 'style' => 'json', + 'schema' => ['description' => '自定义任务中下发给设备的文件。'."\n" + ."\n" + .'仅**Type**为**CUSTOM_JOB**时,可传入此参数,且为非必传参数。'."\n" + ."\n" + .'更多信息,请参见下文“JobFile定义”。'."\n" + ."\n", 'type' => 'object', 'required' => false, 'example' => '{ "fileKey":"5cc34***f9/tazJ***s", "signMethod":"Sha256", "sign":"***" }'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DynamicGroupExpression\\": \\"product_key = \\\\\\"a1***\\\\\\" and name LIKE \\\\\\"test%\\\\\\"\\",\\n \\"GroupName\\": \\"grouptest\\",\\n \\"GroupId\\": \\"HtMLECKbdJQL***\\",\\n \\"GroupDesc\\": \\"test\\",\\n \\"UtcCreate\\": \\"2021-10-17T11:19:31.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n4D6D7F71-1C94-4160-8511-EFF4B8F0634D\\n\\n grouptest\\n 2021-10-17T11:19:31.000Z\\n test\\n product_key = \\"a1***\\" and name LIKE \\"test%\\"\\n HtMLECKbdJQL***\\n\\ntrue\\n","errorExample":""}]', - 'title' => '创建动态分组', - 'summary' => '创建动态分组,将符合动态分组条件的设备加入分组。', - 'description' => '## 限制说明'."\n" - ."\n" - .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" - ."\n" - .'- 单个阿里云账号下最多可创建10个动态分组。'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateDeviceGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'JobName', + 'in' => 'query', + 'schema' => ['description' => '任务名称。支持中文、英文字母、数字和下划线(_),长度范围为4~30个字符。', 'type' => 'string', 'required' => true, 'example' => 'oneJob'], ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'TimeoutConfig', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'style' => 'json', + 'schema' => ['description' => '任务下作业执行的超时配置,数据格式为JSON,长度不超过8192个字符。'."\n" + ."\n" + .'更多信息,请参见下文“TimeoutConfig定义”。', 'type' => 'object', 'required' => false, 'example' => '{"inProgressTimeoutInMinutes": 60}'], ], [ - 'name' => 'GroupId', + 'name' => 'RolloutConfig', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID。分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'W16X8Tvdosec****', - ], + 'style' => 'json', + 'schema' => ['description' => '任务下作业推送速率配置,数据格式为JSON,长度不超过8192个字符。'."\n" + ."\n" + .'更多信息,请参见下文“RolloutConfig定义”。', 'type' => 'object', 'required' => false, 'example' => '{"maximumPerMinute": 1000}'], ], [ - 'name' => 'GroupDesc', + 'name' => 'TargetConfig', 'in' => 'query', - 'schema' => [ - 'description' => '修改后的分组描述。长度不超过100个字符,一个中文汉字占一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test2', - ], + 'style' => 'json', + 'schema' => ['description' => '设备任务的目标设备配置。'."\n" + ."\n" + .'更多信息,请参见下文“TargetConfig”。', 'type' => 'object', 'required' => true, 'example' => '{"targetType":"PRODUCT_KEY","targetProduct":"a1j***3d"}'], ], [ - 'name' => 'GroupType', + 'name' => 'ScheduledTime', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型。'."\n" - ."\n" - .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。', - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], + 'schema' => ['description' => '任务调度时间的毫秒数。取值范围:当前时间的10分钟后到7天之间。'."\n" + ."\n" + .'- 不传入此参数:任务创建后,立即初始化并调度执行。'."\n" + .'- 传入此参数:任务创建后,先初始化,等到设置的调度时间后,才开始调度执行。 ', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1557062301656'], ], ], 'responses' => [ @@ -13918,174 +8771,233 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'JobId' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => 'XUbmsMHmkqv0PiAG****010001'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改分组信息', - 'summary' => '调用该接口修改分组信息。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"XUbmsMHmkqv0PiAG****010001\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nXUbmsMHmkqv0PiAG****010001\\ntrue\\n","errorExample":""}]', + 'title' => '创建任务', + 'summary' => '调用该接口创建设备任务。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteDeviceGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '**TargetConfig定义**'."\n" + ."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|TargetType|String|目标设备的配置类型,可选值:
**DEVICE\\_LIST**,表示设备列表。
**GROUP\\_ID**,表示设备分组ID。
**PRODUCT\\_KEY**,表示设备所属产品的**ProductKey**。|'."\n" + .'|TargetDevices|List|设备任务的目标设备。仅**TargetType**为**DEVICE\\_LIST**时,传入此参数。
此参数最多传入200个设备。
更多信息,请参见下文“TargetDevice定义”。|'."\n" + .'|TargetGroup|String|设备任务的目标设备,所属设备分组的标识符(GroupID)。仅**TargetType**为**GROUP\\_ID**时,传入此参数。
不支持设置为设备动态分组的ID。
此设备分组中最多包含10万个设备。|'."\n" + .'|TargetProduct|String|设备任务的目标设备,所属产品的**ProductKey**。仅**TargetType**为**PRODUCT\\_KEY**时,传入此参数。
此产品下最多包含10万个设备。|'."\n" + ."\n" + .'**TargetDevice定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|IotId|String|目标设备的设备ID。|'."\n" + .'|ProductKey|String|目标设备所属产品的**ProductKey**。
如果传入该参数,需同时传入**DeviceName**。|'."\n" + .'|DeviceName|String|目标设备名称。
如果传入该参数,需同时传入**ProductKey**。|'."\n" + ."\n" + .'示例1'."\n" + .'```'."\n" + .'{'."\n" + .' "TargetDevices":'."\n" + .' ['."\n" + .' {'."\n" + .' "IotId":"OPx***00101",'."\n" + .' "ProductKey":"a1A***n",'."\n" + .' "DeviceName":"devicenew"'."\n" + .' }'."\n" + .' ],'."\n" + .' "TargetType":"DEVICE_LIST"'."\n" + .'}'."\n" + .'```'."\n" + .'示例2'."\n" + .'```'."\n" + .'{'."\n" + .' "targetGroup":"rY2***01",'."\n" + .' "targetType":"GROUP_ID"'."\n" + .'}'."\n" + .'```'."\n" + .'示例3'."\n" + .'```'."\n" + .'{'."\n" + .' "targetType":"PRODUCT_KEY",'."\n" + .' "targetProduct":"a1j***3d"'."\n" + .'}'."\n" + .'```'."\n" + ."\n\n" + .'**RolloutConfig定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|maximumPerMinute|Integer|任务下每分钟推送的作业数量。默认值是1000。取值范围为50~1000。|'."\n" + .'|messageQoS|String|发送消息类型,仅对自定义任务和Pub批量消息推送任务生效。可取值:
**QoS0**,表示最多发送一次。
**QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "maximumPerMinute": 1000,'."\n" + .' "messageQoS":"QoS1"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**TimeoutConfig定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|inProgressTimeoutInMinutes|Integer|任务下作业执行的超时时间,单位为分钟。
该参数仅对自定义任务生效。
从任务开始执行(状态更新为**IN\\_PROGRESS**)时计算,如果超过了超时时间,任务下作业仍未执行完成,将被自动设置为TIMED\\_OUT状态。
取值范围:
**INVOKE\\_SERVICE**类型任务:最大值为5,最小值为1,默认值为1。
**SET\\_PROPERTY**类型任务:最大值为5,最小值为1,默认值为1。
**CUSTOM\\_JOB**类型任务:最大值为3600,最小值为1,默认值为60。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "inProgressTimeoutInMinutes": 60'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**JobDocument定义**'."\n" + .'**INVOKE\\_SERVICE**类型的任务用于批量调用设备服务,功能与[InvokeThingsService](~~96242~~)相似。'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|serviceIdentifier|String|服务的标识符Identifier。
您可在物联网平台控制台对应实例下,单击**设备管理 > 产品**,找到设备所属产品,在产品详情的**功能定义**中查看。|'."\n" + .'|params|Object|要调用服务的入参信息。更多信息,请参见下文“params定义”。|'."\n" + ."\n" + .'**params定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|key|String|输入参数的标识符。您在创建该服务时,设置的输入参数的标识符。
您可在物联网平台控制台,设备所属产品的功能定义页面,从该产品的物模型,或单击该服务对应的编辑按钮,查看您设置的输入参数。|'."\n" + .'|value|String|指定参数值。该值需在您设置的输入参数的取值范围内。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "serviceIdentifier": "test_service",'."\n" + .' "params": {'."\n" + .' "key1": "value1",'."\n" + .' "key2": "value2"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**SET\\_PROPERTY**类型的Job用于批量设置设备属性值,功能与[SetDevicesProperty](~~96243~~)相似。'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|params|Object|要设置的属性信息,组成为key:value。更多信息,请参见下文“params定义”。|'."\n" + ."\n" + .'**params定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|key|String|要设置属性的标识符identifier。您可在物联网平台控制台中,设备所属产品的功能定义中查看。
设置的属性必需是读写型。如果您指定了一个只读型的属性,设置将会失败。|'."\n" + .'|value|String|属性值。取值需和您定义属性的数据类型和取值范围保持一致。|'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "params": {'."\n" + .' "key1": "value1",'."\n" + .' "key2": "value2"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**CUSTOM_JOB**为自定义任务。'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|key|String|自定义属性。|'."\n" + .'|value|String|自定义属性值。|'."\n" + ."\n\n" + .'```'."\n" + .'{'."\n" + .' "key":"value"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**JobFile定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|fileKey|String|使用**GenerateFileUploadURL**接口生成的文件**Key**。
创建任务前,必须先上传文件。具体操作,请参见[GenerateFileUploadURL](~~198575~~)的“使用说明”。
创建任务时会校验文件是否已经上传。|'."\n" + .'|signMethod|String|签名方法,可取值MD5和SHA256。|'."\n" + .'|sign|String|签名,通过URL上传的文件的根据相应的签名方法生成的签名参数。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "fileKey":"5cc34***/tazJff***",'."\n" + .' "signMethod":"",'."\n" + .' "sign":""'."\n" + .'}'."\n" + .'```'."\n" + ."\n\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'tDQvBJqbUyHs****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除指定分组', - 'summary' => '调用该接口删除指定分组。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DeleteDeviceDynamicGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateLoRaNodesTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-***-v6***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'GroupId', + 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '设备所隶属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceInfo', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。'."\n" - ."\n" - .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', - 'type' => 'string', + 'description' => 'LoRaWAN设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DevEui' => ['description' => 'LoRaWAN设备的DevEUI,其全球唯一标识。', 'type' => 'string', 'required' => false, 'example' => 'd896e0efff00****'], + 'PinCode' => ['description' => 'LoRaWAN设备的PIN Code,用于校验DevEUI的合法性。', 'type' => 'string', 'required' => false, 'example' => '123***'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'tDQvBJqbUyHs***', + 'maxItems' => 1000, ], ], ], @@ -14094,156 +9006,256 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'TaskId' => ['description' => '调用成功时,返回的任务ID。'."\n" + ."\n" + .'> 请妥善保管该ID。查询设备创建的状态时需使用该ID。', 'type' => 'string', 'example' => '62146'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.group.NullGroupId', - 'errorMessage' => 'You must specify the device group ID.', - ], - [ - 'errorCode' => 'iot.group.NotExistedGroup', - 'errorMessage' => 'The specified device group does not exist.', - ], - [ - 'errorCode' => 'iot.common.RamActionPermissionDeny', - 'errorMessage' => 'You do not have the RAM permission.', - ], - [ - 'errorCode' => 'iot.common.InvalidTenant', - 'errorMessage' => 'The tenant is invalid.', - ], - [ - 'errorCode' => 'iot.group.QueryGroupInfoFailed', - 'errorMessage' => 'An error occurred while querying the device group details.', - ], - [ - 'errorCode' => 'iot.group.DeleteGroupFailed', - 'errorMessage' => 'An error occurred while deleting the device group.', - ], - [ - 'errorCode' => 'iot.common.APINotSupportedInInstance', - 'errorMessage' => 'This API operation is not supported in this instance.', - ], - [ - 'errorCode' => 'iot.device.RegionNotSupportDynamicGroup', - 'errorMessage' => 'The region does not currently support the dynamic group feature.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nB78B4FD1-AE89-417B-AD55-367EBB0C6759\\ntrue\\n","errorExample":""}]', - 'title' => '删除指定的动态分组', - 'summary' => '逻辑删除设备动态分组,删除分组下设备分组关系。', - 'description' => '## 限制说明'."\n" - ."\n" - .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组。公共实例说明,请参见[公共实例](~~147356~~)。'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"TaskId\\": \\"62146\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n38D5FDA5-19B9-445D-8713-213B743266DE\\n62146\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateLoRaNodesTask', + 'summary' => '调用该接口生成批量注册LoRaWAN设备的任务。', + 'description' => '## 使用说明'."\n" + .'单次调用最多可添加500个设备。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BatchAddDeviceGroupRelations' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'CreateOTADynamicUpgradeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'FirmwareId', + 'in' => 'query', + 'schema' => ['description' => '升级包ID,升级包的唯一标识符。'."\n" + ."\n" + .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'nx3xxVvFdwvn6dim50PY03****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '升级包所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Le6d0****'], + ], + [ + 'name' => 'RetryInterval', + 'in' => 'query', + 'schema' => ['description' => '设备升级失败后,自动重试的时间间隔,单位为分钟。可选值:'."\n" + ."\n" + .'- **0**:立即重试。'."\n" + .'- **10**:10分钟后重试。'."\n" + .'- **30**:30分钟后重试。'."\n" + .'- **60**:60分钟(即1小时)后重试。'."\n" + .'- **1440**:1,440分钟(即24小时)后重试。'."\n" + ."\n" + .'> **RetryInterval**的值需要小于**TimeoutInMinutes**的值。例如:'."\n" + .'- **TimeoutInMinutes**的值为60分钟,**RetryInterval**的值最大可设置为30。'."\n" + .'- **TimeoutInMinutes**的值为1440分钟,**RetryInterval**的值最大可设置为60。'."\n" + ."\n" + .'若**RetryInterval**需设置为24小时后重试,则建议不传入**TimeoutInMinutes**。因升级超时后,不会再触发升级重试。'."\n" + .'>'."\n" + ."\n" + .'不传入此参数,则表示不重试。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], + ], + [ + 'name' => 'RetryCount', + 'in' => 'query', + 'schema' => ['description' => '自动重试次数。'."\n" + ."\n" + .'如果传入**RetryInterval**参数,则需传入该参数。'."\n" + ."\n" + .'可选值:'."\n" + ."\n" + .'- **1**:1次。'."\n" + .'- **2**:2次。'."\n" + .'- **5**:5次。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'TimeoutInMinutes', + 'in' => 'query', + 'schema' => ['description' => '设备升级超时时间,超过指定时间后,设备未完成升级,则升级失败。单位为分钟,取值范围为1~1,440。'."\n" + ."\n" + .'> - 从设备首次上报进度开始计算时间。升级期间若设备多次上下线,触发物联网平台多次推送升级包,都始终以设备最开始的第一次上报升级进度时间作为开始时间。'."\n" + .'- 因超时而导致的升级失败,物联网平台不会触发自动重试逻辑。'."\n" + ."\n\n" + ."\n\n" + .'不传入该参数,则表示设备升级没有超时限制。'."\n" + ."\n\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1440'], + ], + [ + 'name' => 'MaximumPerMinute', + 'in' => 'query', + 'schema' => ['description' => '每分钟最多向多少个设备推升级包下载URL。取值范围:10~10,000。'."\n" + ."\n" + .'不传入该参数,则取默认值10,000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + ], + [ + 'name' => 'OverwriteMode', + 'in' => 'query', + 'schema' => ['description' => '是否覆盖之前的升级任务。取值:'."\n" + ."\n" + .'- **1**(默认):不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" + .'- **2**:覆盖。设备只执行新的升级任务。此时**MultiModuleMode**不能传入**true**。'."\n" + ."\n" + .'> 不覆盖升级中的任务。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], + ], + [ + 'name' => 'DynamicMode', + 'in' => 'query', + 'schema' => ['description' => '动态升级模式。取值范围:'."\n" + ."\n" + .'- **1**(默认):除了升级当前满足升级条件的设备,还将持续检查设备是否满足升级条件,对满足升级条件的设备进行升级。'."\n" + ."\n" + .'- **2**:仅对后续上报新版本号的设备生效。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'NeedPush', + 'in' => 'query', + 'schema' => ['description' => '物联网平台是否主动向设备推送升级任务。'."\n" + ."\n" + .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" + .' '."\n" + .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" + ."\n" + .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。'."\n" + ."\n\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'NeedConfirm', + 'in' => 'query', + 'schema' => ['description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" + ."\n\n" + .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" + .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ 'name' => 'GroupId', 'in' => 'query', + 'schema' => ['description' => '分组ID。'."\n" + ."\n" + .'- 如果传入该参数,则必须同时传入**GroupType**,且不能传入**SrcVersion.N**。'."\n" + .'- 如果不传入该参数,则无需传入**GroupType**,且必须传入**SrcVersion.N**。'."\n" + ."\n" + .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', 'type' => 'string', 'required' => false, 'example' => 'IwOwQj7DJ***'], + ], + [ + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => ['description' => '分组类型,仅可取值**LINK_PLATFORM_DYNAMIC**(动态分组)。'."\n" + ."\n" + .'- 如果传入该参数,则必须同时传入**GroupId**,且不能传入**SrcVersion.N**。'."\n" + .'- 如果不传入该参数,则无需传入**GroupId**,且必须传入**SrcVersion.N**。', 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM_DYNAMIC'], + ], + [ + 'name' => 'DownloadProtocol', + 'in' => 'query', + 'schema' => ['description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" + ."\n" + .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" + .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" + .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" + .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'HTTPS'], + ], + [ + 'name' => 'MultiModuleMode', + 'in' => 'query', + 'schema' => ['description' => '设备是否支持多模块同时升级。'."\n" + ."\n" + .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" + .'- **true**:是,设备支持多模块同时升级。此时**OverwriteMode**不能传入**2**。相同模块下的升级任务会被覆盖,但不覆盖升级中的任务。'."\n" + ."\n" + .'>'."\n" + .'- 支持的实例:企业版实例和新版公共实例。'."\n" + .'- 设备端SDK:必须使用物联网平台提供的设备端C语言4.x版本的Link SDK。'."\n" + .'- 发起基于分组的动态升级批次:**MultiModuleMode**和**OverwriteMode**的设置,必须与分组对应的存量动态升级批次中的设置保持一致。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'SrcVersion', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => '6VfhebLg5iUe****', + 'description' => '待升级版本号列表。'."\n" + ."\n" + .'- 如果传入该参数,则不能传入**GroupId**和**GroupType**。'."\n" + .'- 如果不传入该参数,则必须传入**GroupId**和**GroupType**。'."\n" + ."\n" + .'> - 基于版本对差分升级包发起动态升级任务时,该参数值必须与差分升级包的待升级版本号(**SrcVersion**)相同。'."\n" + .'基于动态分组对差分升级包发起动态升级任务时,无需传入该参数。'."\n" + .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号**FirmwareVersion**。'."\n" + .'- 列表中不能有重复的版本号。'."\n" + .'- 最多可传入10个版本号。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], + 'required' => false, + 'example' => 'V1.0.1', + 'maxItems' => 50, ], ], [ - 'name' => 'Device', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '要添加到分组的设备列表。', + 'description' => '标签列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '要添加到分组的设备所属的产品ProductKey,最多可传入200个。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1kORrK****', - ], - 'DeviceName' => [ - 'description' => '要添加到分组的设备名称,最多可传入200个。', - 'type' => 'string', - 'required' => true, - 'example' => 'ZHuPo6sZzv7pOzYh****', - ], + 'Key' => ['description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" + ."\n" + .'批次标签将在向设备推送升级通知时下发给设备。'."\n" + ."\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', 'type' => 'string', 'required' => true, 'example' => 'key1'], + 'Value' => ['description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" + ."\n\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。'."\n", 'type' => 'string', 'required' => true, 'example' => 'value1'], ], 'required' => false, + 'description' => '', ], 'required' => false, - 'maxItems' => 200, + 'maxItems' => 10, ], ], ], @@ -14252,142 +9264,212 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'ExceedTenGroupDeviceCount' => [ - 'description' => '请求参数中,已经添加到10个或者10个以上分组的设备数量(一个设备最多添加到10个分组)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'AlreadyRelatedGroupDeviceCount' => [ - 'description' => '原已经添加到此分组的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ValidDeviceCount' => [ - 'description' => '请求参数中合法的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'SuccessAddedDeviceCount' => [ - 'description' => '成功添加到分组的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9F41D14E-CB5F-4CCE-939C-057F39E688F5'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的升级批次信息。详情见以下Data包含的参数。', + 'type' => 'object', + 'properties' => [ + 'JobId' => ['description' => '升级批次ID,升级批次的唯一标识符。', 'type' => 'string', 'example' => 'XUbmsMHmkqv0PiAG****010001'], + 'UtcCreate' => ['description' => '升级批次的创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-05-10T02:18:53.000Z'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"ExceedTenGroupDeviceCount\\": 0,\\n \\"AlreadyRelatedGroupDeviceCount\\": 0,\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ValidDeviceCount\\": 2,\\n \\"SuccessAddedDeviceCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 2\\r\\n 0\\r\\n 2 devices have been added, and 0 devices failed to be added.\\r\\n 2\\r\\n 0\\r\\n 671D0F8F-FDC7-4B12-93FA-336C079C965A\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'BatchAddDeviceGroupRelations', - 'summary' => '调用该接口添加设备到某一分组(可批量添加设备)。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9F41D14E-CB5F-4CCE-939C-057F39E688F5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"XUbmsMHmkqv0PiAG****010001\\",\\n \\"UtcCreate\\": \\"2019-05-10T02:18:53.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateOTADynamicUpgradeJob', + 'summary' => '调用该接口创建动态升级批次。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'- 若未在调用[CreateOTAFirmware](~~147311~~)创建升级包时指定升级包无需验证,则调用本接口创建批量升级批次前,必须保证升级包已验证成功。创建验证升级包任务,请参见[CreateOTAVerifyJob](~~147480~~)。'."\n" + .'- 同一设备只能同时在一个升级批次中处于待升级或正在升级状态。对处于待升级或正在升级状态的设备发起新的升级任务,后发起的任务会直接失败。'."\n" + .'- 同一升级包下,只能有一个状态为执行中的动态升级批次。'."\n" + .'- 如果同一个设备处于不同升级包的动态升级策略中,则设备执行最新发起的动态升级。'."\n" + .'- 创建动态升级批次后,系统将自动创建对应的动态升级策略。可以调用[CancelOTAStrategyByJob](~~147905~~)取消动态升级策略。'."\n" + .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组的动态升级批次。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" + .'- 目前仅中国的华东2(上海)、华北2(北京)和华南1(深圳)地域下,支持使用MQTT协议下载升级包。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchDeleteDeviceGroupRelations' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTADynamicUpgradeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateOTAFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'GroupId', + 'name' => 'FirmwareName', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'W16X8Tvdosec****', - ], + 'schema' => ['description' => 'OTA升级包名称,需在阿里云账号下唯一,创建后不可修改。支持中文、英文字母、日文、数字、短划线(-)、下划线(_)和半角圆括号(()),必须以中文、英文、日文或数字开头,长度限制为1~40个字符。', 'type' => 'string', 'required' => true, 'example' => 'Firmware2'], ], [ - 'name' => 'Device', + 'name' => 'DestVersion', + 'in' => 'query', + 'schema' => ['description' => '当前OTA升级包的版本号,仅支持英文字母、数字、半角句号(.)、短划线(-)和下划线(_)。长度限制为1~64个字符。', 'type' => 'string', 'required' => true, 'example' => '2.0.0'], + ], + [ + 'name' => 'FirmwareUrl', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用[GenerateOTAUploadURL](~~147310~~)生成升级包文件的URL。'."\n" + ."\n" + .'>仅当OTA升级包中添加一个文件时,才可传入此参数,且必须传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin'], + ], + [ + 'name' => 'FirmwareSign', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包文件的签名值。使用**SignMethod**对升级包文件内容加签计算得出的值。'."\n" + ."\n" + .'> 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '93230c3bde425a9d7984a594ac55****'], + ], + [ + 'name' => 'SignMethod', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包签名方法。目前仅支持取值为**MD5**(MD5签名)。'."\n" + ."\n" + .'不传入此参数,默认为**MD5**。', 'type' => 'string', 'required' => false, 'example' => 'MD5'], + ], + [ + 'name' => 'FirmwareSize', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包文件的大小,单位:字节。'."\n" + ."\n" + .'> 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。'."\n" + .'> ', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '900'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包所属产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1uctKe****'], + ], + [ + 'name' => 'FirmwareDesc', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包描述。长度不可超过100个字符。一个中文汉字算一个字符。', 'type' => 'string', 'required' => false, 'example' => 'OTA function updated'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包类型。可选:'."\n" + ."\n" + .'- **0**:整包升级包,您上传的升级包文件包含完整的升级包,将推送整包升级包给设备进行升级。'."\n" + .'- **1**:差分升级包,您上传的升级包文件仅包含新版本升级包与之前版本的差异部分,仅推送差异部分给设备进行升级。'."\n" + ."\n" + .'不传入此参数,则默认值为**0**。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'SrcVersion', + 'in' => 'query', + 'schema' => ['description' => '待升级OTA模块版本号,即待升级设备的当前OTA模块版本号。'."\n" + ."\n" + .'可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" + ."\n" + .'> - **Type**为**1**(差分升级包)时,必须传入该参数,且取值不能与当前升级包版本(**DestVersion**)相同。'."\n" + .'- **Type**为**0**(整包升级包)时,可不传入该参数。', 'type' => 'string', 'required' => false, 'example' => '1.0.0'], + ], + [ + 'name' => 'ModuleName', + 'in' => 'query', + 'schema' => ['description' => 'OTA模块名称。OTA模块是同产品下设备的不同可升级模块。'."\n" + ."\n" + .'> - 不传入该参数,则使用default模块,表示整个设备的固件。'."\n" + .'- 可调用[CreateOTAModule](~~186066~~)创建自定义OTA模块,调用[ListOTAModuleByProduct](~~186532~~)查询产品下已创建的OTA模块。', 'type' => 'string', 'required' => false, 'example' => 'WifiConfigModify'], + ], + [ + 'name' => 'NeedToVerify', + 'in' => 'query', + 'schema' => ['description' => '是否需要在创建批量升级任务前通过升级包验证。'."\n" + ."\n" + .'- **true**(默认):需要'."\n" + ."\n" + .'- **false**:不需要'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true', 'default' => 'true'], + ], + [ + 'name' => 'Udi', + 'in' => 'query', + 'schema' => ['description' => '推送给设备的自定义信息。不限制文本内容格式,长度不超过4096个字符。'."\n" + ."\n" + .'添加该升级包完成,并创建升级任务后,物联网平台向设备推送升级通知时,会将该自定义信息下发给设备。', 'type' => 'string', 'required' => false, 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}'], + ], + [ + 'name' => 'MultiFiles', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '要从分组中删除的设备列表。', + 'description' => 'OTA升级包文件列表信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '要从分组中删除的设备所属产品的ProductKey,最多可传入200个。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1kORrK****', - ], - 'DeviceName' => [ - 'description' => '要从分组中删除的设备名称,最多可传入200个。', - 'type' => 'string', - 'required' => true, - 'example' => 'ZHuPo6sZzv7pOzYh****', - ], + 'FileMd5' => ['description' => 'OTA升级包文件的MD5值。'."\n" + ."\n" + .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值。'."\n", 'type' => 'string', 'required' => false, 'example' => '93230c3bde425a9d7984a594ac56***'], + 'Size' => ['description' => 'OTA升级包文件的大小,单位:字节。'."\n" + ."\n" + .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '200'], + 'Url' => ['description' => 'OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用[GenerateOTAUploadURL](~~147310~~)为每个升级包文件生成文件URL。'."\n" + ."\n" + .'>OTA升级包中添加多个升级包文件时,必须传入此参数。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin'], + 'SignValue' => ['description' => 'OTA升级包文件的签名值。使用**SignMethod**对升级包文件内容加签计算得出的值。'."\n" + ."\n" + .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。'."\n", 'type' => 'string', 'required' => false, 'example' => '93230c3bde425a9d7984a594ac45****'], + 'Name' => ['description' => 'OTA升级包文件名称,长度限制为1~32个字符。支持最多添加20个文件名称,且多个升级包文件的名称不能重复。'."\n" + ."\n\n" + .'> OTA升级包中添加多个升级包文件时,必须传入此参数。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Firmware1'], ], 'required' => false, + 'description' => '', ], 'required' => false, - 'maxItems' => 200, + 'maxItems' => 21, ], ], ], @@ -14396,121 +9478,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'SuccessDeviceCount' => [ - 'description' => '成功从分组中删除的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '8739385E-143F-4389-B900-B7DF9174CE0D', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'AlreadyRelatedGroupDeviceCount' => [ - 'description' => '删除前,已添加到此分组的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ValidDeviceCount' => [ - 'description' => '请求参数中要删除的设备中,有效的设备数量(即可删除的设备数量)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功,表示OTA升级包创建成功。'."\n" + .'- **false**:调用失败,表示OTA升级包创建失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的升级包信息。更多信息,请参见**Data**下参数描述。', + 'type' => 'object', + 'properties' => [ + 'FirmwareId' => ['description' => 'OTA升级包ID,物联网平台为升级包颁发的唯一标识符。', 'type' => 'string', 'example' => 's8SSHiKjpBfrM3BSN0z803****'], + 'UtcCreate' => ['description' => 'OTA升级包的创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T06:21:54.607Z'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"SuccessDeviceCount\\": 2,\\n \\"RequestId\\": \\"8739385E-143F-4389-B900-B7DF9174CE0D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"AlreadyRelatedGroupDeviceCount\\": 2,\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ValidDeviceCount\\": 2\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 2\\r\\n 2\\r\\n 2\\r\\n 8739385E-143F-4389-B900-B7DF9174CE0D\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'BatchDeleteDeviceGroupRelations', - 'summary' => '调用BatchDeleteDeviceGroupRelations接口批量删除指定分组中的设备。该操作仅删除设备与分组的关联关系,不会删除设备本身。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"FirmwareId\\": \\"s8SSHiKjpBfrM3BSN0z803****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n s8SSHiKjpBfrM3BSN0z803****\\r\\n 2019-11-04T06:21:54.607Z\\r\\n \\r\\n E4BD5A12-7C1D-4712-A7D5-B2432331165E\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateOTAFirmware', + 'summary' => '生成OTA升级包文件的URL后,调用该接口创建设备的OTA升级包。', + 'description' => '## 使用说明'."\n" + .'在调用此接口创建升级包前,已调用[GenerateOTAUploadURL](~~147310~~)生成升级包上传信息,并已调用OSS [PostObject](~~31988~~)接口上传了升级包文件。'."\n" + ."\n" + .'## 使用限制'."\n" + .'单个阿里云账号下最多可有500个升级包。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceGroupInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateOTAModule' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ + [ + 'name' => 'AliasName', + 'in' => 'query', + 'schema' => ['description' => 'OTA模块别名。支持中文、英文字母、数字、英文句号(.)、短划线(-)和下划线(_),长度限制为1~64个字符。', 'type' => 'string', 'required' => false, 'example' => '条码扫描仪'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'GroupId', + 'name' => 'ModuleName', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。'."\n" - ."\n" - .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', - 'type' => 'string', - 'required' => true, - 'example' => 'tDQvBJqbUyHs****', - ], + 'schema' => ['description' => 'OTA模块名称,产品下唯一且不可修改。仅支持英文字母、数字、英文句号(.)、短划线(-)和下划线(_)。长度限制为1~64个字符。'."\n" + .'> 英文字母不区分大小写,例如“scanner”和“Scanner”被认为是相同的模块名称,不可重复使用。', 'type' => 'string', 'required' => true, 'example' => 'barcodeScanner'], ], [ - 'name' => 'GroupType', + 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型。'."\n" - ."\n" - .'目前仅支持传入**LINK_PLATFORM_DYNAMIC**,表示动态分组。不传入时,默认为静态分组。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], + 'schema' => ['description' => 'OTA模块的描述信息,支持最多100个字符。', 'type' => 'string', 'required' => false, 'example' => '条码扫描仪的固件模块'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => 'OTA模块所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1Le6d0****'], ], ], 'responses' => [ @@ -14518,216 +9579,321 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7411716B-A488-4EEB-9AA0-6DB05AD2491F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的分组详细信息数据,包含以下参数。', - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => 'tDQvBJqbUyHs****', - ], - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'aliyun', - ], - 'DeviceActive' => [ - 'description' => '激活设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'UtcCreate' => [ - 'description' => '创建时间。', - 'type' => 'string', - 'example' => '2018-09-14T14:35:51.000Z', - ], - 'DynamicGroupExpression' => [ - 'description' => '动态分组规则,仅动态分组返回该参数信息。', - 'type' => 'string', - 'example' => 'product_key = "a1***" and name LIKE "test%"', - ], - 'DeviceOnline' => [ - 'description' => '在线设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'usefulGroup', - ], - 'DeviceCount' => [ - 'description' => '设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7411716B-A488-4EEB-9AA0-6DB05AD2491F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"tDQvBJqbUyHs****\\",\\n \\"GroupName\\": \\"aliyun\\",\\n \\"DeviceActive\\": 1,\\n \\"UtcCreate\\": \\"2018-09-14T14:35:51.000Z\\",\\n \\"DynamicGroupExpression\\": \\"product_key = \\\\\\"a1***\\\\\\" and name LIKE \\\\\\"test%\\\\\\"\\",\\n \\"DeviceOnline\\": 0,\\n \\"GroupDesc\\": \\"usefulGroup\\",\\n \\"DeviceCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n7411716B-A488-4EEB-9AA0-6DB05AD2491F\\n\\n aliyun\\n 2021-10-14T14:35:51.000Z\\n 0\\n usefulGroup\\n 1\\n product_key = \\"a1***\\" and name LIKE \\"test%\\"\\n 10\\n tDQvBJqbUyHs****\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询分组详情', - 'summary' => '调用该接口查询分组详情。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\n true\\n","errorExample":""}]', + 'title' => '创建产品的OTA模块', + 'summary' => '调用该接口创建产品的OTA模块。', + 'description' => '## 使用说明'."\n" + .'OTA模块是同产品下设备的不同可升级模块。默认(default)模块表示整个设备的OTA升级包。您可以调用该接口创建自定义OTA模块。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + .'- 同一产品下最多自定义10个OTA模块。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'- 创建后,OTA模块名称不可更改,可调用[UpdateOTAModule](~~186061~~)修改模块别名、模块描述。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDynamicGroupDevices' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateOTAStaticUpgradeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-***-v6***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'GroupId', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。'."\n" - ."\n" - .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', - 'type' => 'string', - 'required' => true, - 'example' => 'tDQvBJqbUyHs***', - ], + 'schema' => ['description' => '升级包ID,升级包的唯一标识符。'."\n" + ."\n" + .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'nx3xxVvFdwvn6dim50PY03****'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '每页记录数,最大值是200,默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '升级包所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Le6d0****'], ], [ - 'name' => 'ProductKey', + 'name' => 'TargetSelection', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV***', - ], + 'schema' => ['description' => '升级范围。'."\n" + ."\n" + .'- **ALL**:全量升级。'."\n" + .'- **SPECIFIC**:定向升级。'."\n" + .'- **GRAY**:灰度升级。'."\n" + .'- **GROUP**:分组升级', 'type' => 'string', 'required' => true, 'example' => 'ALL'], ], [ - 'name' => 'DeviceName', + 'name' => 'ScheduleTime', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。'."\n" - ."\n" - .'传入此参数时,若**FuzzyName**同时传入**true**,会模糊搜索设备,**DeviceName**值为设备名称的前缀字符串,长度必须大于4个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '指定发起OTA升级的时间。'."\n" + ."\n" + .'定时时间范围需为当前时间的5分钟后至7天内。取值为13位毫秒值时间戳。'."\n" + ."\n" + .'不传入该参数,则表示立即升级。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1577808000000'], ], [ - 'name' => 'NextToken', + 'name' => 'RetryInterval', 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识,首次查询无需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'TGlzdFJlc291***', - ], + 'schema' => ['description' => '设备升级失败后,自动重试的时间间隔,单位为分钟。可选值:'."\n" + ."\n" + .'- **0**:立即重试。'."\n" + .'- **10**:10分钟后重试。'."\n" + .'- **30**:30分钟后重试。'."\n" + .'- **60**:60分钟(即1小时)后重试。'."\n" + .'- **1440**:1,440分钟(即24小时)后重试。'."\n" + ."\n" + .'> **RetryInterval**的值需要小于**TimeoutInMinutes**的值。例如:'."\n" + .'- **TimeoutInMinutes**的值为60分钟,**RetryInterval**的值最大可设置为30。'."\n" + .'- **TimeoutInMinutes**的值为1440分钟,**RetryInterval**的值最大可设置为60。'."\n" + ."\n" + .'若**RetryInterval**需设置为24小时后重试,则建议不传入**TimeoutInMinutes**。因升级超时后,不会再触发升级重试。'."\n" + .'>'."\n" + ."\n" + .'不传入此参数,则表示不重试。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '60'], ], [ - 'name' => 'CurrentPage', + 'name' => 'RetryCount', + 'in' => 'query', + 'schema' => ['description' => '自动重试次数。'."\n" + ."\n" + .'如果传入**RetryInterval**参数,则需传入该参数。'."\n" + ."\n" + .'可选值:'."\n" + ."\n" + .'- **1**:1次。'."\n" + .'- **2**:2次。'."\n" + .'- **5**:5次。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'TimeoutInMinutes', + 'in' => 'query', + 'schema' => ['description' => '设备升级超时时间,超过指定时间后,设备未完成升级,则升级失败。单位为分钟,取值范围为1~1,440。'."\n" + ."\n" + .'> - 从设备首次上报进度开始计算时间。升级期间若设备多次上下线,触发物联网平台多次推送升级包,都始终以设备最开始的第一次上报升级进度时间作为开始时间。'."\n" + .'- 因超时而导致的升级失败,物联网平台不会触发自动重试逻辑。'."\n" + ."\n\n" + ."\n\n" + .'不传入该参数,则表示设备升级没有超时限制。'."\n" + ."\n\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1440'], + ], + [ + 'name' => 'MaximumPerMinute', + 'in' => 'query', + 'schema' => ['description' => '每分钟最多向多少个设备推送升级包下载URL。取值范围:10~10,000。'."\n" + ."\n" + .'不传入该参数,则取默认值10,000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1000'], + ], + [ + 'name' => 'GrayPercent', + 'in' => 'query', + 'schema' => ['description' => '设置灰度比例。取值为字符串格式的百分比,小数点后最多3位小数,系统计算结果向下取整。灰度升级的设备至少为1个。'."\n" + ."\n" + .'例如有100个待升级设备,设置灰度升级的灰度比例为33.33,则系统计算结果为33。'."\n" + ."\n" + .'升级范围指定为灰度升级(`TargetSelection=GRAY`)时,需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '33.33'], + ], + [ + 'name' => 'ScheduleFinishTime', + 'in' => 'query', + 'schema' => ['description' => '指定结束升级的时间。'."\n" + ."\n" + .'结束时间距发起时间(**ScheduleTime**)最少1小时,最多为30天。取值为13位毫秒值时间戳。'."\n" + ."\n" + .'不传入该参数,则表示不会强制结束升级。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1577909000000'], + ], + [ + 'name' => 'OverwriteMode', + 'in' => 'query', + 'schema' => ['description' => '是否覆盖之前的升级任务。取值:'."\n" + .'- **1**(默认):不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" + .'- **2**:覆盖。设备只执行新的升级任务。此时**MultiModuleMode**不能传入**true**。'."\n" + ."\n\n" + .'> 不覆盖升级中的任务。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DnListFileUrl', + 'in' => 'query', + 'schema' => ['description' => '定向升级设备列表文件的URL。'."\n" + .'> - 发起定向升级(`TargetSelection=SPECIFIC`)任务时,需传入该参数或**TargetDeviceName.N**,不可同时传入。'."\n" + .'- 请调用[GenerateDeviceNameListURL](~~186062~~)生成文件URL,并按说明上传设备列表文件。'."\n" + .'- 整包升级时,会过滤列表中已经升级成功的设备。'."\n" + .'- 差分升级时,会过滤列表中已经升级成功,和初始版本号跟升级包不相符的设备。', 'type' => 'string', 'required' => false, 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin'], + ], + [ + 'name' => 'NeedPush', + 'in' => 'query', + 'schema' => ['description' => '物联网平台是否主动向设备推送升级任务。'."\n" + ."\n" + .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" + .' '."\n" + .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" + ."\n" + .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'NeedConfirm', + 'in' => 'query', + 'schema' => ['description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" + ."\n\n" + .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" + .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '分组ID。'."\n" + ."\n" + .'仅当发起分组升级(`TargetSelection=GROUP`)任务时,需传入该参数和**GroupType**。'."\n" + ."\n\n" + .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', 'type' => 'string', 'required' => false, 'example' => 'CtjzCkNuOx***'], + ], + [ + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => ['description' => '分组类型,仅可取值**LINK_PLATFORM**。'."\n" + ."\n" + .'仅当发起分组升级(`TargetSelection=GROUP`)任务时,需传入该参数和**GroupId**。', 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM'], + ], + [ + 'name' => 'DownloadProtocol', + 'in' => 'query', + 'schema' => ['description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" + ."\n" + .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" + .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" + .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" + .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'HTTPS'], + ], + [ + 'name' => 'MultiModuleMode', + 'in' => 'query', + 'schema' => ['description' => '设备是否支持多模块同时升级。'."\n" + ."\n" + .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" + .'- **true**:是,设备支持多模块同时升级。此时**OverwriteMode**不能传入**2**。相同模块下的升级任务会被覆盖,但不覆盖升级中的任务。'."\n" + ."\n" + .'>'."\n" + .'- 支持的实例:企业版实例和新版公共实例。'."\n" + .'- 设备端SDK:必须使用物联网平台提供的设备端C语言4.x版本的Link SDK。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], + ], + [ + 'name' => 'SrcVersion', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '待升级版本号列表。'."\n" + ."\n" + .'>- 发起全量升级(`TargetSelection=ALL`)和灰度升级(`TargetSelection=GRAY`)任务时,可以传入该参数。'."\n" + .'- 使用差分升级包发起全量升级和灰度升级任务时,该参数值需指定为差分升级包的待升级版本号(**SrcVersion**)。'."\n" + .'- 发起定向升级(`TargetSelection=SPECIFIC`)或分组升级(`TargetSelection=GROUP`)任务时,不能传入该参数。'."\n" + .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" + .'- 列表中不能有重复的版本号。'."\n" + .'- 最多可传入10个版本号。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => false, - 'example' => '2', - 'default' => '1', + 'example' => 'V1.0.1', + 'maxItems' => 20, ], ], [ - 'name' => 'Status', + 'name' => 'TargetDeviceName', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '设备状态。取值:'."\n" + 'description' => '定向升级的设备名称列表。'."\n" ."\n" - .'- **ONLINE**:设备在线。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **UNACTIVE**:设备未激活。'."\n" - .'- **DISABLE**:设备已禁用。', - 'type' => 'string', + .'> - 发起定向升级(`TargetSelection=SPECIFIC`)任务时,需传入该参数或**DnListFileUrl**,不可同时传入。'."\n" + .'- 使用差分升级包进行定向升级时,要升级的设备的当前OTA模块版本号需与差分升级包的待升级版本号(**SrcVersion**)相同。'."\n" + .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" + .'- 列表中的设备所属的产品必须与升级包所属产品一致。'."\n" + .'- 列表中不能有重复的设备名称。'."\n" + .'- 最多可传入200个设备名称。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => false, - 'example' => 'OFFLINE', + 'example' => 'deviceName1', + 'maxItems' => 200, ], ], [ - 'name' => 'FuzzyName', + 'name' => 'Tag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '是否根据**DeviceName**值,模糊搜索设备。'."\n" - .'- **true**:模糊搜索。'."\n" - .'- **false**(默认):不模糊搜索。', - 'type' => 'boolean', + 'description' => '标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" + ."\n" + .'批次标签将在向设备推送升级通知时下发给设备。'."\n" + ."\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', 'type' => 'string', 'required' => true, 'example' => 'key1'], + 'Value' => ['description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" + ."\n\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', 'type' => 'string', 'required' => true, 'example' => 'value1'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => 'true', + 'maxItems' => 20, ], ], ], @@ -14736,283 +9902,175 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'NextToken' => [ - 'description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" - ."\n" - .'如果返回值为空,则表示没有下一页数据。', - 'type' => 'string', - 'example' => 'TGlzdFJlc291***', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页所显示的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '24', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'MissingFirmwareId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'FirmwareId is mandatory for this action.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的升级批次信息。更多信息,请参见Data下参数说明。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'SimpleDeviceInfo' => [ - 'description' => '调用成功后,返回的设备列表,详情参见**SimpleDeviceInfo**下信息。', - 'type' => 'array', - 'items' => [ - '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' => 'light', - ], - 'UtcActiveTime' => [ - 'description' => '设备的激活时间,UTC格式。', - 'type' => 'string', - 'example' => '2018-08-06T02:48:41.000Z', - ], - 'ActiveTime' => [ - 'description' => '设备的激活时间。', - 'type' => 'string', - 'example' => '2018-08-06 10:48:41', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1rYuVF***', - ], - 'LastOnlineTime' => [ - 'description' => '设备最近一次上线时间。', - 'type' => 'string', - 'example' => '2018-08-06 13:43:12', - ], - 'NodeType' => [ - 'description' => '产品的节点类型。取值:'."\n" - ."\n" - .'- **0**:设备。设备不能挂载子设备,可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" - .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'UtcLastOnlineTime' => [ - 'description' => '设备最近一次上线的时间,UTC格式。', - 'type' => 'string', - 'example' => '2018-08-06T05:43:12.000Z', - ], - 'Nickname' => [ - 'description' => '设备的备注名称。', - 'type' => 'string', - 'example' => 'detectors_in_beijing', - ], - 'CategoryKey' => [ - 'description' => '产品所属品类的标识符。'."\n" - ."\n" - .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。', - 'type' => 'string', - 'example' => 'Lighting', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - ], + 'JobId' => ['description' => '升级批次ID,升级批次的唯一标识符。', 'type' => 'string', 'example' => 'wahVIzGkCMuAUE2gDERM02****'], + 'UtcCreate' => ['description' => '升级批次的创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T06:22:19.566Z'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.group.NotExistedGroup', - 'errorMessage' => 'The specified device group does not exist.', - ], - [ - 'errorCode' => 'iot.device.FuzzyRuntimeSearchMinLengthLimit', - 'errorMessage' => 'Fuzzy runtime search length must exceed 4.', - ], - [ - 'errorCode' => 'iot.device.RegionNotSupportDynamicGroup', - 'errorMessage' => 'The region does not currently support the dynamic group feature.', - ], - [ - 'errorCode' => 'iot.common.APINotSupportedInInstance', - 'errorMessage' => 'This API operation is not supported in this instance.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 24,\\n \\"PageCount\\": 2,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcActiveTime\\": \\"2018-08-06T02:48:41.000Z\\",\\n \\"ActiveTime\\": \\"2018-08-06 10:48:41\\",\\n \\"ProductKey\\": \\"a1rYuVF***\\",\\n \\"LastOnlineTime\\": \\"2018-08-06 13:43:12\\",\\n \\"NodeType\\": 0,\\n \\"UtcLastOnlineTime\\": \\"2018-08-06T05:43:12.000Z\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"CategoryKey\\": \\"Lighting\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nTGlzdFJlc291***\\n2\\n10\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n24\\n1\\n\\n \\n 2018-08-06 13:43:12\\n 2018-08-06T02:48:41.000Z\\n ONLINE\\n Q7uOhVRdZRRlDnTLv****00100\\n Lighting\\n test\\n 2018-08-06T05:43:12.000Z\\n 2018-08-06 10:48:41\\n 0\\n a1rYuVF***\\n detectors_in_beijing\\n light\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询动态分组下设备', - 'summary' => '查询动态分组下的设备列表。', - 'description' => '## 限制说明'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingFirmwareId\\",\\n \\"ErrorMessage\\": \\"FirmwareId is mandatory for this action.\\",\\n \\"RequestId\\": \\"29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"wahVIzGkCMuAUE2gDERM02****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:22:19.566Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateOTAStaticUpgradeJob', + 'summary' => '调用该接口创建静态升级批次。', + 'description' => '## 使用说明'."\n" ."\n" - .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持动态分组功能。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" + .'- 若在调用[CreateOTAFirmware](~~147311~~)接口创建升级包时,未指定“升级包可不通过验证”,则调用本接口创建批量升级批次前,必须保证升级包已验证成功。关于如何创建验证升级包任务,请参见[CreateOTAVerifyJob](~~147480~~)。'."\n" + .'- 单次调用,对于定向升级,若直接传入设备名称,则最多可对200个设备发起升级任务;若使用待升级设备列表文件,则最多可对10,000个设备发起升级任务,需提前调用[GenerateDeviceNameListURL](~~186062~~)生成文件URL,并按说明上传设备列表文件。'."\n" + .'- 对多个设备发起升级任务时,如果某设备已经是目标版本,则过滤该设备,继续升级任务。'."\n" + .'- 同一设备只能同时在一个升级批次中处于待升级或正在升级状态。对处于待升级或正在升级状态的设备发起新的升级任务,后发起的任务会直接失败。'."\n" + .'- 可以对单个升级包,同时发起多个静态升级批次。'."\n" + .'- 当前日本(东京)和美国(弗吉尼亚)地域下,不支持创建静态分组升级批次,即**TargetSelection**不支持传入**GROUP**。'."\n" + .'- 当前仅中国的华东2(上海)、华北2(北京)和华南1(深圳)地域下,支持使用MQTT协议下载升级包。'."\n" ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'## QPS限制'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceGroupList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAStaticUpgradeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateOTAVerifyJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '每页记录数。最大值是200。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => 'OTA升级包ID,升级包的唯一标识符。'."\n" + ."\n" + .'**FirmwareId**是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" + ."\n" + .'也可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'nx3xxVvFdwvn6dim50PY03****'], ], [ - 'name' => 'SuperGroupId', + 'name' => 'TimeoutInMinutes', 'in' => 'query', - 'schema' => [ - 'description' => '父组ID。查询某父组下的子分组列表时,需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '8vDubXr4nUvZkNgk9mle010200', - ], + 'schema' => ['description' => '设置设备升级超时时间,单位分钟,范围1~1,440。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1440'], ], [ - 'name' => 'GroupName', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '分组名称。'."\n" - ."\n" - .'- 传入分组名称,则根据名称进行查询。不支持分组名称模糊查询。'."\n" - .'- 若不传入此参数,则进行全量分组查询。', - 'type' => 'string', - 'required' => false, - 'example' => 'GroupName1', - ], + 'schema' => ['description' => 'OTA升级包所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1VJwBw****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'NeedPush', + 'in' => 'query', + 'schema' => ['description' => '物联网平台是否主动向设备推送升级任务。'."\n" + ."\n" + .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" + .' '."\n" + .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" + ."\n" + .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'NeedConfirm', + 'in' => 'query', + 'schema' => ['description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" + ."\n\n" + .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" + .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'DownloadProtocol', + 'in' => 'query', + 'schema' => ['description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" + ."\n" + .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" + .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" + .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" + .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'HTTPS'], + ], + [ + 'name' => 'TargetDeviceName', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + 'description' => '待验证的设备。'."\n" + ."\n" + .'> - 设备所属产品必须与OTA升级包所属产品一致。'."\n" + .'- 设备名称不能重复。'."\n" + .'- 最多可传入10个设备名称。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], + 'required' => true, + 'example' => 'testdevice', + 'maxItems' => 10, ], ], [ - 'name' => 'GroupTypes', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '待查询的分组类型。'."\n" - ."\n" - .'目前仅支持传入一个,且为**LINK_PLATFORM_DYNAMIC**,表示动态分组。不传入时,默认为静态分组。'."\n" - ."\n\n", + 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" + ."\n" + .'批次标签将在向设备推送升级通知时下发给设备。'."\n" + ."\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', 'type' => 'string', 'required' => true, 'example' => 'key1'], + 'Value' => ['description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" + ."\n" + .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', 'type' => 'string', 'required' => true, 'example' => 'value1'], + ], + 'required' => false, + 'description' => '', ], 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - 'maxItems' => 2, + 'maxItems' => 20, ], ], ], @@ -15021,191 +10079,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '24', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的验证批次信息。详情见以下参数。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'GroupInfo' => [ - 'description' => '调用成功时,返回的分组信息。请参见GroupInfo。'."\n" - ."\n" - .'> 返回的分组信息按照分组创建时间倒序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'test1', - ], - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => 'Kzt9FD8wje8o****', - ], - 'GroupType' => [ - 'description' => '分组类型。', - 'type' => 'string', - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'usefulGroup', - ], - 'UtcCreate' => [ - 'description' => '分组创建时间。', - 'type' => 'string', - 'example' => '2018-10-09T02:58:34.000Z', - ], - ], - ], - ], + 'JobId' => ['description' => 'OTA升级包验证任务ID,即用于验证OTA升级包的设备升级批次ID。', 'type' => 'string', 'example' => 'wahVIzGkCMuAUE2gDERM02****'], + 'UtcCreate' => ['description' => 'OTA升级包验证任务的创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T06:22:19.566Z'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"BEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 24,\\n \\"PageCount\\": 3,\\n \\"Data\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupName\\": \\"test1\\",\\n \\"GroupId\\": \\"Kzt9FD8wje8o****\\",\\n \\"GroupType\\": \\"LINK_PLATFORM_DYNAMIC\\",\\n \\"GroupDesc\\": \\"usefulGroup\\",\\n \\"UtcCreate\\": \\"2018-10-09T02:58:34.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n3\\n\\n \\n test1\\n 2021-10-01T02:58:34.000Z\\n Kzt9FD8wje8o***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n test2\\n 2021-10-01T02:56:40.000Z\\n 0ayrSQ3DSd7***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n Test\\n test3\\n 2021-10-01T05:38:27.000Z\\n oWXlIQeFZtzC***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ylv0915\\n 2021-10-01T04:51:56.000Z\\n SfEiVapLPUjB***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ydlv\\n 2021-10-01T14:35:51.000Z\\n z2S2h9NsDTZm***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ldh_group_3\\n 2021-10-01T12:26:20.000Z\\n chn5fkjin***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ddd\\n ylvgisbim\\n 2021-10-01T11:41:20.000Z\\n ncUZ8DjWYaB9***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n abc\\n 2021-10-01T09:14:30.000Z\\n zpdvwxzBdt4F***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n test11\\n 2021-10-01T07:22:39.000Z\\n BTaudF16X2xK***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n testy\\n 2021-10-01T01:58:06.000Z\\n PrTm3VOeggPw***\\n LINK_PLATFORM_DYNAMIC\\n \\n\\n10\\nBEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D\\n1\\ntrue\\n24\\n","errorExample":""}]', - 'title' => '查询分组列表', - 'summary' => '调用该接口分页查询分组列表。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"wahVIzGkCMuAUE2gDERM02****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:22:19.566Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateOTAVerifyJob', + 'summary' => '调用该接口创建OTA升级包验证任务。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + .'- 将OTA升级包推送给设备批量升级前,必须完成OTA升级包验证。只有已验证的OTA升级包才可用于批量设备升级。您可以调用[QueryOTAFirmware](~~147461~~)查看OTA升级包验证状态。'."\n" + .'- 不能对验证进行中或验证已成功的OTA升级包重复发起验证任务。'."\n" + .'- 最多只能传入10个设备用于OTA升级包验证。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDeviceGroupTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAVerifyJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'W16X8Tvdosec****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'TagString', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => 'JSON格式的标签数据。TagString由标签的**tagKey**和**tagValue**组成,**tagKey**和**tagValue**均不能为空。'."\n" - .'- **tagKey**:标签键。可包含英文大小写字母,数字和英文句号(.),长度在2~30字符之间。'."\n" - .'- **tagValue**:标签值。可包含中文、英文字母、数字、下划线(_)和短划线(-)。长度不可超过128个字符。一个中文汉字算2个字符。'."\n" - ."\n" - .'多个标签以英文逗号间隔。例如`[{"tagKey":"h1","tagValue":"rr"},{"tagKey":"7h","tagValue":"rr"}]`。'."\n" - ."\n" - .'若更新已有标签,新的标签Value值将覆盖原来的值。'."\n" - ."\n" - .'若要删除某个标签,则不传入该标签的Key和Value即可。'."\n" - ."\n" - .'>`abc`为物联网平台系统保留的标签Key,即**tagKey**不能设置为abc。若设置`tagKey=abc`,使用标签检索时会直接被过滤。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '[{"tagKey":"h1","tagValue":"rr"},{"tagKey":"7h","tagValue":"rr"}]', - ], + 'schema' => ['description' => '解析器名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', 'type' => 'string', 'required' => true, 'example' => 'DataParser'], ], [ - 'name' => 'GroupType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型。'."\n" - ."\n" - .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。'."\n" - ."\n" - .'无需传入。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], + 'schema' => ['description' => '解析器描述信息。', 'type' => 'string', 'required' => false, 'example' => '转发数据。'], ], ], 'responses' => [ @@ -15213,103 +10168,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '12CFDAF1-99D9-42E0-8C2F-F281DA5E8953', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'ParserId' => ['description' => '创建解析器成功,返回的解析器ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100*'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"12CFDAF1-99D9-42E0-8C2F-F281DA5E8953\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 12CFDAF1-99D9-42E0-8C2F-F281DA5E8953\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '添加、更新、或删除分组标签', - 'summary' => '批量增加、更新或者删除设备分组标签。', - 'description' => '## 使用说明'."\n" - .'单个分组最多可有100个标签。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.CreateRuleException', 'errorMessage' => 'An exception occurred while creating the rule.', 'description' => '创建规则过程发生异常。'], + ['errorCode' => 'iot.rule.InvalidRuleName', 'errorMessage' => 'The rule name is invalid', 'description' => '规则名称不合法。'], + ['errorCode' => 'iot.rule.ConnectorCountExceed', 'errorMessage' => 'The count of parser exceeds the maximum number', 'description' => ''], + ['errorCode' => 'iot.rule.ConnectorIsAlreadyExisted', 'errorMessage' => 'The parser name already exists.', 'description' => '解析器名称已经存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"ParserId\\": 0\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\n100*\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateParser', + 'summary' => '调用该接口创建解析器。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceGroupTagList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-w2****'], ], [ - 'name' => 'GroupId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'W16X8Tvdosec****', - ], + 'schema' => ['description' => '数据源名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', 'type' => 'string', 'required' => true, 'example' => 'DataSource'], ], [ - 'name' => 'GroupType', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型。'."\n" - ."\n" - .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。', - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], + 'schema' => ['description' => '数据源描述信息。', 'type' => 'string', 'required' => false, 'example' => '设备数据。'], ], ], 'responses' => [ @@ -15317,257 +10255,272 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '214154FF-9D47-4E3F-AAAD-F4CE67F41060', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DataSource' => [ + 'description' => '创建数据源成功后,返回的数据源信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'GroupTagInfo' => [ - 'description' => '调用成功时,返回的标签信息。请参见以下**GroupTagInfo**。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TagValue' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'bulb', - ], - 'TagKey' => [ - 'description' => '标签键。', - 'type' => 'string', - 'example' => 'room1', - ], - ], - ], - ], + 'UtcCreated' => ['description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'Name' => ['description' => '数据源名称。', 'type' => 'string', 'example' => 'DataSource'], + 'Description' => ['description' => '数据源描述信息。', 'type' => 'string', 'example' => '设备数据。'], + 'DataSourceId' => ['description' => '数据源ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"214154FF-9D47-4E3F-AAAD-F4CE67F41060\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupTagInfo\\": [\\n {\\n \\"TagValue\\": \\"bulb\\",\\n \\"TagKey\\": \\"room1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n \\r\\n bulb\\r\\n room1\\r\\n \\r\\n \\r\\n 214154FF-9D47-4E3F-AAAD-F4CE67F41060\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询分组标签列表', - 'summary' => '调用该接口查询分组标签列表。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.CreateRuleException', 'errorMessage' => 'An exception occurred while creating the rule.', 'description' => '创建规则过程发生异常。'], + ['errorCode' => 'iot.rule.DataSourceCountExceed', 'errorMessage' => 'The count of data source exceeds the maximum number', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceExists', 'errorMessage' => 'Same datasource is existed', 'description' => ''], + ['errorCode' => 'iot.rule.InvalidDataSourceName', 'errorMessage' => 'The data source name is invalid', 'description' => ''], + ['errorCode' => 'iot.common.TooManyRequest', 'errorMessage' => 'Request frequency is too high', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"DataSource\\": {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"DataSourceId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\ntrue\\n\\n 设备数据。\\n 2022-03-27T12:45:43.000Z\\n 1001\\n DataSource\\n\\n","errorExample":""}]', + 'title' => 'CreateParserDataSource', + 'summary' => '调用该接口创建待流转的数据源。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceGroupByDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot-***-v64***'], ], [ - 'name' => 'ProductKey', + 'name' => 'ProductName', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1SKk9K****', - ], + 'schema' => ['description' => '为新建产品命名。'."\n" + .'产品名称长度为4~30个字符,可以包含中文、英文字母、数字和下划线(_)。一个中文算2个字符。'."\n" + ."\n" + .'> 产品名称在当前实例下需保持唯一。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => 'Light'], ], [ - 'name' => 'DeviceName', + 'name' => 'NodeType', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'test456', - ], + 'schema' => ['description' => '产品的节点类型,取值:'."\n" + ."\n" + .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。作为网关子设备时,必须同时传入**ProtocolType**。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。'."\n" + ."\n" + .''."\n" + .'>MQTT型实例下,设备需作为直连设备接入物联网平台,**NodeType**必须传入**0.**。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7941C8CD-7764-4A94-8CD9-E2762D4A73AC', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'GroupInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'GroupInfo' => [ - 'description' => '调用成功时,返回的分组信息。详情请参见以下GroupInfo。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'father1543152336554', - ], - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => '6a3FF2XE2BKa****', - ], - 'GroupType' => [ - 'description' => '分组类型。', - 'type' => 'string', - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'father desc', - ], - 'UtcCreate' => [ - 'description' => '分组的创建时间。', - 'type' => 'string', - 'example' => '2018-11-25T13:25:37.000Z', - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'name' => 'DataFormat', + 'in' => 'query', + 'schema' => ['description' => '数据格式。可选值:'."\n" + ."\n" + .'- **0**:透传/自定义格式(CUSTOM_FORMAT)。'."\n" + .'- **1**:Alink协议(ALINK_FORMAT)。'."\n" + ."\n" + .''."\n" + .'>MQTT型实例下,设备通信的数据格式为原始自定义格式,**DataFormat**必须传入**0**。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7941C8CD-7764-4A94-8CD9-E2762D4A73AC\\",\\n \\"Success\\": true,\\n \\"GroupInfos\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupName\\": \\"father1543152336554\\",\\n \\"GroupId\\": \\"6a3FF2XE2BKa****\\",\\n \\"GroupType\\": \\"LINK_PLATFORM_DYNAMIC\\",\\n \\"GroupDesc\\": \\"father desc\\",\\n \\"UtcCreate\\": \\"2018-11-25T13:25:37.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n7941C8CD-7764-4A94-8CD9-E2762D4A73AC\\n\\n \\n father desc\\n father1543152336554\\n 2018-11-25T13:25:37.000Z\\n 6a3FF2XE2BKa***\\n LINK_PLATFORM_DYNAMIC\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询某一设备所在的分组列表', - 'summary' => '调用该接口查询某一设备所在的分组列表。', - 'description' => '## 使用说明'."\n" - .'一个设备最多能被添加到10个分组中 。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QuerySuperDeviceGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '为新建产品添加描述信息。长度不超过100个字符。', 'type' => 'string', 'required' => false, 'example' => 'Product test'], ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'AliyunCommodityCode', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '产品版本类型。 '."\n" + ."\n" + .'- 不传入此参数:表示默认创建基础版产品,不支持使用物模型。'."\n" + .'- 传入此参数:仅支持输入**iothub_senior**,表示创建使用物模型的产品。此时需要同时传入参数**DataFormat**。'."\n" + ."\n" + .''."\n" + .'>'."\n" + .'- MQTT型实例下,不支持使用物模型,无需传入此参数。'."\n" + .'- 对于基础版产品,不支持在物联网平台控制台使用**在线调试**和**事件响应**功能。'."\n" + ."\n" + .'>'."\n" + ."\n" + .''."\n" + .'>对于基础版产品,不支持在物联网平台控制台使用**在线调试**功能。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'iothub_senior'], ], [ - 'name' => 'GroupId', + 'name' => 'Id2', 'in' => 'query', - 'schema' => [ - 'description' => '子分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'DMoI2Kby5m62****', - ], + 'schema' => ['description' => '是否使用ID²认证。可选值:'."\n" + ."\n" + .''."\n" + .'- **true**:开通ID²认证。'."\n" + .'- **false**:不开通ID²认证。'."\n" + ."\n" + .''."\n" + ."\n" + .'不传入此参数,则默认为**false**,不开通ID²认证。'."\n" + ."\n" + .''."\n" + .'> 仅华东2(上海)地域支持ID²认证方式。如果此参数值设置为**true**,但传入的**AuthType**参数值不是**id2**,系统将以**AuthType**参数值为准。'."\n" + ."\n" + .'无需传入。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ProtocolType', + 'in' => 'query', + 'schema' => ['description' => '设备接入网关的协议类型。'."\n" + .'使用物模型的产品(**AliyunCommodityCode**=**iothub_senior**),且产品下的设备需通过网关接入物联网平台,需传入此参数。'."\n" + ."\n" + .'可选值:'."\n" + ."\n" + .'- **modbus**:Modbus协议。'."\n" + .'- **opc-ua**:OPC UA协议。'."\n" + .'- **customize**:自定义协议。'."\n" + .'- **ble**:BLE协议。'."\n" + .'- **zigbee**:ZigBee协议。', 'type' => 'string', 'required' => false, 'example' => 'modbus'], + ], + [ + 'name' => 'NetType', + 'in' => 'query', + 'schema' => ['description' => '连网方式。'."\n" + .'产品下的设备为网关设备或直连设备时,需传入此参数。'."\n" + ."\n" + .'可选值:'."\n" + ."\n" + .'- **LORA**:LoRaWAN。'."\n" + .'- **WIFI**: Wi-Fi。'."\n" + .'- **CELLULAR**:蜂窝网。'."\n" + .'- **ETHERNET**:以太网。'."\n" + .'- **OTHER**:其他。'."\n" + ."\n" + .'若不传入此参数,则默认为Wi-Fi。'."\n" + ."\n" + .''."\n" + .'>MQTT型实例下,**NetType**不支持传入**LORA**。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'WIFI'], + ], + [ + 'name' => 'JoinPermissionId', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN入网凭证ID。连网方式**NetType**选择为**LORA**时,该参数必需。'."\n" + ."\n" + .'请调用[QueryLoRaJoinPermissions](~~109293~~)查询您账号下的LoRaWAN入网凭证的**JoinPermissionId**。'."\n" + ."\n" + .'如果您还没有LoRaWAN入网凭证,请访问[物联网络管理平台](https://linkwan.console.aliyun.com/join-permission-authorization)创建。'."\n" + ."\n" + .'无需传入。'."\n", 'type' => 'string', 'required' => false, 'example' => '8***'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>'."\n" + .'- 目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'- 历史调用本API设置的资源组仍有效。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph***'], + ], + [ + 'name' => 'AuthType', + 'in' => 'query', + 'schema' => ['description' => '产品下的设备接入物联网平台的认证方式。'."\n" + ."\n" + .''."\n" + .'- **secret**:使用设备密钥进行设备身份认证。更多信息,请参见[MQTT-TCP连接通信](~~73742~~)。'."\n" + ."\n" + .'- **id2**:使用物联网设备身份认证ID²。'."\n" + ."\n" + .' > 仅华东2(上海)地域支持ID²认证方式。连网方式**NetType**为**LORA**的产品不支持ID²认证方式。 选择使用ID²认证,需购买ID²服务。'."\n" + ."\n" + .' 更多信息,请参见[使用ID²认证](~~141661~~)。'."\n" + ."\n" + .'- **one-party**:需要将设备认证信息(UserName、Password、SN)导入物联网平台,物联网平台基于设备认证信息对设备进行身份认证。'."\n" + ."\n" + .' > 仅MQTT型实例下,**AuthType**可以且必须传入**one-party**。'."\n" + ."\n\n" + .''."\n" + ."\n\n" + .'若不传入此参数,默认值为**secret**。'."\n" + ."\n" + .'无需传入此参数。默认值为**secret**,表示使用设备密钥进行设备身份认证。更多信息,请参见[MQTT-TCP连接通信](~~73742~~)。'."\n", 'type' => 'string', 'required' => false, 'example' => 'secret'], + ], + [ + 'name' => 'CategoryKey', + 'in' => 'query', + 'schema' => ['description' => '产品品类的标识符。如果传入此参数,创建的产品将使用指定品类的物模型;不传入,则不使用任何品类的标准物模型。'."\n" + .'调用[ListThingTemplates](~~150316~~),从返回结果中查看物联网平台预定义的品类信息,获取CategoryKey的取值。', 'type' => 'string', 'required' => false, 'example' => 'Lighting'], + ], + [ + 'name' => 'PublishAuto', + 'in' => 'query', + 'schema' => ['description' => '是否在产品创建后自动发布物模型。'."\n" + ."\n" + .'- **true**:发布。'."\n" + .'- **false**:不发布。'."\n" + ."\n" + .'不传入此参数,取默认值为**true**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'ValidateType', + 'in' => 'query', + 'schema' => ['description' => '数据校验级别。不传入此参数时,默认为弱校验。可取值:'."\n" + ."\n" + .'- **1**:弱校验。只校验设备数据的idetifier和dataType字段,不校验其他字段,可流转全量数据。'."\n" + ."\n" + .' 校验通过的数据展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。校验不通过的数据则不展示。'."\n" + ."\n" + .' 通过流转数据中的参数**checkFailedData**,可查看校验不通过的数据。更多信息,请参见[数据格式](~~73736~~)。'."\n" + ."\n" + .'- **2**:免校验。对上报的数据不进行校验,流转全量数据。'."\n" + ."\n" + .' 数据不展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -15575,144 +10528,155 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7411716B-A488-4EEB-9AA0-6DB05AD2491F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'ProductKey' => ['description' => '产品的**ProductKey**,物联网平台为产品颁发的唯一标识符。', 'type' => 'string', 'example' => 'a1FlqIQ****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的新建产品信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'GroupInfo' => [ - 'description' => '调用成功时,返回的父分组信息数据。请参见以下**GroupInfo**。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '子分组所属的父分组ID。', - 'type' => 'string', - 'example' => 'tDQvBJqbUyHskDse', - ], - 'GroupName' => [ - 'description' => '子分组所属的父分组名称。', - 'type' => 'string', - 'example' => 'IOTTEST', - ], - 'GroupDesc' => [ - 'description' => '父分组描述。', - 'type' => 'string', - 'example' => 'A test', - ], - ], - ], - ], + 'AuthType' => ['description' => '产品下的设备接入物联网平台的认证方式。'."\n" + ."\n" + .''."\n" + .'- **secret**:使用设备密钥进行设备身份认证。'."\n" + .'- **id2**:使用物联网设备身份认证ID²。'."\n" + .'- **one-party**:使用自定义认证信息(Username、Password、SN)认证。'."\n" + ."\n" + .'', 'type' => 'string', 'example' => 'secret'], + 'ProductKey' => ['description' => '物联网平台为新建产品颁发的全局唯一标识。'."\n" + ."\n" + .'> 请妥善保管新建产品的**ProductKey**。在其他操作中会用到该信息。', 'type' => 'string', 'example' => 'a1FlqIQ****'], + 'ProductName' => ['description' => '产品的名称。', 'type' => 'string', 'example' => 'Test'], + 'NodeType' => ['description' => '产品的节点类型,取值:'."\n" + ."\n" + .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。'."\n" + ."\n" + .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '产品描述信息。', 'type' => 'string', 'example' => 'Product test'], + 'Id2' => ['description' => '是否使用ID²认证。'."\n" + ."\n" + .'- **true**:开通ID²认证。'."\n" + .'- **false**:不开通ID²认证。', 'type' => 'boolean', 'example' => 'false'], + 'ProductSecret' => ['description' => '产品密钥。', 'type' => 'string', 'example' => 'U5tW7i44uilc****'], + 'ProtocolType' => ['description' => '设备接入网关协议类型。'."\n" + ."\n" + .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', 'type' => 'string', 'example' => 'modbus'], + 'DataFormat' => ['description' => '产品类型数据格式。'."\n" + ."\n" + .'- **0**:透传/自定义格式(CUSTOM_FORMAT)。'."\n" + .'- **1**:Alink协议(ALINK_FORMAT)。'."\n" + ."\n" + .'> 此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)特有参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'AliyunCommodityCode' => ['description' => '产品类型。'."\n" + ."\n" + .'- **iothub_senior**:使用物模型。'."\n" + .'- **iothub**:不使用物模型。', 'type' => 'string', 'example' => 'iothub_senior'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7411716B-A488-4EEB-9AA0-6DB05AD2491F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupId\\": \\"tDQvBJqbUyHskDse\\",\\n \\"GroupName\\": \\"IOTTEST\\",\\n \\"GroupDesc\\": \\"A test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n IOTTEST\\r\\n tDQvBJqbUyHskDse\\r\\n A test.\\r\\n \\r\\n 7411716B-A488-4EEB-9AA0-6DB05AD2491F\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '根据子分组ID查询父分组信息', - 'summary' => '调用该接口根据子分组ID查询父分组信息。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ProductKey\\": \\"a1FlqIQ****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1FlqIQ****\\",\\n \\"ProductName\\": \\"Test\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"Product test\\",\\n \\"Id2\\": false,\\n \\"ProductSecret\\": \\"U5tW7i44uilc****\\",\\n \\"ProtocolType\\": \\"modbus\\",\\n \\"DataFormat\\": 1,\\n \\"AliyunCommodityCode\\": \\"iothub_senior\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n Product test\\n 1\\n modbus\\n a1FlqIQ****\\n U5tW7i44uilc****\\n 0\\n Test\\n iothub_senior\\n secret\\n rg-acfmxazb4ph****\\n \\n a1FlqIQ****\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n","errorExample":""}]', + 'title' => '新建产品', + 'summary' => '调用该接口创建产品。', + 'description' => '## 使用说明'."\n" + .''."\n" + .'- 若产品需要使用物模型功能,必选传入请求参数**AliyunCommodityCode**和**DataFormat**,且**AliyunCommodityCode**值为**iothub_senior**。详细说明,请参见下文**请求参数**表。'."\n" + .'- 在MQTT型实例下仅支持创建一个产品。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .''."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'若产品需要使用物模型功能,必选传入请求参数**AliyunCommodityCode**和**DataFormat**,且**AliyunCommodityCode**值为**iothub_senior**。详细说明,请参见下文**请求参数**表。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceListByDeviceGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateProductDistributeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'SourceInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '产品所属的源实例ID。'."\n" + ."\n" + .'- 各地域公共实例ID:'."\n" + ."\n" + .' - 华东2(上海):iotx-oxssharez200。'."\n" + .' - 日本:iotx-oxssharez300。'."\n" + .' - 新加坡:iotx-oxssharez400。'."\n" + .' - 美国(硅谷):iotx-oxssharez500。'."\n" + .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" + .' - 德国(法兰克福):iotx-oxssharez700。'."\n" + ."\n" + .'- 企业版实例ID:'."\n" + .' '."\n" + .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" + .' '."\n" + .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n" + ."\n" + .' ', 'type' => 'string', 'required' => true, 'example' => 'iot-cn-st2***'], ], [ - 'name' => 'GroupId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,分组的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => '7DIgqIl1Ijnh****', - ], + 'schema' => ['description' => '待分发产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PageSize', + 'name' => 'TargetInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中,每页显示的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '产品分发的目标实例ID。实例ID详情,请参见参数**SourceInstanceId**描述。', 'type' => 'string', 'required' => true, 'example' => 'iot-cn-6ja***'], ], [ - 'name' => 'CurrentPage', + 'name' => 'TargetUid', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示查询结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '产品所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。'."\n" + ."\n" + .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', 'type' => 'string', 'required' => false, 'example' => '198***'], + ], + [ + 'name' => 'TargetAliyunId', + 'in' => 'query', + 'schema' => ['description' => '产品所属的阿里云账号。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**登录账号**。'."\n" + ."\n" + .'**TargetUid**与**TargetAliyunId**参数至少传入一个。', 'type' => 'string', 'required' => false, 'example' => ' io****@example.com'], ], ], 'responses' => [ @@ -15720,189 +10684,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B1A921D9-1061-4D45-9F12-EA6B0FDEDE30', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页所显示的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SimpleDeviceInfo' => [ - 'description' => '调用成功时,返回的设备列表信息数据。详情请参见以下**SimpleDeviceInfo**。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属的产品Key。', - 'type' => 'string', - 'example' => 'a1hWjHD****', - ], - 'ProductName' => [ - 'description' => '设备所属的产品名称。', - 'type' => 'string', - 'example' => 'WIFIdevice', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'ios_1207_08', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'TfmUAeJjQQhCPH84UVNn0010c6****', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'JobId' => ['description' => '调用成功后,返回的任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => 'UbmsMHmkqv0PiAG****010001'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B1A921D9-1061-4D45-9F12-EA6B0FDEDE30\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 3,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1hWjHD****\\",\\n \\"ProductName\\": \\"WIFIdevice\\",\\n \\"DeviceName\\": \\"ios_1207_08\\",\\n \\"IotId\\": \\"TfmUAeJjQQhCPH84UVNn0010c6****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 1\\r\\n \\r\\n \\r\\n ios_1207_08\\r\\n a1hWjHD****\\r\\n WIFIdevice\\r\\n TfmUAeJjQQhCPH84UVNn0010c6****\\r\\n \\r\\n \\r\\n ios_1207_07\\r\\n a1hWjHD****\\r\\n WIFIgateway\\r\\n wVPeAksaboXBlRgvZNHQ001031****\\r\\n \\r\\n \\r\\n E1IPK25iL4CTOwnuI2yt\\r\\n a1mV8bK****\\r\\n yanlv\\r\\n E1IPK25iL4CTOwnuI2yt001059****\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n B1A921D9-1061-4D45-9F12-EA6B0FDEDE30\\r\\n true\\r\\n 3\\r\\n","errorExample":""}]', - 'title' => '查询分组中的设备列表', - 'summary' => '调用该接口查询分组中的设备列表。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nUbmsMHmkqv0PiAG****010001\\ntrue\\n","errorExample":""}]', + 'title' => '创建产品分发任务', + 'summary' => '调用该接口创建产品分发任务,将指定产品分发到指定的目标实例。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" + ."\n" + .'- 不支持调用本接口创建跨账号的分发任务。'."\n" + ."\n" + .'- 产品分发任务不会同步分发产品下设备。'."\n" + ."\n" + .'- 产品分发完成后,不支持修改产品的物模型及相关脚本信息。'."\n" + ."\n" + .'- 单个阿里云账号下,产品分发和设备分发的任务总数不超过10个。创建设备分发任务,请参见[CreateDeviceDistributeJob](~~199390~~)。'."\n" + ."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceGroupByTags' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateProductTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '指定显示查询结果的第几页。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '指定每页显示的记录数。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Tag', + 'name' => 'ProductTag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '标签列表。', + 'description' => '产品标签列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TagValue' => [ - 'description' => '分组标签值(value)。', - 'type' => 'string', - 'required' => true, - 'example' => 'tag', - ], - 'TagKey' => [ - 'description' => '分组标签键(key)。', - 'type' => 'string', - 'required' => true, - 'example' => 'group', - ], + 'TagValue' => ['description' => '产品标签值(Value)。长度不可超过128字符,可包含中文、英文字母、数字、下划线(_)和短划线(-)。一个中文汉字算2个字符。', 'type' => 'string', 'required' => false, 'example' => 'TagValue'], + 'TagKey' => ['description' => '产品标签键(Key)。长度不可超过30个字符,可包含英文大小写字母,数字和半角句号(.)。', 'type' => 'string', 'required' => false, 'example' => 'room'], ], 'required' => false, + 'description' => '', ], - 'required' => false, + 'required' => true, 'maxItems' => 10, ], ], @@ -15912,270 +10787,147 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9599EE98-1642-4FCD-BFC4-039E458A4693', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功,表示产品绑定标签成功。'."\n" + .'- **false**:调用失败,表示产品绑定标签失败。', 'type' => 'boolean', 'example' => 'true'], + 'InvalidProductTags' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'DeviceGroup' => [ - 'description' => '调用成功时,返回分组信息。', + 'ProductTag' => [ + 'description' => '调用失败时,返回不合法的产品标签列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => 'test11', - ], - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => 'Z0ElGF5aqc0t****', - ], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => '123$'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'room'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9599EE98-1642-4FCD-BFC4-039E458A4693\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DeviceGroup\\": [\\n {\\n \\"GroupName\\": \\"test11\\",\\n \\"GroupId\\": \\"Z0ElGF5aqc0t****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n 1 \\r\\n \\r\\n \\r\\n test11 \\r\\n Z0ElGF5aqc0t**** \\r\\n \\r\\n \\r\\n 1 \\r\\n 10 \\r\\n 9599EE98-1642-4FCD-BFC4-039E458A4693 \\r\\n true \\r\\n 1 \\r\\n","errorExample":""}]', - 'title' => 'QueryDeviceGroupByTags', - 'summary' => '调用该接口根据标签查询设备分组。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"InvalidProductTags\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"123$\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n","errorExample":""}]', + 'title' => 'CreateProductTags', + 'summary' => '调用该接口为指定产品创建标签。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'- 单次调用该接口最多能为指定产品创建10个标签。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'- 单个产品的标签总数不超过100个。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateThingModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateProductTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**,物联网平台为产品颁发的全局唯一标识符。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)接口,查看当前账号下所有产品的信息。'."\n" - ."\n\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要创建Topic类所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'aldDEin****'], ], [ - 'name' => 'ThingModelJson', + 'name' => 'TopicShortName', 'in' => 'query', - 'schema' => [ - 'description' => '新增的功能定义详情。最多能包含10个功能的定义信息。'."\n" - ."\n" - .'在**ThingModelJson**每个property结构中,可以使用**extendConfig**来描述扩展物模型的数据。更多信息,请参见[ThingModelJson数据说明](~~150457~~)。'."\n" - ."\n" - .'>此处参数**ThingModelJson**的值不可传入完整的物模型TSL数据,只需传入JSON格式的物模型**properties**、**services**和**events**字段数据。'."\n" - .'>'."\n" - ."\n" - .'以下示例值为包含多种数据类型的属性数据,例如**STRUCT**、**ARRAY**。'."\n" - .'```'."\n" - .'{'."\n" - .' "properties": ['."\n" - .' {'."\n" - .' "custom": true,'."\n" - .' "dataSpecsList": ['."\n" - .' {'."\n" - .' "childDataType": "TEXT",'."\n" - .' "childName": "设备SIM卡的CCID",'."\n" - .' "dataSpecs": {'."\n" - .' "custom": true,'."\n" - .' "dataType": "TEXT",'."\n" - .' "length": 20'."\n" - .' },'."\n" - .' "dataType": "STRUCT",'."\n" - .' "identifier": "CCID",'."\n" - .' "name": "设备SIM卡的CCID"'."\n" - .' },'."\n" - .' {'."\n" - .' "childDataType": "INT",'."\n" - .' "childName": "电池电量",'."\n" - .' "dataSpecs": {'."\n" - .' "custom": true,'."\n" - .' "dataType": "INT",'."\n" - .' "max": "60000",'."\n" - .' "min": "0",'."\n" - .' "step": "1"'."\n" - .' },'."\n" - .' "dataType": "STRUCT",'."\n" - .' "identifier": "battery",'."\n" - .' "name": "电池电量"'."\n" - .' },'."\n" - .' {'."\n" - .' "childDataType": "TEXT",'."\n" - .' "childName": "其他信息",'."\n" - .' "dataSpecs": {'."\n" - .' "custom": true,'."\n" - .' "dataType": "TEXT",'."\n" - .' "length": 1024'."\n" - .' },'."\n" - .' "dataType": "STRUCT",'."\n" - .' "identifier": "other_info",'."\n" - .' "name": "其他信息"'."\n" - .' }'."\n" - .' ],'."\n" - .' "dataType": "STRUCT",'."\n" - .' "identifier": "DEV_INFO",'."\n" - .' "name": "设备信息",'."\n" - .' "productKey": "a1T***",'."\n" - .' "propertyId": 18786548,'."\n" - .' "required": false,'."\n" - .' "rwFlag": "READ_ONLY"'."\n" - .' },'."\n" - .' {'."\n" - .' "custom": true,'."\n" - .' "dataSpecs": {'."\n" - .' "childDataType": "INT",'."\n" - .' "custom": true,'."\n" - .' "dataType": "ARRAY",'."\n" - .' "size": 1,'."\n" - .' "dataSpecs": {'."\n" - .' "custom": true,'."\n" - .' "dataType": "INT",'."\n" - .' "max": "65535",'."\n" - .' "min": "0",'."\n" - .' "step": "1",'."\n" - .' "unit": "ppm",'."\n" - .' "unitName": "百万分率"'."\n" - .' }'."\n" - .' },'."\n" - .' "dataType": "ARRAY",'."\n" - .' "identifier": "airRH_SR",'."\n" - .' "name": "除湿机湿度",'."\n" - .' "productKey": "a1T***",'."\n" - .' "propertyId": 18786551,'."\n" - .' "required": false,'."\n" - .' "rwFlag": "READ_ONLY"'."\n" - .' }'."\n" - .' ],'."\n" - .' "services": [...],'."\n" - .' "events": [...]'."\n" - .'}'."\n" - .'```'."\n" - ."\n\n" - ."\n\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{ "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1bPo9p****", "required": false, "customFlag": true, "name": "sim卡类型" } ], "services":[...], "events":[...] }', - ], + 'schema' => ['description' => '设置Topic类的自定义类目名称。'."\n" + ."\n" + .'Topic格式必须以`/`进行分层,区分每个类目。类目命名只能包含字母、数字和下划线(_),每级类目不能为空。'."\n" + ."\n" + .'> **Operation**为**SUB**(订阅)时,才可以使用通配符`+`和`#`自定义Topic类,以便设备实现批量订阅Topic。通配符使用方法请参见[带通配符的自定义Topic](~~85539~~) 。'."\n" + ."\n" + .'- 对于云网关产品,Topic类完全由用户自定义输入。支持使用`${deviceName}`通配**DeviceName**。'."\n" + .'- 对于非云网关产品,自定义Topic类前三个类目已固定为`/${productKey}/${deviceName}/user/`,定义**TopicShortName**将Topic类填充完整。', 'type' => 'string', 'required' => true, 'example' => 'submit'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。支持英文大小写字母、数字和下划线(_),不超过30个字符。'."\n" - ."\n" - .'需与**FunctionBlockName**结合使用。不传入此参数时,新增功能导入默认模块。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '设备对该Topic类的操作权限,取值:'."\n" + ."\n" + .'- **SUB**:订阅。'."\n" + .'- **PUB**:发布。'."\n" + .'- **ALL**:发布和订阅。', 'type' => 'string', 'required' => true, 'example' => 'PUB'], ], [ - 'name' => 'FunctionBlockName', + 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" - ."\n" - .'需与**FunctionBlockId**结合使用。不传入此参数时,新增功能导入默认模块。', - 'type' => 'string', - 'required' => false, - 'example' => '电池模块', - ], + 'schema' => ['description' => 'Topic类的描述信息。长度限制为100字符(一个中文汉字占一个字符)。', 'type' => 'string', 'required' => false, 'example' => 'submit a test topic'], + ], + [ + 'name' => 'EnableProxySubscribe', + 'in' => 'query', + 'schema' => ['description' => '**Operation**为**SUB**(订阅)或**ALL**(发布和订阅),可开启代理订阅。'."\n" + .'取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:不开启。'."\n" + ."\n" + .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'Codec', + 'in' => 'query', + 'schema' => ['description' => '尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。'."\n" + .'取值:'."\n" + ."\n" + .'- **compress**:压缩。'."\n" + .'- **decompress**:解压缩。'."\n" + ."\n" + .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。'."\n" + ."\n" + .'>**TopicShortName**传入通配符(`+`和`#`)时,不可同时传入**Codec**。如果创建通配Topic类的同时,开启了数据压缩或解压缩功能,调用本接口创建该Topic类会失败。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'compress'], ], ], 'responses' => [ @@ -16183,157 +10935,165 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'TopicId' => ['description' => '调用成功时,物联网平台为新建的Topic类生成的Topic ID。'."\n" + ."\n" + .'> 请妥善保管该信息。在调用与该Topic类相关的接口时,您可能需要提供对应的Topic ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', - 'title' => '为物模型新增功能', - 'summary' => '为指定产品的物模型新增功能,支持同时新增物模型扩展描述。', - 'description' => "\n" - .'## 使用说明'."\n" - ."\n" - .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口新增物模型功能。'."\n" - ."\n" - .'- 调用接口前,您可通过[json-schema](https://github.com/everit-org/json-schema?spm=a2c4g.11186623.2.23.575832d9zD7fZb)对**ThingModelJson**中的入参进行预校验,请参见[ThingModelJson数据说明](~~150457~~)中的“校验”。'."\n" - ."\n" - .'- 单次调用最多可新增10个功能,即新增属性、服务和事件的数量总计不超过10。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"TopicId\\": 10000,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n 10000\\r\\n","errorExample":""}]', + 'title' => '为指定产品创建自定义Topic类', + 'summary' => '调用该接口为指定产品创建自定义Topic类。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateThingModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。'."\n" - ."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要执行的SQL SELECT语句。具体内容参照[SQL表达式](~~30554~~)。'."\n" + ."\n" + .'> 此处传入的是SELECT下的内容。例如,如果SELECT语句为`SELECT a,b,c`,则此处传入`a,b,c`。', 'type' => 'string', 'required' => false, 'example' => 'deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature'], ], [ - 'name' => 'Identifier', + 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'description' => '功能原有的标识符。'."\n" - ."\n" - .'您可调用[GetThingModelTsl](~~150319~~),从返回参数**TslStr**中查看具体功能的**identifier**。', - 'type' => 'string', - 'required' => false, - 'example' => 'Temperature', - ], + 'schema' => ['description' => '应用该规则的具体Topic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`是具体设备的名称,`topicShortName`是Topic短名称。'."\n" + ."\n" + .'- 基础通信Topic或物模型通信Topic的ShortTopic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" + ."\n" + .' - `/thing/event/property/post `设备上报的属性消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" + .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" + .' - `/thing/list/found`网关上报发现子设备消息。'."\n" + .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" + .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" + .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" + .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" + .' - `/edge/driver/${driver_id}/point_post`物联网边缘计算的透传模式Topic消息,`${}`中是物联网边缘计算的设备接入驱动ID。'."\n" + ."\n" + .' OTA升级批次状态通知Topic也属于基础通信Topic,ShortTopic格式为:`${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" + .'- 自定义Topic的ShortTopic,如:`${deviceName}/user/get`。'."\n" + ."\n" + .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" + ."\n" + .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" + .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" + .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" + .' 使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" + .'- 设备状态变化通知Topic的ShortTopic:`${deviceName}`。'."\n" + ."\n" + .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。', 'type' => 'string', 'required' => false, 'example' => '+/thing/event/property/post'], ], [ - 'name' => 'ThingModelJson', + 'name' => 'Where', 'in' => 'query', - 'schema' => [ - 'description' => '新的功能定义详情。'."\n" - ."\n" - .'- **Identifier**不为空时,表示更新功能的标识符,最多能包含1个功能的标识符定义信息。'."\n" - .'- **Identifier**为空时,表示更新一个服务或事件下,输入或输出参数的定义,可包含多个参数的定义信息,最多不超过50个。'."\n" - ."\n" - .'ThingModelJson的编写指导,请参见[ThingModelJson数据说明](~~150457~~)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '{ "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1Jw4i****", "required": false, "customFlag": true, "name": "sim卡类型" } ] }', - ], + 'schema' => ['description' => '规则的触发条件。具体内容参照[SQL表达式](~~30554~~)。'."\n" + ."\n" + .'> 此处传入的是**Where**中的内容。例如,如果**Where**语句为`Where a>10`,则此处传入`a>10`。', 'type' => 'string', 'required' => false, 'example' => 'Temperature>35'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'此参数和**FunctionBlockName**均不传入时,更新默认模块中功能。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '应用该规则的产品ProductKey。', 'type' => 'string', 'required' => false, 'example' => 'a1T27vz****'], ], [ - 'name' => 'FunctionBlockName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" - ."\n" - .'- 此参数和**FunctionBlockId**均不传入时,更新默认模块中功能。'."\n" - ."\n" - .'- 如果传入此参数,必须与**FunctionBlockId**结合使用,可修改**FunctionBlockId**对应的自定义模块名称。'."\n" - ."\n" - .'> 不支持修改默认模块名称。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '电池模块', - ], + 'schema' => ['description' => '规则名称。支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文或日文占2个字符。', 'type' => 'string', 'required' => true, 'example' => 'iot_test1'], + ], + [ + 'name' => 'RuleDesc', + 'in' => 'query', + 'schema' => ['description' => '规则的描述信息。长度限制为100个字符,一个中文字符计为1个字符。', 'type' => 'string', 'required' => false, 'example' => 'rule test'], + ], + [ + 'name' => 'DataType', + 'in' => 'query', + 'schema' => ['description' => '规则处理的数据格式,需与待处理的设备数据格式一致。取值:'."\n" + ."\n" + .'- **JSON**(默认):JSON数据。'."\n" + .'- **BINARY**:二进制数据。'."\n" + ."\n" + .'> 若选择为**BINARY**,**TopicType**不能选择为0(基础通信Topic或物模型通信Topic),且不支持将数据转发至实例内的时序数据存储、时序数据库、表格存储和云数据库RDS版。', 'type' => 'string', 'required' => false, 'example' => 'JSON'], + ], + [ + 'name' => 'TopicType', + 'in' => 'query', + 'schema' => ['description' => '- **0**:**ShortTopic**参数描述中的基础通信Topic或物模型通信Topic,包含OTA升级批次状态通知Topic。'."\n" + .'- **1**:自定义Topic。'."\n" + .'- **2**:设备状态变化通知Topic:`/as/mqtt/status/${productKey}/${deviceName}`。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>'."\n" + .'- 目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'- 历史调用本API设置的资源组仍有效。'."\n" + ."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****'], + ], + [ + 'name' => 'Topic', + 'in' => 'query', + 'schema' => ['description' => '待添加规则的完整Topic。'."\n" + ."\n" + .'如果传入此参数,无需再传入参数**ShortTopic**和**TopicType**。', 'type' => 'string', 'required' => false, 'example' => '/sys/g18l***/device1/thing/event/property/post'], ], ], 'responses' => [ @@ -16341,287 +11101,375 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RuleId' => ['description' => '调用成功时,规则引擎为该规则生成的规则ID,作为该规则的标识符。'."\n" + ."\n" + .'> 请妥善保管该信息。在调用和规则相关的接口时,您可能需要提供对应的规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n5573D217-8E3E-47AD-9331-2083B88E64B2\\ntrue\\n","errorExample":""}]', - 'title' => '更新产品物模型功能', - 'summary' => '更新指定产品物模型中的单个功能,支持更新物模型扩展描述。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"RuleId\\": 100000\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n E4C0FF92-2A86-41DB-92D3-73B60310D25E\\r\\n 100000\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '对指定Topic新建一个规则', + 'summary' => '调用该接口对指定Topic新建一个规则。', 'description' => '## 使用说明'."\n" + .'调用该接口时,请求参数**ProductKey**必须传入。'."\n" ."\n" - .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口更新物模型功能。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'- 如需更新功能定义信息,您可通过[json-schema](https://github.com/everit-org/json-schema?spm=a2c4g.11186623.2.23.575832d9zD7fZb)对**ThingModelJson**中的入参进行预校验,请参见[ThingModelJson数据说明](~~150457~~)中的“校验”。'."\n" - ."\n\n" - .'- 单次调用最多可更新1个功能,即更新1个属性、服务或事件的定义信息。'."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> 如需启动规则,请求中需包含ProductKey、ShortTopic、Select三个参数的信息。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryThingModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateRuleAction' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'schema' => ['description' => '要为其创建动作的规则ID。可在物联网平台控制台对应实例下,**规则引擎**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], [ - 'name' => 'ProductKey', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '规则动作类型,取值:'."\n" + ."\n" + .'- **REPUBLISH**:将根据规则处理后的Topic数据转发至另一个物联网平台 Topic。'."\n" + .'- **AMQP**:数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将根据规则处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将根据规则处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将根据规则处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将根据规则处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将根据规则处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。'."\n" + ."\n" + .'> 数据格式为二进制的规则(即规则的**DataType**参数是**BINARY**)不支持转发数据至OTS(表格存储)。', 'type' => 'string', 'required' => true, 'example' => 'REPUBLISH'], ], [ - 'name' => 'ModelVersion', + 'name' => 'Configuration', 'in' => 'query', - 'schema' => [ - 'description' => '要查看的物模型版本号。'."\n" - .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" - ."\n" - .'不传入此参数,则查询草稿状态的物模型功能定义;传入此参数,则查询指定版本的物模型功能定义。', - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'schema' => ['description' => '该规则动作的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例见下文请求参数补充说明。', 'type' => 'string', 'required' => true, 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'ErrorActionFlag', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '该规则动作是否为转发错误操作数据的转发动作,即转发流转到其他云产品失败且重试失败的数据。 可选值:'."\n" + ."\n" + .'- **true**:该规则动作转发错误操作数据。'."\n" + .'- **false**:该规则动作不转发错误操作数据,而是正常转发操作。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ 200 => [ 'schema' => [ + 'description' => '返回的数据。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ProductKey' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'ThingModelJson' => [ - 'description' => '物模型的功能定义。默认模块和自定义模块的物模型数据格式不同。'."\n" - ."\n" - .'ThingModelJson取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。', - 'type' => 'string', - 'example' => '{ "productKey":"a1Jw4id***", "_ppk":{ "version":"1.1", "description":"xxx" }, "properties":[ { "identifier": "SimCardType", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1Jw4idFWHX", "required": false, "customFlag": true, "name": "sim卡类型" } ], "services":[], "events":[] }', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ActionId' => ['description' => '调用成功时,规则引擎为该规则动作生成的规则动作ID,作为其标识符。'."\n" + ."\n" + .'> 请妥善保管该信息。在调用与规则动作相关的接口时,您可能需要提供对应的规则动作ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '10003'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ThingModelJson\\": \\"{ \\\\\\"productKey\\\\\\":\\\\\\"a1Jw4id***\\\\\\", \\\\\\"_ppk\\\\\\":{ \\\\\\"version\\\\\\":\\\\\\"1.1\\\\\\", \\\\\\"description\\\\\\":\\\\\\"xxx\\\\\\" }, \\\\\\"properties\\\\\\":[ { \\\\\\"identifier\\\\\\": \\\\\\"SimCardType\\\\\\", \\\\\\"dataSpecs\\\\\\": { \\\\\\"max\\\\\\": \\\\\\"1\\\\\\", \\\\\\"dataType\\\\\\": \\\\\\"INT\\\\\\", \\\\\\"unit\\\\\\": \\\\\\"mmHg\\\\\\", \\\\\\"min\\\\\\": \\\\\\"0\\\\\\", \\\\\\"step\\\\\\": \\\\\\"1\\\\\\" }, \\\\\\"std\\\\\\": false, \\\\\\"custom\\\\\\": true, \\\\\\"dataType\\\\\\": \\\\\\"INT\\\\\\", \\\\\\"rwFlag\\\\\\": \\\\\\"READ_ONLY\\\\\\", \\\\\\"productKey\\\\\\": \\\\\\"a1Jw4idFWHX\\\\\\", \\\\\\"required\\\\\\": false, \\\\\\"customFlag\\\\\\": true, \\\\\\"name\\\\\\": \\\\\\"sim卡类型\\\\\\" } ], \\\\\\"services\\\\\\":[], \\\\\\"events\\\\\\":[] }\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1F9041A2-ED5B-4A5A-9C44-598E28C0B434\\n \\n {\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a114xeJ****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJGj2p\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}\\n \\n true\\n","errorExample":""}]', - 'title' => '查看指定产品的物模型中的功能定义详情', - 'summary' => '调用该接口查看指定产品物模型中的功能定义详情。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ActionId\\": 10003,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\r\\n 10003\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'CreateRuleAction', + 'summary' => '调用该接口在指定的规则下创建一个规则动作,定义将处理后的Topic数据,转发至物联网平台的其他Topic,或所支持的其他阿里云服务。', 'description' => '## 使用说明'."\n" - .'物模型的功能定义详情中包含物模型中的所有属性、服务和事件定义。'."\n" ."\n" - .'如果产品物模型中添加了自定义模块,请求参数**FunctionBlockId**的值为空时,可获取到自定义模块列表;不为空时,可获取指定自定义模块的功能定义。'."\n" - .'返回参数**ThingModelJson**取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。'."\n" + .'- 服务地域不同,所支持的目标云产品有所不同。规则引擎支持的地域及目标云产品,请参见[地域与可用区](~~85669~~)。'."\n" + .'- 一个规则下面最多可创建10个规则动作。'."\n" + .'- 您可以通过调用该API创建规则动作,定义将数据转发至物联网平台其他Topic、AMQP消费组和其他阿里云产品(DataHub、消息队列RocketMQ、消息服务、函数计算和表格存储)。'."\n" + .'如果您想将数据转发至实例内的时序数据存储、时序数据库(TSDB)和云数据库RDS版,请在[物联网平台控制台](https://iot.console.aliyun.com)进行操作。'."\n" + ."\n\n" ."\n" .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享该阿里云账号配额。', + 'requestParamsDescription' => '**REPUBLISH类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|------|------|'."\n" + .'|topic|转发的目标Topic(物模型通信Topic或自定义Topic)。支持将数据转发至数据下行的物模型通信Topic:
`/sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set`
`/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}`
变量**${tsl.service.identifier}**的内容由该产品物模型中的服务决定。|'."\n" + .'|topicType|Topic的类型。
0:表示数据下行的物模型通信Topic。
1:表示自定义Topic。|'."\n" ."\n\n" + .'REPUBLISH 类型**Configuration**示例:'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'```'."\n" + .'sys类型:{"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}'."\n" + .'自定义类型:{"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}'."\n" + .'```'."\n" + .'**DATAHUB类型Configuration定义**'."\n" ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'|名称|描述|'."\n" + .'|-------------|------------ |'."\n" + .'|projectName|目标DataHub中用来接收信息的具体Project。|'."\n" + .'|topicName|目标DataHub中用来接收信息的具体Topic。|'."\n" + .'|regionName|目标DataHub所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|role|授权角色信息。通过授予IoT指定的系统服务角色,您可以授权物联网平台访问您的DataHub。授权角色信息格式:
`{"roleArn":"acs:ram::6541\\*\\**:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}`
请将`6541\\*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingDataHubRole`是访问控制中定义的服务角色。用于授予物联网平台访问DataHub。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + .'|schemaVals|目标DataHub中的Schema列表,详情参见下表schemaVals。|'."\n" + ."\n" + .'schemaVals'."\n" + ."\n\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|name|列名。|'."\n" + .'|value|列值。|'."\n" + .'|type|列类型。
BIGINT:大整数型。
DOUBLE:双精度浮点型。
BOOLEAN:布尔型。
TIMESTAMP:时间戳型。
STRING:字符串型。
DECIMAL:小数型。|'."\n" + ."\n" + .'DATAHUB类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "schemaVals": ['."\n" + .' {'."\n" + .' "name": "devicename",'."\n" + .' "value": "${deviceName}",'."\n" + .' "type": "STRING"'."\n" + .' },'."\n" + .' {'."\n" + .' "name": "msgtime",'."\n" + .' "value": "${msgTime}",'."\n" + .' "type": "TIMESTAMP"'."\n" + .' }'."\n" + .' ],'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::6541***:role/aliyuniotaccessingdatahubrole",'."\n" + .' "roleName": "AliyunIOTAccessingDataHubRole"'."\n" + .' },'."\n" + .' "projectName": "iot_datahub_stream",'."\n" + .' "topicName": "device_message",'."\n" + .' "regionName": "cn-shanghai"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**OTS类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|instanceName|表格存储中用来接收信息的实例名称。|'."\n" + .'|tableName|表格存储中用来接收信息的数据表名称。|'."\n" + .'|regionName|目标实例所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的表格存储。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingOTSRole`是访问控制中定义的服务角色。用于授予物联网平台访问表格存储。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + .'|primaryKeys|目标表中的主键列表。详情参见下表PrimaryKeys。|'."\n" + ."\n" + .' PrimaryKeys'."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|columnType|主键类型。
INTEGER:整型。
STRING:字符串。
BINARY:二进制。|'."\n" + .'|columnName|主键名称。|'."\n" + .'|columnValue|主键值。|'."\n" + .'|option|主键是否为自增列,取值AUTO\\_INCREMENT或为空。当主键类型为INTEGER,且该字段为AUTO\\_INCREMENT时,主键为自增列。|'."\n" + ."\n" + .'OTS类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "instanceName": "testaaa",'."\n" + .' "tableName": "tt",'."\n" + .' "primaryKeys": ['."\n" + .' {'."\n" + .' "columnType": "STRING",'."\n" + .' "columnName": "ttt",'."\n" + .' "columnValue": "${tt}",'."\n" + .' "option": ""'."\n" + .' },'."\n" + .' {'."\n" + .' "columnType": "INTEGER",'."\n" + .' "columnName": "id",'."\n" + .' "columnValue": "",'."\n" + .' "option": "AUTO_INCREMENT"'."\n" + .' }'."\n" + .' ],'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingotsrole",'."\n" + .' "roleName": "AliyunIOTAccessingOTSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**MNS类型Configuration定义**'."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|themeName| 消息服务中用来接收信息的目标主题名称。|'."\n" + .'|regionName| 目标消息服务所在的阿里云地域代码,例如cn-shanghai。|'."\n" + .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'MNS类型**​Configuration**​​示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "themeName": "mns-test-topic1",'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" + .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**FC类型Configuration定义**'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|functionName| 函数服务中用来接收信息的目标函数名称。|'."\n" + .'|serviceName| 函数服务中用来接收信息的目标服务名称。|'."\n" + .'|regionName| 目标函数服务实例所在阿里云地域的代码,如cn-shanghai。|'."\n" + .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的函数计算服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingFCRole`是访问控制中定义的服务角色。用于授予物联网平台访问函数计算。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'FC类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",'."\n" + .' "roleName": "AliyunIOTAccessingFCRole"'."\n" + .' },'."\n" + .' "functionName": "weatherForecast",'."\n" + .' "serviceName": "weather"'."\n" + .'}'."\n" + .'```'."\n" + .'**ONS类型Configuration定义**'."\n" + ."\n" + .'> 您需通过调用消息队列RocketMQ的SDK,或在消息队列RocketMQ控制台,授权物联网平台访问消息队列RocketMQ(至少要授予物联网平台发布权限),然后才能够成功创建将Topic数据转发至消息队列RocketMQ的规则动作。'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|instanceId|RocketMQ中用来接收消息的目标Topic所属的实例ID。|'."\n" + .'|topic|RocketMQ中用来接收信息的目标Topic。|'."\n" + .'|regionName|目标RocketMQ实例所在的阿里云地域代码,例如cn-shanghai。
> 公网和同区流转,使用普通版RocketMQ实例即可;如果您需要跨区流转,则RocketMQ实例必需是铂金版实例。|'."\n" + .'|tag|(可选)设置标签。长度限制为128字节。|'."\n" + .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息队列RocketMQ服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingONSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息队列RocketMQ。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" + ."\n" + .'ONS类型**Configuration**示例:'."\n" + ."\n\n" + .'```'."\n" + .'{'."\n" + .' "instanceId": "MQ_INST_123157908552****_XXXXXX"'."\n" + .' "topic": "aliyun-iot-XXXXX",'."\n" + .' "regionName": "cn-hangzhou",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",'."\n" + .' "roleName": "AliyunIOTAccessingONSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**AMQP类型Configuration定义**'."\n" + ."\n" + .'|名称|描述|'."\n" + .'|-------------|------------|'."\n" + .'|groupId|消费组ID。|'."\n" + ."\n" + .'AMQP类型**Configuration**示例:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "groupId":"ZTh1JmyLGuZcUfv44p4z00****"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CopyThingModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SourceProductKey', + 'name' => 'RuleName', 'in' => 'query', - 'schema' => [ - 'description' => '要复制的物模型所属产品的ProductKey。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '场景联动规则名称。支持中文、大小写英文字母、数字、下划线(_)和短划线(-),长度限制为1~30个字符。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'TargetProductKey', + 'name' => 'RuleContent', 'in' => 'query', - 'schema' => [ - 'description' => '目标产品的**ProductKey**。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwwG0****', - ], + 'schema' => ['description' => '场景联动规则内容。格式详情请参见[场景联动规则编写说明](~~171059~~)。', 'type' => 'string', 'required' => false, 'example' => '{"action":[{"params":{"content":"${metadata.formattedTime}: 收到定时消息","title":"钉钉机器人通知","webHook":"https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx"},"uri":"action/dingtalk/robot"}],"trigger":{"params":{"cron":"0 * * * * ? 2020","cronType":"quartz_cron"},"uri":"trigger/timer"},"type":"IFTTT"}'], ], [ - 'name' => 'SourceModelVersion', + 'name' => 'RuleDescription', 'in' => 'query', - 'schema' => [ - 'description' => '要复制的物模型版本号。'."\n" - .'可以调用[ListThingModelVersion](~~150318~~),查看源物模型的版本号。', - 'type' => 'string', - 'required' => false, - 'example' => 'V1.0.0', - ], + 'schema' => ['description' => '场景联动规则描述。长度不超过100个字符。', 'type' => 'string', 'required' => false, 'example' => '定时发送消息到钉钉机器人'], ], ], 'responses' => [ @@ -16629,129 +11477,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RuleId' => ['description' => '场景联动规则ID。', 'type' => 'string', 'example' => 'f041397879ad4d89822811d741******'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', - 'title' => '复制指定产品的物模型到目标产品', - 'summary' => '调用该接口复制指定产品的物模型到目标产品。', - 'description' => '## 使用说明'."\n" - .'- 如果目标产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口复制物模型。'."\n" - .'- 目标产品和物模型源产品的品类(**CategoryKey**)必须相同。您可调用[QueryProduct](~~69272~~)接口,从返回结果中查看产品的**CategoryKey**。'."\n" - .'- 要复制的物模型版本号必须传入,即必须传入请求参数**SourceModelVersion**的值,否则调用接口会失败。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"Success\\": true,\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n f041397879ad4d89822811d741******\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建场景联动规则', + 'summary' => '创建场景联动规则。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PublishThingModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSchedulePeriod' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'SoundCodeContent', + 'in' => 'formData', + 'schema' => ['description' => '时间段声码解析内容,长度为1~512个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => true, 'example' => 'www.taobao.com'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '时间段描述,长度为1~64个字符,一个汉字占两个字符。'."\n", 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'ModelVersion', - 'in' => 'query', - 'schema' => [ - 'description' => '设置物模型的版本号。'."\n" - .'版本号支持英文大、小字母、数字和英文句号(.),长度范围不超过16个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '时间段开始时间,格式为二十四小时制时间,范围为00:00~23:59。'."\n", 'type' => 'string', 'required' => true, 'example' => '00:00'], ], [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型版本的描述。', - 'type' => 'string', - 'required' => false, - 'example' => '第二版', - ], + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '时间段结束时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。'."\n", 'type' => 'string', 'required' => true, 'example' => '01:00'], ], ], 'responses' => [ @@ -16759,170 +11567,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '时间段唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n5252CC6E-9E4B-4DB1-B1D8-7EEA190A5B3E\\ntrue\\n","errorExample":""}]', - 'title' => '发布指定产品的物模型', - 'summary' => '调用该接口发布指定产品的物模型。', - 'description' => '## 使用说明'."\n" - .'如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口发布物模型。'."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n\n" - ."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteThingModel' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', 'errorMessage' => 'invalid IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.InvalidTime', 'errorMessage' => 'invalid period time', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.InvalidDesc', 'errorMessage' => 'Invalid period description', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidSoundCodeContent', 'errorMessage' => 'invalid sound code content', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.SensitiveContent', 'errorMessage' => 'sensitive content', 'description' => '内容包含敏感词汇'], + ['errorCode' => 'iot.scheduleperiod.ConflictTime', 'errorMessage' => 'conflict with:%s', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.ConflictWithScheduleTime', 'errorMessage' => 'conflict with schedule time', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.LimitExceeded', 'errorMessage' => 'schedule period limit exceeded', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSchedulePeriod', + 'summary' => '调用该接口创建声码排程时间段。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSharePromotionActivity' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'SharePromotionActivityName', + 'in' => 'formData', + 'schema' => ['description' => '促销活动的名称。', 'type' => 'string', 'required' => true, 'example' => 'task01'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'FunctionBlockId', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'- **PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**不为空时,传入此参数,删除自定义模块下指定功能;不传入此参数,删除默认模块下指定功能。'."\n" - ."\n" - .'- **PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**都为空时,传入此参数,删除该模块及其下所有功能定义。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], - ], - [ - 'name' => 'PropertyIdentifier', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要删除的属性标识符列表。最多传入10个属性标识符。', - 'type' => 'array', - 'items' => [ - 'description' => '需要删除的属性标识符。', - 'type' => 'string', - 'required' => false, - 'example' => 'Temperature', - ], - 'required' => false, - 'example' => 'Temperature', - 'maxItems' => 100, - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cv3********'], ], [ - 'name' => 'ServiceIdentifier', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要删除的服务标识符列表。最多传入10个服务标识符。', - 'type' => 'array', - 'items' => [ - 'description' => '需要删除的服务标识符。', - 'type' => 'string', - 'required' => false, - 'example' => 'Set', - ], - 'required' => false, - 'example' => 'Set', - 'maxItems' => 100, - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '促销活动开始时间的毫秒级时间戳。不传入,表示促销活动没有开始时间的限制。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1691547072000'], ], [ - 'name' => 'EventIdentifier', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要删除的事件标识符列表。最多传入10个事件标识符。', - 'type' => 'array', - 'items' => [ - 'description' => '需要删除的事件标识符。', - 'type' => 'string', - 'required' => false, - 'example' => 'OfflineAlert', - ], - 'required' => false, - 'example' => 'OfflineAlert', - 'maxItems' => 100, - ], + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '促销活动结束时间的毫秒级时间戳。不传入,表示促销活动没有结束时间的限制。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1694315533000'], ], ], 'responses' => [ @@ -16930,89 +11663,139 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.speech.InvalidIotInstanceId'], + 'Data' => ['description' => '返回的促销活动ID。', 'type' => 'string', 'example' => '61******_****_4901_****_47***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Invalid instance ID.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', - 'title' => '删除指定产品下物模型中的指定功能', - 'summary' => '调用该接口删除指定产品下物模型中的指定功能。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"Data\\": \\"61******_****_4901_****_47***********\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n61******_****_4901_****_47***********\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSharePromotionActivity', + 'summary' => '调用该接口创建千里传音分享任务的促销活动。', 'description' => '## 使用说明'."\n" - .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口删除物模型中功能。'."\n" - .'- 如果产品下有未发布的新增物模型功能定义或物模型自定义模块,也可调用该接口进行删除。'."\n" - .'- 调用该接口时,必须传入请求参数**ProductKey**和指定的物模型(**FunctionBlockId**、**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**)。删除指定产品下物模型功能定义逻辑如下:'."\n" - .' - 仅传入**ProductKey**和**FunctionBlockId**:删除指定产品下指定的物模型自定义模块。'."\n" - .' - 传入**ProductKey**,及指定的**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**:删除指定产品下物模型默认模块中指定的功能定义。此时,仅删除已传入且存在的指定功能定义。若传入的**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**在默认模块中都不存在,调用本接口会报错,提示功能定义不存在的错误码信息。'."\n" - .' - 传入**ProductKey**和**FunctionBlockId**,及指定的**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**:删除指定产品下物模型自定义模块中指定的功能定义。此时,仅删除已传入且存在的指定功能定义。若传入的**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**在自定义模块中都不存在,调用本接口会报错,提示功能定义不存在的错误码信息。'."\n" - .' > 请求参数**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**,最多各传入10个标识符。'."\n" - .' '."\n" - .'- 调用该接口删除物模型功能后,必须调用[PublishThingModel](~~150311~~)接口重新发布对应产品的物模型,删除物模型功能的操作才能生效。'."\n" - ."\n\n" + .'由于一个设备只能加入一个分享任务且只能播报该分享任务中共享语料,千里传音语音播报服务提供了促销活动功能,可指定分享任务中共享设备播报促销活动中的语料。'."\n" + ."\n" + .'配置流程如下:'."\n" + ."\n" + .'1. 调用本接口为当前实例下所有分享任务创建促销活动。'."\n" + .'2. 调用接口**QuerySharePromotionActivityAuditResult**,查询指定分享任务的促销活动审核结果,确认指定分享任务的促销活动审核通过。'."\n" + .'3. 调用接口**CreateSharePromotionSpeechModel**添加促销活动的语料。'."\n" + .'4. 调用接口**AddDeviceToSharePromotion**将千里传音分享任务中已有共享设备添加到促销活动中。'."\n" + .'5. 调用接口**ShareSpeechByCombination**播放促销活动的共享语料。'."\n" + ."\n" + .'分享任务的详细配置,请参见[使用共享设备播报分享语料](~~607661~~)。'."\n" + ."\n" .'## QPS限制'."\n" + ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享该阿里云账号配额。', + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListThingTemplates' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSharePromotionActivity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSharePromotionSpeechModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'Voice', + 'in' => 'formData', + 'schema' => ['description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', 'type' => 'string', 'required' => true, 'example' => 'Xiaoyun'], + ], + [ + 'name' => 'SharePromotionActivityId', + 'in' => 'formData', + 'schema' => ['description' => '促销活动ID。'."\n" + ."\n" + .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', 'type' => 'string', 'required' => true, 'example' => '61******_****_4901_****_47***********'], + ], + [ + 'name' => 'SpeechModelType', + 'in' => 'formData', + 'schema' => ['description' => '语料类型,仅支持取值目前只支持固定值**custom**,表示自定义语料。', 'type' => 'string', 'required' => true, 'example' => 'custom'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cv3********'], + ], + [ + 'name' => 'BizCode', + 'in' => 'formData', + 'schema' => ['description' => '语料标识,由用户自定义,支持英文字母和数字,长度为1~32个字符,项目下保证唯一。'."\n" + ."\n" + .'建议将语料语义的拼音首字母设置为语料标识,例如:`支付到账`设置为`ZFDZ`。', 'type' => 'string', 'required' => true, 'example' => 'ZFDZ'], + ], + [ + 'name' => 'SpeechRate', + 'in' => 'formData', + 'schema' => ['description' => '播报速度,取值范围:-500~500。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '-500', 'example' => '0', 'default' => '0'], + ], + [ + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**格式。', 'type' => 'string', 'required' => true, 'example' => 'wav'], + ], + [ + 'name' => 'Volume', + 'in' => 'formData', + 'schema' => ['description' => '音量大小,取值范围:0~100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'default' => '50'], + ], + [ + 'name' => 'ShareTaskCode', + 'in' => 'formData', + 'schema' => ['description' => '分享任务的分享码。'."\n" + ."\n" + .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', 'type' => 'string', 'required' => true, 'example' => '52******_7**e_4**3_9**e_61**********'], + ], + [ + 'name' => 'Text', + 'in' => 'formData', + 'schema' => ['description' => '语料文本,支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], ], 'responses' => [ @@ -17020,128 +11803,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的标准品类列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'CategoryName' => [ - 'description' => '品类的名称。', - 'type' => 'string', - 'example' => '路灯照明', - ], - 'CategoryKey' => [ - 'description' => '品类的标识符。', - 'type' => 'string', - 'example' => 'lighting', - ], - ], - ], - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.speech.InvalidIotInstanceId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Invalid instance ID.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"CategoryName\\": \\"路灯照明\\",\\n \\"CategoryKey\\": \\"lighting\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 智能后视镜\\n SmartRearviewMirror\\n\\n\\n 智能车机\\n SmartTox\\n\\n","errorExample":""}]', - 'title' => '获取物联网平台预定义的标准产品品类列表', - 'summary' => '调用该接口获取物联网平台预定义的标准产品品类列表。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSharePromotionSpeechModel', + 'summary' => '调用该接口为千里传音分享任务的促销活动创建共享语料。', 'description' => '## 使用说明'."\n" - .'物联网平台提供已定义了物模型的产品品类供您使用,例如路灯照明、车辆定位卡、水浸检测等。'."\n" - ."\n" - .'您调用[CreateProduct](~~69123~~)接口创建产品时,可以传入参数CategoryKey指定品类,创建的产品将引用该品类的标准物模型。'."\n" + .'促销活动使用的详细说明,请参见[CreateSharePromotionActivity](~~2568449~~)接口文档的“使用说明”。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetThingTemplate' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSharePromotionSpeechModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSoundCode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'Duration', + 'in' => 'formData', + 'schema' => ['description' => '声码持续时长,单位为秒,取值范围为1~30。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2'], + ], + [ + 'name' => 'SoundCodeContent', + 'in' => 'formData', + 'schema' => ['description' => '声码营销内容,例如商品的详情地址等,长度限制100个字符。', 'type' => 'string', 'required' => true, 'example' => 'www.taobao.com'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '声码名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', 'type' => 'string', 'required' => false, 'example' => 'TEST123'], ], [ - 'name' => 'CategoryKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的品类的标识符。'."\n" - .'可以从调用[ListThingTemplates](~~150316~~)的返回数据中,查看各品类的CategoryKey。', - 'type' => 'string', - 'required' => false, - 'example' => 'Lighting', - ], + 'name' => 'OpenType', + 'in' => 'formData', + 'schema' => ['description' => '排程开放类型。'."\n" + ."\n" + .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" + ."\n" + .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', 'type' => 'string', 'required' => false, 'example' => 'OPEN'], ], ], 'responses' => [ @@ -17149,104 +11905,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ThingModelJSON' => [ - 'description' => '调用成功时,返回的物模型功能定义,格式为:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "properties":[],//属性列表'."\n" - .' "services":[],//服务列表'."\n" - .' "events":[]//事件列表'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'功能信息中包含的具体参数结构,请参见[物模型格式](~~73727~~)。', - 'type' => 'string', - 'example' => '{ "properties":[],"services":[], "events":[]}', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '创建成功时返回的声码ID(SoundCode),是声码的唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ThingModelJSON\\": \\"{ \\\\\\"properties\\\\\\":[],\\\\\\"services\\\\\\":[], \\\\\\"events\\\\\\":[]}\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n{\\"services\\":[{\\"callType\\":\\"ASYNC\\",\\"custom\\":false,\\"description\\":\\"\\",\\"identifier\\":\\"TimeReset\\",\\"inputParams\\":[{\\"custom\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"TEXT\\",\\"length\\":255},\\"dataType\\":\\"TEXT\\",\\"direction\\":\\"PARAM_INPUT\\",\\"identifier\\":\\"TimeReset\\",\\"name\\":\\"TimeReset\\",\\"paraOrder\\":0}],\\"outputParams\\":[],\\"required\\":false,\\"serviceName\\":\\"设备校时服务\\"},{\\"callType\\":\\"ASYNC\\",\\"custom\\":false,\\"description\\":\\"\\",\\"identifier\\":\\"SetTimerTask\\",\\"inputParams\\":[],\\"outputParams\\":[{\\"custom\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"TEXT\\",\\"length\\":255},\\"dataType\\":\\"TEXT\\",\\"direction\\":\\"PARAM_OUTPUT\\",\\"identifier\\":\\"SetTimer\\",\\"name\\":\\"SetTimer\\",\\"paraOrder\\":0}],\\"required\\":false,\\"serviceName\\":\\"时间任务下发\\"}],\\"properties\\":[{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"\\",\\"identifier\\":\\"LightStatus\\",\\"name\\":\\"工作状态\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"100\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"%\\",\\"unitName\\":\\"百分比\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"调光等级采用百分比表示\\",\\"identifier\\":\\"LightAdjustLevel\\",\\"name\\":\\"调光等级\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"4\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"显示设备电压;电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"LightVolt\\",\\"name\\":\\"工作电压\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"9\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"LightCurrent\\",\\"name\\":\\"工作电流\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"1000\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"W\\",\\"unitName\\":\\"瓦特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"ActivePower\\",\\"name\\":\\"有功功率值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"1\\",\\"min\\":\\"0.01\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"pF\\",\\"unitName\\":\\"皮法\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"PowerRatio\\",\\"name\\":\\"功率因数\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"2147483647\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"kW·h\\",\\"unitName\\":\\"千瓦·时\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"耗电量;电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"PowerConsumption\\",\\"name\\":\\"用电量\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"DrainVoltage\\",\\"name\\":\\"漏电压\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"90\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"路灯的倾斜角度;采用1个字节16进制数\\",\\"identifier\\":\\"TiltValue\\",\\"name\\":\\"倾斜角度值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"1000\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"W\\",\\"unitName\\":\\"瓦特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"故障功率门限\\",\\"identifier\\":\\"ErrorPowerThreshold\\",\\"name\\":\\"故障功率门限\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"9\\",\\"min\\":\\"0.1\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"\\",\\"identifier\\":\\"ErrorCurrentThreshold\\",\\"name\\":\\"故障电流门限\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"90\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"TiltThreshold\\",\\"name\\":\\"倾斜阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"UnderVoltThreshold\\",\\"name\\":\\"欠压阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"9\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"OverCurrentThreshold\\",\\"name\\":\\"过流阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"OverVoltThreshold\\",\\"name\\":\\"过压阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"LightErrorEnable\\",\\"name\\":\\"灯具故障使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverCurrentEnable\\",\\"name\\":\\"过流告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverVoltEnable\\",\\"name\\":\\"过压告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"UnderVoltEnable\\",\\"name\\":\\"欠压告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"LeakageEnable\\",\\"name\\":\\"漏电告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverTiltEnable\\",\\"name\\":\\"倾斜告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"LampError\\",\\"name\\":\\"灯具故障告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverCurrentError\\",\\"name\\":\\"过流告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverVoltError\\",\\"name\\":\\"过压告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"UnderVoltError\\",\\"name\\":\\"欠压告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverTiltError\\",\\"name\\":\\"倾斜告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"LeakageError\\",\\"name\\":\\"漏电告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"经度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"180\\",\\"min\\":\\"-180\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[0].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"°\\",\\"min\\":\\"-180\\",\\"unitName\\":\\"度\\",\\"max\\":\\"180\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"longitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"纬度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"180\\",\\"min\\":\\"-180\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[1].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"°\\",\\"min\\":\\"-180\\",\\"unitName\\":\\"度\\",\\"max\\":\\"180\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"latitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"高度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"9999\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"m\\",\\"unitName\\":\\"米\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[2].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"m\\",\\"min\\":\\"0\\",\\"unitName\\":\\"米\\",\\"max\\":\\"9999\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"altitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"ENUM\\",\\"childEnumSpecsDTO\\":[{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"WGS_84\\",\\"value\\":1},{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"GCJ_02\\",\\"value\\":2}],\\"childName\\":\\"坐标系统\\",\\"dataSpecsArray\\":[{\\"dataType\\":\\"enum\\",\\"name\\":\\"WGS_84\\",\\"value\\":\\"1\\"},{\\"dataType\\":\\"enum\\",\\"name\\":\\"GCJ_02\\",\\"value\\":\\"2\\"}],\\"dataSpecsList\\":[{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"WGS_84\\",\\"value\\":1},{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"GCJ_02\\",\\"value\\":2}],\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"CoordinateSystem\\",\\"name\\":\\"地理位置\\"}],\\"dataType\\":\\"STRUCT\\",\\"description\\":\\"\\",\\"identifier\\":\\"GeoLocation\\",\\"name\\":\\"地理位置\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"65535\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"LUX\\",\\"unitName\\":\\"照度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"LightLux\\",\\"name\\":\\"光照值\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true}],\\"events\\":[]}\\nB79DEAAF-74F3-4AFF-95C3-FC8CDB8B831A\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定品类的物模型信息', - 'summary' => '调用该接口查询指定品类的物模型信息。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidSoundCodeContent', 'errorMessage' => 'invalid sound code content', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidSoundCodeDuration', 'errorMessage' => 'invalid sound code duration', 'description' => '无效的声码时长'], + ['errorCode' => 'iot.soundcode.SensitiveContent', 'errorMessage' => 'sensitive content', 'description' => '内容包含敏感词汇'], + ['errorCode' => 'iot.soundcode.InvalidName', 'errorMessage' => 'invalid sound code name', 'description' => '无效的声码名称'], + ['errorCode' => 'iot.soundcode.AlreadyExistsName', 'errorMessage' => 'already exists sound code name', 'description' => '已存在声码名称'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSoundCode', + 'summary' => '调用该接口创建声码。', 'description' => '## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListThingModelVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSoundCodeLabel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'Label', + 'in' => 'formData', + 'schema' => ['description' => '标签,长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。'."\n", 'type' => 'string', 'required' => true, 'example' => 'test'], ], ], 'responses' => [ @@ -17254,167 +11998,109 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'ModelVersions' => [ - 'description' => '物模型版本列表。按照物模型发布时间倒序排列。第一个为当前使用的版本。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreate' => [ - 'description' => '该版本物模型发布时的时间戳,格式为GMT毫秒值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579235657535', - ], - 'Description' => [ - 'description' => '物模型版本的描述。', - 'type' => 'string', - 'example' => '增加一个light属性', - ], - 'ModelVersion' => [ - 'description' => '物模型版本号。', - 'type' => 'string', - 'example' => 'V1.0.0', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '声码标签唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ModelVersions\\": [\\n {\\n \\"GmtCreate\\": 1579235657535,\\n \\"Description\\": \\"增加一个light属性\\",\\n \\"ModelVersion\\": \\"V1.0.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n V3.0.0\\n 1579235682421\\n new properties\\n \\n \\n V2.0.0\\n 1579235657535\\n new properties\\n \\n \\n V1.0.0\\n 1579235637994\\n Lighting\\n \\n\\n9BA34AE5-2D94-4BDE-BD78-E7D3FC7985BC\\ntrue\\n","errorExample":""}]', - 'title' => '获取指定产品的物模型版本列表', - 'summary' => '调用该接口获取指定产品的物模型版本列表。', - 'description' => '## 使用说明'."\n" - .'物模型已实现版本化管理,您导入物模型([ImportThingModelTsl](~~150320~~))、复制其他产品物模型([CopyThingModel](~~150322~~))或编辑更新物模型后,需调用[PublishThingModel](~~150311~~)将物模型发布后才能被使用。一个产品的物模型每发布一次,生成一个版本。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.AlreadyExistsLabel', 'errorMessage' => 'already exists sound code label', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidLabel', 'errorMessage' => 'invalid sound code label', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSoundCodeLabel', + 'summary' => '调用该接口为指定排程创建声码标签。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetThingModelTsl' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSoundCodeSchedule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '排程名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。'."\n", 'type' => 'string', 'required' => true, 'example' => 'test'], ], [ - 'name' => 'ModelVersion', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的物模型版本号。'."\n" - ."\n" - .'不传入此参数,则将返回未发布上线的草稿版物模型TSL。', - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '排程描述,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'Simple', - 'in' => 'query', - 'schema' => [ - 'description' => '是否获取精简版物模型信息。'."\n" - ."\n" - .'- **true**:获取精简版物模型TSL。'."\n" - ."\n" - .' 精简版物模型TSL中仅包含属性、服务、事件及入参和出参的标识符(**identifier**)和数据类型(**dataType**),可供设备端开发人员参考。'."\n" - ."\n" - .'- **false**:获取完整的物模型TSL。'."\n" - ."\n" - .' 完整物模型TSL中包含属性、服务和事件定义的所有参数和取值,可供云端应用开发人员参考。'."\n" - ."\n" - .'不传入此参数,则默认为false,获取完整的物模型信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'StartDate', + 'in' => 'formData', + 'schema' => ['description' => '排程开始工作日期,格式为yyyy-MM-dd。'."\n", 'type' => 'string', 'required' => true, 'example' => '2022-03-31'], ], [ - 'name' => 'FunctionBlockId', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'name' => 'EndDate', + 'in' => 'formData', + 'schema' => ['description' => '排程结束工作日期,格式为yyyy-MM-dd,不得早于StartDate。'."\n", 'type' => 'string', 'required' => true, 'example' => '2022-03-31'], + ], + [ + 'name' => 'OpenType', + 'in' => 'formData', + 'schema' => ['description' => '排程开放类型。'."\n" + ."\n" + .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" + ."\n" + .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', 'type' => 'string', 'required' => false, 'example' => 'INNER'], ], ], 'responses' => [ @@ -17422,167 +12108,149 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的物模型信息。', - 'type' => 'object', - 'properties' => [ - 'TslUri' => [ - 'description' => '物模型数据在对象存储(OSS)上的存储地址URI。返回的URI有效期为60分钟。', - 'type' => 'string', - 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******', - ], - 'TslStr' => [ - 'description' => '物模型的TSL字符串。', - 'type' => 'string', - 'example' => '{\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\"}]}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '排程唯一标识。'."\n", 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TslUri\\": \\"https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\",\\n \\"TslStr\\": \\"{\\\\\\\\\\\\\\"schema\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a14TeWI****\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Humidity\\\\\\\\\\\\\\"}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\n {\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14T***\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"events\\":[{\\"identifier\\":\\"post\\",\\"name\\":\\"post\\",\\"type\\":\\"info\\",\\"required\\":true,\\"desc\\":\\"属性上报\\",\\"method\\":\\"thing.event.property.post\\",\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}],\\"services\\":[{\\"identifier\\":\\"set\\",\\"name\\":\\"set\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性设置\\",\\"method\\":\\"thing.service.property.set\\",\\"inputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"outputData\\":[]},{\\"identifier\\":\\"get\\",\\"name\\":\\"get\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性获取\\",\\"method\\":\\"thing.service.property.get\\",\\"inputData\\":[\\"Humidity\\",\\"Temperature\\"],\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}]}\\n\\nC4371E68-F6DB-4D7B-8AD0-D38336E1DF94\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定产品的物模型TSL', - 'summary' => '调用该接口查询指定产品的物模型TSL。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcodeschedule.InvalidDesc', 'errorMessage' => 'invalid schedule description', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidName', 'errorMessage' => 'invalid schedule name', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.AlreadyExistsName', 'errorMessage' => 'already exists schedule name', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'errorMessage' => 'invalid schedule IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.LimitExceeded', 'errorMessage' => 'sound code schedule limit exceeded', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidDate', 'errorMessage' => 'invalid sound code schedule date', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => 'CreateSoundCodeSchedule', + 'summary' => '调用该接口创建声码排程。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ImportThingModelTsl' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'Voice', + 'in' => 'formData', + 'schema' => ['description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', 'type' => 'string', 'required' => true, 'example' => 'Xiaoyun'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'name' => 'SpeechType', + 'in' => 'formData', + 'schema' => ['description' => '语料类型,分为自定义语料和常用语料。'."\n" + ."\n" + .'> 不传入此参数时或传入**custom**,必须传入参数Text和BizCode,否则调用会失败。'."\n" + ."\n" + .'- 自定义语料(默认):取值为**custom**,是自定义语料时,必须填写语料标识和语料文本。'."\n" + .'- 常用语料:由系统预置的常用语料文本,包括以下类型:'."\n" + .' - 数字:取值为**number**,包含:数字0~9,点,幺。'."\n" + .' - 量词:取值为**measure_word**,包含:个,十,百,千,万,十万,百万,亿等。'."\n" + .' - 货币单位:取值为**monetary_unit**,包含:分,角,元等。'."\n" + .' - 时间单位:取值为**time_unit**,包含:时,分,秒,月,日,年等。'."\n" + .' - 单位时间:取值为**unit_time**,包含:每秒,每分,每小时,每天,每周,每月,每年等。'."\n" + .' - 长度单位:取值为**length_unit**,包含:毫米,厘米,分米,米,千米,公里,英寸,英尺,英里等。', 'type' => 'string', 'required' => false, 'example' => 'custom'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。'."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TslStr', - 'in' => 'query', - 'schema' => [ - 'description' => '您编辑的物模型(TSL)。JSON格式的字符串。产品的物模型(TSL)包含属性、服务和事件的定义。'."\n" - .'**TslStr**格式需为标准的物模型数据格式,请参见[物模型格式](~~73727~~)。'."\n" - ."\n" - .'> 目前该参数为必填参数,只能通过**TslStr**导入物模型。', - 'type' => 'string', - 'required' => false, - 'example' => '{"schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json","profile":{"productKey":"a14TeW****"},"properties":[]}', - ], + 'name' => 'BizCode', + 'in' => 'formData', + 'schema' => ['description' => '语料标识,当设备调用多个语料进行组合播报时,通过该标识播报指定的语料。'."\n" + ."\n" + .'- 当**语料类型**选择为**自定义语料**时,该参数必选。语料标识由用户自定义,支持英文字母和数字,长度为1~32个字符,项目下保证唯一。建议将语料语义的拼音首字母设置为语料标识,例如:`支付到账`设置为`ZFDZ`。'."\n" + ."\n" + .'- 当**语料类型**选择为**常用语料**时,语料标识由系统自动生成,无需用户自定义。', 'type' => 'string', 'required' => false, 'example' => 'identifying'], ], [ - 'name' => 'TslUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型数据在对象存储(OSS)上的存储地址URI。'."\n" - ."\n" - .'> 目前该参数暂时无效,请传入**TslStr**导入物模型。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14TeWI****/model.json?Expires=1581947119...', - ], + 'name' => 'SpeechRate', + 'in' => 'formData', + 'schema' => ['description' => '播报速度,取值范围:-500~500。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '-500', 'example' => '0', 'default' => '0'], ], [ - 'name' => 'FunctionBlockId', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。支持英文大小写字母、数字和下划线(_),不超过30个字符。'."\n" - ."\n" - .'需与**FunctionBlockName**结合使用。不传入此参数时,导入默认模块。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'name' => 'Volume', + 'in' => 'formData', + 'schema' => ['description' => '音量大小,取值范围:0~100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'default' => '50'], ], [ - 'name' => 'FunctionBlockName', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" - ."\n" - .'需与**FunctionBlockId**结合使用。不传入此参数时,导入默认模块。', - 'type' => 'string', - 'required' => false, - 'example' => '电池模块', - ], + 'name' => 'ProjectCode', + 'in' => 'formData', + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。如果没有项目,可以创建项目后获取项目ID。'."\n", 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'Text', + 'in' => 'formData', + 'schema' => ['description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], + ], + [ + 'name' => 'SoundCodeConfig', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => '声码配置,包含字段如下:'."\n" + ."\n\n" + .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" + ."\n" + .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', 'type' => 'object', 'required' => false, 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}'], + ], + [ + 'name' => 'EnableSoundCode', + 'in' => 'formData', + 'schema' => ['description' => '是否启用声码,若传入了true,必须传入参数SoundCodeConfig,否则调用会失败。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -17590,132 +12258,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'Data' => ['description' => '创建成功时返回的语料ID(SpeechCode),是语料的唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', - 'title' => '为指定产品导入物模型', - 'summary' => '调用该接口为指定产品导入物模型。', - 'description' => "\n" - .'## 使用说明'."\n" - .'如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口导入物模型。'."\n" - .' '."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n\n" - ."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', + 'title' => '创建语料', + 'summary' => '调用该接口创建语料。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryThingModelPublished' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateStudioAppDomainOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12*******'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'name' => 'Host', + 'in' => 'formData', + 'schema' => ['description' => '域名。', 'type' => 'string', 'required' => true, 'example' => 'www.aliyun.test.com'], ], [ - 'name' => 'ResourceGroupId', - 'in' => 'query', + 'name' => 'Protocol', + 'in' => 'formData', 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'> 目前不传入此参数。', + 'description' => '请求协议。'."\n" + .'- **https**'."\n" + .'- **http**', 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd***', + 'required' => true, + 'example' => 'https', + 'enum' => ['https', 'http'], ], ], [ - 'name' => 'ModelVersion', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型版本号。'."\n" - ."\n" - .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" - ."\n" - .'为空时返回已发布的最新版本。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123******'], ], [ - 'name' => 'FunctionBlockId', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -17723,303 +12353,218 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ProductKey' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- ** false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '应用添加域名的详情。', 'type' => 'object', 'properties' => [ - 'ThingModelJson' => [ - 'description' => '物模型的功能定义。ThingModelJson取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。', - 'type' => 'string', - 'example' => '{\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a1BwAGV****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJGj2p\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}', - ], + 'Host' => ['description' => '域名。', 'type' => 'string', 'example' => 'www.aliyun.test.com'], + 'Protocol' => ['description' => '请求协议。', 'type' => 'string', 'example' => 'https'], + 'AppId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a12******'], + 'ProjectId' => ['description' => '项目ID。', 'type' => 'string', 'example' => 'a12*******'], + 'IsBeian' => ['description' => '域名是否已备案。'."\n" + .'- **YES**:是。'."\n" + .'- **NO**:否。', 'type' => 'string', 'example' => 'YES'], + 'Id' => ['description' => '域名ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '1573'], + 'TenantId' => ['description' => '租户ID。', 'type' => 'string', 'example' => 'C70B541046F64EAABE3*******'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ThingModelJson\\": \\"{\\\\\\\\\\\\\\"_ppk\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1594253010934\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"events\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a1BwAGV****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"configCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"custom\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"customFlag\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"dataSpecs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"custom\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"dataType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"max\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"min\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"step\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"unit\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ppb\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"dataType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"extendConfig\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"唤醒数据\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114xeJGj2p\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"rwFlag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"READ_ONLY\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"std\\\\\\\\\\\\\\":false}],\\\\\\\\\\\\\\"services\\\\\\\\\\\\\\":[]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1F9041A2-ED5B-4A5A-9C44-598E28C0B434\\n \\n {\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a1BwAGV****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJ****\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}\\n \\n true\\n","errorExample":""}]', - 'title' => 'QueryThingModelPublished', - 'summary' => '调用该接口查看指定产品的已发布物模型中的功能定义详情。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'Studio.App.Domain.DomainMaxNumLimit', 'errorMessage' => 'The maximum number of domain is exceeded.', 'description' => '超过域名数量限制'], + ['errorCode' => 'Studio.App.Domain.DomainAlreadyExist', 'errorMessage' => 'The domain already exists.', 'description' => '域名已绑定'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Host\\": \\"www.aliyun.test.com\\",\\n \\"Protocol\\": \\"https\\",\\n \\"AppId\\": \\"a12******\\",\\n \\"ProjectId\\": \\"a12*******\\",\\n \\"IsBeian\\": \\"YES\\",\\n \\"Id\\": 1573,\\n \\"TenantId\\": \\"C70B541046F64EAABE3*******\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n C70B541046F64EAABE3*******\\n a12******\\n a12*******\\n www.aliyun.test.com\\n 1573\\n https\\n YES\\n \\n true\\n ","errorExample":""}]', + 'title' => 'CreateStudioAppDomainOpen', + 'summary' => '调用该接口为应用添加域名。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetThingModelTslPublished' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateStudioAppDomainOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateSubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '该订阅中的产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'DeviceDataFlag', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfm4l5tcwd****', - ], + 'schema' => ['description' => '推送消息类型是否选择设备上报消息。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Simple', + 'name' => 'DeviceLifeCycleFlag', 'in' => 'query', - 'schema' => [ - 'description' => '是否获取精简版物模型信息。'."\n" - ."\n" - .'- **true**:获取精简版物模型TSL。精简版物模型TSL中仅包含属性、服务、事件及入参、出参的标识符(**identifier**)、数据类型(**dataType**),可供设备端开发人员参考。'."\n" - ."\n" - .'- **false**(默认):获取完整的物模型TSL。完整物模型TSL中包含属性、服务和事件定义的所有参数和取值,可供云端应用开发人员参考。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '推送消息类型是否选择设备生命周期变更。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ModelVersion', + 'name' => 'DeviceStatusChangeFlag', 'in' => 'query', - 'schema' => [ - 'description' => '物模型版本号。'."\n" - ."\n" - .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" - ."\n" - .'为空时返回已发布的最新版本。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'schema' => ['description' => '推送消息类型是否选择设备状态变化通知。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'DeviceTopoLifeCycleFlag', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '推送消息类型是否选择设备拓扑关系变更。可选值:'."\n" + .'- **true**:是。仅对网关产品有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回数据。', - 'type' => 'object', - 'properties' => [ - 'TslUri' => [ - 'description' => '物模型数据在对象存储(OSS)上的存储地址URI。返回的URI有效期为60分钟。', - 'type' => 'string', - 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******', - ], - 'TslStr' => [ - 'description' => '物模型的TSL字符串。', - 'type' => 'string', - 'example' => '{\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\"}]}', - ], - ], - ], - ], - ], + [ + 'name' => 'FoundDeviceListFlag', + 'in' => 'query', + 'schema' => ['description' => '推送消息类型是否选择网关子设备发现上报。可选值:'."\n" + .'- **true**:是。仅对网关产品有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TslUri\\": \\"https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\",\\n \\"TslStr\\": \\"{\\\\\\\\\\\\\\"schema\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a14TeWI****\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Humidity\\\\\\\\\\\\\\"}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\n {\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"events\\":[{\\"identifier\\":\\"post\\",\\"name\\":\\"post\\",\\"type\\":\\"info\\",\\"required\\":true,\\"desc\\":\\"属性上报\\",\\"method\\":\\"thing.event.property.post\\",\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}],\\"services\\":[{\\"identifier\\":\\"set\\",\\"name\\":\\"set\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性设置\\",\\"method\\":\\"thing.service.property.set\\",\\"inputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"outputData\\":[]},{\\"identifier\\":\\"get\\",\\"name\\":\\"get\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性获取\\",\\"method\\":\\"thing.service.property.get\\",\\"inputData\\":[\\"Humidity\\",\\"Temperature\\"],\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}]}\\n\\nC4371E68-F6DB-4D7B-8AD0-D38336E1DF94\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定产品的已发布物模型TSL', - 'summary' => '调用该接口查询指定产品的已发布物模型TSL。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryThingModelExtendConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'MnsConfiguration', + 'in' => 'query', + 'schema' => ['description' => 'MNS队列的配置信息,**Type**为**MNS**时必填。'."\n" + .'具体要求和示例见下文“MnsConfiguration定义”。', 'type' => 'string', 'required' => false, 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }'], ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '订阅类型:'."\n" + ."\n" + .'- **MNS**。'."\n" + .'- **AMQP**。', 'type' => 'string', 'required' => false, 'example' => 'AMQP'], ], [ - 'name' => 'ProductKey', + 'name' => 'OtaEventFlag', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1T27vz****', - ], + 'schema' => ['description' => '推送消息类型是否选择OTA升级状态通知。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ResourceGroupId', + 'name' => 'ThingHistoryFlag', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '123***', - ], + 'schema' => ['description' => '推送消息类型是否选择物模型历史数据上报。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'ModelVersion', + 'name' => 'DeviceTagFlag', 'in' => 'query', - 'schema' => [ - 'description' => '物模型版本号。'."\n" - ."\n" - .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" - ."\n" - .'为空时返回已发布的最新版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'schema' => ['description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'OtaVersionFlag', + 'in' => 'query', + 'schema' => ['description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'OtaJobFlag', + 'in' => 'query', + 'schema' => ['description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'SubscribeFlags', + 'in' => 'query', + 'schema' => ['description' => '标识当前订阅产品的其他类型消息,数据格式为JSON String。'."\n" + ."\n" + .'- 如果订阅的是JT/T 808协议云网关产品,必须传入**SubscribeFlags**,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + ."\n" + .'- 如果订阅的是设备视频流状态变更通知消息,必须传入**SubscribeFlags**,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" + ."\n" + .'- 如果同时订阅以上消息,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true,'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```', 'type' => 'string', 'required' => false, 'example' => '{ "jt808DeviceDataFlag": true }'], + ], + [ + 'name' => 'ConsumerGroupIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + 'description' => '创建的AMQP订阅中的消费组ID,**Type**为**AMQP**时必填。'."\n" ."\n" - .'不传入此参数时,导出默认模块数据。', - 'type' => 'string', + .'调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。'."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => 'BatteryModule', + 'example' => 'nJRaJPn5U1JITGfjBO9l00****', + 'maxItems' => 50, ], ], ], @@ -18028,126 +12573,218 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Configuration' => [ - 'description' => '物模型扩展描述配置。参数含义请参见[CreateThingModel](~~150323~~)的extendConfig说明。', - 'type' => 'string', - 'example' => '{\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114x******\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":1}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n {\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}\\n \\n 6DDF9D04-24C3-40D8-B490-2A528E59EA67\\n true\\n","errorExample":""}]', - 'title' => '导出指定产品物模型扩展描述配置', - 'summary' => '查询物模型扩展描述配置。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '创建MNS或AMQP服务端订阅', + 'summary' => '调用该接口创建MNS或AMQP服务端订阅。', + 'description' => '## 使用说明'."\n" + .'服务端订阅分两种类型:'."\n" + .'- MNS订阅:将订阅的消息推送到消息服务(MNS)的队列中,您的服务端应用通过监听MNS队列接收设备消息,参见[使用MNS服务端订阅](~~68948~~)。直接调用本接口即可创建MNS订阅。'."\n" + .'- AMQP订阅:将产品下所有已订阅类型的消息通过AMQP通道推送至您的服务端,请参见[配置AMQP服务端订阅](~~142376~~)。请按以下流程操作AMQP订阅:'."\n" + .'1. 调用[CreateConsumerGroup](~~170388~~)创建消费组,返回消费组ID。AMQP订阅中,消息将被推送到指定消费组,AMQP客户端携带消费组ID接入物联网平台,消费消息,请参见[AMQP客户端接入说明](~~142489~~)。'."\n" + .'2. 调用本接口创建AMQP订阅。'."\n" + .'3. (可选)调用[CreateConsumerGroupSubscribeRelation](~~170354~~)在AMQP订阅中添加消费组。调用[DeleteConsumerGroupSubscribeRelation](~~170357~~)删除AMQP订阅中多个消费组中的指定消费组。'."\n" + .'4. (可选)运行AMQP订阅时,调用[QueryConsumerGroupStatus](~~170358~~)查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间,调用[ResetConsumerGroupPosition](~~170355~~)清空消费组的堆积消息。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'## QPS限制'."\n" ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '> 请求参数中的Flag不能全部为**false**或不传入,至少传入一个为**true**的Flag。'."\n" + ."\n" + .'**MnsConfiguration定义**'."\n" + .'| 名称 | 描述 |'."\n" + .'| ------------- |------------ |'."\n" + .'|queueName| 消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见[创建队列](~~34417~~)。 |'."\n" + .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" + .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" + ."\n" + .'**MnsConfiguration**示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "queueName": "mns-test-topic1",'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" + .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryThingModelExtendConfigPublished' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的**ProductKey**。'."\n" - ."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '产品的**ProductKey**,物联网平台为产品颁发的全局唯一标识符。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)接口,查看当前账号下所有产品的信息。'."\n" + ."\n\n", 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ModelVersion', + 'name' => 'ThingModelJson', 'in' => 'query', - 'schema' => [ - 'description' => '要获取的物模型版本号。不传入此参数,则返回已发布的最新版本。', - 'type' => 'string', - 'required' => false, - 'example' => 'v1.0.0', - ], + 'schema' => ['description' => '新增的功能定义详情。最多能包含10个功能的定义信息。'."\n" + ."\n" + .'在**ThingModelJson**每个property结构中,可以使用**extendConfig**来描述扩展物模型的数据。更多信息,请参见[ThingModelJson数据说明](~~150457~~)。'."\n" + ."\n" + .'>此处参数**ThingModelJson**的值不可传入完整的物模型TSL数据,只需传入JSON格式的物模型**properties**、**services**和**events**字段数据。'."\n" + .'>'."\n" + ."\n" + .'以下示例值为包含多种数据类型的属性数据,例如**STRUCT**、**ARRAY**。'."\n" + .'```'."\n" + .'{'."\n" + .' "properties": ['."\n" + .' {'."\n" + .' "custom": true,'."\n" + .' "dataSpecsList": ['."\n" + .' {'."\n" + .' "childDataType": "TEXT",'."\n" + .' "childName": "设备SIM卡的CCID",'."\n" + .' "dataSpecs": {'."\n" + .' "custom": true,'."\n" + .' "dataType": "TEXT",'."\n" + .' "length": 20'."\n" + .' },'."\n" + .' "dataType": "STRUCT",'."\n" + .' "identifier": "CCID",'."\n" + .' "name": "设备SIM卡的CCID"'."\n" + .' },'."\n" + .' {'."\n" + .' "childDataType": "INT",'."\n" + .' "childName": "电池电量",'."\n" + .' "dataSpecs": {'."\n" + .' "custom": true,'."\n" + .' "dataType": "INT",'."\n" + .' "max": "60000",'."\n" + .' "min": "0",'."\n" + .' "step": "1"'."\n" + .' },'."\n" + .' "dataType": "STRUCT",'."\n" + .' "identifier": "battery",'."\n" + .' "name": "电池电量"'."\n" + .' },'."\n" + .' {'."\n" + .' "childDataType": "TEXT",'."\n" + .' "childName": "其他信息",'."\n" + .' "dataSpecs": {'."\n" + .' "custom": true,'."\n" + .' "dataType": "TEXT",'."\n" + .' "length": 1024'."\n" + .' },'."\n" + .' "dataType": "STRUCT",'."\n" + .' "identifier": "other_info",'."\n" + .' "name": "其他信息"'."\n" + .' }'."\n" + .' ],'."\n" + .' "dataType": "STRUCT",'."\n" + .' "identifier": "DEV_INFO",'."\n" + .' "name": "设备信息",'."\n" + .' "productKey": "a1T***",'."\n" + .' "propertyId": 18786548,'."\n" + .' "required": false,'."\n" + .' "rwFlag": "READ_ONLY"'."\n" + .' },'."\n" + .' {'."\n" + .' "custom": true,'."\n" + .' "dataSpecs": {'."\n" + .' "childDataType": "INT",'."\n" + .' "custom": true,'."\n" + .' "dataType": "ARRAY",'."\n" + .' "size": 1,'."\n" + .' "dataSpecs": {'."\n" + .' "custom": true,'."\n" + .' "dataType": "INT",'."\n" + .' "max": "65535",'."\n" + .' "min": "0",'."\n" + .' "step": "1",'."\n" + .' "unit": "ppm",'."\n" + .' "unitName": "百万分率"'."\n" + .' }'."\n" + .' },'."\n" + .' "dataType": "ARRAY",'."\n" + .' "identifier": "airRH_SR",'."\n" + .' "name": "除湿机湿度",'."\n" + .' "productKey": "a1T***",'."\n" + .' "propertyId": 18786551,'."\n" + .' "required": false,'."\n" + .' "rwFlag": "READ_ONLY"'."\n" + .' }'."\n" + .' ],'."\n" + .' "services": [...],'."\n" + .' "events": [...]'."\n" + .'}'."\n" + .'```'."\n" + ."\n\n" + ."\n\n" + ."\n\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => '{ "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1bPo9p****", "required": false, "customFlag": true, "name": "sim卡类型" } ], "services":[...], "events":[...] }'], ], [ 'name' => 'FunctionBlockId', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,导出默认模块数据。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。支持英文大小写字母、数字和下划线(_),不超过30个字符。'."\n" + ."\n" + .'需与**FunctionBlockName**结合使用。不传入此参数时,新增功能导入默认模块。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], + ], + [ + 'name' => 'FunctionBlockName', + 'in' => 'query', + 'schema' => ['description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" + ."\n" + .'需与**FunctionBlockId**结合使用。不传入此参数时,新增功能导入默认模块。', 'type' => 'string', 'required' => false, 'example' => '电池模块'], ], ], 'responses' => [ @@ -18155,132 +12792,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Configuration' => [ - 'description' => '物模型扩展描述配置。参数含义请参见[CreateThingModel](~~150323~~)的extendConfig说明。'."\n" - ."\n" - .'更多信息,请参见[ThingModelJson数据说明](~~150457~~)。', - 'type' => 'string', - 'example' => '{\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114x******\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":1}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n {\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}\\n\\n6DDF9D04-24C3-40D8-B490-2A528E59EA67\\ntrue\\n","errorExample":""}]', - 'title' => '获取已发布物模型的扩展描述配置', - 'summary' => '调用该接口获取已发布物模型的扩展描述配置。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', + 'title' => '为物模型新增功能', + 'summary' => '为指定产品的物模型新增功能,支持同时新增物模型扩展描述。', + 'description' => "\n" + .'## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口新增物模型功能。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n" + .'- 调用接口前,您可通过[json-schema](https://github.com/everit-org/json-schema?spm=a2c4g.11186623.2.23.575832d9zD7fZb)对**ThingModelJson**中的入参进行预校验,请参见[ThingModelJson数据说明](~~150457~~)中的“校验”。'."\n" + ."\n" + .'- 单次调用最多可新增10个功能,即新增属性、服务和事件的数量总计不超过10。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n" ."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], ], 'CreateThingScript' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'ScriptContent', 'in' => 'query', - 'schema' => [ - 'description' => '脚本内容。不允许为空。'."\n" - ."\n" - .'脚本示例的更多信息,请参见[什么是数据解析](~~68702~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '"function protocolToRawData(jsonObj) {return rawdata; }function rawDataToProtocol(rawData) {return jsonObj; }"', - ], + 'schema' => ['description' => '脚本内容。不允许为空。'."\n" + ."\n" + .'脚本示例的更多信息,请参见[什么是数据解析](~~68702~~)。', 'type' => 'string', 'required' => true, 'example' => '"function protocolToRawData(jsonObj) {return rawdata; }function rawDataToProtocol(rawData) {return jsonObj; }"'], ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品**ProductKey**。'."\n" - ."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a1Q5XoY****', - ], + 'schema' => ['description' => '产品**ProductKey**。'."\n" + ."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY****'], ], [ 'name' => 'ScriptType', 'in' => 'query', - 'schema' => [ - 'description' => '脚本类型。取值:'."\n" - ."\n" - .'- JavaScript'."\n" - .'- Python_27:表示Python 2.7'."\n" - .'- PHP_72:表示PHP 7.2', - 'type' => 'string', - 'required' => true, - 'example' => 'JavaScript', - ], + 'schema' => ['description' => '脚本类型。取值:'."\n" + ."\n" + .'- JavaScript'."\n" + .'- Python_27:表示Python 2.7'."\n" + .'- PHP_72:表示PHP 7.2', 'type' => 'string', 'required' => true, 'example' => 'JavaScript'], ], ], 'responses' => [ @@ -18288,29 +12892,14 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], @@ -18330,80 +12919,70 @@ 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateThingScript' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'CreateTopicConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ScriptContent', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '脚本内容。不允许为空。'."\n" - ."\n" - .'脚本示例的更多信息,请参见[什么是数据解析](~~68702~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '"function protocolToRawData(jsonObj) {return rawdata; }function rawDataToProtocol(rawData) {return jsonObj; }"', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'IotInstanceId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品**ProductKey**。'."\n" - ."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a1Q5XoY****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'ScriptType', + 'name' => 'EnableBroadcast', 'in' => 'query', - 'schema' => [ - 'description' => '脚本类型。取值:'."\n" - ."\n" - .'- JavaScript'."\n" - .'- Python_27:表示Python 2.7'."\n" - .'- PHP_72:表示PHP 7.2', - 'type' => 'string', - 'required' => true, - 'example' => 'JavaScript', - ], + 'schema' => ['type' => 'boolean', 'required' => false], + ], + [ + 'name' => 'EnableProxySubscribe', + 'in' => 'query', + 'schema' => ['type' => 'boolean', 'required' => false], + ], + [ + 'name' => 'Codec', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'Operation', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'TopicFullName', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -18411,93 +12990,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['type' => 'string'], + 'Message' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改指定产品的数据解析脚本', - 'summary' => '调用该接口修改指定产品的数据解析脚本。', - 'description' => '## 使用说明'."\n" - .'数据解析脚本用于将设备上报的自定义格式数据转换为JSON结构体。脚本类型支持JavaScript、Python 2.7、PHP 7.2,更多信息,请参见[提交数据解析脚本](~~149963~~)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetThingScript' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.message.broker.ParamCheckError', 'errorMessage' => 'Param check error.', 'description' => '参数校验错误。'], + ['errorCode' => 'iot.message.broker.ProductCheckError', 'errorMessage' => 'Product check error.', 'description' => '产品鉴权失败。'], + ['errorCode' => 'iot.message.broker.SystemError', 'errorMessage' => 'System error.', 'description' => '系统异常。'], + ['errorCode' => 'iot.messagebroker.InvalidPubTopicFormat', 'errorMessage' => 'The pub topic cannot contain wildcard character.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidOperationWithBroadcast', 'errorMessage' => 'The operation must be sub when enable broadcast.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithBroadcast', 'errorMessage' => 'The topic cannot contain wildcard character when enable broadcast.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', 'errorMessage' => 'Operation must be sub or all when enable proxy subscribe.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', 'errorMessage' => 'Topic cannot contain wildcard character when enable proxy subscribe.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithCodec', 'errorMessage' => 'Topic cannot contain wildcard when enable codec.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidInstanceWithCodec', 'errorMessage' => 'Only connect instance support codec.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'CreateTopicRouteTable' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'SrcTopic', + 'in' => 'query', + 'schema' => ['description' => '源Topic,即被订阅的Topic。如`SrcTopic=/x7aWKW9****/testDataToDataHub/user/update`。', 'type' => 'string', 'required' => true, 'example' => '/x7aWKW9****/testDataToDataHub/user/update'], + ], + [ + 'name' => 'DstTopic', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '产品**ProductKey**。'."\n" - ."\n" - .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", - 'type' => 'string', + 'description' => '目标Topic列表,即从**SrcTopic**订阅消息的Topic列表。即使只有一个Topic,也使用数组格式。如`DstTopic.1=/x7aWKW9****/deviceNameTest1/user/add`,`DstTopic.2=/x7aWKW9****/deviceNameTest2/user/delete`。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'a1Q5XoY****', + 'example' => '/x7aWKW9****/deviceNameTest1/user/add', + 'maxItems' => 100, ], ], ], @@ -18506,179 +13076,152 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'IsAllSucceed' => ['description' => '指定的Topic间的消息路由关系是否全部新建成功。'."\n" + .'- **true**表示全部新建成功。'."\n" + .'- **false**表示未全部新建成功。', 'type' => 'boolean', 'example' => 'true'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'FailureTopics' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ScriptType' => [ - 'description' => '脚本类型。返回值:'."\n" - ."\n" - .'- JavaScript'."\n" - .'- Python_27:表示Python 2.7'."\n" - .'- PHP_72:表示PHP 7.2', - 'type' => 'string', - 'example' => 'JavaScript', - ], - 'ScriptUrl' => [ - 'description' => '脚本内容的URL下载地址。', - 'type' => 'string', - 'example' => 'http://***', + 'Topic' => [ + 'type' => 'array', + 'items' => ['description' => '未能成功创建路由关系的Topic列表。', 'type' => 'object', 'example' => '["/2Fx7aWKW9****/FdeviceNameTest2/user/delete"]'], + 'description' => '', ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ScriptType\\": \\"JavaScript\\",\\n \\"ScriptUrl\\": \\"http://***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n JavaScript\\n http://***\\n\\n6DDF9D04-24C3-40D8-B490-2A528E59EA67\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定产品的数据解析脚本', - 'summary' => '调用该接口查询指定产品的数据解析脚本。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"IsAllSucceed\\": true,\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"Topic\\": [\\n [\\n \\"/2Fx7aWKW9****/FdeviceNameTest2/user/delete\\"\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n32B9828A-25DD-48E2-8E26-D1664B341940\\n\\ntrue\\n","errorExample":""}]', + 'title' => '新建Topic间的消息路由关系', + 'summary' => '调用该接口新建Topic间的消息路由关系。', 'description' => '## 使用说明'."\n" - .'数据解析脚本用于将设备上报的自定义格式数据转换为JSON结构体。脚本类型支持JavaScript、Python 2.7、PHP 7.2,更多信息,请参见[提交数据解析脚本](~~149963~~)。'."\n" + .'- 一个源Topic最多可对应100个目标Topic。'."\n" + .'- 源Topic所属的设备必须为已激活设备。'."\n" + .'- 源Topic和目标Topic均仅支持自定义Topic。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'SetDeviceProperty' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'DeleteClientIds' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64*****', - ], + 'schema' => ['description' => '设备ID。'."\n", 'type' => 'string', 'required' => true, 'example' => 'BXPV9Ks3bxwM9fD****0000101'], ], [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-12****78'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '89F22330-BAEE-****-****-41BA46D6E267'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n89F22330-BAEE-****-****-41BA46D6E267\\nSuccess\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteClientIds', + 'summary' => '一型一密免注册场景下,若单个设备的标识个数超出限制(5个),可调用该接口删除设备下的所有标识。', + 'description' => '## 使用说明'."\n" + .'- 您可调用[QueryClientIds](~~371985~~)接口,查看设备的设备标识列表,得出该设备的标识个数。'."\n" + .'- 调用本接口会清空设备下所有标识,且不可恢复。此时,您可为设备重新注册设备标识。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteClientIds', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteConsumerGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'AK' => [], ], + ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Items', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要设置的属性信息,数据格式为JSON。'."\n" - ."\n" - .'每个属性信息由标识符与属性值 (key:value) 构成,多个属性用英文逗号隔开。'."\n" - ."\n" - .'例如,设置智能灯的如下两个属性:'."\n" - ."\n" - .'- 标识符为**Switch**的开关属性,数据类型为**Bool**,设置值为**1**(开)。'."\n" - ."\n" - .'- 标识符为**Color**的灯颜色属性,数据类型为**String**,设置值为**blue**。'."\n" - ."\n" - .'那么要设置的属性信息,JSON格式如下:'."\n" - ."\n" - .'`Items={"Switch":1,"Color":"blue"}`'."\n" - ."\n" - .'> 如果设置自定义模块testFb(非默认模块)的属性,则格式为:`Items={"testFb:Switch":1,"testFb:Color":"blue"}`', - 'type' => 'string', - 'required' => true, - 'example' => '{"Switch":1,"Color":"blue"}', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'Qos', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '指定调用本接口时,消息的发送方式。取值:'."\n" - ."\n" - .'- **0**(默认):最多发送一次。'."\n" - .'- **1**:最少发送一次。如果QoS=1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1', - 'minimum' => '0', - 'example' => '1', - 'default' => '0', - ], + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGf******'], ], ], 'responses' => [ @@ -18686,154 +13229,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'MessageId' => [ - 'description' => '云端给设备下发属性设置的消息ID。', - 'type' => 'string', - 'example' => 'abcabc123', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"abcabc123\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n abcabc123\\n\\n","errorExample":""}]', - 'title' => '为指定设备设置属性值', - 'summary' => '调用该接口为指定设备设置属性值。', - 'description' => '因为云端下发属性设置命令和设备收到并执行该命令是异步的,所以调用该接口时,返回的成功结果只表示云端下发属性设置的请求成功,不能保证设备端收到并执行了该请求。即需设备端SDK成功响应云端设置设备属性值的请求,设备属性值才能真正设置成功。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除消费组', + 'summary' => '使用AMQP服务端订阅时,可以调用该接口删除消费组。', + 'description' => '## 使用说明'."\n" ."\n" - .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" - .'>'."\n" + .'- 不支持删除物联网平台提供的默认消费组。'."\n" + .'- 如果消费组已关联AMQP订阅,则需先解除该订阅与消费组的关联。当该订阅中有多个消费组时,可调用[DeleteConsumerGroupSubscribeRelation](~~170357~~)从订阅移除消费组;当该订阅只有一个消费组时,可调用[UpdateSubscribeRelation](~~170351~~)更改消费组或调用[DeleteSubscribeRelation](~~170353~~)删除订阅。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDevicesProperty' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteConsumerGroupSubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要设置属性值的设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'Qos', + 'name' => 'ConsumerGroupId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1', - 'minimum' => '0', - 'default' => '0', - ], + 'schema' => ['description' => '消费组ID。您可以调用[QuerySubscribeRelation](~~170352~~)查询AMQP订阅中的消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGfjBO9l00****'], ], [ - 'name' => 'Items', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要设置的属性信息,数据格式为JSON。'."\n" - ."\n" - .'每个属性信息由**标识符与属性值(key:value)**构成,多个属性用英文逗号隔开。'."\n" - ."\n" - .'例如,设置智能灯的两个属性:'."\n" - .'- 标识符为**Switch**的开关属性,数据类型为**Bool**,设置值为**1**(开)。'."\n" - .'- 标识符为**Color**的灯颜色属性,数据类型为**String**,设置值为**blue**。'."\n" - ."\n" - .'那么要设置的属性信息,JSON格式如下:'."\n" - ."\n" - .'`Items={"Switch":1,"Color":"blue"}`'."\n" - ."\n" - .'> 如果设置自定义模块testFb(非默认模块)的属性,则格式为:`Items={"testFb:Switch":1,"testFb:Color":"blue"}`', - 'type' => 'string', - 'required' => true, - 'example' => '{"Switch":1,"Color":"blue"}', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'DeviceName', + 'name' => 'ProductKey', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要设置属性值的设备名称列表。设备名称的个数范围为1~100个。'."\n" - ."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'light', - 'maxItems' => 500, - ], + 'schema' => ['description' => '该订阅中的产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], ], ], 'responses' => [ @@ -18841,163 +13310,157 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', - 'title' => '批量设置设备属性值', - 'summary' => '调用该接口批量设置设备属性值。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '从多个消费组移除指定消费组', + 'summary' => '从AMQP订阅中的多个消费组移除指定消费组。', 'description' => '## 使用说明'."\n" - .'物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + .'当AMQP订阅中只有一个消费组时,不能使用该接口移除消费组。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'InvokeThingService' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteConsumerGroupSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDataSourceItem' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有**ID**值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'DataSourceItemId', 'in' => 'query', - 'schema' => [ - 'description' => '要调用服务的设备所属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '数据源Topic的ID。您可调用接口[ListDataSourceItem](~~421072~~),查询指定数据源下的Topic列表,获取**DataSourceItemId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999', 'minimum' => '0', 'example' => '129322'], ], [ - 'name' => 'DeviceName', + 'name' => 'DataSourceId', 'in' => 'query', + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999', 'minimum' => '0', 'example' => '1001'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要调用服务所属设备的DeviceName。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'String iot.system.SystemException '], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceItemNotExists', 'errorMessage' => 'datasource item not existed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteDataSourceItem', + 'summary' => '调用该接口删除指定数据源下的指定Topic。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Identifier', - 'in' => 'query', - 'schema' => [ - 'description' => '服务的标识符。'."\n" - ."\n" - .'设备的服务**Identifier**的查看方式:'."\n" - ."\n" - .'- 登录[物联网平台控制台](https://iot.console.aliyun.com/),在设备所属产品的**功能定义**中查看。'."\n" - .'- 调用接口[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - ."\n" - .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'Set', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Args', - 'in' => 'query', - 'schema' => [ - 'description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。'."\n" - .'若此参数为空时,需传入 **Args={}** 。'."\n" - ."\n" - .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => '{"param1":1}', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要调用服务的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'Qos', + 'name' => 'DestinationId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1', - 'minimum' => '0', - 'default' => '0', - ], + 'schema' => ['description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999', 'minimum' => '0', 'example' => '1003'], ], ], 'responses' => [ @@ -19005,191 +13468,176 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功,但不代表调用的服务执行成功。执行情况,以设备端日志为准。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Result' => [ - 'description' => '同步调用服务,返回的调用结果。'."\n" - .'异步调用服务,不返回此参数。', - 'type' => 'string', - 'example' => '{"param1":1}', - ], - 'MessageId' => [ - 'description' => '云端向设备下发服务调用的消息ID。', - 'type' => 'string', - 'example' => 'abcabcabc1234****', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Result\\": \\"{\\\\\\"param1\\\\\\":1}\\",\\n \\"MessageId\\": \\"abcabcabc1234****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n abcabc123\\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', - 'title' => '在一个设备上调用指定服务', - 'summary' => '调用该接口在单个设备上调用指定服务。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemError', 'errorMessage' => 'System exception.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.NotFoundRuleAction', 'errorMessage' => 'The rule action is not found.', 'description' => ''], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'Destination not found', 'description' => ''], + ['errorCode' => 'iot.rule.DestinationInUsing', 'errorMessage' => 'Destination has been attached to parser', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteDestination', + 'summary' => '调用该接口删除已创建的数据目的。', 'description' => '## 使用说明'."\n" ."\n" - .'定义产品物模型服务时,已设置服务调用方式。因此,调用本接口时,物联网平台会根据请求参数**Identifier**值,选择服务对应的调用方式。'."\n" - .'- 同步方式:物联网平台直接使用RRPC同步方式下行推送请求,设备返回RRPC响应消息。RRPC使用详情,请参见[什么是RRPC](~~90567~~)。'."\n" - .'- 异步方式:物联网平台采用异步方式下行推送请求,设备采用异步方式返回结果。订阅的Topic详情,请参见[设备服务调用](~~89301~~)。'."\n" - ."\n" - .'>若创建产品时,设置物模型校验类型为**免校验**,调用本接口会默认为异步调用方式。'."\n" - .'>'."\n" - ."\n" - .'调用服务到设备端后,设备会返回调用结果给接口的调用方。设备端响应逻辑及响应结果,需您在设备端完成开发。设备返回结果的数据格式必须符合标准的Alink协议,Alink JSON格式如下:'."\n" - .'```'."\n" - .'{'."\n" - .' "id": "58***89",'."\n" - .' "code": 200,'."\n" - .' "data": {},'."\n" - .' "message": "success",'."\n" - .' "localizedMsg": "localizedMsg"'."\n" - .'}'."\n" - .'```'."\n" - .'> - **id**为物联网平台生成的唯一ID,设备从服务调用请求中获取,并原文返回。'."\n" - .'- **code**为整型数字,会返回给接口调用方,用于判断服务调用结果。'."\n" - .'- **data**为调用设备服务的结果数据,会返回给接口调用方。数据必须为JSON格式,由用户自行定义返回内容。'."\n" - .'- **message**、**localizedMsg**根据业务需要进行返回。'."\n" - .'例如物联网平台的设备接入C Link SDK提供了物模型使用示例,详细内容,请参见[调用服务](~~258239~~)。'."\n" - ."\n\n" - .'## 使用限制'."\n" - .'同步调用服务,最大超时时间为8秒。若8秒内服务器未收到回复,则返回超时错误。异步调用服务无最大超时时间限制。'."\n" + .'调用接口[CreateDestination](~~433032~~)创建数据目的成功后,若有业务需要,您可根据返回的**DestinationId**删除对应数据目的。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'InvokeThingsService' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要调用服务的设备所隶属的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '要删除的设备所属的产品**ProductKey**。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1FlqIQ****'], ], [ - 'name' => 'Qos', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1', - 'minimum' => '0', - 'default' => '0', - ], + 'schema' => ['description' => '指定要删除的设备的名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'Identifier', + 'name' => 'IotId', 'in' => 'query', + 'schema' => ['description' => '要删除的设备ID。'."\n" + ."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'MpEKNuEUJzIORNANAWJX0010929900*****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '服务的标识符。'."\n" - ."\n" - .'设备的服务**Identifier**的查看方式:'."\n" - ."\n" - .'- 登录物联网平台控制台,在设备所属产品的**功能定义**中查看。'."\n" - .'- 调用接口[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - ."\n" - .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。', - 'type' => 'string', - 'required' => true, - 'example' => 'Set', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.prod.NullProductKey'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '入参产品ID没有赋值。'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'false'], + ], + 'description' => '', ], ], - [ - 'name' => 'Args', - 'in' => 'query', - 'schema' => [ - 'description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。'."\n" - .'若此参数为空时,需传入**Args={} **。'."\n" - ."\n" - .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '{"param1":1}', + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.prod.NullProductKey\\",\\n \\"ErrorMessage\\": \\"入参产品ID没有赋值。\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteDevice', + 'summary' => 'Deletes a device. You can also call this operation to delete the topological relationships between a gateway and the sub-devices that are connected to the gateway.', + 'description' => '## 使用说明'."\n" + .'**调用本接口前须知**'."\n" + ."\n" + .'- 使用主账号登录时,物联网平台会进行短信验证,以确认是您本人操作。'."\n" + .'- 使用RAM用户账号时,物联网平台默认无需短信验证。为保障设备安全,您可创建自定义权限策略进行精细化权限管理。具体内容,请参见[IoT授权映射表](~~47485~~)和[自定义权限](~~47495~~)。'."\n" + ."\n" + .'>'."\n" + .'- 设备删除后,设备ID(**IotId**)将失效,与设备关联的其他信息也一并删除,您将无法执行与该设备关联的任何操作。'."\n" + .'- 在物联网平台控制台删除设备前,对应的真实设备必须离线。否则,在物联网平台删除该设备后,真实设备会一直向物联网平台发起建连请求,发起请求数超出限制后,触发物联网平台的限流机制,会影响您当前账号下设备的正常接入。'."\n" + .'- 设备删除后,该设备证书会失效,且不能恢复。请谨慎操作。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'**调用本接口时**'."\n" + ."\n" + .'- 传入请求参数时,需传入**IotId**或**ProductKey**与**DeviceName**组合,用于指定设备。'."\n" + .'- 如果指定设备是网关设备,且其子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteDeviceDistributeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DeviceName', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'JobId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要调用服务的设备的名称列表。最多支持传入100个设备名称。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'device1', - 'maxItems' => 500, - ], + 'schema' => ['description' => '分发任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'UbmsMHmkqv0PiAG****010001'], ], ], 'responses' => [ @@ -19197,217 +13645,173 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功,但不代表调用的服务执行成功。执行情况,以设备端日志为准。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n059C3274-6197-4BEC-95E4-49A076330E57\\ntrue\\n","errorExample":""}]', - 'title' => '批量调用设备服务', - 'summary' => '调用该接口批量调用设备服务。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => '删除设备分发任务', + 'summary' => '调用该接口删除设备分发任务。', 'description' => '## 使用说明'."\n" - .'目前只支持异步调用该接口。'."\n" - .'调用服务到设备端后,设备会返回调用结果给接口的调用方。设备端响应逻辑及响应结果,需您在设备端完成开发。设备返回结果的数据格式必须符合标准的Alink协议,Alink JSON格式如下:'."\n" - .'```'."\n" - .'{'."\n" - .' "id": "58***89",'."\n" - .' "code": 200,'."\n" - .' "data": {},'."\n" - .' "message": "success",'."\n" - .' "localizedMsg": "localizedMsg"'."\n" - .'}'."\n" - .'```'."\n" - .'> - **id**为物联网平台生成的唯一ID,设备从服务调用请求中获取,并原文返回。'."\n" - .'- **code**为整型数字,会返回给接口调用方,用于判断服务调用结果。'."\n" - .'- **data**为调用设备服务的结果数据,会返回给接口调用方。数据必须为JSON格式,由用户自行定义返回内容。'."\n" - .'- **message**、**localizedMsg**根据业务需要进行返回。'."\n" - .'例如物联网平台的设备接入C Link SDK提供了物模型使用示例,详细内容,请参见[调用服务](~~258239~~)。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享该阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。更多信息,请参见 [公共参数文档](~~30561~~)。', + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" + ."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevicePropertyData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDeviceDynamicGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-***-v6***'], ], [ - 'name' => 'PageSize', + 'name' => 'GroupId', 'in' => 'query', + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。'."\n" + ."\n" + .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', 'type' => 'string', 'required' => true, 'example' => 'tDQvBJqbUyHs***'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.group.NullGroupId', 'errorMessage' => 'You must specify the device group ID.', 'description' => '入参分组ID没有赋值。'], + ['errorCode' => 'iot.group.NotExistedGroup', 'errorMessage' => 'The specified device group does not exist.', 'description' => '分组不存在。'], + ['errorCode' => 'iot.common.RamActionPermissionDeny', 'errorMessage' => 'You do not have the RAM permission.', 'description' => '没有资源访问控制(RAM)权限。'], + ['errorCode' => 'iot.common.InvalidTenant', 'errorMessage' => 'The tenant is invalid.', 'description' => '不合法的租户。'], + ['errorCode' => 'iot.group.QueryGroupInfoFailed', 'errorMessage' => 'An error occurred while querying the device group details.', 'description' => '查询分组详情失败。'], + ['errorCode' => 'iot.group.DeleteGroupFailed', 'errorMessage' => 'An error occurred while deleting the device group.', 'description' => '删除分组失败。'], + ['errorCode' => 'iot.common.APINotSupportedInInstance', 'errorMessage' => 'This API operation is not supported in this instance.', 'description' => '当前实例不支持该API。'], + ['errorCode' => 'iot.device.RegionNotSupportDynamicGroup', 'errorMessage' => 'The region does not currently support the dynamic group feature.', 'description' => '该region目前不支持动态分组功能。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nB78B4FD1-AE89-417B-AD55-367EBB0C6759\\ntrue\\n","errorExample":""}]', + 'title' => '删除指定的动态分组', + 'summary' => '逻辑删除设备动态分组,删除分组下设备分组关系。', + 'description' => '## 限制说明'."\n" + ."\n" + .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组。公共实例说明,请参见[公共实例](~~147356~~)。'."\n" + ."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品ProductKey。'."\n" - ."\n" - .'>'."\n" - .'如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceDynamicGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteDeviceFile' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的名称。'."\n" - ."\n" - .'>'."\n" - .' 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'airconditioning', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的属性记录的开始时间,必须小于结束时间**EndTime**。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Identifier', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的属性标识符。'."\n" - ."\n" - .''."\n" - .'- 设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" - .'- 数字孪生节点的属性**Identifier**,可在物联网平台控制台中数字孪生工作台下的孪生节点的功能属性中查看。具体操作,请参见[孪生节点的功能属性](~~278729~~)。'."\n" - ."\n" - .''."\n" - ."\n" - .'设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" - ."\n" - .'> 如果设备的属性是自定义(非默认)模块**testFb**下属性**temperature**,则参数值为**testFb:temperature**。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'temperature', - ], + 'schema' => ['description' => '要删除文件所属的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Asc', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中属性记录的排序方式,取值:'."\n" - ."\n" - .'- **0**:倒序。'."\n" - .'- **1**:正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'docRequired' => true, - 'example' => '0', - ], + 'schema' => ['description' => '要删除文件所属的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询属性所属的设备ID或数字孪生节点ID:'."\n" - ."\n" - .''."\n" - .'- 调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" - .'- 在物联网平台控制台的**数字孪生体详情**页面,单击孪生节点,可查看**节点ID**。'."\n" - ."\n" - .''."\n" - ."\n" - .'调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" - ."\n" - .'>**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '要删除文件所属的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ - 'name' => 'EndTime', + 'name' => 'FileId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的属性记录的结束时间,必须大于起始时间**StartTime**。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'docRequired' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '要删除的文件ID。可调用[QueryDeviceFileList](~~112001~~),从返回结果中查看对应文件ID。', 'type' => 'string', 'required' => true, 'example' => '6UCo1SqbqnQEoh9aK4561****'], ], ], 'responses' => [ @@ -19415,269 +13819,162 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备属性记录。', - 'type' => 'object', - 'properties' => [ - 'NextTime' => [ - 'description' => '下一页面中的属性记录的起始时间。'."\n" - ."\n" - .'- 当属性记录的排序方式为倒序(入参**Asc**为**0**),调用本接口查询下一页属性记录时,该值可作为下次查询的入参**EndTime**的值。'."\n" - .'- 当属性记录的排序方式为正序(入参**Asc**为**1**),调用本接口查询下一页属性记录时,该值可作为下次查询的入参**StartTime**的值。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579249499000', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有,返回**NextTime**。详细说明,请参见**NextTime**描述。'."\n" - .'- **false**:没有。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyInfo' => [ - 'description' => '属性数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => '2', - ], - 'Time' => [ - 'description' => '属性修改时间。', - 'type' => 'string', - 'example' => '1516541885630', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextTime\\": 1579249499000,\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"2\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n 1579249151177\\n \\n \\n 32.46\\n \\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的属性记录', - 'summary' => '调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据。', - 'description' => '## 使用说明'."\n" - .'若设备或数字孪生节点有多个属性,您可以多次调用本接口,一次输入一个**Identifier**进行查询,也可以直接调用接口[QueryDevicePropertiesData](~~99237~~),一次输入多个**Identifier**进行查询。'."\n" - ."\n" - .''."\n" - .'- 若设备或数字孪生节点有多个属性,您可以多次调用本接口,一次输入一个**Identifier**进行查询,也可以直接调用接口[QueryDevicePropertiesData](~~99237~~),一次输入多个**Identifier**进行查询。'."\n" - .'- 若查询数字孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" - ."\n" - .''."\n" - ."\n" - .'## 使用限制'."\n" - .'仅可查询最近30天内的属性数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的属性数据。'."\n" - ."\n" - .''."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', + 'title' => '删除指定设备上传到物联网平台的指定文件', + 'summary' => '调用该接口删除指定设备上传到物联网平台的指定文件。', + 'description' => '## QPS限制'."\n" ."\n" - .'> 数据存储时间从属性时间戳表示的时间当日开始计算。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevicePropertiesData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDeviceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'GroupId', 'in' => 'query', + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'tDQvBJqbUyHs****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '单个属性可返回的数据记录数量。最大值为100。'."\n" - .'任意一个属性返回的数据记录数量不超过该值。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除指定分组', + 'summary' => '调用该接口删除指定分组。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品ProductKey。'."\n" - ."\n" - .'>'."\n" - .' 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteDeviceProp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'>'."\n" - .' 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'airconditioning', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '属性记录的开始时间。取值为13位毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Asc', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中,属性记录按时间排序的方式。取值:'."\n" - ."\n" - .'- **0**:倒序。倒序查询时,**StartTime**必须大于**EndTime**。'."\n" - .'- **1**:正序。正序查询时,**StartTime**必须小于**EndTime**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => '标签所属设备隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'IotId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '要查询属性所属的设备ID或数字孪生节点ID:'."\n" - ."\n" - .''."\n" - .'- 调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" - .'- 在物联网平台控制台的**数字孪生体详情**页面,单击孪生节点,可查看**节点ID**。'."\n" - ."\n" - .''."\n" - ."\n" - .'调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" - ."\n" - .'>**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '标签所属设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'EndTime', + 'name' => 'PropKey', 'in' => 'query', - 'schema' => [ - 'description' => '属性记录的结束时间。取值为13位毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '要删除的设备标签键值(Key)。'."\n" + ."\n" + .'> 物联网平台在目标设备的标签中检索您提供的Key值,并删除与之对应的标签。如果目标设备的标签中没有与您提供的Key值对应的记录,则不执行任何操作。', 'type' => 'string', 'required' => true, 'example' => 'room'], ], [ - 'name' => 'Identifier', + 'name' => 'IotId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '属性的标识符列表。'."\n" - .'不可输入重复的属性Identifier。'."\n" - .''."\n" - .'- 设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" - .'- 数字孪生节点的属性**Identifier**,可在物联网平台控制台的数字孪生工作台下的孪生节点的功能属性中查看。具体操作,请参见[孪生节点的功能属性](~~454999~~)。'."\n" - ."\n" - .''."\n" - ."\n" - .'设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" - ."\n" - .'> 如果设备的属性是自定义(非默认)模块**testFb**下属性**temperature**,则参数值为**testFb:temperature**。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'temperature', - 'maxItems' => 10, - ], + 'schema' => ['description' => '标签所属设备的ID'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -19685,266 +13982,229 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'NextValid' => [ - 'description' => '目前本接口不支持分页查询,请忽略此参数返回值。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'NextTime' => [ - 'description' => '目前本接口不支持分页查询,请忽略此参数返回值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579249499000', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PropertyDataInfos' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyDataInfo' => [ - 'description' => '调用成功时,返回的属性信息列表(**PropertyDataInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '属性的标识符。', - 'type' => 'string', - 'example' => 'temperature', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyInfo' => [ - 'description' => '属性数据列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => '21.3', - ], - 'Time' => [ - 'description' => '属性上报时间。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579249499000', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579249499000,\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PropertyDataInfos\\": {\\n \\"PropertyDataInfo\\": [\\n {\\n \\"Identifier\\": \\"temperature\\",\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"21.3\\",\\n \\"Time\\": 1579249499000\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nfalse\\nCC4CAC00-ED4C-4004-9E8D-E8B4A78552FA\\n\\n \\n \\n \\n 32.46\\n \\n \\n \\n Temperature\\n \\n \\n \\n \\n 48\\n \\n \\n \\n Humidity\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '批量查询指定设备的属性上报数据', - 'summary' => '调用该接口查询指定设备或数字孪生节点,在指定时间段内,多个属性的数据。', - 'description' => '## 使用说明'."\n" - .''."\n" - .'- 若查询数字孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" - .'- 目前本接口已不支持分页查询。调用本接口时,如果在指定时间段内,没有返回**PageSize**条记录,返回的**NextTime**和**NextValid**也是无效的。您可多次调用接口[QueryDevicePropertyData](~~69539~~),一次输入一个**Identifier**进行查询。'."\n" - ."\n" - .''."\n" - ."\n" - .'目前本接口已不支持分页查询。调用本接口时,如果在指定时间段内,没有返回**PageSize**条记录,返回的**NextTime**和**NextValid**也是无效的。您可多次调用接口[QueryDevicePropertyData](~~69539~~),一次输入一个**Identifier**进行查询。'."\n" - ."\n" - .'## 使用限制'."\n" - ."\n" - .'- 一次调用下,最多查询10个属性的历史数据,最多返回100条数据。'."\n" - .'- 标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他实例:仅可查询最近30天内的属性数据。 '."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => '删除设备下的指定标签', + 'summary' => '调用该接口删除设备下的指定标签。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" - ."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceEventData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteDeviceSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。可以调用[QueryDeviceInfo](~~257184~~)查询设备ID。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', - 'in' => 'query', + 'name' => 'DeviceSpeechList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', + 'description' => '待删除的语料列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'BizCode' => ['description' => '语料标识。调用[QuerySpeech](~~217577~~)可以查询语料标识。', 'type' => 'string', 'required' => true, 'example' => 'identifying'], + 'AudioFormat' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => true, 'example' => 'wav'], + ], + 'required' => false, + 'description' => '', + ], + 'required' => true, + 'maxItems' => 50, ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n" + ."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteDeviceSpeech', + 'summary' => '调用该接口删除设备中的语料。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的事件记录的开始时间。格式为毫秒级的13位时间戳,例如:1516538300303。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1516541900303', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Identifier', + 'name' => 'TunnelId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的事件标识符。设备的事件**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - ."\n" - .'> 如果是自定义(非默认)模块**testFb**下事件**PowerOff**,则参数值为**testFb:PowerOff**。'."\n" - ."\n" - .'不传入此参数时,查询默认模块和自定义模块下的所有事件数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'PowerOff', - ], + 'schema' => ['description' => '要删除的安全隧道的ID。', 'type' => 'string', 'required' => true, 'example' => 'd4098041-a560-***'], ], [ - 'name' => 'EventType', + 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-***-v6***'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的事件类型。取值:'."\n" - ."\n" - .'- **info**:信息。'."\n" - ."\n" - .'- **alert**:告警。'."\n" - ."\n" - .'- **error**:故障。', - 'type' => 'string', - 'required' => false, - 'example' => 'info', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.securetunnel.InstanceIdMismatch', 'errorMessage' => 'The instanceId does not match the parameter.', 'description' => '实例id跟其他参数不匹配。'], + ['errorCode' => 'iot.securetunnel.TunnelNotExist', 'errorMessage' => 'The device tunnel does not exist.', 'description' => '设备隧道不存在'], + ['errorCode' => 'iot.securetunnel.IllegalState', 'errorMessage' => 'The tunnel state does not meet the requirement.', 'description' => '设备隧道状态不满足要求。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => '删除设备安全隧道', + 'summary' => '已经关闭的安全隧道,可以调用该PI进行删除。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中事件记录的排序方式,取值:'."\n" - ."\n" - .'- **0**(默认):倒序。'."\n" - .'- **1**:正序。'."\n" - ."\n" - .'> 不传入此参数时,使用默认值**0**,按照倒序进行排序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteEdgeDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EndTime', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的事件记录的结束时间。格式为毫秒级的13位时间戳,例如:1516541900303。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1516541900303', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], ], 'responses' => [ @@ -19952,253 +14212,134 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备事件记录。', - 'type' => 'object', - 'properties' => [ - 'NextValid' => [ - 'description' => '是否有下一页事件记录。'."\n" - ."\n" - .'- **true**:有,返回**NextTime**。详细说明,请参见**NextTime**描述。'."\n" - .'- **false**:没有。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'NextTime' => [ - 'description' => '下一页面中的事件记录的起始时间。毫秒级时间戳。'."\n" - ."\n" - .'- 当事件记录的排序方式为倒序(入参**Asc**为0或不传入),调用本接口查询下一页事件记录时,该值可作为下次查询的入参**EndTime**的值。'."\n" - .'- 当事件记录的排序方式为正序(入参**Asc**为1),调用本接口查询下一页事件记录时,该值可作为下次查询的入参**StartTime**的值。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579163099000', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EventInfo' => [ - 'description' => '事件集合。每个元素代表一个事件。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '事件标识符。', - 'type' => 'string', - 'example' => 'PowerOff', - ], - 'OutputData' => [ - 'description' => '事件的输出参数,map格式的字符串。', - 'type' => 'string', - 'example' => '{"structArgs":{"structchildFLOATf71c20e":1.23}}', - ], - 'Time' => [ - 'description' => '事件发生时间。毫秒级时间戳。', - 'type' => 'string', - 'example' => '1579163099000', - ], - 'EventType' => [ - 'description' => '事件类型。'."\n" - .'- **info**:信息。'."\n" - .'- **alert**:告警。'."\n" - .'- **error**:故障。', - 'type' => 'string', - 'example' => 'info', - ], - 'Name' => [ - 'description' => '事件名称。', - 'type' => 'string', - 'example' => '设备关机', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'F82E857F-B6B9-4CCC-96B8-E4BE97095F1A'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579163099000,\\n \\"List\\": {\\n \\"EventInfo\\": [\\n {\\n \\"Identifier\\": \\"PowerOff\\",\\n \\"OutputData\\": \\"{\\\\\\"structArgs\\\\\\":{\\\\\\"structchildFLOATf71c20e\\\\\\":1.23}}\\",\\n \\"Time\\": \\"1579163099000\\",\\n \\"EventType\\": \\"info\\",\\n \\"Name\\": \\"设备关机\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n 1579249151177\\n \\n \\n testEventInfoName\\n \\n {\\"structArgs\\":{\\"structchildFLOATf71c20e\\":1.23,\\"structchildINT6b6b626\\":3,\\"structchildDATE663436a\\":\\"1516517966152\\",\\"structchildDOUBLE08d0f74\\":1.23,\\"structchildTEXTdc764f9\\":\\"07b68264b0ba42c18e5f\\",\\"structchildBOOLd260729\\":0,\\"structchildENUMbe62590\\":1},\\"enumArgs\\":0,\\"boolArgs\\":0,\\"floatArgs\\":2.3,\\"dateArgs\\":\\"1516517966152\\",\\"intArgs\\":1,\\"doubleArgs\\":2.3,\\"textArgs\\":\\"dV56zbkzjBjw1Ti1dA52\\"}\\n info\\n testEventInfo\\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的事件记录', - 'summary' => '调用该接口查询指定设备的事件记录。', - 'description' => '## 使用说明'."\n" - .'仅可查询最近30天内的事件记录数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的事件记录数据。'."\n" - ."\n" - .''."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"F82E857F-B6B9-4CCC-96B8-E4BE97095F1A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n F82E857F-B6B9-4CCC-96B8-E4BE97095F1A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除已创建的驱动', + 'summary' => '删除已创建的驱动 。', + 'description' => '## 限制条件'."\n" ."\n" - .' > 数据存储时间从事件生成当日起开始计算。'."\n" + .'- 当驱动下存在已发布的驱动版本时,该驱动无法删除。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceServiceData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '驱动版本号。', 'type' => 'string', 'required' => true, 'example' => '1.2.0'], ], - [ - 'name' => 'StartTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的服务调用记录的开始时间。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'J82E857F-T6B9-4FDE-96B8-E4BE97095D1A'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"J82E857F-T6B9-4FDE-96B8-E4BE97095D1A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n J82E857F-T6B9-4FDE-96B8-E4BE97095D1A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除驱动的某一版本', + 'summary' => '删除驱动的某一版本。', + 'description' => '## 限制条件'."\n" + ."\n" + .'- 已发布的驱动版本,不允许删除。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Identifier', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的服务标识符。设备的服务**Identifier**。可在控制台中,设备所属的产品的功能定义中查看;或调用[QueryThingModel](~~150321~~)。'."\n" - ."\n" - .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。'."\n" - ."\n" - .'不传入此参数时,查询默认模块和自定义模块下的所有服务数据。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Set', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中,服务调用记录按时间排序的方式。取值:'."\n" - ."\n" - .'- **0**:倒序。'."\n" - .'- **1**:正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EndTime', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的服务调用记录的结束时间。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], ], 'responses' => [ @@ -20206,228 +14347,135 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备服务调用记录。', - 'type' => 'object', - 'properties' => [ - 'NextValid' => [ - 'description' => '是否有下一页服务调用记录。'."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextTime**的值作为下次查询的**StartTime**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'NextTime' => [ - 'description' => '下一页面中的服务调用记录的起始时间。'."\n" - .'调用本接口查询下一页服务调用记录时,该值可作为请求**StartTime**的值。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579335899000', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ServiceInfo' => [ - 'description' => '服务调用记录集合。每个元素代表一个服务执调用录。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '服务标识符。', - 'type' => 'string', - 'example' => 'Set', - ], - 'OutputData' => [ - 'description' => '服务的输出参数,MAP格式的字符串,结构为`key:value`。', - 'type' => 'string', - 'example' => '{\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}', - ], - 'Time' => [ - 'description' => '调用服务的时间。', - 'type' => 'string', - 'example' => '1579249499000', - ], - 'InputData' => [ - 'description' => '服务的输入参数,MAP格式的字符串,结构为`key:value`。', - 'type' => 'string', - 'example' => '{\\"LightAdjustLevel\\":123}', - ], - 'Name' => [ - 'description' => '服务名称。', - 'type' => 'string', - 'example' => '设置温度', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'F29C33E5-BF22-48FE-9FEF-8A24146E3388'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579335899000,\\n \\"List\\": {\\n \\"ServiceInfo\\": [\\n {\\n \\"Identifier\\": \\"Set\\",\\n \\"OutputData\\": \\"{\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":200,\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{},\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100686\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.0\\\\\\\\\\\\\\"}\\",\\n \\"Time\\": \\"1579249499000\\",\\n \\"InputData\\": \\"{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":123}\\",\\n \\"Name\\": \\"设置温度\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 1517315865197\\n \\n \\n set\\n \\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n {\\"LightAdjustLevel\\":123}\\n set\\n \\n \\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的服务调用记录', - 'summary' => '调用该接口查询指定设备的服务调用记录。', - 'description' => '## 使用说明'."\n" - ."\n" - .'仅能查询最近30天内的服务数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的服务数据。'."\n" - ."\n" - .''."\n" - ."\n" - .'> 数据存储时间从调用服务当日开始计算。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"F29C33E5-BF22-48FE-9FEF-8A24146E3388\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n F29C33E5-BF22-48FE-9FEF-8A24146E3388\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除边缘实例', + 'summary' => '删除边缘实例。', + 'description' => '单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享该阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetDeviceDesiredProperty' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteEdgeInstanceMessageRouting' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '物联网平台的实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要设置期望属性值的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => '5zvK1COK1gtr********'], ], [ - 'name' => 'DeviceName', + 'name' => 'RouteId', 'in' => 'query', + 'schema' => ['description' => '消息路由的ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '123456'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要设置期望属性值的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n Success\\r\\n E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'DeleteEdgeInstanceMessageRouting', + 'summary' => '调用该接口删除边缘实例中的消息路由。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要设置期望属性值的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Versions', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '当前期望属性值版本,组成为Key:Value,数据格式为JSON String,例如{"Temperature":2}。'."\n" - ."\n" - .'- **Key**取值为属性的标识符(identifier)。可在控制台中,设备所属产品的功能定义中查看属性的identifier。'."\n" - ."\n" - .' > 一次调用中,key的取值(即属性的identifier)不能重复。'."\n" - ."\n" - .'- **Value**取值为当前期望属性值的版本号。'."\n" - ."\n" - .' 首次设置期望属性值时,指定该参数值为0。首次设置期望属性值后,期望值版本号为1。以后每次设置期望值后,物联网平台自动将期望值版本加1(即第二次设置期望属性值时,指定该参数值为1。设置成功后,版本号自动变为2;第三次设置时,指定该参数值为2。设置成功后,版本号自动变为3;以此类推)。'."\n" - .' > 如果传入的版本号与当前版本不符,服务器将拒绝此次请求。若您不确定当前期望值的版本号,可以不传入版本号,但仍需传入有效的JSON,即传入{}。', - 'type' => 'string', - 'required' => true, - 'example' => '{"Temperature":2}', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'Items', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '要设置的期望属性值,组成为属性的**Key:Value**,数据格式为JSON String,例如**{"Temperature":35}**。最多可输入10个期望属性值。'."\n" - ."\n" - .'- **Key**取值为属性的标识符(**identifier**)。可在控制台中,设备所属产品的**功能定义**中查看;或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" - ."\n" - .' 如果是自定义(非默认)模块testFb下属性temperature,则参数值为**{"testFb:temperature":35}**。'."\n" - ."\n" - .' > 指定属性必须是读写型。如果您指定了一个只读型的属性,设置将会失败。并且, 一次调用中,不能传入重复的属性标识符。'."\n" - .' '."\n" - ."\n\n" - .'- **Value**取值为要设置的期望属性值。取值需符合您为该属性定义的数据类型和取值范围。'."\n" - ."\n" - .' > 若属性值设置为null,则表示清空期望属性值。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '{"Temperature":35}', - ], + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'XUbmsMHmkqv0PiAG****010001'], ], ], 'responses' => [ @@ -20435,169 +14483,152 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。详情请参见以下参数。', - 'type' => 'object', - 'properties' => [ - 'MessageId' => [ - 'description' => '云端下发给设备的设置期望属性值的消息ID。', - 'type' => 'string', - 'example' => '300511751', - ], - 'Versions' => [ - 'description' => '本次设置期望属性值后,期望属性值的当前版本号。', - 'type' => 'string', - 'example' => '{\\"Temperature\\":2}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常 '], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C25255EA-9F6E-4E04-85FE-AC1E9C136EBB'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"300511751\\",\\n \\"Versions\\": \\"{\\\\\\\\\\\\\\"Temperature\\\\\\\\\\\\\\":2}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 300511751\\n {\\"LightAdjustLevel\\":2}\\n\\nAADE79D2-B328-4FC6-A3E0-34BB23BCA440\\ntrue\\n","errorExample":""}]', - 'title' => '为指定设备批量设置期望属性值', - 'summary' => '调用该接口为指定设备批量设置期望属性值。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常 \\",\\n \\"RequestId\\": \\"C25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', + 'title' => '删除任务', + 'summary' => '调用该接口删除任务。', 'description' => '## 使用说明'."\n" ."\n" - .'- 只读属性不支持设置期望属性值。'."\n" - .'- 一次调用最多可设置10个期望属性值。'."\n" - .'- 设备创建后,期望属性值的版本(**Version**)为**0**。首次设置期望属性值时,如果指定**Version**参数,则需指定**Version**值为**0**。'."\n" - ."\n" - .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" - .'>'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceDesiredProperty' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteOTAFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所隶属的产品ProductKey。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" + ."\n" + .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 's8SSHiKjpBfrM3BSN0z803****'], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9B7BF858-7686-496E-B8B0-BF9E5D7F86CE'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9B7BF858-7686-496E-B8B0-BF9E5D7F86CE\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9B7BF858-7686-496E-B8B0-BF9E5D7F86CE\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除指定固件', + 'summary' => '调用该接口删除指定OTA升级包。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - [ - 'name' => 'FunctionBlockId', - 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + ], + ], + 'DeleteOTAModule' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Identifier', + 'name' => 'IotInstanceId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要查询期望值的属性的标识符(identifier)列表。'."\n" - ."\n" - .'设备的属性identifier,可在控制台中,设备所属产品的功能定义中查看。'."\n" - ."\n" - .'- 单次调用,最多能传入10个标识符。'."\n" - .'- 不可输入重复的属性标识符。'."\n" - .'- 若不传入此参数,将返回该设备所有属性的期望值。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'Temperature', - 'maxItems' => 10, - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => 'OTA模块所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1uctKe****'], + ], + [ + 'name' => 'ModuleName', + 'in' => 'query', + 'schema' => ['description' => '要删除的OTA模块名称。', 'type' => 'string', 'required' => true, 'example' => 'barcodeScanner'], ], ], 'responses' => [ @@ -20605,195 +14636,160 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据(**List**)。', - 'type' => 'object', - 'properties' => [ - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DesiredPropertyInfo' => [ - 'description' => '返回的期望属性信息(**DesiredPropertyInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '期望属性值的修改时间,单位是毫秒。', - 'type' => 'string', - 'example' => '1579335899000', - ], - 'Value' => [ - 'description' => '期望属性值。'."\n" - ."\n" - .'> 如果已调用[ClearDeviceDesiredProperty](~~477431~~)接口清空对应属性的期望值,则不会返回参数**Value**。', - 'type' => 'string', - 'example' => '34', - ], - 'DataType' => [ - 'description' => '属性数据类型。', - 'type' => 'string', - 'example' => 'int', - ], - 'Version' => [ - 'description' => '当前期望属性值的版本号。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'Unit' => [ - 'description' => '属性单位。', - 'type' => 'string', - 'example' => '℃', - ], - 'Identifier' => [ - 'description' => '属性标识符。', - 'type' => 'string', - 'example' => 'Temperature', - ], - 'Name' => [ - 'description' => '属性名称。', - 'type' => 'string', - 'example' => 'airconditioning', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"List\\": {\\n \\"DesiredPropertyInfo\\": [\\n {\\n \\"Time\\": \\"1579335899000\\",\\n \\"Value\\": \\"34\\",\\n \\"DataType\\": \\"int\\",\\n \\"Version\\": 1,\\n \\"Unit\\": \\"℃\\",\\n \\"Identifier\\": \\"Temperature\\",\\n \\"Name\\": \\"airconditioning\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n 温度\\n 35\\n \\n float\\n 1\\n Temperature\\n °C\\n \\n \\n\\nF0B1F7C8-A799-44C3-BDF8-1B8F9E91E675\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的期望属性值', - 'summary' => '调用该接口查询指定设备的期望属性值。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除自定义OTA模块', + 'summary' => '调用该接口删除自定义OTA模块。', 'description' => '## 使用说明'."\n" ."\n" - .'- 只读属性不支持查询期望属性值。'."\n" + .'- 默认(default)模块不允许删除。'."\n" ."\n" - .'- 一次调用最多能查询10个属性的期望值。'."\n" + .'- 若OTA模块下存在升级包,则不允许删除。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n\n" + ."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevicePropertyStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n\n" - .'> - 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'> - 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'ParserId', 'in' => 'query', + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '0', 'example' => '1001'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的设备所属的产品ProductKey。'."\n" - ."\n" - .'>'."\n" - .'如果传入该参数,需同时传入DeviceName。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.DeleteRuleFailed', 'errorMessage' => 'An error occurred while deleting the rule.', 'description' => '删除规则失败。'], + ['errorCode' => 'iot.ruleng.RuleAlreadyIsStarted', 'errorMessage' => 'The specified rule has already started', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteParser', + 'summary' => '调用该接口删除解析器。', + 'description' => '## 使用说明'."\n" + .'调用接口[CreateParser](~~429044~~)创建解析器成功后,若有业务需要,您可根据返回的**ParserId**删除对应解析器。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'>'."\n" - .'如果传入该参数,需同时传入ProductKey。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IotId', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询属性所属的设备ID或IoT孪生节点ID:'."\n" - ."\n" - .'- 调用[QueryDeviceInfo](~~QueryDeviceInfo~~)接口,可查询指定设备的**IotId**。'."\n" - .'- 在物联网平台控制台的**孪生实体图**页面,单击孪生节点,可查看**节点ID**。'."\n" - ."\n\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'FunctionBlockId', + 'name' => 'DataSourceId', 'in' => 'query', - 'schema' => [ - 'description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" - ."\n" - .'不传入此参数时,查询默认模块的数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'BatteryModule', - ], + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -20801,212 +14797,135 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据,详情请参见**List**包含的参数。', - 'type' => 'object', - 'properties' => [ - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyStatusInfo' => [ - 'description' => '返回的属性集合信息(**PropertyStatusInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Time' => [ - 'description' => '属性修改的时间,单位是毫秒。', - 'type' => 'string', - 'example' => '1517553572362', - ], - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => '25', - ], - 'DataType' => [ - 'description' => '属性格式类型,取值:'."\n" - ."\n" - .'- **int**:整型。'."\n" - .'- **float**:单精度浮点型。'."\n" - .'- **double**:双精度浮点型。'."\n" - .'- **enum**:枚举型。'."\n" - .'- **bool**:布尔型。'."\n" - .'- **text**:字符型。'."\n" - .'- **date**:时间型(String类型的UTC时间戳,单位是毫秒)。'."\n" - .'- **array**:数组型。'."\n" - .'- **struct**:结构体类型。', - 'type' => 'string', - 'example' => 'int', - ], - 'Unit' => [ - 'description' => '属性值的单位。', - 'type' => 'string', - 'example' => '°C', - ], - 'Identifier' => [ - 'description' => '属性标识符。', - 'type' => 'string', - 'example' => 'Temperature', - ], - 'Name' => [ - 'description' => '属性名称。', - 'type' => 'string', - 'example' => 'temperature', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"List\\": {\\n \\"PropertyStatusInfo\\": [\\n {\\n \\"Time\\": \\"1517553572362\\",\\n \\"Value\\": \\"25\\",\\n \\"DataType\\": \\"int\\",\\n \\"Unit\\": \\"°C\\",\\n \\"Identifier\\": \\"Temperature\\",\\n \\"Name\\": \\"temperature\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n 湿度\\n 48\\n \\n int\\n Humidity\\n %\\n \\n \\n 温度\\n 32.46\\n \\n float\\n Temperature\\n °C\\n \\n \\n\\n84BAD25B-9879-4BA1-9213-F576C6558D77\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的属性快照', - 'summary' => '调用该接口查询指定设备或数字孪生节点的所有属性快照。', - 'description' => '若查询IoT孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.DeleteRuleFailed', 'errorMessage' => 'An error occurred while deleting the rule.', 'description' => '删除规则失败。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceBounded', 'errorMessage' => 'data source has been bounded. unbound it first', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteParserDataSource', + 'summary' => '调用该接口删除已创建的数据源。', + 'description' => '## 使用说明'."\n" ."\n" - .'## QPS限制'."\n" + .'调用接口[CreateParserDataSource](~~433011~~)创建数据源成功后,若有业务需要,您可根据返回的**DataSourceId**删除对应数据源。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n" + .'## QPS限制'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceOriginalPropertyStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeletePowerStation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'PageSize', + 'name' => 'AlgorithmInstanceUid', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'ProductKey', + 'name' => 'PowerStationUid', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品**ProductKey**。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'string'], + 'Data' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Data\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'DeleteProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NextPageToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'Asc', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定查询属性数据的字典排序方式。取值:'."\n" - .'- 0:根据返回参数**Identifier**的值,按照字典倒序。'."\n" - .'- 1:根据返回参数**Identifier**的值,按照字典正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-64***'], ], [ - 'name' => 'IotId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - ."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '要删除的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], ], 'responses' => [ @@ -21014,244 +14933,233 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.common.InvalidPageParams', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- true:调用成功。'."\n" - .'- false:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据,更多信息,请参见List包含的参数。', - 'type' => 'object', - 'properties' => [ - 'NextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyStatusDataInfo' => [ - 'description' => '返回的属性集合信息(**PropertyStatusInfo**)。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '属性标识符。', - 'type' => 'string', - 'example' => 'Temperture', - ], - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => '26', - ], - 'Time' => [ - 'description' => '属性修改的时间,单位是毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1517553572362', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.common.InvalidPageParams\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyStatusDataInfo\\": [\\n {\\n \\"Identifier\\": \\"Temperture\\",\\n \\"Value\\": \\"26\\",\\n \\"Time\\": 1517553572362\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n Bo***x44Qx\\n \\n \\n 48\\n \\n Humidity\\n \\n \\n 32.46\\n \\n Temperature\\n \\n \\n\\n84BAD25B-9879-4BA1-9213-F576C6558D77\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备上报的原始属性', - 'summary' => '查询指定设备本身上报的原始属性(通过和未通过物模型校验的所有属性)快照。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n \\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n ","errorExample":""}]', + 'title' => '删除指定产品', + 'summary' => '调用该接口删除指定产品。', + 'description' => '## 使用说明'."\n" + .'产品删除后,产品Key(ProductKey)将失效,与产品关联的其他信息也一并删除,您将无法执行与该产品关联的任何操作。'."\n" + ."\n\n" + .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceOriginalPropertyData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteProductTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '单个属性可返回的数据记录数量。最大值为100。'."\n" - ."\n" - .'任意一个属性返回的数据记录数量不超过该值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ProductKey', + 'name' => 'ProductTagKey', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'description' => '要删除的标签键列表。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => true, + 'example' => 'room', + 'maxItems' => 10, ], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE7E8456E-EDD7-41D3-83B1-62FF4F5ED6BD\\ntrue\\n","errorExample":""}]', + 'title' => '删除产品标签', + 'summary' => '调用该接口删除产品标签。', + 'description' => '## 使用说明'."\n" + ."\n" + .'单次调用该接口最多可删除10个标签。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'NextPageToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteProductTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的属性记录的开始时间。取值为毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1569249488000', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'Identifier', + 'name' => 'TopicId', 'in' => 'query', + 'schema' => ['description' => '要删除的Topic类的ID。', 'type' => 'string', 'required' => true, 'example' => '798****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '属性的标识符。'."\n" - ."\n" - .'- 对于弱校验,设备的属性**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - .'- 对于免校验,必须与设备属性上报时自定义的**identifier**一致。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'temperature', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '指定的自定义Topic类', + 'summary' => '调用该接口删除指定的自定义Topic类。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中,属性记录按时间排序的方式。取值:'."\n" - ."\n" - .'- 0:倒序。'."\n" - .'- 1:正序。'."\n" - ."\n" - .'> **StartTime**必须小于**EndTime**,系统会根据排序方式自动转换。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IotId', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - ."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EndTime', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '属性记录的结束时间。取值为13位毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', - ], + 'schema' => ['description' => '要删除的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看,或调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], ], 'responses' => [ @@ -21259,245 +15167,135 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.device.InvalidIoTId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备属性记录。', - 'type' => 'object', - 'properties' => [ - 'nextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyInfo' => [ - 'description' => '属性集合。每个元素代表一个属性。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => '{\\"data\\":32.49}', - ], - 'Time' => [ - 'description' => '属性修改时间。', - 'type' => 'string', - 'example' => '1516541885630', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A8F48485-44B9-40D8-A56D-F716F384F387'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"nextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"{\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":32.49}\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nDD8EE383-F007-5647-8B6B-0C52FAC3E7F2\\n\\n true\\n MTcxMjc0N***********\\n \\n \\n {\\"data\\":31.26}\\n \\n \\n \\n {\\"data\\":32.43}\\n \\n \\n \\n {\\"data\\":30.58}\\n \\n \\n \\n {\\"data\\":32.49}\\n \\n \\n \\n {\\"data\\":30.66}\\n \\n \\n \\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的原始属性记录', - 'summary' => '调用该接口查询指定设备本身上报的原始属性(通过和未通过物模型校验的所有属性)记录。', - 'description' => '## 使用说明'."\n" - .'仅可查询最近30天内的原始属性数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的原始属性数据。'."\n" - ."\n" - .''."\n" - ."\n" - .' > 数据存储时间从属性时间戳表示的时间当日开始计算。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A8F48485-44B9-40D8-A56D-F716F384F387\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A8F48485-44B9-40D8-A56D-F716F384F387\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除指定的规则', + 'summary' => '调用该接口删除指定的规则。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'## QPS限制'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceOriginalEventData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteRuleAction' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。默认值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品**ProductKey**。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'NextPageToken', + 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', - ], + 'schema' => ['description' => '要删除的规则动作ID。'."\n" + ."\n" + .'调用[CreateRuleAction](~~69586~~)创建规则动作成功后,返回的规则动作ID,您也可以调用[ListRuleActions](~~69517~~),从返回结果中查看对应的规则动作ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100001'], ], - [ - 'name' => 'StartTime', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询的事件记录的开始时间。格式为毫秒级的13位时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1516538300303', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '8FC9E36B-E0DC-4802-84EE-184E255B4E95'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"8FC9E36B-E0DC-4802-84EE-184E255B4E95\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 8FC9E36B-E0DC-4802-84EE-184E255B4E95\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除指定的规则动作', + 'summary' => '调用该接口删除指定的规则动作。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Identifier', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的事件标识符。'."\n" - ."\n" - .'- 对于弱校验,设备的事件**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - .'- 对于免校验,必须与设备事件上报时自定义的**identifier**一致。', - 'type' => 'string', - 'required' => true, - 'example' => 'PowerOff', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中事件记录的排序方式,取值:'."\n" - ."\n" - .'- 0:倒序。'."\n" - .'- 1:正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'IotId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - ."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EndTime', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的事件记录的结束时间。格式为毫秒级的13位时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1516541900303', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], ], 'responses' => [ @@ -21505,265 +15303,158 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.device.InvalidIoTId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- true:调用成功。'."\n" - .'- false:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的设备事件记录。', - 'type' => 'object', - 'properties' => [ - 'NextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'EventInfo' => [ - 'description' => '事件集合。每个元素代表一个事件。事件详情请参见**EventInfo**下参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '事件标识符。', - 'type' => 'string', - 'example' => 'PowerOff', - ], - 'OutputData' => [ - 'description' => '事件的输出参数,MAP格式的字符串。', - 'type' => 'string', - 'example' => '{"structArgs":{"structchildFLOATf71c20e":1.23}}', - ], - 'Time' => [ - 'description' => '事件发生时间。毫秒级的13位时间戳。', - 'type' => 'string', - 'example' => '1579163099000', - ], - 'EventType' => [ - 'description' => '事件类型。'."\n" - ."\n" - .'- info:信息。'."\n" - .'- alert:告警。'."\n" - .'- error:故障。', - 'type' => 'string', - 'example' => 'info', - ], - 'Name' => [ - 'description' => '事件名称。', - 'type' => 'string', - 'example' => '设备关机', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"EventInfo\\": [\\n {\\n \\"Identifier\\": \\"PowerOff\\",\\n \\"OutputData\\": \\"{\\\\\\"structArgs\\\\\\":{\\\\\\"structchildFLOATf71c20e\\\\\\":1.23}}\\",\\n \\"Time\\": \\"1579163099000\\",\\n \\"EventType\\": \\"info\\",\\n \\"Name\\": \\"设备关机\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n Bo***x44Qx\\n \\n \\n testEventInfoName\\n \\n {\\"structArgs\\":{\\"structchildFLOATf71c20e\\":1.23,\\"structchildINT6b6b626\\":3,\\"structchildDATE663436a\\":\\"1516517966152\\",\\"structchildDOUBLE08d0f74\\":1.23,\\"structchildTEXTdc764f9\\":\\"07b68264b0ba42c18e5f\\",\\"structchildBOOLd260729\\":0,\\"structchildENUMbe62590\\":1},\\"enumArgs\\":0,\\"boolArgs\\":0,\\"floatArgs\\":2.3,\\"dateArgs\\":\\"1516517966152\\",\\"intArgs\\":1,\\"doubleArgs\\":2.3,\\"textArgs\\":\\"dV56zbkzjBjw1Ti1dA52\\"}\\n info\\n testEventInfo\\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备上报的原始事件', - 'summary' => '查询指定设备本身上报的原始事件(通过和未通过物模型校验的所有事件)记录。', - 'description' => '## 使用说明'."\n" - .'仅可查询最近30天内的事件记录数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的事件记录数据。'."\n" - ."\n" - .''."\n" - ."\n" - .' > 数据存储时间从事件生成当日起开始计算。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除场景联动规则', + 'summary' => '删除场景联动规则。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceOriginalServiceData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteSchedulePeriod' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'PeriodCode', + 'in' => 'formData', + 'schema' => ['description' => '时间段唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '要查询设备所属的产品**ProductKey**。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', 'errorMessage' => 'invalid IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.NotExists', 'errorMessage' => 'schedule period not exists', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteSchedulePeriod', + 'summary' => '调用该接口删除声码排程时间段。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'NextPageToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。第一次请求,服务会返回此Token,第二次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteShareTaskDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的服务调用记录的开始时间。取值为毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249498000', - ], + 'AK' => [], ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'Identifier', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的服务标识符。'."\n" - ."\n" - .'- 对于弱校验,设备的服务**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" - .'- 对于免校验,必须与设备服务上报时自定义的**identifier**一致。', - 'type' => 'string', - 'required' => true, - 'example' => 'Set', - ], + 'name' => 'ShareTaskId', + 'in' => 'formData', + 'schema' => ['description' => '分享任务ID。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'Asc', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中,服务调用记录按时间排序的方式。取值:'."\n" - ."\n" - .'- 0:倒序。'."\n" - .'- 1:正序。'."\n" - ."\n" - .'> **StartTime**必须小于**EndTime**,系统会根据排序方式自动转换。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotId', - 'in' => 'query', + 'name' => 'IotIdList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - ."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', + 'description' => '待删除的设备列表,需传入设备对应的**IotId**,该参数可以通过调用[QueryDevice](~~69905~~)获取。'."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的服务调用记录的结束时间。取值为毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1579249499000', + 'maxItems' => 10000, ], ], ], @@ -21772,199 +15463,166 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.device.InvalidIoTId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的设备服务调用记录。', + 'description' => '返回删除结果。', 'type' => 'object', 'properties' => [ - 'NextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ServiceInfo' => [ - 'description' => '服务调用记录集合。每个元素代表一个服务调用记录。服务信息请参见**ServiceInfo**下参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Identifier' => [ - 'description' => '服务标识符。', - 'type' => 'string', - 'example' => 'Set', - ], - 'OutputData' => [ - 'description' => '服务的输出参数,MAP格式的字符串,结构为`key:value`。', - 'type' => 'string', - 'example' => '{\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}', - ], - 'Time' => [ - 'description' => '调用服务的时间。', - 'type' => 'string', - 'example' => '1579249499000', - ], - 'InputData' => [ - 'description' => '服务的输入参数,MAP格式的字符串,结构为`key:value`。', - 'type' => 'string', - 'example' => '{\\"LightAdjustLevel\\":123}', - ], - 'Name' => [ - 'description' => '服务名称。', - 'type' => 'string', - 'example' => '设置温度', - ], - ], - ], - ], - ], - ], + 'ProgressId' => ['description' => '进度ID。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'Progress' => ['description' => '进度,取值为0~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"ServiceInfo\\": [\\n {\\n \\"Identifier\\": \\"Set\\",\\n \\"OutputData\\": \\"{\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":200,\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{},\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100686\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.0\\\\\\\\\\\\\\"}\\",\\n \\"Time\\": \\"1579249499000\\",\\n \\"InputData\\": \\"{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":123}\\",\\n \\"Name\\": \\"设置温度\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n Bo***x44Qx\\n \\n \\n set\\n \\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n {\\"LightAdjustLevel\\":123}\\n set\\n \\n \\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备本身调用的原始服务', - 'summary' => '查询指定设备本身调用的原始服务(通过和未通过物模型校验的所有服务)记录。', - 'description' => '## 使用说明'."\n" - .'仅可查询最近30天内的服务数据。'."\n" - ."\n" - .''."\n" - .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .'- 其他地域和实例:仅可查询最近30天内的服务数据。'."\n" - ."\n" - .''."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'invalid instance id', 'description' => ''], + ['errorCode' => 'iot.sharetask.EmptyShareDevice', 'errorMessage' => 'no device to share', 'description' => ''], + ['errorCode' => 'iot.sharetask.ShareDeviceProcessing', 'errorMessage' => 'share device processing', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProgressId\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"Progress\\": 100\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 100\\n Md3ZiTL888K9llXDy7890***********\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteShareTaskDevice', + 'summary' => '调用该接口删除分享任务设备。', + 'description' => '## QPS限制'."\n" ."\n" - .'> 数据存储时间从调用服务当日开始计算。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ClearDeviceDesiredProperty' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteShareTaskDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteSoundCode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'SoundCode', + 'in' => 'formData', + 'schema' => ['description' => '声码的唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidSoundCode', 'errorMessage' => 'invalid sound code', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.soundcode.NotExists', 'errorMessage' => 'sound code not exists', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteSoundCode', + 'summary' => '调用该接口删除声码。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要清空期望属性值的设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'DeleteSoundCodeLabel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要清空期望属性值的设备名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'AK' => [], ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '要清空期望属性值的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'name' => 'SoundCode', + 'in' => 'formData', + 'schema' => ['description' => '声码唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'Identifies', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要清空期望属性值的属性标识符列表。属性标识符个数不能超过10个。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'temperature', - 'maxItems' => 10, - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -21972,292 +15630,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Versions' => [ - 'description' => '本次清空期望属性值后,对应属性的期望属性值的最新版本号。', - 'type' => 'string', - 'example' => '{\\"temperature\\":0}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The DeviceName format is invalid.', - ], - [ - 'errorCode' => 'iot.device.NotSupportExemptionValidateType', - 'errorMessage' => 'The feature does not support the specified verification type.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.prod.QueryProductPropertyFailed', - 'errorMessage' => 'An error occurred while querying the product property.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.DTInstanceInvalidThingType', - 'errorMessage' => 'The digital twin operation is not supported.', - ], - [ - 'errorCode' => 'iot.check.NullParameter', - 'errorMessage' => 'Specify parameter is null.', - ], - [ - 'errorCode' => 'iot.device.CanNotSetReadOnlyProperty', - 'errorMessage' => 'Cannot set read only property.', - ], - [ - 'errorCode' => 'iot.device.DeviceIsDisable', - 'errorMessage' => 'The specified device has been disabled.', - ], - [ - 'errorCode' => 'iot.device.InvalidIoTId', - 'errorMessage' => 'The specified device ID is invalid.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The DeviceName parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is invalid.', - ], - [ - 'errorCode' => 'iot.common.InvalidTenant', - 'errorMessage' => 'The Invalid tenant.', - ], - [ - 'errorCode' => 'iot.prod.QueryPropertyNotFound', - 'errorMessage' => 'Query property not found.', - ], - [ - 'errorCode' => 'iot.device.ClearPropertyDesiredFailed', - 'errorMessage' => 'Failed to clear desired value of property.', - ], - [ - 'errorCode' => 'iot.prod.QueryProductAbilitiesNotFound', - 'errorMessage' => 'query product abilities not found.', - ], - [ - 'errorCode' => 'iot.Device.NotExistedDevice', - 'errorMessage' => 'This device does not exist.', - ], - [ - 'errorCode' => 'iot.prod.NullAbilityIdentifier', - 'errorMessage' => 'You must specify a feature identifier.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidSoundCode', 'errorMessage' => 'invalid sound code', 'description' => ''], + ['errorCode' => 'iot.soundcode.LabelNotExists', 'errorMessage' => 'sound code label not exists', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Versions\\": \\"{\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\":0}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n {\\"temperature\\":0}\\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'ClearDeviceDesiredProperty', - 'summary' => '调用该接口清空设备已设置的期望属性值。', - 'description' => '## 使用说明'."\n" - .'- 调用本接口时,必须传入要清空的属性标识符(**Identifies**)。如果不传入**Identifies**,调用会失败。'."\n" - .'- 单次调用本接口,**Identifies**最多可传入10个属性标识符。'."\n" - .'- 调用本接口清空期望属性值成功后,调用[QueryDeviceDesiredProperty](~~107566~~)接口查询期望属性值时,会返回对应参数**Identifier**(属性标识符),不会返回对应参数**Value**了。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteSoundCodeLabel', + 'summary' => '调用该接口删除声码标签。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteSoundCodeSchedule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '任务的描述信息。长度不超过100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'jobDescription', - ], - ], - [ - 'name' => 'JobDocument', - 'in' => 'query', - 'schema' => [ - 'description' => '下发给设备的任务执行规则文件。数据格式为JSON,长度不超过65536个字符。'."\n" - ."\n" - .'更多信息,请参见下文“JobDocument定义”。', - 'type' => 'string', - 'required' => true, - 'example' => '{ "serviceIdentifier": "test_service", "params": { "key1": "value1", "key2": "value2" } } ', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '任务类型。取值:'."\n" - .'- **INVOKE_SERVICE**:设备批量服务调用任务。'."\n" - .'- **SET_PROPERTY**:设备批量属性设置任务。'."\n" - .'- **PUB**:Pub批量消息推送任务。'."\n" - .'- **CUSTOM_JOB**:自定义任务。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'INVOKE_SERVICE', - ], - ], - [ - 'name' => 'JobFile', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '自定义任务中下发给设备的文件。'."\n" - ."\n" - .'仅**Type**为**CUSTOM_JOB**时,可传入此参数,且为非必传参数。'."\n" - ."\n" - .'更多信息,请参见下文“JobFile定义”。'."\n" - ."\n", - 'type' => 'object', - 'required' => false, - 'example' => '{ "fileKey":"5cc34***f9/tazJ***s", "signMethod":"Sha256", "sign":"***" }', - ], - ], - [ - 'name' => 'JobName', - 'in' => 'query', - 'schema' => [ - 'description' => '任务名称。支持中文、英文字母、数字和下划线(_),长度范围为4~30个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'oneJob', - ], - ], - [ - 'name' => 'TimeoutConfig', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务下作业执行的超时配置,数据格式为JSON,长度不超过8192个字符。'."\n" - ."\n" - .'更多信息,请参见下文“TimeoutConfig定义”。', - 'type' => 'object', - 'required' => false, - 'example' => '{"inProgressTimeoutInMinutes": 60}', - ], - ], - [ - 'name' => 'RolloutConfig', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务下作业推送速率配置,数据格式为JSON,长度不超过8192个字符。'."\n" - ."\n" - .'更多信息,请参见下文“RolloutConfig定义”。', - 'type' => 'object', - 'required' => false, - 'example' => '{"maximumPerMinute": 1000}', - ], - ], - [ - 'name' => 'TargetConfig', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '设备任务的目标设备配置。'."\n" - ."\n" - .'更多信息,请参见下文“TargetConfig”。', - 'type' => 'object', - 'required' => true, - 'example' => '{"targetType":"PRODUCT_KEY","targetProduct":"a1j***3d"}', - ], + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'ScheduledTime', - 'in' => 'query', - 'schema' => [ - 'description' => '任务调度时间的毫秒数。取值范围:当前时间的10分钟后到7天之间。'."\n" - ."\n" - .'- 不传入此参数:任务创建后,立即初始化并调度执行。'."\n" - .'- 传入此参数:任务创建后,先初始化,等到设置的调度时间后,才开始调度执行。 ', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1557062301656', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -22265,256 +15711,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'JobId' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => 'XUbmsMHmkqv0PiAG****010001', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"XUbmsMHmkqv0PiAG****010001\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nXUbmsMHmkqv0PiAG****010001\\ntrue\\n","errorExample":""}]', - 'title' => '创建任务', - 'summary' => '调用该接口创建设备任务。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '**TargetConfig定义**'."\n" - ."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|TargetType|String|目标设备的配置类型,可选值:
**DEVICE\\_LIST**,表示设备列表。
**GROUP\\_ID**,表示设备分组ID。
**PRODUCT\\_KEY**,表示设备所属产品的**ProductKey**。|'."\n" - .'|TargetDevices|List|设备任务的目标设备。仅**TargetType**为**DEVICE\\_LIST**时,传入此参数。
此参数最多传入200个设备。
更多信息,请参见下文“TargetDevice定义”。|'."\n" - .'|TargetGroup|String|设备任务的目标设备,所属设备分组的标识符(GroupID)。仅**TargetType**为**GROUP\\_ID**时,传入此参数。
不支持设置为设备动态分组的ID。
此设备分组中最多包含10万个设备。|'."\n" - .'|TargetProduct|String|设备任务的目标设备,所属产品的**ProductKey**。仅**TargetType**为**PRODUCT\\_KEY**时,传入此参数。
此产品下最多包含10万个设备。|'."\n" - ."\n" - .'**TargetDevice定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|IotId|String|目标设备的设备ID。|'."\n" - .'|ProductKey|String|目标设备所属产品的**ProductKey**。
如果传入该参数,需同时传入**DeviceName**。|'."\n" - .'|DeviceName|String|目标设备名称。
如果传入该参数,需同时传入**ProductKey**。|'."\n" - ."\n" - .'示例1'."\n" - .'```'."\n" - .'{'."\n" - .' "TargetDevices":'."\n" - .' ['."\n" - .' {'."\n" - .' "IotId":"OPx***00101",'."\n" - .' "ProductKey":"a1A***n",'."\n" - .' "DeviceName":"devicenew"'."\n" - .' }'."\n" - .' ],'."\n" - .' "TargetType":"DEVICE_LIST"'."\n" - .'}'."\n" - .'```'."\n" - .'示例2'."\n" - .'```'."\n" - .'{'."\n" - .' "targetGroup":"rY2***01",'."\n" - .' "targetType":"GROUP_ID"'."\n" - .'}'."\n" - .'```'."\n" - .'示例3'."\n" - .'```'."\n" - .'{'."\n" - .' "targetType":"PRODUCT_KEY",'."\n" - .' "targetProduct":"a1j***3d"'."\n" - .'}'."\n" - .'```'."\n" - ."\n\n" - .'**RolloutConfig定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|maximumPerMinute|Integer|任务下每分钟推送的作业数量。默认值是1000。取值范围为50~1000。|'."\n" - .'|messageQoS|String|发送消息类型,仅对自定义任务和Pub批量消息推送任务生效。可取值:
**QoS0**,表示最多发送一次。
**QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "maximumPerMinute": 1000,'."\n" - .' "messageQoS":"QoS1"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**TimeoutConfig定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|inProgressTimeoutInMinutes|Integer|任务下作业执行的超时时间,单位为分钟。
该参数仅对自定义任务生效。
从任务开始执行(状态更新为**IN\\_PROGRESS**)时计算,如果超过了超时时间,任务下作业仍未执行完成,将被自动设置为TIMED\\_OUT状态。
取值范围:
**INVOKE\\_SERVICE**类型任务:最大值为5,最小值为1,默认值为1。
**SET\\_PROPERTY**类型任务:最大值为5,最小值为1,默认值为1。
**CUSTOM\\_JOB**类型任务:最大值为3600,最小值为1,默认值为60。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "inProgressTimeoutInMinutes": 60'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**JobDocument定义**'."\n" - .'**INVOKE\\_SERVICE**类型的任务用于批量调用设备服务,功能与[InvokeThingsService](~~96242~~)相似。'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|serviceIdentifier|String|服务的标识符Identifier。
您可在物联网平台控制台对应实例下,单击**设备管理 > 产品**,找到设备所属产品,在产品详情的**功能定义**中查看。|'."\n" - .'|params|Object|要调用服务的入参信息。更多信息,请参见下文“params定义”。|'."\n" - ."\n" - .'**params定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|key|String|输入参数的标识符。您在创建该服务时,设置的输入参数的标识符。
您可在物联网平台控制台,设备所属产品的功能定义页面,从该产品的物模型,或单击该服务对应的编辑按钮,查看您设置的输入参数。|'."\n" - .'|value|String|指定参数值。该值需在您设置的输入参数的取值范围内。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "serviceIdentifier": "test_service",'."\n" - .' "params": {'."\n" - .' "key1": "value1",'."\n" - .' "key2": "value2"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**SET\\_PROPERTY**类型的Job用于批量设置设备属性值,功能与[SetDevicesProperty](~~96243~~)相似。'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|params|Object|要设置的属性信息,组成为key:value。更多信息,请参见下文“params定义”。|'."\n" - ."\n" - .'**params定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|key|String|要设置属性的标识符identifier。您可在物联网平台控制台中,设备所属产品的功能定义中查看。
设置的属性必需是读写型。如果您指定了一个只读型的属性,设置将会失败。|'."\n" - .'|value|String|属性值。取值需和您定义属性的数据类型和取值范围保持一致。|'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "params": {'."\n" - .' "key1": "value1",'."\n" - .' "key2": "value2"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**CUSTOM_JOB**为自定义任务。'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|key|String|自定义属性。|'."\n" - .'|value|String|自定义属性值。|'."\n" - ."\n\n" - .'```'."\n" - .'{'."\n" - .' "key":"value"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**JobFile定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|fileKey|String|使用**GenerateFileUploadURL**接口生成的文件**Key**。
创建任务前,必须先上传文件。具体操作,请参见[GenerateFileUploadURL](~~198575~~)的“使用说明”。
创建任务时会校验文件是否已经上传。|'."\n" - .'|signMethod|String|签名方法,可取值MD5和SHA256。|'."\n" - .'|sign|String|签名,通过URL上传的文件的根据相应的签名方法生成的签名参数。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "fileKey":"5cc34***/tazJff***",'."\n" - .' "signMethod":"",'."\n" - .' "sign":""'."\n" - .'}'."\n" - .'```'."\n" - ."\n\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GenerateFileUploadURL' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'errorMessage' => 'invalid schedule IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.AlreadyExists', 'errorMessage' => 'schedule period already exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.AlreadyExistsLabel', 'errorMessage' => 'already exists sound code label', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'DeleteSoundCodeSchedule', + 'summary' => '调用该接口删除声码排程。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'FileSuffix', - 'in' => 'query', - 'schema' => [ - 'description' => '文件扩展名。可选:**bin**、**apk**、**tar**、**gz**、**tar.gz**、**zip**、**gzip**。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'bin', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'BizCode', - 'in' => 'query', + 'name' => 'SpeechCodeList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '文件所属的业务场景编码。'."\n" + 'description' => "\n" + .'需要删除的语料ID,您可以在**语料配置**控制台获取语料ID,或者调用[CreateSpeech](~~217571~~),成功后返回的**Data**字段为语料ID。'."\n" ."\n" - .'设备任务文件使用**DEVICE_JOB_FILE**。', - 'type' => 'string', + .'N为整数,取值范围:1~20,表示每次最多删除20条。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'DEVICE_JOB_FILE', - ], - ], - [ - 'name' => 'FileName', - 'in' => 'query', - 'schema' => [ - 'description' => '文件名称。名称不可包含短划线(-)、英文句号(.)、星号(*)、正斜线(/)、井号(#)、百分号(%)、and(&)、at(@)、反斜线(\\),长度不可超过64个字符。'."\n" - ."\n" - .'如果不传入该参数,系统将为文件自动生成随机字符串作为文件名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'file1', + 'example' => '4de2c367****8c585e5992**', + 'maxItems' => 20, ], ], ], @@ -22523,3257 +15799,163 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的文件上传信息。详情参见以下参数信息。', - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '调用OSS的PostObject接口上传对象(即文件)的名称,包含OSS对象的完整路径。', - 'type' => 'string', - 'example' => 'subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix', - ], - 'OssAccessKeyId' => [ - 'description' => 'OSS Bucket拥有者的AccessKey ID。'."\n" - ."\n" - .'该OSS Bucket将存储文件。', - 'type' => 'string', - 'example' => 'cS8uRRy54Rsz****', - ], - 'Signature' => [ - 'description' => '根据**AccessKey Secret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', - 'type' => 'string', - 'example' => 'v6lViO4FBvfquajQjg20K5hK****', - ], - 'Host' => [ - 'description' => 'OSS的接入域名。', - 'type' => 'string', - 'example' => 'https://iotx-bucket-name.oss-***.aliyuncs.com', - ], - 'Policy' => [ - 'description' => 'OSS通过该参数验证请求表单域的合法性。', - 'type' => 'string', - 'example' => 'eyJleHBpcmF****', - ], - 'ObjectStorage' => [ - 'description' => '对象存储类型。默认为OSS。', - 'type' => 'string', - 'example' => 'OSS', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speech.InvalidSpeechCodeList'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'invalid SpeechCodeList'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix\\",\\n \\"OssAccessKeyId\\": \\"cS8uRRy54Rsz****\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-bucket-name.oss-***.aliyuncs.com\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n eyJleHBpcmF****\\n v6lViO4FBvfquajQjg20K5hK****\\n OSS\\n https://iotx-bucket-name.oss-***.aliyuncs.com\\n cS8uRRy54Rsz****\\n subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix\\n\\ntrue\\n","errorExample":""}]', - 'title' => '生成文件上传到OSS的信息', - 'summary' => '调用该接口生成文件上传到OSS的信息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'该接口为阿里云物联网平台中,设备管理相关业务通用的文件上传接口,文件上传完成后,请按照对应业务接口的要求传递文件的信息。'."\n" - ."\n" - .'步骤如下:'."\n" - ."\n" - .'1. 调用本接口生成文件上传到对象存储(OSS)的信息。'."\n" - .'本接口的返回参数是调用OSS [PostObject](~~31988~~)上传文件的请求参数,包含**Key**、**OSSAccessKeyId**、**Signature**和**Policy**。'."\n" - ."\n" - .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传文件。上传文件的代码示例,请参见下文“返回参数的用途”。'."\n" - ."\n" - .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传文件。上传的文件大小不能超过1,000 MB。'."\n" - ."\n\n" - .'3. 文件上传完成后,请在60分钟内,调用对应业务接口,否则上传的文件将被系统定期自动清理。'."\n" - ."\n" - .'例如,创建自定义类型的设备任务时,如果需要传入设备文件,请先使用该接口上传文件,再把相关的文件信息作为请求参数,来调用[CreateJob](~~198574~~)接口。'."\n" - .' '."\n" - ."\n" - .'## 限制说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => '## 返回参数的用途'."\n" - ."\n" - .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的文件上传到对象存储(OSS)。'."\n" - ."\n" - .'关于上传文件的SDK示例,请参见[文件上传](~~84788~~)。'."\n" - ."\n" - .'以下是向对象存储OSS上传文件的Java代码示例。'."\n" - ."\n" - .'- 在pom.xml中添加以下依赖。'."\n" - .'```'."\n" - .' org.apache.httpcomponents'."\n" - .' httpclient'."\n" - .' 4.5.3'."\n" - .''."\n" - ."\n" - .''."\n" - .' org.apache.httpcomponents'."\n" - .' httpmime'."\n" - .' 4.5.10'."\n" - .''."\n" - .'```'."\n" - ."\n" - .'- 上传文件的代码如下。'."\n" - .'```'."\n" - .'public static boolean postObject(String key,'."\n" - .' String host,'."\n" - .' String policy,'."\n" - .' String ossAccessKeyId,'."\n" - .' String signature,'."\n" - .' String data) throws IOException {'."\n" - .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" - .' HttpPost uploadFile = new HttpPost(host);'."\n" - ."\n" - .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" - .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("OSSAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" - .' builder.addBinaryBody("file", data.getBytes());'."\n" - ."\n" - .' HttpEntity multipart = builder.build();'."\n" - .' uploadFile.setEntity(multipart);'."\n" - .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" - ."\n" - .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" - .' return true;'."\n" - .' }'."\n" - ."\n" - .' return false;'."\n" - .'}'."\n" - .'```', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidSpeechCodeList\\",\\n \\"ErrorMessage\\": \\"invalid SpeechCodeList\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => '删除语料', + 'summary' => '删除指定语料。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteStudioAppDomainOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '任务描述信息。长度不超过100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'jobDescription', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], ], [ - 'name' => 'TimeoutConfig', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务下作业执行的超时时间。'."\n" - ."\n" - .'更多信息,请参见下文“TimeoutConfig定义”。'."\n", - 'type' => 'object', - 'required' => false, - 'example' => '{"inProgressTimeoutInMinutes": 60}', - ], - ], - [ - 'name' => 'RolloutConfig', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '任务下每分钟推送的作业数量。取值范围为50~1000。', - 'type' => 'object', - 'required' => false, - 'example' => '{"maximumPerMinute": 1000}', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'XUbmsMHmkqv0PiAG****010001', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。 '."\n", - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新作业', - 'summary' => '调用该接口更新任务下作业配置。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '**RolloutConfig定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|maximumPerMinute|Integer|任务下每分钟推送的作业数量。默认值是1000。取值范围为50~1000。|'."\n" - .'|messageQoS|String|发送消息类型,仅对自定义任务和Pub批量消息推送任务生效。可取值:
**QoS0**,表示最多发送一次。
**QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "maximumPerMinute": 1000,'."\n" - .' "messageQos":"Qos1"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**TimeoutConfig定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|inProgressTimeoutInMinutes|Integer|任务下作业执行的超时时间,单位为分钟。
该参数仅对自定义任务生效。
从任务开始执行(状态更新为**IN\\_PROGRESS**)时计算,如果超过了超时时间,任务下作业仍未执行完成,将被自动设置为TIMED\\_OUT状态。
取值范围:最大值为3600,最小值为1,默认值为60。|'."\n" - ."\n" - .'示例'."\n" - .'```'."\n" - .'{'."\n" - .' "inProgressTimeoutInMinutes": 60'."\n" - .'}'."\n" - .'```'."\n" - .' '."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => '450407b***', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的任务详情信息,请参见以下参数说明。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '任务类型。取值:'."\n" - .'- **INVOKE_SERVICE**:设备批量服务调用任务。'."\n" - .'- **SET_PROPERTY**:设备批量属性设置任务。'."\n" - .'- **PUB**:Pub批量消息推送任务。'."\n" - .'- **CUSTOM_JOB**:自定义任务。', - 'type' => 'string', - 'example' => 'SET_PROPERTY', - ], - 'Status' => [ - 'description' => '任务状态。取值范围:'."\n" - ."\n" - .'- **INITIALIZING**:初始化。'."\n" - .'- **WAITING**:待调度。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **COMPLETED**:已完成。'."\n" - .'- **CANCELLING**:取消中。'."\n" - .'- **CANCELLED**:已取消。'."\n" - .'- **REMOVING**:删除中。'."\n" - .'- **TIMED_OUT**:已超时。', - 'type' => 'string', - 'example' => 'CANCELLED', - ], - 'Description' => [ - 'description' => '任务的描述信息。', - 'type' => 'string', - 'example' => 'jobDescription', - ], - 'JobName' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'tes', - ], - 'UtcModified' => [ - 'description' => '任务信息修改时间。', - 'type' => 'string', - 'example' => '2020-12-13T04:10:00.000Z', - ], - 'JobId' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => '450407b***', - ], - 'UtcCreate' => [ - 'description' => '任务创建时间。', - 'type' => 'string', - 'example' => '2020-12-13T04:09:51.000Z', - ], - 'ScheduledTime' => [ - 'description' => '任务调度时间的毫秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557062301656', - ], - 'JobDocument' => [ - 'description' => '下发给设备的任务执行规则文件', - 'type' => 'string', - 'example' => '{ "serviceIdentifier": "test_service", "params": { "key1": "value1", "key2": "value2" } } ', - ], - 'RolloutConfig' => [ - 'description' => '任务下作业推送速率配置。', - 'type' => 'object', - 'properties' => [ - 'MaximumPerMinute' => [ - 'description' => '任务下每分钟作业推送数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'MessageQoS' => [ - 'description' => '发送消息类型,仅对自定义任务和Pub批量消息推送任务包含该参数。可取值:'."\n" - ."\n" - .'- **QoS0**,表示最多发送一次。'."\n" - .'- **QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。', - 'type' => 'string', - 'example' => 'Qos1', - ], - ], - ], - 'TimeoutConfig' => [ - 'description' => '任务下作业执行的超时配置', - 'type' => 'object', - 'properties' => [ - 'InProgressTimeoutInMinutes' => [ - 'description' => '任务下作业执行的超时时间,单位为分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - ], - ], - 'JobFile' => [ - 'description' => '任务文件的下载信息。', - 'type' => 'object', - 'properties' => [ - 'FileUrl' => [ - 'description' => '任务文件的下载地址,地址有效时间为30分钟。', - 'type' => 'string', - 'example' => 'https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***', - ], - 'SignMethod' => [ - 'description' => '签名方法,可取值MD5和SHA256。', - 'type' => 'string', - 'example' => 'SHA256', - ], - 'Sign' => [ - 'description' => '签名,通过URL上传的文件,根据相应的签名方法生成的签名参数。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'TTTejn***', - ], - ], - ], - 'TargetConfig' => [ - 'description' => '设备任务的目标设备配置。', - 'type' => 'object', - 'properties' => [ - 'TargetProduct' => [ - 'description' => '目标设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'nCwfSBzc***', - ], - 'TargetGroup' => [ - 'description' => '目标设备所属设备分组的标识符(GroupID)。', - 'type' => 'string', - 'example' => '1234', - ], - 'TargetType' => [ - 'description' => '目标设备的配置类型,取值: '."\n" - .'- DEVICE_LIST:设备列表。'."\n" - .'- GROUP_ID:设备分组ID。'."\n" - .'- PRODUCT_KEY:产品ProductKey。', - 'type' => 'string', - 'example' => 'DEVICE_LIST', - ], - 'TargetDevices' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'targetDevices' => [ - 'description' => '目标设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'a1Ix***', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'nCwfSBzc***', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"SET_PROPERTY\\",\\n \\"Status\\": \\"CANCELLED\\",\\n \\"Description\\": \\"jobDescription\\",\\n \\"JobName\\": \\"tes\\",\\n \\"UtcModified\\": \\"2020-12-13T04:10:00.000Z\\",\\n \\"JobId\\": \\"450407b***\\",\\n \\"UtcCreate\\": \\"2020-12-13T04:09:51.000Z\\",\\n \\"ScheduledTime\\": 1557062301656,\\n \\"JobDocument\\": \\"{ \\\\\\"serviceIdentifier\\\\\\": \\\\\\"test_service\\\\\\", \\\\\\"params\\\\\\": { \\\\\\"key1\\\\\\": \\\\\\"value1\\\\\\", \\\\\\"key2\\\\\\": \\\\\\"value2\\\\\\" } } \\",\\n \\"RolloutConfig\\": {\\n \\"MaximumPerMinute\\": 10,\\n \\"MessageQoS\\": \\"Qos1\\"\\n },\\n \\"TimeoutConfig\\": {\\n \\"InProgressTimeoutInMinutes\\": 5\\n },\\n \\"JobFile\\": {\\n \\"FileUrl\\": \\"https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***\\",\\n \\"SignMethod\\": \\"SHA256\\",\\n \\"Sign\\": \\"TTTejn***\\"\\n },\\n \\"TargetConfig\\": {\\n \\"TargetProduct\\": \\"nCwfSBzc***\\",\\n \\"TargetGroup\\": \\"1234\\",\\n \\"TargetType\\": \\"DEVICE_LIST\\",\\n \\"TargetDevices\\": {\\n \\"targetDevices\\": [\\n {\\n \\"DeviceName\\": \\"a1Ix***\\",\\n \\"ProductKey\\": \\"nCwfSBzc***\\"\\n }\\n ]\\n }\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\n \\n CANCELLED\\n\\t\\t1557062301656\\n SET_PROPERTY\\n \\n 5\\n \\n jobDescription\\n 2020-12-13T04:09:51.000Z\\n \\n https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***\\n 1235\\n SHA256\\n \\n {}\\n test\\n 2020-12-13T04:10:00.000Z\\n 450407b***\\n \\n \\n \\n nCwf***\\n a1IxS***\\n \\n \\n 24VI***\\n a1***\\n \\n \\n 6NDWQ***\\n a1I***\\n \\n \\n EQtTJT***\\n a1IxS***\\n \\n \\n rUdc33Vr***\\n a1IxS***\\n \\n \\n DEVICE_LIST\\n \\n \\n true\\n","errorExample":""}]', - 'title' => '任务管理', - 'summary' => '查询任务详情。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '任务状态。取值范围:'."\n" - ."\n" - .'- **INITIALIZING**:初始化。'."\n" - .'- **WAITING**:待调度。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **COMPLETED**:已完成。'."\n" - .'- **CANCELLING**:取消中。'."\n" - .'- **CANCELLED**:已取消。'."\n" - .'- **REMOVING**:删除中。'."\n" - .'- **TIMED_OUT**:已超时。', - 'type' => 'string', - 'required' => false, - 'example' => 'IN_PROGRESS', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '每页展示的任务个数。最大值为50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '20', - ], - ], - [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BF449394-1C7D-4144-B7C4-9C3FA29F8B64', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '当前页码任务个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Total' => [ - 'description' => '返回的任务总个数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'data' => [ - 'description' => '调用成功时,返回的任务详情信息,请参见以下参数说明。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '任务类型。', - 'type' => 'string', - 'example' => 'CUSTOM_JOB', - ], - 'Status' => [ - 'description' => '任务状态。', - 'type' => 'string', - 'example' => 'COMPLETED', - ], - 'JobName' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'MyTestJobOEfwJN', - ], - 'Description' => [ - 'description' => '任务的描述信息。', - 'type' => 'string', - 'example' => 'TestDescription', - ], - 'UtcModified' => [ - 'description' => '任务信息修改时间。', - 'type' => 'string', - 'example' => '2019-05-21T17:15:46.000Z', - ], - 'JobId' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => 'Z20nyanW5****010001', - ], - 'UtcCreate' => [ - 'description' => '任务创建时间。', - 'type' => 'string', - 'example' => '2019-05-21T11:45:37.000Z', - ], - 'ScheduledTime' => [ - 'description' => '任务调度时间的毫秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557062301656', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BF449394-1C7D-4144-B7C4-9C3FA29F8B64\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 5,\\n \\"Total\\": 20,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"data\\": [\\n {\\n \\"Type\\": \\"CUSTOM_JOB\\",\\n \\"Status\\": \\"COMPLETED\\",\\n \\"JobName\\": \\"MyTestJobOEfwJN\\",\\n \\"Description\\": \\"TestDescription\\",\\n \\"UtcModified\\": \\"2019-05-21T17:15:46.000Z\\",\\n \\"JobId\\": \\"Z20nyanW5****010001\\",\\n \\"UtcCreate\\": \\"2019-05-21T11:45:37.000Z\\",\\n \\"ScheduledTime\\": 1557062301656\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n5\\nBF449394-1C7D-4144-B7C4-9C3FA29F8B64\\n20\\n1\\n\\n \\n COMPLETED\\n CUSTOM_JOB\\n 1557062301656\\n TestDescription\\n 2019-05-21T13:03:52.000Z\\n MyTestJobIax6Eq\\n 2019-05-21T17:39:10.000Z\\n sGWotg***4F010001\\n \\n \\n COMPLETED\\n CUSTOM_JOB\\n 1557064501656\\n TestDescription\\n 2019-05-21T11:45:37.000Z\\n MyTestJobOEfwJN\\n 2019-05-21T17:15:46.000Z\\n Z20nyanW5***010001\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '获取任务列表', - 'summary' => '调用该接口查询阿里云账号下的任务列表。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CancelJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'XUbmsMHmkqv0PiAG****010001', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C25255EA-9F6E-4E04-85FE-AC1E9C136EBB', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"C25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', - 'title' => '取消任务', - 'summary' => '调用该接口取消任务的执行。', - 'description' => '## 使用说明'."\n" - ."\n\n" - ."\n" - .'- 取消任务过程中,任务处于**CANCELLING**状态。如果对该状态任务,重复调用CancelJob,系统直接返回失败。'."\n" - ."\n" - .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' '."\n" - .' > RAM用户共享阿里云账号配额。 ', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'XUbmsMHmkqv0PiAG****010001', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常 ', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C25255EA-9F6E-4E04-85FE-AC1E9C136EBB', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常 \\",\\n \\"RequestId\\": \\"C25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC25255EA-9F6E-4E04-85FE-AC1E9C136EBB\\ntrue\\n","errorExample":""}]', - 'title' => '删除任务', - 'summary' => '调用该接口删除任务。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListTask' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'Limit', - 'in' => 'query', - 'schema' => [ - 'description' => '每页显示的记录数。默认值为10,最大值为50。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '10', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。'."\n" - ."\n" - .'> 如果传入Device参数,此参数不传。', - 'type' => 'string', - 'required' => false, - 'example' => 'sGWotgRk***010001', - ], - ], - [ - 'name' => 'NextToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。首次查询可不传入值。如果存在下一页,服务会返回NextToken值,下次请求时传入。'."\n" - ."\n" - .'NextToken值有效时间为1分钟。失效后,将返回对应的错误码。', - 'type' => 'string', - 'required' => false, - 'example' => '22dhgg***', - ], - ], - [ - 'name' => 'Device', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '设备信息。更多信息,请参见下文“Device定义”。'."\n" - ."\n" - .'> 如果传入JobId参数,此参数不传。', - 'type' => 'object', - 'required' => false, - 'example' => '{}', - ], - ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '任务作业的状态。取值范围:'."\n" - ."\n" - .'- **QUEUED**:待调度。'."\n" - .'- **SENT**:已调度。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **REJECTED**:已拒绝。'."\n" - .'- **TIMED_OUT**:已超时。'."\n" - .'- **SUCCEEDED**:已成功。'."\n" - .'- **CANCELLED**:已取消。', - 'type' => 'string', - 'required' => false, - 'example' => 'QUEUED', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'NextToken' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回NextToken值,下次请求时传入。'."\n" - ."\n" - .'NextToken值有效时间为1分钟。失效后,将返回对应的错误码。', - 'type' => 'string', - 'example' => '223sdf***', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'data' => [ - 'description' => '调用成功时,返回任务下作业详情,请参见以下参数说明。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '任务作业的状态。'."\n" - ."\n" - .'- **QUEUED**:待调度。'."\n" - .'- **SENT**:已调度。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **REJECTED**:已拒绝。'."\n" - .'- **TIMED_OUT**:已超时。'."\n" - .'- **SUCCEEDED**:成功。'."\n" - .'- **CANCELLED**:已取消。'."\n", - 'type' => 'string', - 'example' => 'SUCCEEDED', - ], - 'UtcQueueTime' => [ - 'description' => '作业的排队时间。', - 'type' => 'string', - 'example' => '2019-05-21T13:03:53.000Z', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1S0OM***', - ], - 'Progress' => [ - 'description' => '任务下作业执行进度。', - 'type' => 'string', - 'example' => '80', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'mydevice', - ], - 'JobName' => [ - 'description' => '任务名称。', - 'type' => 'string', - 'example' => 'MyTestJobIax6Eq', - ], - 'UtcModified' => [ - 'description' => '作业信息的修改时间。', - 'type' => 'string', - 'example' => '2019-05-21T13:03:56.000Z', - ], - 'JobId' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'example' => 'sGWotg***010001', - ], - 'TaskId' => [ - 'description' => '任务下作业的ID。作业的全局唯一标识符。', - 'type' => 'string', - 'example' => 'MSnT9wl***q010101', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'BDjhIC***i000101', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"NextToken\\": \\"223sdf***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"data\\": [\\n {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"UtcQueueTime\\": \\"2019-05-21T13:03:53.000Z\\",\\n \\"ProductKey\\": \\"a1S0OM***\\",\\n \\"Progress\\": \\"80\\",\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"JobName\\": \\"MyTestJobIax6Eq\\",\\n \\"UtcModified\\": \\"2019-05-21T13:03:56.000Z\\",\\n \\"JobId\\": \\"sGWotg***010001\\",\\n \\"TaskId\\": \\"MSnT9wl***q010101\\",\\n \\"IotId\\": \\"BDjhIC***i000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n223sdf***\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n \\n SUCCEEDED\\n BDjhIC***i000101\\n 80\\n MSnT9wl***q010101\\n MyTestJobIax6Eq\\n 2019-05-21T13:03:56.000Z\\n 2019-05-21T13:03:53.000Z\\n a1S0OM***\\n sGWotg***010001\\n mydevice\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '获取任务列表', - 'summary' => '调用该接口查询指定任务或指定设备下的作业列表。', - 'description' => '## 使用说明'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '**Device定义**'."\n" - .'|名称|类型|描述|'."\n" - .'|------|------|------|'."\n" - .'|IotId|String|设备ID。**IotId**、**ProductKey**、**DeviceName**不可同时为空。|'."\n" - .'|ProductKey|String|设备所属产品的ProductKey。
如果传入该参数,需同时传入**DeviceName**。|'."\n" - .'|DeviceName|String|设备名称。
如果传入该参数,需同时传入**ProductKey**。|'."\n" - ."\n" - .' '."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryTask' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'TaskId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务下作业的ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'MSnT9***q010101', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的作业详情,请参见以下参数说明。', - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '作业的状态。'."\n" - ."\n" - .'- **QUEUED**:待调度。'."\n" - .'- **SENT**:已调度。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **FAILED**:失败。'."\n" - .'- **REJECTED**:已拒绝。'."\n" - .'- **TIMED_OUT**:已超时。'."\n" - .'- **SUCCEEDED**:已成功。'."\n" - .'- **CANCELLED**:已取消。', - 'type' => 'string', - 'example' => 'SUCCEEDED', - ], - 'Progress' => [ - 'description' => '作业的进度。', - 'type' => 'string', - 'example' => '80', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'mydevice', - ], - 'Message' => [ - 'description' => '任务执行的相关信息,例如执行的错误信息。', - 'type' => 'string', - 'example' => 'this is message about task execution', - ], - 'UtcQueueTime' => [ - 'description' => '作业的排队时间。', - 'type' => 'string', - 'example' => '2019-05-21T13:03:53.000Z', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1S****', - ], - 'JobName' => [ - 'description' => '作业所属任务的名称。', - 'type' => 'string', - 'example' => 'MyTestJobIax6Eq', - ], - 'UtcModified' => [ - 'description' => '作业信息的修改时间。', - 'type' => 'string', - 'example' => '2019-05-21T13:03:56.000Z', - ], - 'JobId' => [ - 'description' => '作业所属任务的ID。', - 'type' => 'string', - 'example' => 'sGWotgRkutxX*****', - ], - 'StatusDetail' => [ - 'description' => '任务作业执行过程中设备上报的信息。', - 'type' => 'string', - 'example' => '{ "msg":"this is message reported by device" }', - ], - 'TaskId' => [ - 'description' => '作业ID。作业的全局唯一标识符。', - 'type' => 'string', - 'example' => 'MSnT9***q010101', - ], - 'IotId' => [ - 'description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', - 'type' => 'string', - 'example' => 'BDjhI****01', - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"Progress\\": \\"80\\",\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"Message\\": \\"this is message about task execution\\",\\n \\"UtcQueueTime\\": \\"2019-05-21T13:03:53.000Z\\",\\n \\"ProductKey\\": \\"a1S****\\",\\n \\"JobName\\": \\"MyTestJobIax6Eq\\",\\n \\"UtcModified\\": \\"2019-05-21T13:03:56.000Z\\",\\n \\"JobId\\": \\"sGWotgRkutxX*****\\",\\n \\"StatusDetail\\": \\"{ \\\\\\"msg\\\\\\":\\\\\\"this is message reported by device\\\\\\" }\\",\\n \\"TaskId\\": \\"MSnT9***q010101\\",\\n \\"IotId\\": \\"BDjhI****01\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n SUCCEEDED\\n 80\\n MSnT9***q010101\\n this is message about task execution\\n MyTestJobIax6Eq\\n BDjhI****01\\n { \\"msg\\":\\"this is message reported by device\\" }\\n 2019-05-21T13:03:56.000Z\\n 2019-05-21T13:03:53.000Z\\n a1S****\\n sGWotgRkutxX*****\\n mydevice\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定任务下作业', - 'summary' => '调用该接口查询指定任务下的作业。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryJobStatistics' => [ - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '任务ID。任务的全局唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'sGWotgRkut***10001', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的作业状态详情,请参见以下参数说明。', - 'type' => 'object', - 'properties' => [ - 'Rejected' => [ - 'description' => '对应任务下被设备拒绝的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TimeOut' => [ - 'description' => '对应任务下执行超时的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'Failed' => [ - 'description' => '对应任务下执行失败的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Queued' => [ - 'description' => '对应任务下待执行的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Succeeded' => [ - 'description' => '对应任务下执行成功的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '22', - ], - 'Sent' => [ - 'description' => '对应任务下处于已推送状态的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'Total' => [ - 'description' => '对应任务下的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'InProgress' => [ - 'description' => '对应任务下执行中的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '13', - ], - 'Cancelled' => [ - 'description' => '对应任务下被取消的作业总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Rejected\\": 1,\\n \\"TimeOut\\": 5,\\n \\"Failed\\": 1,\\n \\"Queued\\": 2,\\n \\"Succeeded\\": 22,\\n \\"Sent\\": 3,\\n \\"Total\\": 50,\\n \\"InProgress\\": 13,\\n \\"Cancelled\\": 3\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n 22\\n 13\\n 5\\n 1\\n 50\\n 3\\n 1\\n 2\\n 3\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询作业统计信息', - 'summary' => '调用该接口查询指定任务下各状态作业的统计信息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'RerunJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t****', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备任务ID。任务的全局唯一标识符。'."\n" - ."\n" - .'您可在物联网平台控制台的**设备管理 > 任务**页面,查看任务ID。'."\n" - ."\n\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => '450407b***', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD', - ], - 'Success' => [ - 'description' => '表示接口调用是否成功。'."\n" - ."\n" - .'- **true**:调用成功,表示设备作业已重新执行。'."\n" - .'- **false**:调用失败,表示设备作业未重新执行。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\ntrue\\n","errorExample":""}]', - 'title' => '重新执行任务', - 'summary' => '重新执行指定设备任务下,所有已超时和失败的设备作业。', - 'description' => '## 使用说明'."\n" - .'仅支持指定已完成或已超时状态的设备任务。'."\n" - ."\n" - .'已完成状态设备任务,表示该任务下所有作业已执行完成。已执行完成作业状态如下:'."\n" - ."\n" - .'- **FAILED**:已失败。'."\n" - .'- **REJECTED**:已拒绝。'."\n" - .'- **TIMED_OUT**:已超时。'."\n" - .'- **SUCCEEDED**:已成功。'."\n" - .'- **CANCELLED**:已取消。'."\n" - ."\n" - .'> 若设备任务下所有作业执行状态为已成功,调用本接口无法重新执行设备任务。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要创建Topic类所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'aldDEin****', - ], - ], - [ - 'name' => 'TopicShortName', - 'in' => 'query', - 'schema' => [ - 'description' => '设置Topic类的自定义类目名称。'."\n" - ."\n" - .'Topic格式必须以`/`进行分层,区分每个类目。类目命名只能包含字母、数字和下划线(_),每级类目不能为空。'."\n" - ."\n" - .'> **Operation**为**SUB**(订阅)时,才可以使用通配符`+`和`#`自定义Topic类,以便设备实现批量订阅Topic。通配符使用方法请参见[带通配符的自定义Topic](~~85539~~) 。'."\n" - ."\n" - .'- 对于云网关产品,Topic类完全由用户自定义输入。支持使用`${deviceName}`通配**DeviceName**。'."\n" - .'- 对于非云网关产品,自定义Topic类前三个类目已固定为`/${productKey}/${deviceName}/user/`,定义**TopicShortName**将Topic类填充完整。', - 'type' => 'string', - 'required' => true, - 'example' => 'submit', - ], - ], - [ - 'name' => 'Operation', - 'in' => 'query', - 'schema' => [ - 'description' => '设备对该Topic类的操作权限,取值:'."\n" - ."\n" - .'- **SUB**:订阅。'."\n" - .'- **PUB**:发布。'."\n" - .'- **ALL**:发布和订阅。', - 'type' => 'string', - 'required' => true, - 'example' => 'PUB', - ], - ], - [ - 'name' => 'Desc', - 'in' => 'query', - 'schema' => [ - 'description' => 'Topic类的描述信息。长度限制为100字符(一个中文汉字占一个字符)。', - 'type' => 'string', - 'required' => false, - 'example' => 'submit a test topic', - ], - ], - [ - 'name' => 'EnableProxySubscribe', - 'in' => 'query', - 'schema' => [ - 'description' => '**Operation**为**SUB**(订阅)或**ALL**(发布和订阅),可开启代理订阅。'."\n" - .'取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:不开启。'."\n" - ."\n" - .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'Codec', - 'in' => 'query', - 'schema' => [ - 'description' => '尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。'."\n" - .'取值:'."\n" - ."\n" - .'- **compress**:压缩。'."\n" - .'- **decompress**:解压缩。'."\n" - ."\n" - .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。'."\n" - ."\n" - .'>**TopicShortName**传入通配符(`+`和`#`)时,不可同时传入**Codec**。如果创建通配Topic类的同时,开启了数据压缩或解压缩功能,调用本接口创建该Topic类会失败。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'compress', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'TopicId' => [ - 'description' => '调用成功时,物联网平台为新建的Topic类生成的Topic ID。'."\n" - ."\n" - .'> 请妥善保管该信息。在调用与该Topic类相关的接口时,您可能需要提供对应的Topic ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"TopicId\\": 10000,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n 10000\\r\\n","errorExample":""}]', - 'title' => '为指定产品创建自定义Topic类', - 'summary' => '调用该接口为指定产品创建自定义Topic类。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'UpdateProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Desc', - 'in' => 'query', - 'schema' => [ - 'description' => 'Topic类的描述信息。长度限制为100字符(一个汉字占一个字符)。', - 'type' => 'string', - 'required' => false, - 'example' => 'resubmit a test topic', - ], - ], - [ - 'name' => 'Operation', - 'in' => 'query', - 'schema' => [ - 'description' => '设备对该Topic类的操作权限,取值:'."\n" - ."\n" - .'- **SUB**:订阅。'."\n" - .'- **PUB**:发布。'."\n" - .'- **ALL**:发布和订阅。', - 'type' => 'string', - 'required' => true, - 'example' => 'PUB', - ], - ], - [ - 'name' => 'TopicShortName', - 'in' => 'query', - 'schema' => [ - 'description' => '设置Topic类的自定义类目名称。Topic类默认包含_productKey_和_deviceName_两级类目,类目间以正斜线(/)分隔,其格式为:`productKey/deviceName/topicShortName`。'."\n" - ."\n" - .'> 每级类目的名称只能包含字母、数字和下划线(_),且不能为空。', - 'type' => 'string', - 'required' => true, - 'example' => 'resubmit', - ], - ], - [ - 'name' => 'TopicId', - 'in' => 'query', - 'schema' => [ - 'description' => '要修改的Topic类的ID。'."\n" - .'调用[CreateProductTopic](~~69649~~)接口创建自定义Topic类成功后,返回的**TopicId**。', - 'type' => 'string', - 'required' => true, - 'example' => '821****', - ], - ], - [ - 'name' => 'EnableProxySubscribe', - 'in' => 'query', - 'schema' => [ - 'description' => '**Operation**为**SUB**(订阅)或**ALL**(发布和订阅),可开启代理订阅。'."\n" - .'取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:不开启。'."\n" - ."\n" - .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - [ - 'name' => 'Codec', - 'in' => 'query', - 'schema' => [ - 'description' => '标准型和尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。'."\n" - .'取值:'."\n" - ."\n" - .'- **compress**:压缩。'."\n" - .'- **decompress**:解压缩。'."\n" - ."\n" - .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。'."\n" - ."\n" - .'>**TopicShortName**传入通配符(`+`和`#`)时,不可同时传入**Codec**。如果创建通配Topic类的同时,开启了数据压缩或解压缩功能,调用本接口创建该Topic类会失败。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'compress', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新指定的产品自定义Topic类', - 'summary' => '调用该接口更新指定的产品自定义Topic类。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询Topic类的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'HMyB*******', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B953EAFF-CFF6-4FF8-BC94-8B89F018E4DD', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProductTopicInfo' => [ - 'description' => '调用成功时,返回的Topic类信息列表。详情参见以下**ProductTopicInfo**。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Operation' => [ - 'description' => '设备对该Topic类的操作权限,取值:'."\n" - .'- **0**:发布'."\n" - .'- **1**:订阅'."\n" - .'- **2**:发布和订阅', - 'type' => 'string', - 'example' => '1', - ], - 'ProductKey' => [ - 'description' => '产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'HMyB***', - ], - 'Codec' => [ - 'description' => '是否开启自定义Topic数据压缩或解压缩。'."\n" - .'取值:'."\n" - ."\n" - .'- **compress**:压缩。'."\n" - .'- **decompress**:解压缩。'."\n" - ."\n" - .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。', - 'type' => 'string', - 'example' => 'compress', - ], - 'TopicShortName' => [ - 'description' => '产品的自定义Topic类。', - 'type' => 'string', - 'example' => '/HMyB***/${deviceName}/user/get', - ], - 'EnableProxySubscribe' => [ - 'description' => '是否开启代理订阅。'."\n" - .'取值:'."\n" - ."\n" - .'- **true**:开启。'."\n" - .'- **false**:不开启。'."\n" - ."\n" - .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Id' => [ - 'description' => 'Topic类的ID。', - 'type' => 'string', - 'example' => '821****', - ], - 'Desc' => [ - 'description' => 'Topic类的描述信息。', - 'type' => 'string', - 'example' => 'topicDesc', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B953EAFF-CFF6-4FF8-BC94-8B89F018E4DD\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductTopicInfo\\": [\\n {\\n \\"Operation\\": \\"1\\",\\n \\"ProductKey\\": \\"HMyB***\\",\\n \\"Codec\\": \\"compress\\",\\n \\"TopicShortName\\": \\"/HMyB***/${deviceName}/user/get\\",\\n \\"EnableProxySubscribe\\": false,\\n \\"Id\\": \\"821****\\",\\n \\"Desc\\": \\"topicDesc\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n310E4A1E-B614-5607-B7DB-55530CAE074A\\n\\n \\n /g18******F/${deviceName}/user/get\\n false\\n 1\\n 3679****\\n g18******F\\n \\n \\n /g18******F/${deviceName}/user/update\\n false\\n 0\\n 3679****\\n g18******F\\n \\n \\n /g18******F/${deviceName}/user/update/error\\n false\\n 0\\n 3679****\\n g18******F\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定产品的自定义Topic类', - 'summary' => '调用该接口查询指定产品的自定义Topic类。', - 'description' => '## QPS限制'."\n" - .' 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteProductTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'TopicId', - 'in' => 'query', - 'schema' => [ - 'description' => '要删除的Topic类的ID。', - 'type' => 'string', - 'required' => true, - 'example' => '798****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '指定的自定义Topic类', - 'summary' => '调用该接口删除指定的自定义Topic类。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'SrcTopic', - 'in' => 'query', - 'schema' => [ - 'description' => '源Topic,即被订阅的Topic。如`SrcTopic=/x7aWKW9****/testDataToDataHub/user/update`。', - 'type' => 'string', - 'required' => true, - 'example' => '/x7aWKW9****/testDataToDataHub/user/update', - ], - ], - [ - 'name' => 'DstTopic', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '目标Topic列表,即从**SrcTopic**订阅消息的Topic列表。即使只有一个Topic,也使用数组格式。如`DstTopic.1=/x7aWKW9****/deviceNameTest1/user/add`,`DstTopic.2=/x7aWKW9****/deviceNameTest2/user/delete`。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '/x7aWKW9****/deviceNameTest1/user/add', - 'maxItems' => 100, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'IsAllSucceed' => [ - 'description' => '指定的Topic间的消息路由关系是否全部新建成功。'."\n" - .'- **true**表示全部新建成功。'."\n" - .'- **false**表示未全部新建成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FailureTopics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Topic' => [ - 'type' => 'array', - 'items' => [ - 'description' => '未能成功创建路由关系的Topic列表。', - 'type' => 'object', - 'example' => '["/2Fx7aWKW9****/FdeviceNameTest2/user/delete"]', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"IsAllSucceed\\": true,\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"Topic\\": [\\n \\"[\\\\\\"/2Fx7aWKW9****/FdeviceNameTest2/user/delete\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n32B9828A-25DD-48E2-8E26-D1664B341940\\n\\ntrue\\n","errorExample":""}]', - 'title' => '新建Topic间的消息路由关系', - 'summary' => '调用该接口新建Topic间的消息路由关系。', - 'description' => '## 使用说明'."\n" - .'- 一个源Topic最多可对应100个目标Topic。'."\n" - .'- 源Topic所属的设备必须为已激活设备。'."\n" - .'- 源Topic和目标Topic均仅支持自定义Topic。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Topic', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的源Topic,即发布消息的Topic。', - 'type' => 'string', - 'required' => true, - 'example' => '/x7aWKW94bb8/testDataToDataHub/user/update', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DstTopics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Topic' => [ - 'type' => 'array', - 'items' => [ - 'description' => '调用成功时,返回的目标Topic列表,即向源Topic订阅消息的Topic列表。', - 'type' => 'object', - 'example' => '["/CXi4***/device2/get","/CXi4***/device3/get"]', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true,\\n \\"DstTopics\\": {\\n \\"Topic\\": [\\n \\"[\\\\\\"/CXi4***/device2/get\\\\\\",\\\\\\"/CXi4***/device3/get\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n /a1T27vz****/${deviceName}/user/submit/update\\n\\nD6CB2387-0D65-4240-9436-A2E18B434E31\\ntrue\\n","errorExample":""}]', - 'title' => '查询 Topic 路由表', - 'summary' => '查询向指定自定义Topic订阅消息的目标Topic,即指定Topic的路由表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryTopicReverseRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'RegionId', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所在地域(与控制台上的地域对应),如cn-shanghai。'."\n" - ."\n" - .'> 目前此参数已包含在公共请求参数中,不再作为API特有参数传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'cn-shanghai', - ], - ], - [ - 'name' => 'Topic', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的目标Topic,即接收消息的Topic。', - 'type' => 'string', - 'required' => true, - 'example' => '/x7aWKW9***/testDataToDataHub/user/update', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC"', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'SrcTopics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Topic' => [ - 'type' => 'array', - 'items' => [ - 'description' => '调用成功时,返回的源Topic列表,即被订阅的Topic列表。', - 'type' => 'object', - 'example' => '["/CXi4***/device1/user/get","/CXi4***/device4/user/get"]', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\\\\\"\\",\\n \\"Success\\": true,\\n \\"SrcTopics\\": {\\n \\"Topic\\": [\\n \\"[\\\\\\"/CXi4***/device1/user/get\\\\\\",\\\\\\"/CXi4***/device4/user/get\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n /CXi4***/device1/user/get\\n /CXi4***/device4/user/get\\n\\nC5515170-3C1F-4004-A7C1-181E7955BC73\\ntrue\\n","errorExample":""}]', - 'title' => '查询反向路由表', - 'summary' => '查询指定自定义Topic订阅的源Topic,即反向路由表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteTopicRouteTable' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'SrcTopic', - 'in' => 'query', - 'schema' => [ - 'description' => '源Topic,即被订阅的Topic。如,`SrcTopic.1=/x7aWKW9****/testDataToDataHub/user/update`。', - 'type' => 'string', - 'required' => true, - 'example' => '/x7aWKW9***/testDataToDataHub/user/update', - ], - ], - [ - 'name' => 'DstTopic', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '目标Topic,即从**SrcTopic**订阅消息的Topic。如,`DstTopic.1=/x7aWKW9****/deviceNameTest1/user/add`,`DstTopic.2=/x7aWKW9****/deviceNameTest2/user/delete`。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '/x7aWKW9***/deviceNameTest1/user/add', - 'maxItems' => 100, - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC', - ], - 'IsAllSucceed' => [ - 'description' => '指定的Topic路由关系是否全部成功删除。'."\n" - .'- **true**:全部成功删除。'."\n" - .'- **false**:未全部成功删除。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FailureTopics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Topic' => [ - 'type' => 'array', - 'items' => [ - 'description' => '未能成功删除路由关系的Topic列表。', - 'type' => 'object', - 'example' => '["/x7aWKW9***/deviceNameTest2/user/delete"]', - ], - ], - ], - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"IsAllSucceed\\": true,\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"Topic\\": [\\n \\"[\\\\\\"/x7aWKW9***/deviceNameTest2/user/delete\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n9DEBEF66-2B75-4CB2-BF19-1488802F4381\\n\\ntrue\\n","errorExample":""}]', - 'title' => '删除指定自定义Topic的路由关系', - 'summary' => '调用该接口删除指定自定义Topic的路由关系。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'Select', - 'in' => 'query', - 'schema' => [ - 'description' => '要执行的SQL SELECT语句。具体内容参照[SQL表达式](~~30554~~)。'."\n" - ."\n" - .'> 此处传入的是SELECT下的内容。例如,如果SELECT语句为`SELECT a,b,c`,则此处传入`a,b,c`。', - 'type' => 'string', - 'required' => false, - 'example' => 'deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature', - ], - ], - [ - 'name' => 'ShortTopic', - 'in' => 'query', - 'schema' => [ - 'description' => '应用该规则的具体Topic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`是具体设备的名称,`topicShortName`是Topic短名称。'."\n" - ."\n" - .'- 基础通信Topic或物模型通信Topic的ShortTopic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" - ."\n" - .' - `/thing/event/property/post `设备上报的属性消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" - .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" - .' - `/thing/list/found`网关上报发现子设备消息。'."\n" - .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" - .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" - .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" - .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" - .' - `/edge/driver/${driver_id}/point_post`物联网边缘计算的透传模式Topic消息,`${}`中是物联网边缘计算的设备接入驱动ID。'."\n" - ."\n" - .' OTA升级批次状态通知Topic也属于基础通信Topic,ShortTopic格式为:`${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" - .'- 自定义Topic的ShortTopic,如:`${deviceName}/user/get`。'."\n" - ."\n" - .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" - ."\n" - .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" - .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" - .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" - .' 使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" - .'- 设备状态变化通知Topic的ShortTopic:`${deviceName}`。'."\n" - ."\n" - .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。', - 'type' => 'string', - 'required' => false, - 'example' => '+/thing/event/property/post', - ], - ], - [ - 'name' => 'Where', - 'in' => 'query', - 'schema' => [ - 'description' => '规则的触发条件。具体内容参照[SQL表达式](~~30554~~)。'."\n" - ."\n" - .'> 此处传入的是**Where**中的内容。例如,如果**Where**语句为`Where a>10`,则此处传入`a>10`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Temperature>35', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '应用该规则的产品ProductKey。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1T27vz****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '规则名称。支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文或日文占2个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot_test1', - ], - ], - [ - 'name' => 'RuleDesc', - 'in' => 'query', - 'schema' => [ - 'description' => '规则的描述信息。长度限制为100个字符,一个中文字符计为1个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'rule test', - ], - ], - [ - 'name' => 'DataType', - 'in' => 'query', - 'schema' => [ - 'description' => '规则处理的数据格式,需与待处理的设备数据格式一致。取值:'."\n" - ."\n" - .'- **JSON**(默认):JSON数据。'."\n" - .'- **BINARY**:二进制数据。'."\n" - ."\n" - .'> 若选择为**BINARY**,**TopicType**不能选择为0(基础通信Topic或物模型通信Topic),且不支持将数据转发至实例内的时序数据存储、时序数据库、表格存储和云数据库RDS版。', - 'type' => 'string', - 'required' => false, - 'example' => 'JSON', - ], - ], - [ - 'name' => 'TopicType', - 'in' => 'query', - 'schema' => [ - 'description' => '- **0**:**ShortTopic**参数描述中的基础通信Topic或物模型通信Topic,包含OTA升级批次状态通知Topic。'."\n" - .'- **1**:自定义Topic。'."\n" - .'- **2**:设备状态变化通知Topic:`/as/mqtt/status/${productKey}/${deviceName}`。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'ResourceGroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>'."\n" - .'- 目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'- 历史调用本API设置的资源组仍有效。'."\n" - ."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], - ], - [ - 'name' => 'Topic', - 'in' => 'query', - 'schema' => [ - 'description' => '待添加规则的完整Topic。'."\n" - ."\n" - .'如果传入此参数,无需再传入参数**ShortTopic**和**TopicType**。', - 'type' => 'string', - 'required' => false, - 'example' => '/sys/g18l***/device1/thing/event/property/post', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RuleId' => [ - 'description' => '调用成功时,规则引擎为该规则生成的规则ID,作为该规则的标识符。'."\n" - ."\n" - .'> 请妥善保管该信息。在调用和规则相关的接口时,您可能需要提供对应的规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"RuleId\\": 100000\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n E4C0FF92-2A86-41DB-92D3-73B60310D25E\\r\\n 100000\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '对指定Topic新建一个规则', - 'summary' => '调用该接口对指定Topic新建一个规则。', - 'description' => '## 使用说明'."\n" - .'调用该接口时,请求参数**ProductKey**必须传入。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n" - ."\n" - .'> 如需启动规则,请求中需包含ProductKey、ShortTopic、Select三个参数的信息。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'RuleId', - 'in' => 'query', - 'schema' => [ - 'description' => '要为其创建动作的规则ID。可在物联网平台控制台对应实例下,**规则引擎**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '规则动作类型,取值:'."\n" - ."\n" - .'- **REPUBLISH**:将根据规则处理后的Topic数据转发至另一个物联网平台 Topic。'."\n" - .'- **AMQP**:数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将根据规则处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将根据规则处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将根据规则处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将根据规则处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将根据规则处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。'."\n" - ."\n" - .'> 数据格式为二进制的规则(即规则的**DataType**参数是**BINARY**)不支持转发数据至OTS(表格存储)。', - 'type' => 'string', - 'required' => true, - 'example' => 'REPUBLISH', - ], - ], - [ - 'name' => 'Configuration', - 'in' => 'query', - 'schema' => [ - 'description' => '该规则动作的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例见下文请求参数补充说明。', - 'type' => 'string', - 'required' => true, - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - ], - [ - 'name' => 'ErrorActionFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '该规则动作是否为转发错误操作数据的转发动作,即转发流转到其他云产品失败且重试失败的数据。 可选值:'."\n" - ."\n" - .'- **true**:该规则动作转发错误操作数据。'."\n" - .'- **false**:该规则动作不转发错误操作数据,而是正常转发操作。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'description' => '返回的数据。', - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ActionId' => [ - 'description' => '调用成功时,规则引擎为该规则动作生成的规则动作ID,作为其标识符。'."\n" - ."\n" - .'> 请妥善保管该信息。在调用与规则动作相关的接口时,您可能需要提供对应的规则动作ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10003', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ActionId\\": 10003,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\r\\n 10003\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateRuleAction', - 'summary' => '调用该接口在指定的规则下创建一个规则动作,定义将处理后的Topic数据,转发至物联网平台的其他Topic,或所支持的其他阿里云服务。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 服务地域不同,所支持的目标云产品有所不同。规则引擎支持的地域及目标云产品,请参见[地域与可用区](~~85669~~)。'."\n" - .'- 一个规则下面最多可创建10个规则动作。'."\n" - .'- 您可以通过调用该API创建规则动作,定义将数据转发至物联网平台其他Topic、AMQP消费组和其他阿里云产品(DataHub、消息队列RocketMQ、消息服务、函数计算和表格存储)。'."\n" - .'如果您想将数据转发至实例内的时序数据存储、时序数据库(TSDB)和云数据库RDS版,请在[物联网平台控制台](https://iot.console.aliyun.com)进行操作。'."\n" - ."\n\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享该阿里云账号配额。', - 'requestParamsDescription' => '**REPUBLISH类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|------|------|'."\n" - .'|topic|转发的目标Topic(物模型通信Topic或自定义Topic)。支持将数据转发至数据下行的物模型通信Topic:
`/sys/${YourProductKey}/${YourDeviceName}/thing/service/property/set`
`/sys/${YourProductKey}/${YourDeviceName}/thing/service/${tsl.service.identifier}`
变量**${tsl.service.identifier}**的内容由该产品物模型中的服务决定。|'."\n" - .'|topicType|Topic的类型。
0:表示数据下行的物模型通信Topic。
1:表示自定义Topic。|'."\n" - ."\n\n" - .'REPUBLISH 类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'sys类型:{"topic":"/sys/a1TXXXXXWSN/xxx_cache001/thing/service/property/set","topicType":0}'."\n" - .'自定义类型:{"topic":"/a1TXXXXXWSN/xxx_cache001/user/update","topicType":1}'."\n" - .'```'."\n" - .'**DATAHUB类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------ |'."\n" - .'|projectName|目标DataHub中用来接收信息的具体Project。|'."\n" - .'|topicName|目标DataHub中用来接收信息的具体Topic。|'."\n" - .'|regionName|目标DataHub所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|role|授权角色信息。通过授予IoT指定的系统服务角色,您可以授权物联网平台访问您的DataHub。授权角色信息格式:
`{"roleArn":"acs:ram::6541\\*\\**:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}`
请将`6541\\*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingDataHubRole`是访问控制中定义的服务角色。用于授予物联网平台访问DataHub。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - .'|schemaVals|目标DataHub中的Schema列表,详情参见下表schemaVals。|'."\n" - ."\n" - .'schemaVals'."\n" - ."\n\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|name|列名。|'."\n" - .'|value|列值。|'."\n" - .'|type|列类型。
BIGINT:大整数型。
DOUBLE:双精度浮点型。
BOOLEAN:布尔型。
TIMESTAMP:时间戳型。
STRING:字符串型。
DECIMAL:小数型。|'."\n" - ."\n" - .'DATAHUB类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "schemaVals": ['."\n" - .' {'."\n" - .' "name": "devicename",'."\n" - .' "value": "${deviceName}",'."\n" - .' "type": "STRING"'."\n" - .' },'."\n" - .' {'."\n" - .' "name": "msgtime",'."\n" - .' "value": "${msgTime}",'."\n" - .' "type": "TIMESTAMP"'."\n" - .' }'."\n" - .' ],'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::6541***:role/aliyuniotaccessingdatahubrole",'."\n" - .' "roleName": "AliyunIOTAccessingDataHubRole"'."\n" - .' },'."\n" - .' "projectName": "iot_datahub_stream",'."\n" - .' "topicName": "device_message",'."\n" - .' "regionName": "cn-shanghai"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**OTS类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|instanceName|表格存储中用来接收信息的实例名称。|'."\n" - .'|tableName|表格存储中用来接收信息的数据表名称。|'."\n" - .'|regionName|目标实例所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的表格存储。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingotsrole","roleName": "AliyunIOTAccessingOTSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingOTSRole`是访问控制中定义的服务角色。用于授予物联网平台访问表格存储。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - .'|primaryKeys|目标表中的主键列表。详情参见下表PrimaryKeys。|'."\n" - ."\n" - .' PrimaryKeys'."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|columnType|主键类型。
INTEGER:整型。
STRING:字符串。
BINARY:二进制。|'."\n" - .'|columnName|主键名称。|'."\n" - .'|columnValue|主键值。|'."\n" - .'|option|主键是否为自增列,取值AUTO\\_INCREMENT或为空。当主键类型为INTEGER,且该字段为AUTO\\_INCREMENT时,主键为自增列。|'."\n" - ."\n" - .'OTS类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "instanceName": "testaaa",'."\n" - .' "tableName": "tt",'."\n" - .' "primaryKeys": ['."\n" - .' {'."\n" - .' "columnType": "STRING",'."\n" - .' "columnName": "ttt",'."\n" - .' "columnValue": "${tt}",'."\n" - .' "option": ""'."\n" - .' },'."\n" - .' {'."\n" - .' "columnType": "INTEGER",'."\n" - .' "columnName": "id",'."\n" - .' "columnValue": "",'."\n" - .' "option": "AUTO_INCREMENT"'."\n" - .' }'."\n" - .' ],'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingotsrole",'."\n" - .' "roleName": "AliyunIOTAccessingOTSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**MNS类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|themeName| 消息服务中用来接收信息的目标主题名称。|'."\n" - .'|regionName| 目标消息服务所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'MNS类型**​Configuration**​​示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "themeName": "mns-test-topic1",'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" - .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**FC类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|functionName| 函数服务中用来接收信息的目标函数名称。|'."\n" - .'|serviceName| 函数服务中用来接收信息的目标服务名称。|'."\n" - .'|regionName| 目标函数服务实例所在阿里云地域的代码,如cn-shanghai。|'."\n" - .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的函数计算服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingFCRole`是访问控制中定义的服务角色。用于授予物联网平台访问函数计算。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'FC类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingfcrole",'."\n" - .' "roleName": "AliyunIOTAccessingFCRole"'."\n" - .' },'."\n" - .' "functionName": "weatherForecast",'."\n" - .' "serviceName": "weather"'."\n" - .'}'."\n" - .'```'."\n" - .'**ONS类型Configuration定义**'."\n" - ."\n" - .'> 您需通过调用消息队列RocketMQ的SDK,或在消息队列RocketMQ控制台,授权物联网平台访问消息队列RocketMQ(至少要授予物联网平台发布权限),然后才能够成功创建将Topic数据转发至消息队列RocketMQ的规则动作。'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|instanceId|RocketMQ中用来接收消息的目标Topic所属的实例ID。|'."\n" - .'|topic|RocketMQ中用来接收信息的目标Topic。|'."\n" - .'|regionName|目标RocketMQ实例所在的阿里云地域代码,例如cn-shanghai。
> 公网和同区流转,使用普通版RocketMQ实例即可;如果您需要跨区流转,则RocketMQ实例必需是铂金版实例。|'."\n" - .'|tag|(可选)设置标签。长度限制为128字节。|'."\n" - .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息队列RocketMQ服务。授权角色信息:
`{"roleArn":"acs:ram::6541*\\**:role/aliyuniotaccessingonsrole","roleName": "AliyunIOTAccessingONSRole"}`
请将`6541*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingONSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息队列RocketMQ。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'ONS类型**Configuration**示例:'."\n" - ."\n\n" - .'```'."\n" - .'{'."\n" - .' "instanceId": "MQ_INST_123157908552****_XXXXXX"'."\n" - .' "topic": "aliyun-iot-XXXXX",'."\n" - .' "regionName": "cn-hangzhou",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::6541***:role/aliyuniotaccessingonsrole",'."\n" - .' "roleName": "AliyunIOTAccessingONSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**AMQP类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|groupId|消费组ID。|'."\n" - ."\n" - .'AMQP类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "groupId":"ZTh1JmyLGuZcUfv44p4z00****"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'name' => 'DomainId', + 'in' => 'formData', + 'schema' => ['description' => '域名ID。可调用[QueryStudioAppDomainListOpen](~~216814~~)查看。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.15b03118ooIo9y),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123*******'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'Studio.App.NotExist', 'errorMessage' => 'The application does not exist.', 'description' => '应用不存在'], + ['errorCode' => 'Studio.App.Domain.DomainNotExist', 'errorMessage' => 'The domain does not exist.', 'description' => '域名不存在'], + ['errorCode' => 'Studio.App.Domain.DomainAuthFail', 'errorMessage' => 'You are not authorized to manage the domain.', 'description' => '无域名操作权限'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n ","errorExample":""}]', + 'title' => 'DeleteStudioAppDomainOpen', + 'summary' => '调用该接口删除应该绑定的域名。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteStudioAppDomainOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteSubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'operationType' => 'write', + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看,或调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], + 'schema' => ['description' => '该订阅中的产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => '订阅类型。取值:'."\n" + ."\n" + .'- **MNS**'."\n" + .'- **AMQP**', 'type' => 'string', 'required' => true, 'example' => 'AMQP'], ], ], 'responses' => [ @@ -25781,91 +15963,122 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A8F48485-44B9-40D8-A56D-F716F384F387', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A8F48485-44B9-40D8-A56D-F716F384F387\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A8F48485-44B9-40D8-A56D-F716F384F387\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除指定的规则', - 'summary' => '调用该接口删除指定的规则。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '删除MNS或AMQP服务端订阅', + 'summary' => '调用该接口删除MNS或AMQP服务端订阅。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的ProductKey。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'- **PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**不为空时,传入此参数,删除自定义模块下指定功能;不传入此参数,删除默认模块下指定功能。'."\n" + ."\n" + .'- **PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**都为空时,传入此参数,删除该模块及其下所有功能定义。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], + ], + [ + 'name' => 'PropertyIdentifier', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', + 'description' => '需要删除的属性标识符列表。最多传入10个属性标识符。', + 'type' => 'array', + 'items' => ['description' => '需要删除的属性标识符。', 'type' => 'string', 'required' => false, 'example' => 'Temperature'], 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'example' => 'Temperature', + 'maxItems' => 100, ], ], [ - 'name' => 'ActionId', + 'name' => 'ServiceIdentifier', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要删除的规则动作ID。'."\n" - ."\n" - .'调用[CreateRuleAction](~~69586~~)创建规则动作成功后,返回的规则动作ID,您也可以调用[ListRuleActions](~~69517~~),从返回结果中查看对应的规则动作ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100001', + 'description' => '需要删除的服务标识符列表。最多传入10个服务标识符。', + 'type' => 'array', + 'items' => ['description' => '需要删除的服务标识符。', 'type' => 'string', 'required' => false, 'example' => 'Set'], + 'required' => false, + 'example' => 'Set', + 'maxItems' => 100, + ], + ], + [ + 'name' => 'EventIdentifier', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '需要删除的事件标识符列表。最多传入10个事件标识符。', + 'type' => 'array', + 'items' => ['description' => '需要删除的事件标识符。', 'type' => 'string', 'required' => false, 'example' => 'OfflineAlert'], + 'required' => false, + 'example' => 'OfflineAlert', + 'maxItems' => 100, ], ], ], @@ -25874,90 +16087,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '8FC9E36B-E0DC-4802-84EE-184E255B4E95', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"8FC9E36B-E0DC-4802-84EE-184E255B4E95\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 8FC9E36B-E0DC-4802-84EE-184E255B4E95\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除指定的规则动作', - 'summary' => '调用该接口删除指定的规则动作。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', + 'title' => '删除指定产品下物模型中的指定功能', + 'summary' => '调用该接口删除指定产品下物模型中的指定功能。', + 'description' => '## 使用说明'."\n" + .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口删除物模型中功能。'."\n" + .'- 如果产品下有未发布的新增物模型功能定义或物模型自定义模块,也可调用该接口进行删除。'."\n" + .'- 调用该接口时,必须传入请求参数**ProductKey**和指定的物模型(**FunctionBlockId**、**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**)。删除指定产品下物模型功能定义逻辑如下:'."\n" + .' - 仅传入**ProductKey**和**FunctionBlockId**:删除指定产品下指定的物模型自定义模块。'."\n" + .' - 传入**ProductKey**,及指定的**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**:删除指定产品下物模型默认模块中指定的功能定义。此时,仅删除已传入且存在的指定功能定义。若传入的**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**在默认模块中都不存在,调用本接口会报错,提示功能定义不存在的错误码信息。'."\n" + .' - 传入**ProductKey**和**FunctionBlockId**,及指定的**PropertyIdentifier.N**、**ServiceIdentifier.N**或**EventIdentifier.N**:删除指定产品下物模型自定义模块中指定的功能定义。此时,仅删除已传入且存在的指定功能定义。若传入的**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**在自定义模块中都不存在,调用本接口会报错,提示功能定义不存在的错误码信息。'."\n" + .' > 请求参数**PropertyIdentifier.N**、**ServiceIdentifier.N**和**EventIdentifier.N**,最多各传入10个标识符。'."\n" + .' '."\n" + .'- 调用该接口删除物模型功能后,必须调用[PublishThingModel](~~150311~~)接口重新发布对应产品的物模型,删除物模型功能的操作才能生效。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享该阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteTopicConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'TopicFullName', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -25965,193 +16165,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '58D4CEC0-3E95-4DBE-AFC1-809D1400E52F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RuleInfo' => [ - 'description' => '调用成功时,返回的规则详细信息。详情参见以下RuleInfo。', - 'type' => 'object', - 'properties' => [ - 'Modified' => [ - 'description' => '该规则最近一次被修改时的CST时间。', - 'type' => 'string', - 'example' => 'Thu Feb 28 14:20:58 CST 2019', - ], - 'Status' => [ - 'description' => '该规则的运行状态。取值:'."\n" - ."\n" - .'- **RUNNING**:运行中'."\n" - .'- **STOP**:停止', - 'type' => 'string', - 'example' => 'STOP', - ], - 'DataType' => [ - 'description' => '该规则的数据类型,取值:**JSON**或**BINARY**。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'Select' => [ - 'description' => '该规则SQL语句中的**Select**内容。', - 'type' => 'string', - 'example' => 'deviceName() as deviceName', - ], - 'UtcCreated' => [ - 'description' => '规则创建时的UTC时间。', - 'type' => 'string', - 'example' => '2019-02-28T06:14:33.000Z', - ], - 'TopicType' => [ - 'description' => '若您设置了规则SQL语句,则返回:'."\n" - ."\n" - .'- **0**:表示基础通信Topic或物模型通信Topic。'."\n" - .'- **1**:表示自定义Topic。'."\n" - .'- **2**:表示设备状态Topic。'."\n" - ."\n" - .'若未设置过规则SQL语句,则返回**-1**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CreateUserId' => [ - 'description' => '创建该规则的用户ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000000000000', - ], - 'Where' => [ - 'description' => '该规则SQL语句中的**Where**查询条件。', - 'type' => 'string', - 'example' => 'Temperature>35', - ], - 'ProductKey' => [ - 'description' => '应用该规则的产品ProductKey。', - 'type' => 'string', - 'example' => 'a1KiV******', - ], - 'UtcModified' => [ - 'description' => '规则最近一次更新时的UTC时间。', - 'type' => 'string', - 'example' => '2019-02-28T06:20:58.000Z', - ], - 'Topic' => [ - 'description' => '该规则所处理消息来源的完整Topic,格式为:`${productKey}/${deviceName}/topicShortName`。'."\n" - .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', - 'type' => 'string', - 'example' => '/a1QsMlL44pp/+/user/pm25data', - ], - 'ShortTopic' => [ - 'description' => '该规则所处理消息来源的具体Topic(不包含ProductKey类目),格式为:`${deviceName}/topicShortName`。其中,${deviceName}是具体设备的名称,topicShortName是Topic余下部分。'."\n" - .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', - 'type' => 'string', - 'example' => '+/user/pm25data', - ], - 'RuleDesc' => [ - 'description' => '规则的描述信息。', - 'type' => 'string', - 'example' => 'rule1Desc', - ], - 'Name' => [ - 'description' => '规则名称。', - 'type' => 'string', - 'example' => 'iotrules', - ], - 'Created' => [ - 'description' => '该规则创建时的CST时间。', - 'type' => 'string', - 'example' => 'Thu Feb 28 14:14:33 CST 2019', - ], - 'Id' => [ - 'description' => '规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100000', - ], - ], - ], + 'Code' => ['type' => 'string'], + 'Message' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"58D4CEC0-3E95-4DBE-AFC1-809D1400E52F\\",\\n \\"Success\\": true,\\n \\"RuleInfo\\": {\\n \\"Modified\\": \\"Thu Feb 28 14:20:58 CST 2019\\",\\n \\"Status\\": \\"STOP\\",\\n \\"DataType\\": \\"JSON\\",\\n \\"Select\\": \\"deviceName() as deviceName\\",\\n \\"UtcCreated\\": \\"2019-02-28T06:14:33.000Z\\",\\n \\"TopicType\\": 1,\\n \\"CreateUserId\\": 100000000000000,\\n \\"Where\\": \\"Temperature>35\\",\\n \\"ProductKey\\": \\"a1KiV******\\",\\n \\"UtcModified\\": \\"2019-02-28T06:20:58.000Z\\",\\n \\"Topic\\": \\"/a1QsMlL44pp/+/user/pm25data\\",\\n \\"ShortTopic\\": \\"+/user/pm25data\\",\\n \\"RuleDesc\\": \\"rule1Desc\\",\\n \\"Name\\": \\"iotrules\\",\\n \\"Created\\": \\"Thu Feb 28 14:14:33 CST 2019\\",\\n \\"Id\\": 100000\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n85648524-E5EE-418E-BD16-FAFBB4FF3645\\ntrue\\n\\n JSON\\n +/user/pm25data\\n a1QsMl****\\n 2019-12-23T03:34:45.000Z\\n 198426864326****\\n 2019-12-23T02:32:06.000Z\\n Ruff_rule1\\n RUNNING\\n \\n Mon Dec 23 10:32:06 CST 2019\\n Mon Dec 23 11:34:45 CST 2019\\n 1\\n /a1QsMlL****/+/user/pm25data\\n 425367\\n\\n","errorExample":""}]', - 'title' => '查询指定规则的详细信息', - 'summary' => '调用该接口查询指定规则的详细信息。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.message.broker.ParamCheckError', 'errorMessage' => 'Param check error.', 'description' => '参数校验错误。'], + ['errorCode' => 'iot.message.broker.ProductCheckError', 'errorMessage' => 'Product check error.', 'description' => '产品鉴权失败。'], + ['errorCode' => 'iot.message.broker.SystemError', 'errorMessage' => 'System error.', 'description' => '系统异常。'], + ], ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'DeleteTopicRouteTable' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ActionId', + 'name' => 'SrcTopic', + 'in' => 'query', + 'schema' => ['description' => '源Topic,即被订阅的Topic。如,`SrcTopic.1=/x7aWKW9****/testDataToDataHub/user/update`。', 'type' => 'string', 'required' => true, 'example' => '/x7aWKW9***/testDataToDataHub/user/update'], + ], + [ + 'name' => 'DstTopic', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的规则动作ID。'."\n" - ."\n" - .'您可以通过以下方式查询规则动作ID:'."\n" - .'- 调用[CreateRuleAction](~~69586~~),返回的**ActionId**参数值。'."\n" - .'- 调用[ListRuleActions](~~69517~~),返回的**Id**参数值。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '目标Topic,即从**SrcTopic**订阅消息的Topic。如,`DstTopic.1=/x7aWKW9****/deviceNameTest1/user/add`,`DstTopic.2=/x7aWKW9****/deviceNameTest2/user/delete`。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '100001', + 'example' => '/x7aWKW9***/deviceNameTest1/user/add', + 'maxItems' => 100, ], ], ], @@ -26160,162 +16231,145 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'F2D0755D-F350-40FE-9A6D-491859DB5E5F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RuleActionInfo' => [ - 'description' => '调用成功时,返回的规则动作详细信息。详情参见以下参数。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'IsAllSucceed' => ['description' => '指定的Topic路由关系是否全部成功删除。'."\n" + .'- **true**:全部成功删除。'."\n" + .'- **false**:未全部成功删除。', 'type' => 'boolean', 'example' => 'true'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'FailureTopics' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ErrorActionFlag' => [ - 'description' => '该规则动作是否为转发错误操作数据的转发动作,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:该规则动作转发错误操作数据。'."\n" - .'- **false**:该规则动作不转发错误操作数据,而是正常转发操作。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Type' => [ - 'description' => '规则动作类,取值:'."\n" - ."\n" - .'- **REPUBLISH**:转发到另一个topic。'."\n" - .'- **OTS**:存储到表格存储。'."\n" - .'- **MNS**:发送消息到消息服务。'."\n" - .'- **ONS**:发送数据到消息队列。'."\n" - .'- **TSDB**:存储到高性能时间序列数据库。'."\n" - .'- **FC**:发送数据到函数计算。'."\n" - .'- **DATAHUB**:发送数据到DataHub中。'."\n" - .'- **RDS**:存储数据到云数据库中。'."\n" - .'- **AMQP**:数据流转到AMQP消费组。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'REPUBLISH', - ], - 'Configuration' => [ - 'description' => '该规则动作的配置信息。', - 'type' => 'string', - 'example' => '{\\"topic\\":\\"/sys/a1zSA28****/device/thing/service/property/set\\",\\"topicType\\":0,\\"uid\\":\\"1231579*******\\"}', - ], - 'Id' => [ - 'description' => '规则动作ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100001', - ], - 'RuleId' => [ - 'description' => '该规则动作对应的规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '152323', + 'Topic' => [ + 'type' => 'array', + 'items' => ['description' => '未能成功删除路由关系的Topic列表。', 'type' => 'object', 'example' => '["/x7aWKW9***/deviceNameTest2/user/delete"]'], + 'description' => '', ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"F2D0755D-F350-40FE-9A6D-491859DB5E5F\\",\\n \\"Success\\": true,\\n \\"RuleActionInfo\\": {\\n \\"ErrorActionFlag\\": false,\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"topic\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"/sys/a1zSA28****/device/thing/service/property/set\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"topicType\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"uid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1231579*******\\\\\\\\\\\\\\"}\\",\\n \\"Id\\": 100001,\\n \\"RuleId\\": 152323\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n REPUBLISH\\r\\n 152323\\r\\n 100001\\r\\n \\r\\n /sys/a1zSA28****/device/thing/service/property/set\\r\\n 0\\r\\n 1231579*******\\r\\n \\r\\n false\\r\\n \\r\\n F2D0755D-F350-40FE-9A6D-491859DB5E5F\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询指定规则动作的详细信息', - 'summary' => '调用该接口查询指定规则动作的详细信息。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"IsAllSucceed\\": true,\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"Topic\\": [\\n [\\n \\"/x7aWKW9***/deviceNameTest2/user/delete\\"\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n9DEBEF66-2B75-4CB2-BF19-1488802F4381\\n\\ntrue\\n","errorExample":""}]', + 'title' => '删除指定自定义Topic的路由关系', + 'summary' => '调用该接口删除指定自定义Topic的路由关系。', 'description' => '## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteTopicRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DeleteUserDefineTableDataByPrimaryKey' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'CurrentPage', + 'name' => 'TableIdentifier', 'in' => 'query', - 'schema' => [ - 'description' => '显示返回结果中的第几页。最大取值为1000,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'PageSize', + 'name' => 'Conditions', 'in' => 'query', + 'style' => 'json', + 'schema' => ['type' => 'object', 'required' => true], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大值为100,默认值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.dataStoreTableHasNotBeenInit', 'errorMessage' => 'data store table has not been init.', 'description' => '数据存储表还未初始化。'], + ['errorCode' => 'iot.dap.insight.mustSetAtLeastOnePrimaryKey', 'errorMessage' => 'Set at least one primary key.', 'description' => '最少设置一个主键。'], + ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'DetachDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'ResourceGroupId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '资源组ID。'."\n" - ."\n" - .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'rg-acfmxazb4ph****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], + ], + [ + 'name' => 'ParserId', + 'in' => 'query', + 'schema' => ['description' => '解析器ID。您可调用接口[ListParser](~~444814~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '1', 'example' => '1000'], + ], + [ + 'name' => 'DestinationId', + 'in' => 'query', + 'schema' => ['description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999', 'minimum' => '0', 'example' => '1002'], ], ], 'responses' => [ @@ -26323,209 +16377,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '1564B626-DE97-452D-9E9B-305888AC6105', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Total' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '25', - ], - 'Page' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RuleInfo' => [ - 'description' => '调用成功时,返回的规则信息列表。详情参见**RuleInfo**信息。'."\n" - ."\n" - .'> 返回规则信息按照规则创建时间倒序排列。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Modified' => [ - 'description' => '该规则最近一次被修改时的CST (Central Standard Time)时间。', - 'type' => 'string', - 'example' => 'Wed Feb 27 20:45:43 CST 2019', - ], - 'Status' => [ - 'description' => '该规则的运行状态。取值:'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **STOP**:停止。', - 'type' => 'string', - 'example' => 'STOP', - ], - 'DataType' => [ - 'description' => '该规则的数据类型,取值:**JSON**和**BINARY**。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'Select' => [ - 'description' => '该规则SQL语句中的**Select**内容。', - 'type' => 'string', - 'example' => 'deviceName() as deviceName', - ], - 'UtcCreated' => [ - 'description' => '该规则创建时的UTC时间。', - 'type' => 'string', - 'example' => '2019-02-27T12:40:43.000Z', - ], - 'CreateUserId' => [ - 'description' => '创建该规则的用户ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1231579085000000', - ], - 'Where' => [ - 'description' => '该规则SQL语句中的**Where**查询条件。', - 'type' => 'string', - 'example' => 'Temperature>35', - ], - 'ProductKey' => [ - 'description' => '应用该规则的产品**Productkey**。', - 'type' => 'string', - 'example' => 'a1KiV******', - ], - 'UtcModified' => [ - 'description' => '该规则最近一次被修改时的UTC时间。', - 'type' => 'string', - 'example' => '2019-02-27T12:45:43.000Z', - ], - 'Topic' => [ - 'description' => '应用该规则的具体Topic,格式为:`${productKey}/${deviceName}/topicShortName`。'."\n" - .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', - 'type' => 'string', - 'example' => '/a1T27vz****/+/thing/event/property/post', - ], - 'ShortTopic' => [ - 'description' => '应用该规则的具体Topic(不包含ProductKey类目),格式为:`${deviceName}/topicShortName`。其中,${deviceName}是具体设备的名称,topicShortName是Topic余下部分。'."\n" - .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', - 'type' => 'string', - 'example' => '+/thing/event/property/post', - ], - 'RuleDesc' => [ - 'description' => '规则的描述信息。', - 'type' => 'string', - 'example' => 'rule1Desc', - ], - 'Name' => [ - 'description' => '规则名称。', - 'type' => 'string', - 'example' => 'test123', - ], - 'Created' => [ - 'description' => '该规则创建时的CST(Central Standard Time)时间。', - 'type' => 'string', - 'example' => 'Wed Feb 27 20:45:43 CST 2019', - ], - 'Id' => [ - 'description' => '规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '151454', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1564B626-DE97-452D-9E9B-305888AC6105\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 2,\\n \\"Total\\": 25,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Modified\\": \\"Wed Feb 27 20:45:43 CST 2019\\",\\n \\"Status\\": \\"STOP\\",\\n \\"DataType\\": \\"JSON\\",\\n \\"Select\\": \\"deviceName() as deviceName\\",\\n \\"UtcCreated\\": \\"2019-02-27T12:40:43.000Z\\",\\n \\"CreateUserId\\": 1231579085000000,\\n \\"Where\\": \\"Temperature>35\\",\\n \\"ProductKey\\": \\"a1KiV******\\",\\n \\"UtcModified\\": \\"2019-02-27T12:45:43.000Z\\",\\n \\"Topic\\": \\"/a1T27vz****/+/thing/event/property/post\\",\\n \\"ShortTopic\\": \\"+/thing/event/property/post\\",\\n \\"RuleDesc\\": \\"rule1Desc\\",\\n \\"Name\\": \\"test123\\",\\n \\"Created\\": \\"Wed Feb 27 20:45:43 CST 2019\\",\\n \\"Id\\": 151454\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n JSON\\n a1T27vz****\\n 198426864326****\\n 2020-02-26T06:38:27.000Z\\n 2020-02-26T02:50:44.000Z\\n Temperature>35\\n testrule2\\n STOP\\n \\n Wed Feb 26 10:50:44 CST 2020\\n Wed Feb 26 14:38:27 CST 2020\\n /a1T27vz****/+/thing/event/property/post\\n 497350\\n \\n\\n1\\n1\\n1A6131EC-7504-4673-B997-DEFC6B363A37\\ntrue\\n5\\n","errorExample":""}]', - 'title' => '分页查询所有规则列表', - 'summary' => '调用该接口分页查询所有规则列表。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'Destination not found', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.DestinationInUsing', 'errorMessage' => 'Destination has been attached to parser', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => '删除解析器的指定数据目的', + 'summary' => '删除解析器的指定数据目的。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListRuleActions' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DetachDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DetachParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'RuleId', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的规则ID。'."\n" - ."\n" - .'您可调用[ListRule](~~69486~~)接口从返回结果中查看**Id**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '10000', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999', 'minimum' => '1', 'example' => '1000'], + ], + [ + 'name' => 'DataSourceId', + 'in' => 'query', + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -26533,154 +16461,150 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '22254BDB-3DC1-4643-8D1B-EE0437EF09A9', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RuleActionList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RuleActionInfo' => [ - 'description' => '调用成功后,返回规则下所有数据目的列表。详细信息,请参见以下**RuleActionInfo**所包含的参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '数据目的对应的操作类型。返回值:'."\n" - ."\n" - .'- **REPUBLISH**:转发到另一个topic。'."\n" - .'- **OTS**:存储到表格存储。'."\n" - .'- **MNS**:发送消息到消息服务。'."\n" - .'- **ONS**:发送数据到消息队列RocketMQ。'."\n" - .'- **TSDB**:存储到时序数据库。'."\n" - .'- **FC**:发送数据到函数计算。'."\n" - .'- **DATAHUB**:发送数据到DataHub中。'."\n" - .'- **RDS**:存储数据到云数据库中。'."\n" - .'- **AMQP**:数据流转到AMQP消费组。'."\n", - 'type' => 'string', - 'example' => 'OTS', - ], - 'Status' => [ - 'description' => '数据目的对应的状态。返回值:'."\n" - .'- **INIT**:初始配置中。'."\n" - .'- **NORMAL**:配置完成,正常可用。'."\n" - .'- **INVALID**:配置存在异常,不可用。'."\n" - .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', - 'type' => 'string', - 'example' => 'NORMAL', - ], - 'Configuration' => [ - 'description' => '数据目的对应的配置信息。', - 'type' => 'string', - 'example' => '{\\"endPoint\\":\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\",\\"instanceName\\":\\"ShanghaiRegion\\",\\"primaryKeys\\":[{\\"columnName\\":\\"temperature\\",\\"columnType\\":\\"INTEGER\\",\\"columnValue\\":\\"${deviceName}\\"}],\\"regionName\\":\\"cn-shanghai\\",\\"role\\":{\\"roleArn\\":\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\",\\"roleName\\":\\"AliyunIOTAccessingOTSRole\\"},\\"tableName\\":\\"iottest\\",\\"uid\\":\\"1231579085******\\"}', - ], - 'ErrorActionFlag' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**:不是转发错误操作数据,而是正常转发操作。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Id' => [ - 'description' => '数据目的对应的操作ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '139099', - ], - 'RuleId' => [ - 'description' => '数据目的对应的规则ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10000', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], + ['errorCode' => 'iot.ruleng.RuleAlreadyIsStarted', 'errorMessage' => 'The specified rule has already started', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'DetachParserDataSource', + 'summary' => '调用该接口删除解析器中的指定数据源。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DetachParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'DisableDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73671995-9588-406B-9C1E-FC38450A2AA1'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"22254BDB-3DC1-4643-8D1B-EE0437EF09A9\\",\\n \\"Success\\": true,\\n \\"RuleActionList\\": {\\n \\"RuleActionInfo\\": [\\n {\\n \\"Type\\": \\"OTS\\",\\n \\"Status\\": \\"NORMAL\\",\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"endPoint\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"instanceName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ShanghaiRegion\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"primaryKeys\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"columnName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columnType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INTEGER\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columnValue\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"${deviceName}\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"regionName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"cn-shanghai\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"role\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"roleArn\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"roleName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AliyunIOTAccessingOTSRole\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"iottest\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"uid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1231579085******\\\\\\\\\\\\\\"}\\",\\n \\"ErrorActionFlag\\": false,\\n \\"Id\\": 139099,\\n \\"RuleId\\": 10000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n OTS\\n 10000\\n 139099\\n NORMAL\\n {\\"endPoint\\":\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\",\\"instanceName\\":\\"ShanghaiRegion\\",\\"primaryKeys\\":[{\\"columnName\\":\\"temperature\\",\\"columnType\\":\\"INTEGER\\",\\"columnValue\\":\\"${deviceName}\\"}],\\"regionName\\":\\"cn-shanghai\\",\\"role\\":{\\"roleArn\\":\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\",\\"roleName\\":\\"AliyunIOTAccessingOTSRole\\"},\\"tableName\\":\\"iottest\\",\\"uid\\":\\"1231579085******\\"}\\n false\\n \\n \\n REPUBLISH\\n 152323\\n 142401\\n NORMAL\\n {\\"topic\\":\\"/sys/a1zSA28H***/device/thing/service/property/set\\",\\"topicType\\":0,\\"uid\\":\\"1231579085******\\"}\\n false\\n \\n\\n22254BDB-3DC1-4643-8D1B-EE0437EF09A9\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定规则下的所有转发数据动作列表', - 'summary' => '调用该接口查询指定规则下的所有转发数据动作列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"73671995-9588-406B-9C1E-FC38450A2AA1\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73671995-9588-406B-9C1E-FC38450A2AA1\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'DisableDeviceTunnel', + 'summary' => '调用该接口关闭网关隧道。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StartRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DisableDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DisableDeviceTunnelShare' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要启动的规则ID。可调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], ], ], 'responses' => [ @@ -26688,92 +16612,64 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '35023CAB-CBED-4A2E-92DF-201C72850B50'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4846-BAB5-D02A25155AC4\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '启动指定的规则', - 'summary' => '调用该接口启动指定的规则。', - 'description' => '## 使用说明'."\n" - .'启动规则前需要确认该规则已经配置了SQL。如果创建规则时没有配置SQL,请调用[UpdateRule](~~69513~~)更新规则,补充SQL配置。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"35023CAB-CBED-4A2E-92DF-201C72850B50\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 35023CAB-CBED-4A2E-92DF-201C72850B50\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'DisableDeviceTunnelShare', + 'summary' => '调用该接口关闭网关隧道分享。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'StopRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DisableDeviceTunnelShare', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DisableSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '要停止的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], ], 'responses' => [ @@ -26781,207 +16677,153 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**表示调用成功。'."\n" - .'- **false**表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '停止指定规则', - 'summary' => '调用该接口停止指定的规则。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '停止场景联动规则', + 'summary' => '停止场景联动规则 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:DisableSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'DisableThing' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要修改的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '100000', - ], + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Select', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '要执行的SQL SELECT语句。具体内容参照[SQL表达式](~~30554~~)。'."\n" - ."\n" - .'> 此处传入的是SELECT下的内容。例如,如果SELECT语句为`SELECT a,b,c`,则此处传入`a,b,c`。', - 'type' => 'string', - 'required' => false, - 'example' => 'deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature', - ], + 'schema' => ['description' => '设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'ShortTopic', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '应用该规则的具体Topic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`是具体设备的名称,`topicShortName`是Topic短名称。'."\n" - ."\n" - .'- 基础通信Topic或物模型通信Topic的ShortTopic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" - ."\n" - .' - `/thing/event/property/post `设备上报的属性消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" - .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" - .' - `/thing/list/found`网关上报发现子设备消息。'."\n" - .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" - .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" - .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" - .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" - .' - `/edge/driver/${driver_id}/point_post`物联网边缘计算的透传模式Topic消息,`${}`中是物联网边缘计算的设备接入驱动ID。'."\n" - ."\n" - .' OTA升级批次状态通知Topic也属于基础通信Topic,ShortTopic格式为:`${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" - .'- 自定义Topic的ShortTopic,如:`${deviceName}/user/get`。'."\n" - ."\n" - .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" - ."\n" - .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" - .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" - .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" - .' 使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" - .'- 设备状态变化通知Topic的ShortTopic:`${deviceName}`。'."\n" - ."\n" - .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。', - 'type' => 'string', - 'required' => false, - 'example' => '+/thing/event/property/post', - ], + 'schema' => ['description' => '要禁用设备的ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], - [ - 'name' => 'Where', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '规则的触发条件。具体内容参照[SQL表达式](~~30554~~)。'."\n" - ."\n" - .'> 此处传入的是WHERE中的内容。例如,如果WHERE语句为`WHERE a>10`,则此处传入`a>10`。', - 'type' => 'string', - 'required' => false, - 'example' => 'Temperature>35', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => '禁用指定设备', + 'summary' => '调用该接口禁用指定设备。', + 'description' => '## 使用说明'."\n" + .'设备被禁用后将不能接入物联网平台,您将无法执行与设备有关的操作,但与设备关联的信息依然保留。您可以调用[EnableThing](~~69603~~)接口重新接入被禁用的设备。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '应用该规则的产品**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'aladaeW****', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:DisableThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'EnableDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '规则名称。支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文或日文占2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test_2', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ [ - 'name' => 'RuleDesc', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '规则的描述信息。长度限制为100个字符,一个中文字符计为1个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TopicType', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '- **0**:**ShortTopic**参数描述中的基础通信Topic或物模型通信Topic,包含OTA升级批次状态通知Topic。'."\n" - .'- **1**:自定义Topic。'."\n" - .'- **2**:设备状态变化通知Topic:`/as/mqtt/status/${productKey}/${deviceName}`。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], ], [ - 'name' => 'Topic', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '待修改规则的完整Topic。'."\n" - ."\n" - .'如果传入此参数,无需再传入参数**ProductKey**、**ShortTopic**和**TopicType**。', - 'type' => 'string', - 'required' => false, - 'example' => '/sys/g18l***/device1/thing/event/property/post', - ], + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], ], ], 'responses' => [ @@ -26989,123 +16831,134 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '577F07AF-7EFE-4B98-AEA2-634ED864BA01'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新规则', - 'summary' => '调用该接口修改指定的规则。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"577F07AF-7EFE-4B98-AEA2-634ED864BA01\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 577F07AF-7EFE-4B98-AEA2-634ED864BA01\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'EnableDeviceTunnel', + 'summary' => '调用该接口开启设备隧道。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateRuleAction' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:EnableDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'EnableDeviceTunnelShare' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ActionId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要修改的规则动作ID。'."\n" - ."\n" - .'调用[CreateRuleAction](~~69586~~)创建规则动作成功后,返回的规则动作ID,您也可以调用[ListRuleActions](~~69517~~),从返回结果中查看对应的规则动作ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1000003', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], ], [ - 'name' => 'Type', + 'name' => 'DeviceName', 'in' => 'query', + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '规则动作类型,取值:'."\n" - ."\n" - .'- **DATAHUB**:流转规则处理后的Topic数据至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:流转规则处理后的Topic数据至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:流转规则处理后的Topic数据至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:流转规则处理后的Topic数据至阿里云函数计算服务,进行事件计算。'."\n" - .'- **REPUBLISH**:流转规则处理后的Topic数据至另一个物联网平台 Topic。'."\n" - .'- **AMQP**:数据流转到AMQP消费组。'."\n" - .'- **OTS**:流转规则处理后的Topic数据至阿里云表格存储,进行NoSQL数据存储。'."\n" - ."\n" - .'> - 数据格式为二进制的规则(即规则的**DataType**参数是**BINARY**)不支持转发数据至OTS(表格存储)。'."\n" - .'- 服务地域不同,规则引擎所支持的数据转发目标云产品不同。具体请参见规则引擎相关[地域和可用区](~~85669~~)。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'REPUBLISH', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '3DB31A1A-BD83-4155-AD2B-56AD041E372C'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"3DB31A1A-BD83-4155-AD2B-56AD041E372C\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3DB31A1A-BD83-4155-AD2B-56AD041E372C\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'EnableDeviceTunnelShare', + 'summary' => '调用该接口开启网关隧道分享。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:EnableDeviceTunnelShare', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'EnableSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Configuration', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '该规则动作的配置信息。不同规则动作类型所需配置内容不同。具体要求,请参见[CreateRuleAction](~~69586~~)的请求参数补充说明中的各规则动作类型的Configuration描述。', - 'type' => 'string', - 'required' => true, - 'example' => '{"topic":"/a1iYSOl****/device5/user/get","topicType":1}', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], ], 'responses' => [ @@ -27113,99 +16966,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改指定的规则动作', - 'summary' => '调用该接口修改指定的规则动作。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '启动场景联动规则', + 'summary' => '启动场景联动规则 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:EnableSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'EnableThing' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Name', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '解析器名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'DataParser', - ], + 'schema' => ['description' => '要解除禁用的设备所属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Description', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '解析器描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => '转发数据。', - ], + 'schema' => ['description' => '要解除禁用的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要解除禁用设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -27213,293 +17048,232 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ParserId' => [ - 'description' => '创建解析器成功,返回的解析器ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100*', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.CreateRuleException', - 'errorMessage' => 'An exception occurred while creating the rule.', - ], - [ - 'errorCode' => 'iot.rule.InvalidRuleName', - 'errorMessage' => 'The rule name is invalid', - ], - [ - 'errorCode' => 'iot.rule.ConnectorCountExceed', - 'errorMessage' => 'The count of parser exceeds the maximum number', - ], - [ - 'errorCode' => 'iot.rule.ConnectorIsAlreadyExisted', - 'errorMessage' => 'The parser name already exists.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"ParserId\\": 0\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\n100*\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateParser', - 'summary' => '调用该接口创建解析器。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => '启用指定设备', + 'summary' => '调用该接口解除指定设备的禁用状态,即启用被禁用的设备。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:EnableThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GenerateDeviceNameListURL' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-8t***', - ], - ], - [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], - [ - 'name' => 'Description', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '解析器描述。', - 'type' => 'string', - 'required' => false, - 'example' => '转发数据。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的文件上传信息。详情见以下参数信息。', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '调用OSS API PostObject上传对象(即文件)的名称,包含OSS对象的完整路径。', 'type' => 'string', 'example' => 'ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv'], + 'Signature' => ['description' => '根据**AccessKeySecret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', 'type' => 'string', 'example' => 'v6lViO4FBvfquajQjg20K5hK****'], + 'Host' => ['description' => 'OSS的接入域名。', 'type' => 'string', 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com'], + 'FileUrl' => ['description' => '文件的URL,即文件在对象存储(OSS)上的存储地址。'."\n" + ."\n" + .'设备列表文件上传成功后,使用此参数调用[CreateOTAStaticUpgradeJob](~~147496~~)接口创建静态批量升级批次。', 'type' => 'string', 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv'], + 'Policy' => ['description' => 'OSS通过该参数验证请求表单域的合法性。', 'type' => 'string', 'example' => 'eyJleHBpcmF****'], + 'ObjectStorage' => ['description' => '对象存储类型。默认为OSS。', 'type' => 'string', 'example' => 'OSS'], + 'UtcCreate' => ['description' => '生成文件上传URL的时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T06:21:54.607Z'], + 'AccessKeyId' => ['description' => 'OSS Bucket拥有者的AccessKeyId。'."\n" + .'该OSS Bucket将存储文件。', 'type' => 'string', 'example' => 'cS8uRRy54Rsz****'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\",\\n \\"FileUrl\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\",\\n \\"AccessKeyId\\": \\"cS8uRRy54Rsz****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n eyJleHBpcmF****\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\n 2019-11-04T06:21:54.607Z\\n cS8uRRy54Rsz****\\n v6lViO4FBvfquajQjg20K5hK****\\n OSS\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\n ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\n \\n 74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\n true\\n","errorExample":""}]', + 'title' => '生成设备文件上传到OSS的详细信息', + 'summary' => '生成设备列表文件上传到OSS的URL及详细信息。', + 'description' => '## 设备列表文件要求'."\n" + ."\n" + .'- 设备列表文件包含设备DeviceName,以换行分隔,每行一个DeviceName。支持CSV格式,文件大小不能超过5 MB。'."\n" + ."\n" + .'- 单个设备列表文件最多可包含升级包对应产品下的10,000个设备,否则使用该文件创建静态升级批次时将报错。'."\n" + ."\n" + .'## 使用说明'."\n" + .'该接口与其他接口结合使用完成设备列表文件上传。上传设备列表文件的步骤:'."\n" + ."\n" + .'1. 调用本接口生成设备列表文件上传到对象存储(OSS)的信息。'."\n" + .'本接口的返回参数包含:'."\n" + .' 调用OSS [PostObject](~~31988~~)上传设备列表文件的请求参数:**Key**、**AccessKeyId**、**Signature**和**Policy**。'."\n" + ."\n" + .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传设备列表文件。上传文件的代码示例,请参见下文返回参数的用途章节。'."\n" + ."\n" + .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传设备列表文件。'."\n" + ."\n" + .'3. 设备列表上传完成后,请在60分钟内,调用物联网平台API [CreateOTAStaticUpgradeJob](~~147496~~)创建静态升级批次。'."\n" + .' 如果上传了设备列表,但未调用CreateOTAStaticUpgradeJob创建静态升级批次,上传的文件将被系统定期自动清理。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => '## 返回参数的用途'."\n" + ."\n" + .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的文件上传到对象存储(OSS)。'."\n" + ."\n" + .'以下是向对象存储OSS上传文件的Java代码示例:'."\n" + ."\n" + .'- 在pom.xml中添加以下依赖:'."\n" + ."\n" + .'```'."\n" + .' org.apache.httpcomponents'."\n" + .' httpclient'."\n" + .' 4.5.3'."\n" + .''."\n" + ."\n" + .''."\n" + .' org.apache.httpcomponents'."\n" + .' httpmime'."\n" + .' 4.5.10'."\n" + .''."\n" + .'```'."\n" + ."\n" + .'- 上传文件的代码如下:'."\n" + ."\n" + .'```public static boolean postObject(String key,'."\n" + .' String host,'."\n" + .' String policy,'."\n" + .' String ossAccessKeyId,'."\n" + .' String signature,'."\n" + .' String data) throws IOException {'."\n" + .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" + .' HttpPost uploadFile = new HttpPost(host);'."\n" + ."\n" + .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" + .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("ossAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" + .' builder.addBinaryBody("file", data.getBytes());'."\n" + ."\n" + .' HttpEntity multipart = builder.build();'."\n" + .' uploadFile.setEntity(multipart);'."\n" + .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" + ."\n" + .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" + .' return true;'."\n" + .' }'."\n" + ."\n" + .' return false;'."\n" + .'}'."\n" + .'```', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'DataParserTwo', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateDeviceNameListURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.UpdateRuleFailed', - 'errorMessage' => 'An error occurred while upgrading the rule.', - ], - [ - 'errorCode' => 'iot.rule.InvalidRuleName', - 'errorMessage' => 'The rule name is invalid', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - [ - 'errorCode' => 'iot.rule.ConnectorIsAlreadyExisted', - 'errorMessage' => 'The parser name already exists.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'UpdateParser', - 'summary' => '调用该接口更新解析器名称和描述。', - 'description' => '## 使用说明'."\n" - .'调用接口[CreateParser](~~429044~~)创建解析器成功后,若有业务需要,您可根据返回的**ParserId**更新对应解析器的名称和描述。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'ListParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GenerateFileUploadURL' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'PageSize', + 'name' => 'FileSuffix', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,最大值不超过100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '10', - ], + 'schema' => ['description' => '文件扩展名。可选:**bin**、**apk**、**tar**、**gz**、**tar.gz**、**zip**、**gzip**。'."\n", 'type' => 'string', 'required' => true, 'example' => 'bin'], ], [ - 'name' => 'SearchName', + 'name' => 'BizCode', 'in' => 'query', - 'schema' => [ - 'description' => '传入解析器名称中任意字符串,根据该字符串检索能匹配的解析器名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'DataParser', - ], + 'schema' => ['description' => '文件所属的业务场景编码。'."\n" + ."\n" + .'设备任务文件使用**DEVICE_JOB_FILE**。', 'type' => 'string', 'required' => true, 'example' => 'DEVICE_JOB_FILE'], ], [ - 'name' => 'CurrentPage', + 'name' => 'FileName', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '文件名称。名称不可包含短划线(-)、英文句号(.)、星号(*)、正斜线(/)、井号(#)、百分号(%)、and(&)、at(@)、反斜线(\\),长度不可超过64个字符。'."\n" + ."\n" + .'如果不传入该参数,系统将为文件自动生成随机字符串作为文件名称。', 'type' => 'string', 'required' => false, 'example' => 'file1'], ], ], 'responses' => [ @@ -27507,168 +17281,165 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Total' => [ - 'description' => '返回结果记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的文件上传信息。详情参见以下参数信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'ParserList' => [ - 'description' => '返回的解析器列表数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '解析器状态。可取值有:'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **STOP**:已停止。'."\n" - .'- **ABNORMAL**:存在异常。', - 'type' => 'string', - 'example' => 'STOP', - ], - 'Description' => [ - 'description' => '解析器描述。', - 'type' => 'string', - 'example' => '转发数据。', - ], - 'UtcModified' => [ - 'description' => '更新解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-25T12:45:43.000Z', - ], - 'Name' => [ - 'description' => '解析器名称。', - 'type' => 'string', - 'example' => 'DataParser', - ], - 'UtcCreated' => [ - 'description' => '创建解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-21T12:45:43.000Z', - ], - 'ParserId' => [ - 'description' => '解析器ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], - ], - ], - ], + 'Key' => ['description' => '调用OSS的PostObject接口上传对象(即文件)的名称,包含OSS对象的完整路径。', 'type' => 'string', 'example' => 'subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix'], + 'OssAccessKeyId' => ['description' => 'OSS Bucket拥有者的AccessKey ID。'."\n" + ."\n" + .'该OSS Bucket将存储文件。', 'type' => 'string', 'example' => 'cS8uRRy54Rsz****'], + 'Signature' => ['description' => '根据**AccessKey Secret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', 'type' => 'string', 'example' => 'v6lViO4FBvfquajQjg20K5hK****'], + 'Host' => ['description' => 'OSS的接入域名。', 'type' => 'string', 'example' => 'https://iotx-bucket-name.oss-***.aliyuncs.com'], + 'Policy' => ['description' => 'OSS通过该参数验证请求表单域的合法性。', 'type' => 'string', 'example' => 'eyJleHBpcmF****'], + 'ObjectStorage' => ['description' => '对象存储类型。默认为OSS。', 'type' => 'string', 'example' => 'OSS'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidPageParams', - 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.QueryRulePageActionError', - 'errorMessage' => 'An error occurred while querying the rule action list across multiple pages.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Total\\": 100,\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ParserList\\": [\\n {\\n \\"Status\\": \\"STOP\\",\\n \\"Description\\": \\"转发数据。\\",\\n \\"UtcModified\\": \\"2022-03-25T12:45:43.000Z\\",\\n \\"Name\\": \\"DataParser\\",\\n \\"UtcCreated\\": \\"2022-03-21T12:45:43.000Z\\",\\n \\"ParserId\\": 1001\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E4C0FF92-2A86-41DB-92D3-73B60310D25E\\r\\n 100\\r\\n \\r\\n \\r\\n STOP\\r\\n 转发数据1。\\r\\n 2022-03-21T12:45:43.000Z\\r\\n 2022-03-25T12:45:43.000Z\\r\\n 1001\\r\\n DataParser1\\r\\n \\r\\n \\r\\n STOP\\r\\n 转发数据2。\\r\\n 2022-03-21T12:50:43.000Z\\r\\n 2022-03-25T12:48:43.000Z\\r\\n 1002\\r\\n DataParser2\\r\\n \\r\\n \\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'ListParser', - 'summary' => '调用该接口查询解析器列表信息,包括解析器基本信息、启动状态、创建时间和修改时间。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix\\",\\n \\"OssAccessKeyId\\": \\"cS8uRRy54Rsz****\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-bucket-name.oss-***.aliyuncs.com\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n eyJleHBpcmF****\\n v6lViO4FBvfquajQjg20K5hK****\\n OSS\\n https://iotx-bucket-name.oss-***.aliyuncs.com\\n cS8uRRy54Rsz****\\n subpath/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.suffix\\n\\ntrue\\n","errorExample":""}]', + 'title' => '生成文件上传到OSS的信息', + 'summary' => '调用该接口生成文件上传到OSS的信息。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'该接口为阿里云物联网平台中,设备管理相关业务通用的文件上传接口,文件上传完成后,请按照对应业务接口的要求传递文件的信息。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', + .'步骤如下:'."\n" + ."\n" + .'1. 调用本接口生成文件上传到对象存储(OSS)的信息。'."\n" + .'本接口的返回参数是调用OSS [PostObject](~~31988~~)上传文件的请求参数,包含**Key**、**OSSAccessKeyId**、**Signature**和**Policy**。'."\n" + ."\n" + .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传文件。上传文件的代码示例,请参见下文“返回参数的用途”。'."\n" + ."\n" + .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传文件。上传的文件大小不能超过1,000 MB。'."\n" + ."\n\n" + .'3. 文件上传完成后,请在60分钟内,调用对应业务接口,否则上传的文件将被系统定期自动清理。'."\n" + ."\n" + .'例如,创建自定义类型的设备任务时,如果需要传入设备文件,请先使用该接口上传文件,再把相关的文件信息作为请求参数,来调用[CreateJob](~~198574~~)接口。'."\n" + .' '."\n" + ."\n" + .'## 限制说明'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '## 返回参数的用途'."\n" + ."\n" + .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的文件上传到对象存储(OSS)。'."\n" + ."\n" + .'关于上传文件的SDK示例,请参见[文件上传](~~84788~~)。'."\n" + ."\n" + .'以下是向对象存储OSS上传文件的Java代码示例。'."\n" + ."\n" + .'- 在pom.xml中添加以下依赖。'."\n" + .'```'."\n" + .' org.apache.httpcomponents'."\n" + .' httpclient'."\n" + .' 4.5.3'."\n" + .''."\n" + ."\n" + .''."\n" + .' org.apache.httpcomponents'."\n" + .' httpmime'."\n" + .' 4.5.10'."\n" + .''."\n" + .'```'."\n" + ."\n" + .'- 上传文件的代码如下。'."\n" + .'```'."\n" + .'public static boolean postObject(String key,'."\n" + .' String host,'."\n" + .' String policy,'."\n" + .' String ossAccessKeyId,'."\n" + .' String signature,'."\n" + .' String data) throws IOException {'."\n" + .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" + .' HttpPost uploadFile = new HttpPost(host);'."\n" + ."\n" + .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" + .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("OSSAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" + .' builder.addBinaryBody("file", data.getBytes());'."\n" + ."\n" + .' HttpEntity multipart = builder.build();'."\n" + .' uploadFile.setEntity(multipart);'."\n" + .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" + ."\n" + .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" + .' return true;'."\n" + .' }'."\n" + ."\n" + .' return false;'."\n" + .'}'."\n" + .'```', 'extraInfo' => ' ', - ], - 'GetParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateFileUploadURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GenerateOTAUploadURL' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ParserId', + 'name' => 'FileSuffix', 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '升级包文件扩展名。可选扩展名:'."\n" + ."\n" + .'- **bin**(默认)'."\n" + .'- **dav**'."\n" + .'- **apk**'."\n" + .'- **tar**'."\n" + .'- **gz**'."\n" + .'- **tar.gz**'."\n" + .'- **zip**'."\n" + .'- **gzip**', 'type' => 'string', 'required' => false, 'example' => 'apk'], ], ], 'responses' => [ @@ -27676,169 +17447,156 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的解析器详细信息。', + 'description' => '调用成功时,返回的文件上传信息。详情见以下参数信息。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '解析器运行状态。可取值:'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **STOP**:已停止。'."\n" - .'- **ABNORMAL**:存在异常。', - 'type' => 'string', - 'example' => 'STOP', - ], - 'Description' => [ - 'description' => '解析器描述。', - 'type' => 'string', - 'example' => '转发数据。', - ], - 'UtcModified' => [ - 'description' => '更新解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-04-27T12:45:43.000Z', - ], - 'DataSourceId' => [ - 'description' => '解析器关联的数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1003', - ], - 'ScriptDraft' => [ - 'description' => '解析器脚本的草稿。', - 'type' => 'string', - 'example' => 'var data = payload("json"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()}); writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});', - ], - 'UtcCreated' => [ - 'description' => '创建解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'Name' => [ - 'description' => '解析器名称。', - 'type' => 'string', - 'example' => 'DataParser', - ], - 'Script' => [ - 'description' => '解析器已发布脚本。', - 'type' => 'string', - 'example' => 'var data = payload("json"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()}); writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});', - ], - 'ParserId' => [ - 'description' => '解析器ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], + 'Key' => ['description' => '调用OSS的接口PostObject上传对象(即文件)的名称,包含OSS对象的完整路径。', 'type' => 'string', 'example' => 'ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin'], + 'OSSAccessKeyId' => ['description' => 'OSS Bucket拥有者的**AccessKey ID**。'."\n" + ."\n" + .'该OSS Bucket将存储文件。', 'type' => 'string', 'example' => 'cS8uRRy54Rsz****'], + 'Signature' => ['description' => '根据**AccessKeySecret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', 'type' => 'string', 'example' => 'v6lViO4FBvfquajQjg20K5hK****'], + 'Host' => ['description' => 'OSS的接入域名。', 'type' => 'string', 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com'], + 'Policy' => ['description' => 'OSS通过该参数验证请求表单域的合法性。', 'type' => 'string', 'example' => 'eyJleHBpcmF****'], + 'ObjectStorage' => ['description' => '对象存储类型。默认为OSS。', 'type' => 'string', 'example' => 'OSS'], + 'FirmwareUrl' => ['description' => '文件的URL,即文件在对象存储(OSS)上的存储地址。'."\n" + ."\n" + .'文件URL的格式为`https://BucketName.Endpoint/ObjectName`。其中,BucketName是Bucket名称,Endpoint是文件访问域名(各地域的Endpoint信息,请参见[访问域名和数据中心](~~31837~~)),ObjectName是包含文件夹以及文件后缀在内的该文件的完整路径。'."\n" + ."\n" + .'升级包文件上传成功后,使用此参数调用[CreateOTAFirmware](~~147311~~)接口创建升级包。', 'type' => 'string', 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin'], + 'UtcCreate' => ['description' => '生成文件上传URL的时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T06:21:54.607Z'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.QueryRuleFailed', - 'errorMessage' => 'An error occurred while querying the rule.', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"STOP\\",\\n \\"Description\\": \\"转发数据。\\",\\n \\"UtcModified\\": \\"2022-04-27T12:45:43.000Z\\",\\n \\"DataSourceId\\": 1003,\\n \\"ScriptDraft\\": \\"var data = payload(\\\\\\"json\\\\\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\\\\\"temperature\\\\\\", t , {\\\\\\"deviceName\\\\\\":deviceName()}); writeTsdb(1000,timestamp(),\\\\\\"humidity\\\\\\", h , {\\\\\\"deviceName\\\\\\":deviceName()});\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataParser\\",\\n \\"Script\\": \\"var data = payload(\\\\\\"json\\\\\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\\\\\"temperature\\\\\\", t , {\\\\\\"deviceName\\\\\\":deviceName()}); writeTsdb(1000,timestamp(),\\\\\\"humidity\\\\\\", h , {\\\\\\"deviceName\\\\\\":deviceName()});\\",\\n \\"ParserId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n STOP\\n \\n 转发数据。\\n 2022-03-27T12:45:43.000Z\\n var data = payload(\\"json\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\"temperature\\", t , {\\"deviceName\\":deviceName()}); writeTsdb(1000,timestamp(),\\"humidity\\", h , {\\"deviceName\\":deviceName()});\\n 2022-04-27T12:45:43.000Z\\n 1001\\n 1003\\n DataParser\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetParser', - 'summary' => '调用该接口查询指定解析器的详细信息,包括解析器基本信息、解析脚本、运行状态和关联的数据源等。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\",\\n \\"OSSAccessKeyId\\": \\"cS8uRRy54Rsz****\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\",\\n \\"FirmwareUrl\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\n eyJleHBpcmF****\\n cS8uRRy54Rsz****\\n OSS\\n 2019-11-04T06:21:54.607Z\\n PKmRTy40QxqIUUWy325SCT/****\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\n \\n B6E77674-09C4-4647-BF85-59CB72A72E4B\\n true\\n","errorExample":""}]', + 'title' => '生成升级包文件URL', + 'summary' => '生成升级包文件上传到OSS的URL及详细信息。', + 'description' => '## 使用说明'."\n" + .'该接口与其他接口结合使用完成升级包创建。创建升级包的步骤:'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'1. 调用本接口生成升级包文件上传到对象存储(OSS)的信息。'."\n" + .'本接口的返回参数包含:'."\n" + .' - 调用OSS [PostObject](~~31988~~)上传升级包文件的请求参数:**Host**、**Key**、**OSSAccessKeyId**、**Signature**和**Policy**。'."\n" + .' - 调用[CreateOTAFirmware](~~147311~~)创建升级包的请求参数**FirmwareUrl**。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', + .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传升级包文件。上传文件的代码示例,请参见下文“返回参数的用途”章节。'."\n" + ."\n" + .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传升级包。上传的升级包文件大小不能超过1,000 MB。'."\n" + .' >'."\n" + ."\n\n" + .'3. 升级包上传完成后,请在60分钟内,调用物联网平台API [CreateOTAFirmware](~~147311~~)接口创建升级包。'."\n" + .' 如果上传了升级包,但未调用CreateOTAFirmware接口创建升级包,上传的文件将被系统定期自动清理。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', + 'responseParamsDescription' => '## 返回参数的用途'."\n" + ."\n" + .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的升级包文件上传到对象存储(OSS)。'."\n" + ."\n" + .'以下是向对象存储OSS上传文件的Java代码示例。示例代码详细内容,请参见[表单上传](~~84788~~)。'."\n" + ."\n" + .'- 在pom.xml中添加以下依赖。'."\n" + .'```'."\n" + .''."\n" + .' org.apache.httpcomponents'."\n" + .' httpclient'."\n" + .' 4.5.3'."\n" + .''."\n" + ."\n" + .''."\n" + .' org.apache.httpcomponents'."\n" + .' httpmime'."\n" + .' 4.5.10'."\n" + .''."\n" + .'```'."\n" + ."\n" + .'- 上传升级包文件的代码如下。'."\n" + .'```'."\n" + .'public static boolean postObject(String key,'."\n" + .' String host,'."\n" + .' String policy,'."\n" + .' String ossAccessKeyId,'."\n" + .' String signature,'."\n" + .' String data) throws IOException {'."\n" + .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" + .' HttpPost uploadFile = new HttpPost(host);'."\n" + ."\n" + .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" + .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("OSSAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" + .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" + .' builder.addBinaryBody("file", data.getBytes());'."\n" + ."\n" + .' HttpEntity multipart = builder.build();'."\n" + .' uploadFile.setEntity(multipart);'."\n" + .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" + ."\n" + .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" + .' return true;'."\n" + .' }'."\n" + ."\n" + .' return false;'."\n" + .'}'."\n" + .'```', 'extraInfo' => ' ', - ], - 'DeleteParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateOTAUploadURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDataAPIServiceDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-1n8t****', - ], + 'name' => 'ApiSrn', + 'in' => 'formData', + 'schema' => ['description' => 'API资源标识符,API的全局唯一标识。 调用**CreateDataAPIService**接口成功创建API,返回的ApiSrn值。'."\n" + ."\n" + .'格式:`acs:iot:*:${aliyunuserID}:serveapi/${ApiPath}`'."\n" + ."\n" + .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" + ."\n" + .'以上示例中的信息说明如下:'."\n" + ."\n" + .'- `127103983461****`是阿里云主账号ID。'."\n" + .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', 'type' => 'string', 'required' => true, 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2'], ], [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -27846,126 +17604,162 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '请求参数错误'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'DisplayName' => ['description' => 'API名称。', 'type' => 'string', 'example' => '根据状态获取设备数'], + 'Status' => ['description' => 'API的状态。'."\n" + ."\n" + .'- 0:可编辑。'."\n" + .'- 1:已测试。'."\n" + .'- 2:已发布。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ApiSrn' => ['description' => 'API资源标识符,API的全局唯一标识。'."\n" + ."\n" + .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" + ."\n" + .'以上示例中的信息说明如下:'."\n" + ."\n" + .'- `127103983461****`是阿里云主账号ID。'."\n" + .'- `/device/getDeviceCountByStatus`是API调用地址的自定义部分。', 'type' => 'string', 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2'], + 'Description' => ['description' => 'API的描述信息。', 'type' => 'string', 'example' => '描述'], + 'CreateTime' => ['description' => 'API的创建时间,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557839468865'], + 'LastUpdateTime' => ['description' => 'API的最后更新时间,单位为毫秒(ms)。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557839468865'], + 'RequestMethod' => ['description' => '请求方式。', 'type' => 'string', 'example' => 'GET/POST'], + 'DateFormat' => ['description' => '返回类型行。', 'type' => 'string', 'example' => 'JSON'], + 'RequestProtocol' => ['description' => '协议类型。', 'type' => 'string', 'example' => 'HTTPS'], + 'ApiPath' => ['description' => 'API调用地址的自定义部分。', 'type' => 'string', 'example' => '/device/getDeviceCountByStatus'], + 'SqlTemplateDTO' => [ + 'description' => 'SQL模板信息。'."\n" + ."\n" + .'调用成功时,返回的SQL模板数据。详情参见下表SqlTemplateDTO。', + 'type' => 'object', + 'properties' => [ + 'OriginSql' => ['description' => 'API对应的原始SQL。', 'type' => 'string', 'example' => 'SELECT COUNT(*) FROM ${system.device} WHERE status = 1'], + 'TemplateSql' => ['description' => '原始SQL的模板化SQL。', 'type' => 'string', 'example' => 'SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}'], + 'RequestParams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RequestParams' => [ + 'description' => '调用API的请求参数列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', 'type' => 'string', 'example' => 'INTEGER'], + 'Required' => ['description' => '该参数是否必填。'."\n" + ."\n" + .'- true:必填。'."\n" + ."\n" + .'- false:非必填。'."\n" + ."\n" + .'默认值为true。', 'type' => 'boolean', 'example' => 'true'], + 'Example' => ['description' => '参数值示例。', 'type' => 'string', 'example' => '0'], + 'Name' => ['description' => '请求参数名称。', 'type' => 'string', 'example' => 'status'], + 'Desc' => ['description' => '参数描述。', 'type' => 'string', 'example' => '设备状态'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'ResponseParams' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ResponseParams' => [ + 'description' => 'API的响应参数列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', 'type' => 'string', 'example' => 'INTEGER'], + 'Required' => ['description' => '该参数是否必填。'."\n" + ."\n" + .'- true:必填。'."\n" + ."\n" + .'- false:非必填。'."\n" + ."\n" + .'返回参数中,无需配置该参数。', 'type' => 'boolean', 'example' => 'true'], + 'Example' => ['description' => '参数值示例。', 'type' => 'string', 'example' => '100'], + 'Name' => ['description' => '返回参数名称。', 'type' => 'string', 'example' => 'deviceCount'], + 'Desc' => ['description' => '参数描述。', 'type' => 'string', 'example' => '设备数'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.DeleteRuleFailed', - 'errorMessage' => 'An error occurred while deleting the rule.', - ], - [ - 'errorCode' => 'iot.ruleng.RuleAlreadyIsStarted', - 'errorMessage' => 'The specified rule has already started', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteParser', - 'summary' => '调用该接口删除解析器。', - 'description' => '## 使用说明'."\n" - .'调用接口[CreateParser](~~429044~~)创建解析器成功后,若有业务需要,您可根据返回的**ParserId**删除对应解析器。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"请求参数错误\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DisplayName\\": \\"根据状态获取设备数\\",\\n \\"Status\\": 1,\\n \\"ApiSrn\\": \\"acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\",\\n \\"Description\\": \\"描述\\",\\n \\"CreateTime\\": 1557839468865,\\n \\"LastUpdateTime\\": 1557839468865,\\n \\"RequestMethod\\": \\"GET/POST\\",\\n \\"DateFormat\\": \\"JSON\\",\\n \\"RequestProtocol\\": \\"HTTPS\\",\\n \\"ApiPath\\": \\"/device/getDeviceCountByStatus\\",\\n \\"SqlTemplateDTO\\": {\\n \\"OriginSql\\": \\"SELECT COUNT(*) FROM ${system.device} WHERE status = 1\\",\\n \\"TemplateSql\\": \\"SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}\\",\\n \\"RequestParams\\": {\\n \\"RequestParams\\": [\\n {\\n \\"Type\\": \\"INTEGER\\",\\n \\"Required\\": true,\\n \\"Example\\": \\"0\\",\\n \\"Name\\": \\"status\\",\\n \\"Desc\\": \\"设备状态\\"\\n }\\n ]\\n },\\n \\"ResponseParams\\": {\\n \\"ResponseParams\\": [\\n {\\n \\"Type\\": \\"INTEGER\\",\\n \\"Required\\": true,\\n \\"Example\\": \\"100\\",\\n \\"Name\\": \\"deviceCount\\",\\n \\"Desc\\": \\"设备数\\"\\n }\\n ]\\n }\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n \\r\\n acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\r\\n 1557839468865\\r\\n 1557839468865\\r\\n 1\\r\\n 根据状态获取设备数\\r\\n /device/getDeviceCountByStatus\\r\\n 描述\\r\\n \\r\\n SELECT COUNT(*) FROM ${system.device} WHERE status = 1\\r\\n SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}\\r\\n \\r\\n status\\r\\n INTEGER\\r\\n 设备状态\\r\\n 0\\r\\n true\\r\\n \\r\\n \\r\\n deviceCount\\r\\n INTEGER\\r\\n 设备数\\r\\n 100\\r\\n \\r\\n \\r\\n \\r\\n","errorExample":""}]', + 'title' => '获取数据算法服务API详情', + 'summary' => '调用该接口获取数据算法服务API详情。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDataAPIServiceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-w2****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '数据源名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'DataSource', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'Description', + 'name' => 'DestinationId', 'in' => 'query', - 'schema' => [ - 'description' => '数据源描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => '设备数据。', - ], + 'schema' => ['description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999', 'minimum' => '0', 'example' => '1004'], ], ], 'responses' => [ @@ -27973,170 +17767,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DataSource' => [ - 'description' => '创建数据源成功后,返回的数据源信息。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Destination' => [ + 'description' => '返回的数据目的信息。', 'type' => 'object', 'properties' => [ - 'UtcCreated' => [ - 'description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'Name' => [ - 'description' => '数据源名称。', - 'type' => 'string', - 'example' => 'DataSource', - ], - 'Description' => [ - 'description' => '数据源描述信息。', - 'type' => 'string', - 'example' => '设备数据。', - ], - 'DataSourceId' => [ - 'description' => '数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], + 'Status' => ['description' => '数据目的对应的状态。返回值:'."\n" + ."\n" + .'- **INIT**:初始配置中。'."\n" + .'- **NORMAL**:配置完成,正常可用。'."\n" + .'- **INVALID**:配置存在异常,不可用。'."\n" + .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', 'type' => 'string', 'example' => 'NORMAL'], + 'Type' => ['description' => '数据目的的操作类型。'."\n" + ."\n" + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'string', 'example' => 'REPUBLISH'], + 'DestinationId' => ['description' => '数据目的ID。', 'type' => 'string', 'example' => '1003'], + 'Configuration' => ['description' => '数据目的对应的配置信息。', 'type' => 'string', 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + 'Name' => ['description' => '数据目的名称。', 'type' => 'string', 'example' => 'DataPurpose'], + 'UtcCreated' => ['description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'IsFailover' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'false'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.CreateRuleException', - 'errorMessage' => 'An exception occurred while creating the rule.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceCountExceed', - 'errorMessage' => 'The count of data source exceeds the maximum number', - ], - [ - 'errorCode' => 'iot.rule.DataSourceExists', - 'errorMessage' => 'Same datasource is existed', - ], - [ - 'errorCode' => 'iot.rule.InvalidDataSourceName', - 'errorMessage' => 'The data source name is invalid', - ], - [ - 'errorCode' => 'iot.common.TooManyRequest', - 'errorMessage' => 'Request frequency is too high', - ], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'destination not found', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"DataSource\\": {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"DataSourceId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\ntrue\\n\\n 设备数据。\\n 2022-03-27T12:45:43.000Z\\n 1001\\n DataSource\\n\\n","errorExample":""}]', - 'title' => 'CreateParserDataSource', - 'summary' => '调用该接口创建待流转的数据源。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Destination\\": {\\n \\"Status\\": \\"NORMAL\\",\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": \\"1003\\",\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1003\\n DataPurpose\\n\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'GetDestination', + 'summary' => '调用该接口查询指定数据目的详细信息。', 'description' => '## QPS限制'."\n" ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDeviceShadow' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'DataSourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Name', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '数据源名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'DataSource', - ], + 'schema' => ['description' => '要查询的设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1T27vz****'], ], [ - 'name' => 'Description', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '数据源描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => '设备数据。', - ], + 'schema' => ['description' => '要查询的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'device1'], ], ], 'responses' => [ @@ -28144,146 +17881,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A56E345A-0978-4993-ACBA-3EF444ED187F'], + 'ShadowMessage' => ['description' => '调用成功时,返回的设备影子信息。'."\n" + ."\n" + .'> 根据影子设备的不同状态,查询到的影子信息结构有所差别,详情请参见[设备影子开发](~~53930~~)。'."\n", 'type' => 'string', 'example' => '{"method":"update","state":{"desired":{"color":"green"}},"version":1}'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.UpdateRuleFailed', - 'errorMessage' => 'An error occurred while upgrading the rule.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', - ], - [ - 'errorCode' => 'iot.rule.DataSourceExists', - 'errorMessage' => 'Same datasource is existed', - ], - [ - 'errorCode' => 'iot.rule.InvalidDataSourceName', - 'errorMessage' => 'The data source name is invalid', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => '更新解析器的数据源', - 'summary' => '更新解析器的数据源。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用接口[CreateParserDataSource](~~433011~~)创建数据源成功后,若有业务需要,您可根据返回的**DataSourceId**更新对应数据源的名称和描述。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A56E345A-0978-4993-ACBA-3EF444ED187F\\",\\n \\"ShadowMessage\\": \\"{\\\\\\"method\\\\\\":\\\\\\"update\\\\\\",\\\\\\"state\\\\\\":{\\\\\\"desired\\\\\\":{\\\\\\"color\\\\\\":\\\\\\"green\\\\\\"}},\\\\\\"version\\\\\\":1}\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA56E345A-0978-4993-ACBA-3EF444ED187F\\n{\\"method\\":\\"update\\",\\"state\\":{\\"desired\\":{\\"color\\":\\"green\\"}},\\"version\\":1}\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的影子信息', + 'summary' => '调用该接口查询指定设备的影子信息。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceShadow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDeviceStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,默认值为10,最大值不超过100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - ], + 'schema' => ['description' => '设备所属产品的ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'SearchName', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '传入数据源名称中任意字符串,根据该字符串检索能匹配的数据源名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'DataSource', - ], + 'schema' => ['description' => '设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'Page', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,默认值为1,取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '999999', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -28291,161 +17969,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '返回结果记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Page' => [ - 'description' => '显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回设备状态信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'DataSource' => [ - 'description' => '返回的数据源列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'UtcCreated' => [ - 'description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'Name' => [ - 'description' => '数据源名称。', - 'type' => 'string', - 'example' => 'DataSource', - ], - 'Description' => [ - 'description' => '数据源描述信息。', - 'type' => 'string', - 'example' => '设备数据。', - ], - 'DataSourceId' => [ - 'description' => '数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], - ], - ], - ], + 'Status' => ['description' => '设备状态。取值:'."\n" + .'- **ONLINE**:设备在线。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'Timestamp' => ['description' => '设备状态变更时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557062301656'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DataSource\\": [\\n {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"DataSourceId\\": 1001\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 设备1数据。\\n 2022-03-27T12:45:43.000Z\\n 1001\\n DataSource1\\n \\n \\n 设备2数据。\\n 2022-04-27T12:45:43.000Z\\n 1002\\n DataSource2\\n \\n\\n10\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n100\\n1\\ntrue\\n","errorExample":""}]', - 'title' => '查询解析器数据源列表', - 'summary' => '查询解析器数据源列表。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"Timestamp\\": 1557062301656\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n ONLINE\\n 1557062301656\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查看指定设备的运行状态', + 'summary' => '调用该接口查看指定设备的运行状态。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetDeviceTunnelShareStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DataSourceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], ], ], 'responses' => [ @@ -28453,144 +18052,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DataSource' => [ - 'description' => '返回的数据源详细信息。', + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'ACC1D51C-1A58-440E-92A7-71AB61C6595A'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的信息。', 'type' => 'object', 'properties' => [ - 'UtcCreated' => [ - 'description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'Description' => [ - 'description' => '数据源描述信息。', - 'type' => 'string', - 'example' => '设备数据。', - ], - 'Name' => [ - 'description' => '数据源名称。', - 'type' => 'string', - 'example' => 'DataSource', - ], - 'CreateUserId' => [ - 'description' => '创建数据源的用户ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '11111111000000111', - ], - 'DataSourceId' => [ - 'description' => '数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1001', - ], + 'ShareId' => ['description' => '隧道分享ID。'."\n" + ."\n" + .'> 当**IsOpen**的值为**false**时,此处为空。', 'type' => 'string', 'example' => '18f72f95cad34ca3aeabeeefcb******'], + 'Password' => ['description' => '隧道分享密码。'."\n" + ."\n" + .'> 当**IsOpen**的值为**false**时,此处为空。', 'type' => 'string', 'example' => '848bbfa0e9a31e579502869920b4d4c********'], + 'GmtOpened' => ['description' => '开启隧道分享的Unix时间戳。'."\n" + ."\n" + .'> 当**IsOpen**的值为**false**时,此处为空。', 'type' => 'integer', 'format' => 'int64', 'example' => '1617941371000'], + 'IsOpen' => ['description' => '是否已开启隧道分享:'."\n" + .'- **true**:表示已开启。'."\n" + .'- **false**:表示未开启。', 'type' => 'boolean', 'example' => 'true'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"ACC1D51C-1A58-440E-92A7-71AB61C6595A\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ShareId\\": \\"18f72f95cad34ca3aeabeeefcb******\\",\\n \\"Password\\": \\"848bbfa0e9a31e579502869920b4d4c********\\",\\n \\"GmtOpened\\": 1617941371000,\\n \\"IsOpen\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ACC1D51C-1A58-440E-92A7-71AB61C6595A\\r\\n \\r\\n 1617941371000\\r\\n 18f72f95cad34ca3aeabeeefcb******\\r\\n 848bbfa0e9a31e579502869920b4d4c********\\r\\n true\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'GetDeviceTunnelShareStatus', + 'summary' => '调用该接口获取网关隧道的分享状态。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceTunnelShareStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"DataSource\\": {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"CreateUserId\\": 11111111000000112,\\n \\"DataSourceId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n\\n 设备数据。\\n 2022-03-27T12:45:43.000Z\\n 11111111000000112\\n 1001\\n DataSource\\n\\n","errorExample":""}]', - 'title' => 'GetParserDataSource', - 'summary' => '调用该接口查询指定数据源的详细信息。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DeleteParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetDeviceTunnelStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DataSourceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1kqtIX****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的网关设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], ], ], 'responses' => [ @@ -28598,209 +18142,240 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'Data' => ['description' => '调用成功时,返回的数据:'."\n" + .'- **online**:表示网关隧道已开启。'."\n" + .'- **offline**:表示网关隧道已关闭。', 'type' => 'string', 'example' => 'online'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.DeleteRuleFailed', - 'errorMessage' => 'An error occurred while deleting the rule.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', - ], - [ - 'errorCode' => 'iot.rule.DataSourceBounded', - 'errorMessage' => 'data source has been bounded. unbound it first', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Data\\": \\"online\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4\\r\\n online\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'GetDeviceTunnelStatus', + 'summary' => '调用该接口查询网关设备的隧道状态。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceTunnelStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteParserDataSource', - 'summary' => '调用该接口删除已创建的数据源。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用接口[CreateParserDataSource](~~433011~~)创建数据源成功后,若有业务需要,您可根据返回的**DataSourceId**删除对应数据源。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'CreateDataSourceItem' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetDownloadFile' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ + [ + 'name' => 'Context', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => '请求内容。', 'type' => 'object', 'required' => false, 'example' => '{"xxx";xxx}'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t***', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-npk1u******'], ], [ - 'name' => 'DataSourceId', + 'name' => 'LongJobId', 'in' => 'query', + 'schema' => ['description' => '创建下载任务时返回的长任务ID,请参见[CreateDownloadDataJob](~~445782~~)中的**LongJobId**参数。', 'type' => 'string', 'required' => true, 'example' => '62d949808bc742187xxxxxx'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '0', - 'example' => '1002', + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'no authorization.'], + 'RequestId' => ['description' => '请求ID,阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09934****'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '数据。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '下载任务的执行状态。'."\n" + .'- **-1**:初始化中。'."\n" + .'- **0**:运行中。'."\n" + .'- **1**:执行成功。'."\n" + .'- **2**:执行失败。'."\n" + .'- **3**:已提交,等待中。'."\n" + .'- **4**:已取消。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'LongJobId' => ['description' => '下载任务的ID。', 'type' => 'string', 'example' => '62d949808bc742187xxxxxx'], + 'BeginTime' => ['description' => '下载任务的开始时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1658406464534'], + 'AsyncExecute' => ['description' => '是否是异步查询。'."\n" + .'- **true**:是异步查询。'."\n" + .'- **false**:不是异步查询,是同步查询。', 'type' => 'boolean', 'example' => 'true'], + 'TotalCount' => ['description' => '总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'EndTime' => ['description' => '下载任务的结束时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1658406465000'], + 'PreviewSize' => ['description' => '预览大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageNo' => ['description' => '分页页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '分页大小。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'CsvUrl' => ['description' => 'OSS文件的下载地址。(有效期5分钟)', 'type' => 'string', 'example' => 'https://xxxxx-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761BxxxxxxxxAAA0BF03D32C80E/62da39b9xxxxxx5a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D'], + 'CsvFileName' => ['description' => 'CSV文件名称。', 'type' => 'string', 'example' => 'test_download_flie'], + 'DatasetId' => ['description' => '下载对象ID。', 'type' => 'string', 'example' => 'xxxxxx'], + 'ResultDataInString' => ['description' => '查询执行结果。', 'type' => 'string', 'example' => '{"a":123}'], + 'Header' => [ + 'description' => '字段信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TypeClass' => ['description' => '类型。', 'type' => 'string', 'example' => 'date'], + 'FieldName' => ['description' => '字段名。', 'type' => 'string', 'example' => 'user_name'], + 'GeoClass' => ['description' => '地理信息。', 'type' => 'string', 'example' => '{xxx:xxxx}'], + 'FieldType' => ['description' => '字段数据类型。', 'type' => 'string', 'example' => 'INTEGER'], + 'TimeClass' => ['description' => '时间维度。', 'type' => 'string', 'example' => 'HOUR/DAY/MONTH'], + 'DimDateClass' => ['description' => '调度类型。', 'type' => 'string', 'example' => 'DAY'], + 'Alias' => ['description' => '字段别名。', 'type' => 'string', 'example' => 'user_name_alias'], + ], + 'description' => '', + ], + ], + 'Result' => [ + 'description' => '执行结果。', + 'type' => 'array', + 'items' => ['type' => 'object', 'example' => '{"a":123}', 'description' => ''], + ], + 'QuerySetting' => [ + 'description' => '查询请求信息。', + 'type' => 'object', + 'properties' => [ + 'SelectedHeaders' => [ + 'description' => '查询字段列表。', + 'type' => 'array', + 'items' => [ + 'description' => '字段信息。', + 'type' => 'object', + 'properties' => [ + 'FieldName' => ['description' => '字段名。', 'type' => 'string', 'example' => 'user_name'], + 'GeoClass' => ['description' => '地理信息。', 'type' => 'string', 'example' => '{xxx:xxx}'], + 'FieldType' => ['description' => '字段数据类型。', 'type' => 'string', 'example' => 'INTEGER'], + 'TimeClass' => ['description' => '日期维度。', 'type' => 'string', 'example' => 'HOUR/DAY/MONTH'], + 'Alias' => ['description' => '字段别名。', 'type' => 'string', 'example' => 'user_name_alias'], + 'DimDateClass' => ['description' => '调度类型。', 'type' => 'string', 'example' => 'DAY'], + ], + ], + ], + 'AstExpr' => [ + 'description' => '查询条件。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExprType' => ['description' => '表达式类型。', 'type' => 'string', 'example' => 'binaryOp'], + 'Expr' => ['description' => '表达式内容。', 'type' => 'string', 'example' => '{"header":{"fieldName":"xxx"},"operator":"GreaterThanOrEqual","value":12345}'], + ], + 'description' => '', + ], + ], + ], + ], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.serverError', 'errorMessage' => 'server hsf error please try later', 'description' => '后端HSF服务错误,请稍后重试'], + ['errorCode' => 'iot.dap.insight.downloadTaskNumUpperLimit', 'errorMessage' => 'the number of downloaded tasks exceeded the upper limit', 'description' => '当天运行的下载任务超过上限'], + ['errorCode' => 'iot.dap.insight.downloadTimesUpperLimit', 'errorMessage' => 'the number of current job downloaded tasks exceeded the upper limit', 'description' => '当前任务当天下载次数超过上限'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"no authorization.\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09934****\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 1,\\n \\"LongJobId\\": \\"62d949808bc742187xxxxxx\\",\\n \\"BeginTime\\": 1658406464534,\\n \\"AsyncExecute\\": true,\\n \\"TotalCount\\": 100,\\n \\"EndTime\\": 1658406465000,\\n \\"PreviewSize\\": 100,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"CsvUrl\\": \\"https://xxxxx-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761BxxxxxxxxAAA0BF03D32C80E/62da39b9xxxxxx5a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D\\",\\n \\"CsvFileName\\": \\"test_download_flie\\",\\n \\"DatasetId\\": \\"xxxxxx\\",\\n \\"ResultDataInString\\": \\"{\\\\\\"a\\\\\\":123}\\",\\n \\"Header\\": [\\n {\\n \\"TypeClass\\": \\"date\\",\\n \\"FieldName\\": \\"user_name\\",\\n \\"GeoClass\\": \\"{xxx:xxxx}\\",\\n \\"FieldType\\": \\"INTEGER\\",\\n \\"TimeClass\\": \\"HOUR/DAY/MONTH\\",\\n \\"DimDateClass\\": \\"DAY\\",\\n \\"Alias\\": \\"user_name_alias\\"\\n }\\n ],\\n \\"Result\\": [\\n {\\n \\"a\\": 123\\n }\\n ],\\n \\"QuerySetting\\": {\\n \\"SelectedHeaders\\": [\\n {\\n \\"FieldName\\": \\"user_name\\",\\n \\"GeoClass\\": \\"{xxx:xxx}\\",\\n \\"FieldType\\": \\"INTEGER\\",\\n \\"TimeClass\\": \\"HOUR/DAY/MONTH\\",\\n \\"Alias\\": \\"user_name_alias\\",\\n \\"DimDateClass\\": \\"DAY\\"\\n }\\n ],\\n \\"AstExpr\\": [\\n {\\n \\"ExprType\\": \\"binaryOp\\",\\n \\"Expr\\": \\"{\\\\\\"header\\\\\\":{\\\\\\"fieldName\\\\\\":\\\\\\"xxx\\\\\\"},\\\\\\"operator\\\\\\":\\\\\\"GreaterThanOrEqual\\\\\\",\\\\\\"value\\\\\\":12345}\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n true\\n download_file_name\\n https://insight-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761B2617454C9C9AAA0BF03D32C80E/62da39b9a48f865a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D\\n 62d949808bc742187xxxxxx\\n 1\\n \\n 41CF72F4-63C1-1EBA-8590-89D0F0CD298A\\n true\\n","errorExample":""}]', + 'title' => 'GetDownloadFile', + 'summary' => '调用该接口获取数据表数据下载任务的执行结果。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 单个下载任务的下载链接一天内只能获取3次。'."\n" + .'- 下载链接的有效期为5分钟。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Topic', - 'in' => 'query', - 'schema' => [ - 'description' => '应用到规则引擎的具体Topic,格式一般为:`/${productKey}/${deviceName}/topicShortName`。其中,`${productKey}`是设备所属产品的**ProductKey**,`${deviceName}`是具体设备的名称,`topicShortName`是Topic剩余部分。'."\n" - ."\n" - .'- 基础通信Topic或物模型通信Topic的格式一般为:`/${productKey}/${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" - ."\n" - .' - `/thing/event/property/post `设备上报的属性消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" - .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" - .' - `/thing/list/found`网关上报发现子设备消息。'."\n" - .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" - .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" - .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" - .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" - .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" - .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" - ."\n" - .' OTA升级批次状态通知Topic也属于基础通信Topic,格式为:`/${productKey}/${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" - .'- 自定义消息Topic为:`/${productKey}/${deviceName}/user/#`,如:`/${productKey}/${deviceName}/user/get`。'."\n" - ."\n" - .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" - ."\n" - .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" - .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" - .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" - .' '."\n" - .'- 设备状态变化通知Topic为:`/as/mqtt/status/${productKey}/${deviceName}`。'."\n" - ."\n" - .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。'."\n" - ."\n" - .'使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" - ."\n" - .'Topic数据格式的详细说明,请参见[数据格式](~~73736~~)。'."\n" - ."\n" - .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,仅支持自定义的消息Topic、设备状态变化通知Topic和设备生命周期变更Topic。自定义的消息Topic说明,请参见消息通信说明。若输入自定义的消息Topic,需同时传入**ScopeType**和**ProductKey**。若**ScopeType**为**DEVICE**,还需传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '/as/mqtt/status/gy***z/+', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDownloadFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'GetEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义的消息Topic所属产品的**ProductKey**。'."\n" - ."\n" - .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,必须设置此参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'gy***z', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义的消息Topic所属的设备名称。'."\n" - ."\n" - .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,**scopeType**为**DEVICE**时,必须设置此参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'ScopeType', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '自定义的消息Topic订阅的作用域,可取值:'."\n" - ."\n" - .'- **PRODUCT **:产品维度,表示作用在产品下的所有设备上。即需同时传入**ProductKey**。'."\n" - .'- **DEVICE **:设备维度,表示作用在产品下指定的设备上。即需同时传入**DeviceName**。'."\n" - ."\n" - .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,必须设置此参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'PRODUCT', - 'enum' => [ - 'PRODUCT', - 'DEVICE', - ], - ], + 'schema' => ['description' => '驱动版本号。', 'type' => 'string', 'required' => true, 'example' => '1.2.0'], ], ], 'responses' => [ @@ -28808,171 +18383,241 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '6ECE664B-E670-47BA-A6AD-62B9F35E3A7B'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'ConfigCheckRule' => ['description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" + ."\n" + .'参数说明如下。'."\n" + ."\n" + .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" + .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。', 'type' => 'string', 'example' => '{\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => 'fec565038d7544978d9aed5c1a******'], + 'EdgeVersion' => ['description' => '驱动适配的边缘版本。', 'type' => 'string', 'example' => '2.0.0'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'VersionState' => ['description' => '驱动版本状态。'."\n" + ."\n" + .'- 0:表示该版本未发布。'."\n" + .'- 1:表示该版本已发布。', 'type' => 'string', 'example' => '0'], + 'ContainerConfig' => ['description' => '容器配置。JSON格式字符串,参数说明,请参见本文下方ContainerConfig表格。', 'type' => 'string', 'example' => '{\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}'], + 'Description' => ['description' => '驱动描述。', 'type' => 'string', 'example' => 'Led驱动'], + 'DriverConfig' => ['description' => '驱动配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"format":"JSON","content":"{}"}`'."\n" + ."\n" + .'参数说明如下所示。'."\n" + ."\n" + .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" + .'- content:配置内容。format为KV或JSON时,此处为配置内容;format为FILE时,此处为OSS地址。 ', 'type' => 'string', 'example' => '[{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]'], + 'DriverVersion' => ['description' => '驱动版本号。', 'type' => 'string', 'example' => '1.2.0'], + 'Argument' => ['description' => 'JVM(Java Virtual Machine)启动参数。', 'type' => 'string', 'example' => '-XX:+PrintGCDetails'], + 'SourceConfig' => ['description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"ossAddress":"http://***/driver_code.zip","temporaryOssAddress":"http://***/driver_code.zip?Expires***"}`'."\n" + ."\n" + .'其中,`ossAddress`为对象存储(OSS)访问地址,`temporaryOssAddress`为可以直接下载的临时链接,有效期5分钟。', 'type' => 'string', 'example' => '{\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zfg******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires\\u003d1575******\\u0026OSSAccessKeyId\\u003daS4MT0IYrP******\\u0026Signature\\u003dm6cpmcaB8rm3YfbkhTYgb0******\\"}'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.common.QueryProductActionError', - 'errorMessage' => 'query product info fail', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'data source not exist', - ], - [ - 'errorCode' => 'iot.rule.ItemExceedsLimit', - 'errorMessage' => 'item exceeds limit', - ], - [ - 'errorCode' => 'iot.rule.DataSourceItemExists', - 'errorMessage' => 'data source item exist', - ], - [ - 'errorCode' => 'iot.common.TooManyRequest', - 'errorMessage' => 'Request frequency is too high', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateDataSourceItem', - 'summary' => '调用该接口为规则引擎中数据源添加Topic。', - 'description' => '## 使用说明'."\n" - .'调用该接口前,请先创建数据源,具体操作,请参见[创建数据源的步骤1~步骤6](~~270932~~);然后在物联网平台控制台对应实例下**消息转发 > 云产品流转**页面的**数据源**页签,查看**数据源ID**。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"6ECE664B-E670-47BA-A6AD-62B9F35E3A7B\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"ConfigCheckRule\\": \\"{\\\\\\\\\\\\\\"deviceConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false},\\\\\\\\\\\\\\"driverConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false}}\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"EdgeVersion\\": \\"2.0.0\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"VersionState\\": \\"0\\",\\n \\"ContainerConfig\\": \\"{\\\\\\\\\\\\\\"devMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"hostNetworkMode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"portMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"privileged\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"volumeMappings\\\\\\\\\\\\\\":[]}\\",\\n \\"Description\\": \\"Led驱动\\",\\n \\"DriverConfig\\": \\"[{\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"defaultConfig\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this is default driver config demo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"format\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"JSON\\\\\\\\\\\\\\"}]\\",\\n \\"DriverVersion\\": \\"1.2.0\\",\\n \\"Argument\\": \\"-XX:+PrintGCDetails\\",\\n \\"SourceConfig\\": \\"{\\\\\\\\\\\\\\"ossAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zfg******.zip\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"temporaryOssAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires\\\\\\\\u003d1575******\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYrP******\\\\\\\\u0026Signature\\\\\\\\u003dm6cpmcaB8rm3YfbkhTYgb0******\\\\\\\\\\\\\\"}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 6ECE664B-E670-47BA-A6AD-62B9F35E3A7B\\r\\n \\r\\n {\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}\\r\\n 2019-12-01 22:28:01\\r\\n fec565038d7544978d9aed5c1a******\\r\\n Led驱动\\r\\n 1.2.0\\r\\n {\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires=1575******&OSSAccessKeyId=aS4MT0IYrPSPj6******;Signature=m6cpmcaB8rm3YfbkhTYgb0W******\\"}\\r\\n 2019-12-01 22:28:01\\r\\n [{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]\\r\\n 2.0.0\\r\\n {\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}\\r\\n 0\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询驱动某一版本的信息', + 'summary' => '查询驱动某一版本的信息。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'>对于开源MQTT托管形态产品和设备,及MQTT云网关产品和设备,**Topic**为自定义的消息Topic时,必须传入**ScopeType**和**ProductKey**。若**ScopeType**为**DEVICE**,还需传入**DeviceName**。'."\n" - .'>'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。 ', + 'responseParamsDescription' => ' **ContainerConfig参数说明**'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| privileged | Integer | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" + .'| hostNetworkMode | Integer | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" + .'| portMappings | List | 网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" + .'| devMappings | List | 设备映射。格式请参考本文下方devMappings表格。 |'."\n" + .'| volumeMappings | List | 卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', + .'
**portMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPort | Integer | 宿主机端口。 |'."\n" + .'| containerPort | Integer | 容器内端口。 |'."\n" + .'| protocol | Integer | 协议类型。取值有tcp和udp两种。 |'."\n" + ."\n\n" + .'**devMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPath | String | 设备名称。 |'."\n" + .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" + .'| comment | String | 注释信息。 |'."\n" + ."\n\n" + .'**volumeMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPath | String | 源路径。 |'."\n" + .'| containerPath | String | 目的路径。 |'."\n" + .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|', 'extraInfo' => ' ', - ], - 'ListDataSourceItem' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t***', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'InstanceId', 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '16645053-546B-4D7C-832E-E519B0E23CF1'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建边缘实例的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '边缘实例授权类型。'."\n" + ."\n" + .'- 0:自有实例'."\n" + ."\n" + .'- 1:授权实例', 'type' => 'string', 'example' => '0'], + 'RoleArn' => ['description' => '授权角色的全局资源描述符。', 'type' => 'string', 'example' => 'acs:ram::1473922805******:role/aliyuniotaccessingfcrole'], + 'Spec' => ['description' => '产品规格。'."\n" + ."\n" + .'- 10:轻量版。'."\n" + .'- 20:标准版。'."\n" + .'- 30:专业版。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'RoleAttachTime' => ['description' => '角色绑定时间。', 'type' => 'string', 'example' => '2020-02-19 11:25:48'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新边缘实例的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Tags' => ['description' => '边缘实例标签,标签由`key:value`组成,多个标签以英文逗号隔开,例如`k1:v1,k2:v2`。', 'type' => 'string', 'example' => 'k1:v1,k2:v2'], + 'InstanceId' => ['description' => '边缘实例ID。', 'type' => 'string', 'example' => 'F3APY0tPLhmgGtx0****'], + 'RoleName' => ['description' => '授权角色名称。', 'type' => 'string', 'example' => 'AliyunIOTAccessingFCRole'], + 'RoleAttachTimestamp' => ['description' => '角色绑定的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '最后一次更新边缘实例的时间。', 'type' => 'string', 'example' => '2019-06-26 12:33:25'], + 'LatestDeploymentType' => ['description' => '边缘实例最近一次部署单的类型。'."\n" + ."\n" + .'- deploy:部署。'."\n" + .'- reset:重置。', 'type' => 'string', 'example' => 'deploy'], + 'LatestDeploymentStatus' => ['description' => '边缘实例最近一次部署单的状态。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 1:正在进行(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'BizEnable' => ['description' => '边缘实例是否开启。'."\n" + ."\n" + .'- true:开启。'."\n" + .'- false:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'GmtCreate' => ['description' => '创建边缘实例的时间。', 'type' => 'string', 'example' => '2019-06-26 12:33:25'], + 'Name' => ['description' => '边缘实例名称。', 'type' => 'string', 'example' => '测试实例new'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"16645053-546B-4D7C-832E-E519B0E23CF1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"0\\",\\n \\"RoleArn\\": \\"acs:ram::1473922805******:role/aliyuniotaccessingfcrole\\",\\n \\"Spec\\": 30,\\n \\"RoleAttachTime\\": \\"2020-02-19 11:25:48\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Tags\\": \\"k1:v1,k2:v2\\",\\n \\"InstanceId\\": \\"F3APY0tPLhmgGtx0****\\",\\n \\"RoleName\\": \\"AliyunIOTAccessingFCRole\\",\\n \\"RoleAttachTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 12:33:25\\",\\n \\"LatestDeploymentType\\": \\"deploy\\",\\n \\"LatestDeploymentStatus\\": 2,\\n \\"BizEnable\\": true,\\n \\"GmtCreate\\": \\"2019-06-26 12:33:25\\",\\n \\"Name\\": \\"测试实例new\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16645053-546B-4D7C-832E-E519B0E23CF1\\r\\n \\r\\n 2019-06-26 12:33:25\\r\\n true\\r\\n F3APY0tPLhmgGtx0****\\r\\n deploy\\r\\n 2019-06-26 16:16:22\\r\\n 30\\r\\n k1:v1,k2:v2\\r\\n 测试实例new\\r\\n 2\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '获取边缘实例详情', + 'summary' => '获取边缘实例详情。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DataSourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。'."\n" - ."\n" - .'调用[ListParserDataSource](~~432676~~)接口,可查看当前实例下所有数据源ID。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '1001', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'GetEdgeInstanceDeployment' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Page', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,取值范围为1~100,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100000', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SearchName', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '传入Topic值中任意一段字符串,根据该字符串检索能匹配的Topic。', - 'type' => 'string', - 'required' => false, - 'example' => 'thing', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'PgEfYupSn6Pvhfkx****'], + ], + [ + 'name' => 'DeploymentId', + 'in' => 'query', + 'schema' => ['description' => '部署单ID。可调用[QueryEdgeInstanceHistoricDeployment](~~135275~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9261e308a9504fde9b4cf8462b0b****'], ], ], 'responses' => [ @@ -28980,192 +18625,159 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。 ', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '返回结果记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Page' => [ - 'description' => '显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DataSourceItems' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '6B72291A-9492-445E-81D9-335D2D3E44C0'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'dataSourceItem' => [ - 'description' => '返回的Topic列表信息。', + 'GmtCreateTimestamp' => ['description' => '部署单创建的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '部署单类型。'."\n" + ."\n" + .'- deploy:部署。'."\n" + .'- reset:重置。', 'type' => 'string', 'example' => 'deploy'], + 'Status' => ['description' => '部署单当前状态。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 1:正在进行中(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'DeploymentId' => ['description' => '部署单ID。', 'type' => 'string', 'example' => '9261e308a9504fde9b4cf8462b0b****'], + 'Description' => ['description' => '部署单描述。', 'type' => 'string', 'example' => 'deploy_1561543948874'], + 'GmtModifiedTimestamp' => ['description' => '部署单最后一次更新的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtCompleted' => ['description' => '部署完成时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:35'], + 'GmtCreate' => ['description' => '部署单创建时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:29'], + 'GmtCompletedTimestamp' => ['description' => '部署完成的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '部署单最后一次更新时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:35'], + 'TaskList' => [ + 'description' => '部署任务列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '消息Topic所属产品的**ProductKey**。'."\n" - ."\n" - .'> 消息Topic属于开源MQTT托管形态产品和设备,或MQTT云网关产品和设备时,返回该参数。', - 'type' => 'string', - 'example' => 'aw3****', - ], - 'DataSourceItemId' => [ - 'description' => '数据源Topic的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '129322', - ], - 'DeviceName' => [ - 'description' => '消息Topic所属的设备名称。'."\n" - ."\n" - .'> 消息Topic属于开源MQTT托管形态产品和设备或MQTT云网关产品和设备时,返回该参数。', - 'type' => 'string', - 'example' => 'lightDevice', - ], - 'ScopeType' => [ - 'description' => '消息Topic订阅的作用域,可取值:'."\n" - ."\n" - .'- **PRODUCT **:产品维度,表示作用在产品下的所有设备上。'."\n" - .'- **DEVICE **:设备维度,表示作用在产品下指定的设备上。'."\n" - ."\n" - .'> 消息Topic属于开源MQTT托管形态产品和设备,或MQTT云网关产品和设备时,返回该参数。', - 'type' => 'string', - 'example' => 'PRODUCT', - ], - 'Topic' => [ - 'description' => '数据源Topic的具体值。', - 'type' => 'string', - 'example' => '/gyh***z/+/thing/event/property/post', + 'GmtCreateTimestamp' => ['description' => '部署任务创建的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Status' => ['description' => '部署任务当前状态。'."\n" + ."\n" + .'- 0:初始状态(init)。'."\n" + .'- 1:正在进行中(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Stage' => ['description' => '部署任务当前阶段。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 8:正在装配(assembly)。'."\n" + .'- 16:正在打包(package)。'."\n" + .'- 24:正在分发(dispatcher)。'."\n" + .'- 32:已完成(finish)。', 'type' => 'integer', 'format' => 'int32', 'example' => '32'], + 'GatewayId' => ['description' => '网关设备ID。', 'type' => 'string', 'example' => 'jQWf3MVgQjMzcwsY****000101'], + 'GmtModifiedTimestamp' => ['description' => '部署任务最后一次更新的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtCompleted' => ['description' => '部署任务完成时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:35'], + 'GmtCreate' => ['description' => '部署任务创建时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:29'], + 'GmtCompletedTimestamp' => ['description' => '部署任务完成的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '部署任务最后一次更新时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:35'], + 'TaskId' => ['description' => '部署任务ID。', 'type' => 'string', 'example' => '49ea651529014bf8b5645d5f9062****'], + 'ResourceSnapshotList' => [ + 'description' => '部署快照列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '当前状态。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 1:正在进行(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'GmtCreateTimestamp' => ['description' => '部署单快照创建的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Stage' => ['description' => '部署单快照当前阶段。'."\n" + ."\n" + .'- 0:初始状态(init)。'."\n" + .'- 8:正在编译(assembly)。'."\n" + .'- 16:正在打包(package)。'."\n" + .'- 24:正在分发(dispatcher)。'."\n" + .'- 32:已完成(finish)。', 'type' => 'integer', 'format' => 'int32', 'example' => '32'], + 'GmtModifiedTimestamp' => ['description' => '部署单快照最后一次更新的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '部署单快照最后一次更新时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:34'], + 'Log' => ['description' => '资源部署日志。', 'type' => 'string', 'example' => '[{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":0,\\"level\\":\\"INFO\\",\\"message\\":\\"init success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543949858},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":8,\\"level\\":\\"INFO\\",\\"message\\":\\"assembly success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543951419},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":16,\\"level\\":\\"INFO\\",\\"message\\":\\"package success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543952591},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":32,\\"level\\":\\"INFO\\",\\"message\\":\\"download success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543954149}]'], + 'OperateType' => ['description' => '操作类型。'."\n" + ."\n" + .'- 0:部署(deploy)。'."\n" + .'- 1:删除(delete)。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ResourceType' => ['description' => '资源类型。', 'type' => 'string', 'example' => 'device_config'], + 'SnapshotId' => ['description' => '部署快照ID。', 'type' => 'string', 'example' => 'ab576e84a43043d7840cbcebf4a5****'], + 'GmtCompleted' => ['description' => '部署单快照完成时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:34'], + 'GmtCreate' => ['description' => '部署单快照创建时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:29'], + 'GmtCompletedTimestamp' => ['description' => '部署单快照完成的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'ResourceId' => ['description' => '资源ID。', 'type' => 'string', 'example' => 'device_config'], + 'ResourceName' => ['description' => '资源名称。', 'type' => 'string', 'example' => 'device_config'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidPageParams', - 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', - ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"6B72291A-9492-445E-81D9-335D2D3E44C0\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"deploy\\",\\n \\"Status\\": 2,\\n \\"DeploymentId\\": \\"9261e308a9504fde9b4cf8462b0b****\\",\\n \\"Description\\": \\"deploy_1561543948874\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:35\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:35\\",\\n \\"TaskList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Status\\": 2,\\n \\"Stage\\": 32,\\n \\"GatewayId\\": \\"jQWf3MVgQjMzcwsY****000101\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:35\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:35\\",\\n \\"TaskId\\": \\"49ea651529014bf8b5645d5f9062****\\",\\n \\"ResourceSnapshotList\\": [\\n {\\n \\"Status\\": 2,\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Stage\\": 32,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:34\\",\\n \\"Log\\": \\"[{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"init success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543949858},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":8,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"assembly success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543951419},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":16,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"package success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543952591},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":32,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"download success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543954149}]\\",\\n \\"OperateType\\": 0,\\n \\"ResourceType\\": \\"device_config\\",\\n \\"SnapshotId\\": \\"ab576e84a43043d7840cbcebf4a5****\\",\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:34\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"ResourceId\\": \\"device_config\\",\\n \\"ResourceName\\": \\"device_config\\"\\n }\\n ]\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 6B72291A-9492-445E-81D9-335D2D3E44C0\\r\\n \\r\\n 2\\r\\n 9261e308a9504fde9b4cf8462b0b****\\r\\n 2019-06-26 18:12:35\\r\\n deploy\\r\\n 2019-06-26 18:12:29\\r\\n deploy_1561543948874\\r\\n \\r\\n \\r\\n 2\\r\\n 2019-06-26 18:12:35\\r\\n 2019-06-26 18:12:29\\r\\n 49ea651529014bf8b5645d5f9062****\\r\\n \\r\\n \\r\\n 2\\r\\n ab576e84a43043d7840cbcebf4a5****\\r\\n 2019-06-26 18:12:34\\r\\n 2019-06-26 18:12:29\\r\\n [{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":0,\\"level\\":\\"INFO\\",\\"message\\":\\"init success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543949858},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":8,\\"level\\":\\"INFO\\",\\"message\\":\\"assembly success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543951419},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":16,\\"level\\":\\"INFO\\",\\"message\\":\\"package success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543952591},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":32,\\"level\\":\\"INFO\\",\\"message\\":\\"download success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543954149}]\\r\\n device_config\\r\\n device_config\\r\\n 2019-06-26 18:12:34\\r\\n 32\\r\\n device_config\\r\\n 0\\r\\n \\r\\n \\r\\n 2019-06-26 18:12:35\\r\\n 32\\r\\n jQWf3MVgQjMzcwsY****000101\\r\\n \\r\\n \\r\\n 2019-06-26 18:12:35\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '获取边缘实例部署详情', + 'summary' => '获取边缘实例部署详情 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"DataSourceItems\\": {\\n \\"dataSourceItem\\": [\\n {\\n \\"ProductKey\\": \\"aw3****\\",\\n \\"DataSourceItemId\\": 129322,\\n \\"DeviceName\\": \\"lightDevice\\",\\n \\"ScopeType\\": \\"PRODUCT\\",\\n \\"Topic\\": \\"/gyh***z/+/thing/event/property/post\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 129322\\n /gyh***z/+/thing/event/property/post\\n \\n\\n1\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n1\\n1\\ntrue\\n","errorExample":""}]', - 'title' => 'ListDataSourceItem', - 'summary' => '调用该接口分页查询规则引擎中指定数据源下的Topic列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'DeleteDataSourceItem' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetEdgeInstanceMessageRouting' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t****', - ], + 'schema' => ['description' => '物联网平台的实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DataSourceItemId', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据源Topic的ID。您可调用接口[ListDataSourceItem](~~421072~~),查询指定数据源下的Topic列表,获取**DataSourceItemId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999', - 'minimum' => '0', - 'example' => '129322', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => '8jKxIuMVT9rX********'], ], [ - 'name' => 'DataSourceId', + 'name' => 'RouteId', 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '消息路由ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '123456'], ], ], 'responses' => [ @@ -29173,147 +18785,141 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'String iot.system.SystemException ', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '8A248DEC-887C-4A37-8DE5-E128FFA3698D'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建消息路由的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1590407699000'], + 'TopicFilter' => ['description' => '消息过滤条件。', 'type' => 'string', 'example' => 'all'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新消息路由的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1590407699000'], + 'TargetData' => ['description' => '消息接收者的数据:'."\n" + .'- **TargetType**为**function**时:此处是边缘应用的ID。'."\n" + .'- **TargetType**为**IotHub**时:此处为空。', 'type' => 'string', 'example' => '58c46749ac934db3925fe5********'], + 'GmtCreate' => ['description' => '创建消息路由的时间。', 'type' => 'string', 'example' => '2020-05-25 19:54:59'], + 'SourceType' => ['description' => '消息来源:'."\n" + .'- **device**:表示消息由设备发出。'."\n" + .'- **function**:表示消息由边缘应用发出。'."\n" + .'- **IotHub**:表示消息由云端发出。', 'type' => 'string', 'example' => 'device'], + 'GmtModified' => ['description' => '最后一次更新消息路由的时间。', 'type' => 'string', 'example' => '2020-05-25 19:54:59'], + 'Name' => ['description' => '消息路由名称。', 'type' => 'string', 'example' => 'sample'], + 'SourceData' => ['description' => '消息来源的数据:'."\n" + ."\n" + .'- **SourceType**为**device**时:'."\n" + ."\n" + .' - 此处参数值格式为`/{Your_ProductKey}/{Your_DeviceName}`:表示消息来源为指定产品下的指定设备。'."\n" + ."\n" + .' > {Your_ProductKey}和{Your_DeviceName}是您实际设备的ProductKey和DeviceName。'."\n" + ."\n" + .' - 此处参数值格式为`/{Your_ProductKey}/+`:表示消息来源为指定产品下的所有设备。'."\n" + ."\n" + .' > {Your_ProductKey}是您实际设备的ProductKey。'."\n" + ."\n" + .' - 此处参数值为**#**:表示消息来源为边缘实例中所有产品下的所有设备。'."\n" + ."\n" + .'- **SourceType**为**function**时:此处是边缘应用的ID。'."\n" + ."\n" + .'- **SourceType**为**IotHub**时:此处为空。', 'type' => 'string', 'example' => '#'], + 'TargetType' => ['description' => '消息接收者:'."\n" + .'- **function**:表示消息发送给边缘应用。'."\n" + .'- **IotHub**:表示消息发送给云端。', 'type' => 'string', 'example' => 'IotHub'], + 'RouteContext' => [ + 'description' => '消息来源和消息接收者的补充信息。', + 'type' => 'object', + 'properties' => [ + 'TargetApplicationName' => ['description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用的名称。', 'type' => 'string', 'example' => 'le_object_detector'], + 'SourceApplicationName' => ['description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用的名称。', 'type' => 'string', 'example' => 'le_object_detector'], + 'TargetFcFunctionName' => ['description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', 'type' => 'string', 'example' => 'lightSensorDataFilter'], + 'SourceFcFunctionName' => ['description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', 'type' => 'string', 'example' => 'object_detector_app'], + 'TargetFcServiceName' => ['description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', 'type' => 'string', 'example' => 'EdgeFC'], + 'SourceFcServiceName' => ['description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的服务名称。', 'type' => 'string', 'example' => 'EdgeFC'], + 'Qos' => ['description' => '服务级别:'."\n" + ."\n" + .'- 0:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" + ."\n" + .'- 1:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。', 'type' => 'string', 'example' => '1'], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', - ], - [ - 'errorCode' => 'iot.rule.DataSourceItemNotExists', - 'errorMessage' => 'datasource item not existed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"8A248DEC-887C-4A37-8DE5-E128FFA3698D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1590407699000,\\n \\"TopicFilter\\": \\"all\\",\\n \\"GmtModifiedTimestamp\\": 1590407699000,\\n \\"TargetData\\": \\"58c46749ac934db3925fe5********\\",\\n \\"GmtCreate\\": \\"2020-05-25 19:54:59\\",\\n \\"SourceType\\": \\"device\\",\\n \\"GmtModified\\": \\"2020-05-25 19:54:59\\",\\n \\"Name\\": \\"sample\\",\\n \\"SourceData\\": \\"#\\",\\n \\"TargetType\\": \\"IotHub\\",\\n \\"RouteContext\\": {\\n \\"TargetApplicationName\\": \\"le_object_detector\\",\\n \\"SourceApplicationName\\": \\"le_object_detector\\",\\n \\"TargetFcFunctionName\\": \\"lightSensorDataFilter\\",\\n \\"SourceFcFunctionName\\": \\"object_detector_app\\",\\n \\"TargetFcServiceName\\": \\"EdgeFC\\",\\n \\"SourceFcServiceName\\": \\"EdgeFC\\",\\n \\"Qos\\": \\"1\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 8A248DEC-887C-4A37-8DE5-E128FFA3698D\\r\\n \\r\\n \\r\\n all\\r\\n 2020-05-25 19:54:59\\r\\n 1590407699000\\r\\n device\\r\\n IotHub\\r\\n 2020-05-25 19:54:59\\r\\n 170101\\r\\n 1590407699000\\r\\n sample\\r\\n #\\r\\n \\r\\n 0\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例中消息路由的详细信息', + 'summary' => '调用该接口,获取边缘实例中消息路由的详细信息。', + 'description' => '## 限制条件'."\n" + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteDataSourceItem', - 'summary' => '调用该接口删除指定数据源下的指定Topic。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'CreateDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetGatewayBySubDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'Configuration', - 'in' => 'query', - 'schema' => [ - 'description' => '数据目的对应的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例请参见本表格下方的参数补充说明。', - 'type' => 'string', - 'required' => true, - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Type', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的操作类型,可取值:'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'string', - 'required' => true, - 'example' => 'REPUBLISH', - ], + 'schema' => ['description' => '子设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Name', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'DataPurpose', - ], + 'schema' => ['description' => '子设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'Description', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => '数据流转至数据库。', - ], + 'schema' => ['description' => '子设备ID。物联网平台为该子设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -29321,384 +18927,186 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Destination' => [ - 'description' => '创建成功后,返回的数据目的信息。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的网关设备的详细信息。', 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '数据目的操作类型。', - 'type' => 'string', - 'example' => 'REPUBLISH', - ], - 'DestinationId' => [ - 'description' => '数据目的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1003', - ], - 'Configuration' => [ - 'description' => '数据目的对应的配置信息。', - 'type' => 'string', - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - 'Name' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'example' => 'DataPurpose', - ], - 'UtcCreated' => [ - 'description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'IsFailover' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'Status' => ['description' => '网关设备状态。取值:'."\n" + .'- **online**:设备在线。'."\n" + .'- **offline**:设备离线。'."\n" + .'- **unactive**:设备未激活。'."\n" + .'- **disable**:设备已禁用', 'type' => 'string', 'example' => 'online'], + 'UtcActive' => ['description' => '网关设备的激活时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', 'type' => 'string', 'example' => '2019-12-18T15:25:30.176Z'], + 'ProductName' => ['description' => '网关设备隶属的产品名称。', 'type' => 'string', 'example' => 'LinkIoT'], + 'DeviceName' => ['description' => '网关设备名称。', 'type' => 'string', 'example' => 'gateway'], + 'FirmwareVersion' => ['description' => '网关设备的固件版本号。', 'type' => 'string', 'example' => 'V1.0.1'], + 'UtcCreate' => ['description' => '网关设备的创建时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', 'type' => 'string', 'example' => '2019-12-18T08:58:33.000Z'], + 'region' => ['description' => '网关设备所在地域(与控制台上的地域对应)。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'GmtOnline' => ['description' => '网关设备最近一次上线的时间,GMT格式,是用户所在地的当地时间。', 'type' => 'string', 'example' => '2020-01-20 17:41:04'], + 'iotId' => ['description' => '物联网平台为该网关设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'WuyjPSDQE1L22z1d****000100'], + 'UtcOnline' => ['description' => '网关设备最近一次上线的时间,UTC格式,世界标准时间。用户所在地实际时间,可根据当地时差计算。', 'type' => 'string', 'example' => '2020-01-20T09:41:04.879Z'], + 'ProductKey' => ['description' => '网关设备隶属的产品**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'IpAddress' => ['description' => '网关设备的IP地址。', 'type' => 'string', 'example' => '106.**.1**.**'], + 'NodeType' => ['description' => '节点类型,取值为1,表示该设备为网关设备。', 'type' => 'string', 'example' => '1'], + 'DeviceSecret' => ['description' => '网关设备密钥。', 'type' => 'string', 'example' => 'dCYdTU3gw5Z77bsHjPk6lPHPVnBT****'], + 'GmtCreate' => ['description' => '网关设备的创建时间,GMT格式,是用户所在地的当地时间。', 'type' => 'string', 'example' => '2019-12-18 16:58:33'], + 'GmtActive' => ['description' => '网关设备的激活时间,GMT格式,是用户所在地的当地时间。', 'type' => 'string', 'example' => '2019-12-18 23:25:30'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.ruleng.NullRuleActionConfig', - 'errorMessage' => 'The rule action configuration is empty.', - ], - [ - 'errorCode' => 'iot.ruleng.NullRuleActionType', - 'errorMessage' => 'The specified rule action is invalid or the rule action type is unspecified.', - ], - [ - 'errorCode' => 'iot.ruleng.InvalidRamRole', - 'errorMessage' => 'The RAM role is invalid', - ], - [ - 'errorCode' => 'iot.rule.DestinationCountExceed', - 'errorMessage' => 'The count of destination exceeds the maximum number', - ], - [ - 'errorCode' => 'iot.rule.DestinationNameExisted', - 'errorMessage' => 'The destination name is existed', - ], - [ - 'errorCode' => 'iot.rule.InvalidDestinationName', - 'errorMessage' => 'The destination name is invalid', - ], - [ - 'errorCode' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', - 'errorMessage' => 'The specified region does not support creating rules to publish messages to the specified cloud product', - ], - [ - 'errorCode' => 'iot.ruleng.IncorrectRegionName', - 'errorMessage' => 'The regionName value is incorrect', - ], - [ - 'errorCode' => 'iot.consumer.group.InvalidConsumerGroupId', - 'errorMessage' => 'Illegal consumer group ID', - ], - [ - 'errorCode' => 'iot.ruleng.NullProjectOfDatahub', - 'errorMessage' => 'The project in DataHub is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundTopicInDataHubProject', - 'errorMessage' => 'This specified topic does not exist in the project in DataHub', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundVpcInstance', - 'errorMessage' => 'The specified VPC instance does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Destination\\": {\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": 1003,\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1003\\n DataPurpose\\n\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => '创建解析器流转数据目的', - 'summary' => '创建解析器流转数据目的。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"online\\",\\n \\"UtcActive\\": \\"2019-12-18T15:25:30.176Z\\",\\n \\"ProductName\\": \\"LinkIoT\\",\\n \\"DeviceName\\": \\"gateway\\",\\n \\"FirmwareVersion\\": \\"V1.0.1\\",\\n \\"UtcCreate\\": \\"2019-12-18T08:58:33.000Z\\",\\n \\"region\\": \\"cn-shanghai\\",\\n \\"GmtOnline\\": \\"2020-01-20 17:41:04\\",\\n \\"iotId\\": \\"WuyjPSDQE1L22z1d****000100\\",\\n \\"UtcOnline\\": \\"2020-01-20T09:41:04.879Z\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"IpAddress\\": \\"106.**.1**.**\\",\\n \\"NodeType\\": \\"1\\",\\n \\"DeviceSecret\\": \\"dCYdTU3gw5Z77bsHjPk6lPHPVnBT****\\",\\n \\"GmtCreate\\": \\"2019-12-18 16:58:33\\",\\n \\"GmtActive\\": \\"2019-12-18 23:25:30\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n cn-shanghai\\n gateway_04\\n 2019-12-18 23:25:30\\n a1vL7cp****\\n 106.**.1**.**\\n 2019-12-18 16:58:33\\n 2019-12-18T08:58:33.000Z\\n 2020-01-20T09:41:04.879Z\\n 2019-12-18T15:25:30.176Z\\n online\\n 1\\n 2020-01-20 17:41:04\\n LinkIoTEdge_Gateway\\n WuyjPSDQE1L22z1****000100\\n\\n0377D5A9-BDE1-48C2-96C9-BDC048899186\\ntrue\\n","errorExample":""}]', + 'title' => '查询网关设备信息', + 'summary' => '根据挂载的子设备信息查询对应的网关设备信息。', 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '**REPUBLISH类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|------|------|'."\n" - .'|productKey|转发至另一个Topic所属产品的ProductKey。|'."\n" - ."\n" - .'REPUBLISH类型**Configuration**示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "productKey":"hf****3xn"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**AMQP类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|groupId|消费组ID。|'."\n" - ."\n" - .'AMQP类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "groupId":"ZTh1JmuZcUfv44p4z00****"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**OTS类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|instanceName|表格存储中用来接收信息的实例名称。|'."\n" - .'|regionName|目标实例所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|tableName|表格存储中用来接收信息的数据表名称。|'."\n" - .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的表格存储。授权角色信息:
`{"roleName":"AliyunIOTAccessingOTSRole","roleArn":"acs:ram::${uid}:role/aliyuniotaccessingotsrole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingOTSRole`是访问控制中定义的服务角色。用于授予物联网平台访问表格存储。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'OTS类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "instanceName":"${instanceName}",'."\n" - .' "regionName":"cn-shanghai",'."\n" - .' "tableName":"test_table",'."\n" - .' "role":{'."\n" - .' "roleName":"AliyunIOTAccessingOTSRole",'."\n" - .' "roleArn":"acs:ram::${uid}:role/aliyuniotaccessingotsrole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**DATAHUB类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------ |'."\n" - .'|projectName|目标DataHub中用来接收信息的具体Project。|'."\n" - .'|topicName|目标DataHub中用来接收信息的具体Topic。|'."\n" - .'|regionName|目标DataHub所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|role|授权角色信息。通过授予IoT指定的系统服务角色,您可以授权物联网平台访问您的DataHub。授权角色信息格式:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingdatahubrole","roleName": "AliyunIOTAccessingDataHubRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingDataHubRole`是访问控制中定义的服务角色。用于授予物联网平台访问DataHub。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'DATAHUB类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "role":{'."\n" - .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingdatahubrole",'."\n" - .' "roleName": "AliyunIOTAccessingDataHubRole"'."\n" - .' },'."\n" - .' "ProjectName": "test_project_name",'."\n" - .' "RegionName": "cn-shanghai",'."\n" - .' "TopicName": "test_topic"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**MNS类型Configuration定义**'."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|themeName| 消息服务中用来接收信息的目标主题名称。|'."\n" - .'|regionName| 目标消息服务所在的阿里云地域代码,例如cn-shanghai。|'."\n" - .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'MNS类型**​Configuration**​​示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "themeName": "test_name",'."\n" - .' "role":{'."\n" - .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingmnsrole",'."\n" - .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" - .' },'."\n" - .' "regionName": "cn-shanghai"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**ONS类型Configuration定义**'."\n" - ."\n" - .'> 您需通过调用消息队列RocketMQ的SDK,或在消息队列RocketMQ控制台,授权物联网平台访问消息队列RocketMQ(至少要授予物联网平台发布权限),然后才能够成功创建将Topic数据转发至消息队列RocketMQ的规则动作。'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|instanceId|RocketMQ中用来接收消息的目标Topic所属的实例ID。|'."\n" - .'|topic|RocketMQ中用来接收信息的目标Topic。|'."\n" - .'|regionName|目标RocketMQ实例所在的阿里云地域代码,例如cn-shanghai。
目前仅支持同地域内数据流转。'."\n" - .'|role|授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息队列RocketMQ服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingmqrole","roleName": "AliyunIOTAccessingMQRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMQRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息队列RocketMQ。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'ONS类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "instanceId": "${MQ_INST_ID}",'."\n" - .' "role":'."\n" - .' {'."\n" - .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingmqrole",'."\n" - .' "roleName": "AliyunIOTAccessingMQRole"'."\n" - .' },'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "topic": "test_topic"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'**FC类型Configuration定义**'."\n" - ."\n" - .'|名称|描述|'."\n" - .'|-------------|------------|'."\n" - .'|functionName| 函数服务中用来接收信息的目标函数名称。|'."\n" - .'|serviceName| 函数服务中用来接收信息的目标服务名称。|'."\n" - .'|regionName| 目标函数服务实例所在阿里云地域的代码,如cn-shanghai。|'."\n" - .'|role| 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的函数计算服务。授权角色信息:
`{"roleArn":"acs:ram::${uid}:role/aliyuniotaccessingfcrole","roleName": "AliyunIOTAccessingFCRole"}`
`${uid}`为您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingFCRole`是访问控制中定义的服务角色。用于授予物联网平台访问函数计算。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。|'."\n" - ."\n" - .'FC类型**Configuration**示例:'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "role":'."\n" - .' {'."\n" - .' "roleArn": "acs:ram::${uid}:role/aliyuniotaccessingfcrole",'."\n" - .' "roleName": "AliyunIOTAccessingFCRole"'."\n" - .' },'."\n" - .' "functionName": "${function_name}",'."\n" - .' "serviceName": "${service_name}",'."\n" - .' "regionName": "cn-shanghai"'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享该阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetGatewayBySubDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetLoraNodesTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'Configuration', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的对应的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例说明,请参见[CreateDestination](~~433032~~)中**Configuration**参数描述。', - 'type' => 'string', - 'required' => true, - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'TaskId', 'in' => 'query', + 'schema' => ['description' => '注册LoRaWAN设备任务的ID,即调用[CreateLoRaNodesTask](~~109299~~)创建任务后,返回的**TaskId**。', 'type' => 'string', 'required' => true, 'example' => '623***'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'TaskState' => ['description' => '任务执行状态。'."\n" + ."\n" + .'- **RUNNING**:任务正在执行中。'."\n" + ."\n" + .'- **FINISH**:任务已执行完毕。', 'type' => 'string', 'example' => 'RUNNING'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'SuccessCount' => ['description' => '注册成功的数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'TotalCount' => ['description' => '任务中待注册设备的总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], + 'TaskId' => ['description' => '调用成功时,返回的任务ID。', 'type' => 'string', 'example' => '625***'], + 'SuccessDevEuis' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SuccessDevEui' => [ + 'type' => 'array', + 'items' => ['description' => '注册成功的设备的DevEUI列表。', 'type' => 'string', 'example' => '[ "d896e0ffff01****","d896e0ffff01****"]'], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], - [ - 'name' => 'DestinationId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据目的ID。'."\n" - ."\n" - .'您可调用接口[ListDestination](~~433025~~),查询数据源列表,获取**DestinationId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '0', - 'example' => '1002', + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"TaskState\\": \\"RUNNING\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"SuccessCount\\": 100,\\n \\"TotalCount\\": 200,\\n \\"TaskId\\": \\"625***\\",\\n \\"SuccessDevEuis\\": {\\n \\"SuccessDevEui\\": [\\n \\"[ \\\\\\"d896e0ffff01****\\\\\\",\\\\\\"d896e0ffff01****\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n2\\n1C0BBCD4-A271-4853-A5B0-3C246565E68C\\n2\\n\\n d896e0ffff01****\\n d896e0ffff01****\\n\\n156***\\ntrue\\nFINISH\\n","errorExample":""}]', + 'title' => '查询批量注册LoRaWAN设备任务状态', + 'summary' => '调用该接口查询批量注册LoRaWAN设备任务的状态。', + 'description' => '## 限制说明'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetLoraNodesTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'GetParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '数据目的操作类型,可取值:'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'string', - 'required' => true, - 'example' => 'REPUBLISH', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'Name', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'DataPurpose', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'Description', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的描述信息。', - 'type' => 'string', - 'required' => false, - 'example' => '数据流转至另一个Topic。', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -29706,296 +19114,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的解析器详细信息。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '解析器运行状态。可取值:'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **STOP**:已停止。'."\n" + .'- **ABNORMAL**:存在异常。', 'type' => 'string', 'example' => 'STOP'], + 'Description' => ['description' => '解析器描述。', 'type' => 'string', 'example' => '转发数据。'], + 'UtcModified' => ['description' => '更新解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-04-27T12:45:43.000Z'], + 'DataSourceId' => ['description' => '解析器关联的数据源ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1003'], + 'ScriptDraft' => ['description' => '解析器脚本的草稿。', 'type' => 'string', 'example' => 'var data = payload("json"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()}); writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});'], + 'UtcCreated' => ['description' => '创建解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'Name' => ['description' => '解析器名称。', 'type' => 'string', 'example' => 'DataParser'], + 'Script' => ['description' => '解析器已发布脚本。', 'type' => 'string', 'example' => 'var data = payload("json"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),"temperature", t , {"deviceName":deviceName()}); writeTsdb(1000,timestamp(),"humidity", h , {"deviceName":deviceName()});'], + 'ParserId' => ['description' => '解析器ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.ruleng.NullRuleActionConfig', - 'errorMessage' => 'The rule action configuration is empty.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'Destination not found', - ], - [ - 'errorCode' => 'iot.rule.DestinationNameExisted', - 'errorMessage' => 'The destination name is existed', - ], - [ - 'errorCode' => 'iot.rule.InvalidDestinationName', - 'errorMessage' => 'The destination name is invalid', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundVpcInstance', - 'errorMessage' => 'The specified VPC instance does not exist', - ], - [ - 'errorCode' => 'iot.ruleng.InstanceNotFound', - 'errorMessage' => 'The instance not exists', - ], - [ - 'errorCode' => 'iot.ruleng.TopicNotFound', - 'errorMessage' => 'The topic not exists', - ], - [ - 'errorCode' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', - 'errorMessage' => 'The specified region does not support creating rules to publish messages to the specified cloud product', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The productKey is empty.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.ruleng.IncorrectRegionName', - 'errorMessage' => 'The regionName parameter is invalid.', - ], - [ - 'errorCode' => 'iot.ruleng.NullProjectOfDatahub', - 'errorMessage' => 'The project in DataHub is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NullTopicInDatahubProject', - 'errorMessage' => 'The project topic in DataHub is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NullRamRoleName', - 'errorMessage' => 'You must specify a roleName', - ], - [ - 'errorCode' => 'iot.ruleng.NullRamRoleArn', - 'errorMessage' => 'You must specify a roleArn', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundProjectInDataHub', - 'errorMessage' => 'The specified project does not exist in DataHub.', - ], - [ - 'errorCode' => 'iot.ruleng.NullOrEmptySchemaOfTopic', - 'errorMessage' => 'The topic schema is empty', - ], - [ - 'errorCode' => 'iot.ruleng.IncorrectSchemaValueOfTopic', - 'errorMessage' => 'The specified Topic schema value is invalid', - ], - [ - 'errorCode' => 'iot.ruleng.RuleActionConfigurationIsNotJson', - 'errorMessage' => 'The rule action configuration is not in the JSON format', - ], - [ - 'errorCode' => 'iot.ruleng.NullOtsInstanceName', - 'errorMessage' => 'The Table Store instance name is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NullTableNameInOtsInstance', - 'errorMessage' => 'The table name is empty in the Table Store instance', - ], - [ - 'errorCode' => 'iot.ruleng.OnlySameRegionSupport', - 'errorMessage' => 'target region is not supported', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundTableInOtsInstance', - 'errorMessage' => 'The specified table does not exist in the Table Store instance', - ], - [ - 'errorCode' => 'iot.ruleng.NullServiceNameInFc', - 'errorMessage' => 'The Function Compute service name is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NullFunctionNameInFc', - 'errorMessage' => 'The Function Compute function name is empty', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundServiceInFc', - 'errorMessage' => 'The Function Compute service does not exist', - ], - [ - 'errorCode' => 'iot.ruleng.NotFoundFunctionInFc', - 'errorMessage' => 'The Function Compute function does not exist', - ], - [ - 'errorCode' => 'iot.ruleng.OnlySupportSameRegionRds', - 'errorMessage' => 'Messages can only be publish to the RDS instances on the same node', - ], - [ - 'errorCode' => 'iot.messagebroker.NullTopicName', - 'errorMessage' => 'The topic specified while publishing the message is empty', - ], - [ - 'errorCode' => 'iot.ruleng.InvalidFormattedTagInConfiguration', - 'errorMessage' => 'The tag in configuration is too long', - ], - [ - 'errorCode' => 'iot.ruleng.InvalidFormattedShardingKeyInConfiguration', - 'errorMessage' => 'The shardingKey in configuration is too long', - ], - [ - 'errorCode' => 'iot.ruleng.NullTopic', - 'errorMessage' => 'The topic is null', - ], - [ - 'errorCode' => 'iot.consumer.group.InvalidConsumerGroupId', - 'errorMessage' => 'Illegal consumer group ID', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.QueryRuleFailed', 'errorMessage' => 'An error occurred while querying the rule.', 'description' => '查询规则失败。'], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'UpdateDestination', - 'summary' => '调用该接口更新数据目的名称、操作类型和描述信息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用接口[CreateDestination](~~433032~~)创建数据目的成功后,若有业务需要,您可根据返回的**DestinationId**更新对应数据目的信息。'."\n" - ."\n" - .'## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"STOP\\",\\n \\"Description\\": \\"转发数据。\\",\\n \\"UtcModified\\": \\"2022-04-27T12:45:43.000Z\\",\\n \\"DataSourceId\\": 1003,\\n \\"ScriptDraft\\": \\"var data = payload(\\\\\\"json\\\\\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\\\\\"temperature\\\\\\", t , {\\\\\\"deviceName\\\\\\":deviceName()}); writeTsdb(1000,timestamp(),\\\\\\"humidity\\\\\\", h , {\\\\\\"deviceName\\\\\\":deviceName()});\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataParser\\",\\n \\"Script\\": \\"var data = payload(\\\\\\"json\\\\\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\\\\\"temperature\\\\\\", t , {\\\\\\"deviceName\\\\\\":deviceName()}); writeTsdb(1000,timestamp(),\\\\\\"humidity\\\\\\", h , {\\\\\\"deviceName\\\\\\":deviceName()});\\",\\n \\"ParserId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n STOP\\n \\n 转发数据。\\n 2022-03-27T12:45:43.000Z\\n var data = payload(\\"json\\"); var h = data.items.Humidity.value; var t = data.items.Temperature.value; writeTsdb(1000,timestamp(),\\"temperature\\", t , {\\"deviceName\\":deviceName()}); writeTsdb(1000,timestamp(),\\"humidity\\", h , {\\"deviceName\\":deviceName()});\\n 2022-04-27T12:45:43.000Z\\n 1001\\n 1003\\n DataParser\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetParser', + 'summary' => '调用该接口查询指定解析器的详细信息,包括解析器基本信息、解析脚本、运行状态和关联的数据源等。', + 'description' => '## QPS限制'."\n" ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,最大值不超过100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - ], - ], - [ - 'name' => 'SearchName', - 'in' => 'query', - 'schema' => [ - 'description' => '传入数据目的名称中任意字符串,根据该字符串可检索能匹配的数据目的名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'DataPurpose', - ], - ], - [ - 'name' => 'Page', - 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '9999999', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'Types', + 'name' => 'DataSourceId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '数据目的操作类型列表,可取值:'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'array', - 'items' => [ - 'description' => '数据目的操作类型,可取值:'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'string', - 'required' => false, - 'example' => 'OTS', - ], - 'required' => false, - 'example' => '["REPUBLISH", "OTS"]', - 'maxItems' => 10, - ], + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -30003,135 +19212,39 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '返回结果记录总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Page' => [ - 'description' => '显示返回结果中的第几页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Destinations' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DataSource' => [ + 'description' => '返回的数据源详细信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'destinations' => [ - 'description' => '返回的数据目的列表数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '数据目的对应的状态。返回值:'."\n" - ."\n" - .'- **INIT**:初始配置中。'."\n" - .'- **NORMAL**:配置完成,正常可用。'."\n" - .'- **INVALID**:配置存在异常,不可用。'."\n" - .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', - 'type' => 'string', - 'example' => 'NORMAL', - ], - 'Type' => [ - 'description' => '数据目的的操作类型。', - 'type' => 'string', - 'example' => 'REPUBLISH', - ], - 'Description' => [ - 'description' => '数据目的对应的描述信息。', - 'type' => 'string', - 'example' => '数据流转至数据库。', - ], - 'DestinationId' => [ - 'description' => '数据目的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1003', - ], - 'Configuration' => [ - 'description' => '数据目的对应的配置信息。', - 'type' => 'string', - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - 'Name' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'example' => 'DataPurpose', - ], - 'UtcCreated' => [ - 'description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'IsFailover' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - ], + 'UtcCreated' => ['description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'Description' => ['description' => '数据源描述信息。', 'type' => 'string', 'example' => '设备数据。'], + 'Name' => ['description' => '数据源名称。', 'type' => 'string', 'example' => 'DataSource'], + 'CreateUserId' => ['description' => '创建数据源的用户ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '11111111000000111'], + 'DataSourceId' => ['description' => '数据源ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'destination not found', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules.', 'description' => '规则不存在。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"Destinations\\": {\\n \\"destinations\\": [\\n {\\n \\"Status\\": \\"NORMAL\\",\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"Description\\": \\"数据流转至数据库。\\",\\n \\"DestinationId\\": 1003,\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n10\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n100\\n\\n \\n REPUBLISH\\n 数据流转至另一个Topic。\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1004\\n DataPurpose1\\n \\n \\n REPUBLISH\\n 数据流转至另一个Topic。\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device2/user/get\\",\\"topicType\\":1}\\n false\\n 1005\\n DataPurpose2\\n \\n\\n1\\ntrue\\n","errorExample":""}]', - 'title' => 'ListDestination', - 'summary' => '调用该接口查询已创建的数据目的列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"DataSource\\": {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"CreateUserId\\": 11111111000000112,\\n \\"DataSourceId\\": 1001\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n\\n 设备数据。\\n 2022-03-27T12:45:43.000Z\\n 11111111000000112\\n 1001\\n DataSource\\n\\n","errorExample":""}]', + 'title' => 'GetParserDataSource', + 'summary' => '调用该接口查询指定数据源的详细信息。', 'description' => '## QPS限制'."\n" ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" @@ -30139,55 +19252,48 @@ 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'DestinationId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999', - 'minimum' => '0', - 'example' => '1003', - ], + 'schema' => ['description' => '要查询的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], ], 'responses' => [ @@ -30195,119 +19301,107 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '58D4CEC0-3E95-4DBE-AFC1-809D1400E52F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RuleInfo' => [ + 'description' => '调用成功时,返回的规则详细信息。详情参见以下RuleInfo。', + 'type' => 'object', + 'properties' => [ + 'Modified' => ['description' => '该规则最近一次被修改时的CST时间。', 'type' => 'string', 'example' => 'Thu Feb 28 14:20:58 CST 2019'], + 'Status' => ['description' => '该规则的运行状态。取值:'."\n" + ."\n" + .'- **RUNNING**:运行中'."\n" + .'- **STOP**:停止', 'type' => 'string', 'example' => 'STOP'], + 'DataType' => ['description' => '该规则的数据类型,取值:**JSON**或**BINARY**。', 'type' => 'string', 'example' => 'JSON'], + 'Select' => ['description' => '该规则SQL语句中的**Select**内容。', 'type' => 'string', 'example' => 'deviceName() as deviceName'], + 'UtcCreated' => ['description' => '规则创建时的UTC时间。', 'type' => 'string', 'example' => '2019-02-28T06:14:33.000Z'], + 'TopicType' => ['description' => '若您设置了规则SQL语句,则返回:'."\n" + ."\n" + .'- **0**:表示基础通信Topic或物模型通信Topic。'."\n" + .'- **1**:表示自定义Topic。'."\n" + .'- **2**:表示设备状态Topic。'."\n" + ."\n" + .'若未设置过规则SQL语句,则返回**-1**。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'CreateUserId' => ['description' => '创建该规则的用户ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000000000000'], + 'Where' => ['description' => '该规则SQL语句中的**Where**查询条件。', 'type' => 'string', 'example' => 'Temperature>35'], + 'ProductKey' => ['description' => '应用该规则的产品ProductKey。', 'type' => 'string', 'example' => 'a1KiV******'], + 'UtcModified' => ['description' => '规则最近一次更新时的UTC时间。', 'type' => 'string', 'example' => '2019-02-28T06:20:58.000Z'], + 'Topic' => ['description' => '该规则所处理消息来源的完整Topic,格式为:`${productKey}/${deviceName}/topicShortName`。'."\n" + .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', 'type' => 'string', 'example' => '/a1QsMlL44pp/+/user/pm25data'], + 'ShortTopic' => ['description' => '该规则所处理消息来源的具体Topic(不包含ProductKey类目),格式为:`${deviceName}/topicShortName`。其中,${deviceName}是具体设备的名称,topicShortName是Topic余下部分。'."\n" + .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', 'type' => 'string', 'example' => '+/user/pm25data'], + 'RuleDesc' => ['description' => '规则的描述信息。', 'type' => 'string', 'example' => 'rule1Desc'], + 'Name' => ['description' => '规则名称。', 'type' => 'string', 'example' => 'iotrules'], + 'Created' => ['description' => '该规则创建时的CST时间。', 'type' => 'string', 'example' => 'Thu Feb 28 14:14:33 CST 2019'], + 'Id' => ['description' => '规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100000'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemError', - 'errorMessage' => 'System exception.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRuleAction', - 'errorMessage' => 'The rule action is not found.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'Destination not found', - ], - [ - 'errorCode' => 'iot.rule.DestinationInUsing', - 'errorMessage' => 'Destination has been attached to parser', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteDestination', - 'summary' => '调用该接口删除已创建的数据目的。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用接口[CreateDestination](~~433032~~)创建数据目的成功后,若有业务需要,您可根据返回的**DestinationId**删除对应数据目的。'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"58D4CEC0-3E95-4DBE-AFC1-809D1400E52F\\",\\n \\"Success\\": true,\\n \\"RuleInfo\\": {\\n \\"Modified\\": \\"Thu Feb 28 14:20:58 CST 2019\\",\\n \\"Status\\": \\"STOP\\",\\n \\"DataType\\": \\"JSON\\",\\n \\"Select\\": \\"deviceName() as deviceName\\",\\n \\"UtcCreated\\": \\"2019-02-28T06:14:33.000Z\\",\\n \\"TopicType\\": 1,\\n \\"CreateUserId\\": 100000000000000,\\n \\"Where\\": \\"Temperature>35\\",\\n \\"ProductKey\\": \\"a1KiV******\\",\\n \\"UtcModified\\": \\"2019-02-28T06:20:58.000Z\\",\\n \\"Topic\\": \\"/a1QsMlL44pp/+/user/pm25data\\",\\n \\"ShortTopic\\": \\"+/user/pm25data\\",\\n \\"RuleDesc\\": \\"rule1Desc\\",\\n \\"Name\\": \\"iotrules\\",\\n \\"Created\\": \\"Thu Feb 28 14:14:33 CST 2019\\",\\n \\"Id\\": 100000\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n85648524-E5EE-418E-BD16-FAFBB4FF3645\\ntrue\\n\\n JSON\\n +/user/pm25data\\n a1QsMl****\\n 2019-12-23T03:34:45.000Z\\n 198426864326****\\n 2019-12-23T02:32:06.000Z\\n Ruff_rule1\\n RUNNING\\n \\n Mon Dec 23 10:32:06 CST 2019\\n Mon Dec 23 11:34:45 CST 2019\\n 1\\n /a1QsMlL****/+/user/pm25data\\n 425367\\n\\n","errorExample":""}]', + 'title' => '查询指定规则的详细信息', + 'summary' => '调用该接口查询指定规则的详细信息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetRuleAction' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DestinationId', + 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999', - 'minimum' => '0', - 'example' => '1004', - ], + 'schema' => ['description' => '要查询的规则动作ID。'."\n" + ."\n" + .'您可以通过以下方式查询规则动作ID:'."\n" + .'- 调用[CreateRuleAction](~~69586~~),返回的**ActionId**参数值。'."\n" + .'- 调用[ListRuleActions](~~69517~~),返回的**Id**参数值。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100001'], ], ], 'responses' => [ @@ -30315,179 +19409,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Destination' => [ - 'description' => '返回的数据目的信息。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'F2D0755D-F350-40FE-9A6D-491859DB5E5F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RuleActionInfo' => [ + 'description' => '调用成功时,返回的规则动作详细信息。详情参见以下参数。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '数据目的对应的状态。返回值:'."\n" - ."\n" - .'- **INIT**:初始配置中。'."\n" - .'- **NORMAL**:配置完成,正常可用。'."\n" - .'- **INVALID**:配置存在异常,不可用。'."\n" - .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', - 'type' => 'string', - 'example' => 'NORMAL', - ], - 'Type' => [ - 'description' => '数据目的的操作类型。'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'string', - 'example' => 'REPUBLISH', - ], - 'DestinationId' => [ - 'description' => '数据目的ID。', - 'type' => 'string', - 'example' => '1003', - ], - 'Configuration' => [ - 'description' => '数据目的对应的配置信息。', - 'type' => 'string', - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - 'Name' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'example' => 'DataPurpose', - ], - 'UtcCreated' => [ - 'description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'IsFailover' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'ErrorActionFlag' => ['description' => '该规则动作是否为转发错误操作数据的转发动作,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:该规则动作转发错误操作数据。'."\n" + .'- **false**:该规则动作不转发错误操作数据,而是正常转发操作。', 'type' => 'boolean', 'example' => 'false'], + 'Type' => ['description' => '规则动作类,取值:'."\n" + ."\n" + .'- **REPUBLISH**:转发到另一个topic。'."\n" + .'- **OTS**:存储到表格存储。'."\n" + .'- **MNS**:发送消息到消息服务。'."\n" + .'- **ONS**:发送数据到消息队列。'."\n" + .'- **TSDB**:存储到高性能时间序列数据库。'."\n" + .'- **FC**:发送数据到函数计算。'."\n" + .'- **DATAHUB**:发送数据到DataHub中。'."\n" + .'- **RDS**:存储数据到云数据库中。'."\n" + .'- **AMQP**:数据流转到AMQP消费组。'."\n" + ."\n", 'type' => 'string', 'example' => 'REPUBLISH'], + 'Configuration' => ['description' => '该规则动作的配置信息。', 'type' => 'string', 'example' => '{\\"topic\\":\\"/sys/a1zSA28****/device/thing/service/property/set\\",\\"topicType\\":0,\\"uid\\":\\"1231579*******\\"}'], + 'Id' => ['description' => '规则动作ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '100001'], + 'RuleId' => ['description' => '该规则动作对应的规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '152323'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'destination not found', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Destination\\": {\\n \\"Status\\": \\"NORMAL\\",\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": \\"1003\\",\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1003\\n DataPurpose\\n\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'GetDestination', - 'summary' => '调用该接口查询指定数据目的详细信息。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"F2D0755D-F350-40FE-9A6D-491859DB5E5F\\",\\n \\"Success\\": true,\\n \\"RuleActionInfo\\": {\\n \\"ErrorActionFlag\\": false,\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"topic\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"/sys/a1zSA28****/device/thing/service/property/set\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"topicType\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"uid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1231579*******\\\\\\\\\\\\\\"}\\",\\n \\"Id\\": 100001,\\n \\"RuleId\\": 152323\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n REPUBLISH\\r\\n 152323\\r\\n 100001\\r\\n \\r\\n /sys/a1zSA28****/device/thing/service/property/set\\r\\n 0\\r\\n 1231579*******\\r\\n \\r\\n false\\r\\n \\r\\n F2D0755D-F350-40FE-9A6D-491859DB5E5F\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询指定规则动作的详细信息', + 'summary' => '调用该接口查询指定规则动作的详细信息。', 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AttachParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999999', - 'minimum' => '1', - 'example' => '1000', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DataSourceId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], ], 'responses' => [ @@ -30495,145 +19497,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '1B6D50A7-F160-4D47-863C-EDEE25E26495'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时返回的数据。', + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => '场景联动规则在云端的状态。'."\n" + ."\n" + .'- 0:表示停止。'."\n" + ."\n" + .'- 1:表示启动。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RuleContent' => ['description' => '场景联动规则内容。', 'type' => 'string', 'example' => '{\\"action\\":[{\\"params\\":{\\"productKey\\":\\"a19luLB****\\",\\"propertyItems\\":{\\"LightAdjustLevel\\":10},\\"deviceName\\":\\"test01\\"},\\"uri\\":\\"action/device/setProperty\\"}],\\"trigger\\":{\\"params\\":{\\"cron\\":\\"22 13 20 1 *\\",\\"cronType\\":\\"linux\\"},\\"uri\\":\\"trigger/timer\\"},\\"type\\":\\"IFTTT\\",\\"sid\\":\\"9df954b33c854d469a507ef8d6******\\"}'], + 'GmtCreate' => ['description' => '场景联动规则的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1584085921000'], + 'GmtModified' => ['description' => '场景联动规则最后一次更新的时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1579493552000'], + 'RuleDescription' => ['description' => '场景联动规则描述。', 'type' => 'string', 'example' => '测试'], + 'RuleName' => ['description' => '场景联动规则的名称。', 'type' => 'string', 'example' => 'test'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'AttachParserDataSource', - 'summary' => '调用该接口为指定解析器关联指定数据源。', - 'description' => '## 使用说明'."\n" - .'已调用接口创建数据源([CreateParserDataSource](~~433011~~))和解析器([CreateParser](~~429044~~))。'."\n" - ."\n" - .'>'."\n" - .'1个解析器最多关联1个数据源,如果指定解析器已关联数据源,调用该接口会覆盖该解析器关联的原数据源。'."\n" - .'>'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"1B6D50A7-F160-4D47-863C-EDEE25E26495\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RuleStatus\\": 0,\\n \\"RuleContent\\": \\"{\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"params\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a19luLB****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"propertyItems\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":10},\\\\\\\\\\\\\\"deviceName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"test01\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"uri\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"action/device/setProperty\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"params\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"cron\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"22 13 20 1 *\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cronType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"linux\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"uri\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"trigger/timer\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"IFTTT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"sid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9df954b33c854d469a507ef8d6******\\\\\\\\\\\\\\"}\\",\\n \\"GmtCreate\\": 1584085921000,\\n \\"GmtModified\\": 1579493552000,\\n \\"RuleDescription\\": \\"测试\\",\\n \\"RuleName\\": \\"test\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 1B6D50A7-F160-4D47-863C-EDEE25E26495\\r\\n \\r\\n 1584085921000\\r\\n 1579493552000\\r\\n {\\"action\\":[{\\"params\\":{\\"productKey\\":\\"a19luLB****\\",\\"propertyItems\\":{\\"LightAdjustLevel\\":10},\\"deviceName\\":\\"test01\\"},\\"uri\\":\\"action/device/setProperty\\"}],\\"trigger\\":{\\"params\\":{\\"cron\\":\\"22 13 20 1 *\\",\\"cronType\\":\\"linux\\"},\\"uri\\":\\"trigger/timer\\"},\\"type\\":\\"IFTTT\\",\\"sid\\":\\"9df954b33c854d469a507ef8d6******\\"}\\r\\n 0\\r\\n test\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '获取场景联动规则详情', + 'summary' => '获取场景联动规则详情 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AttachDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetShareSpeechModelAudio' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IsFailover', - 'in' => 'query', - 'schema' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'required' => true, - 'example' => 'false', - ], + 'name' => 'ShareTaskId', + 'in' => 'formData', + 'schema' => ['description' => '分享任务的**任务ID**。'."\n" + ."\n" + .'您可在**千里传音语音播报服务**控制台的**分享语料管理**页面,获取**任务ID**。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999', - 'minimum' => '1', - 'example' => '1000', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'DestinationId', - 'in' => 'query', + 'name' => 'SpeechModelCodeList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '共享语料的**语料标识**列表,最多可传入10个**语料标识**。'."\n" + ."\n" + .'您可在**千里传音语音播报服务**控制台的**分享语料管理**下**任务详情**页面,获取**语料标识**。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '0', - 'example' => '1002', + 'example' => 'WSD****', + 'maxItems' => 10, ], ], ], @@ -30642,143 +19599,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'data' => [ + 'type' => 'array', + 'items' => ['description' => '语音文件的URL。', 'type' => 'string', 'example' => 'https://********'], + 'description' => '', + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'Destination not found', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - [ - 'errorCode' => 'iot.rule.SameDestinationExisted', - 'errorMessage' => 'The destination has been attached', - ], - [ - 'errorCode' => 'iot.ruleng.OnlyAllowOneErrorAction', - 'errorMessage' => 'You can specify only one destination to forward data errors in a rule', - ], - [ - 'errorCode' => 'iot.rule.TooManyRuleAction', - 'errorMessage' => 'The rule action exceeds the maximum number', - ], - [ - 'errorCode' => 'iot.rule.DestinationNotAvailable', - 'errorMessage' => 'destination not available', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'AttachDestination', - 'summary' => '调用该接口为解析器关联指定数据目的。', - 'description' => '## 使用说明'."\n" - .'已经创建数据目的([CreateDestination](~~433032~~))和解析器([CreateParser](~~429044~~))。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"data\\": [\\n \\"https://********\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n https://********\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetShareSpeechModelAudio', + 'summary' => '调用该接口获取共享语料的语音文件。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'DetachParserDataSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetShareTaskByDeviceOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'y4u2weAIrpp****WHMle1234'], ], [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '1', - 'example' => '1000', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], ], [ - 'name' => 'DataSourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a2Yw*****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], ], 'responses' => [ @@ -30786,128 +19693,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '返回的分享任务Code。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.rule.DataSourceNotExists', - 'errorMessage' => 'Datasource not existed', - ], - [ - 'errorCode' => 'iot.ruleng.RuleAlreadyIsStarted', - 'errorMessage' => 'The specified rule has already started', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.InstanceNotFound', 'errorMessage' => 'The instance ID does not exist.', 'description' => '实例ID不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'DetachParserDataSource', - 'summary' => '调用该接口删除解析器中的指定数据源。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nMd3ZiTL888K9llXDy7890***********\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetShareTaskByDeviceOpen', + 'summary' => '调用该接口根据设备信息查询分享任务。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为40。'."\n" ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DetachDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetShareTaskByDeviceOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetSoundCodeAudio' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParser](~~444814~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '1', - 'example' => '1000', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DestinationId', - 'in' => 'query', + 'name' => 'SoundCodeList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '数据目的ID。您可调用接口[ListDestination](~~433025~~),查询数据目的列表,获取**DestinationId**。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '声码的唯一标识列表,最多100个元素。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '0', - 'example' => '1002', + 'example' => 'Md3ZiTL888K9llXDy7890***********', + 'maxItems' => 50, ], ], ], @@ -30916,128 +19777,79 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'type' => 'array', + 'items' => ['description' => '声码音频下载地址列表。', 'type' => 'string', 'example' => '["http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********"]'], + 'description' => '', + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.destinationNotExists', - 'errorMessage' => 'Destination not found', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - [ - 'errorCode' => 'iot.rule.DestinationInUsing', - 'errorMessage' => 'Destination has been attached to parser', - ], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => '删除解析器的指定数据目的', - 'summary' => '删除解析器的指定数据目的。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n \\"[\\\\\\"http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n [\\"http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********\\"]\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetSoundCodeAudio', + 'summary' => '调用该接口获取声码音频下载地址。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListParserDestination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetSoundCodeSchedule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IsFailover', - 'in' => 'query', - 'schema' => [ - 'description' => '待查询数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**(默认):不是转发错误操作数据,而是正常转发操作。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9999999999', - 'minimum' => '0', - 'example' => '1002', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64********'], ], ], 'responses' => [ @@ -31045,305 +19857,363 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '排程详情。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'destinations' => [ - 'description' => '调用成功时,返回的数据目的列表数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '数据目的的操作类型。'."\n" - ."\n" - .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" - .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" - .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" - .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" - .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" - .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" - .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', - 'type' => 'string', - 'example' => 'REPUBLISH', - ], - 'DestinationId' => [ - 'description' => '数据目的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1003', - ], - 'UtcModified' => [ - 'description' => '修改数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-05-27T12:45:43.000Z', - ], - 'Configuration' => [ - 'description' => '数据目的对应的配置信息。', - 'type' => 'string', - 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}', - ], - 'Name' => [ - 'description' => '数据目的名称。', - 'type' => 'string', - 'example' => 'DataPurpose', - ], - 'UtcCreated' => [ - 'description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', - 'type' => 'string', - 'example' => '2022-03-27T12:45:43.000Z', - ], - 'IsFailover' => [ - 'description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" - ."\n" - .'- **true**:是转发错误操作数据。'."\n" - .'- **false**(默认):不是转发错误操作数据,而是正常转发操作。', - 'type' => 'boolean', - 'example' => 'false', - ], - ], - ], - ], + 'OpenType' => ['description' => '排程开放类型。'."\n" + ."\n" + .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" + ."\n" + .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', 'type' => 'string', 'example' => 'INNER'], + 'EndTime' => ['description' => '排程每日结束工作时间。', 'type' => 'string', 'example' => '23:59'], + 'Status' => ['description' => '排程状态。', 'type' => 'string', 'example' => 'WORKING'], + 'StartTime' => ['description' => '排程每日开始工作时间。', 'type' => 'string', 'example' => '00:00'], + 'EndDate' => ['description' => '排程结束工作日期。', 'type' => 'string', 'example' => '2022-03-28'], + 'Description' => ['description' => '排程描述。', 'type' => 'string', 'example' => 'test'], + 'ScheduleCode' => ['description' => '排程唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'GmtCreate' => ['description' => '排程创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'StartDate' => ['description' => '排程开始工作日期。', 'type' => 'string', 'example' => '2022-03-28'], + 'Name' => ['description' => '排程名称。', 'type' => 'string', 'example' => 'test'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.ListDestinationFailed', - 'errorMessage' => 'An error occurred while querying destinations', - ], + ['errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'errorMessage' => 'invalid schedule IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"destinations\\": [\\n {\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": 1003,\\n \\"UtcModified\\": \\"2022-05-27T12:45:43.000Z\\",\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n \\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n 2022-05-27T12:45:43.000Z\\n false\\n 1003\\n DataPurpose\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'ListParserDestination', - 'summary' => '调用该接口查询指定解析器关联的数据目的列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"OpenType\\": \\"INNER\\",\\n \\"EndTime\\": \\"23:59\\",\\n \\"Status\\": \\"WORKING\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"EndDate\\": \\"2022-03-28\\",\\n \\"Description\\": \\"test\\",\\n \\"ScheduleCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"StartDate\\": \\"2022-03-28\\",\\n \\"Name\\": \\"test\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 2022-03-28\\n WORKING\\n 1620634297000\\n test\\n 23:59\\n 00:00\\n Md3ZiTL888K9llXDy7890***********\\n 2022-03-28\\n test\\n INNER\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetSoundCodeSchedule', + 'summary' => '调用该接口查询声码排程详情。', 'description' => '## QPS限制'."\n" - ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PublishScript' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetSpeechDeviceDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。调用[QuerySpeechDevice](~~280408~~)可以获取该参数。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '查询结果。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备的状态。'."\n" + ."\n" + .'- **ONLINE**:在线。'."\n" + .'- **OFFLINE**:离线。'."\n" + .'- **UNACTIVE**:未激活。'."\n" + .'- **DISABLE**:禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'TotalSpace' => ['description' => '设备的总空间,单位KB。', 'type' => 'number', 'format' => 'float', 'example' => '2000'], + 'ProductKey' => ['description' => '产品的唯一标识。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'SpeechListUpdateTime' => ['description' => '设备中语料列表的更新时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620624606000'], + 'AvailableSpace' => ['description' => '设备的可用空间,单位KB。', 'type' => 'number', 'format' => 'float', 'example' => '200'], + 'IotId' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', 'type' => 'string', 'example' => '4de2c367****8c585e5992**'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"TotalSpace\\": 2000,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"SpeechListUpdateTime\\": 1620624606000,\\n \\"AvailableSpace\\": 200,\\n \\"IotId\\": \\"4de2c367****8c585e5992**\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n ONLINE\\n 4de2c367****8c585e5992**\\n 1620624606000\\n 200\\n 2000\\n a1BwAGV****\\n test\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询播报设备的详情', + 'summary' => '查询播报设备的详情,包括设备的状态、设备的可用空间等。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999', - 'minimum' => '0', - 'example' => '1001', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + ], + 'GetSpeechLicenseDeviceStatistics' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-e3***'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'SyntaxErrorMsg' => [ - 'description' => '发布解析器脚本失败时,返回的脚本语法错误信息。', - 'type' => 'string', - 'example' => 'script doesn\'t contains transmit function', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回结果。', + 'type' => 'object', + 'properties' => [ + 'AvailableQuota' => ['description' => '可用License数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ExpiredQuota' => ['description' => '已过期的License数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ExpiringQuota' => ['description' => '即将过期License数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.scriptSyntaxError', - 'errorMessage' => 'Script Syntax Error', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.AuthActionPermissionDeny', 'errorMessage' => 'The authorization fails.', 'description' => '鉴权失败。'], + ['errorCode' => 'iot.system.InstanceNotFound', 'errorMessage' => 'The instance ID does not exist.', 'description' => '实例ID不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AvailableQuota\\": 100,\\n \\"ExpiredQuota\\": 100,\\n \\"ExpiringQuota\\": 100\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 100\\n 100\\n 100\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'GetSpeechLicenseDeviceStatistics', + 'summary' => '调用该接口查询千里传音License设备统计。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechLicenseDeviceStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], - [ - 'errorCode' => 'iot.rule.EmptyScript', - 'errorMessage' => 'The script is empty.', + ], + ], + ], + 'GetSpeechVoice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'F94F72A5-82F0-496F-9AC2-3DBCFF77608A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '返回的语料播报声音列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => '声音标签,标注声音的适用场景,例如通用场景、客服场景、童声场景等。', 'type' => 'string', 'example' => '通用场景'], + 'Value' => ['description' => '声音值。', 'type' => 'string', 'example' => 'tongyong'], + 'VoiceList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '播报声音列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => '播报声音标签,标注声音的类型,例如标准男声、标准女声等。', 'type' => 'string', 'example' => '小云,标准女声'], + 'Value' => ['description' => '播报声音值,需要填入**Voice**参数的API,例如:'."\n" + .'[CreateSpeech](~~217571~~)、[TestSpeech](~~217575~~),传入该字段的值。', 'type' => 'string', 'example' => 'Xiaoyun'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"SyntaxErrorMsg\\": \\"script doesn\'t contains transmit function\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'PublishScript', - 'summary' => '调用该接口发布指定解析器中的脚本。', - 'description' => '## 使用说明'."\n" - .'已调用接口[SaveScript](~~433523~~)编辑并保存解析器的脚本草稿。'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"F94F72A5-82F0-496F-9AC2-3DBCFF77608A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"通用场景\\",\\n \\"Value\\": \\"tongyong\\",\\n \\"VoiceList\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"小云,标准女声\\",\\n \\"Value\\": \\"Xiaoyun\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nF94F72A5-82F0-496F-9AC2-3DBCFF77608A\\n\\n \\n \\n tongyong\\n \\n \\n \\n Xiaoyun\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '获取语料播报声音', + 'summary' => '获取语料播报的声音配置。', + 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SaveScript' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechVoice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetStudioAppTokenOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ParserId', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], ], [ - 'name' => 'ScriptDraft', - 'in' => 'query', - 'schema' => [ - 'description' => '解析器脚本。', - 'type' => 'string', - 'required' => true, - 'example' => 'var data = payload("json")', - ], + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123*******'], ], ], 'responses' => [ @@ -31351,116 +20221,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => 'Token数据。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'Token类型。', 'type' => 'string', 'example' => 'custom'], + 'IsEnable' => ['description' => '是否启用Token。'."\n" + .'- **YES**:是。'."\n" + .'- **NO**:否。', 'type' => 'string', 'example' => 'YES'], + 'BizId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a12*******'], + 'Token' => ['description' => 'Token值。', 'type' => 'string', 'example' => '25bf576a6c*******'], + 'BizType' => ['description' => '应用类型。', 'type' => 'string', 'example' => 'webApp'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.rule.EmptyScriptDraft', - 'errorMessage' => 'The script draft is empty', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - [ - 'errorCode' => 'iot.rule.ScriptLengthExceeds', - 'errorMessage' => 'The length of script is exceeded', - ], + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'SaveScript', - 'summary' => '调用该接口编辑并保存解析器的脚本草稿。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12*******\\",\\n \\"Token\\": \\"25bf576a6c*******\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n YES\\n custom\\n 25bf576a6c*******\\n webApp\\n a12*******\\n \\n true\\n ","errorExample":""}]', + 'title' => 'GetStudioAppTokenOpen', + 'summary' => '调用该接口查询应用鉴权Token。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'StartParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetThingModelStatusInner' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'InsId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'ParserId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -31468,27 +20293,21 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['type' => 'integer', 'format' => 'int32'], + 'Message' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'LocalizedMsg' => ['type' => 'string'], + 'Data' => [ + 'type' => 'object', + 'properties' => [ + 'RbacTenantId' => ['type' => 'string'], + 'Status' => ['type' => 'integer', 'format' => 'int32'], + 'ProductKey' => ['type' => 'string'], + 'ModifiedTime' => ['type' => 'integer', 'format' => 'int64'], + 'OutTime' => ['type' => 'integer', 'format' => 'int64'], + 'InstanceId' => ['type' => 'string'], + 'Info' => ['type' => 'string'], + ], ], ], ], @@ -31496,104 +20315,84 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.EmptyScript', - 'errorMessage' => 'The script is empty.', - ], - [ - 'errorCode' => 'iot.rule.DestinationNotBound', - 'errorMessage' => 'The connector has not destination.', - ], - [ - 'errorCode' => 'iot.rule.StartRuleFailed', - 'errorMessage' => 'An error occurred while starting the rule.', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - [ - 'errorCode' => 'iot.rule.scriptSyntaxError', - 'errorMessage' => 'Script Syntax Error', - ], - [ - 'errorCode' => 'iot.common.TooManyRequest', - 'errorMessage' => 'Request frequency is too high', - ], - [ - 'errorCode' => 'iot.rule.NoDataSourceBound', - 'errorMessage' => 'no datasource bound', + ['errorCode' => 'Request.param.error', 'errorMessage' => 'Request.param.error. %d.', 'description' => '请求参数错误。%d。'], + ['errorCode' => 'Product.not.found', 'errorMessage' => 'Product.not.found.', 'description' => '产品找不到。'], + ['errorCode' => 'Product.Key.Invalid', 'errorMessage' => 'Product key is invalid.', 'description' => '产品key无效。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetThingModelStatusInner', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'StartParser', - 'summary' => '调用该接口启动解析器。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"LocalizedMsg\\": \\"\\",\\n \\"Data\\": {\\n \\"RbacTenantId\\": \\"\\",\\n \\"Status\\": 0,\\n \\"ProductKey\\": \\"\\",\\n \\"ModifiedTime\\": 0,\\n \\"OutTime\\": 0,\\n \\"InstanceId\\": \\"\\",\\n \\"Info\\": \\"\\"\\n }\\n}","type":"json"}]', ], - 'StopParser' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'GetThingModelTsl' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-n8t***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ParserId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '99999999999', - 'minimum' => '0', - 'example' => '1001', - ], + 'schema' => ['description' => '产品的ProductKey。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'ModelVersion', + 'in' => 'query', + 'schema' => ['description' => '要查询的物模型版本号。'."\n" + ."\n" + .'不传入此参数,则将返回未发布上线的草稿版物模型TSL。', 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], + ], + [ + 'name' => 'Simple', + 'in' => 'query', + 'schema' => ['description' => '是否获取精简版物模型信息。'."\n" + ."\n" + .'- **true**:获取精简版物模型TSL。'."\n" + ."\n" + .' 精简版物模型TSL中仅包含属性、服务、事件及入参和出参的标识符(**identifier**)和数据类型(**dataType**),可供设备端开发人员参考。'."\n" + ."\n" + .'- **false**:获取完整的物模型TSL。'."\n" + ."\n" + .' 完整物模型TSL中包含属性、服务和事件定义的所有参数和取值,可供云端应用开发人员参考。'."\n" + ."\n" + .'不传入此参数,则默认为false,获取完整的物模型信息。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -31601,227 +20400,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的物模型信息。', + 'type' => 'object', + 'properties' => [ + 'TslUri' => ['description' => '物模型数据在对象存储(OSS)上的存储地址URI。返回的URI有效期为60分钟。', 'type' => 'string', 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******'], + 'TslStr' => ['description' => '物模型的TSL字符串。', 'type' => 'string', 'example' => '{\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\"}]}'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.rule.StopRuleFailed', - 'errorMessage' => 'An error occurred while stopping the rule.', - ], - [ - 'errorCode' => 'iot.rule.NoDataSourceBound', - 'errorMessage' => 'no datasource bound', - ], - [ - 'errorCode' => 'iot.rule.NotFoundRule', - 'errorMessage' => 'there are no rules', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', - 'title' => 'StopParser', - 'summary' => '调用该接口停止解析器运行。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TslUri\\": \\"https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\",\\n \\"TslStr\\": \\"{\\\\\\\\\\\\\\"schema\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a14TeWI****\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Humidity\\\\\\\\\\\\\\"}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\n {\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14T***\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"events\\":[{\\"identifier\\":\\"post\\",\\"name\\":\\"post\\",\\"type\\":\\"info\\",\\"required\\":true,\\"desc\\":\\"属性上报\\",\\"method\\":\\"thing.event.property.post\\",\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}],\\"services\\":[{\\"identifier\\":\\"set\\",\\"name\\":\\"set\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性设置\\",\\"method\\":\\"thing.service.property.set\\",\\"inputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"outputData\\":[]},{\\"identifier\\":\\"get\\",\\"name\\":\\"get\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性获取\\",\\"method\\":\\"thing.service.property.get\\",\\"inputData\\":[\\"Humidity\\",\\"Temperature\\"],\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}]}\\n\\nC4371E68-F6DB-4D7B-8AD0-D38336E1DF94\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定产品的物模型TSL', + 'summary' => '调用该接口查询指定产品的物模型TSL。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'ListAnalyticsData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingModelTsl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetThingModelTslPublished' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'API所在实例的实例ID。'."\n" - ."\n" - .'更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-cn-npk1u******', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ApiPath', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'API路径。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看**API Path**的值。具体操作,请参见[查看与使用](~~206247~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '/iot-cn-npk1v******/system/query/hist_dev_cnt_stat', - ], + 'schema' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PageNum', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页的内容。默认值为 1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '1000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], ], [ - 'name' => 'PageSize', + 'name' => 'Simple', 'in' => 'query', - 'schema' => [ - 'description' => '每页显示结果的条数。'."\n" - ."\n" - .'返回结果中,每页显示的记录数量。最大取值100,最小取值1,默认取值为100。'."\n" - .'> 开启分页时必传。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '20000', - 'minimum' => '1', - 'example' => '100', - 'default' => '100', - ], + 'schema' => ['description' => '是否获取精简版物模型信息。'."\n" + ."\n" + .'- **true**:获取精简版物模型TSL。精简版物模型TSL中仅包含属性、服务、事件及入参、出参的标识符(**identifier**)、数据类型(**dataType**),可供设备端开发人员参考。'."\n" + ."\n" + .'- **false**(默认):获取完整的物模型TSL。完整物模型TSL中包含属性、服务和事件定义的所有参数和取值,可供云端应用开发人员参考。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'IsoId', + 'name' => 'ModelVersion', 'in' => 'query', - 'schema' => [ - 'description' => '逻辑隔离ID。请忽略该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'oxs_iso_id', - ], + 'schema' => ['description' => '物模型版本号。'."\n" + ."\n" + .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" + ."\n" + .'为空时返回已发布的最新版本。'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], ], [ - 'name' => 'Condition', + 'name' => 'FunctionBlockId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '查询条件列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Operate' => [ - 'description' => '比较运算符。'."\n" - ."\n" - .'仅支持`bt`、`eq`、`neq`、`rlike`、`in`或`nin`,及其对应的操作符`BETWEEN`、`=`、`!=`、`LIKE`、`IN`、`NIN`。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看请求参数的对应操作符。具体操作,请参见[查看与使用](~~206247~~)。'."\n" - ."\n" - .'- `BETWEEN`:请求参数赋值为特定范围。'."\n" - .'- `=`:请求参数赋值为特定值。'."\n" - .'- `!=`:请求参数赋值不为特定值。'."\n" - .'- `LIKE`:请求参数赋值以特定值为首。'."\n" - .'- `IN`:请求参数赋值属于特定集合。'."\n" - .'- `NIN`:请求参数赋值不属于特定集合。'."\n" - ."\n" - .'例如,数据集有6条记录(对应的`time`分别为`abcd`、`abce`、`abcf`、`abcg`、`aabc`和`abbc`),调用该接口时,`Condition.N.FieldName="time"`:'."\n" - ."\n" - .'- 如果`Condition.N.Operate="LIKE"`、`Condition.N.Value="abc"`,则返回`time=abcd`、`time=abce`、`time=abcf`和`time=abcg`的所有记录。'."\n" - .'- 如果`Condition.N.Operate="IN"`、`Condition.N.Value="[abcd,abce,abcf]"`,则返回`time=abcd`、`time=abce`和`time=abcf`的所有记录。'."\n" - ."\n" - .'> 如果该参数取值为`BETWEEN`,则**Condition.N.BetweenStart**和**Condition.N.BetweenEnd**必传。如果该参数取值不为`BETWEEN`,则**Condition.N.Value**必传。', - 'type' => 'string', - 'required' => true, - 'example' => '=', - ], - 'Value' => [ - 'description' => '比较值。即服务API请求参数的赋值。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看请求参数的赋值情况。具体操作,请参见[查看与使用](~~206247~~)。'."\n" - ."\n" - .'> 当**Condition.N.Operate**取值不为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.BetweenStart**和**Condition.N.BetweenEnd**。', - 'type' => 'string', - 'required' => false, - 'example' => '4', - ], - 'FieldName' => [ - 'description' => '对应服务API设置的请求参数名。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看**请求参数**的值。具体操作,请参见[查看与使用](~~206247~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'testCode', - ], - 'BetweenEnd' => [ - 'description' => '服务API请求参数表示范围时的终止值。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看请求参数的取值范围。具体操作,请参见[查看与使用](~~206247~~)。'."\n" - .'> 当**Condition.N.Operate**取值为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.Value**。', - 'type' => 'string', - 'required' => false, - 'example' => '5', - ], - 'BetweenStart' => [ - 'description' => '服务API请求参数表示范围时的起始值。'."\n" - ."\n" - .'您可在**数据API**的API详情页面,查看请求参数的取值范围。具体操作,请参见[查看与使用](~~206247~~)。'."\n" - .'> 当**Condition.N.Operate**取值为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.Value**。', - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -31829,223 +20511,179 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - ."\n" - .'- **Success**:表示成功。'."\n" - .'- 其他:表示错误,更多信息,请参见[错误码](~~135176~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'insuficient auth:无访问权限', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7EC5B624-AF1B-4C4D-BA82-A02BA1******', - ], - 'Success' => [ - 'description' => '表示是否调用成功:'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的数据信息。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'ResultJson' => [ - 'description' => '符合条件的数据详情。', - 'type' => 'string', - 'example' => '[{\\"testCode\\":\\"TBB186\\",\\"testLevel\\":5,\\"testWorkYears\\":3,\\"testName\\":\\"王五\\"},{\\"testCode\\":\\"TBB1314\\",\\"testLevel\\":2,\\"testWorkYears\\":4,\\"testName\\":\\"李四\\"},{\\"testCode\\":\\"TBB8888\\",\\"testLevel\\":2,\\"testWorkYears\\":5,\\"testName\\":\\"熊大\\"}]"', - ], - 'PageNum' => [ - 'description' => '分页的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示结果的最大条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'Count' => [ - 'description' => '符合查询条件的记录总条数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '3', - ], - 'HasNext' => [ - 'description' => '符合条件的数据是否有下一页:'."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。', - 'type' => 'boolean', - 'example' => 'false', - ], + 'TslUri' => ['description' => '物模型数据在对象存储(OSS)上的存储地址URI。返回的URI有效期为60分钟。', 'type' => 'string', 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******'], + 'TslStr' => ['description' => '物模型的TSL字符串。', 'type' => 'string', 'example' => '{\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\"}]}'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'LossOfUserInformation', - 'errorMessage' => 'lost of user info:%s', - ], - [ - 'errorCode' => 'InvalidParameter', - 'errorMessage' => 'invalid parameter:%s', - ], - [ - 'errorCode' => 'InsufficientAuthority', - 'errorMessage' => 'insuficient auth:%s', - ], - [ - 'errorCode' => 'RequestFailed', - 'errorMessage' => 'source data does not exist', - ], - [ - 'errorCode' => 'iot.dap.insight.dataApiNotDeploy', - 'errorMessage' => 'The current API operation is not deployed.', - ], - [ - 'errorCode' => 'iot.dap.insight.apiQueryParamError', - 'errorMessage' => 'A query parameter error occurred.', - ], - [ - 'errorCode' => 'iot.dap.insight.pipelineProcessError', - 'errorMessage' => 'pipeline processing error', - ], - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', - ], - [ - 'errorCode' => 'iot.dap.insight.dopQueryApiError', - 'errorMessage' => 'dop query api error', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"insuficient auth:无访问权限\\",\\n \\"RequestId\\": \\"7EC5B624-AF1B-4C4D-BA82-A02BA1******\\",\\n \\"Success\\": false,\\n \\"Data\\": {\\n \\"ResultJson\\": \\"[{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB186\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":5,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":3,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"王五\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB1314\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":4,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"李四\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB8888\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":5,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"熊大\\\\\\\\\\\\\\"}]\\\\\\"\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 100,\\n \\"Count\\": 3,\\n \\"HasNext\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7EC5B624-AF1B-4C4D-BA82-A02BA1******\\n\\n [{\\\\\\"testCode\\\\\\":\\\\\\"TBB186\\\\\\",\\\\\\"testLevel\\\\\\":5,\\\\\\"testWorkYears\\\\\\":3,\\\\\\"testName\\\\\\":\\\\\\"王五\\\\\\"},{\\\\\\"testCode\\\\\\":\\\\\\"TBB1314\\\\\\",\\\\\\"testLevel\\\\\\":2,\\\\\\"testWorkYears\\\\\\":4,\\\\\\"testName\\\\\\":\\\\\\"李四\\\\\\"},{\\\\\\"testCode\\\\\\":\\\\\\"TBB8888\\\\\\",\\\\\\"testLevel\\\\\\":2,\\\\\\"testWorkYears\\\\\\":5,\\\\\\"testName\\\\\\":\\\\\\"熊大\\\\\\"}]\\"\\n 100\\n 1\\n 3\\n false\\n\\nSuccess\\ntrue\\n","errorExample":""}]', - 'title' => 'ListAnalyticsData', - 'summary' => '调用该接口执行数据服务API对应的查询任务,从而获取数据源里的指定数据。', - 'description' => '## 使用限制'."\n" - .'每个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TslUri\\": \\"https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\",\\n \\"TslStr\\": \\"{\\\\\\\\\\\\\\"schema\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a14TeWI****\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"Humidity\\\\\\\\\\\\\\"}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14T******/model.json?Expires=1581947119&OSSAccessKeyId=LTAI****************&Signature=5i38******\\n {\\"schema\\":\\"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json\\",\\"profile\\":{\\"productKey\\":\\"a14TeWI****\\"},\\"properties\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"accessMode\\":\\"rw\\",\\"required\\":false,\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"events\\":[{\\"identifier\\":\\"post\\",\\"name\\":\\"post\\",\\"type\\":\\"info\\",\\"required\\":true,\\"desc\\":\\"属性上报\\",\\"method\\":\\"thing.event.property.post\\",\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}],\\"services\\":[{\\"identifier\\":\\"set\\",\\"name\\":\\"set\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性设置\\",\\"method\\":\\"thing.service.property.set\\",\\"inputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}],\\"outputData\\":[]},{\\"identifier\\":\\"get\\",\\"name\\":\\"get\\",\\"required\\":true,\\"callType\\":\\"async\\",\\"desc\\":\\"属性获取\\",\\"method\\":\\"thing.service.property.get\\",\\"inputData\\":[\\"Humidity\\",\\"Temperature\\"],\\"outputData\\":[{\\"identifier\\":\\"Humidity\\",\\"name\\":\\"湿度\\",\\"dataType\\":{\\"type\\":\\"int\\",\\"specs\\":{\\"min\\":\\"55\\",\\"max\\":\\"60\\",\\"unit\\":\\"%\\",\\"step\\":\\"1\\"}}},{\\"identifier\\":\\"Temperature\\",\\"name\\":\\"温度\\",\\"dataType\\":{\\"type\\":\\"float\\",\\"specs\\":{\\"min\\":\\"26\\",\\"max\\":\\"28\\",\\"unit\\":\\"°C\\",\\"step\\":\\"0.01\\"}}}]}]}\\n\\nC4371E68-F6DB-4D7B-8AD0-D38336E1DF94\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定产品的已发布物模型TSL', + 'summary' => '调用该接口查询指定产品的已发布物模型TSL。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n", 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'WriteDevicesHotStorageData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingModelTslPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetThingScript' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '产品**ProductKey**。'."\n" + ."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'ScriptType' => ['description' => '脚本类型。返回值:'."\n" + ."\n" + .'- JavaScript'."\n" + .'- Python_27:表示Python 2.7'."\n" + .'- PHP_72:表示PHP 7.2', 'type' => 'string', 'example' => 'JavaScript'], + 'ScriptUrl' => ['description' => '脚本内容的URL下载地址。', 'type' => 'string', 'example' => 'http://***'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ScriptType\\": \\"JavaScript\\",\\n \\"ScriptUrl\\": \\"http://***\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n JavaScript\\n http://***\\n\\n6DDF9D04-24C3-40D8-B490-2A528E59EA67\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定产品的数据解析脚本', + 'summary' => '调用该接口查询指定产品的数据解析脚本。', + 'description' => '## 使用说明'."\n" + .'数据解析脚本用于将设备上报的自定义格式数据转换为JSON结构体。脚本类型支持JavaScript、Python 2.7、PHP 7.2,更多信息,请参见[提交数据解析脚本](~~149963~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'GetThingTemplate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'IotId', + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'y4u2weAI********HMle1234', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'UserTopic', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" - ."\n" - .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'user/a***/b***', - ], + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], ], [ - 'name' => 'Items', + 'name' => 'CategoryKey', 'in' => 'query', - 'schema' => [ - 'description' => '写入的数据,固定为如下JSON数据结构。'."\n" - ."\n" - .'```'."\n" - .'{'."\n" - .' "key1": {'."\n" - .' "value":xxx1'."\n" - .' "time":yyy1'."\n" - .' },'."\n" - .' "key2": {'."\n" - .' "value":xxx2'."\n" - .' "time":yyy2'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" - ."\n" - .'- **key1**、**key2**为字段标识符,每个**Items**可包含多个字段。'."\n" - .'- **value**为字段对应的值,支持数据类型为int32、float、double、text、date、bool、enum、struct和array。详细说明,请参见[支持的数据类型](~~358843~~)。'."\n" - .'- **time**:字段值对应的UTC时间戳,单位为毫秒。', - 'type' => 'string', - 'required' => true, - 'example' => '{ "Power": { "value": "on", "time": 1524448722000 }, "WF": { "value": 23.6, "time": 1524448722000 } }', - ], + 'schema' => ['description' => '要查询的品类的标识符。'."\n" + .'可以从调用[ListThingTemplates](~~150316~~)的返回数据中,查看各品类的CategoryKey。', 'type' => 'string', 'required' => false, 'example' => 'Lighting'], ], ], 'responses' => [ @@ -32053,264 +20691,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ThingModelJSON' => ['description' => '调用成功时,返回的物模型功能定义,格式为:'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "properties":[],//属性列表'."\n" + .' "services":[],//服务列表'."\n" + .' "events":[]//事件列表'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'功能信息中包含的具体参数结构,请参见[物模型格式](~~73727~~)。', 'type' => 'string', 'example' => '{ "properties":[],"services":[], "events":[]}'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The DeviceName format is invalid.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The DeviceName parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.device.SetDevicePropertyFailed', - 'errorMessage' => 'An error occurred while setting the device properties.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is invalid.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.messagebroker.HALFCONN', - 'errorMessage' => 'The specified operation has failed. The device is in an inactive status.', - ], - [ - 'errorCode' => 'iot.messagebroker.OFFLINE', - 'errorMessage' => 'The specified operation has failed. The device is offline.', - ], - [ - 'errorCode' => 'iot.prod.QueryProductAbilitiesFailed', - 'errorMessage' => 'An error occurred while querying the product features.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptMethodNotFound', - 'errorMessage' => 'Method is not found in script.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptExecutionTimeout', - 'errorMessage' => 'Script execution timeout.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptExecutionOomException', - 'errorMessage' => 'Script execution is out of memory.', - ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.device.InvalidIoTId', - 'errorMessage' => 'The specified device ID is invalid.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptExecutionException', - 'errorMessage' => 'Script execution exception.', - ], - [ - 'errorCode' => 'iot.prod.QueryPropertyNotFound', - 'errorMessage' => 'Query property not found.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptDataFormatException', - 'errorMessage' => 'Script function result format is incorrect.', - ], - [ - 'errorCode' => 'iot.dataalgo.ScriptRelationNotExist', - 'errorMessage' => 'Script relation not exist.', - ], - [ - 'errorCode' => 'iot.tsl.TslParseError', - 'errorMessage' => 'TSLlParseError: %s.', - ], - [ - 'errorCode' => 'iot.tsl.InvalidFormattedTslError', - 'errorMessage' => 'The TSL format is invalid.', - ], - [ - 'errorCode' => 'iot.tsl.InvalidHistoryTimestampError', - 'errorMessage' => 'The history timestamp is invalid.', - ], - [ - 'errorCode' => 'iot.storage.HotStorageCapacityNotEnough', - 'errorMessage' => 'The timeline storage capacity not enough.', - ], - [ - 'errorCode' => 'iot.storage.HotStorageIopsWriteNotEnough', - 'errorMessage' => 'The timeline storage write IOPS is not enough.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => 'WriteDevicesHotStorageData', - 'summary' => '调用该接口将设备自定义Topic数据写入热数据存储空间。', - 'description' => '## 使用说明'."\n" - .'仅华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例下,支持调用该接口写入热数据。'."\n" - ."\n" - .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" - ."\n" - .'## 使用限制'."\n" - .'调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。'."\n", + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ThingModelJSON\\": \\"{ \\\\\\"properties\\\\\\":[],\\\\\\"services\\\\\\":[], \\\\\\"events\\\\\\":[]}\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n{\\"services\\":[{\\"callType\\":\\"ASYNC\\",\\"custom\\":false,\\"description\\":\\"\\",\\"identifier\\":\\"TimeReset\\",\\"inputParams\\":[{\\"custom\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"TEXT\\",\\"length\\":255},\\"dataType\\":\\"TEXT\\",\\"direction\\":\\"PARAM_INPUT\\",\\"identifier\\":\\"TimeReset\\",\\"name\\":\\"TimeReset\\",\\"paraOrder\\":0}],\\"outputParams\\":[],\\"required\\":false,\\"serviceName\\":\\"设备校时服务\\"},{\\"callType\\":\\"ASYNC\\",\\"custom\\":false,\\"description\\":\\"\\",\\"identifier\\":\\"SetTimerTask\\",\\"inputParams\\":[],\\"outputParams\\":[{\\"custom\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"TEXT\\",\\"length\\":255},\\"dataType\\":\\"TEXT\\",\\"direction\\":\\"PARAM_OUTPUT\\",\\"identifier\\":\\"SetTimer\\",\\"name\\":\\"SetTimer\\",\\"paraOrder\\":0}],\\"required\\":false,\\"serviceName\\":\\"时间任务下发\\"}],\\"properties\\":[{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"\\",\\"identifier\\":\\"LightStatus\\",\\"name\\":\\"工作状态\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"100\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"%\\",\\"unitName\\":\\"百分比\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"调光等级采用百分比表示\\",\\"identifier\\":\\"LightAdjustLevel\\",\\"name\\":\\"调光等级\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"4\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"显示设备电压;电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"LightVolt\\",\\"name\\":\\"工作电压\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"9\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"LightCurrent\\",\\"name\\":\\"工作电流\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"1000\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"W\\",\\"unitName\\":\\"瓦特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"ActivePower\\",\\"name\\":\\"有功功率值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"1\\",\\"min\\":\\"0.01\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"pF\\",\\"unitName\\":\\"皮法\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"PowerRatio\\",\\"name\\":\\"功率因数\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"2147483647\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"kW·h\\",\\"unitName\\":\\"千瓦·时\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"耗电量;电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"PowerConsumption\\",\\"name\\":\\"用电量\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"电参数采用4个字节浮点型数据\\",\\"identifier\\":\\"DrainVoltage\\",\\"name\\":\\"漏电压\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"90\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"路灯的倾斜角度;采用1个字节16进制数\\",\\"identifier\\":\\"TiltValue\\",\\"name\\":\\"倾斜角度值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"1000\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"W\\",\\"unitName\\":\\"瓦特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"故障功率门限\\",\\"identifier\\":\\"ErrorPowerThreshold\\",\\"name\\":\\"故障功率门限\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"FLOAT\\",\\"max\\":\\"9\\",\\"min\\":\\"0.1\\",\\"precise\\":7,\\"step\\":\\"0.1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"FLOAT\\",\\"description\\":\\"\\",\\"identifier\\":\\"ErrorCurrentThreshold\\",\\"name\\":\\"故障电流门限\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"90\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"TiltThreshold\\",\\"name\\":\\"倾斜阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"UnderVoltThreshold\\",\\"name\\":\\"欠压阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"9\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"A\\",\\"unitName\\":\\"安培\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"OverCurrentThreshold\\",\\"name\\":\\"过流阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"400\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"V\\",\\"unitName\\":\\"伏特\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"OverVoltThreshold\\",\\"name\\":\\"过压阈值\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"LightErrorEnable\\",\\"name\\":\\"灯具故障使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverCurrentEnable\\",\\"name\\":\\"过流告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverVoltEnable\\",\\"name\\":\\"过压告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"UnderVoltEnable\\",\\"name\\":\\"欠压告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"LeakageEnable\\",\\"name\\":\\"漏电告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"打开\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"关闭\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1:打开,0:关闭\\",\\"identifier\\":\\"OverTiltEnable\\",\\"name\\":\\"倾斜告警使能\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"LampError\\",\\"name\\":\\"灯具故障告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverCurrentError\\",\\"name\\":\\"过流告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverVoltError\\",\\"name\\":\\"过压告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"UnderVoltError\\",\\"name\\":\\"欠压告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"OverTiltError\\",\\"name\\":\\"倾斜告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"告警\\",\\"value\\":1},{\\"dataType\\":\\"BOOL\\",\\"name\\":\\"正常\\",\\"value\\":0}],\\"dataType\\":\\"BOOL\\",\\"description\\":\\"1-告警;0-正常\\",\\"identifier\\":\\"LeakageError\\",\\"name\\":\\"漏电告警\\",\\"required\\":true,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecsList\\":[{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"经度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"180\\",\\"min\\":\\"-180\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[0].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"°\\",\\"min\\":\\"-180\\",\\"unitName\\":\\"度\\",\\"max\\":\\"180\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"longitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"纬度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"180\\",\\"min\\":\\"-180\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"°\\",\\"unitName\\":\\"度\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[1].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"°\\",\\"min\\":\\"-180\\",\\"unitName\\":\\"度\\",\\"max\\":\\"180\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"latitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"DOUBLE\\",\\"childName\\":\\"高度\\",\\"childSpecsDTO\\":{\\"dataType\\":\\"DOUBLE\\",\\"max\\":\\"9999\\",\\"min\\":\\"0\\",\\"precise\\":7,\\"step\\":\\"0.01\\",\\"unit\\":\\"m\\",\\"unitName\\":\\"米\\"},\\"dataSpecs\\":{\\"$ref\\":\\"$.properties[27].dataSpecsList[2].childSpecsDTO\\"},\\"dataSpecsObject\\":{\\"unit\\":\\"m\\",\\"min\\":\\"0\\",\\"unitName\\":\\"米\\",\\"max\\":\\"9999\\",\\"dataType\\":\\"double\\",\\"step\\":\\"0.01\\",\\"precise\\":7},\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"altitude\\",\\"name\\":\\"地理位置\\"},{\\"childDataType\\":\\"ENUM\\",\\"childEnumSpecsDTO\\":[{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"WGS_84\\",\\"value\\":1},{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"GCJ_02\\",\\"value\\":2}],\\"childName\\":\\"坐标系统\\",\\"dataSpecsArray\\":[{\\"dataType\\":\\"enum\\",\\"name\\":\\"WGS_84\\",\\"value\\":\\"1\\"},{\\"dataType\\":\\"enum\\",\\"name\\":\\"GCJ_02\\",\\"value\\":\\"2\\"}],\\"dataSpecsList\\":[{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"WGS_84\\",\\"value\\":1},{\\"dataType\\":\\"ENUM\\",\\"name\\":\\"GCJ_02\\",\\"value\\":2}],\\"dataType\\":\\"STRUCT\\",\\"identifier\\":\\"CoordinateSystem\\",\\"name\\":\\"地理位置\\"}],\\"dataType\\":\\"STRUCT\\",\\"description\\":\\"\\",\\"identifier\\":\\"GeoLocation\\",\\"name\\":\\"地理位置\\",\\"required\\":true,\\"rwFlag\\":\\"READ_WRITE\\",\\"std\\":true},{\\"custom\\":false,\\"customFlag\\":false,\\"dataSpecs\\":{\\"dataType\\":\\"INT\\",\\"max\\":\\"65535\\",\\"min\\":\\"0\\",\\"precise\\":0,\\"step\\":\\"1\\",\\"unit\\":\\"LUX\\",\\"unitName\\":\\"照度\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"\\",\\"identifier\\":\\"LightLux\\",\\"name\\":\\"光照值\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":true}],\\"events\\":[]}\\nB79DEAAF-74F3-4AFF-95C3-FC8CDB8B831A\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定品类的物模型信息', + 'summary' => '调用该接口查询指定品类的物模型信息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevicesHotStorageDataStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GetThingTopo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数,最多不可超过50条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '201', - 'minimum' => '0', - 'example' => '10', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大值不超过50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '网关设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], - ], - [ - 'name' => 'NextPageToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', - ], + 'schema' => ['description' => '网关设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'Asc', + 'name' => 'PageNo', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中数据记录的排序方式,取值:'."\n" - ."\n" - .'- **0**:倒序。'."\n" - .'- **1**:正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '5', - 'minimum' => '0', - 'example' => '0', - ], + 'schema' => ['description' => '从返回结果中的第几页开始显示。'."\n" + ."\n" + .'查询数据最多不能超过10,000条,**PageNo**值不能超过数据能显示的页数。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'y4u2weAI********HMle1234', - ], - ], - [ - 'name' => 'UserTopic', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询数据所属自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" - ."\n" - .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'user/a***/b***', - ], + 'schema' => ['description' => '网关设备ID。物联网平台为该网关设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -32318,302 +20797,243 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功后,返回的数据。', + 'description' => '调用成功时,返回的数据。详情请参见以下参数。', 'type' => 'object', 'properties' => [ - 'NextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'PropertyStatusDataInfo' => [ - 'description' => '快照数据集合。', + 'deviceInfo' => [ + 'description' => '子设备信息集合(**deviceInfo**)。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Identifier' => [ - 'description' => '字段标识符。', - 'type' => 'string', - 'example' => 'Temperture', - ], - 'Value' => [ - 'description' => '字段值。', - 'type' => 'string', - 'example' => '22', - ], - 'Time' => [ - 'description' => '字段值对应时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1517553572362', - ], + 'ProductKey' => ['description' => '子设备所属的产品ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '子设备名称。', 'type' => 'string', 'example' => 'light'], + 'IotId' => ['description' => '子设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.device.PageTokenIsIllegal', - 'errorMessage' => 'The paging token is invalid.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.device.InvalidTimeBucket', - 'errorMessage' => 'The specified time range is invalid.', - ], - [ - 'errorCode' => 'iot.common.InvalidPageParams', - 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey parameter cannot be empty.', - ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The DeviceName format is invalid.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is invalid.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.device.InvalidIoTId', - 'errorMessage' => 'The specified device ID is invalid.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The DeviceName parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.storage.HotStorageIopsReadNotEnough', - 'errorMessage' => 'The timeline storage read IOPS is not enough.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyStatusDataInfo\\": [\\n {\\n \\"Identifier\\": \\"Temperture\\",\\n \\"Value\\": \\"22\\",\\n \\"Time\\": 1517553572362\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n true\\n Bo***x44Qx\\n \\n \\n Temperture\\n 22\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryDevicesHotStorageDataStatus', - 'summary' => '调用该接口查询设备热数据的快照数据。', - 'description' => '## 使用说明'."\n" - .'仅华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例下,支持调用该接口查询热数据。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"deviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 1\\n 2\\n 1\\n TGlzdFJlc291***\\n \\n \\n APItest\\n a1T27vz****\\n vWxNur6BUApsqjv****000100\\n \\n \\n 1\\n\\n93F05C63-9FD1-4CC8-B0FF-6D6C1A6632D1\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的拓扑关系', + 'summary' => '调用该接口查询指定网关设备的子设备列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .'## 使用限制'."\n" - .'调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。', + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n\n" + ."\n\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDevicesHotStorageData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'GisQueryDeviceLocation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'ThingList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', + 'description' => '设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '要查询设备所属产品的ProductKey列表。'."\n" + .'ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。'."\n" + .'>每个设备的 **ProductKey**与**DeviceName**必须同时传入,且设备个数不能超过20个。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'g3r****Vjta'], + 'DeviceName' => ['description' => '要查询的设备名列表。'."\n" + .'>每个设备的 **ProductKey**与**DeviceName**必须同时传入,且设备个数不能超过20个。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'mock_device_name'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'iot-2w****', + 'maxItems' => 20, ], ], [ - 'name' => 'PageSize', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '单个字段标识符可返回的数据记录数量,最大值为100。'."\n" - ."\n" - .'任意一个字段返回的数据记录数量均不超过该值。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '201', - 'minimum' => '0', - 'example' => '10', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-a****13l'], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息,如果调用成功,没有ErrorMessage字段。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '4C717018-B6D4-5EB0-8495-2A4FF08D58CA'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回设备的位置信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属产品的**productKey**。', 'type' => 'string', 'example' => 'g3r****Vjta'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'mock_device_name'], + 'CoordinateSystem' => ['description' => '坐标类型。'."\n" + ."\n" + .'- **1**:WGS_84,国际经纬度坐标系统。'."\n" + .'- **2**:GCJ_02,由国测局制定,是对地理位置进行首次加密后的一种坐标系统。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Longitude' => ['description' => '设备位置的经度。', 'type' => 'number', 'format' => 'float', 'example' => '120.0'], + 'Country' => ['description' => '设备所在国家。', 'type' => 'string', 'example' => '中国'], + 'Ip' => ['description' => '设备上线的IP。', 'type' => 'string', 'example' => '127.0.0.1'], + 'City' => ['description' => '设备所在城市。', 'type' => 'string', 'example' => '杭州'], + 'Adcode' => ['description' => '高德adcode,adcode信息可参考城市编码表。'."\n" + ."\n" + .'> 城市编码表,更新于2020年7月27日,该表用于查询不同城市对应的编码。仅供查询使用,建议通过地址解析等线上服务实时获取最新编码。暂时不支持台湾省的行政区域编码查询。'."\n" + .'[下载链接](https://a.amap.com/lbs/static/amap_3dmap_lite/AMap_adcode_citycode.zip)', 'type' => 'integer', 'format' => 'int64', 'example' => '90000'], + 'Latitude' => ['description' => '设备位置的纬度。', 'type' => 'number', 'format' => 'float', 'example' => '30.0'], + 'Province' => ['description' => '设备所在省。', 'type' => 'string', 'example' => '浙江省'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"ProductKey\\": \\"g3r****Vjta\\",\\n \\"DeviceName\\": \\"mock_device_name\\",\\n \\"CoordinateSystem\\": 1,\\n \\"Longitude\\": 120,\\n \\"Country\\": \\"中国\\",\\n \\"Ip\\": \\"127.0.0.1\\",\\n \\"City\\": \\"杭州\\",\\n \\"Adcode\\": 90000,\\n \\"Latitude\\": 30,\\n \\"Province\\": \\"浙江省\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\n \\n 1\\n 127.0.0.1\\n 中国\\n 90000\\n 30\\n 杭州\\n 120\\n 浙江省\\n g3r****Vjta\\n mock_device_name\\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => 'GisQueryDeviceLocation', + 'summary' => '调用该接口查询设备位置信息。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GisQueryDeviceLocation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'GisSearchDeviceTrace' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NextPageToken', - 'in' => 'query', - 'schema' => [ - 'description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', - 'type' => 'string', - 'required' => false, - 'example' => 'Bo***x44Qx', - ], + 'AK' => [], ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'MapMatch', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的数据记录的开始时间,必须小于结束时间**EndTime**。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999999999', - 'minimum' => '0', - 'example' => '1579249499000', - ], + 'schema' => ['description' => '是否结合地图进行位置纠偏。可取值:'."\n" + .'- **0**:否,不进行轨迹纠偏。'."\n" + .'- **1**:是,进行轨迹纠偏。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], ], [ - 'name' => 'Identifier', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '已存储热数据中的字段标识符。即调用**WriteDevicesHotStorageData**接口写入热数据中请求参数**Items**中的字段标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'temperature', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-a****13l'], ], [ - 'name' => 'Asc', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中数据记录的排序方式,取值:'."\n" - ."\n" - .'- **0**:倒序。'."\n" - .'- **1**:正序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '5', - 'minimum' => '0', - 'example' => '0', - ], + 'schema' => ['description' => '轨迹结束时间戳(毫秒)。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645071254000'], ], [ - 'name' => 'IotId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '设备ID。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'y4u2weAI********HMle1234', - ], + 'schema' => ['description' => '轨迹开始时间戳(毫秒)。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1645071254000'], ], [ - 'name' => 'EndTime', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的数据记录的结束时间,必须大于起始时间**StartTime**。取值为毫秒值时间戳,例如:1579249499000。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '999999999999999', - 'minimum' => '0', - 'example' => '1579249499000', - ], + 'schema' => ['description' => '要查询设备所属产品的ProductKey。'."\n" + .'ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'g3r****Vjta'], ], - [ - 'name' => 'UserTopic', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询数据所属自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" - ."\n" - .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'user/a***/b***', - ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'mock_device_name'], ], ], 'responses' => [ @@ -32621,157 +21041,72 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => '200'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '4C717018-B6D4-5EB0-8495-2A4FF08D58CA'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功后,返回的数据。', + 'description' => '调用成功时,返回设备的轨迹信息。', 'type' => 'object', 'properties' => [ - 'nextPageToken' => [ - 'description' => '下一页标识。', - 'type' => 'string', - 'example' => 'Bo***x44Qx', - ], - 'NextValid' => [ - 'description' => '是否有下一页属性记录。'."\n" - ."\n" - .'- **true**:有。'."\n" - .'- **false**:没有。'."\n" - ."\n" - .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PropertyInfo' => [ - 'description' => '时序数据集合。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Value' => [ - 'description' => '字段值。', - 'type' => 'string', - 'example' => '2', - ], - 'Time' => [ - 'description' => '字段值对应时间戳,单位为毫秒。', - 'type' => 'string', - 'example' => '1516541885630', - ], - ], - ], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'mock_device_name'], + 'ProductKey' => ['description' => '设备所属产品的**productKey**。', 'type' => 'string', 'example' => 'g3r****Vjta'], + 'Points' => [ + 'description' => '轨迹点列表,最多返回200个点。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'LocateTime' => ['description' => '位置点时间,如果是纠偏过的轨迹,则没有该字段。', 'type' => 'integer', 'format' => 'int64', 'example' => '1645071254000'], + 'Location' => ['description' => '轨迹点坐标,格式为:(经度,维度)。', 'type' => 'string', 'example' => '120.0,30.0'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.InvalidTimeBucket', - 'errorMessage' => 'The specified time range is invalid.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The DeviceName parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey parameter cannot be empty.', - ], - [ - 'errorCode' => 'iot.common.InvalidPageParams', - 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.device.PageTokenIsIllegal', - 'errorMessage' => 'The paging token is invalid.', - ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The DeviceName format is invalid.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is invalid.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.device.InvalidIoTId', - 'errorMessage' => 'The specified device ID is invalid.', - ], - [ - 'errorCode' => 'iot.storage.HotStorageIopsReadNotEnough', - 'errorMessage' => 'The timeline storage read IOPS is not enough.', - ], + ['errorCode' => 'iot.gis.InvalidRequestParam', 'errorMessage' => 'Invalid Request Param.', 'description' => '请求参数无效.'], + ['errorCode' => 'iot.gis.InvalidParamSize', 'errorMessage' => 'Invalid Param Size', 'description' => '存在长度非法的参数.'], + ['errorCode' => 'iot.gis.lbsBasicFalse', 'errorMessage' => 'lbs service has not open yet.', 'description' => '位置服务未开通.'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"nextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"2\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n true\\n Bo***x44Qx\\n \\n \\n 2\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryDevicesHotStorageData', - 'summary' => '调用该接口查询设备热数据的时序数据。', - 'description' => '## 使用说明'."\n" - .'仅标准型和尊享型企业版实例下,支持调用该接口查询热数据。'."\n" - ."\n" - .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" - ."\n" - .'## 使用限制'."\n" - .'- 调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DeviceName\\": \\"mock_device_name\\",\\n \\"ProductKey\\": \\"g3r****Vjta\\",\\n \\"Points\\": [\\n {\\n \\"LocateTime\\": 1645071254000,\\n \\"Location\\": \\"120.0,30.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\n \\n g3r****Vjta\\n mock_device_name\\n \\n 1645071254000\\n 120.0,30.0\\n \\n \\n 200\\n true\\n","errorExample":""}]', + 'title' => '查询设备轨迹详情', + 'summary' => '调用该接口查询设备轨迹详情。', + 'description' => '## QPS限制'."\n" ."\n" - .'- 仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" - .' '."\n" - .' > 数据存储时间从存储字段的时间戳表示的时间当日开始计算。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ResetDeviceTimeline' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GisSearchDeviceTrace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ImportDTData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -32781,40 +21116,47 @@ 'parameters' => [ [ 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], + 'in' => 'formData', + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'dgb9****'], ], [ - 'name' => 'DeviceName', + 'name' => 'DTInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'light', - ], + 'schema' => ['type' => 'string', 'required' => true, 'description' => ''], ], [ 'name' => 'IotInstanceId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-****001'], + ], + [ + 'name' => 'Items', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64******', + 'description' => '触发数据映射的设备信息列表。', + 'type' => 'array', + 'items' => [ + 'description' => '触发数据映射的设备信息。', + 'type' => 'object', + 'properties' => [ + 'Params' => ['description' => '设备数据源,格式为`Key:Value`的JSON字符串。'."\n" + ."\n" + .'单次调用本接口,最多传入300个键值对。', 'type' => 'string', 'required' => true, 'example' => '{"key1":12,"key2":56}'], + 'DeviceName' => ['description' => '设备名称。单次调用接口下,最多传入5个。', 'type' => 'string', 'required' => true, 'example' => 'Device1'], + ], + 'required' => false, + ], + 'required' => true, + 'maxItems' => 200, ], ], ], @@ -32823,254 +21165,119 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.device.NotExistedDevice', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'device not found.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.device.NotExistedDevice', - 'errorMessage' => 'device not found.', - ], - [ - 'errorCode' => 'iot.common.AuthActionPermissionDeny', - 'errorMessage' => 'auth action permission deny.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.%s.', - ], + ['errorCode' => 'Iot.digitaltwin.RequestParamError', 'errorMessage' => 'Request parameter error.', 'description' => '请求参数错误,请重试。'], + ['errorCode' => 'Iot.digitaltwin.instanceNotFound', 'errorMessage' => 'The instance does not exist.', 'description' => '孪生体不存在,请核实。'], + ['errorCode' => 'Iot.digitaltwin.instanceNodeNotExist', 'errorMessage' => 'The nodeId is not exist.', 'description' => '节点不存在。'], + ['errorCode' => 'Iot.product.ProductNotFound', 'errorMessage' => 'product not found.', 'description' => ''], + ['errorCode' => 'Iot.digitaltwin.productAuthticFailed', 'errorMessage' => 'Product authentic failed.', 'description' => '产品鉴权失败。'], + ['errorCode' => 'Iot.device.DeviceNotFound', 'errorMessage' => 'device not found.', 'description' => '设备找不到。'], + ['errorCode' => 'Iot.digitaltwin.notSupportApiDataSource', 'errorMessage' => 'APIs cannot be used as data sources.', 'description' => '该版本不支持api数据源。'], + ['errorCode' => 'Iot.digitaltwin.tooManyRequest', 'errorMessage' => 'Too many requests.', 'description' => '请求被限流。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.NotExistedDevice\\",\\n \\"ErrorMessage\\": \\"device not found.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'ResetDeviceTimeline', - 'summary' => '调用该接口删除指定设备下已存储的时序数据。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => 'ImportDTData', + 'summary' => '调用该接口触发孪生体的数据映射配置,实现数据到孪生节点的映射。', 'description' => '## 使用说明'."\n" - .'目前,本接口仅支持白名单用户调用。请提交工单申请。'."\n" - ."\n" + .'已在孪生空间配置API数据源映射。具体操作,请参见[配置数据源](~~455005~~)。'."\n" + ."\n\n" .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n" ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDataAPIService' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ImportDTData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ImportDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'RequestParam', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '请求参数列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', - 'type' => 'string', - 'required' => false, - 'example' => 'VARCHAR', - ], - 'Required' => [ - 'description' => '该参数是否必填。'."\n" - ."\n" - .'- true:必填。'."\n" - .'- false:非必填。'."\n" - ."\n" - .'默认值为true。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'Example' => [ - 'description' => '参数值示例。', - 'type' => 'string', - 'required' => false, - 'example' => 'dksiaiek23s', - ], - 'Name' => [ - 'description' => '参数名称。'."\n" - ."\n" - .'例如,`${status}`格式的模板参数,参数名称就是`status`。', - 'type' => 'string', - 'required' => false, - 'example' => 'status', - ], - 'Desc' => [ - 'description' => '参数描述。', - 'type' => 'string', - 'required' => false, - 'example' => '设备状态', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], - ], - [ - 'name' => 'ResponseParam', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '响应参数列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', - 'type' => 'string', - 'required' => false, - 'example' => 'INTEGER', - ], - 'Required' => [ - 'description' => '该参数是否必填。'."\n" - ."\n" - .'- true:必填。'."\n" - .'- false:非必填。'."\n" - ."\n" - .'> 返回参数中,此参数无需处理。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - 'Example' => [ - 'description' => '参数值示例。', - 'type' => 'string', - 'required' => false, - 'example' => '100', - ], - 'Name' => [ - 'description' => '参数名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'deviceCount', - ], - 'Desc' => [ - 'description' => '参数描述。', - 'type' => 'string', - 'required' => false, - 'example' => '设备总数', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 100, - ], - ], - [ - 'name' => 'DisplayName', - 'in' => 'formData', - 'schema' => [ - 'description' => 'API的显示名称,需具有全局唯一性。仅支持中文汉字、英文字母、数字、下划线(_)、连接符(-)、英文圆括号和空格,长度不超过20个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '查询设备总数', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-1n8t****'], ], [ - 'name' => 'OriginSql', - 'in' => 'formData', - 'schema' => [ - 'description' => 'API对应的原始SQL,指定数据开发的SQL样式。'."\n" - ."\n" - .'例如`select count(*) as deviceCount from ${system.device} where status = 1`。其中,`${system.device}`是平台系统的设备表,具体请参见[数据表](~~120902~~)中的表说明。', - 'type' => 'string', - 'required' => true, - 'example' => 'SELECT COUNT(iot_id) AS deviceCount FROM ${system.device} WHERE status=1', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Desc', - 'in' => 'formData', - 'schema' => [ - 'description' => 'API的描述。', - 'type' => 'string', - 'required' => false, - 'example' => '数据分析API', - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备的名称。'."\n" + ."\n" + .'设备名称支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为4~32个字符。'."\n" + ."\n" + .'设备名称在产品维度下不可重复。', 'type' => 'string', 'required' => true, 'example' => 'light'], ], [ - 'name' => 'TemplateSql', - 'in' => 'formData', - 'schema' => [ - 'description' => '服务的模板SQL,即原始SQL的模板化。'."\n" - ."\n" - .'例如`select count(*) as deviceCount from ${system.device} where status = ${status}`。其中,`${status}`是模板化的参数。支持设置模板参数为动态值。', - 'type' => 'string', - 'required' => true, - 'example' => 'SELECT COUNT(iot_id) AS deviceCount FROM ${system.device} WHERE status=${status}', - ], + 'name' => 'Nickname', + 'in' => 'query', + 'schema' => ['description' => '设备的备注名称。'."\n" + ."\n" + .'备注名称支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" + ."\n" + .'> 如果不传入该参数,系统不会为设备生成备注名称。', 'type' => 'string', 'required' => false, 'example' => '园区灯'], ], [ - 'name' => 'ApiPath', - 'in' => 'formData', - 'schema' => [ - 'description' => 'API调用地址的自定义部分。作为API资源标识符,需具有全局唯一性。'."\n" - ."\n" - .'> API调用地址的前一段部分由系统生成。', - 'type' => 'string', - 'required' => true, - 'example' => 'device/getDeviceCountByStatus', - ], + 'name' => 'Sn', + 'in' => 'query', + 'schema' => ['description' => '设备的序列号。'."\n" + ."\n" + .'序列号支持英文字母、数字和下划线(_),长度限制为1~64个字符。'."\n" + ."\n" + .'> 如果不传入该参数,系统不会为设备生成序列号。', 'type' => 'string', 'required' => false, 'example' => 'QC4******001'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'DeviceSecret', + 'in' => 'query', + 'schema' => ['description' => '设备的密钥。'."\n" + ."\n" + .'设备密钥支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句号(.)和英文冒号(:),长度限制为1~32个字符。', 'type' => 'string', 'required' => true, 'example' => 'b4d43f7******10ba5e5'], ], ], 'responses' => [ @@ -33078,122 +21285,145 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '请求参数错误', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回注册的设备信息。', + 'description' => '调用成功时,返回导入的设备信息。', 'type' => 'object', 'properties' => [ - 'LastUpdateTime' => [ - 'description' => 'API的最后更新时间,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557839468865', - ], - 'ApiSrn' => [ - 'description' => 'API资源标识符,API的全局唯一标识。'."\n" - ."\n" - .'示例:'."\n" - ."\n" - .'`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" - ."\n" - .'以上示例中的信息说明如下:'."\n" - ."\n" - .'- `127103983461****`是阿里云主账号ID。'."\n" - ."\n" - .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', - 'type' => 'string', - 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2', - ], - 'CreateTime' => [ - 'description' => 'API的创建时间,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557839468865', - ], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'Sn' => ['description' => '设备序列号。'."\n" + ."\n" + .'> 若您没有为设备传入序列号,则该参数返回为空。', 'type' => 'string', 'example' => 'QC4******001'], + 'DeviceName' => ['description' => '设备名称。'."\n" + ."\n" + .'>'."\n" + .'请妥善保管,勿泄露。'."\n" + .'>', 'type' => 'string', 'example' => 'light'], + 'DeviceSecret' => ['description' => '设备密钥。'."\n" + .'>'."\n" + .'请妥善保管,勿泄露。'."\n" + .'>', 'type' => 'string', 'example' => 'b4d43f7******10ba5e5'], + 'Nickname' => ['description' => '设备的备注名称。'."\n" + ."\n" + .'> 若您没有为该设备传入备注名称,则该参数返回为空。', 'type' => 'string', 'example' => '园区灯'], + 'IotId' => ['description' => '物联网平台为该设备颁发的设备ID,作为该设备的唯一标识符。'."\n" + ."\n" + .'>'."\n" + .'请妥善保管,勿泄露。'."\n" + .'>', 'type' => 'string', 'example' => '1O4YPNtRqB2anumz2Canp4GB7*****'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"请求参数错误\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"LastUpdateTime\\": 1557839468865,\\n \\"ApiSrn\\": \\"acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\",\\n \\"CreateTime\\": 1557839468865\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n \\r\\n acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\r\\n 1557839468865\\r\\n 1557839468865\\r\\n \\r\\n","errorExample":""}]', - 'title' => 'CreateDataAPIService', - 'summary' => '调用该接口创建数据算法服务API。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'iot.device.CreateDeviceFailed', 'errorMessage' => 'An error occurred while creating the device.', 'description' => ''], + ['errorCode' => 'iot.device.AlreadyExistedDeviceName', 'errorMessage' => 'The DeviceName already exists.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"Sn\\": \\"QC4******001\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"b4d43f7******10ba5e5\\",\\n \\"Nickname\\": \\"园区灯\\",\\n \\"IotId\\": \\"1O4YPNtRqB2anumz2Canp4GB7*****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1O4YPNtRqB2anumz2Canp4GB7*****\\n b4d43f7******10ba5e5\\n QC4******001\\n a1BwAGV****\\n 园区灯\\n light\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'MQTT云网关产品下单个导入设备', + 'summary' => '调用该接口在MQTT云网关产品下单个导入设备。', + 'description' => '## 使用说明'."\n" + ."\n" + .'调用该接口前,请先添加MQTT云网关并成功创建云网关产品,获取产品的**Productkey**。具体操作,请参见[创建云网关产品(MQTT)](~~433804~~)。'."\n" + ."\n\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetDataAPIServiceDetail' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ImportThingModelTsl' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'ApiSrn', - 'in' => 'formData', - 'schema' => [ - 'description' => 'API资源标识符,API的全局唯一标识。 调用**CreateDataAPIService**接口成功创建API,返回的ApiSrn值。'."\n" - ."\n" - .'格式:`acs:iot:*:${aliyunuserID}:serveapi/${ApiPath}`'."\n" - ."\n" - .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" - ."\n" - .'以上示例中的信息说明如下:'."\n" - ."\n" - .'- `127103983461****`是阿里云主账号ID。'."\n" - .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', - 'type' => 'string', - 'required' => true, - 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的ProductKey。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'TslStr', + 'in' => 'query', + 'schema' => ['description' => '您编辑的物模型(TSL)。JSON格式的字符串。产品的物模型(TSL)包含属性、服务和事件的定义。'."\n" + .'**TslStr**格式需为标准的物模型数据格式,请参见[物模型格式](~~73727~~)。'."\n" + ."\n" + .'> 目前该参数为必填参数,只能通过**TslStr**导入物模型。', 'type' => 'string', 'required' => false, 'example' => '{"schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json","profile":{"productKey":"a14TeW****"},"properties":[]}'], + ], + [ + 'name' => 'TslUrl', + 'in' => 'query', + 'schema' => ['description' => '物模型数据在对象存储(OSS)上的存储地址URI。'."\n" + ."\n" + .'> 目前该参数暂时无效,请传入**TslStr**导入物模型。', 'type' => 'string', 'required' => false, 'example' => 'https://iotx-pop-dsl.oss-cn-shanghai.aliyuncs.com/thing/a14TeWI****/model.json?Expires=1581947119...'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。支持英文大小写字母、数字和下划线(_),不超过30个字符。'."\n" + ."\n" + .'需与**FunctionBlockName**结合使用。不传入此参数时,导入默认模块。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], + ], + [ + 'name' => 'FunctionBlockName', + 'in' => 'query', + 'schema' => ['description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" + ."\n" + .'需与**FunctionBlockId**结合使用。不传入此参数时,导入默认模块。', 'type' => 'string', 'required' => false, 'example' => '电池模块'], ], ], 'responses' => [ @@ -33201,240 +21431,57 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '请求参数错误', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '57b144cf-09fc-4916-a272-a62902d5b207', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'DisplayName' => [ - 'description' => 'API名称。', - 'type' => 'string', - 'example' => '根据状态获取设备数', - ], - 'Status' => [ - 'description' => 'API的状态。'."\n" - ."\n" - .'- 0:可编辑。'."\n" - .'- 1:已测试。'."\n" - .'- 2:已发布。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ApiSrn' => [ - 'description' => 'API资源标识符,API的全局唯一标识。'."\n" - ."\n" - .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" - ."\n" - .'以上示例中的信息说明如下:'."\n" - ."\n" - .'- `127103983461****`是阿里云主账号ID。'."\n" - .'- `/device/getDeviceCountByStatus`是API调用地址的自定义部分。', - 'type' => 'string', - 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2', - ], - 'Description' => [ - 'description' => 'API的描述信息。', - 'type' => 'string', - 'example' => '描述', - ], - 'CreateTime' => [ - 'description' => 'API的创建时间,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557839468865', - ], - 'LastUpdateTime' => [ - 'description' => 'API的最后更新时间,单位为毫秒(ms)。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1557839468865', - ], - 'RequestMethod' => [ - 'description' => '请求方式。', - 'type' => 'string', - 'example' => 'GET/POST', - ], - 'DateFormat' => [ - 'description' => '返回类型行。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'RequestProtocol' => [ - 'description' => '协议类型。', - 'type' => 'string', - 'example' => 'HTTPS', - ], - 'ApiPath' => [ - 'description' => 'API调用地址的自定义部分。', - 'type' => 'string', - 'example' => '/device/getDeviceCountByStatus', - ], - 'SqlTemplateDTO' => [ - 'description' => 'SQL模板信息。'."\n" - ."\n" - .'调用成功时,返回的SQL模板数据。详情参见下表SqlTemplateDTO。', - 'type' => 'object', - 'properties' => [ - 'OriginSql' => [ - 'description' => 'API对应的原始SQL。', - 'type' => 'string', - 'example' => 'SELECT COUNT(*) FROM ${system.device} WHERE status = 1', - ], - 'TemplateSql' => [ - 'description' => '原始SQL的模板化SQL。', - 'type' => 'string', - 'example' => 'SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}', - ], - 'RequestParams' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'RequestParams' => [ - 'description' => '调用API的请求参数列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', - 'type' => 'string', - 'example' => 'INTEGER', - ], - 'Required' => [ - 'description' => '该参数是否必填。'."\n" - ."\n" - .'- true:必填。'."\n" - ."\n" - .'- false:非必填。'."\n" - ."\n" - .'默认值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Example' => [ - 'description' => '参数值示例。', - 'type' => 'string', - 'example' => '0', - ], - 'Name' => [ - 'description' => '请求参数名称。', - 'type' => 'string', - 'example' => 'status', - ], - 'Desc' => [ - 'description' => '参数描述。', - 'type' => 'string', - 'example' => '设备状态', - ], - ], - ], - ], - ], - ], - 'ResponseParams' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ResponseParams' => [ - 'description' => 'API的响应参数列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '参数类型,请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。目前仅支持:ARRAY、VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', - 'type' => 'string', - 'example' => 'INTEGER', - ], - 'Required' => [ - 'description' => '该参数是否必填。'."\n" - ."\n" - .'- true:必填。'."\n" - ."\n" - .'- false:非必填。'."\n" - ."\n" - .'返回参数中,无需配置该参数。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Example' => [ - 'description' => '参数值示例。', - 'type' => 'string', - 'example' => '100', - ], - 'Name' => [ - 'description' => '返回参数名称。', - 'type' => 'string', - 'example' => 'deviceCount', - ], - 'Desc' => [ - 'description' => '参数描述。', - 'type' => 'string', - 'example' => '设备数', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"请求参数错误\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DisplayName\\": \\"根据状态获取设备数\\",\\n \\"Status\\": 1,\\n \\"ApiSrn\\": \\"acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\",\\n \\"Description\\": \\"描述\\",\\n \\"CreateTime\\": 1557839468865,\\n \\"LastUpdateTime\\": 1557839468865,\\n \\"RequestMethod\\": \\"GET/POST\\",\\n \\"DateFormat\\": \\"JSON\\",\\n \\"RequestProtocol\\": \\"HTTPS\\",\\n \\"ApiPath\\": \\"/device/getDeviceCountByStatus\\",\\n \\"SqlTemplateDTO\\": {\\n \\"OriginSql\\": \\"SELECT COUNT(*) FROM ${system.device} WHERE status = 1\\",\\n \\"TemplateSql\\": \\"SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}\\",\\n \\"RequestParams\\": {\\n \\"RequestParams\\": [\\n {\\n \\"Type\\": \\"INTEGER\\",\\n \\"Required\\": true,\\n \\"Example\\": \\"0\\",\\n \\"Name\\": \\"status\\",\\n \\"Desc\\": \\"设备状态\\"\\n }\\n ]\\n },\\n \\"ResponseParams\\": {\\n \\"ResponseParams\\": [\\n {\\n \\"Type\\": \\"INTEGER\\",\\n \\"Required\\": true,\\n \\"Example\\": \\"100\\",\\n \\"Name\\": \\"deviceCount\\",\\n \\"Desc\\": \\"设备数\\"\\n }\\n ]\\n }\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n \\r\\n acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2\\r\\n 1557839468865\\r\\n 1557839468865\\r\\n 1\\r\\n 根据状态获取设备数\\r\\n /device/getDeviceCountByStatus\\r\\n 描述\\r\\n \\r\\n SELECT COUNT(*) FROM ${system.device} WHERE status = 1\\r\\n SELECT COUNT(*) as deviceCount FROM ${system.device} WHERE status = ${status}\\r\\n \\r\\n status\\r\\n INTEGER\\r\\n 设备状态\\r\\n 0\\r\\n true\\r\\n \\r\\n \\r\\n deviceCount\\r\\n INTEGER\\r\\n 设备数\\r\\n 100\\r\\n \\r\\n \\r\\n \\r\\n","errorExample":""}]', - 'title' => '获取数据算法服务API详情', - 'summary' => '调用该接口获取数据算法服务API详情。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\ntrue\\n","errorExample":""}]', + 'title' => '为指定产品导入物模型', + 'summary' => '调用该接口为指定产品导入物模型。', + 'description' => "\n" + .'## 使用说明'."\n" + .'如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口导入物模型。'."\n" + .' '."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ImportThingModelTsl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], ], 'InvokeDataAPIService' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'Param', @@ -33446,52 +21493,30 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'ParamName' => [ - 'description' => '调用API的入参参数名称。必须与调用**CreateDataAPIService**接口创建API时,**RequestParam**中定义的**Name**保持一致。', - 'type' => 'string', - 'required' => false, - 'example' => 'status', - ], - 'ParamType' => [ - 'description' => '数据类型。目前只支持VARCHAR、INTEGER、BOOLEAN、BIGING、TIMESTAMP、DECIMAL和ARRAY类型。'."\n" - ."\n" - .'> 当paramType选择ARRAY时,ListParamType和ListParamValue参数会生效;paramType为其他类型时,paramValue参数会生效。', - 'type' => 'string', - 'required' => false, - 'example' => 'VARCHAR ', - ], - 'ListParamType' => [ - 'description' => 'ARRAY类型的参数值的数据类型。请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。'."\n" - .'目前仅支持VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', - 'type' => 'string', - 'required' => false, - 'example' => 'VARCHAR', - ], - 'ParamValue' => [ - 'description' => '调用API的入参参数值。'."\n" - ."\n" - .'- 统一使用String类型存储,物联网平台会根据创建API时定义的**ParamType**转换成JDBC类型对象。'."\n" - ."\n" - .'- 创建API时,如果API请求参数类型**Type**定义为ARRAY类型,则不传入该参数,而需传入**ListParamType**和**ListParamValue**。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '1', - ], + 'ParamName' => ['description' => '调用API的入参参数名称。必须与调用**CreateDataAPIService**接口创建API时,**RequestParam**中定义的**Name**保持一致。', 'type' => 'string', 'required' => false, 'example' => 'status'], + 'ParamType' => ['description' => '数据类型。目前只支持VARCHAR、INTEGER、BOOLEAN、BIGING、TIMESTAMP、DECIMAL和ARRAY类型。'."\n" + ."\n" + .'> 当paramType选择ARRAY时,ListParamType和ListParamValue参数会生效;paramType为其他类型时,paramValue参数会生效。', 'type' => 'string', 'required' => false, 'example' => 'VARCHAR '], + 'ListParamType' => ['description' => 'ARRAY类型的参数值的数据类型。请参见[JDBCType](https://docs.oracle.com/javase/8/docs/api/java/sql/JDBCType.html)。'."\n" + .'目前仅支持VARCHAR、INTEGER、BIGINT、BOOLEAN、DECIMAL、TIMESTAMP。', 'type' => 'string', 'required' => false, 'example' => 'VARCHAR'], + 'ParamValue' => ['description' => '调用API的入参参数值。'."\n" + ."\n" + .'- 统一使用String类型存储,物联网平台会根据创建API时定义的**ParamType**转换成JDBC类型对象。'."\n" + ."\n" + .'- 创建API时,如果API请求参数类型**Type**定义为ARRAY类型,则不传入该参数,而需传入**ListParamType**和**ListParamValue**。'."\n", 'type' => 'string', 'required' => false, 'example' => '1'], 'ListParamValue' => [ 'description' => 'ARRAY类型的参数值列表。数组中只能放置一组类型相同的数据,例如放置数值类型数据,则全部数据为数值类型。'."\n" ."\n" .'> 统一使用String类型存储,平台会跟据ListParamType对应的值转换成JDBC类型对象。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => false, 'example' => '["1","2","3"]', 'maxItems' => 100, ], ], 'required' => false, + 'description' => '', ], 'required' => false, 'maxItems' => 100, @@ -33500,31 +21525,21 @@ [ 'name' => 'ApiSrn', 'in' => 'formData', - 'schema' => [ - 'description' => 'API资源标识符,API的全局唯一标识。 调用**CreateDataAPIService**接口成功创建API,返回的ApiSrn值。'."\n" - ."\n" - .'格式:`acs:iot:*:${aliyunuserID}:serveapi/${ApiPath}`'."\n" - ."\n" - .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" - ."\n" - .'以上示例中的信息说明如下:'."\n" - ."\n" - .'- `127103983461****`是阿里云主账号ID。'."\n" - .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', - 'type' => 'string', - 'required' => true, - 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2', - ], + 'schema' => ['description' => 'API资源标识符,API的全局唯一标识。 调用**CreateDataAPIService**接口成功创建API,返回的ApiSrn值。'."\n" + ."\n" + .'格式:`acs:iot:*:${aliyunuserID}:serveapi/${ApiPath}`'."\n" + ."\n" + .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" + ."\n" + .'以上示例中的信息说明如下:'."\n" + ."\n" + .'- `127103983461****`是阿里云主账号ID。'."\n" + .'- `/device/getDeviceCountByStatus`是请求参数ApiPath的值,即API调用地址的自定义部分。', 'type' => 'string', 'required' => true, 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -33532,64 +21547,29 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '请求参数错误', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E68FE5DC-4D7B-4987-B785-DF8C6F191F5D', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~135176~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '请求参数错误'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E68FE5DC-4D7B-4987-B785-DF8C6F191F5D'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ 'description' => '调用成功时,返回注册的设备信息。', 'type' => 'object', 'properties' => [ - 'PageNo' => [ - 'description' => '显示的查询结果的页码。分页码从0开始,默认为0。'."\n" - .'如果您要自定义显示结果页,建议您在请求参数中增加自定义参数,如**pageNo**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'PageSize' => [ - 'description' => '每页显示的查询结果记录数。'."\n" - .'如果您要自定义每页显示的记录数,建议您在请求参数中增加自定义参数,如**pageSize**。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ApiSrn' => [ - 'description' => 'API资源标识符,API的全局唯一标识。'."\n" - ."\n" - .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" - ."\n" - .'以上示例中的信息说明如下:'."\n" - ."\n" - .'- `127103983461****`是阿里云主账号ID。'."\n" - .'- `/device/getDeviceCountByStatus`是API调用地址的自定义部分。', - 'type' => 'string', - 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2', - ], - 'TotalSize' => [ - 'description' => '总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'PageNo' => ['description' => '显示的查询结果的页码。分页码从0开始,默认为0。'."\n" + .'如果您要自定义显示结果页,建议您在请求参数中增加自定义参数,如**pageNo**。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'PageSize' => ['description' => '每页显示的查询结果记录数。'."\n" + .'如果您要自定义每页显示的记录数,建议您在请求参数中增加自定义参数,如**pageSize**。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ApiSrn' => ['description' => 'API资源标识符,API的全局唯一标识。'."\n" + ."\n" + .'示例:`acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2`'."\n" + ."\n" + .'以上示例中的信息说明如下:'."\n" + ."\n" + .'- `127103983461****`是阿里云主账号ID。'."\n" + .'- `/device/getDeviceCountByStatus`是API调用地址的自定义部分。', 'type' => 'string', 'example' => 'acs:iot:*:127103983461****:serveapi/device/getDeviceCountByStatus2'], + 'TotalSize' => ['description' => '总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], 'FieldNameList' => [ 'type' => 'object', 'itemNode' => true, @@ -33597,13 +21577,10 @@ 'FieldNameList' => [ 'description' => '结果字段列表。', 'type' => 'array', - 'items' => [ - 'description' => '结果字段列表。 列表元素即调用**CreateDataAPIService**接口创建API时,**ResponseParam**中的**Name**定义的参数名称。', - 'type' => 'string', - 'example' => '{"FieldNameList": ["deviceCount"]}', - ], + 'items' => ['description' => '结果字段列表。 列表元素即调用**CreateDataAPIService**接口创建API时,**ResponseParam**中的**Name**定义的参数名称。', 'type' => 'string', 'example' => '{"FieldNameList": ["deviceCount"]}'], ], ], + 'description' => '', ], 'ResultList' => [ 'type' => 'object', @@ -33612,22 +21589,20 @@ 'ResultList' => [ 'description' => '结果列表。', 'type' => 'array', - 'items' => [ - 'description' => '返回的SQL处理结果。根据调用**CreateDataAPIService**接口创建API时,**ResponseParam**中的**Name**参数,返回处理结果。'."\n" - ."\n" - .'列表元素`Map`说明如下:'."\n" - ."\n" - .'- **key**是String类型,是**Name**定义的参数名称。'."\n" - .'- **Object**是参数对应的值,其数据类型与**ResponseParam**中的Type一致。'."\n", - 'type' => 'object', - 'example' => '[{"deviceCount": 47}]', - ], + 'items' => ['description' => '返回的SQL处理结果。根据调用**CreateDataAPIService**接口创建API时,**ResponseParam**中的**Name**参数,返回处理结果。'."\n" + ."\n" + .'列表元素`Map`说明如下:'."\n" + ."\n" + .'- **key**是String类型,是**Name**定义的参数名称。'."\n" + .'- **Object**是参数对应的值,其数据类型与**ResponseParam**中的Type一致。'."\n", 'type' => 'object', 'example' => '[{"deviceCount": 47}]'], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], @@ -33641,65 +21616,90 @@ 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AddDataForApiSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:InvokeDataAPIService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'InvokeThingService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-0pp1n*****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有**ID**值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ApiId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'API数据源ID,即**API ID**。您可在物联网平台控制台的**数据分析** > **数据采集** > **数据源**页面,查看API数据源的**API ID**。'."\n" - ."\n" - .'API数据源的更多信息,请参见[配置API数据源](~~307003~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'cxatswiniekxw***', - ], + 'schema' => ['description' => '要调用服务的设备所属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Content', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '上传到物联网平台的数据内容。JSON格式。'."\n" - .'JSON中必须包含**ts**字段,用来表示数据产生的时间点(unix 毫秒精度的时间戳)。', - 'type' => 'string', - 'required' => true, - 'example' => '{"key":"value","ts":16376582*****}', - ], + 'schema' => ['description' => '要调用服务所属设备的DeviceName。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '服务的标识符。'."\n" + ."\n" + .'设备的服务**Identifier**的查看方式:'."\n" + ."\n" + .'- 登录[物联网平台控制台](https://iot.console.aliyun.com/),在设备所属产品的**功能定义**中查看。'."\n" + .'- 调用接口[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + ."\n" + .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'Set'], + ], + [ + 'name' => 'Args', + 'in' => 'query', + 'schema' => ['description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。'."\n" + .'若此参数为空时,需传入 **Args={}** 。'."\n" + ."\n" + .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + .'>', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"param1":1}'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要调用服务的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'Qos', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1', 'minimum' => '0', 'default' => '0'], ], ], 'responses' => [ @@ -33707,131 +21707,144 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功,但不代表调用的服务执行成功。执行情况,以设备端日志为准。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '数据ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1234567890', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09934561E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'Result' => ['description' => '同步调用服务,返回的调用结果。'."\n" + .'异步调用服务,不返回此参数。', 'type' => 'string', 'example' => '{"param1":1}'], + 'MessageId' => ['description' => '云端向设备下发服务调用的消息ID。', 'type' => 'string', 'example' => 'abcabcabc1234****'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', - ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', - ], - [ - 'errorCode' => 'iot.dap.insight.serverError', - 'errorMessage' => 'server hsf error please try later.', - ], - [ - 'errorCode' => 'iot.dap.insight.notEnoughCU', - 'errorMessage' => 'There is not enough CU for the operation.', - ], - [ - 'errorCode' => 'iot.dap.insight.notEnoughStorage', - 'errorMessage' => 'There is not enough storage for the operation.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"Data\\": 1234567890,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09934561E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n BB71E443-4447-4024-A000-EDE09934561E\\n 1234567890\\n \\n true\\n","errorExample":""}]', - 'title' => 'AddDataForApiSource', - 'summary' => '调用该接口向物联网平台导入外部数据。通过此API导入物联网平台的数据,称为API数据源的数据。您可将本地或其他平台的数据上传至物联网平台,用于数据的分析和处理。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Result\\": \\"{\\\\\\"param1\\\\\\":1}\\",\\n \\"MessageId\\": \\"abcabcabc1234****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n abcabc123\\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', + 'title' => '在一个设备上调用指定服务', + 'summary' => '调用该接口在单个设备上调用指定服务。', + 'description' => '## 使用说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', + .'定义产品物模型服务时,已设置服务调用方式。因此,调用本接口时,物联网平台会根据请求参数**Identifier**值,选择服务对应的调用方式。'."\n" + .'- 同步方式:物联网平台直接使用RRPC同步方式下行推送请求,设备返回RRPC响应消息。RRPC使用详情,请参见[什么是RRPC](~~90567~~)。'."\n" + .'- 异步方式:物联网平台采用异步方式下行推送请求,设备采用异步方式返回结果。订阅的Topic详情,请参见[设备服务调用](~~89301~~)。'."\n" + ."\n" + .'>若创建产品时,设置物模型校验类型为**免校验**,调用本接口会默认为异步调用方式。'."\n" + .'>'."\n" + ."\n" + .'调用服务到设备端后,设备会返回调用结果给接口的调用方。设备端响应逻辑及响应结果,需您在设备端完成开发。设备返回结果的数据格式必须符合标准的Alink协议,Alink JSON格式如下:'."\n" + .'```'."\n" + .'{'."\n" + .' "id": "58***89",'."\n" + .' "code": 200,'."\n" + .' "data": {},'."\n" + .' "message": "success",'."\n" + .' "localizedMsg": "localizedMsg"'."\n" + .'}'."\n" + .'```'."\n" + .'> - **id**为物联网平台生成的唯一ID,设备从服务调用请求中获取,并原文返回。'."\n" + .'- **code**为整型数字,会返回给接口调用方,用于判断服务调用结果。'."\n" + .'- **data**为调用设备服务的结果数据,会返回给接口调用方。数据必须为JSON格式,由用户自行定义返回内容。'."\n" + .'- **message**、**localizedMsg**根据业务需要进行返回。'."\n" + .'例如物联网平台的设备接入C Link SDK提供了物模型使用示例,详细内容,请参见[调用服务](~~258239~~)。'."\n" + ."\n\n" + .'## 使用限制'."\n" + .'同步调用服务,最大超时时间为8秒。若8秒内服务器未收到回复,则返回超时错误。异步调用服务无最大超时时间限制。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchAddDataForApiSource' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:InvokeThingService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'InvokeThingsService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'iot-0pp1n*****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ApiId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'API数据源ID,即**API ID**。您可在物联网平台控制台的**数据分析** > **数据采集** > **数据源**页面,查看API数据源的**API ID**。'."\n" - ."\n" - .'API数据源的更多信息,请参见[配置API数据源](~~307003~~)。', - 'type' => 'string', - 'required' => true, - 'example' => 'cxatswiniekxw***', - ], + 'schema' => ['description' => '要调用服务的设备所隶属的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ContentList', + 'name' => 'Qos', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1', 'minimum' => '0', 'default' => '0'], + ], + [ + 'name' => 'Identifier', 'in' => 'query', + 'schema' => ['description' => '服务的标识符。'."\n" + ."\n" + .'设备的服务**Identifier**的查看方式:'."\n" + ."\n" + .'- 登录物联网平台控制台,在设备所属产品的**功能定义**中查看。'."\n" + .'- 调用接口[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + ."\n" + .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。', 'type' => 'string', 'required' => true, 'example' => 'Set'], + ], + [ + 'name' => 'Args', + 'in' => 'query', + 'schema' => ['description' => '要启用服务的入参信息,数据格式为JSON String,例如**Args={"param1":1}**。'."\n" + .'若此参数为空时,需传入**Args={} **。'."\n" + ."\n" + .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '{"param1":1}'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '批量上传到物联网平台的数据内容,为JSON列表格式。'."\n" - .'- JSON列表中JSON对象个数不得超过100个。'."\n" - .'- JSON中必须包含**ts**字段,用来表示数据产生的时间点(unix 毫秒精度的时间戳)。', - 'type' => 'string', + 'description' => '要调用服务的设备的名称列表。最多支持传入100个设备名称。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '[{"key":"value1","ts":1637658286000},{"key":"value2","ts":1637658287000}]', + 'example' => 'device1', + 'maxItems' => 500, ], ], ], @@ -33840,804 +21853,419 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功,但不代表调用的服务执行成功。执行情况,以设备端日志为准。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', - ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', - ], - [ - 'errorCode' => 'iot.dap.insight.serverError', - 'errorMessage' => 'server hsf error please try later.', - ], - [ - 'errorCode' => 'iot.dap.insight.notEnoughCU', - 'errorMessage' => 'There is not enough CU for the operation.', - ], - [ - 'errorCode' => 'iot.dap.insight.notEnoughStorage', - 'errorMessage' => 'There is not enough storage for the operation.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nBB71E443-4447-4024-A000-EDE09922891E\\n{\\"count\\":2,\\"hasNext\\":false,\\"items\\":[{\\"key\\":\\"value1\\",\\"ts\\":1637658286000,\\"id\\":1234567890},{\\"key\\":\\"value2\\",\\"ts\\":1637658287000,\\"id\\":1234567891}],\\"pageNum\\":1,\\"pageSize\\":2}\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchAddDataForApiSource', - 'summary' => '调用该接口向物联网平台批量导入外部数据。通过此API导入物联网平台的数据,称为API数据源的数据。您可将本地或其他平台的数据批量上传至物联网平台,用于数据的分析和处理。', - 'description' => '## 使用限制'."\n" - .'一次调用最多可批量写入100条记录。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n059C3274-6197-4BEC-95E4-49A076330E57\\ntrue\\n","errorExample":""}]', + 'title' => '批量调用设备服务', + 'summary' => '调用该接口批量调用设备服务。', + 'description' => '## 使用说明'."\n" + .'目前只支持异步调用该接口。'."\n" + .'调用服务到设备端后,设备会返回调用结果给接口的调用方。设备端响应逻辑及响应结果,需您在设备端完成开发。设备返回结果的数据格式必须符合标准的Alink协议,Alink JSON格式如下:'."\n" + .'```'."\n" + .'{'."\n" + .' "id": "58***89",'."\n" + .' "code": 200,'."\n" + .' "data": {},'."\n" + .' "message": "success",'."\n" + .' "localizedMsg": "localizedMsg"'."\n" + .'}'."\n" + .'```'."\n" + .'> - **id**为物联网平台生成的唯一ID,设备从服务调用请求中获取,并原文返回。'."\n" + .'- **code**为整型数字,会返回给接口调用方,用于判断服务调用结果。'."\n" + .'- **data**为调用设备服务的结果数据,会返回给接口调用方。数据必须为JSON格式,由用户自行定义返回内容。'."\n" + .'- **message**、**localizedMsg**根据业务需要进行返回。'."\n" + .'例如物联网平台的设备接入C Link SDK提供了物模型使用示例,详细内容,请参见[调用服务](~~258239~~)。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享该阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。更多信息,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateDownloadDataJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:InvokeThingsService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListAnalyticsData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-npk1u******', - ], + 'in' => 'query', + 'schema' => ['description' => 'API所在实例的实例ID。'."\n" + ."\n" + .'更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => true, 'example' => 'iot-cn-npk1u******'], ], [ - 'name' => 'TableName', + 'name' => 'ApiPath', 'in' => 'query', - 'schema' => [ - 'description' => '需下载的表名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'product_info', - ], + 'schema' => ['description' => 'API路径。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看**API Path**的值。具体操作,请参见[查看与使用](~~206247~~)。', 'type' => 'string', 'required' => true, 'example' => '/iot-cn-npk1v******/system/query/hist_dev_cnt_stat'], ], [ - 'name' => 'DownloadDataType', + 'name' => 'PageNum', 'in' => 'query', - 'schema' => [ - 'description' => '下载对象的类型,暂只支持**TABLE**。', - 'type' => 'string', - 'required' => true, - 'example' => 'TABLE', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页的内容。默认值为 1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'FileConfig', + 'name' => 'PageSize', 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'description' => '下载文件设置。给下载文件设置一个名称(fileName),可自定义,若fileName不传则默认生成一个文件名。', - 'type' => 'object', - 'required' => false, - 'example' => '{"fileName":"fileName01"}', - ], + 'schema' => ['description' => '每页显示结果的条数。'."\n" + ."\n" + .'返回结果中,每页显示的记录数量。最大取值100,最小取值1,默认取值为100。'."\n" + .'> 开启分页时必传。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '20000', 'minimum' => '1', 'example' => '100', 'default' => '100'], ], [ - 'name' => 'StartTime', + 'name' => 'IsoId', 'in' => 'query', - 'schema' => [ - 'description' => '时间范围,查询数据的开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1658332800000', - ], + 'schema' => ['description' => '逻辑隔离ID。请忽略该参数。', 'type' => 'string', 'required' => false, 'example' => 'oxs_iso_id'], ], [ - 'name' => 'EndTime', + 'name' => 'Condition', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '时间范围,查询数据的结束时间。', - 'type' => 'integer', - 'format' => 'int64', + 'description' => '查询条件列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Operate' => ['description' => '比较运算符。'."\n" + ."\n" + .'仅支持`bt`、`eq`、`neq`、`rlike`、`in`或`nin`,及其对应的操作符`BETWEEN`、`=`、`!=`、`LIKE`、`IN`、`NIN`。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看请求参数的对应操作符。具体操作,请参见[查看与使用](~~206247~~)。'."\n" + ."\n" + .'- `BETWEEN`:请求参数赋值为特定范围。'."\n" + .'- `=`:请求参数赋值为特定值。'."\n" + .'- `!=`:请求参数赋值不为特定值。'."\n" + .'- `LIKE`:请求参数赋值以特定值为首。'."\n" + .'- `IN`:请求参数赋值属于特定集合。'."\n" + .'- `NIN`:请求参数赋值不属于特定集合。'."\n" + ."\n" + .'例如,数据集有6条记录(对应的`time`分别为`abcd`、`abce`、`abcf`、`abcg`、`aabc`和`abbc`),调用该接口时,`Condition.N.FieldName="time"`:'."\n" + ."\n" + .'- 如果`Condition.N.Operate="LIKE"`、`Condition.N.Value="abc"`,则返回`time=abcd`、`time=abce`、`time=abcf`和`time=abcg`的所有记录。'."\n" + .'- 如果`Condition.N.Operate="IN"`、`Condition.N.Value="[abcd,abce,abcf]"`,则返回`time=abcd`、`time=abce`和`time=abcf`的所有记录。'."\n" + ."\n" + .'> 如果该参数取值为`BETWEEN`,则**Condition.N.BetweenStart**和**Condition.N.BetweenEnd**必传。如果该参数取值不为`BETWEEN`,则**Condition.N.Value**必传。', 'type' => 'string', 'required' => true, 'example' => '='], + 'Value' => ['description' => '比较值。即服务API请求参数的赋值。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看请求参数的赋值情况。具体操作,请参见[查看与使用](~~206247~~)。'."\n" + ."\n" + .'> 当**Condition.N.Operate**取值不为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.BetweenStart**和**Condition.N.BetweenEnd**。', 'type' => 'string', 'required' => false, 'example' => '4'], + 'FieldName' => ['description' => '对应服务API设置的请求参数名。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看**请求参数**的值。具体操作,请参见[查看与使用](~~206247~~)。', 'type' => 'string', 'required' => true, 'example' => 'testCode'], + 'BetweenEnd' => ['description' => '服务API请求参数表示范围时的终止值。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看请求参数的取值范围。具体操作,请参见[查看与使用](~~206247~~)。'."\n" + .'> 当**Condition.N.Operate**取值为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.Value**。', 'type' => 'string', 'required' => false, 'example' => '5'], + 'BetweenStart' => ['description' => '服务API请求参数表示范围时的起始值。'."\n" + ."\n" + .'您可在**数据API**的API详情页面,查看请求参数的取值范围。具体操作,请参见[查看与使用](~~206247~~)。'."\n" + .'> 当**Condition.N.Operate**取值为`BETWEEN`或`bt`时,该参数必传,且不传**Condition.N.Value**。', 'type' => 'string', 'required' => false, 'example' => '1'], + ], + 'required' => false, + 'description' => '', + ], 'required' => false, - 'example' => '1658406464534', + 'maxItems' => 100, ], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '请求返回结果', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'no authorization.', - ], - 'RequestId' => [ - 'description' => '请求ID,阿里云为该请求生成的唯一标识符。'."\n", - 'type' => 'string', - 'example' => '4D6D7F71-1C94-4160-8511-EFF4B8F0643F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + ."\n" + .'- **Success**:表示成功。'."\n" + .'- 其他:表示错误,更多信息,请参见[错误码](~~135176~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'insuficient auth:无访问权限'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7EC5B624-AF1B-4C4D-BA82-A02BA1******'], + 'Success' => ['description' => '表示是否调用成功:'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'false'], 'Data' => [ - 'description' => '请求的返回结果。', + 'description' => '调用成功时,返回的数据信息。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '下载任务的执行状态。'."\n" - .'- **-1**:初始化中。'."\n" - .'- **0**:运行中。'."\n" - .'- **1**:执行成功。'."\n" - .'- **2**:执行失败。'."\n" - .'- **3**:已提交,等待中。'."\n" - .'- **4**:已取消。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '-1', - ], - 'LongJobId' => [ - 'description' => '下载任务的ID。', - 'type' => 'string', - 'example' => '62d949808bc742187xxxxxx', - ], - 'AsyncExecute' => [ - 'description' => '是否是异步查询。'."\n" - .'- **true**:是异步查询。'."\n" - .'- **false**:不是异步查询,是同步查询。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'CsvUrl' => [ - 'description' => 'OSS文件的下载地址。', - 'type' => 'string', - 'example' => 'https://oss-xxxx-xxxx.xxxx......', - ], - 'CsvFileName' => [ - 'description' => '下载文件的名称。', - 'type' => 'string', - 'example' => 'test_download_file', - ], + 'ResultJson' => ['description' => '符合条件的数据详情。', 'type' => 'string', 'example' => '[{\\"testCode\\":\\"TBB186\\",\\"testLevel\\":5,\\"testWorkYears\\":3,\\"testName\\":\\"王五\\"},{\\"testCode\\":\\"TBB1314\\",\\"testLevel\\":2,\\"testWorkYears\\":4,\\"testName\\":\\"李四\\"},{\\"testCode\\":\\"TBB8888\\",\\"testLevel\\":2,\\"testWorkYears\\":5,\\"testName\\":\\"熊大\\"}]"'], + 'PageNum' => ['description' => '分页的页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示结果的最大条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Count' => ['description' => '符合查询条件的记录总条数。', 'type' => 'integer', 'format' => 'int64', 'example' => '3'], + 'HasNext' => ['description' => '符合条件的数据是否有下一页:'."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。', 'type' => 'boolean', 'example' => 'false'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', - ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', - ], - [ - 'errorCode' => 'iot.dap.insight.serverError', - 'errorMessage' => 'server hsf error please try later', - ], - [ - 'errorCode' => 'iot.dap.insight.queryTimeMoreThanQueryDays', - 'errorMessage' => 'The query time range exceeded the allowed time range', - ], - [ - 'errorCode' => 'iot.dap.insight.processDownloadJobMoreConcurrenceCount', - 'errorMessage' => 'the number of concurrent download tasks in progress exceeds the upper limit', - ], - [ - 'errorCode' => 'iot.dap.insight.downloadTimesUpperLimit', - 'errorMessage' => 'the number of current job downloaded tasks exceeded the upper limit', - ], - [ - 'errorCode' => 'iot.dap.insight.downloadTaskNumUpperLimit', - 'errorMessage' => 'the number of downloaded tasks exceeded the upper limit', + ['errorCode' => 'LossOfUserInformation', 'errorMessage' => 'lost of user info:%s', 'description' => ''], + ['errorCode' => 'InvalidParameter', 'errorMessage' => 'invalid parameter:%s', 'description' => ''], + ['errorCode' => 'InsufficientAuthority', 'errorMessage' => 'insuficient auth:%s', 'description' => ''], + ['errorCode' => 'RequestFailed', 'errorMessage' => 'source data does not exist', 'description' => ''], + ['errorCode' => 'iot.dap.insight.dataApiNotDeploy', 'errorMessage' => 'The current API operation is not deployed.', 'description' => '当前API未发布'], + ['errorCode' => 'iot.dap.insight.apiQueryParamError', 'errorMessage' => 'A query parameter error occurred.', 'description' => 'API执行查询参数异常'], + ['errorCode' => 'iot.dap.insight.pipelineProcessError', 'errorMessage' => 'pipeline processing error', 'description' => '执行流水线错误'], + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.dopQueryApiError', 'errorMessage' => 'dop query api error', 'description' => 'DOP执行API查询失败'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"insuficient auth:无访问权限\\",\\n \\"RequestId\\": \\"7EC5B624-AF1B-4C4D-BA82-A02BA1******\\",\\n \\"Success\\": false,\\n \\"Data\\": {\\n \\"ResultJson\\": \\"[{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB186\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":5,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":3,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"王五\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB1314\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":4,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"李四\\\\\\\\\\\\\\"},{\\\\\\\\\\\\\\"testCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TBB8888\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"testLevel\\\\\\\\\\\\\\":2,\\\\\\\\\\\\\\"testWorkYears\\\\\\\\\\\\\\":5,\\\\\\\\\\\\\\"testName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"熊大\\\\\\\\\\\\\\"}]\\\\\\"\\",\\n \\"PageNum\\": 1,\\n \\"PageSize\\": 100,\\n \\"Count\\": 3,\\n \\"HasNext\\": false\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 7EC5B624-AF1B-4C4D-BA82-A02BA1******\\n\\n [{\\\\\\"testCode\\\\\\":\\\\\\"TBB186\\\\\\",\\\\\\"testLevel\\\\\\":5,\\\\\\"testWorkYears\\\\\\":3,\\\\\\"testName\\\\\\":\\\\\\"王五\\\\\\"},{\\\\\\"testCode\\\\\\":\\\\\\"TBB1314\\\\\\",\\\\\\"testLevel\\\\\\":2,\\\\\\"testWorkYears\\\\\\":4,\\\\\\"testName\\\\\\":\\\\\\"李四\\\\\\"},{\\\\\\"testCode\\\\\\":\\\\\\"TBB8888\\\\\\",\\\\\\"testLevel\\\\\\":2,\\\\\\"testWorkYears\\\\\\":5,\\\\\\"testName\\\\\\":\\\\\\"熊大\\\\\\"}]\\"\\n 100\\n 1\\n 3\\n false\\n\\nSuccess\\ntrue\\n","errorExample":""}]', + 'title' => 'ListAnalyticsData', + 'summary' => '调用该接口执行数据服务API对应的查询任务,从而获取数据源里的指定数据。', + 'description' => '## 使用限制'."\n" + .'每个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListAnalyticsData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"no authorization.\\",\\n \\"RequestId\\": \\"4D6D7F71-1C94-4160-8511-EFF4B8F0643F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": -1,\\n \\"LongJobId\\": \\"62d949808bc742187xxxxxx\\",\\n \\"AsyncExecute\\": true,\\n \\"CsvUrl\\": \\"https://oss-xxxx-xxxx.xxxx......\\",\\n \\"CsvFileName\\": \\"test_download_file\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 200\\n \\n true\\n 62d949808bc742187xxxxxx\\n \\n -1\\n \\n C8E9E92F-ADD1-1434-BA90-E85F70F5C536\\n true\\n","errorExample":""}]', - 'title' => 'CreateDownloadDataJob', - 'summary' => '调用接口创建数据下载任务。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 该任务等同于在控制台创建的数据下载任务,用户可在对应数据表的导出管理页面查看此次下载任务的日志,并下载文件。'."\n" - ."\n" - .'- 通过该接口创建下载任务会增加[AMQP消息推送](~~143601~~),其中`consumerGroupId`请选用`dop_aliyun_group_name`,消息内容包含此次下载任务的执行状态,用户可根据此状态,配合[GetDownloadFile](~~445783~~)接口获取文件下载地址或查看下载任务的异常信息。'."\n" - ."\n" - .'## 使用限制'."\n" - ."\n" - .'- 同一数据实例下,每次只能创建1个下载任务。待上一个任务执行完成后才能创建新的下载任务,否则会提示超过下载任务数限制异常。'."\n" - ."\n" - .'- 单次下载数据时间范围最多为3天。'."\n" - ."\n" - .'- 1天内只能创建3个下载任务,RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', ], - 'GetDownloadFile' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ListDataSourceItem' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'Context', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '请求内容。', - 'type' => 'object', - 'required' => false, - 'example' => '{"xxx";xxx}', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t***'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-npk1u******', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '10'], ], [ - 'name' => 'LongJobId', + 'name' => 'DataSourceId', 'in' => 'query', - 'schema' => [ - 'description' => '创建下载任务时返回的长任务ID,请参见[CreateDownloadDataJob](~~445782~~)中的**LongJobId**参数。', - 'type' => 'string', - 'required' => true, - 'example' => '62d949808bc742187xxxxxx', - ], + 'schema' => ['description' => '数据源ID。'."\n" + ."\n" + .'调用[ListParserDataSource](~~432676~~)接口,可查看当前实例下所有数据源ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '1001'], + ], + [ + 'name' => 'Page', + 'in' => 'query', + 'schema' => ['description' => '指定显示返回结果中的第几页,取值范围为1~100,000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100000', 'minimum' => '1', 'example' => '1'], + ], + [ + 'name' => 'SearchName', + 'in' => 'query', + 'schema' => ['description' => '传入Topic值中任意一段字符串,根据该字符串检索能匹配的Topic。', 'type' => 'string', 'required' => false, 'example' => 'thing'], ], ], 'responses' => [ 200 => [ 'schema' => [ - 'description' => '返回结果。', 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'no authorization.', - ], - 'RequestId' => [ - 'description' => '请求ID,阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09934****', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '数据。', + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。 ', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '返回结果记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Page' => ['description' => '显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DataSourceItems' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'Status' => [ - 'description' => '下载任务的执行状态。'."\n" - .'- **-1**:初始化中。'."\n" - .'- **0**:运行中。'."\n" - .'- **1**:执行成功。'."\n" - .'- **2**:执行失败。'."\n" - .'- **3**:已提交,等待中。'."\n" - .'- **4**:已取消。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'LongJobId' => [ - 'description' => '下载任务的ID。', - 'type' => 'string', - 'example' => '62d949808bc742187xxxxxx', - ], - 'BeginTime' => [ - 'description' => '下载任务的开始时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658406464534', - ], - 'AsyncExecute' => [ - 'description' => '是否是异步查询。'."\n" - .'- **true**:是异步查询。'."\n" - .'- **false**:不是异步查询,是同步查询。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TotalCount' => [ - 'description' => '总数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - 'EndTime' => [ - 'description' => '下载任务的结束时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1658406465000', - ], - 'PreviewSize' => [ - 'description' => '预览大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageNo' => [ - 'description' => '分页页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '分页大小。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'CsvUrl' => [ - 'description' => 'OSS文件的下载地址。(有效期5分钟)', - 'type' => 'string', - 'example' => 'https://xxxxx-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761BxxxxxxxxAAA0BF03D32C80E/62da39b9xxxxxx5a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D', - ], - 'CsvFileName' => [ - 'description' => 'CSV文件名称。', - 'type' => 'string', - 'example' => 'test_download_flie', - ], - 'DatasetId' => [ - 'description' => '下载对象ID。', - 'type' => 'string', - 'example' => 'xxxxxx', - ], - 'ResultDataInString' => [ - 'description' => '查询执行结果。', - 'type' => 'string', - 'example' => '{"a":123}', - ], - 'Header' => [ - 'description' => '字段信息。', + 'dataSourceItem' => [ + 'description' => '返回的Topic列表信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TypeClass' => [ - 'description' => '类型。', - 'type' => 'string', - 'example' => 'date', - ], - 'FieldName' => [ - 'description' => '字段名。', - 'type' => 'string', - 'example' => 'user_name', - ], - 'GeoClass' => [ - 'description' => '地理信息。', - 'type' => 'string', - 'example' => '{xxx:xxxx}', - ], - 'FieldType' => [ - 'description' => '字段数据类型。', - 'type' => 'string', - 'example' => 'INTEGER', - ], - 'TimeClass' => [ - 'description' => '时间维度。', - 'type' => 'string', - 'example' => 'HOUR/DAY/MONTH', - ], - 'DimDateClass' => [ - 'description' => '调度类型。', - 'type' => 'string', - 'example' => 'DAY', - ], - 'Alias' => [ - 'description' => '字段别名。', - 'type' => 'string', - 'example' => 'user_name_alias', - ], - ], - ], - ], - 'Result' => [ - 'description' => '执行结果。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'example' => '{"a":123}', - ], - ], - 'QuerySetting' => [ - 'description' => '查询请求信息。', - 'type' => 'object', - 'properties' => [ - 'SelectedHeaders' => [ - 'description' => '查询字段列表。', - 'type' => 'array', - 'items' => [ - 'description' => '字段信息。', - 'type' => 'object', - 'properties' => [ - 'FieldName' => [ - 'description' => '字段名。', - 'type' => 'string', - 'example' => 'user_name', - ], - 'GeoClass' => [ - 'description' => '地理信息。', - 'type' => 'string', - 'example' => '{xxx:xxx}', - ], - 'FieldType' => [ - 'description' => '字段数据类型。', - 'type' => 'string', - 'example' => 'INTEGER', - ], - 'TimeClass' => [ - 'description' => '日期维度。', - 'type' => 'string', - 'example' => 'HOUR/DAY/MONTH', - ], - 'Alias' => [ - 'description' => '字段别名。', - 'type' => 'string', - 'example' => 'user_name_alias', - ], - 'DimDateClass' => [ - 'description' => '调度类型。', - 'type' => 'string', - 'example' => 'DAY', - ], - ], - ], - ], - 'AstExpr' => [ - 'description' => '查询条件。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ExprType' => [ - 'description' => '表达式类型。', - 'type' => 'string', - 'example' => 'binaryOp', - ], - 'Expr' => [ - 'description' => '表达式内容。', - 'type' => 'string', - 'example' => '{"header":{"fieldName":"xxx"},"operator":"GreaterThanOrEqual","value":12345}', - ], - ], - ], + 'ProductKey' => ['description' => '消息Topic所属产品的**ProductKey**。'."\n" + ."\n" + .'> 消息Topic属于开源MQTT托管形态产品和设备,或MQTT云网关产品和设备时,返回该参数。', 'type' => 'string', 'example' => 'aw3****'], + 'DataSourceItemId' => ['description' => '数据源Topic的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '129322'], + 'DeviceName' => ['description' => '消息Topic所属的设备名称。'."\n" + ."\n" + .'> 消息Topic属于开源MQTT托管形态产品和设备或MQTT云网关产品和设备时,返回该参数。', 'type' => 'string', 'example' => 'lightDevice'], + 'ScopeType' => ['description' => '消息Topic订阅的作用域,可取值:'."\n" + ."\n" + .'- **PRODUCT **:产品维度,表示作用在产品下的所有设备上。'."\n" + .'- **DEVICE **:设备维度,表示作用在产品下指定的设备上。'."\n" + ."\n" + .'> 消息Topic属于开源MQTT托管形态产品和设备,或MQTT云网关产品和设备时,返回该参数。', 'type' => 'string', 'example' => 'PRODUCT'], + 'Topic' => ['description' => '数据源Topic的具体值。', 'type' => 'string', 'example' => '/gyh***z/+/thing/event/property/post'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', - ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', - ], - [ - 'errorCode' => 'iot.dap.insight.serverError', - 'errorMessage' => 'server hsf error please try later', - ], - [ - 'errorCode' => 'iot.dap.insight.downloadTaskNumUpperLimit', - 'errorMessage' => 'the number of downloaded tasks exceeded the upper limit', - ], - [ - 'errorCode' => 'iot.dap.insight.downloadTimesUpperLimit', - 'errorMessage' => 'the number of current job downloaded tasks exceeded the upper limit', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"no authorization.\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09934****\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": 1,\\n \\"LongJobId\\": \\"62d949808bc742187xxxxxx\\",\\n \\"BeginTime\\": 1658406464534,\\n \\"AsyncExecute\\": true,\\n \\"TotalCount\\": 100,\\n \\"EndTime\\": 1658406465000,\\n \\"PreviewSize\\": 100,\\n \\"PageNo\\": 1,\\n \\"PageSize\\": 10,\\n \\"CsvUrl\\": \\"https://xxxxx-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761BxxxxxxxxAAA0BF03D32C80E/62da39b9xxxxxx5a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D\\",\\n \\"CsvFileName\\": \\"test_download_flie\\",\\n \\"DatasetId\\": \\"xxxxxx\\",\\n \\"ResultDataInString\\": \\"{\\\\\\"a\\\\\\":123}\\",\\n \\"Header\\": [\\n {\\n \\"TypeClass\\": \\"date\\",\\n \\"FieldName\\": \\"user_name\\",\\n \\"GeoClass\\": \\"{xxx:xxxx}\\",\\n \\"FieldType\\": \\"INTEGER\\",\\n \\"TimeClass\\": \\"HOUR/DAY/MONTH\\",\\n \\"DimDateClass\\": \\"DAY\\",\\n \\"Alias\\": \\"user_name_alias\\"\\n }\\n ],\\n \\"Result\\": [\\n {\\n \\"a\\": 123\\n }\\n ],\\n \\"QuerySetting\\": {\\n \\"SelectedHeaders\\": [\\n {\\n \\"FieldName\\": \\"user_name\\",\\n \\"GeoClass\\": \\"{xxx:xxx}\\",\\n \\"FieldType\\": \\"INTEGER\\",\\n \\"TimeClass\\": \\"HOUR/DAY/MONTH\\",\\n \\"Alias\\": \\"user_name_alias\\",\\n \\"DimDateClass\\": \\"DAY\\"\\n }\\n ],\\n \\"AstExpr\\": [\\n {\\n \\"ExprType\\": \\"binaryOp\\",\\n \\"Expr\\": \\"{\\\\\\"header\\\\\\":{\\\\\\"fieldName\\\\\\":\\\\\\"xxx\\\\\\"},\\\\\\"operator\\\\\\":\\\\\\"GreaterThanOrEqual\\\\\\",\\\\\\"value\\\\\\":12345}\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n \\n true\\n download_file_name\\n https://insight-data-download-sh.oss-cn-shanghai.aliyuncs.com/data/download/6B761B2617454C9C9AAA0BF03D32C80E/62da39b9a48f865a7b953376/download_file_name.csv?Expires=1658469132&OSSAccessKeyId=xxxxxxxxx&Signature=rRL%xxxxxxx%3D\\n 62d949808bc742187xxxxxx\\n 1\\n \\n 41CF72F4-63C1-1EBA-8590-89D0F0CD298A\\n true\\n","errorExample":""}]', - 'title' => 'GetDownloadFile', - 'summary' => '调用该接口获取数据表数据下载任务的执行结果。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 单个下载任务的下载链接一天内只能获取3次。'."\n" - .'- 下载链接的有效期为5分钟。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - ], - 'BatchPub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要发送消息的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], - ], - [ - 'name' => 'Qos', - 'in' => 'query', - 'schema' => [ - 'description' => '指定消息的发送方式。取值:'."\n" - ."\n" - .'- **0**:最多发送一次。'."\n" - .'- **1**:最少发送一次。'."\n" - ."\n" - .'如果不传入此参数,则使用默认值**0**。'."\n" - ."\n" - .'> QoS=1的消息在物联网平台中最多可以保存7天。物联网平台不保存QoS=0的消息。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], - ], - [ - 'name' => 'TopicShortName', - 'in' => 'query', - 'schema' => [ - 'description' => '自定义Topic的后缀。'."\n" - .'自定义Topic的格式为`/${productKey}/${deviceName}/user/${TopicShortName}`,传入后缀${TopicShortName}。'."\n" - ."\n" - .'> 指定Topic的操作权限须为订阅,或发布和订阅,且所有设备已订阅该Topic。'."\n" - ."\n" - .'您可通过以下途径查看自定义Topic:'."\n" - .'- 在产品详情页的**Topic类列表**页签下,查看产品下的自定义Topic。'."\n" - .'- 在设备详情页的**Topic列表**页签下,查看设备已订阅的自定义Topic。'."\n" - .'- 调用[QueryProductTopic](~~69647~~)接口查询产品下的自定义Topic。', - 'type' => 'string', - 'required' => false, - 'example' => 'get', - ], - ], - [ - 'name' => 'MessageContent', - 'in' => 'query', - 'schema' => [ - 'description' => '要发送的消息主体。最大报文256 KB。'."\n" - ."\n" - .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', - 'type' => 'string', - 'required' => true, - 'example' => 'eyJ0ZXN0IjoidGFzayBiYXRjaHB1YiBicm9hZGNhc3QifQ==', - ], - ], - [ - 'name' => 'TopicTemplateName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidPageParams', 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', 'description' => '分页大小或者分页页号不合法。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"DataSourceItems\\": {\\n \\"dataSourceItem\\": [\\n {\\n \\"ProductKey\\": \\"aw3****\\",\\n \\"DataSourceItemId\\": 129322,\\n \\"DeviceName\\": \\"lightDevice\\",\\n \\"ScopeType\\": \\"PRODUCT\\",\\n \\"Topic\\": \\"/gyh***z/+/thing/event/property/post\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 129322\\n /gyh***z/+/thing/event/property/post\\n \\n\\n1\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n1\\n1\\ntrue\\n","errorExample":""}]', + 'title' => 'ListDataSourceItem', + 'summary' => '调用该接口分页查询规则引擎中指定数据源下的Topic列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ResponseTopicTemplateName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'CorrelationData', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'PayloadFormatIndicator', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'ContentType', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值不超过100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '10'], ], [ - 'name' => 'MessageExpiryInterval', + 'name' => 'SearchName', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['description' => '传入数据目的名称中任意字符串,根据该字符串可检索能匹配的数据目的名称。', 'type' => 'string', 'required' => false, 'example' => 'DataPurpose'], ], [ - 'name' => 'Retained', + 'name' => 'Page', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, - ], + 'schema' => ['description' => '指定显示返回结果中的第几页,取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '9999999', 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'DeviceName', + 'name' => 'Types', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '要接收消息的设备名称。'."\n" + 'description' => '数据目的操作类型列表,可取值:'."\n" ."\n" - .'> - 与**ProductKey**结合使用,传入设备必须属于同一产品。'."\n" - .'- 单次调用,最多传入100个设备名称,且设备名称不可重复。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'newdevice1', - 'maxItems' => 100, - ], - ], - [ - 'name' => 'UserProp', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - 'required' => false, - ], - 'Value' => [ - 'type' => 'string', - 'required' => false, - ], - ], - ], + 'items' => ['description' => '数据目的操作类型,可取值:'."\n" + ."\n" + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'string', 'required' => false, 'example' => 'OTS'], 'required' => false, - 'maxItems' => 20, + 'example' => '["REPUBLISH", "OTS"]', + 'maxItems' => 10, ], ], ], @@ -34646,278 +22274,329 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '返回结果记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Page' => ['description' => '显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Destinations' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'destinations' => [ + 'description' => '返回的数据目的列表数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '数据目的对应的状态。返回值:'."\n" + ."\n" + .'- **INIT**:初始配置中。'."\n" + .'- **NORMAL**:配置完成,正常可用。'."\n" + .'- **INVALID**:配置存在异常,不可用。'."\n" + .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', 'type' => 'string', 'example' => 'NORMAL'], + 'Type' => ['description' => '数据目的的操作类型。', 'type' => 'string', 'example' => 'REPUBLISH'], + 'Description' => ['description' => '数据目的对应的描述信息。', 'type' => 'string', 'example' => '数据流转至数据库。'], + 'DestinationId' => ['description' => '数据目的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1003'], + 'Configuration' => ['description' => '数据目的对应的配置信息。', 'type' => 'string', 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + 'Name' => ['description' => '数据目的名称。', 'type' => 'string', 'example' => 'DataPurpose'], + 'UtcCreated' => ['description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'IsFailover' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**:不是转发错误操作数据,而是正常转发操作。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'false'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E\\r\\ntrue\\r\\n","errorExample":""}]', - 'title' => '向设备批量发送消息', - 'summary' => '通过自定义Topic,向指定产品下的多个设备,批量发送消息。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 单批次最多向同一产品下的100个设备发送消息。'."\n" - .'- 不支持使用BatchPub接口下发设置属性和调用服务的指令。设置属性,请使用接口[SetDeviceProperty](~~69579~~)或[SetDevicesProperty](~~96243~~);调用服务,请使用接口[InvokeThingService](~~69584~~)或[InvokeThingsService](~~96242~~)。'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'destination not found', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"Destinations\\": {\\n \\"destinations\\": [\\n {\\n \\"Status\\": \\"NORMAL\\",\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"Description\\": \\"数据流转至数据库。\\",\\n \\"DestinationId\\": 1003,\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n10\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n100\\n\\n \\n REPUBLISH\\n 数据流转至另一个Topic。\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n false\\n 1004\\n DataPurpose1\\n \\n \\n REPUBLISH\\n 数据流转至另一个Topic。\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device2/user/get\\",\\"topicType\\":1}\\n false\\n 1005\\n DataPurpose2\\n \\n\\n1\\ntrue\\n","errorExample":""}]', + 'title' => 'ListDestination', + 'summary' => '调用该接口查询已创建的数据目的列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'Pub' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListDeviceDistributeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'TargetUid', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '设备分发的目标阿里云账号ID。', 'type' => 'string', 'required' => false, 'example' => '198***'], ], [ - 'name' => 'CorrelationData', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '使用MQTT 5.0版本通信协议时,请求和响应模式中的相关数据,用户可自定义。'."\n" - ."\n" - .'消息接收方可根据相关数据处理请求。'."\n" - ."\n" - .'> 您需要将相关数据转换为二进制数据,并进行Base64编码,从而生成String类型数据。', - 'type' => 'string', - 'required' => false, - 'example' => 'aGVsbG8****', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。'."\n" + ."\n" + .'**NextToken**与**CurrentPage**是设置显示结果的条件参数,可任选一个传入。如果同时传入,则**NextToken**优先级更高。'."\n" + ."\n" + .'**NextToken**参数的使用说明,请参见**NextToken**描述。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'ProductKey', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Q5XoY****', - ], + 'schema' => ['description' => '每页显示的分发任务数量。最大不超过200条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'DeviceName', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => 'MQTT云网关设备的名称。'."\n" - ."\n" - .'>'."\n" - .'仅当需要向指定MQTT云网关设备发布消息时,需要传入该参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], + 'schema' => ['description' => '设备分发任务的状态。'."\n" + ."\n" + .'- **0**:任务初始化。'."\n" + ."\n" + .'- **1**:任务执行中。'."\n" + .' '."\n" + .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" + ."\n" + .'- **3**:任务异常中断。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Qos', - 'in' => 'query', - 'schema' => [ - 'description' => '指定消息的发送方式。取值:'."\n" - ."\n" - .'- **0**:最多发送一次。'."\n" - .'- **1**:最少发送一次。如果QoS=1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。'."\n" - ."\n" - .'如果不传入此参数,则使用默认值**0**。'."\n" - ."\n" - .'通信消息的更多使用说明,请参见[使用限制的连接通信](~~30527~~)。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - 'default' => '0', - 'enum' => [ - '0', - '1', - ], - ], + 'name' => 'JobId', + 'in' => 'formData', + 'schema' => ['description' => '设备分发任务的ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => false, 'example' => 'UbmsMHmkqv0PiAG****010001'], ], [ - 'name' => 'ContentType', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => '使用MQTT 5.0版本通信协议时,发布消息的内容类型。'."\n" - ."\n" - .'典型应用于存放MIME类型文件,例如,文本文件类型:**text**、**plain**。', - 'type' => 'string', - 'required' => false, - 'example' => 'text', - ], + 'schema' => ['description' => '下一页标识,首次查询无需传入。'."\n" + ."\n" + .'**NextToken**与**CurrentPage**是设置显示结果的条件参数,可任选一个传入。如果同时传入,则**NextToken**优先级更高。'."\n" + ."\n" + .'>'."\n" + .'定义查询结果的偏移数量为:**PageSize**×(**CurrentPage**-1)。'."\n" + ."\n" + .'当偏移数量大于10,000时,必须传入上一次调用本接口返回的**NextToken**值,才会返回**Data**数据。否则,接口请求会被中断,无法返回**Data**数据。'."\n" + ."\n" + .'>'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291***'], ], [ - 'name' => 'PayloadFormatIndicator', + 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '设备所隶属的产品ProductKey。', 'type' => 'string', 'required' => false, 'example' => 'a1T27vz****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '使用MQTT 5.0版本通信协议时,发布消息的有效载荷标识,可取值:'."\n" - .'- **0**:消息是未确定的字节数据。'."\n" - .'- **1**:消息的有效载荷是UTF-8编码的字符数据。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功后,返回的设备分发任务列表,详情参见**JobInfo**下信息。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '返回的设备分发任务总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'NextToken' => ['description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" + ."\n" + .'如果返回值为空,则表示没有下一页数据了。', 'type' => 'string', 'example' => 'TGlzdFJlc291***'], + 'JobInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'items' => [ + 'description' => '任务的信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Strategy' => ['description' => '分发策略。'."\n" + ."\n" + .'- **0**(默认):指定地域,将设备分发到指定地域的指定实例。'."\n" + .'- **1**:就近接入,即设备分发任务中,配置了多个地域的实例ID,设备根据设备的IP位置,分发到距离其最近地域的实例中。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Status' => ['description' => '任务状态。'."\n" + ."\n" + .'- **0**:任务初始化。'."\n" + ."\n" + .'- **1**:任务执行中。'."\n" + .' '."\n" + .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" + ."\n" + .'- **3**:任务异常中断。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'TargetUid' => ['description' => '目标阿里云账号ID。', 'type' => 'string', 'example' => '198***'], + 'JobId' => ['description' => '任务的ID。', 'type' => 'string', 'example' => 'UbmsMHmkqv0PiAG****010001'], + 'GmtCreate' => ['description' => '任务的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942000'], + 'SourceInstanceName' => ['description' => '源实例名称。', 'type' => 'string', 'example' => '实例调试1'], + 'SourceUid' => ['description' => '源阿里云账号ID。', 'type' => 'string', 'example' => '198***'], + 'Total' => ['description' => '分发任务中的设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'SourceRegion' => ['description' => '源实例所在地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'SourceInstanceId' => ['description' => '源实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + 'TargetInstanceConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'targetInstanceConfigs' => [ + 'description' => '目标实例ID列表。'."\n" + ."\n" + .'- 当参数**Strategy**为**1**时,列表可有多个实例ID。'."\n" + .'- 当参数**Strategy**为**0**时,列表有一个实例ID。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TargetInstanceName' => ['description' => '目标实例名称。', 'type' => 'string', 'example' => '实例调试2'], + 'TargetRegion' => ['description' => '目标实例所在地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'TargetInstanceId' => ['description' => '目标实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"NextToken\\": \\"TGlzdFJlc291***\\",\\n \\"JobInfo\\": {\\n \\"items\\": [\\n {\\n \\"Strategy\\": 0,\\n \\"Status\\": 1,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"SourceInstanceName\\": \\"实例调试1\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"Total\\": 5,\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\",\\n \\"TargetInstanceConfigs\\": {\\n \\"targetInstanceConfigs\\": [\\n {\\n \\"TargetInstanceName\\": \\"实例调试2\\",\\n \\"TargetRegion\\": \\"cn-shanghai\\",\\n \\"TargetInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n TGlzdFJlc291***\\n 10\\n \\n \\n 1\\n 实例调试1\\n 1581595942000\\n 198***\\n 5\\n 0\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n a1BwAGV****\\n UbmsMHmkqv0PiAG****010001\\n \\n \\n cn-shanghai\\n 实例调试2\\n iot-cn-6ja***\\n \\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'ListDeviceDistributeJob', + 'summary' => '调用该接口获取设备分发任务列表。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" + .' '."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'Retained', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListDistributedDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MessageExpiryInterval', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - ], + 'schema' => ['description' => '每页显示的设备数量。最大不超过200条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '200', 'minimum' => '1', 'example' => '5'], ], [ - 'name' => 'ResponseTopic', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '使用MQTT 5.0版本通信协议时,请求和响应模式中的响应主题,即通信的Topic。更多消息,请参见[MQTT 5.0协议说明](~~30540~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '/a1Q5XoY****/device1/user/update', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'TopicFullName', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备的自定义Topic。'."\n" - ."\n" - .'- 对于开源MQTT托管形态设备和MQTT云网关设备,自定义Topic为设备的原始自定义Topic。详细内容,请参见[Topic说明](~~433806~~)。'."\n" - .'- 对于非开源MQTT托管形态设备和非MQTT云网关设备,自定义Topic的格式支持为:'."\n" - ."\n" - .' - `/${productKey}/${deviceName}/user/${TopicShortName}`:发送消息到指定**ProductKey**的指定设备。'."\n" - .' - `/broadcast/${productKey}/${自定义字段}`:发送消息到指定**ProductKey**下已订阅该Topic的在线设备。`${productKey}`是要接收广播消息的具体产品的**ProductKey**;`${自定义字段}`为您自定义的任意字段。'."\n" - ."\n" - .'> '."\n" - .'- Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" - .'- 调用该接口前,设备必须已订阅该Topic且未取消,否则无法接收本次发布的消息。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'查询自定义Topic方法:'."\n" - ."\n" - .'- 调用[QueryProductTopic](~~69647~~)接口,查询产品下的自定义Topic。'."\n" - .'- 在物联网平台控制台**产品详情**页面的**Topic类列表**页签下,查询产品下的自定义Topic。'."\n" - .'- 在物联网平台控制台**设备详情**页面的**Topic列表**页签下,查看设备已订阅的自定义Topic。', - 'type' => 'string', - 'required' => true, - 'example' => '/a1Q5XoY****/device1/user/get', - ], + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'mydevice'], ], [ - 'name' => 'MessageContent', - 'in' => 'formData', - 'schema' => [ - 'description' => '要发送的消息主体。您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', - 'type' => 'string', - 'required' => true, - 'example' => 'eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1'], ], [ - 'name' => 'TopicAlias', + 'name' => 'TargetUid', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - ], + 'schema' => ['description' => '阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。', 'type' => 'string', 'required' => false, 'example' => '198***'], ], [ - 'name' => 'UserProp', + 'name' => 'SourceInstanceId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '使用MQTT 5.0版本通信协议时,用户自定义属性列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '使用MQTT 5.0版本通信协议时,用户自定义属性的Key。'."\n" - ."\n" - .'需要与**UserProp.N.Value**成对使用。', - 'type' => 'string', - 'required' => false, - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '使用MQTT 5.0版本通信协议时,用户自定义属性的Value。'."\n" - ."\n" - .'需要与**UserProp.N.Key**成对使用。', - 'type' => 'string', - 'required' => false, - 'example' => 'value1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '设备所属的源实例ID。'."\n" + ."\n" + .'- 各地域公共实例ID:'."\n" + ."\n" + .' - 华东2(上海):iotx-oxssharez200。'."\n" + .' - 日本:iotx-oxssharez300。'."\n" + .' - 新加坡:iotx-oxssharez400。'."\n" + .' - 美国(硅谷):iotx-oxssharez500。'."\n" + .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" + .' - 德国(法兰克福):iotx-oxssharez700。'."\n" + ."\n" + .'- 企业版实例ID:'."\n" + .' '."\n" + .' 1. 登录物联网平台控制台,从顶部导航栏左上方的下拉菜单选择地域。'."\n" + .' '."\n" + .' 2. 在**实例概览**页面,单击实例名称,在**实例详情**页面的**实例基本信息**中查看**实例ID**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot-060***'], ], ], 'responses' => [ @@ -34925,139 +22604,143 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'MessageId' => [ - 'description' => '成功发送消息后,云端生成的消息ID,用于标识该消息。', - 'type' => 'string', - 'example' => '889455942124347329', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的设备列表,详情请参见**Info**下信息。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '返回的设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Info' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'items' => [ + 'description' => '设备的信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'mydevice'], + 'TargetAliyunId' => ['description' => '接收设备的目标阿里云账号。', 'type' => 'string', 'example' => 'io****@example.com'], + 'SourceUid' => ['description' => '分发设备的源阿里云账号ID。'."\n" + ."\n" + .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**TargetUid**值相同。', 'type' => 'string', 'example' => '198***'], + 'GmtModified' => ['description' => '分发任务的修改时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942222'], + 'TargetInstanceId' => ['description' => '设备的目标实例ID。', 'type' => 'string', 'example' => 'iot-cn-09k***'], + 'TargetUid' => ['description' => '接收设备的目标阿里云账号ID。'."\n" + ."\n" + .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**SourceUid**值相同。', 'type' => 'string', 'example' => '198***'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV***'], + 'TargetRegion' => ['description' => '设备的目标地域。', 'type' => 'string', 'example' => 'cn-shenzhen'], + 'GmtCreate' => ['description' => '设备所属分发任务的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942000'], + 'TargetInstanceName' => ['description' => '设备的目标实例名称。', 'type' => 'string', 'example' => 'newinstance'], + 'SourceInstanceName' => ['description' => '设备的源实例名称。', 'type' => 'string', 'example' => 'myproInstance'], + 'SourceRegion' => ['description' => '设备所属的源地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'SourceInstanceId' => ['description' => '设备的源实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"MessageId\\": \\"889455942124347329\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n 889455942124347329\\r\\n","errorExample":""}]', - 'title' => 'Pub', - 'summary' => '调用该接口通过自定义Topic向设备发布消息,支持向指定产品下订阅了指定自定义Topic的在线设备发送广播消息。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"Info\\": {\\n \\"items\\": [\\n {\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"TargetAliyunId\\": \\"io****@example.com\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"GmtModified\\": 1581595942222,\\n \\"TargetInstanceId\\": \\"iot-cn-09k***\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"ProductKey\\": \\"a1BwAGV***\\",\\n \\"TargetRegion\\": \\"cn-shenzhen\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"TargetInstanceName\\": \\"newinstance\\",\\n \\"SourceInstanceName\\": \\"myproInstance\\",\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 10\\n \\n \\n cn-shenzhen\\n myproInstance\\n io****@example.com\\n 198***\\n 1581595942222\\n iot-cn-09k***\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n 1581595942000\\n newinstance\\n a1BwAGV***\\n mydevice\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询已分发的设备列表', + 'summary' => '调用该接口查询已分发的设备列表。', 'description' => '## 使用说明'."\n" - .'发送广播消息时:'."\n" - .'- 相关Topic是在设备开发时编码定义的,无需控制台创建。'."\n" - .'- 一个Topic默认最多可被1,000个设备订阅。若后续需要新增更多设备订阅自定义Topic的广播消息,可使用MQTT 5.0版本通信协议进行通信,通过设置自定义Topic支持保留消息广播和设置自定义Topic消息为保留消息来实现。使用说明,请参见[UpdateTopicConfig](~~601689~~)。'."\n" ."\n" - .'## 使用限制'."\n" - .'该接口不支持下发设置属性和调用服务的指令。'."\n" - .'- 设置属性,请使用[SetDeviceProperty](~~69579~~)或[SetDevicesProperty](~~96243~~)。'."\n" - .'- 调用服务,请使用[InvokeThingService](~~69584~~)或[InvokeThingsService](~~96242~~)。'."\n" + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n" + ."\n" + .'- 多个阿里云账号同时调用该接口的QPS最大限制为200。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PubBroadcast' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDistributedDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListDistributedProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '每页显示的产品数量。最大不超过200条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '200', 'minimum' => '1', 'example' => '5'], + ], + [ + 'name' => 'SourceInstanceId', + 'in' => 'query', + 'schema' => ['description' => '产品所属的源实例ID。'."\n" + ."\n" + .'- 各地域公共实例ID:'."\n" + ."\n" + .' - 华东2(上海):iotx-oxssharez200。'."\n" + .' - 日本:iotx-oxssharez300。'."\n" + .' - 新加坡:iotx-oxssharez400。'."\n" + .' - 美国(硅谷):iotx-oxssharez500。'."\n" + .' - 美国(弗吉尼亚):iotx-oxssharez600。'."\n" + .' - 德国(法兰克福):iotx-oxssharez700。'."\n" + ."\n" + .'- 查看企业版实例ID的步骤:'."\n" + .' '."\n" + .' 1. 登录[物联网平台控制台](https://iot.console.aliyun.com/),从顶部导航栏左上方的下拉菜单选择地域。'."\n" + .' '."\n" + .' 2. 在**实例概览**页面,找到目标实例,查看**ID**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot-060***'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要发送广播消息的产品的**ProductKey**。'."\n" - ."\n" - .'**ProductKey**是物联网平台为产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'aldeji3*****', - ], + 'schema' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'TopicFullName', + 'name' => 'TargetInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '可选参数:'."\n" - ."\n" - .'- 不赋值,表示全量在线设备广播,推送消息到指定**ProductKey**的全量在线设备。设备端收到的广播Topic格式为`/sys/${productKey}/${deviceName}/broadcast/request/${MessageId}`,其中**MessageId**由物联网平台生成。'."\n" - .'- 赋值,表示指定Topic订阅广播,推送消息到指定**ProductKey**的已订阅广播Topic的在线设备。传入要接收广播消息的Topic全称,格式为:`/broadcast/${productKey}/自定义字段`。其中,**${productKey}**是要接收广播消息的具体产品**ProductKey**;自定义字段中您可以指定任意字段。'."\n" - ."\n" - .'> - 广播Topic是在设备开发时编码定义的,无需控制台创建。'."\n" - .'- 一个广播Topic最多可被1,000个设备订阅。如果您的设备超过数量限制,您可以对设备进行分组。例如,如果您有5,000个设备,您可以将设备按每组1,000个,而分成5组。您需要分5次调用广播Topic,自定义字段分别设置为group1/2/3/4/5,然后让每组设备分别订阅各自分组的广播Topic。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'docRequired' => false, - 'example' => '/broadcast/UPqSxj2vXXX/xxx', - ], + 'schema' => ['description' => '产品分发的目标实例ID。实例ID详情,请参见参数**SourceInstanceId**描述。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-6ja***'], ], [ - 'name' => 'MessageContent', + 'name' => 'TargetUid', 'in' => 'query', - 'schema' => [ - 'description' => '要发送的消息主体,最大报文64 KB。'."\n" - ."\n" - .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'aGVsbG93b3JsZA', - ], + 'schema' => ['description' => '产品所属的阿里云账号ID。可登录物联网平台控制台,单击账号头像,跳转至**基本信息**页面查看**账号ID**。', 'type' => 'string', 'required' => false, 'example' => '198***'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'minimum' => '1', 'example' => '1'], ], ], 'responses' => [ @@ -35065,161 +22748,124 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'MessageId' => [ - 'description' => '成功发送消息后,云端生成的消息ID,用于标识该消息。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1234291569964771840', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的产品列表,详情请参见**Info**下信息。', + 'type' => 'object', + 'properties' => [ + 'Total' => ['description' => '返回的产品总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Info' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'items' => [ + 'description' => '产品的信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TargetRegion' => ['description' => '产品分发的目标地域。', 'type' => 'string', 'example' => 'cn-shenzhen'], + 'ProductKey' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'TargetUid' => ['description' => '接收产品的目标阿里云账号ID。'."\n" + ."\n" + .'目前仅支持同一阿里云账号下跨地域和跨实例分发设备,此参数与**SourceUid**值相同。', 'type' => 'string', 'example' => '198***'], + 'TargetInstanceName' => ['description' => '产品分发的目标实例名称。', 'type' => 'string', 'example' => 'newinstance'], + 'TargetAliyunId' => ['description' => '接收产品的目标阿里云账号。', 'type' => 'string', 'example' => 'io****@example.com'], + 'GmtCreate' => ['description' => '产品所属分发任务的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942'], + 'SourceInstanceName' => ['description' => '产品的源实例名称。', 'type' => 'string', 'example' => 'myproInstance'], + 'SourceUid' => ['description' => '分发产品的源阿里云账号ID。目前仅支持同一阿里云账号下跨地域和跨实例分发产品,此参数与**TargetUid**值相同。', 'type' => 'string', 'example' => '198***'], + 'TargetInstanceId' => ['description' => '产品分发的目标实例ID。', 'type' => 'string', 'example' => 'iot-cn-09k***'], + 'SourceRegion' => ['description' => '产品所属的源地域。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'SourceInstanceId' => ['description' => '产品的源实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"MessageId\\": 1234291569964771800,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n 1234291569964771840\\r\\n true\\r\\n ","errorExample":""}]', - 'title' => '向所有设备发布广播消息', - 'summary' => '向指定产品所有设备,或向订阅了指定Topic的所有设备发布广播消息。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Total\\": 10,\\n \\"Info\\": {\\n \\"items\\": [\\n {\\n \\"TargetRegion\\": \\"cn-shenzhen\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"TargetInstanceName\\": \\"newinstance\\",\\n \\"TargetAliyunId\\": \\"io****@example.com\\",\\n \\"GmtCreate\\": 1581595942,\\n \\"SourceInstanceName\\": \\"myproInstance\\",\\n \\"SourceUid\\": \\"198***\\",\\n \\"TargetInstanceId\\": \\"iot-cn-09k***\\",\\n \\"SourceRegion\\": \\"cn-shanghai\\",\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 10\\n \\n \\n cn-shenzhen\\n myproInstance\\n io****@example.com\\n 1581595942\\n 198***\\n newinstance\\n iot-cn-09k***\\n 198***\\n cn-shanghai\\n iot-cn-6ja***\\n a1BwAGV****\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '获取分布式产品列表', + 'summary' => '调用该接口查询已分发的产品列表。', 'description' => '## 使用说明'."\n" - .'您可通过设置**请求参数**中**TopicFullName**值决定广播消息的对象:指定产品下所有在线设备或订阅了指定Topic的在线设备。广播Topic使用说明,请参见下文**TopicFullName**描述。'."\n" + .'调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" ."\n" .'## QPS限制'."\n" - ."\n" - .'- 指定Topic订阅广播,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - ."\n" - .'- 全量在线设备广播,单个阿里云账号调用该接口的每分钟内请求数(QPM)最大限制为1。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'RRpc' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDistributedProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要发送消息产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'aldfeSe****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'Timeout', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => '等待设备回复消息的时间,单位是毫秒,取值范围是1,000 ~8,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1000', - ], + 'schema' => ['description' => '任务状态。取值范围:'."\n" + ."\n" + .'- **INITIALIZING**:初始化。'."\n" + .'- **WAITING**:待调度。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **COMPLETED**:已完成。'."\n" + .'- **CANCELLING**:取消中。'."\n" + .'- **CANCELLED**:已取消。'."\n" + .'- **REMOVING**:删除中。'."\n" + .'- **TIMED_OUT**:已超时。', 'type' => 'string', 'required' => false, 'example' => 'IN_PROGRESS'], ], [ - 'name' => 'ContentType', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '使用JT/T 808协议通信时,服务端向指定设备发送消息的类型。可取值:'."\n" - ."\n" - .'- **0**:GNSS模块详细定位数据。'."\n" - .'- **11**:道路运输证IC卡信息。'."\n" - .'- **65**:串口1透传。'."\n" - .'- **66**:串口2透传。'."\n" - .'- **240**~**255**:用户自定义透传。'."\n" - ."\n" - .'物联网平台支持的JT/T 808协议详细使用说明,请参见[JT/T 808协议云网关概述](~~474256~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '240', - ], - ], - [ - 'name' => 'RequestBase64Byte', - 'in' => 'formData', - 'schema' => [ - 'description' => '要发送的消息内容经过Base64编码得到的字符串格式数据,例如`dGhpcyBpcyBhbiBleGFtcGxl`。', - 'type' => 'string', - 'required' => true, - 'example' => 'dGhpcyBpcyBhbiBleGFtcGxl', - ], + 'schema' => ['description' => '每页展示的任务个数。最大值为50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '20'], ], [ - 'name' => 'Topic', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '使用自定义的RRPC相关Topic。需要设备端配合使用,请参见设备端开发[自定义Topic](~~90570~~)。'."\n" - .'不传入此参数,则使用系统默认的RRPC Topic。', - 'type' => 'string', - 'required' => false, - 'example' => '/a1uZfYb****/A_Vol****/user/update', - ], + 'schema' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -35227,165 +22873,116 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'MessageId' => [ - 'description' => '成功发送请求消息后,云端生成的消息ID,用于标识该消息。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '889455942124347392', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '41C4265E-F05D-4E2E-AB09-E031F501AF7F', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PayloadBase64Byte' => [ - 'description' => '设备返回结果Base64编码后的值。', - 'type' => 'string', - 'example' => 'd29ybGQgaGVsbG8=', - ], - 'RrpcCode' => [ - 'description' => '调用成功时,生成的调用返回码,标识请求状态。取值:'."\n" - .'- **UNKNOWN**:系统异常。'."\n" - .'- **SUCCESS**:成功 。'."\n" - .'- **TIMEOUT**:设备响应超时。'."\n" - .'- **OFFLINE**:设备离线。'."\n" - .'- **HALFCONN**:设备离线(设备连接断开,但是断开时间未超过一个心跳周期)。', - 'type' => 'string', - 'example' => 'SUCCESS', + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BF449394-1C7D-4144-B7C4-9C3FA29F8B64'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '当前页码任务个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Total' => ['description' => '返回的任务总个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'data' => [ + 'description' => '调用成功时,返回的任务详情信息,请参见以下参数说明。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '任务类型。', 'type' => 'string', 'example' => 'CUSTOM_JOB'], + 'Status' => ['description' => '任务状态。', 'type' => 'string', 'example' => 'COMPLETED'], + 'JobName' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'MyTestJobOEfwJN'], + 'Description' => ['description' => '任务的描述信息。', 'type' => 'string', 'example' => 'TestDescription'], + 'UtcModified' => ['description' => '任务信息修改时间。', 'type' => 'string', 'example' => '2019-05-21T17:15:46.000Z'], + 'JobId' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => 'Z20nyanW5****010001'], + 'UtcCreate' => ['description' => '任务创建时间。', 'type' => 'string', 'example' => '2019-05-21T11:45:37.000Z'], + 'ScheduledTime' => ['description' => '任务调度时间的毫秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557062301656'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"MessageId\\": 889455942124347400,\\n \\"RequestId\\": \\"41C4265E-F05D-4E2E-AB09-E031F501AF7F\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PayloadBase64Byte\\": \\"d29ybGQgaGVsbG8=\\",\\n \\"RrpcCode\\": \\"SUCCESS\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n 41C4265E-F05D-4E2E-AB09-E031F501AF7F\\r\\n true\\r\\n SUCCESS\\r\\n d29ybGQgaGVsbG8=\\r\\n 889455942124347392\\r\\n ","errorExample":""}]', - 'title' => '向设备发送请求消息', - 'summary' => '向指定设备发送请求消息,并同步返回响应。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"BF449394-1C7D-4144-B7C4-9C3FA29F8B64\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 5,\\n \\"Total\\": 20,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"data\\": [\\n {\\n \\"Type\\": \\"CUSTOM_JOB\\",\\n \\"Status\\": \\"COMPLETED\\",\\n \\"JobName\\": \\"MyTestJobOEfwJN\\",\\n \\"Description\\": \\"TestDescription\\",\\n \\"UtcModified\\": \\"2019-05-21T17:15:46.000Z\\",\\n \\"JobId\\": \\"Z20nyanW5****010001\\",\\n \\"UtcCreate\\": \\"2019-05-21T11:45:37.000Z\\",\\n \\"ScheduledTime\\": 1557062301656\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n5\\nBF449394-1C7D-4144-B7C4-9C3FA29F8B64\\n20\\n1\\n\\n \\n COMPLETED\\n CUSTOM_JOB\\n 1557062301656\\n TestDescription\\n 2019-05-21T13:03:52.000Z\\n MyTestJobIax6Eq\\n 2019-05-21T17:39:10.000Z\\n sGWotg***4F010001\\n \\n \\n COMPLETED\\n CUSTOM_JOB\\n 1557064501656\\n TestDescription\\n 2019-05-21T11:45:37.000Z\\n MyTestJobOEfwJN\\n 2019-05-21T17:15:46.000Z\\n Z20nyanW5***010001\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '获取任务列表', + 'summary' => '调用该接口查询阿里云账号下的任务列表。', 'description' => '## 使用说明'."\n" - .'调用该接口后,如果设备端未在设置的超时时间(**Timeout**)内做出反馈,即使设备收到了消息,云端也视消息为发送失败。'."\n" - ."\n" - .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1000。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'AsyncRRpc' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListOTAFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'aldfeSe****', - ], + 'schema' => ['description' => 'OTA升级包所属产品的**ProductKey**。'."\n" + ."\n" + .'传入该参数,则查询指定产品下的OTA升级包列表;不传入此参数,则返回当前阿里云账号下的所有OTA升级包列表。', 'type' => 'string', 'required' => false, 'example' => 'a19mzPZ****'], ], [ - 'name' => 'DeviceName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'schema' => ['description' => '指定返回结果中每页显示的固件数量。最大限制为100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'ExtInfo', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '发送消息给云网关GB/T 32960协议的设备时,需要传入此参数,标识消息的命令类型,可取值:'."\n" - ."\n" - .'- **128**:查询命令(0x80)。'."\n" - .'- **129**:设置命令(0x81)。'."\n" - .'- **130**:车载终端控制命令(0x82)。'."\n" - ."\n\n" - .'云网关GB/T 32960协议的设备接入详情,请参见[云网关GB/T 32960协议概述](~~2248990~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '{"commandType": 128}', - ], - ], - [ - 'name' => 'MessageContent', - 'in' => 'formData', - 'schema' => [ - 'description' => '要发送的消息主体。'."\n" - ."\n" - .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', - 'type' => 'string', - 'required' => true, - 'example' => 'eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0=', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'TopicFullName', + 'name' => 'DestVersion', 'in' => 'query', - 'schema' => [ - 'description' => '发送消息给MQTT协议设备时,需要传入对应设备的自定义Topic。Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" - ."\n" - .'发送消息给云网关GB/T 32960协议的设备时,无需传入此参数。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => '/a1uZfYb****/A_Vol****/user/update', - ], + 'schema' => ['description' => 'OTA升级包版本号。传入该参数,则查询版本号为指定版本号的OTA升级包。', 'type' => 'string', 'required' => false, 'example' => '4.0.0'], ], ], 'responses' => [ @@ -35393,130 +22990,137 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.device.InvalidFormattedDeviceName', - ], - 'MessageId' => [ - 'description' => '成功发送请求消息后,云端生成的消息ID,用于标识该消息。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '889455942124347392', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '设备名称格式错误。', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的固件数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => 'OTA升级包数量总计。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'FirmwareInfo' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleFirmwareInfo' => [ + 'description' => '调用成功时,返回的OTA升级包列表。详情参见以下SimpleFirmwareInfo。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ModuleName' => ['description' => 'OTA升级包的模块名称。', 'type' => 'string', 'example' => 'module1234'], + 'Type' => ['description' => 'OTA升级包类型。'."\n" + ."\n" + .'- **0**:整包固件。'."\n" + .'- **1**:差分固件。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Status' => ['description' => 'OTA升级包状态。'."\n" + ."\n" + .'- **0**:未验证。'."\n" + .'- **1**:已验证。'."\n" + .'- **2**:验证中。'."\n" + .'- **3**:验证失败。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'ProductName' => ['description' => 'OTA升级包所属产品的名称。', 'type' => 'string', 'example' => 'MyProduct'], + 'UtcCreate' => ['description' => 'OTA升级包创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:42:22.000Z'], + 'FirmwareSize' => ['description' => 'OTA升级包大小,单位:字节。', 'type' => 'integer', 'format' => 'int32', 'example' => '924'], + 'FirmwareName' => ['description' => 'OTA升级包名称。', 'type' => 'string', 'example' => 't3q5rkNm'], + 'FirmwareSign' => ['description' => 'OTA升级包内容的签名值。', 'type' => 'string', 'example' => '3d04ab6462633508606e5f3daac8****'], + 'ProductKey' => ['description' => 'OTA升级包所属产品的ProductKey。', 'type' => 'string', 'example' => 'a19mzPZ****'], + 'UtcModified' => ['description' => 'OTA升级包最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:42:22.000Z'], + 'SrcVersion' => ['description' => '待升OTA升级包版本号。'."\n" + ."\n" + .'> 整包OTA升级包返回的该参数为空。', 'type' => 'string', 'example' => 'V1.0.0'], + 'FirmwareDesc' => ['description' => 'OTA升级包描述信息。', 'type' => 'string', 'example' => 'firmwareDesc'], + 'SignMethod' => ['description' => 'OTA升级包签名方式。', 'type' => 'string', 'example' => 'MD5'], + 'DestVersion' => ['description' => '当前OTA升级包版本号。', 'type' => 'string', 'example' => '4.0.0'], + 'FirmwareId' => ['description' => 'OTA升级包ID,OTA升级包的唯一标识符。', 'type' => 'string', 'example' => 'UfuxnwygsuSkVE0VCN****0100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey is empty.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The ProductKey format is incorrect.', - ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The deviceName is empty.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceName', - 'errorMessage' => 'The deviceName format is incorrect.', - ], - [ - 'errorCode' => 'iot.device.InactiveDevice', - 'errorMessage' => 'The device is inactive.', - ], - [ - 'errorCode' => 'iot.device.OfflineDevice', - 'errorMessage' => 'The device is offline.', - ], - [ - 'errorCode' => 'iot.Device.NotExistedDevice', - 'errorMessage' => 'This device does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidFormattedDeviceName\\",\\n \\"MessageId\\": 889455942124347400,\\n \\"ErrorMessage\\": \\"设备名称格式错误。\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n889455942124347400\\n","errorExample":""}]', - 'title' => 'AsyncRRpc', - 'summary' => '调用该接口向指定设备发送消息。', - 'description' => '## 使用说明'."\n" - .'对于MQTT协议(包括云网关和非云网关)和云网关GB/T 32960协议的设备,可调用本接口从服务端下发消息给对应设备。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1,000。'."\n" - .'> RAM用户共享阿里云账号配额。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"FirmwareInfo\\": {\\n \\"SimpleFirmwareInfo\\": [\\n {\\n \\"ModuleName\\": \\"module1234\\",\\n \\"Type\\": 0,\\n \\"Status\\": 0,\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"FirmwareSize\\": 924,\\n \\"FirmwareName\\": \\"t3q5rkNm\\",\\n \\"FirmwareSign\\": \\"3d04ab6462633508606e5f3daac8****\\",\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"UtcModified\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"SrcVersion\\": \\"V1.0.0\\",\\n \\"FirmwareDesc\\": \\"firmwareDesc\\",\\n \\"SignMethod\\": \\"MD5\\",\\n \\"DestVersion\\": \\"4.0.0\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n10\\nA01829CE-75A1-4920-B775-921146A1AB79\\n\\n \\n 1.0.0\\n 3d04ab6462633508606e5f3daac8****\\n a19mzPZ****\\n 0\\n 2019-12-28T02:42:22.000Z\\n MD5\\n 2019-12-28T02:42:22.000Z\\n 924\\n 0\\n UfuxnwygsuSkVE0VCN****0100\\n firmwareDesc\\n 4.0.0\\n MyProduct\\n t3q5rkNm\\n module1234\\n \\n\\n1\\ntrue\\n1\\n","errorExample":""}]', + 'title' => '查询固件列表', + 'summary' => '调用该接口查询OTA升级包列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryMessageInfo' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListOTAJobByDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'UniMsgId', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台为消息生成的唯一标识ID。'."\n" - ."\n" - .'您可登录[物联网平台控制台](http://iot.console.aliyun.com/),在**监控运维 > 日志服务**页面,获取消息ID信息。', - 'type' => 'string', - 'required' => true, - 'example' => '323455***', - ], + 'schema' => ['description' => '升级包ID。升级包的唯一标识符。'."\n" + ."\n" + .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'FJFx8JzpnhpIsKftRjjm03****'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的升级包数量。最大限制为100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a19mzPZ****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'light1'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '显示返回结果的第几页。返回结果页数从1开始排序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -35524,196 +23128,162 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功,表示查询消息详情成功。'."\n" - .'- **false**:调用失败,表示查询消息详情失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Message' => [ - 'description' => '调用成功后,返回的消息详情。', + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'FirmwareId is mandatory for this action'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'MissingFirmwareId'], + 'PageSize' => ['description' => '每页显示的升级包数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '升级包数量总计。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'TopicFullName' => [ - 'description' => '消息所属的Topic。', - 'type' => 'string', - 'example' => '/a1Q5XoY****/device1/user/get', - ], - 'MessageContent' => [ - 'description' => '消息原文转换成二进制数据,并进行Base64编码后的消息内容。', - 'type' => 'string', - 'example' => 'eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**', - ], - 'UniMsgId' => [ - 'description' => '物联网平台为消息生成的唯一标识ID。', - 'type' => 'string', - 'example' => '323455***', - ], - 'TransformedMessageContent' => [ - 'description' => '产品配置了消息解析时,转换成功后的消息内容。', - 'type' => 'string', - 'example' => 'test', - ], - 'GenerateTime' => [ - 'description' => '消息产生的时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1624419431000', - ], - 'TransformedTopicFullName' => [ - 'description' => '产品配置了消息解析时,转换成功后的Topic。', - 'type' => 'string', - 'example' => '/w******j/device01/user/testmsg', - ], - 'UserProperties' => [ - 'description' => '使用MQTT 5.0版本通信协议时,用户自定义的属性列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '用户自定义属性的Key字段。', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '用户自定义属性**Key**字段对应的值。', - 'type' => 'string', - 'example' => 'value1', - ], - ], - ], - ], - 'MqttProperties' => [ - 'description' => '使用MQTT 5.0版本通信协议时,配置的特性属性列表。详细内容,请参见[MQTT 5.0特性](~~2330876~~)。'."\n", + 'SimpleOTAJobInfo' => [ + 'description' => '调用成功时,返回的升级批次信息。详情请参见以下**SimpleOTAJobInfo**。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '属性名称。', - 'type' => 'string', - 'example' => 'attrkey', - ], - 'Value' => [ - 'description' => '属性值。', - 'type' => 'string', - 'example' => 'attrvalue', + 'ProductKey' => ['description' => '升级包所属产品的唯一标识。', 'type' => 'string', 'example' => 'a19mzPZ****'], + 'JobStatus' => ['description' => '升级任务批次的状态。'."\n" + ."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + ."\n" + .'- **COMPLETED**:已完成。'."\n" + ."\n" + .'- **CANCELED**:已取消。', 'type' => 'string', 'example' => 'COMPLETED'], + 'UtcStartTime' => ['description' => '该批次任务开始执行时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'UtcModified' => ['description' => '批次最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'JobId' => ['description' => '升级任务批次ID。', 'type' => 'string', 'example' => 'HvKuBpuk3rdk6E92CP****'], + 'UtcCreate' => ['description' => '批次创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'SelectionType' => ['description' => '升级策略。'."\n" + ."\n" + .'- DYNAMIC:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" + ."\n" + .'- STATIC:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', 'type' => 'string', 'example' => 'STATIC'], + 'JobType' => ['description' => '批次类型。'."\n" + ."\n" + .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" + ."\n" + .'- **UPGRADE_FIRMWARE**:批量升级批次。', 'type' => 'string', 'example' => 'UPGRADE_FIRMWARE'], + 'TargetSelection' => ['description' => '升级范围。'."\n" + ."\n" + .'- **ALL**:全量升级。'."\n" + ."\n" + .'- **SPECIFIC**:定向升级。'."\n" + ."\n" + .'- **GRAY**:灰度升级。'."\n" + ."\n" + .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', 'type' => 'string', 'example' => 'ALL'], + 'UtcEndTime' => ['description' => '该批次任务执行结束时的时间,UTC格式。'."\n" + ."\n" + .'> 仅已执行结束的升级批次才返回此参数。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'FirmwareId' => ['description' => '升级包ID。', 'type' => 'string', 'example' => 'FJFx8JzpnhpIsKftRjjm03****'], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'OtaTagDTO' => [ + 'description' => '升级批次标签。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签名。', 'type' => 'string', 'example' => 'key1'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'value1'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Message\\": {\\n \\"TopicFullName\\": \\"/a1Q5XoY****/device1/user/get\\",\\n \\"MessageContent\\": \\"eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**\\",\\n \\"UniMsgId\\": \\"323455***\\",\\n \\"TransformedMessageContent\\": \\"test\\",\\n \\"GenerateTime\\": 1624419431000,\\n \\"TransformedTopicFullName\\": \\"/w******j/device01/user/testmsg\\",\\n \\"UserProperties\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ],\\n \\"MqttProperties\\": [\\n {\\n \\"Key\\": \\"attrkey\\",\\n \\"Value\\": \\"attrvalue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nBB71E443-4447-4024-A000-EDE09922891E\\n\\n eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**\\n 1624419431000\\n 323455***\\n /a1Q5XoY****/device1/user/get\\n \\n value1\\n key1\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备上下行消息的详情', - 'summary' => '查询设备上下行消息的详情,包括消息的内容、消息的产生时间、发送消息的Topic等。', - 'description' => '## 使用说明'."\n" - .'QoS=0和QoS=1消息的最大存储时间分别为1天和7天。调用本接口前,请确认查询的是存储时间内的消息。否则,查询消息会失败。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"ErrorMessage\\": \\"FirmwareId is mandatory for this action\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"MissingFirmwareId\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"Data\\": {\\n \\"SimpleOTAJobInfo\\": [\\n {\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"JobStatus\\": \\"COMPLETED\\",\\n \\"UtcStartTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"UtcModified\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"TargetSelection\\": \\"ALL\\",\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"FirmwareId\\": \\"FJFx8JzpnhpIsKftRjjm03****\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n1\\n\\n \\n STATIC\\n SPECIFIC\\n UPGRADE_FIRMWARE\\n FJFx8JzpnhpIsKftRjjm03****\\n 2019-12-28T02:43:10.000Z\\n a19mzPZ****\\n HvKuBpuk3rdk6E92CPQN02****\\n 2019-12-28T02:43:10.000Z\\n IN_PROGRESS\\n 2019-12-28T02:43:10.000Z\\n \\n\\n10\\n5D58AC86-D5BF-4B39-834E-913E7F2C985D\\n1\\ntrue\\n1\\n","errorExample":""}]', + 'title' => '获取设备所在的升级包升级批次列表', + 'summary' => '调用该接口获取设备所在的升级包升级批次列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SubscribeTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAJobByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListOTAJobByFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-06***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'FirmwareId', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Q5XoY***', - ], + 'schema' => ['description' => '升级包ID,升级包的唯一标识符。'."\n" + ."\n" + .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 'FJFx8JzpnhpIsKftRjjm03****'], ], [ - 'name' => 'DeviceName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '指定要订阅Topic所属设备的**DeviceName**。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'schema' => ['description' => '指定返回结果中,每页显示的升级批次数量。最大值200。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'Topic', + 'name' => 'CurrentPage', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要订阅的Topic,最多订阅10个Topic。'."\n" - ."\n" - .'Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" - ."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '/a1Q5XoY***/device1/user/get', - 'maxItems' => 10, - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -35721,149 +23291,141 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB71E443-4447-4024-A000-EDE09922891E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '5D58AC86-D5BF-4B39-834E-913E7F2C985D'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的设备升级作业数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '设备升级作业数量总计。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleOTAJobInfo' => [ + 'description' => '调用成功时,返回的批次信息。详情请参见**SimpleOTAJobInfo**下的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '升级包所属产品的唯一标识。', 'type' => 'string', 'example' => 'a19mzPZ****'], + 'JobStatus' => ['description' => '批次的状态。'."\n" + ."\n" + .'- **PLANNED**:计划中。批次已创建,但是定时时间未到。仅定时静态升级的批次可能返回该值。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **COMPLETED**:已完成。'."\n" + .'- **CANCELED**:已取消。', 'type' => 'string', 'example' => 'IN_PROGRESS'], + 'UtcStartTime' => ['description' => '该批次任务开始执行时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'UtcModified' => ['description' => '批次最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'JobId' => ['description' => '升级批次ID,批次的唯一标识符。', 'type' => 'string', 'example' => 'HvKuBpuk3rdk6E92CP****0200'], + 'UtcCreate' => ['description' => '批次创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'SelectionType' => ['description' => '升级策略。'."\n" + ."\n" + .'- **DYNAMIC**:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" + .'- **STATIC**:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', 'type' => 'string', 'example' => 'STATIC'], + 'JobType' => ['description' => '批次类型。'."\n" + ."\n" + .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" + .'- **UPGRADE_FIRMWARE**:批量升级批次。', 'type' => 'string', 'example' => 'UPGRADE_FIRMWARE'], + 'TargetSelection' => ['description' => '升级范围。'."\n" + ."\n" + .'- **ALL**:全量升级。'."\n" + .'- **SPECIFIC**:定向升级。'."\n" + .'- **GRAY**:灰度升级。'."\n" + ."\n" + .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', 'type' => 'string', 'example' => 'SPECIFIC'], + 'UtcEndTime' => ['description' => '该批次任务执行结束时的时间,UTC格式。'."\n" + ."\n" + .'仅已执行结束的升级批次才返回此参数。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'FirmwareId' => ['description' => '升级包ID。', 'type' => 'string', 'example' => 'UfuxnwygsuSkVE0VCN****0100'], + 'Tags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'OtaTagDTO' => [ + 'description' => '升级批次标签。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '标签名。', 'type' => 'string', 'example' => 'key1'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'value1'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Iot.System.BillIsOverDue', - 'errorMessage' => 'Your account has overdue payments. Go to the expense center and add funds to your account.', - ], - [ - 'errorCode' => 'Iot.MessageBroker.EmptySubTopicList', - 'errorMessage' => 'The subscription topic list is empty.', - ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'Iot.MessageBroker.TopicTemplateIsNotFound', - 'errorMessage' => 'The topic template does not exist.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - [ - 'errorCode' => 'iot.device.InactiveDevice', - 'errorMessage' => 'The device is inactive.', - ], - [ - 'errorCode' => 'Iot.MessageBroker.InvalidFormattedTopicName', - 'errorMessage' => 'The topic format specified while publishing the message is incorrect.', - ], - ], - 403 => [ - [ - 'errorCode' => 'Iot.Device.NotDeviceOwner', - 'errorMessage' => 'You are not the device owner.', - ], - ], - 500 => [ - [ - 'errorCode' => 'Iot.MessageBroker.BatchSubTopicFailed', - 'errorMessage' => 'An error occurred while batch subscribing to the topic.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n32B9828A-25DD-48E2-8E26-D1664B341940\\ntrue\\n","errorExample":""}]', - 'title' => '为指定设备订阅Topic', - 'summary' => '该接口为指定设备订阅Topic。', - 'description' => '## 使用说明'."\n" - .'- 待订阅Topic所属设备,必须已经接入物联网平台并激活在线。'."\n" - .'- 调用本接口仅订阅指定设备的Topic,且单次调用最多订阅10个Topic。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"5D58AC86-D5BF-4B39-834E-913E7F2C985D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"Data\\": {\\n \\"SimpleOTAJobInfo\\": [\\n {\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"JobStatus\\": \\"IN_PROGRESS\\",\\n \\"UtcStartTime\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"UtcModified\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****0200\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"TargetSelection\\": \\"SPECIFIC\\",\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 1\\r\\n \\r\\n \\r\\n STATIC\\r\\n SPECIFIC\\r\\n UPGRADE_FIRMWARE\\r\\n yLYuCqfqQNQ1JOqkDa****0100\\r\\n 2019-12-28T02:43:10.000Z\\r\\n 2019-12-29T02:43:10.000Z\\r\\n a19mzPZ****\\r\\n HvKuBpuk3rdk6E92CP****0200\\r\\n 2019-12-28T02:43:10.000Z\\r\\n IN_PROGRESS\\r\\n 2019-12-28T02:43:10.000Z\\r\\n \\r\\n \\r\\n 10\\r\\n 5D58AC86-D5BF-4B39-834E-913E7F2C985D\\r\\n 1\\r\\n true\\r\\n 1\\r\\n","errorExample":""}]', + 'title' => '获取升级包下的升级任务批次列表', + 'summary' => '调用该接口获取升级包下的升级任务批次列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDeviceSubTopic' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAJobByFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListOTAModuleByProduct' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属产品的ProductKey。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)查看产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'hf768****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的设备名称。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用[QueryDeviceInfo](~~257184~~)查看设备的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'schema' => ['description' => '产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1uctKe****'], ], ], 'responses' => [ @@ -35871,174 +23433,111 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'TopicList' => [ - 'description' => '调用成功后,返回的设备已订阅Topic信息。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的OTA模块列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'TopicName' => [ - 'description' => '已订阅的设备Topic。', - 'type' => 'string', - 'example' => '/hf768****/device1/user/test', - ], - 'Timestamp' => [ - 'description' => '订阅Topic的时间,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1662039965873', - ], + 'ModuleName' => ['description' => '模块名称。', 'type' => 'string', 'example' => 'barcodeScanner'], + 'ProductKey' => ['description' => '产品的ProductKey。', 'type' => 'string', 'example' => 'aluctKe****'], + 'GmtCreate' => ['description' => '模块创建时间,GMT格式。', 'type' => 'string', 'example' => '2020-10-13T09:46Z'], + 'AliasName' => ['description' => '模块别名。', 'type' => 'string', 'example' => '条码扫描仪'], + 'GmtModified' => ['description' => '模块信息最后一次更新时间,GMT格式。', 'type' => 'string', 'example' => '2020-10-19T09:46Z'], + 'Desc' => ['description' => '模块描述。'."\n", 'type' => 'string', 'example' => '这个模块对应于条码扫描仪的固件'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"TopicList\\": [\\n {\\n \\"TopicName\\": \\"/hf768****/device1/user/test\\",\\n \\"Timestamp\\": 1662039965873\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1662039965873\\n /hf768****/device1/user/test\\n\\n\\n 1662039965873\\n /hf768****/device1/user/down\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryDeviceSubTopic', - 'summary' => '调用该接口查询设备已订阅的Topic列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"ModuleName\\": \\"barcodeScanner\\",\\n \\"ProductKey\\": \\"aluctKe****\\",\\n \\"GmtCreate\\": \\"2020-10-13T09:46Z\\",\\n \\"AliasName\\": \\"条码扫描仪\\",\\n \\"GmtModified\\": \\"2020-10-19T09:46Z\\",\\n \\"Desc\\": \\"这个模块对应于条码扫描仪的固件\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\n \\n 这个模块对应于条码扫描仪的固件\\n 2020-10-13T09:46Z\\n barcodeScanner\\n 条码扫描仪\\n 2020-10-19T09:46Z\\n a1uctKe****\\n \\n true\\n","errorExample":""}]', + 'title' => '查询产品下的OTA模块列表', + 'summary' => '调用该接口查询产品下的OTA模块列表。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateTopicConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t****', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAModuleByProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListOTAModuleVersionsByDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要接收消息的设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Q5XoY****', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'EnableBroadcast', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '是否支持保留消息广播。'."\n" - ."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EnableProxySubscribe', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, - ], + 'schema' => ['description' => '指定返回结果中每页显示的模块版本数量。数量限制:每页最多可显示200条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'Codec', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '要查询设备所属的产品**ProductKey**。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'aluctKe****'], ], [ - 'name' => 'Operation', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '指定要查询设备的名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'newdevice'], ], [ - 'name' => 'TopicFullName', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '要广播消息的自定义Topic。'."\n" - ."\n\n" - .'- 对于开源MQTT托管形态设备和MQTT云网关设备,自定义Topic为设备的原始自定义Topic。详细内容,请参见[Topic说明](~~433806~~)。'."\n" - .'- 对于非开源MQTT托管形态设备和非MQTT云网关设备,自定义Topic的格式为`/broadcast/${productKey}/${自定义字段}`。其中`${productKey}`与请求参数**ProductKey**值一致,`${自定义字段}`为您自定义的任意字段。'."\n" - ."\n" - .'> '."\n" - .'- Topic是在设备开发时编码定义的,无需控制台创建。'."\n" - .'- Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '/broadcast/a1Q5XoY****/test', - ], + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + ."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ - 'name' => 'Description', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -36046,337 +23545,318 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'CurrentPage' => ['description' => '当前页面号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的模块版本数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '返回的总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '设备上报的模块版本总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleOTAModuleInfo' => [ + 'description' => '调用成功时,返回的设备上报的模块版本信息。更多信息,请参见以下**SimpleOTAModuleInfo**信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ModuleName' => ['description' => '模块名称。', 'type' => 'string', 'example' => 'barcodeScanner'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'aluctKe****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'newDevice'], + 'ModuleVersion' => ['description' => '设备上报的模块版本。', 'type' => 'string', 'example' => '1.0'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'QjIFT***000101'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.message.broker.ParamCheckError', - 'errorMessage' => 'Param check error.', - ], - [ - 'errorCode' => 'iot.message.broker.ProductCheckError', - 'errorMessage' => 'Product check error.', - ], - [ - 'errorCode' => 'iot.message.broker.TopicConfigNumExceed', - 'errorMessage' => 'Topic config num exceed.', - ], - [ - 'errorCode' => 'iot.message.broker.SystemError', - 'errorMessage' => 'System error.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidPubTopicFormat', - 'errorMessage' => 'The pub topic cannot contain wildcard character.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidOperationWithBroadcast', - 'errorMessage' => 'The operation must be sub when enable broadcast.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithBroadcast', - 'errorMessage' => 'The topic cannot contain wildcard character when enable broadcast.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', - 'errorMessage' => 'Operation must be sub or all when enable proxy subscribe.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', - 'errorMessage' => 'Topic cannot contain wildcard character when enable proxy subscribe.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithCodec', - 'errorMessage' => 'Topic cannot contain wildcard when enable codec.', - ], - [ - 'errorCode' => 'iot.messagebroker.InvalidInstanceWithCodec', - 'errorMessage' => 'Only connect instance support codec.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue","errorExample":""}]', - 'title' => 'UpdateTopicConfig', - 'summary' => '调用该接口设置自定义Topic是否支持保留消息广播。', - 'description' => '## 使用说明'."\n" - .'一个自定义Topic广播消息时,最多可被1,000个设备订阅。若后续需要新增更多设备订阅该自定义Topic的广播消息,可使用MQTT 5.0版本通信协议进行通信,通过设置自定义Topic支持保留消息广播和设置自定义Topic消息为保留消息来实现。'."\n" - .'具体步骤为:'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 10,\\n \\"Data\\": {\\n \\"SimpleOTAModuleInfo\\": [\\n {\\n \\"ModuleName\\": \\"barcodeScanner\\",\\n \\"ProductKey\\": \\"aluctKe****\\",\\n \\"DeviceName\\": \\"newDevice\\",\\n \\"ModuleVersion\\": \\"1.0\\",\\n \\"IotId\\": \\"QjIFT***000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n67AF7881-704C-40CC-B296-72F91380A117\\ntrue\\n\\n\\n10\\n1\\n1\\n1\\n\\n \\n QjIFT***000101\\n 1.6940.1\\n default\\n a14***S\\n newDevice\\n \\n\\n","errorExample":""}]', + 'title' => '查询设备上报过的OTA模块版本列表', + 'summary' => '调用该接口查询设备上报过的OTA模块版本列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'1. 调用本接口设置指定的自定义Topic(例如:`/broadcast/a1Q5XoY****/test`)支持保留消息广播,即**EnableBroadcast**设置为**true**。'."\n" - .'2. 调用[Pub](~~69793~~)接口向该自定义Topic(例如:`/broadcast/a1Q5XoY****/test`)发布广播消息,并设置为保留消息,即**Retained**设置为**true**。'."\n" - .'3. 调用[SubscribeTopic](~~311869~~)接口,新增设备订阅该自定义Topic(例如:`/broadcast/a1Q5XoY****/test`),设备即可收到上一步向该自定义Topic发送的保留消息。'."\n" - ."\n\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAModuleVersionsByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListOTATaskByJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['description' => '指定返回结果中,每页显示的设备升级作业数量。最大限制:100。'."\n" + ."\n" + .'>**CurrentPage**与**PageSize**相乘的值必须小于或等于100,000。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'DeviceDataFlag', + 'name' => 'TaskStatus', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备上报消息。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '传入此参数,则查询指定升级状态下的设备升级作业。'."\n" + ."\n" + .'- **CONFIRM**:待确认。'."\n" + .'- **QUEUED**:待推送。'."\n" + .'- **NOTIFIED**:已推送。'."\n" + .'- **IN_PROGRESS**:升级中。'."\n" + .'- **SUCCEEDED**:升级成功。'."\n" + .'- **FAILED**:升级失败。'."\n" + .'- **CANCELED**:已取消。'."\n" + ."\n" + .'不传入此参数,则查询指定升级批次下的全部设备升级作业。', 'type' => 'string', 'required' => false, 'example' => 'FAILED'], ], [ - 'name' => 'DeviceLifeCycleFlag', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备生命周期变更。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '升级批次ID,升级批次的唯一标识符。您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)返回的**JobId**。您也可以在物联网平台控制台上OTA升级包的**升级包详情**页查看。', 'type' => 'string', 'required' => true, 'example' => '7glPHmaDYLAYMD1HHutT02****'], ], [ - 'name' => 'DeviceStatusChangeFlag', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备状态变化通知。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。'."\n" + ."\n" + .'>**CurrentPage**与**PageSize**相乘的值必须小于或等于100,000。'."\n" + .'>', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'DeviceTopoLifeCycleFlag', + 'name' => 'DeviceNames', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '推送消息类型是否选择设备拓扑关系变更。可选值:'."\n" - .'- **true**:是。仅对网关产品有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', + 'description' => '指定查询的设备名称列表。'."\n" + ."\n" + .'> - 最多传入设备名称50个。'."\n" + .'- 如果传入该参数,则无需传入**PageSize**和**CurrentPage**。如果您同时传入**DeviceNames.N**、**PageSize**和**CurrentPage**,则以**DeviceNames.N**为准。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => 'true', + 'example' => 'device1', + 'maxItems' => 50, ], ], - [ - 'name' => 'FoundDeviceListFlag', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '推送消息类型是否选择网关子设备发现上报。可选值:'."\n" - .'- **true**:是。仅对网关产品有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的设备升级作业数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '设备升级作业数量总计。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleOTATaskInfo' => [ + 'description' => '调用成功时,返回的设备升级作业信息。更多信息,请参见**SimpleOTATaskInfo**下的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Timeout' => ['description' => '设备升级超时时间,单位是分钟。'."\n" + ."\n" + .'> 如果发起批量升级未设置超时时间,该参数返回值为空。', 'type' => 'string', 'example' => '1440'], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'MyProduct'], + 'Progress' => ['description' => '当前的升级进度。', 'type' => 'string', 'example' => '0.00'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'testDevice2'], + 'UtcCreate' => ['description' => '升级作业创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T03:38:22.000Z'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1GUfrM****'], + 'TaskStatus' => ['description' => '设备升级状态。'."\n" + ."\n" + .'- **CONFIRM**:待确认。'."\n" + .'- **QUEUED**:待推送。'."\n" + .'- **NOTIFIED**:已推送。'."\n" + .'- **IN_PROGRESS**:升级中。'."\n" + .'- **SUCCEEDED**:升级成功。'."\n" + .'- **FAILED**:升级失败。'."\n" + .'- **CANCELED**:已取消。', 'type' => 'string', 'example' => 'FAILED'], + 'UtcModified' => ['description' => '升级作业最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T03:38:22.000Z'], + 'JobId' => ['description' => '升级批次ID。', 'type' => 'string', 'example' => '7glPHmaDYLAYMD1HHutT02****'], + 'SrcVersion' => ['description' => '设备的原固件版本。', 'type' => 'string', 'example' => '1.0.0'], + 'TaskDesc' => ['description' => '升级作业描述信息。当设备升级超时、升级作业被取消等场景下,该参数承载具体的错误信息。', 'type' => 'string', 'example' => 'report version is not conform'], + 'TaskId' => ['description' => '设备升级作业ID。', 'type' => 'string', 'example' => 'y3tOmCDNgpR8F9jnVEzC01****'], + 'DestVersion' => ['description' => '升级的目标OTA升级包版本。', 'type' => 'string', 'example' => '1.0.1'], + 'FirmwareId' => ['description' => '升级包ID。', 'type' => 'string', 'example' => 'q3j9OYBjUAZMv1hlMgdo03****'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'nadRdeffljdEndlfadgadfse****'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 2,\\n \\"Data\\": {\\n \\"SimpleOTATaskInfo\\": [\\n {\\n \\"Timeout\\": \\"1440\\",\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"Progress\\": \\"0.00\\",\\n \\"DeviceName\\": \\"testDevice2\\",\\n \\"UtcCreate\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"ProductKey\\": \\"a1GUfrM****\\",\\n \\"TaskStatus\\": \\"FAILED\\",\\n \\"UtcModified\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"JobId\\": \\"7glPHmaDYLAYMD1HHutT02****\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"TaskDesc\\": \\"report version is not conform\\",\\n \\"TaskId\\": \\"y3tOmCDNgpR8F9jnVEzC01****\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"FirmwareId\\": \\"q3j9OYBjUAZMv1hlMgdo03****\\",\\n \\"IotId\\": \\"nadRdeffljdEndlfadgadfse****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n 1.0.0\\n testDevice1\\n q3j9OYBjUAZMv1hlMgdo03****\\n SR8FiTu1R9tlUR2V1bmi00105****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n report version is not conform\\n 1.0.1\\n 1440\\n 2019-11-04T03:38:15.000Z\\n 2019-11-04T03:38:15.000Z\\n FAILED\\n MyProduct\\n y3tOmCDNgpR8F9jnVEzC01****\\n 0.00\\n \\n \\n 1.0.0\\n testDevice2\\n q3j9OYBjUAZMv1hlMgdo03****\\n nadRdeffljdEndlfadgadfse****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n \\n 1.0.1\\n 1000\\n 2019-11-04T03:38:22.000Z\\n 2019-11-04T03:38:22.000Z\\n SUCCEEDED\\n MyProduct\\n ZS9sNBb1ahsu6khqr9II01****\\n 100.00\\n \\n\\n10\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\n1\\ntrue\\n2\\n","errorExample":""}]', + 'title' => '查询指定升级批次下的设备升级作业列表', + 'summary' => '调用该接口查询指定升级批次下的设备升级作业列表。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'MnsConfiguration', - 'in' => 'query', - 'schema' => [ - 'description' => 'MNS队列的配置信息,**Type**为**MNS**时必填。'."\n" - .'具体要求和示例见下文“MnsConfiguration定义”。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTATaskByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListOTAUnfinishedTaskByDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '订阅类型:'."\n" - ."\n" - .'- **MNS**。'."\n" - .'- **AMQP**。', - 'type' => 'string', - 'required' => false, - 'example' => 'AMQP', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'OtaEventFlag', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA升级状态通知。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-c3j***'], ], [ - 'name' => 'ThingHistoryFlag', + 'name' => 'ModuleName', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择物模型历史数据上报。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => 'OTA模块名称。'."\n" + ."\n" + .'- 传入时,表示查询指定模块的升级任务。'."\n" + .'- 不传入时,表示查询所有模块的升级任务。', 'type' => 'string', 'required' => false, 'example' => 'WifiConfigModify'], ], [ - 'name' => 'DeviceTagFlag', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '设备所属产品的ProductKey。'."\n" + ."\n" + .'>如果传入该参数,需同时传入**DeviceName**。'."\n" + .' >', 'type' => 'string', 'required' => false, 'example' => 'a19mzPZ****'], ], [ - 'name' => 'OtaVersionFlag', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '设备名称。'."\n" + ."\n" + .'>如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'OtaJobFlag', + 'name' => 'TaskStatus', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '查询单个指定升级状态下的设备升级作业。'."\n" + .'- **CONFIRM**:待确认。'."\n" + .'- **QUEUED**:待推送。'."\n" + .'- **NOTIFIED**:已推送。'."\n" + .'- **IN_PROGRESS**:升级中。'."\n" + ."\n" + .'> 单次调用本接口,仅可传入一个状态进行查询。该参数与**TaskStatusList**二选一使用。'."\n", 'type' => 'string', 'required' => false, 'example' => 'CONFIRM'], ], [ - 'name' => 'SubscribeFlags', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '标识当前订阅产品的其他类型消息,数据格式为JSON String。'."\n" - ."\n" - .'- 如果订阅的是JT/T 808协议云网关产品,必须传入**SubscribeFlags**,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - ."\n" - .'- 如果订阅的是设备视频流状态变更通知消息,必须传入**SubscribeFlags**,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" - ."\n" - .'- 如果同时订阅以上消息,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true,'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```', - 'type' => 'string', - 'required' => false, - 'example' => '{ "jt808DeviceDataFlag": true }', - ], + 'schema' => ['description' => '要查询设备的设备ID。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'TfmUAeJjQQhCPH84UVNn0010c6****'], ], [ - 'name' => 'ConsumerGroupIds', + 'name' => 'TaskStatusList', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '创建的AMQP订阅中的消费组ID,**Type**为**AMQP**时必填。'."\n" + 'description' => '查询多个指定升级状态下的设备升级作业。'."\n" + .'- **CONFIRM**:待确认。'."\n" + .'- **QUEUED**:待推送。'."\n" + .'- **NOTIFIED**:已推送。'."\n" + .'- **IN_PROGRESS**:升级中。'."\n" ."\n" - .'调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。'."\n", + .'> 单次调用本接口,可传入多个状态进行查询。该参数与**TaskStatus**二选一使用。', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => 'nJRaJPn5U1JITGfjBO9l00****', - 'maxItems' => 50, + 'example' => 'QUEUED', + 'maxItems' => 4, ], ], ], @@ -36385,318 +23865,360 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleOTATaskInfo' => [ + 'description' => '调用成功时,返回的升级作业信息。详细内容,请参见以下**SimpleOTATaskInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ModuleName' => ['description' => 'OTA模块名称。', 'type' => 'string', 'example' => 'WifiConfigModify'], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'MyProduct'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'UtcCreate' => ['description' => '升级作业创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-11-04T03:38:22.000Z'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1GUfrM****'], + 'TaskStatus' => ['description' => '设备升级作业状态。'."\n" + ."\n" + .'- **CONFIRM**:待确认。'."\n" + .'- **QUEUED**:待推送。'."\n" + .'- **NOTIFIED**:已推送。'."\n" + .'- **IN_PROGRESS**:升级中。', 'type' => 'string', 'example' => 'CONFIRM'], + 'UtcModified' => ['description' => '升级作业最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2021-11-04T03:38:22.000Z'], + 'JobId' => ['description' => '升级批次ID。', 'type' => 'string', 'example' => '7glPHmaDYLAYMD1HHutT02****'], + 'SrcVersion' => ['description' => '设备的原版本。', 'type' => 'string', 'example' => '1.0.0'], + 'TaskId' => ['description' => '设备升级作业ID。', 'type' => 'string', 'example' => 'y3tOmCDNgpR8F9jnVEzC01****'], + 'DestVersion' => ['description' => '升级的目标版本。', 'type' => 'string', 'example' => '1.0.1'], + 'FirmwareId' => ['description' => '升级包ID。', 'type' => 'string', 'example' => 'q3j9OYBjUAZMv1hlMgdo03****'], + 'IotId' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'nadRdeffljdEndlfadgadfse****'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建MNS或AMQP服务端订阅', - 'summary' => '调用该接口创建MNS或AMQP服务端订阅。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.common.InvalidPageParams', 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', 'description' => '分页大小或者分页页号不合法。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The productKey is empty.', 'description' => ''], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The productKey format is incorrect.', 'description' => ''], + ['errorCode' => 'iot.ota.NullOtaModuleName', 'errorMessage' => 'the module name can not be empty.', 'description' => '模块名称为空。'], + ['errorCode' => 'iot.ota.InvalidOtaModuleName', 'errorMessage' => 'the format of module name is invalid.', 'description' => '无效的模块名称。'], + ['errorCode' => 'iot.ota.EmptyDeviceInfoParams', 'errorMessage' => 'the device info in params is empty', 'description' => ''], + ['errorCode' => 'iot.firmware.InvalidTaskStatus', 'errorMessage' => 'Invalid TaskStatus.', 'description' => '无效的批次状态。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', 'errorMessage' => 'The deviceName list contains an invalid device name.', 'description' => '设备名称列表中存在非法格式的设备名称。'], + ['errorCode' => 'iot.firmware.ListOTATaskByDeviceFailed', 'errorMessage' => 'Failed to list OTA tasks by device.', 'description' => '查询设备下的升级记录失败。'], + ['errorCode' => 'iot.device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => ''], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SimpleOTATaskInfo\\": [\\n {\\n \\"ModuleName\\": \\"WifiConfigModify\\",\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"ProductKey\\": \\"a1GUfrM****\\",\\n \\"TaskStatus\\": \\"CONFIRM\\",\\n \\"UtcModified\\": \\"2021-11-04T03:38:22.000Z\\",\\n \\"JobId\\": \\"7glPHmaDYLAYMD1HHutT02****\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"TaskId\\": \\"y3tOmCDNgpR8F9jnVEzC01****\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"FirmwareId\\": \\"q3j9OYBjUAZMv1hlMgdo03****\\",\\n \\"IotId\\": \\"nadRdeffljdEndlfadgadfse****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 1.0.0\\n testDevice1\\n q3j9OYBjUAZMv1hlMgdo03****\\n SR8FiTu1R9tlUR2V1bmi00105****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n 1.0.1\\n 2019-11-04T03:38:15.000Z\\n 2019-11-04T03:38:15.000Z\\n QUEUED\\n MyProduct\\n y3tOmCDNgpR8F9jnVEzC01****\\n WifiConfigModify\\n \\n \\n 1.0.0\\n testDevice2\\n q3j9OYBjUAZMv1hlMgdo03****\\n nadRdeffljdEndlfadgadfse****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n 1.0.1\\n 2019-11-04T03:38:22.000Z\\n 2019-11-04T03:38:22.000Z\\n CONFIRM\\n MyProduct\\n ZS9sNBb1ahsu6khqr9II01****\\n ConfigModify\\n \\n\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备未完成的升级作业', + 'summary' => '查询指定设备下,未完成状态的设备升级作业。', 'description' => '## 使用说明'."\n" - .'服务端订阅分两种类型:'."\n" - .'- MNS订阅:将订阅的消息推送到消息服务(MNS)的队列中,您的服务端应用通过监听MNS队列接收设备消息,参见[使用MNS服务端订阅](~~68948~~)。直接调用本接口即可创建MNS订阅。'."\n" - .'- AMQP订阅:将产品下所有已订阅类型的消息通过AMQP通道推送至您的服务端,请参见[配置AMQP服务端订阅](~~142376~~)。请按以下流程操作AMQP订阅:'."\n" - .'1. 调用[CreateConsumerGroup](~~170388~~)创建消费组,返回消费组ID。AMQP订阅中,消息将被推送到指定消费组,AMQP客户端携带消费组ID接入物联网平台,消费消息,请参见[AMQP客户端接入说明](~~142489~~)。'."\n" - .'2. 调用本接口创建AMQP订阅。'."\n" - .'3. (可选)调用[CreateConsumerGroupSubscribeRelation](~~170354~~)在AMQP订阅中添加消费组。调用[DeleteConsumerGroupSubscribeRelation](~~170357~~)删除AMQP订阅中多个消费组中的指定消费组。'."\n" - .'4. (可选)运行AMQP订阅时,调用[QueryConsumerGroupStatus](~~170358~~)查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间,调用[ResetConsumerGroupPosition](~~170355~~)清空消费组的堆积消息。'."\n" + .'请求参数中的**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。调用API时,**ProductKey**与**DeviceName**的组合和**IotId**必须传入一个。'."\n" ."\n" .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '> 请求参数中的Flag不能全部为**false**或不传入,至少传入一个为**true**的Flag。'."\n" - ."\n" - .'**MnsConfiguration定义**'."\n" - .'| 名称 | 描述 |'."\n" - .'| ------------- |------------ |'."\n" - .'|queueName| 消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见[创建队列](~~34417~~)。 |'."\n" - .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" - .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" - ."\n" - .'**MnsConfiguration**示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "queueName": "mns-test-topic1",'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" - .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateSubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAUnfinishedTaskByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'DeviceStatusChangeFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备状态变化通知。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t****'], ], [ - 'name' => 'ThingHistoryFlag', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择物模型历史数据上报。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值不超过100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '0', 'example' => '10'], ], [ - 'name' => 'ProductKey', + 'name' => 'SearchName', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['description' => '传入解析器名称中任意字符串,根据该字符串检索能匹配的解析器名称。', 'type' => 'string', 'required' => false, 'example' => 'DataParser'], ], [ - 'name' => 'Type', + 'name' => 'CurrentPage', 'in' => 'query', + 'schema' => ['description' => '指定显示返回结果中的第几页,取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '订阅类型:'."\n" - ."\n" - .'- **MNS**'."\n" - .'- **AMQP**', - 'type' => 'string', - 'required' => true, - 'example' => 'AMQP', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Total' => ['description' => '返回结果记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ParserList' => [ + 'description' => '返回的解析器列表数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '解析器状态。可取值有:'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **STOP**:已停止。'."\n" + .'- **ABNORMAL**:存在异常。', 'type' => 'string', 'example' => 'STOP'], + 'Description' => ['description' => '解析器描述。', 'type' => 'string', 'example' => '转发数据。'], + 'UtcModified' => ['description' => '更新解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-25T12:45:43.000Z'], + 'Name' => ['description' => '解析器名称。', 'type' => 'string', 'example' => 'DataParser'], + 'UtcCreated' => ['description' => '创建解析器的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-21T12:45:43.000Z'], + 'ParserId' => ['description' => '解析器ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidPageParams', 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', 'description' => '分页大小或者分页页号不合法。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.QueryRulePageActionError', 'errorMessage' => 'An error occurred while querying the rule action list across multiple pages.', 'description' => '查询规则列表失败。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Total\\": 100,\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ParserList\\": [\\n {\\n \\"Status\\": \\"STOP\\",\\n \\"Description\\": \\"转发数据。\\",\\n \\"UtcModified\\": \\"2022-03-25T12:45:43.000Z\\",\\n \\"Name\\": \\"DataParser\\",\\n \\"UtcCreated\\": \\"2022-03-21T12:45:43.000Z\\",\\n \\"ParserId\\": 1001\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E4C0FF92-2A86-41DB-92D3-73B60310D25E\\r\\n 100\\r\\n \\r\\n \\r\\n STOP\\r\\n 转发数据1。\\r\\n 2022-03-21T12:45:43.000Z\\r\\n 2022-03-25T12:45:43.000Z\\r\\n 1001\\r\\n DataParser1\\r\\n \\r\\n \\r\\n STOP\\r\\n 转发数据2。\\r\\n 2022-03-21T12:50:43.000Z\\r\\n 2022-03-25T12:48:43.000Z\\r\\n 1002\\r\\n DataParser2\\r\\n \\r\\n \\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'ListParser', + 'summary' => '调用该接口查询解析器列表信息,包括解析器基本信息、启动状态、创建时间和修改时间。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceDataFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备上报消息。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DeviceTopoLifeCycleFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备拓扑关系变更。可选值:'."\n" - .'- **true**:是。仅对网关产品有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'FoundDeviceListFlag', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择网关子设备发现上报。可选值:'."\n" - .'- **true**:是。仅对网关产品有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'OtaEventFlag', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA升级状态通知。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,默认值为10,最大值不超过100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '10'], ], [ - 'name' => 'DeviceLifeCycleFlag', + 'name' => 'SearchName', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备生命周期变更。可选值:'."\n" - .'- **true**:是。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '传入数据源名称中任意字符串,根据该字符串检索能匹配的数据源名称。', 'type' => 'string', 'required' => false, 'example' => 'DataSource'], ], [ - 'name' => 'MnsConfiguration', + 'name' => 'Page', 'in' => 'query', + 'schema' => ['description' => '指定显示返回结果中的第几页,默认值为1,取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '999999', 'minimum' => '1', 'example' => '1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'MNS队列的配置信息,**Type**为**MNS**时必填。'."\n" - .'具体要求和示例见下文“MnsConfiguration定义”。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '返回结果记录总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'Page' => ['description' => '显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DataSource' => [ + 'description' => '返回的数据源列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UtcCreated' => ['description' => '创建数据源的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'Name' => ['description' => '数据源名称。', 'type' => 'string', 'example' => 'DataSource'], + 'Description' => ['description' => '数据源描述信息。', 'type' => 'string', 'example' => '设备数据。'], + 'DataSourceId' => ['description' => '数据源ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1001'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules.', 'description' => '规则不存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 100,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DataSource\\": [\\n {\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"Name\\": \\"DataSource\\",\\n \\"Description\\": \\"设备数据。\\",\\n \\"DataSourceId\\": 1001\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 设备1数据。\\n 2022-03-27T12:45:43.000Z\\n 1001\\n DataSource1\\n \\n \\n 设备2数据。\\n 2022-04-27T12:45:43.000Z\\n 1002\\n DataSource2\\n \\n\\n10\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n100\\n1\\ntrue\\n","errorExample":""}]', + 'title' => '查询解析器数据源列表', + 'summary' => '查询解析器数据源列表。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DeviceTagFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'ListParserDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'OtaVersionFlag', - 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'OtaJobFlag', + 'name' => 'IsFailover', 'in' => 'query', - 'schema' => [ - 'description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**(默认):否。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '待查询数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**(默认):不是转发错误操作数据,而是正常转发操作。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'SubscribeFlags', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '标识当前订阅产品的其他类型消息。'."\n" - ."\n" - .'- 如果订阅的是JT/T 808协议云网关产品,必须传入**SubscribeFlags**,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - ."\n" - .'- 如果订阅的是设备视频流状态变更通知消息,必须传入**SubscribeFlags**,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" - ."\n" - .'- 如果同时订阅以上消息,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true,'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```', - 'type' => 'string', - 'required' => false, - 'example' => '{ "jt808DeviceDataFlag": true }', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'ConsumerGroupIds', + 'name' => 'ParserId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '创建的AMQP订阅中的消费组ID,**Type**为**AMQP**时必填。'."\n" - ."\n" - .'调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'nJRaJPn5U1JITGfjBO9l00****', - 'maxItems' => 50, - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '0', 'example' => '1002'], ], ], 'responses' => [ @@ -36704,124 +24226,119 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'destinations' => [ + 'description' => '调用成功时,返回的数据目的列表数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '数据目的的操作类型。'."\n" + ."\n" + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'string', 'example' => 'REPUBLISH'], + 'DestinationId' => ['description' => '数据目的ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1003'], + 'UtcModified' => ['description' => '修改数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-05-27T12:45:43.000Z'], + 'Configuration' => ['description' => '数据目的对应的配置信息。', 'type' => 'string', 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + 'Name' => ['description' => '数据目的名称。', 'type' => 'string', 'example' => 'DataPurpose'], + 'UtcCreated' => ['description' => '创建数据目的对应的UTC时间。格式为`yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\'`。', 'type' => 'string', 'example' => '2022-03-27T12:45:43.000Z'], + 'IsFailover' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**(默认):不是转发错误操作数据,而是正常转发操作。', 'type' => 'boolean', 'example' => 'false'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改MNS或AMQP服务端订阅', - 'summary' => '调用该接口修改MNS或AMQP服务端订阅。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.ListDestinationFailed', 'errorMessage' => 'An error occurred while querying destinations', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"destinations\\": [\\n {\\n \\"Type\\": \\"REPUBLISH\\",\\n \\"DestinationId\\": 1003,\\n \\"UtcModified\\": \\"2022-05-27T12:45:43.000Z\\",\\n \\"Configuration\\": \\"{\\\\\\"topic\\\\\\":\\\\\\"/a1POX0c****/device1/user/get\\\\\\",\\\\\\"topicType\\\\\\":1}\\",\\n \\"Name\\": \\"DataPurpose\\",\\n \\"UtcCreated\\": \\"2022-03-27T12:45:43.000Z\\",\\n \\"IsFailover\\": false\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n \\n REPUBLISH\\n 2022-03-27T12:45:43.000Z\\n {\\"topic\\":\\"/a1POX0c****/device1/user/get\\",\\"topicType\\":1}\\n 2022-05-27T12:45:43.000Z\\n false\\n 1003\\n DataPurpose\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'ListParserDestination', + 'summary' => '调用该接口查询指定解析器关联的数据目的列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '> 请求参数中的Flag不能全部为**false**或不传入,至少传入一个为**true**的Flag。'."\n" - ."\n" - .'**MnsConfiguration定义**'."\n" - .'| 名称 | 描述 |'."\n" - .'| ------------- |------------ |'."\n" - .'|queueName| 消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见[创建队列](~~34417~~)。 |'."\n" - .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" - .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" ."\n" - .'**MnsConfiguration**示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "queueName": "mns-test-topic1",'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" - .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParserDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListPowerStation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'ProductKey', + 'name' => 'AlgorithmInstanceUid', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'Type', + 'name' => 'PowerStationName', 'in' => 'query', - 'schema' => [ - 'description' => '订阅类型:'."\n" - ."\n" - .'- **MNS**'."\n" - .'- **AMQP**', - 'type' => 'string', - 'required' => true, - 'example' => 'AMQP', - ], + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '999999999999', 'minimum' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1'], ], ], 'responses' => [ @@ -36829,255 +24346,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Type' => [ - 'description' => '订阅类型。返回值:'."\n" - ."\n" - .'- **MNS**'."\n" - .'- **AMQP**', - 'type' => 'string', - 'example' => 'AMQP', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'DeviceTagFlag' => [ - 'description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'OtaVersionFlag' => [ - 'description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceDataFlag' => [ - 'description' => '推送消息类型是否选择设备上报消息。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'SubscribeFlags' => [ - 'description' => '标识当前订阅产品的其他类型消息。'."\n" - ."\n" - .'- 如果订阅的是JT/T 808协议云网关产品,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - ."\n" - .'- 如果订阅的是设备视频流状态变更通知消息,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true'."\n" - .' }'."\n" - .' ```'."\n" - .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" - ."\n" - .'- 如果同时订阅以上消息,取值为:'."\n" - ."\n" - .' ```'."\n" - .' {'."\n" - .' "lvDeviceStatusFlag": true,'."\n" - .' "jt808DeviceDataFlag": true'."\n" - .' }'."\n" - .' ```'."\n", - 'type' => 'string', - 'example' => '{ "jt808DeviceDataFlag": true }', - ], - 'OtaEventFlag' => [ - 'description' => '推送消息类型是否选择OTA升级状态通知。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ThingHistoryFlag' => [ - 'description' => '推送消息类型是否选择物模型历史数据上报。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceStatusChangeFlag' => [ - 'description' => '推送消息类型是否选择设备状态变化通知。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ProductKey' => [ - 'description' => '该订阅中的产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1fyXVF****', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555', - ], - 'MnsConfiguration' => [ - 'description' => '**Type**为**MNS**时,返回MNS队列的配置信息。'."\n" - ."\n" - .'具体组成和示例,请参见下文的“MnsConfiguration定义和示例”。', - 'type' => 'string', - 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }', - ], - 'DeviceTopoLifeCycleFlag' => [ - 'description' => '推送消息类型是否选择设备拓扑关系变更。'."\n" - .'- **true**:是。仅网关产品会返回**true**。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceLifeCycleFlag' => [ - 'description' => '推送消息类型是否选择设备生命周期变更。'."\n" - .'- **true**:是。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'FoundDeviceListFlag' => [ - 'description' => '推送消息类型是否选择网关子设备发现上报。'."\n" - .'- **true**:是。仅网关产品会返回**true**。'."\n" - .'- **false**:否。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'OtaJobFlag' => [ - 'description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" - .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" - .'- **false**:否。'."\n" - ."\n" - .'默认值为**false**。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ConsumerGroupIds' => [ - 'type' => 'array', - 'items' => [ - 'description' => '**Type**为**AMQP**时,返回AMQP订阅中的消费组ID。', - 'type' => 'string', - 'example' => '[DEFAULT_GROUP,br45A6A1amoRFGN7x1zP00****]', + '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'], + 'DataList' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'PowerStationUid' => ['type' => 'string'], + 'RatedPower' => ['type' => 'integer', 'format' => 'int32'], + 'AlgoInstanceUid' => ['type' => 'string'], + 'Description' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + ], + ], + ], ], ], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Type\\": \\"AMQP\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"DeviceTagFlag\\": true,\\n \\"OtaVersionFlag\\": true,\\n \\"DeviceDataFlag\\": true,\\n \\"Success\\": true,\\n \\"SubscribeFlags\\": \\"{ \\\\\\"jt808DeviceDataFlag\\\\\\": true }\\",\\n \\"OtaEventFlag\\": true,\\n \\"ThingHistoryFlag\\": true,\\n \\"DeviceStatusChangeFlag\\": true,\\n \\"ProductKey\\": \\"a1fyXVF****\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"MnsConfiguration\\": \\"{ \\\\\\"queueName\\\\\\": \\\\\\"mns-test-topic1\\\\\\", \\\\\\"regionName\\\\\\": \\\\\\"cn-shanghai\\\\\\", \\\\\\"role\\\\\\": { \\\\\\"roleArn\\\\\\": \\\\\\"acs:ram::5645***:role/aliyuniotaccessingmnsrole\\\\\\", \\\\\\"roleName\\\\\\": \\\\\\"AliyunIOTAccessingMNSRole\\\\\\" } }\\",\\n \\"DeviceTopoLifeCycleFlag\\": true,\\n \\"DeviceLifeCycleFlag\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"FoundDeviceListFlag\\": true,\\n \\"OtaJobFlag\\": true,\\n \\"ConsumerGroupIds\\": [\\n \\"[DEFAULT_GROUP,br45A6A1amoRFGN7x1zP00****]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nfalse\\n73B9DF43-7780-47DE-8BED-077729D28BD2\\ntrue\\nfalse\\nfalse\\nXs95KifeaSKbi8tKkcoD00****\\ntrue\\nfalse\\nAMQP\\nfalse\\nfalse\\n{ \\"jt808DeviceDataFlag\\": true }\\na1Zkii7****\\n","errorExample":""}]', - 'title' => '查询MNS或AMQP服务端订阅', - 'summary' => '调用该接口查询MNS或AMQP服务端订阅。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => '**MnsConfiguration定义**'."\n" - .'| 名称 | 描述 |'."\n" - .'| ------------- |------------ |'."\n" - .'|queueName| 消息服务中用来接收信息的队列名称。 |'."\n" - .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" - .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" - ."\n" - .'示例:'."\n" - .'```'."\n" - .'{'."\n" - .' "queueName": "mns-test-topic1",'."\n" - .' "regionName": "cn-shanghai",'."\n" - .' "role": {'."\n" - .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" - .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" - .' }'."\n" - .'}'."\n" - .'```', - 'extraInfo' => ' ', - ], - 'DeleteSubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], + ], ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 0,\\n \\"PageSize\\": 0,\\n \\"Total\\": 0,\\n \\"DataList\\": [\\n {\\n \\"PowerStationUid\\": \\"\\",\\n \\"RatedPower\\": 0,\\n \\"AlgoInstanceUid\\": \\"\\",\\n \\"Description\\": \\"\\",\\n \\"Name\\": \\"\\"\\n }\\n ]\\n }\\n}","type":"json"}]', + ], + 'ListProductByTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'ProductKey', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Type', + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量。最大值是50。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], + ], + [ + 'name' => 'ProductTag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '订阅类型。取值:'."\n" - ."\n" - .'- **MNS**'."\n" - .'- **AMQP**', - 'type' => 'string', + 'description' => '产品标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '产品标签值。', 'type' => 'string', 'required' => false, 'example' => '102'], + 'TagKey' => ['description' => '产品标签键。', 'type' => 'string', 'required' => true, 'example' => 'room'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'AMQP', + 'maxItems' => 10, ], ], ], @@ -37086,89 +24447,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'ProductInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ProductInfo' => [ + 'description' => '调用成功时,返回产品信息列表(**ProductInfo**)。'."\n" + ."\n" + .'> 返回的产品信息按照产品创建时间倒序排列。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '产品的ProductKey。是物联网平台为新建产品颁发的全局唯一标识符。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => '路灯'], + 'NodeType' => ['description' => '产品的节点类型,取值:'."\n" + .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '产品描述。', 'type' => 'string', 'example' => 'This is a test product.'], + 'CreateTime' => ['description' => '产品创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1545355537000'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除MNS或AMQP服务端订阅', - 'summary' => '调用该接口删除MNS或AMQP服务端订阅。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"ProductInfos\\": {\\n \\"ProductInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ProductName\\": \\"路灯\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"This is a test product.\\",\\n \\"CreateTime\\": 1545355537000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n09AA366E-81EC-4CF0-B49E-61BCD7C95338\\ntrue\\n\\n \\n a1BwAGV****\\n 0\\n 1581595942000\\n 路灯\\n \\n \\n a1PO***\\n 0\\n 1580898565000\\n 传感器\\n \\n\\n","errorExample":""}]', + 'title' => 'ListProductByTags', + 'summary' => '调用该接口根据标签分页查询产品列表。', + 'description' => '## 使用说明'."\n" + .'- 支持按照TagKey和TagValue组合,或只按照TagKey来搜索。'."\n" + ."\n" + .'- 传入多个ProductTag是**或**的关系。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n" + ."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateConsumerGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListProductByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListProductTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'GroupName', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '消费组名称。支持中文汉字、英文字母、数字和下划线(_),长度为4~30个字符,一个汉字计为两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '消费组1', - ], + 'schema' => ['description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], ], 'responses' => [ @@ -37176,104 +24551,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2', - ], - 'GroupId' => [ - 'description' => '创建的消费组ID。', - 'type' => 'string', - 'example' => 'nJRaJPn5U1JITGf******', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ProductTag' => [ + 'description' => '调用成功时,返回产品标签信息列表,具体信息,请参见**ProductTag**包含的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => '102'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'room'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n nJRaJPn5U1JITGf******\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建消费组', - 'summary' => '调用该接口创建一个消费组,用于创建AMQP服务端订阅。', - 'description' => '## 限制说明'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"102\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n alterTable\\n binary\\n \\n \\n json2\\n extt\\n \\n \\n 1234\\n Lock\\n \\n \\n support\\n Lockk\\n \\n \\n reen\\n Reen\\n \\n \\n try\\n Reenn\\n \\n \\n DropTable\\n roc\\n \\n \\n 7FBE60F8-4AB5-4A8C-AFCB-F4F38851F01F\\n true\\n","errorExample":""}]', + 'title' => '查询指定产品的所有标签', + 'summary' => '调用该接口查询指定产品的所有标签。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateConsumerGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'NewGroupName', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '消费组的新名称。支持中文汉字、英文字母、数字和下划线(_),长度为4~30个字符,一个汉字计为两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '消费组2', - ], + 'schema' => ['description' => '显示返回结果中的第几页。最大取值为1000,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'GroupId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGf******', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大值为100,默认值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****'], ], ], 'responses' => [ @@ -37281,93 +24655,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '1564B626-DE97-452D-9E9B-305888AC6105'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Total' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '25'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'RuleInfo' => [ + 'description' => '调用成功时,返回的规则信息列表。详情参见**RuleInfo**信息。'."\n" + ."\n" + .'> 返回规则信息按照规则创建时间倒序排列。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Modified' => ['description' => '该规则最近一次被修改时的CST (Central Standard Time)时间。', 'type' => 'string', 'example' => 'Wed Feb 27 20:45:43 CST 2019'], + 'Status' => ['description' => '该规则的运行状态。取值:'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **STOP**:停止。', 'type' => 'string', 'example' => 'STOP'], + 'DataType' => ['description' => '该规则的数据类型,取值:**JSON**和**BINARY**。', 'type' => 'string', 'example' => 'JSON'], + 'Select' => ['description' => '该规则SQL语句中的**Select**内容。', 'type' => 'string', 'example' => 'deviceName() as deviceName'], + 'UtcCreated' => ['description' => '该规则创建时的UTC时间。', 'type' => 'string', 'example' => '2019-02-27T12:40:43.000Z'], + 'CreateUserId' => ['description' => '创建该规则的用户ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '1231579085000000'], + 'Where' => ['description' => '该规则SQL语句中的**Where**查询条件。', 'type' => 'string', 'example' => 'Temperature>35'], + 'ProductKey' => ['description' => '应用该规则的产品**Productkey**。', 'type' => 'string', 'example' => 'a1KiV******'], + 'UtcModified' => ['description' => '该规则最近一次被修改时的UTC时间。', 'type' => 'string', 'example' => '2019-02-27T12:45:43.000Z'], + 'Topic' => ['description' => '应用该规则的具体Topic,格式为:`${productKey}/${deviceName}/topicShortName`。'."\n" + .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', 'type' => 'string', 'example' => '/a1T27vz****/+/thing/event/property/post'], + 'ShortTopic' => ['description' => '应用该规则的具体Topic(不包含ProductKey类目),格式为:`${deviceName}/topicShortName`。其中,${deviceName}是具体设备的名称,topicShortName是Topic余下部分。'."\n" + .'> 若Topic包含通配符`+`或`#`,请参见[Topic通配符说明](~~73731~~)。', 'type' => 'string', 'example' => '+/thing/event/property/post'], + 'RuleDesc' => ['description' => '规则的描述信息。', 'type' => 'string', 'example' => 'rule1Desc'], + 'Name' => ['description' => '规则名称。', 'type' => 'string', 'example' => 'test123'], + 'Created' => ['description' => '该规则创建时的CST(Central Standard Time)时间。', 'type' => 'string', 'example' => 'Wed Feb 27 20:45:43 CST 2019'], + 'Id' => ['description' => '规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '151454'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改指定消费组属性', - 'summary' => '使用AMQP服务端订阅时,可以调用该接口修改消费组名称。', - 'description' => '## 使用说明'."\n" - ."\n" - .'不支持修改物联网平台提供的默认消费组。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"1564B626-DE97-452D-9E9B-305888AC6105\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 2,\\n \\"Total\\": 25,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"RuleInfo\\": [\\n {\\n \\"Modified\\": \\"Wed Feb 27 20:45:43 CST 2019\\",\\n \\"Status\\": \\"STOP\\",\\n \\"DataType\\": \\"JSON\\",\\n \\"Select\\": \\"deviceName() as deviceName\\",\\n \\"UtcCreated\\": \\"2019-02-27T12:40:43.000Z\\",\\n \\"CreateUserId\\": 1231579085000000,\\n \\"Where\\": \\"Temperature>35\\",\\n \\"ProductKey\\": \\"a1KiV******\\",\\n \\"UtcModified\\": \\"2019-02-27T12:45:43.000Z\\",\\n \\"Topic\\": \\"/a1T27vz****/+/thing/event/property/post\\",\\n \\"ShortTopic\\": \\"+/thing/event/property/post\\",\\n \\"RuleDesc\\": \\"rule1Desc\\",\\n \\"Name\\": \\"test123\\",\\n \\"Created\\": \\"Wed Feb 27 20:45:43 CST 2019\\",\\n \\"Id\\": 151454\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n \\n JSON\\n a1T27vz****\\n 198426864326****\\n 2020-02-26T06:38:27.000Z\\n 2020-02-26T02:50:44.000Z\\n Temperature>35\\n testrule2\\n STOP\\n \\n Wed Feb 26 10:50:44 CST 2020\\n Wed Feb 26 14:38:27 CST 2020\\n /a1T27vz****/+/thing/event/property/post\\n 497350\\n \\n\\n1\\n1\\n1A6131EC-7504-4673-B997-DEFC6B363A37\\ntrue\\n5\\n","errorExample":""}]', + 'title' => '分页查询所有规则列表', + 'summary' => '调用该接口分页查询所有规则列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryConsumerGroupByGroupId' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListRuleActions' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'GroupId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGf****** ', - ], + 'schema' => ['description' => '要查询的规则ID。'."\n" + ."\n" + .'您可调用[ListRule](~~69486~~)接口从返回结果中查看**Id**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '10000'], ], ], 'responses' => [ @@ -37375,167 +24770,142 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的消费组详情。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '22254BDB-3DC1-4643-8D1B-EE0437EF09A9'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RuleActionList' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'GroupId' => [ - 'description' => '消费组ID。', - 'type' => 'string', - 'example' => 'nJRaJPn5U1JITGf****** ', - ], - 'GroupName' => [ - 'description' => '消费组名称。', - 'type' => 'string', - 'example' => '消费组1', - ], - 'CreateTime' => [ - 'description' => '消费组创建时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', - 'type' => 'string', - 'example' => '2020-05-20T00:05:20.000Z', + 'RuleActionInfo' => [ + 'description' => '调用成功后,返回规则下所有数据目的列表。详细信息,请参见以下**RuleActionInfo**所包含的参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => '数据目的对应的操作类型。返回值:'."\n" + ."\n" + .'- **REPUBLISH**:转发到另一个topic。'."\n" + .'- **OTS**:存储到表格存储。'."\n" + .'- **MNS**:发送消息到消息服务。'."\n" + .'- **ONS**:发送数据到消息队列RocketMQ。'."\n" + .'- **TSDB**:存储到时序数据库。'."\n" + .'- **FC**:发送数据到函数计算。'."\n" + .'- **DATAHUB**:发送数据到DataHub中。'."\n" + .'- **RDS**:存储数据到云数据库中。'."\n" + .'- **AMQP**:数据流转到AMQP消费组。'."\n", 'type' => 'string', 'example' => 'OTS'], + 'Status' => ['description' => '数据目的对应的状态。返回值:'."\n" + .'- **INIT**:初始配置中。'."\n" + .'- **NORMAL**:配置完成,正常可用。'."\n" + .'- **INVALID**:配置存在异常,不可用。'."\n" + .'- **SHORTCUT**:云产品流转服务发生异常,导致流转熔断。', 'type' => 'string', 'example' => 'NORMAL'], + 'Configuration' => ['description' => '数据目的对应的配置信息。', 'type' => 'string', 'example' => '{\\"endPoint\\":\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\",\\"instanceName\\":\\"ShanghaiRegion\\",\\"primaryKeys\\":[{\\"columnName\\":\\"temperature\\",\\"columnType\\":\\"INTEGER\\",\\"columnValue\\":\\"${deviceName}\\"}],\\"regionName\\":\\"cn-shanghai\\",\\"role\\":{\\"roleArn\\":\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\",\\"roleName\\":\\"AliyunIOTAccessingOTSRole\\"},\\"tableName\\":\\"iottest\\",\\"uid\\":\\"1231579085******\\"}'], + 'ErrorActionFlag' => ['description' => '该数据目的配置是否为转发错误操作数据,即转发流转到其他云产品失败且重试失败的数据。'."\n" + ."\n" + .'- **true**:是转发错误操作数据。'."\n" + .'- **false**:不是转发错误操作数据,而是正常转发操作。', 'type' => 'boolean', 'example' => 'false'], + 'Id' => ['description' => '数据目的对应的操作ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '139099'], + 'RuleId' => ['description' => '数据目的对应的规则ID。', 'type' => 'integer', 'format' => 'int64', 'example' => '10000'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\\\t\\",\\n \\"GroupName\\": \\"消费组1\\",\\n \\"CreateTime\\": \\"2020-05-20T00:05:20.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n nJRaJPn5U1JITGf******\\r\\n 消费组1\\r\\n 2019-11-12T11:19:13.000Z\\r\\n \\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '根据消费组ID查询消费组详情', - 'summary' => '调用该接口查询AMQP服务端订阅的消费组详情。', - 'description' => '## 使用说明'."\n" - .'使用AMQP服务端订阅时,可以调用该接口根据消费组ID查询消费组详情。创建AMQP服务端订阅的接口信息,请参见[CreateSubscribeRelation](~~170349~~)。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"22254BDB-3DC1-4643-8D1B-EE0437EF09A9\\",\\n \\"Success\\": true,\\n \\"RuleActionList\\": {\\n \\"RuleActionInfo\\": [\\n {\\n \\"Type\\": \\"OTS\\",\\n \\"Status\\": \\"NORMAL\\",\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"endPoint\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"instanceName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ShanghaiRegion\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"primaryKeys\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"columnName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"temperature\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columnType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INTEGER\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"columnValue\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"${deviceName}\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"regionName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"cn-shanghai\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"role\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"roleArn\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"roleName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"AliyunIOTAccessingOTSRole\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"tableName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"iottest\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"uid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1231579085******\\\\\\\\\\\\\\"}\\",\\n \\"ErrorActionFlag\\": false,\\n \\"Id\\": 139099,\\n \\"RuleId\\": 10000\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n OTS\\n 10000\\n 139099\\n NORMAL\\n {\\"endPoint\\":\\"http://ShanghaiRegion.cn-shanghai.ots.aliyuncs.com\\",\\"instanceName\\":\\"ShanghaiRegion\\",\\"primaryKeys\\":[{\\"columnName\\":\\"temperature\\",\\"columnType\\":\\"INTEGER\\",\\"columnValue\\":\\"${deviceName}\\"}],\\"regionName\\":\\"cn-shanghai\\",\\"role\\":{\\"roleArn\\":\\"acs:ram::1231579085******:role/aliyuniotaccessingotsrole\\",\\"roleName\\":\\"AliyunIOTAccessingOTSRole\\"},\\"tableName\\":\\"iottest\\",\\"uid\\":\\"1231579085******\\"}\\n false\\n \\n \\n REPUBLISH\\n 152323\\n 142401\\n NORMAL\\n {\\"topic\\":\\"/sys/a1zSA28H***/device/thing/service/property/set\\",\\"topicType\\":0,\\"uid\\":\\"1231579085******\\"}\\n false\\n \\n\\n22254BDB-3DC1-4643-8D1B-EE0437EF09A9\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定规则下的所有转发数据动作列表', + 'summary' => '调用该接口查询指定规则下的所有转发数据动作列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryConsumerGroupList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListRuleActions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的消费组数量,最小值为1,最大值为1000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'Limit', 'in' => 'query', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页,最小值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '每页显示的记录数。默认值为10,最大值为50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '50', 'minimum' => '1', 'example' => '10'], ], [ - 'name' => 'Fuzzy', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '是否使用模糊查询。可选值:'."\n" - ."\n" - .'- **true**:使用模糊查询,需指定**GroupName**参数。'."\n" - .'- **false**:查询该用户的所有消费组。'."\n" - ."\n" - .'默认为**false**。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。'."\n" + ."\n" + .'> 如果传入Device参数,此参数不传。', 'type' => 'string', 'required' => false, 'example' => 'sGWotgRk***010001'], ], [ - 'name' => 'GroupName', + 'name' => 'NextToken', 'in' => 'query', - 'schema' => [ - 'description' => '模糊查询时要查询的消费组名称,当**Fuzzy**取值为**true**时传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'A类消费组', - ], + 'schema' => ['description' => '下一页标识。首次查询可不传入值。如果存在下一页,服务会返回NextToken值,下次请求时传入。'."\n" + ."\n" + .'NextToken值有效时间为1分钟。失效后,将返回对应的错误码。', 'type' => 'string', 'required' => false, 'example' => '22dhgg***'], ], [ - 'name' => 'Type', + 'name' => 'Device', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'style' => 'json', + 'schema' => ['description' => '设备信息。更多信息,请参见下文“Device定义”。'."\n" + ."\n" + .'> 如果传入JobId参数,此参数不传。', 'type' => 'object', 'required' => false, 'example' => '{}'], ], [ - 'name' => 'SubBizCode', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '任务作业的状态。取值范围:'."\n" + ."\n" + .'- **QUEUED**:待调度。'."\n" + .'- **SENT**:已调度。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **REJECTED**:已拒绝。'."\n" + .'- **TIMED_OUT**:已超时。'."\n" + .'- **SUCCEEDED**:已成功。'."\n" + .'- **CANCELLED**:已取消。', 'type' => 'string', 'required' => false, 'example' => 'QUEUED'], ], ], 'responses' => [ @@ -37543,144 +24913,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的消费组数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageCount' => [ - 'description' => '返回结果总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'Total' => [ - 'description' => '查询到的消费组总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '8', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'NextToken' => ['description' => '下一页标识。如果存在下一页,服务会返回NextToken值,下次请求时传入。'."\n" + ."\n" + .'NextToken值有效时间为1分钟。失效后,将返回对应的错误码。', 'type' => 'string', 'example' => '223sdf***'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'ConsumerGroupDTO' => [ - 'description' => '调用成功时,返回的消费组详情,请参见ConsumerGroupDTO。', + 'data' => [ + 'description' => '调用成功时,返回任务下作业详情,请参见以下参数说明。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'GroupId' => [ - 'description' => '消费组ID。', - 'type' => 'string', - 'example' => 'nJRaJPn5U1JITGf****** ', - ], - 'GroupName' => [ - 'description' => '消费组名称。', - 'type' => 'string', - 'example' => 'XX消费组1', - ], - 'CreateTime' => [ - 'description' => '消费组创建时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', - 'type' => 'string', - 'example' => '2020-05-20T00:05:20.000Z', - ], + 'Status' => ['description' => '任务作业的状态。'."\n" + ."\n" + .'- **QUEUED**:待调度。'."\n" + .'- **SENT**:已调度。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **REJECTED**:已拒绝。'."\n" + .'- **TIMED_OUT**:已超时。'."\n" + .'- **SUCCEEDED**:成功。'."\n" + .'- **CANCELLED**:已取消。'."\n", 'type' => 'string', 'example' => 'SUCCEEDED'], + 'UtcQueueTime' => ['description' => '作业的排队时间。', 'type' => 'string', 'example' => '2019-05-21T13:03:53.000Z'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1S0OM***'], + 'Progress' => ['description' => '任务下作业执行进度。', 'type' => 'string', 'example' => '80'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'mydevice'], + 'JobName' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'MyTestJobIax6Eq'], + 'UtcModified' => ['description' => '作业信息的修改时间。', 'type' => 'string', 'example' => '2019-05-21T13:03:56.000Z'], + 'JobId' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => 'sGWotg***010001'], + 'TaskId' => ['description' => '任务下作业的ID。作业的全局唯一标识符。', 'type' => 'string', 'example' => 'MSnT9wl***q010101'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'BDjhIC***i000101'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 2,\\n \\"PageCount\\": 4,\\n \\"Total\\": 8,\\n \\"Data\\": {\\n \\"ConsumerGroupDTO\\": [\\n {\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\\\t\\",\\n \\"GroupName\\": \\"XX消费组1\\",\\n \\"CreateTime\\": \\"2020-05-20T00:05:20.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 2\\r\\n 4\\r\\n 1\\r\\n 8\\r\\n \\r\\n \\r\\n nJRaJPn5U1JITGf******\\r\\n A类消费组1\\r\\n 2020-05-29T03:37:56.000Z\\r\\n \\r\\n \\r\\n qJRaJPndeefwgef******\\r\\n A类消费组2\\r\\n 2020-01-17T07:27:01.000Z\\r\\n \\r\\n \\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询消费组列表', - 'summary' => '查询用户所有消费组列表,或按消费组名称进行模糊查询。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"NextToken\\": \\"223sdf***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"data\\": [\\n {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"UtcQueueTime\\": \\"2019-05-21T13:03:53.000Z\\",\\n \\"ProductKey\\": \\"a1S0OM***\\",\\n \\"Progress\\": \\"80\\",\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"JobName\\": \\"MyTestJobIax6Eq\\",\\n \\"UtcModified\\": \\"2019-05-21T13:03:56.000Z\\",\\n \\"JobId\\": \\"sGWotg***010001\\",\\n \\"TaskId\\": \\"MSnT9wl***q010101\\",\\n \\"IotId\\": \\"BDjhIC***i000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n223sdf***\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n \\n SUCCEEDED\\n BDjhIC***i000101\\n 80\\n MSnT9wl***q010101\\n MyTestJobIax6Eq\\n 2019-05-21T13:03:56.000Z\\n 2019-05-21T13:03:53.000Z\\n a1S0OM***\\n sGWotg***010001\\n mydevice\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '获取任务列表', + 'summary' => '调用该接口查询指定任务或指定设备下的作业列表。', + 'description' => '## 使用说明'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' '."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '**Device定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|IotId|String|设备ID。**IotId**、**ProductKey**、**DeviceName**不可同时为空。|'."\n" + .'|ProductKey|String|设备所属产品的ProductKey。
如果传入该参数,需同时传入**DeviceName**。|'."\n" + .'|DeviceName|String|设备名称。
如果传入该参数,需同时传入**ProductKey**。|'."\n" + ."\n" + .' '."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryConsumerGroupStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListThingModelVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'GroupId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGf******', - ], + 'schema' => ['description' => '产品的ProductKey。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], ], 'responses' => [ @@ -37688,161 +25032,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'ConsumerSpeed' => [ - 'description' => '消费组消息消费速率,单位:条/分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '14', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'AccumulatedConsumeCountPerMinute' => [ - 'description' => '消费组堆积消息消费速率,单位:条/分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'LastConsumerTime' => [ - 'description' => '最近消息消费时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', - 'type' => 'string', - 'example' => '2020-05-29T03:37:56.000Z', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RealTimeConsumeCountPerMinute' => [ - 'description' => '消费组实时消息消费速率,单位:条/分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '14', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'AccumulationCount' => [ - 'description' => '消费组消息堆积数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '13', - ], - 'ClientConnectionStatusList' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'ConsumerGroupClientConnectionInfo' => [ - 'description' => '消费组的在线客户端信息,请参见**ConsumerGroupClientConnectionInfo**。', + 'ModelVersions' => [ + 'description' => '物模型版本列表。按照物模型发布时间倒序排列。第一个为当前使用的版本。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'OnlineTime' => [ - 'description' => '在线客户端的最后上线时间。取值为1970年01月01日00时00分00秒000毫秒以来的毫秒数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1591240546649', - ], - 'AccumulatedConsumeCountPerMinute' => [ - 'description' => '消费组的单个客户端堆积消息消费速率,单位:条/分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'RealTimeConsumeCountPerMinute' => [ - 'description' => '消费组的单个客户端实时消息消费速率,单位:条/分钟。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'ClientIpPort' => [ - 'description' => '在线客户端IP和端口。', - 'type' => 'string', - 'example' => '192.168.1.2:36918 ', - ], - 'ClientId' => [ - 'description' => '在线客户端ID。', - 'type' => 'string', - 'example' => '868575026******', - ], + 'GmtCreate' => ['description' => '该版本物模型发布时的时间戳,格式为GMT毫秒值。', 'type' => 'integer', 'format' => 'int64', 'example' => '1579235657535'], + 'Description' => ['description' => '物模型版本的描述。', 'type' => 'string', 'example' => '增加一个light属性'], + 'ModelVersion' => ['description' => '物模型版本号。', 'type' => 'string', 'example' => 'V1.0.0'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"ConsumerSpeed\\": 14,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"AccumulatedConsumeCountPerMinute\\": 10,\\n \\"LastConsumerTime\\": \\"2020-05-29T03:37:56.000Z\\",\\n \\"Success\\": true,\\n \\"RealTimeConsumeCountPerMinute\\": 14,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"AccumulationCount\\": 13,\\n \\"ClientConnectionStatusList\\": {\\n \\"ConsumerGroupClientConnectionInfo\\": [\\n {\\n \\"OnlineTime\\": 1591240546649,\\n \\"AccumulatedConsumeCountPerMinute\\": 10,\\n \\"RealTimeConsumeCountPerMinute\\": 5,\\n \\"ClientIpPort\\": \\"192.168.1.2:36918\\\\t\\",\\n \\"ClientId\\": \\"868575026******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 12345-1\\n 8\\n 1627624830193\\n 192.168.1.2:55545\\n 16\\n \\n \\n 12345-0\\n 10\\n 1627624829763\\n 192.168.1.2:55526\\n 14\\n \\n\\n4EC250E4-70CE-546E-9D4A-31D06E04EAD8\\n10\\ntrue\\n14\\n26\\n14\\n","errorExample":""}]', - 'title' => '查询消费组状态', - 'summary' => '查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ModelVersions\\": [\\n {\\n \\"GmtCreate\\": 1579235657535,\\n \\"Description\\": \\"增加一个light属性\\",\\n \\"ModelVersion\\": \\"V1.0.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n V3.0.0\\n 1579235682421\\n new properties\\n \\n \\n V2.0.0\\n 1579235657535\\n new properties\\n \\n \\n V1.0.0\\n 1579235637994\\n Lighting\\n \\n\\n9BA34AE5-2D94-4BDE-BD78-E7D3FC7985BC\\ntrue\\n","errorExample":""}]', + 'title' => '获取指定产品的物模型版本列表', + 'summary' => '调用该接口获取指定产品的物模型版本列表。', + 'description' => '## 使用说明'."\n" + .'物模型已实现版本化管理,您导入物模型([ImportThingModelTsl](~~150320~~))、复制其他产品物模型([CopyThingModel](~~150322~~))或编辑更新物模型后,需调用[PublishThingModel](~~150311~~)将物模型发布后才能被使用。一个产品的物模型每发布一次,生成一个版本。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ResetConsumerGroupPosition' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListThingModelVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ListThingTemplates' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGf******', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -37850,90 +25119,110 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的标准品类列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CategoryName' => ['description' => '品类的名称。', 'type' => 'string', 'example' => '路灯照明'], + 'CategoryKey' => ['description' => '品类的标识符。', 'type' => 'string', 'example' => 'lighting'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '清空某个消费组的堆积消息', - 'summary' => '使用AMQP服务端订阅时,调用该接口清空某个消费组的堆积消息。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"CategoryName\\": \\"路灯照明\\",\\n \\"CategoryKey\\": \\"lighting\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 智能后视镜\\n SmartRearviewMirror\\n\\n\\n 智能车机\\n SmartTox\\n\\n","errorExample":""}]', + 'title' => '获取物联网平台预定义的标准产品品类列表', + 'summary' => '调用该接口获取物联网平台预定义的标准产品品类列表。', + 'description' => '## 使用说明'."\n" + .'物联网平台提供已定义了物模型的产品品类供您使用,例如路灯照明、车辆定位卡、水浸检测等。'."\n" + ."\n" + .'您调用[CreateProduct](~~69123~~)接口创建产品时,可以传入参数CategoryKey指定品类,创建的产品将引用该品类的标准物模型。'."\n" + ."\n" + .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteConsumerGroup' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListThingTemplates', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ModifyOTAFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'write', - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1uctKe****'], + ], + [ + 'name' => 'FirmwareId', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" + ."\n" + .'OTA升级包ID是调用接口[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" + ."\n" + .'您也可以调用接口[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 's8SSHiKjpBfrM3BSN0z803****'], + ], + [ + 'name' => 'FirmwareDesc', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包描述。长度不可超过100个字符。一个中文汉字算一个字符。', 'type' => 'string', 'required' => false, 'example' => 'OTA function updated'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t****'], ], [ - 'name' => 'GroupId', + 'name' => 'FirmwareName', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGf******', - ], + 'schema' => ['description' => 'OTA升级包名称,需在阿里云账号下唯一。支持中文、英文字母、日文、数字、短划线(-)、下划线(_)和半角圆括号(()),必须以中文、英文、日文或数字开头,长度限制为1~40个字符。', 'type' => 'string', 'required' => false, 'example' => 'Firmwaretest'], + ], + [ + 'name' => 'FirmwareUdi', + 'in' => 'query', + 'schema' => ['description' => '推送给设备的自定义信息。不限制文本内容格式,长度不超过4096个字符。', 'type' => 'string', 'required' => false, 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}'], ], ], 'responses' => [ @@ -37941,104 +25230,94 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.ota.FirmwareNotFound'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'The specified firmware does not exist.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除消费组', - 'summary' => '使用AMQP服务端订阅时,可以调用该接口删除消费组。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 不支持删除物联网平台提供的默认消费组。'."\n" - .'- 如果消费组已关联AMQP订阅,则需先解除该订阅与消费组的关联。当该订阅中有多个消费组时,可调用[DeleteConsumerGroupSubscribeRelation](~~170357~~)从订阅移除消费组;当该订阅只有一个消费组时,可调用[UpdateSubscribeRelation](~~170351~~)更改消费组或调用[DeleteSubscribeRelation](~~170353~~)删除订阅。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.firmware.AlreadyExistedFirmwareName', 'errorMessage' => 'The OTA update package already exists.', 'description' => '同名的OTA升级包已经存在。'], + ['errorCode' => 'iot.ota.FirmwareNotFound', 'errorMessage' => 'The specified firmware does not exist.', 'description' => '指定的升级包不存在。'], + ['errorCode' => 'iot.ota.FirmwareAndProductKeyMismatch', 'errorMessage' => 'The OTA update package is not consistent with the ProductKey.', 'description' => 'OTA升级包与产品ProductKey不匹配。'], + ['errorCode' => 'iot.ota.TenantIdMisMatch', 'errorMessage' => 'The tenantId is invalid.', 'description' => '租户非法操作。'], + ['errorCode' => 'iot.firmware.FirmwareUdiExceedLimit', 'errorMessage' => 'The UDI of the firmware is longer than the limit.', 'description' => '升级包的自定义信息长度超过限制。'], + ['errorCode' => 'iot.firmware.FirmwareDescExceedLimit', 'errorMessage' => 'The description of the firmware is longer than the limit.', 'description' => '升级包描述的长度超过限制。'], + ['errorCode' => 'iot.firmware.IncorrectFormattedFirmwareName', 'errorMessage' => 'The format of the OTA update package name is invalid.', 'description' => 'OTA升级包名称格式错误。'], + ['errorCode' => 'iot.ota.InstanceIdMisMatch', 'errorMessage' => 'The instanceId is invalid.', 'description' => '实例ID不匹配。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.ota.FirmwareNotFound\\",\\n \\"ErrorMessage\\": \\"The specified firmware does not exist.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => 'ModifyOTAFirmware', + 'summary' => '调用该接口修改升级包信息,包括升级包名称、升级包描述和自定义信息。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateConsumerGroupSubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ModifyOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ModifyPowerStation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ConsumerGroupId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGfjBO9l00****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'IotInstanceId', + 'name' => 'AlgorithmInstanceUid', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'ProductKey', + 'name' => 'PowerStationUid', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'PowerStationName', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'RatedPower', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true], ], ], 'responses' => [ @@ -38046,100 +25325,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['type' => 'string'], + 'Data' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '在AMQP订阅中添加一个消费组', - 'summary' => '调用该接口在AMQP订阅中添加一个消费组。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteConsumerGroupSubscribeRelation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], + ], ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Data\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'NotifyAddThingTopo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ - 'name' => 'ConsumerGroupId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '消费组ID。您可以调用[QuerySubscribeRelation](~~170352~~)查询AMQP订阅中的消费组ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nJRaJPn5U1JITGfjBO9l00****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'DeviceListStr', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '要挂载在目标网关设备上的子设备数组,为JSON字符串形式的子设备标识信息,可使用**ProductKey**和**DeviceName**或**IotId**指代设备,例如**[{"productKey":"a1BwAGxxx","deviceName":"device1"},{"IotId":"Q7uOhxxx"}]**。', 'type' => 'string', 'required' => false, 'example' => '[{"productKey":"a1BwAGV****","deviceName":"device1"},{"IotId":"Q7uOhVRdZRRlDnTLv****00100"}]'], ], [ - 'name' => 'ProductKey', + 'name' => 'GwIotId', 'in' => 'query', - 'schema' => [ - 'description' => '该订阅中的产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1fyXVF****', - ], + 'schema' => ['description' => '网关设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", 'type' => 'string', 'required' => false, 'example' => 'vWxNur6BUApsqjv****4000100'], + ], + [ + 'name' => 'GwProductKey', + 'in' => 'query', + 'schema' => ['description' => '网关设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1T27vz****'], + ], + [ + 'name' => 'GwDeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'gateway'], ], ], 'responses' => [ @@ -38147,246 +25399,270 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'MessageId' => ['description' => '云端向网关设备下发增加拓扑关系的消息ID。', 'type' => 'string', 'example' => '5443123'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '从多个消费组移除指定消费组', - 'summary' => '从AMQP订阅中的多个消费组移除指定消费组。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"5443123\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n419A3FC1-B517-4958-9414-5546765FA51F\\ntrue\\n\\n 2345123\\n\\n","errorExample":""}]', + 'title' => '通知网关设备增加拓扑关系', + 'summary' => '调用该接口通知网关设备增加拓扑关系。', 'description' => '## 使用说明'."\n" - .'当AMQP订阅中只有一个消费组时,不能使用该接口移除消费组。'."\n" - ."\n" + .'返回的成功结果只表示添加拓扑关系的指令成功下发给网关,并不表示网关成功添加拓扑关系。'."\n" + .'开发网关设备端时,需订阅通知添加拓扑关系消息的Topic。具体Topic和消息格式,请参见[管理拓扑关系](~~89299~~)。'."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetDeviceShadow' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:NotifyAddThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'OpenIotService' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], - ], - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'APP' => [], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1T27vz****', - ], + 'PrivateKey' => [], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'BearerToken' => [], ], ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A56E345A-0978-4993-ACBA-3EF444ED187F', - ], - 'ShadowMessage' => [ - 'description' => '调用成功时,返回的设备影子信息。'."\n" - ."\n" - .'> 根据影子设备的不同状态,查询到的影子信息结构有所差别,详情请参见[设备影子开发](~~53930~~)。'."\n", - 'type' => 'string', - 'example' => '{"method":"update","state":{"desired":{"color":"green"}},"version":1}', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'OrderId' => ['description' => '开通服务的订单号。', 'type' => 'string', 'example' => '20671870***'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '427DB0B3-9436-4A3C-B2BC-B961F95E9488'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A56E345A-0978-4993-ACBA-3EF444ED187F\\",\\n \\"ShadowMessage\\": \\"{\\\\\\"method\\\\\\":\\\\\\"update\\\\\\",\\\\\\"state\\\\\\":{\\\\\\"desired\\\\\\":{\\\\\\"color\\\\\\":\\\\\\"green\\\\\\"}},\\\\\\"version\\\\\\":1}\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA56E345A-0978-4993-ACBA-3EF444ED187F\\n{\\"method\\":\\"update\\",\\"state\\":{\\"desired\\":{\\"color\\":\\"green\\"}},\\"version\\":1}\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备的影子信息', - 'summary' => '调用该接口查询指定设备的影子信息。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'OrderOpend', 'errorMessage' => 'You have already purchased the Iot service. Go to the Iot console to start using it.', 'description' => '您已开通物联网平台服务,请前往控制台使用。'], + ['errorCode' => 'AccountTypeRestricted', 'errorMessage' => 'Please submit the application for beta testing first. You can activate the product after the application is approved.', 'description' => '请先提交申请进行Beta测试。您可以在申请获得批准后激活产品。'], + ['errorCode' => 'PermissionDenied', 'errorMessage' => 'The current sub account without permission, to authorize the Sub - Account, please.', 'description' => '当前RAM用户无权限,请为RAM用户授权。'."\n"], + ['errorCode' => 'PriceWanHuaTongSys', 'errorMessage' => 'Inquiry call kaleidoscope error', 'description' => '询价错误。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"OrderId\\": \\"20671870***\\",\\n \\"RequestId\\": \\"427DB0B3-9436-4A3C-B2BC-B961F95E9488\\"\\n}","errorExample":""},{"type":"xml","example":"\\n427DB0B3-9436-4A3C-B2BC-B961F95E9488\\n20671870***\\n","errorExample":""}]', + 'title' => '开通服务', + 'summary' => '调用该接口开通物联网平台服务。', + 'description' => '## 限制说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即iot.cn-shanghai.aliyuncs.com。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateDeviceShadow' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:OpenIotService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'PackageSoundCodeLabelBatchAudio' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'BatchCode', + 'in' => 'formData', + 'schema' => ['description' => '批次唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'Data' => ['description' => '声码标签批次音频打包地址。', 'type' => 'string', 'example' => 'http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.LabelBatchNotExists', 'errorMessage' => 'sound code label batch not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.NoSuccessLabel', 'errorMessage' => 'no success label', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nhttp://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\ntrue\\n","errorExample":""}]', + 'title' => 'PackageSoundCodeLabelBatchAudio', + 'summary' => '调用该接口获取声码标签批次音频打包地址。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要修改影子信息的设备所隶属的产品ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1T27vz****', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PackageSoundCodeLabelBatchAudio', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'PageQuerySharedSpeechOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '要查询的设备ID。'."\n" + ."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'ShareTaskCode', + 'in' => 'formData', + 'schema' => ['description' => '语料分享任务的分享码。'."\n" + ."\n" + .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', 'type' => 'string', 'required' => false, 'example' => 'ebed9280_ba25_48df_80c2_****'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大不超过100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '1', 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'sd34****'], + ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '要修改影子信息的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', - ], + 'name' => 'PageId', + 'in' => 'formData', + 'schema' => ['description' => '要查询的页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'ShadowMessage', - 'in' => 'query', - 'schema' => [ - 'description' => '修改后的设备影子信息。'."\n" - .'影子信息参数中包含:'."\n" - .'- **method**:String,指定操作类型,取值:**update**。'."\n" - ."\n" - .'- **state**:String,发送给影子的具体状态,由**desired**参数表示期望的影子状态。'."\n" - ."\n" - .'- **version**:Long,设备影子的版本。'."\n" - .' - 若无需版本控制,该值设置为0。'."\n" - .' - 若需要版本控制,该值必须大于当前影子版本。'."\n" - ."\n\n" - .'>需要版本控制时,不能直接从物联网平台查询当前影子版本。因为更新和查询操作并发量高时,可能导致多个更新操作查询到同一个影子版本。基于此情况,最后一次发起的更新操作可能先完成,进而导致最终更新的影子信息不是最新的影子信息。所以,建议您本地维护影子版本,调用本接口时,从本地应用获取最新影子版本。'."\n" - .'>', - 'type' => 'string', - 'required' => true, - 'example' => '{"method":"update","state":{"desired":{"color":"green"}},"version":2}', - ], + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], [ - 'name' => 'DeltaUpdate', - 'in' => 'query', - 'schema' => [ - 'description' => '是否增量更新设备影子**desired**参数。'."\n" - ."\n" - .'- **true**:增量更新。'."\n" - ."\n" - .'- **false**(默认):全量更新。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'Status', + 'in' => 'formData', + 'schema' => ['description' => '要查询语料的状态。可取值:'."\n" + ."\n" + .'- **1**:等待审核。'."\n" + .'- **2**:审核通过。'."\n" + .'- **3**:审核拒绝。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -38394,99 +25670,135 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '6754C0E7-A35D-4CC8-A684-45EB1F0008D9', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'String iot.system.SystemException '], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功,返回的结果。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页显示数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageId' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '数据记录总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ResultData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Data' => [ + 'description' => '返回的共享语料信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '语料状态。返回值:'."\n" + ."\n" + .'- **1**:等待审核。'."\n" + .'- **2**:审核通过。'."\n" + .'- **3**:审核拒绝。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Voice' => ['description' => '语料播报声音。', 'type' => 'string', 'example' => 'Siyue'], + 'BizCode' => ['description' => '语料标识。项目下唯一。', 'type' => 'string', 'example' => 'identifying'], + 'Code' => ['description' => '模版唯一标识。', 'type' => 'string', 'example' => 'ws****'], + 'Text' => ['description' => '语料内容。', 'type' => 'string', 'example' => 'test'], + 'SpeechRate' => ['description' => '播报速度,取值范围:-500~500。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'Volume' => ['description' => '音量大小,取值范围:0~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'AudioFormat' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'example' => 'wav'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"6754C0E7-A35D-4CC8-A684-45EB1F0008D9\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n ","errorExample":""}]', - 'title' => '修改指定设备的影子信息', - 'summary' => '调用该接口修改指定设备的影子信息。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 10,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"ResultData\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": 1,\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"Code\\": \\"ws****\\",\\n \\"Text\\": \\"test\\",\\n \\"SpeechRate\\": 50,\\n \\"Volume\\": 50,\\n \\"AudioFormat\\": \\"wav\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1\\n 10\\n 100\\n \\n \\n 1\\n 50\\n test\\n wav\\n Siyue\\n ws****\\n 50\\n identifying\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'PageQuerySharedSpeechOpen', + 'summary' => '被共享方调用该接口分页查询共享的语料。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GenerateOTAUploadURL' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PageQuerySharedSpeechOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'PageQuerySpeechBroadcastHour' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'ShareTaskCode', + 'in' => 'formData', + 'schema' => ['description' => '语料分享任务的分享码。'."\n" + ."\n" + .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', 'type' => 'string', 'required' => true, 'example' => 'ebed9280_ba25_48df_80c2_****'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'FileSuffix', + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,默认值为10,最大不超过2,000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '2000', 'minimum' => '1', 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'PageToken', + 'in' => 'formData', + 'schema' => ['description' => '下一页标识,首次查询无需传入。后续查询需使用的**PageToken**,要从上一次查询的返回结果中获取。'."\n" + ."\n" + .'例如查询第n页时,传入查询第n-1页返回的**PageToken**值。', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm****'], + ], + [ + 'name' => 'QueryDateTimeHour', 'in' => 'query', - 'schema' => [ - 'description' => '升级包文件扩展名。可选扩展名:'."\n" - ."\n" - .'- **bin**(默认)'."\n" - .'- **dav**'."\n" - .'- **apk**'."\n" - .'- **tar**'."\n" - .'- **gz**'."\n" - .'- **tar.gz**'."\n" - .'- **zip**'."\n" - .'- **gzip**', - 'type' => 'string', - 'required' => false, - 'example' => 'apk', - ], + 'schema' => ['description' => '要查询的时间。2020090919表示2020年09月09日19时。', 'type' => 'string', 'required' => true, 'example' => '2020090919'], ], ], 'responses' => [ @@ -38494,196 +25806,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的文件上传信息。详情见以下参数信息。', + 'description' => '调用成功,返回的结果。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '调用OSS的接口PostObject上传对象(即文件)的名称,包含OSS对象的完整路径。', - 'type' => 'string', - 'example' => 'ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin', - ], - 'OSSAccessKeyId' => [ - 'description' => 'OSS Bucket拥有者的**AccessKey ID**。'."\n" - ."\n" - .'该OSS Bucket将存储文件。', - 'type' => 'string', - 'example' => 'cS8uRRy54Rsz****', - ], - 'Signature' => [ - 'description' => '根据**AccessKeySecret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', - 'type' => 'string', - 'example' => 'v6lViO4FBvfquajQjg20K5hK****', - ], - 'Host' => [ - 'description' => 'OSS的接入域名。', - 'type' => 'string', - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com', - ], - 'Policy' => [ - 'description' => 'OSS通过该参数验证请求表单域的合法性。', - 'type' => 'string', - 'example' => 'eyJleHBpcmF****', - ], - 'ObjectStorage' => [ - 'description' => '对象存储类型。默认为OSS。', - 'type' => 'string', - 'example' => 'OSS', - ], - 'FirmwareUrl' => [ - 'description' => '文件的URL,即文件在对象存储(OSS)上的存储地址。'."\n" - ."\n" - .'文件URL的格式为`https://BucketName.Endpoint/ObjectName`。其中,BucketName是Bucket名称,Endpoint是文件访问域名(各地域的Endpoint信息,请参见[访问域名和数据中心](~~31837~~)),ObjectName是包含文件夹以及文件后缀在内的该文件的完整路径。'."\n" - ."\n" - .'升级包文件上传成功后,使用此参数调用[CreateOTAFirmware](~~147311~~)接口创建升级包。', - 'type' => 'string', - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin', - ], - 'UtcCreate' => [ - 'description' => '生成文件上传URL的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T06:21:54.607Z', + 'PageSize' => ['description' => '每页显示数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageId' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '数据记录总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageToken' => ['description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" + ."\n" + .'如果**PageToken**值为空,表示没有下一页数据。', 'type' => 'string', 'example' => 'TGlzdFJlc291cm****'], + 'ResultData' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Data' => [ + 'description' => '返回的共享播报数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Msg' => ['description' => '播报结果信息。', 'type' => 'string', 'example' => '播报成功。'], + 'StartTime' => ['description' => '播报开始时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1663210172207'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'sd34****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'device1'], + 'ShareTaskCode' => ['description' => '共享码。', 'type' => 'string', 'example' => 'ebed9280_ba25_48df_80c2_****'], + 'SpeechId' => ['description' => '播报ID。', 'type' => 'string', 'example' => '42000011392021112380****'], + 'Code' => ['description' => '播报结果码。返回值:'."\n" + ."\n" + .'- **0**:语料播报成功。'."\n" + .'- **1**:语料已播报,重复播报。'."\n" + .'- **2**:语料不存在。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Speechs' => ['description' => '播报语料。JSON数组格式。', 'type' => 'string', 'example' => '["ANC","CDF"]'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\",\\n \\"OSSAccessKeyId\\": \\"cS8uRRy54Rsz****\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\",\\n \\"FirmwareUrl\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\n eyJleHBpcmF****\\n cS8uRRy54Rsz****\\n OSS\\n 2019-11-04T06:21:54.607Z\\n PKmRTy40QxqIUUWy325SCT/****\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin\\n \\n B6E77674-09C4-4647-BF85-59CB72A72E4B\\n true\\n","errorExample":""}]', - 'title' => '生成升级包文件URL', - 'summary' => '生成升级包文件上传到OSS的URL及详细信息。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'invalid instance id', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 10,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"PageToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"ResultData\\": {\\n \\"Data\\": [\\n {\\n \\"Msg\\": \\"播报成功。\\",\\n \\"StartTime\\": 1663210172207,\\n \\"ProductKey\\": \\"sd34****\\",\\n \\"DeviceName\\": \\"device1\\",\\n \\"ShareTaskCode\\": \\"ebed9280_ba25_48df_80c2_****\\",\\n \\"SpeechId\\": \\"42000011392021112380****\\",\\n \\"Code\\": 0,\\n \\"Speechs\\": \\"[\\\\\\"ANC\\\\\\",\\\\\\"CDF\\\\\\"]\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1\\n 10\\n 100\\n TGlzdFJlc291cm****\\n \\n \\n 播报成功。\\n [\\"ANC\\",\\"CDF\\"]\\n ebed9280_ba25_48df_80c2_****\\n 1663210172207\\n 0\\n sd34****\\n 42000011392021112380****\\n device1\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'PageQuerySpeechBroadcastHour', + 'summary' => '调用该接口分页查询千里传音中共享播报的小时数据。', 'description' => '## 使用说明'."\n" - .'该接口与其他接口结合使用完成升级包创建。创建升级包的步骤:'."\n" - ."\n" - .'1. 调用本接口生成升级包文件上传到对象存储(OSS)的信息。'."\n" - .'本接口的返回参数包含:'."\n" - .' - 调用OSS [PostObject](~~31988~~)上传升级包文件的请求参数:**Host**、**Key**、**OSSAccessKeyId**、**Signature**和**Policy**。'."\n" - .' - 调用[CreateOTAFirmware](~~147311~~)创建升级包的请求参数**FirmwareUrl**。'."\n" - ."\n" - .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传升级包文件。上传文件的代码示例,请参见下文“返回参数的用途”章节。'."\n" ."\n" - .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传升级包。上传的升级包文件大小不能超过1,000 MB。'."\n" - .' >'."\n" - ."\n\n" - .'3. 升级包上传完成后,请在60分钟内,调用物联网平台API [CreateOTAFirmware](~~147311~~)接口创建升级包。'."\n" - .' 如果上传了升级包,但未调用CreateOTAFirmware接口创建升级包,上传的文件将被系统定期自动清理。'."\n" + .'调用该接口可查询的共享播报数据的时间会延迟6小时。例如早上07:15分播报数据,需要延迟6个小时后,即在13:15后才能查询到07:15分播报的数据。'."\n" ."\n\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => '## 返回参数的用途'."\n" - ."\n" - .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的升级包文件上传到对象存储(OSS)。'."\n" - ."\n" - .'以下是向对象存储OSS上传文件的Java代码示例。示例代码详细内容,请参见[表单上传](~~84788~~)。'."\n" - ."\n" - .'- 在pom.xml中添加以下依赖。'."\n" - .'```'."\n" - .''."\n" - .' org.apache.httpcomponents'."\n" - .' httpclient'."\n" - .' 4.5.3'."\n" - .''."\n" - ."\n" - .''."\n" - .' org.apache.httpcomponents'."\n" - .' httpmime'."\n" - .' 4.5.10'."\n" - .''."\n" - .'```'."\n" ."\n" - .'- 上传升级包文件的代码如下。'."\n" - .'```'."\n" - .'public static boolean postObject(String key,'."\n" - .' String host,'."\n" - .' String policy,'."\n" - .' String ossAccessKeyId,'."\n" - .' String signature,'."\n" - .' String data) throws IOException {'."\n" - .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" - .' HttpPost uploadFile = new HttpPost(host);'."\n" - ."\n" - .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" - .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("OSSAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" - .' builder.addBinaryBody("file", data.getBytes());'."\n" - ."\n" - .' HttpEntity multipart = builder.build();'."\n" - .' uploadFile.setEntity(multipart);'."\n" - .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" - ."\n" - .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" - .' return true;'."\n" - .' }'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" ."\n" - .' return false;'."\n" - .'}'."\n" - .'```', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'GenerateDeviceNameListURL' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PrintByTemplate' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'ParamsJsonString', + 'in' => 'formData', + 'schema' => ['description' => '打印参数,您可以在寄雁传书服务控制台获取打印参数的模板,然后在模板中填入本次需要动态打印的内容。', 'type' => 'string', 'required' => false, 'example' => '{ "orderTable": [ { "number": "1", "price": "33.00", "name": "糖醋排骨" } ], "orderTime": "2021-01-25 10:20:00", "address": "地址:浙江省杭州市西湖区阿里云飞天园区", "phone": "13********", "price": "? 74.00", "distributionFee": "5.00", "shopName": "XX食品商店", "title": "XX外卖单", "status": "--已在线支付--" }'], + ], + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => '4de2c367****8c585e5992**'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。'."\n" + ."\n" + .'无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'TemplateBizCode', + 'in' => 'formData', + 'schema' => ['description' => '模板标识,您可以在寄雁传书服务的控制台获取模板标识。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '产品的唯一标识。'."\n" + ."\n" + .'> 如果传入**ProductKey**,则必须同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'HistoryPrintTopic', + 'in' => 'formData', + 'schema' => ['description' => '是否下发历史的Topic给打印设备。'."\n" + ."\n" + .'- false(默认):下发设备的Topic格式为**/ext/rrpc/+/{pk}/{dn}/user/print**'."\n" + .'- true:下发设备的Topic格式为**/ext/rrpc/+/{pk}/{dn}/print**'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -38691,420 +25947,220 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.printservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'print service not open'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-*** '], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的文件上传信息。详情见以下参数信息。', + 'description' => '打印结果。', 'type' => 'object', 'properties' => [ - 'Key' => [ - 'description' => '调用OSS API PostObject上传对象(即文件)的名称,包含OSS对象的完整路径。', - 'type' => 'string', - 'example' => 'ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv', - ], - 'Signature' => [ - 'description' => '根据**AccessKeySecret**和**Policy**计算出的签名信息。调用OSS API时,OSS验证该签名信息,从而确认Post请求的合法性。', - 'type' => 'string', - 'example' => 'v6lViO4FBvfquajQjg20K5hK****', - ], - 'Host' => [ - 'description' => 'OSS的接入域名。', - 'type' => 'string', - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com', - ], - 'FileUrl' => [ - 'description' => '文件的URL,即文件在对象存储(OSS)上的存储地址。'."\n" - ."\n" - .'设备列表文件上传成功后,使用此参数调用[CreateOTAStaticUpgradeJob](~~147496~~)接口创建静态批量升级批次。', - 'type' => 'string', - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv', - ], - 'Policy' => [ - 'description' => 'OSS通过该参数验证请求表单域的合法性。', - 'type' => 'string', - 'example' => 'eyJleHBpcmF****', - ], - 'ObjectStorage' => [ - 'description' => '对象存储类型。默认为OSS。', - 'type' => 'string', - 'example' => 'OSS', - ], - 'UtcCreate' => [ - 'description' => '生成文件上传URL的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T06:21:54.607Z', - ], - 'AccessKeyId' => [ - 'description' => 'OSS Bucket拥有者的AccessKeyId。'."\n" - .'该OSS Bucket将存储文件。', - 'type' => 'string', - 'example' => 'cS8uRRy54Rsz****', - ], + 'RetryCount' => ['description' => '实际重试次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Success' => ['description' => '是否打印成功。'."\n" + ."\n" + .'- **true**:打印成功。'."\n" + ."\n" + .'- **false**:打印失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceErrorMessage' => ['description' => '打印设备返回的错误详情。', 'type' => 'string', 'example' => 'no paper'], + 'MaxRetryCount' => ['description' => '最多重试次数,固定取值为2,最多重试2次。'."\n" + ."\n" + .'打印指令下发到设备后,如果设备回复失败或者超时,服务器将重新下发打印指令。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'DeviceErrorCode' => ['description' => '打印设备返回的错误码。'."\n" + ."\n" + .'- 2:缺纸'."\n" + .'- 3:卡纸', 'type' => 'string', 'example' => '2'], + 'Id' => ['description' => '打印的ID。', 'type' => 'string', 'example' => 'NyWh5lw3*****RfL9LJUivhOhQV*****'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Key\\": \\"ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\",\\n \\"Signature\\": \\"v6lViO4FBvfquajQjg20K5hK****\\",\\n \\"Host\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\",\\n \\"FileUrl\\": \\"https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\",\\n \\"Policy\\": \\"eyJleHBpcmF****\\",\\n \\"ObjectStorage\\": \\"OSS\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\",\\n \\"AccessKeyId\\": \\"cS8uRRy54Rsz****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n eyJleHBpcmF****\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\n 2019-11-04T06:21:54.607Z\\n cS8uRRy54Rsz****\\n v6lViO4FBvfquajQjg20K5hK****\\n OSS\\n https://iotx-ota.oss-cn-shanghai.aliyuncs.com\\n ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.csv\\n \\n 74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\n true\\n","errorExample":""}]', - 'title' => '生成设备文件上传到OSS的详细信息', - 'summary' => '生成设备列表文件上传到OSS的URL及详细信息。', - 'description' => '## 设备列表文件要求'."\n" - ."\n" - .'- 设备列表文件包含设备DeviceName,以换行分隔,每行一个DeviceName。支持CSV格式,文件大小不能超过5 MB。'."\n" - ."\n" - .'- 单个设备列表文件最多可包含升级包对应产品下的10,000个设备,否则使用该文件创建静态升级批次时将报错。'."\n" - ."\n" - .'## 使用说明'."\n" - .'该接口与其他接口结合使用完成设备列表文件上传。上传设备列表文件的步骤:'."\n" - ."\n" - .'1. 调用本接口生成设备列表文件上传到对象存储(OSS)的信息。'."\n" - .'本接口的返回参数包含:'."\n" - .' 调用OSS [PostObject](~~31988~~)上传设备列表文件的请求参数:**Key**、**AccessKeyId**、**Signature**和**Policy**。'."\n" - ."\n" - .'2. 请在本接口返回结果后的1分钟之内,使用[OSS SDK](~~52834~~)调用[PostObject](~~31988~~)接口上传设备列表文件。上传文件的代码示例,请参见下文返回参数的用途章节。'."\n" - ."\n" - .' > 本接口返回的参数信息有效期为1分钟,请在1分钟内上传设备列表文件。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.printservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"print service not open\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\\\t\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RetryCount\\": 0,\\n \\"Success\\": true,\\n \\"DeviceErrorMessage\\": \\"no paper\\",\\n \\"MaxRetryCount\\": 2,\\n \\"DeviceErrorCode\\": \\"2\\",\\n \\"Id\\": \\"NyWh5lw3*****RfL9LJUivhOhQV*****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\t\\n\\n 2\\n 0\\n NyWh5lw3*****RfL9LJUivhOhQV*****\\n 2\\n no paper\\n true\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'PrintByTemplate', + 'summary' => '调用该接口根据寄雁传书服务控制台创建的小票打印模板完成小票打印。', + 'description' => '## 限制说明'."\n" ."\n" - .'3. 设备列表上传完成后,请在60分钟内,调用物联网平台API [CreateOTAStaticUpgradeJob](~~147496~~)创建静态升级批次。'."\n" - .' 如果上传了设备列表,但未调用CreateOTAStaticUpgradeJob创建静态升级批次,上传的文件将被系统定期自动清理。'."\n" + .'调用该接口打印小票时,必须已经在寄雁传书控制台创建小票打印模板,否则将调用失败。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => '## 返回参数的用途'."\n" - ."\n" - .'调用OSS [PostObject](~~31988~~)接口时,使用本接口的返回参数值作为请求参数值,将您编辑好的文件上传到对象存储(OSS)。'."\n" - ."\n" - .'以下是向对象存储OSS上传文件的Java代码示例:'."\n" - ."\n" - .'- 在pom.xml中添加以下依赖:'."\n" - ."\n" - .'```'."\n" - .' org.apache.httpcomponents'."\n" - .' httpclient'."\n" - .' 4.5.3'."\n" - .''."\n" - ."\n" - .''."\n" - .' org.apache.httpcomponents'."\n" - .' httpmime'."\n" - .' 4.5.10'."\n" - .''."\n" - .'```'."\n" - ."\n" - .'- 上传文件的代码如下:'."\n" - ."\n" - .'```public static boolean postObject(String key,'."\n" - .' String host,'."\n" - .' String policy,'."\n" - .' String ossAccessKeyId,'."\n" - .' String signature,'."\n" - .' String data) throws IOException {'."\n" - .' CloseableHttpClient httpClient = HttpClients.createDefault();'."\n" - .' HttpPost uploadFile = new HttpPost(host);'."\n" - ."\n" - .' MultipartEntityBuilder builder = MultipartEntityBuilder.create();'."\n" - .' builder.addTextBody("key", key, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("policy", policy, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("ossAccessKeyId", ossAccessKeyId, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("signature", signature, ContentType.TEXT_PLAIN);'."\n" - .' builder.addTextBody("success_action_status", "200", ContentType.TEXT_PLAIN);'."\n" - .' builder.addBinaryBody("file", data.getBytes());'."\n" - ."\n" - .' HttpEntity multipart = builder.build();'."\n" - .' uploadFile.setEntity(multipart);'."\n" - .' CloseableHttpResponse response = httpClient.execute(uploadFile);'."\n" - ."\n" - .' if (response.getStatusLine().getStatusCode() == 200) {'."\n" - .' return true;'."\n" - .' }'."\n" - ."\n" - .' return false;'."\n" - .'}'."\n" - .'```', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateOTAFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PrintByTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'Pub' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'FirmwareName', + 'name' => 'CorrelationData', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包名称,需在阿里云账号下唯一,创建后不可修改。支持中文、英文字母、日文、数字、短划线(-)、下划线(_)和半角圆括号(()),必须以中文、英文、日文或数字开头,长度限制为1~40个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'Firmware2', - ], + 'schema' => ['description' => '使用MQTT 5.0版本通信协议时,请求和响应模式中的相关数据,用户可自定义。'."\n" + ."\n" + .'消息接收方可根据相关数据处理请求。'."\n" + ."\n" + .'> 您需要将相关数据转换为二进制数据,并进行Base64编码,从而生成String类型数据。', 'type' => 'string', 'required' => false, 'example' => 'aGVsbG8****'], ], [ - 'name' => 'DestVersion', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '当前OTA升级包的版本号,仅支持英文字母、数字、半角句号(.)、短划线(-)和下划线(_)。长度限制为1~64个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '2.0.0', - ], + 'schema' => ['description' => '要接收消息的设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY****'], ], [ - 'name' => 'FirmwareUrl', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用[GenerateOTAUploadURL](~~147310~~)生成升级包文件的URL。'."\n" - ."\n" - .'>仅当OTA升级包中添加一个文件时,才可传入此参数,且必须传入。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin', - ], + 'schema' => ['description' => 'MQTT云网关设备的名称。'."\n" + ."\n" + .'>'."\n" + .'仅当需要向指定MQTT云网关设备发布消息时,需要传入该参数。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], [ - 'name' => 'FirmwareSign', + 'name' => 'Qos', 'in' => 'query', 'schema' => [ - 'description' => 'OTA升级包文件的签名值。使用**SignMethod**对升级包文件内容加签计算得出的值。'."\n" + 'description' => '指定消息的发送方式。取值:'."\n" ."\n" - .'> 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '93230c3bde425a9d7984a594ac55****', - ], - ], - [ - 'name' => 'SignMethod', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包签名方法。目前仅支持取值为**MD5**(MD5签名)。'."\n" + .'- **0**:最多发送一次。'."\n" + .'- **1**:最少发送一次。如果QoS=1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。'."\n" ."\n" - .'不传入此参数,默认为**MD5**。', - 'type' => 'string', - 'required' => false, - 'example' => 'MD5', - ], - ], - [ - 'name' => 'FirmwareSize', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包文件的大小,单位:字节。'."\n" + .'如果不传入此参数,则使用默认值**0**。'."\n" ."\n" - .'> 仅当OTA升级包中添加一个文件时,才可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。'."\n" - .'> ', + .'通信消息的更多使用说明,请参见[使用限制的连接通信](~~30527~~)。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, - 'example' => '900', + 'example' => '0', + 'default' => '0', + 'enum' => ['0', '1'], ], ], [ - 'name' => 'ProductKey', + 'name' => 'ContentType', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1uctKe****', - ], + 'schema' => ['description' => '使用MQTT 5.0版本通信协议时,发布消息的内容类型。'."\n" + ."\n" + .'典型应用于存放MIME类型文件,例如,文本文件类型:**text**、**plain**。', 'type' => 'string', 'required' => false, 'example' => 'text'], ], [ - 'name' => 'FirmwareDesc', + 'name' => 'PayloadFormatIndicator', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包描述。长度不可超过100个字符。一个中文汉字算一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'OTA function updated', - ], + 'schema' => ['description' => '使用MQTT 5.0版本通信协议时,发布消息的有效载荷标识,可取值:'."\n" + .'- **0**:消息是未确定的字节数据。'."\n" + .'- **1**:消息的有效载荷是UTF-8编码的字符数据。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ - 'name' => 'Type', + 'name' => 'Retained', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包类型。可选:'."\n" - ."\n" - .'- **0**:整包升级包,您上传的升级包文件包含完整的升级包,将推送整包升级包给设备进行升级。'."\n" - .'- **1**:差分升级包,您上传的升级包文件仅包含新版本升级包与之前版本的差异部分,仅推送差异部分给设备进行升级。'."\n" - ."\n" - .'不传入此参数,则默认值为**0**。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['type' => 'boolean', 'required' => false, 'description' => ''], ], [ - 'name' => 'SrcVersion', + 'name' => 'MessageExpiryInterval', 'in' => 'query', - 'schema' => [ - 'description' => '待升级OTA模块版本号,即待升级设备的当前OTA模块版本号。'."\n" - ."\n" - .'可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" - ."\n" - .'> - **Type**为**1**(差分升级包)时,必须传入该参数,且取值不能与当前升级包版本(**DestVersion**)相同。'."\n" - .'- **Type**为**0**(整包升级包)时,可不传入该参数。', - 'type' => 'string', - 'required' => false, - 'example' => '1.0.0', - ], + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => false, 'description' => ''], ], [ - 'name' => 'ModuleName', + 'name' => 'ResponseTopic', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块名称。OTA模块是同产品下设备的不同可升级模块。'."\n" - ."\n" - .'> - 不传入该参数,则使用default模块,表示整个设备的固件。'."\n" - .'- 可调用[CreateOTAModule](~~186066~~)创建自定义OTA模块,调用[ListOTAModuleByProduct](~~186532~~)查询产品下已创建的OTA模块。', - 'type' => 'string', - 'required' => false, - 'example' => 'WifiConfigModify', - ], + 'schema' => ['description' => '使用MQTT 5.0版本通信协议时,请求和响应模式中的响应主题,即通信的Topic。更多消息,请参见[MQTT 5.0协议说明](~~30540~~)。', 'type' => 'string', 'required' => false, 'example' => '/a1Q5XoY****/device1/user/update'], ], [ - 'name' => 'NeedToVerify', + 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'description' => '是否需要在创建批量升级任务前通过升级包验证。'."\n" - ."\n" - .'- **true**(默认):需要'."\n" - ."\n" - .'- **false**:不需要'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - 'default' => 'true', - ], + 'schema' => ['description' => '要接收消息的设备的自定义Topic。'."\n" + ."\n" + .'- 对于开源MQTT托管形态设备和MQTT云网关设备,自定义Topic为设备的原始自定义Topic。详细内容,请参见[Topic说明](~~433806~~)。'."\n" + .'- 对于非开源MQTT托管形态设备和非MQTT云网关设备,自定义Topic的格式支持为:'."\n" + ."\n" + .' - `/${productKey}/${deviceName}/user/${TopicShortName}`:发送消息到指定**ProductKey**的指定设备。'."\n" + .' - `/broadcast/${productKey}/${自定义字段}`:发送消息到指定**ProductKey**下已订阅该Topic的在线设备。`${productKey}`是要接收广播消息的具体产品的**ProductKey**;`${自定义字段}`为您自定义的任意字段。'."\n" + ."\n" + .'> '."\n" + .'- Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" + .'- 调用该接口前,设备必须已订阅该Topic且未取消,否则无法接收本次发布的消息。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'查询自定义Topic方法:'."\n" + ."\n" + .'- 调用[QueryProductTopic](~~69647~~)接口,查询产品下的自定义Topic。'."\n" + .'- 在物联网平台控制台**产品详情**页面的**Topic类列表**页签下,查询产品下的自定义Topic。'."\n" + .'- 在物联网平台控制台**设备详情**页面的**Topic列表**页签下,查看设备已订阅的自定义Topic。', 'type' => 'string', 'required' => true, 'example' => '/a1Q5XoY****/device1/user/get'], ], [ - 'name' => 'Udi', - 'in' => 'query', - 'schema' => [ - 'description' => '推送给设备的自定义信息。不限制文本内容格式,长度不超过4096个字符。'."\n" - ."\n" - .'添加该升级包完成,并创建升级任务后,物联网平台向设备推送升级通知时,会将该自定义信息下发给设备。', - 'type' => 'string', - 'required' => false, - 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}', - ], + 'name' => 'MessageContent', + 'in' => 'formData', + 'schema' => ['description' => '要发送的消息主体。您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', 'type' => 'string', 'required' => true, 'example' => 'eyJ0ZXN0IjoidGFzayBwdWIgYnJvYWRjYXN0In0='], ], [ - 'name' => 'MultiFiles', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'OTA升级包文件列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'FileMd5' => [ - 'description' => 'OTA升级包文件的MD5值。'."\n" - ."\n" - .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '93230c3bde425a9d7984a594ac56***', - ], - 'Size' => [ - 'description' => 'OTA升级包文件的大小,单位:字节。'."\n" - ."\n" - .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的大小。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '200', - ], - 'Url' => [ - 'description' => 'OTA升级包文件的URL,即升级包文件在对象存储(OSS)上的存储地址。您可调用[GenerateOTAUploadURL](~~147310~~)为每个升级包文件生成文件URL。'."\n" - ."\n" - .'>OTA升级包中添加多个升级包文件时,必须传入此参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/bcd6142594d0183a16d825ad8225****/A6B3400B70CA4D6D872160D1A91A****.bin', - ], - 'SignValue' => [ - 'description' => 'OTA升级包文件的签名值。使用**SignMethod**对升级包文件内容加签计算得出的值。'."\n" - ."\n" - .'>OTA升级包中添加多个升级包文件时,可传入此参数。若不传入,则采用对象存储(OSS)中升级包文件的MD5值作为升级包签名值。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '93230c3bde425a9d7984a594ac45****', - ], - 'Name' => [ - 'description' => 'OTA升级包文件名称,长度限制为1~32个字符。支持最多添加20个文件名称,且多个升级包文件的名称不能重复。'."\n" - ."\n\n" - .'> OTA升级包中添加多个升级包文件时,必须传入此参数。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'Firmware1', - ], + 'name' => 'TopicAlias', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'UserProp', + 'in' => 'query', + 'style' => 'repeatList', + 'schema' => [ + 'description' => '使用MQTT 5.0版本通信协议时,用户自定义属性列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '使用MQTT 5.0版本通信协议时,用户自定义属性的Key。'."\n" + ."\n" + .'需要与**UserProp.N.Value**成对使用。', 'type' => 'string', 'required' => false, 'example' => 'key1'], + 'Value' => ['description' => '使用MQTT 5.0版本通信协议时,用户自定义属性的Value。'."\n" + ."\n" + .'需要与**UserProp.N.Key**成对使用。', 'type' => 'string', 'required' => false, 'example' => 'value1'], ], 'required' => false, + 'description' => '', ], 'required' => false, - 'maxItems' => 21, + 'maxItems' => 20, ], ], ], @@ -39113,155 +26169,181 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功,表示OTA升级包创建成功。'."\n" - .'- **false**:调用失败,表示OTA升级包创建失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的升级包信息。更多信息,请参见**Data**下参数描述。', - 'type' => 'object', - 'properties' => [ - 'FirmwareId' => [ - 'description' => 'OTA升级包ID,物联网平台为升级包颁发的唯一标识符。', - 'type' => 'string', - 'example' => 's8SSHiKjpBfrM3BSN0z803****', - ], - 'UtcCreate' => [ - 'description' => 'OTA升级包的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T06:21:54.607Z', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'MessageId' => ['description' => '成功发送消息后,云端生成的消息ID,用于标识该消息。', 'type' => 'string', 'example' => '889455942124347329'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"FirmwareId\\": \\"s8SSHiKjpBfrM3BSN0z803****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:21:54.607Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n s8SSHiKjpBfrM3BSN0z803****\\r\\n 2019-11-04T06:21:54.607Z\\r\\n \\r\\n E4BD5A12-7C1D-4712-A7D5-B2432331165E\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateOTAFirmware', - 'summary' => '生成OTA升级包文件的URL后,调用该接口创建设备的OTA升级包。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"MessageId\\": \\"889455942124347329\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n 889455942124347329\\r\\n","errorExample":""}]', + 'title' => 'Pub', + 'summary' => '调用该接口通过自定义Topic向设备发布消息,支持向指定产品下订阅了指定自定义Topic的在线设备发送广播消息。', 'description' => '## 使用说明'."\n" - .'在调用此接口创建升级包前,已调用[GenerateOTAUploadURL](~~147310~~)生成升级包上传信息,并已调用OSS [PostObject](~~31988~~)接口上传了升级包文件。'."\n" + .'发送广播消息时:'."\n" + .'- 相关Topic是在设备开发时编码定义的,无需控制台创建。'."\n" + .'- 一个Topic默认最多可被1,000个设备订阅。若后续需要新增更多设备订阅自定义Topic的广播消息,可使用MQTT 5.0版本通信协议进行通信,通过设置自定义Topic支持保留消息广播和设置自定义Topic消息为保留消息来实现。使用说明,请参见[UpdateTopicConfig](~~601689~~)。'."\n" ."\n" .'## 使用限制'."\n" - .'单个阿里云账号下最多可有500个升级包。'."\n" + .'该接口不支持下发设置属性和调用服务的指令。'."\n" + .'- 设置属性,请使用[SetDeviceProperty](~~69579~~)或[SetDevicesProperty](~~96243~~)。'."\n" + .'- 调用服务,请使用[InvokeThingService](~~69584~~)或[InvokeThingsService](~~96242~~)。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1600。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ModifyOTAFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:Pub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'PubBroadcast' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1uctKe****', - ], + 'schema' => ['description' => '要发送广播消息的产品的**ProductKey**。'."\n" + ."\n" + .'**ProductKey**是物联网平台为产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'aldeji3*****'], ], [ - 'name' => 'FirmwareId', + 'name' => 'TopicFullName', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" - ."\n" - .'OTA升级包ID是调用接口[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" - ."\n" - .'您也可以调用接口[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 's8SSHiKjpBfrM3BSN0z803****', - ], + 'schema' => ['description' => '可选参数:'."\n" + ."\n" + .'- 不赋值,表示全量在线设备广播,推送消息到指定**ProductKey**的全量在线设备。设备端收到的广播Topic格式为`/sys/${productKey}/${deviceName}/broadcast/request/${MessageId}`,其中**MessageId**由物联网平台生成。'."\n" + .'- 赋值,表示指定Topic订阅广播,推送消息到指定**ProductKey**的已订阅广播Topic的在线设备。传入要接收广播消息的Topic全称,格式为:`/broadcast/${productKey}/自定义字段`。其中,**${productKey}**是要接收广播消息的具体产品**ProductKey**;自定义字段中您可以指定任意字段。'."\n" + ."\n" + .'> - 广播Topic是在设备开发时编码定义的,无需控制台创建。'."\n" + .'- 一个广播Topic最多可被1,000个设备订阅。如果您的设备超过数量限制,您可以对设备进行分组。例如,如果您有5,000个设备,您可以将设备按每组1,000个,而分成5组。您需要分5次调用广播Topic,自定义字段分别设置为group1/2/3/4/5,然后让每组设备分别订阅各自分组的广播Topic。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'docRequired' => false, 'example' => '/broadcast/UPqSxj2vXXX/xxx'], ], [ - 'name' => 'FirmwareDesc', + 'name' => 'MessageContent', 'in' => 'query', + 'schema' => ['description' => '要发送的消息主体,最大报文64 KB。'."\n" + ."\n" + .'您需要将消息原文转换成二进制数据,并进行Base64编码,从而生成消息主体。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'aGVsbG93b3JsZA'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => 'OTA升级包描述。长度不可超过100个字符。一个中文汉字算一个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'OTA function updated', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'MessageId' => ['description' => '成功发送消息后,云端生成的消息ID,用于标识该消息。', 'type' => 'integer', 'format' => 'int64', 'example' => '1234291569964771840'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"MessageId\\": 1234291569964771800,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n 1234291569964771840\\r\\n true\\r\\n ","errorExample":""}]', + 'title' => '向所有设备发布广播消息', + 'summary' => '向指定产品所有设备,或向订阅了指定Topic的所有设备发布广播消息。', + 'description' => '## 使用说明'."\n" + .'您可通过设置**请求参数**中**TopicFullName**值决定广播消息的对象:指定产品下所有在线设备或订阅了指定Topic的在线设备。广播Topic使用说明,请参见下文**TopicFullName**描述。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'- 指定Topic订阅广播,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + ."\n" + .'- 全量在线设备广播,单个阿里云账号调用该接口的每分钟内请求数(QPM)最大限制为1。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-0pp1n8t****', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PubBroadcast', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'PublishScript' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'FirmwareName', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包名称,需在阿里云账号下唯一。支持中文、英文字母、日文、数字、短划线(-)、下划线(_)和半角圆括号(()),必须以中文、英文、日文或数字开头,长度限制为1~40个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'Firmwaretest', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'FirmwareUdi', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '推送给设备的自定义信息。不限制文本内容格式,长度不超过4096个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999', 'minimum' => '0', 'example' => '1001'], ], ], 'responses' => [ @@ -39269,132 +26351,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.ota.FirmwareNotFound', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'The specified firmware does not exist.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'SyntaxErrorMsg' => ['description' => '发布解析器脚本失败时,返回的脚本语法错误信息。', 'type' => 'string', 'example' => 'script doesn\'t contains transmit function'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.firmware.AlreadyExistedFirmwareName', - 'errorMessage' => 'The OTA update package already exists.', - ], - [ - 'errorCode' => 'iot.ota.FirmwareNotFound', - 'errorMessage' => 'The specified firmware does not exist.', - ], - [ - 'errorCode' => 'iot.ota.FirmwareAndProductKeyMismatch', - 'errorMessage' => 'The OTA update package is not consistent with the ProductKey.', - ], - [ - 'errorCode' => 'iot.ota.TenantIdMisMatch', - 'errorMessage' => 'The tenantId is invalid.', - ], - [ - 'errorCode' => 'iot.firmware.FirmwareUdiExceedLimit', - 'errorMessage' => 'The UDI of the firmware is longer than the limit.', - ], - [ - 'errorCode' => 'iot.firmware.FirmwareDescExceedLimit', - 'errorMessage' => 'The description of the firmware is longer than the limit.', - ], - [ - 'errorCode' => 'iot.firmware.IncorrectFormattedFirmwareName', - 'errorMessage' => 'The format of the OTA update package name is invalid.', - ], - [ - 'errorCode' => 'iot.ota.InstanceIdMisMatch', - 'errorMessage' => 'The instanceId is invalid.', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.scriptSyntaxError', 'errorMessage' => 'Script Syntax Error', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.EmptyScript', 'errorMessage' => 'The script is empty.', 'description' => '脚本配置为空。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.ota.FirmwareNotFound\\",\\n \\"ErrorMessage\\": \\"The specified firmware does not exist.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => 'ModifyOTAFirmware', - 'summary' => '调用该接口修改升级包信息,包括升级包名称、升级包描述和自定义信息。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"SyntaxErrorMsg\\": \\"script doesn\'t contains transmit function\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'PublishScript', + 'summary' => '调用该接口发布指定解析器中的脚本。', + 'description' => '## 使用说明'."\n" + .'已调用接口[SaveScript](~~433523~~)编辑并保存解析器的脚本草稿。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteOTAFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PublishScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'PublishStudioApp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'FirmwareId', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" - ."\n" - .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。'."\n", - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 's8SSHiKjpBfrM3BSN0z803****', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12*******'], + ], + [ + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '应用发布描述。', 'type' => 'string', 'required' => false, 'example' => '第一次发布'], + ], + [ + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123******'], ], ], 'responses' => [ @@ -39402,122 +26444,78 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9B7BF858-7686-496E-B8B0-BF9E5D7F86CE', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9B7BF858-7686-496E-B8B0-BF9E5D7F86CE\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9B7BF858-7686-496E-B8B0-BF9E5D7F86CE\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除指定固件', - 'summary' => '调用该接口删除指定OTA升级包。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n ","errorExample":""}]', + 'title' => 'PublishStudioApp', + 'summary' => '调用该接口发布应用。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。 ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ListOTAFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'PublishThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包所属产品的**ProductKey**。'."\n" - ."\n" - .'传入该参数,则查询指定产品下的OTA升级包列表;不传入此参数,则返回当前阿里云账号下的所有OTA升级包列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'a19mzPZ****', - ], + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的固件数量。最大限制为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '产品的ProductKey。'."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'ModelVersion', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '设置物模型的版本号。'."\n" + .'版本号支持英文大、小字母、数字和英文句号(.),长度范围不超过16个字符。', 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], ], [ - 'name' => 'DestVersion', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包版本号。传入该参数,则查询版本号为指定版本号的OTA升级包。', - 'type' => 'string', - 'required' => false, - 'example' => '4.0.0', - ], + 'schema' => ['description' => '物模型版本的描述。', 'type' => 'string', 'required' => false, 'example' => '第二版'], ], ], 'responses' => [ @@ -39525,219 +26523,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的固件数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => 'OTA升级包数量总计。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'FirmwareInfo' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SimpleFirmwareInfo' => [ - 'description' => '调用成功时,返回的OTA升级包列表。详情参见以下SimpleFirmwareInfo。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ModuleName' => [ - 'description' => 'OTA升级包的模块名称。', - 'type' => 'string', - 'example' => 'module1234', - ], - 'Type' => [ - 'description' => 'OTA升级包类型。'."\n" - ."\n" - .'- **0**:整包固件。'."\n" - .'- **1**:差分固件。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Status' => [ - 'description' => 'OTA升级包状态。'."\n" - ."\n" - .'- **0**:未验证。'."\n" - .'- **1**:已验证。'."\n" - .'- **2**:验证中。'."\n" - .'- **3**:验证失败。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ProductName' => [ - 'description' => 'OTA升级包所属产品的名称。', - 'type' => 'string', - 'example' => 'MyProduct', - ], - 'UtcCreate' => [ - 'description' => 'OTA升级包创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:42:22.000Z', - ], - 'FirmwareSize' => [ - 'description' => 'OTA升级包大小,单位:字节。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '924', - ], - 'FirmwareName' => [ - 'description' => 'OTA升级包名称。', - 'type' => 'string', - 'example' => 't3q5rkNm', - ], - 'FirmwareSign' => [ - 'description' => 'OTA升级包内容的签名值。', - 'type' => 'string', - 'example' => '3d04ab6462633508606e5f3daac8****', - ], - 'ProductKey' => [ - 'description' => 'OTA升级包所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a19mzPZ****', - ], - 'UtcModified' => [ - 'description' => 'OTA升级包最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:42:22.000Z', - ], - 'SrcVersion' => [ - 'description' => '待升OTA升级包版本号。'."\n" - ."\n" - .'> 整包OTA升级包返回的该参数为空。', - 'type' => 'string', - 'example' => 'V1.0.0', - ], - 'FirmwareDesc' => [ - 'description' => 'OTA升级包描述信息。', - 'type' => 'string', - 'example' => 'firmwareDesc', - ], - 'SignMethod' => [ - 'description' => 'OTA升级包签名方式。', - 'type' => 'string', - 'example' => 'MD5', - ], - 'DestVersion' => [ - 'description' => '当前OTA升级包版本号。', - 'type' => 'string', - 'example' => '4.0.0', - ], - 'FirmwareId' => [ - 'description' => 'OTA升级包ID,OTA升级包的唯一标识符。', - 'type' => 'string', - 'example' => 'UfuxnwygsuSkVE0VCN****0100', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"FirmwareInfo\\": {\\n \\"SimpleFirmwareInfo\\": [\\n {\\n \\"ModuleName\\": \\"module1234\\",\\n \\"Type\\": 0,\\n \\"Status\\": 0,\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"FirmwareSize\\": 924,\\n \\"FirmwareName\\": \\"t3q5rkNm\\",\\n \\"FirmwareSign\\": \\"3d04ab6462633508606e5f3daac8****\\",\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"UtcModified\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"SrcVersion\\": \\"V1.0.0\\",\\n \\"FirmwareDesc\\": \\"firmwareDesc\\",\\n \\"DestVersion\\": \\"4.0.0\\",\\n \\"SignMethod\\": \\"MD5\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n10\\nA01829CE-75A1-4920-B775-921146A1AB79\\n\\n \\n 1.0.0\\n 3d04ab6462633508606e5f3daac8****\\n a19mzPZ****\\n 0\\n 2019-12-28T02:42:22.000Z\\n MD5\\n 2019-12-28T02:42:22.000Z\\n 924\\n 0\\n UfuxnwygsuSkVE0VCN****0100\\n firmwareDesc\\n 4.0.0\\n MyProduct\\n t3q5rkNm\\n module1234\\n \\n\\n1\\ntrue\\n1\\n","errorExample":""}]', - 'title' => '查询固件列表', - 'summary' => '调用该接口查询OTA升级包列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n5252CC6E-9E4B-4DB1-B1D8-7EEA190A5B3E\\ntrue\\n","errorExample":""}]', + 'title' => '发布指定产品的物模型', + 'summary' => '调用该接口发布指定产品的物模型。', + 'description' => '## 使用说明'."\n" + .'如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口发布物模型。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryOTAFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PublishThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'PublishThingModelAsync' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'FirmwareId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包ID,升级包的唯一标识符。'."\n" - ."\n" - .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 's8SSHiKjpBfrM3BSN0z803****', - ], + 'schema' => ['type' => 'string', 'required' => false], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'ThingModelVersion', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], ], 'responses' => [ @@ -39745,377 +26599,254 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FirmwareInfo' => [ - 'description' => '调用成功时,返回的升级包信息。详情参见以下**FirmwareInfo**包含的参数。', - 'type' => 'object', - 'properties' => [ - 'ModuleName' => [ - 'description' => 'OTA升级包的模块名称。'."\n" - ."\n" - .'升级包模块用于区分同产品下设备的不同模块的升级。更多信息,请参见[添加升级包中的自定义OTA模块](~~202664~~)。', - 'type' => 'string', - 'example' => 'WifiConfigModify', - ], - 'Type' => [ - 'description' => 'OTA升级包类型。'."\n" - ."\n" - .'- **0**:整包升级包,您上传的升级包文件包含完整的升级包,将推送整包升级包给设备进行升级。'."\n" - .'- **1**:差分升级包,您上传的升级包文件仅包含新版本升级包与之前版本的差异部分,仅推送差异部分给设备进行升级。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Status' => [ - 'description' => 'OTA升级包状态。'."\n" - ."\n" - .'- **-1**:不需要验证。'."\n" - .'- **0**:未验证。'."\n" - .'- **1**:已验证。'."\n" - .'- **2**:验证中。'."\n" - .'- **3**:验证失败。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'ProductName' => [ - 'description' => 'OTA升级包所属产品的名称。', - 'type' => 'string', - 'example' => 'MyProduct', - ], - 'FirmwareUrl' => [ - 'description' => 'OSS存储升级包文件的URL。'."\n" - ."\n" - .'> OTA升级包中仅有一个升级包文件时,返回该参数。', - 'type' => 'string', - 'example' => 'https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****', - ], - 'UtcCreate' => [ - 'description' => '创建OTA升级包的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:42:22.000Z', - ], - 'FirmwareSize' => [ - 'description' => 'OTA升级包文件大小,单位为字节。'."\n" - ."\n" - .'> OTA升级包中仅有一个升级包文件时,返回该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '924', - ], - 'FirmwareName' => [ - 'description' => 'OTA升级包名称。', - 'type' => 'string', - 'example' => 't3q5rkNm', - ], - 'FirmwareSign' => [ - 'description' => 'OTA升级包文件内容的签名值。'."\n" - ."\n" - .'> OTA升级包中仅有一个升级包文件时,返回该参数。', - 'type' => 'string', - 'example' => '3d04ab6462633508606e5f3daac8****', - ], - 'ProductKey' => [ - 'description' => 'OTA升级包所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a19mzPZ****', - ], - 'UtcModified' => [ - 'description' => 'OTA升级包最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:42:41.000Z', - ], - 'SrcVersion' => [ - 'description' => '待升级的OTA升级包版本号。'."\n" - ."\n" - .'> 仅差分升级的升级包返回该参数。升级包类型的说明,请参见参数**Type**的描述。', - 'type' => 'string', - 'example' => '1.0.0', - ], - 'VerifyProgress' => [ - 'description' => 'OTA升级包的验证进度。'."\n" - ."\n" - .'- **0**:未验证。'."\n" - .'- **100**:已完成验证。'."\n" - .'- 0至100之间的数值N:表示N%的设备已完成升级。升级包验证状态请根据返回参数**Status**判断。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'FirmwareDesc' => [ - 'description' => 'OTA升级包描述信息。', - 'type' => 'string', - 'example' => 'modified-WiFi-module', - ], - 'SignMethod' => [ - 'description' => 'OTA升级包签名方式。', - 'type' => 'string', - 'example' => 'MD5', - ], - 'DestVersion' => [ - 'description' => '当前OTA升级包版本号。', - 'type' => 'string', - 'example' => '4.0.0', - ], - 'FirmwareId' => [ - 'description' => 'OTA升级包ID,升级包的唯一标识符。', - 'type' => 'string', - 'example' => 'UfuxnwygsuSkVE0VCN****0100', - ], - 'Udi' => [ - 'description' => '推送给设备的自定义信息。不限制文本内容的格式,长度不超过4096个字符。'."\n" - ."\n" - .'创建升级任务后,物联网平台向设备推送升级通知时,会将该自定义信息下发给设备。', - 'type' => 'string', - 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}', - ], - 'MultiFiles' => [ - 'description' => 'OTA升级包文件列表信息。OTA升级包中有多个升级包文件时,返回此参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Url' => [ - 'description' => 'OSS存储升级包文件的URL。', - 'type' => 'string', - 'example' => 'https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****', - ], - 'FileMd5' => [ - 'description' => 'OTA升级包文件的MD5值。', - 'type' => 'string', - 'example' => '3d04ab6462633508606e5f3d****', - ], - 'SignValue' => [ - 'description' => 'OTA升级包文件内容的签名值。', - 'type' => 'string', - 'example' => '3d04ab6462633508606e5f3d****', - ], - 'Name' => [ - 'description' => 'OTA升级包文件名称。', - 'type' => 'string', - 'example' => 'firmware1', - ], - 'Size' => [ - 'description' => 'OTA升级包文件大小,单位为字节。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - ], - ], - ], - ], - ], + 'Code' => ['type' => 'integer', 'format' => 'int32'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"Success\\": true,\\n \\"FirmwareInfo\\": {\\n \\"ModuleName\\": \\"WifiConfigModify\\",\\n \\"Type\\": 0,\\n \\"Status\\": 2,\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"FirmwareUrl\\": \\"https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"FirmwareSize\\": 924,\\n \\"FirmwareName\\": \\"t3q5rkNm\\",\\n \\"FirmwareSign\\": \\"3d04ab6462633508606e5f3daac8****\\",\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"UtcModified\\": \\"2019-12-28T02:42:41.000Z\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"VerifyProgress\\": 0,\\n \\"FirmwareDesc\\": \\"modified-WiFi-module\\",\\n \\"SignMethod\\": \\"MD5\\",\\n \\"DestVersion\\": \\"4.0.0\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Udi\\": \\"{\\\\\\"ota_notice\\\\\\":\\\\\\"升级底层摄像头驱动,解决视频图像模糊的问题。\\\\\\"}\\",\\n \\"MultiFiles\\": [\\n {\\n \\"Url\\": \\"https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\",\\n \\"FileMd5\\": \\"3d04ab6462633508606e5f3d****\\",\\n \\"SignValue\\": \\"3d04ab6462633508606e5f3d****\\",\\n \\"Name\\": \\"firmware1\\",\\n \\"Size\\": 200\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nA01829CE-75A1-4920-B775-921146A1AB79\\n\\n \\n 3d04ab6462633508606e5f3daac8****\\n a19mzPZ****\\n 0\\n 2019-12-28T02:42:41.000Z\\n MD5\\n 2019-12-28T02:42:22.000Z\\n 924\\n 2\\n UfuxnwygsuSkVE0VCN****0100\\n modified-WiFi-module\\n https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\n 4.0.0\\n MyProduct\\n t3q5rkNm\\n WifiConfigModify\\n {\\"ota_notice\\":\\"升级底层摄像头驱动,解决视频图像模糊的问题。\\"}\\n 0\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定固件的详细信息', - 'summary' => '调用该接口查询指定OTA升级包的详细信息,包括升级包的名称、类型、状态等。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateOTAVerifyJob' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Product.Key.Invalid', 'errorMessage' => 'Product key is invalid.', 'description' => '产品key无效。'], + ['errorCode' => 'Product.not.found', 'errorMessage' => 'Product.not.found.', 'description' => '产品找不到。'], + ['errorCode' => 'Distribute.thing.module.no.edit', 'errorMessage' => 'Distribute.thing.module.no.edit.', 'description' => '分发产品的东西模型不允许编辑。'], + ['errorCode' => 'Thing.Model.Get.Lock.Failed', 'errorMessage' => 'The thing model get lock failed. Please try again later.', 'description' => '物模型锁获取失败,请稍后重试。'], + ['errorCode' => 'Server.error', 'errorMessage' => 'Server error.', 'description' => '服务器错误。'], + ['errorCode' => 'Request.param.error', 'errorMessage' => 'Request.param.error. %s.', 'description' => '请求参数错误。%s。'], + ['errorCode' => 'Thing.Model.Version.Invalid', 'errorMessage' => 'The thing model version is not valid.', 'description' => '物模型版本非法。'], + ['errorCode' => 'Thing.Model.Status.Not.Final', 'errorMessage' => 'The thing model may be importing or copying or publishing. Please wait for the final status.', 'description' => '物模型可能在导入/拷贝/发布中,请稍后再试。'], + ['errorCode' => 'Product.has.published', 'errorMessage' => 'Product has published.', 'description' => '产品已发布。'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PublishThingModelAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', + ], + 'PublishThingModelAsyncInner' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'InsId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'FirmwareId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包ID,升级包的唯一标识符。'."\n" - ."\n" - .'**FirmwareId**是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" - ."\n" - .'也可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'nx3xxVvFdwvn6dim50PY03****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'TimeoutInMinutes', + 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设置设备升级超时时间,单位分钟,范围1~1,440。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1440', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'integer', 'format' => 'int32'], + 'Message' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'LocalizedMsg' => ['type' => 'string'], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Request.param.error', 'errorMessage' => 'Request.param.error. %d.', 'description' => '请求参数错误。%d。'], + ['errorCode' => 'Product.Key.Invalid', 'errorMessage' => 'Product key is invalid.', 'description' => '产品key无效。'], + ['errorCode' => 'Product.not.found', 'errorMessage' => 'Product.not.found.', 'description' => '产品找不到。'], + ['errorCode' => 'Product.has.published', 'errorMessage' => 'Product has published.', 'description' => '产品已发布。'], + ['errorCode' => 'Thing.Model.Version.Invalid', 'errorMessage' => 'The thing model version is not valid.', 'description' => '物模型版本非法。'], + ['errorCode' => 'Thing.Model.Get.Lock.Failed', 'errorMessage' => 'The thing model get lock failed. Please try again later.', 'description' => '物模型锁获取失败,请稍后重试。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 0,\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"LocalizedMsg\\": \\"\\"\\n}","type":"json"}]', + ], + 'PushSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ProductKey', + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'PushMode', + 'in' => 'formData', + 'schema' => ['description' => '推送模式。'."\n" + ."\n" + .'- **ALL**:全量设备推送。'."\n" + ."\n" + .'- **SINGLE_DEVICE**:单设备推送。'."\n" + ."\n" + .'- **GROUP_DEVICE**:分组设备推送。'."\n", 'type' => 'string', 'required' => true, 'example' => 'SINGLE_DEVICE'], + ], + [ + 'name' => 'GroupId', 'in' => 'query', + 'schema' => ['description' => '分组ID,当**推送模式**选择为**分组设备**时,该项必填。'."\n" + .'您可以在**设备管理** > **分组管理**中获取分组ID,', 'type' => 'string', 'required' => false, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID。当**推送模式**选择为**单个设备**时,该参数与**ProductKey**、**DeviceName**组合二选一必传。'."\n" + ."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", 'type' => 'string', 'required' => false, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'ProjectCode', + 'in' => 'formData', + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '产品的唯一标识。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'SpeechCodeList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => 'OTA升级包所属产品的ProductKey。', - 'type' => 'string', + 'description' => '需要推送的语料ID列表。该参数可以通过[QuerySpeechList](~~217576~~)查询获取。'."\n" + ."\n" + .'N为整数,取值范围:1~100,表示每次最多推送100条语料。'."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'a1VJwBw****', + 'example' => '4de2c367****8c585e5992**', + 'maxItems' => 100, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'Data' => ['description' => '返回的推送任务ID(JobCode),是推送任务的唯一标识。', 'type' => 'string', 'example' => '4de2c367****8c585e5992**'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"Data\\": \\"4de2c367****8c585e5992**\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n4de2c367****8c585e5992**\\ntrue\\n","errorExample":""}]', + 'title' => '推送语料到设备', + 'summary' => '将语料推送到设备。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'NeedPush', - 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台是否主动向设备推送升级任务。'."\n" - ."\n" - .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" - .' '."\n" - .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" - ."\n" - .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PushSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryBatchRegisterDeviceStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'NeedConfirm', - 'in' => 'query', - 'schema' => [ - 'description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" - ."\n\n" - .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" - .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'DownloadProtocol', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" - ."\n" - .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" - .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" - .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" - .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTPS', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TargetDeviceName', + 'name' => 'ProductKey', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待验证的设备。'."\n" - ."\n" - .'> - 设备所属产品必须与OTA升级包所属产品一致。'."\n" - .'- 设备名称不能重复。'."\n" - .'- 最多可传入10个设备名称。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => true, - 'example' => 'testdevice', - 'maxItems' => 10, - ], + 'schema' => ['description' => '要查询的设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Tag', + 'name' => 'ApplyId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" - ."\n" - .'批次标签将在向设备推送升级通知时下发给设备。'."\n" - ."\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" - ."\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'value1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'schema' => ['description' => '要查询的申请批次ID。'."\n" + ."\n" + .'申请批次ID在成功调用[BatchCheckDeviceNames](~~69482~~)或[BatchRegisterDevice](~~69473~~)接口的返回结果中。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1295006'], ], ], 'responses' => [ @@ -40123,463 +26854,524 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n" + ."\n" + .'> 目前仅华东2(cn-shanghai)地域支持设备X.509证书,如果地域不是华东2(cn-shanghai),则不能生成X.509证书,返回错误码iot.device.RegionNotSupportX509。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的验证批次信息。详情见以下参数。', + 'description' => '调用成功时,返回的状态信息。', 'type' => 'object', 'properties' => [ - 'JobId' => [ - 'description' => 'OTA升级包验证任务ID,即用于验证OTA升级包的设备升级批次ID。', - 'type' => 'string', - 'example' => 'wahVIzGkCMuAUE2gDERM02****', + 'Status' => ['description' => '申请单的处理状态和结果,取值:'."\n" + ."\n" + .'- **CHECK**:正在校验设备名称。'."\n" + ."\n" + .'- **CHECK_SUCCESS**:申请单中的所有设备名称校验成功。'."\n" + ."\n" + .'- **CHECK_FAILED**:申请单中有设备名称校验失败。'."\n" + ."\n" + .'- **CREATE**:正在创建设备。'."\n" + ."\n" + .'- **CREATE_SUCCESS**:申请单中的所有设备创建成功。'."\n" + .' > 当设备所属产品的认证类型是X.509证书时,表示所有设备和对应的X.509证书都创建成功。'."\n" + ."\n" + .'- **CREATE_FAILED**:申请单中有设备创建失败。'."\n" + ."\n" + .' > 当设备所属产品的认证类型是X.509时,只要当前批次中,任意一个设备或X.509证书创建失败,则返回创建失败。', 'type' => 'string', 'example' => 'CREATE_SUCCESS'], + 'InvalidDetailList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'invalidDetailList' => [ + 'description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建失败的设备的详情集合。'."\n" + .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回失败详情,该参数为空数组。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ErrorMsg' => ['description' => '创建设备失败,返回的出错信息。'."\n" + ."\n" + .'> 多个出错信息间使用竖线(|)隔开。', 'type' => 'string', 'example' => 'The nick name is illegal.'], + 'NickName' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => '园区灯-1'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + 'InvalidList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Name' => [ + 'type' => 'array', + 'items' => ['description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建失败的设备名称集合。'."\n" + .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回设备列表,该参数为空数组。', 'type' => 'string', 'example' => '{ "Name": ["Elec_instrument"] }'], + 'description' => '', + ], + ], + 'description' => '', ], - 'UtcCreate' => [ - 'description' => 'OTA升级包验证任务的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T06:22:19.566Z', + 'ValidList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Name' => [ + 'type' => 'array', + 'items' => ['description' => '- 当返回**Status**参数值为**CHECK_FAILED**或**CREATE_FAILED**时,表示有设备创建失败,该参数返回创建成功的设备名称集合。'."\n" + .'- 当返回**Status**参数值为**CHECK_SUCCESS**或**CREATE_SUCCESS**时,表示所有设备创建成功,无需返回设备列表,该参数为空数组。', 'type' => 'string', 'example' => '{ "Name": ["light3"] }'], + 'description' => '', + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"wahVIzGkCMuAUE2gDERM02****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:22:19.566Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateOTAVerifyJob', - 'summary' => '调用该接口创建OTA升级包验证任务。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"CREATE_SUCCESS\\",\\n \\"InvalidDetailList\\": {\\n \\"invalidDetailList\\": [\\n {\\n \\"ErrorMsg\\": \\"The nick name is illegal.\\",\\n \\"NickName\\": \\"园区灯-1\\",\\n \\"DeviceName\\": \\"light\\"\\n }\\n ]\\n },\\n \\"InvalidList\\": {\\n \\"Name\\": [\\n \\"{ \\\\\\"Name\\\\\\": [\\\\\\"Elec_instrument\\\\\\"] }\\"\\n ]\\n },\\n \\"ValidList\\": {\\n \\"Name\\": [\\n \\"{ \\\\\\"Name\\\\\\": [\\\\\\"light3\\\\\\"] }\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n CREATE_SUCCESS\\n \\n \\n The nick name is illegal. | The nick name is illegal.\\n 园区灯-1\\n Elec_instrument\\n \\n \\n \\n light3\\n \\n \\n Elec_instrument\\n \\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询批量注册设备申请的处理状态和结果', + 'summary' => '调用该接口查询批量注册设备申请的处理状态和结果。', 'description' => '## 使用说明'."\n" ."\n" - .'- 将OTA升级包推送给设备批量升级前,必须完成OTA升级包验证。只有已验证的OTA升级包才可用于批量设备升级。您可以调用[QueryOTAFirmware](~~147461~~)查看OTA升级包验证状态。'."\n" - .'- 不能对验证进行中或验证已成功的OTA升级包重复发起验证任务。'."\n" - .'- 最多只能传入10个设备用于OTA升级包验证。'."\n" + .'批量注册设备时,可调用本接口根据申请批次ID(**ApplyId**),查看设备名称校验结果或注册结果。'."\n" + ."\n" + .'使用自定义设备名称批量注册设备时,必须先调用本接口确保自定义设备名称全部校验通过,再调用[BatchRegisterDeviceWithApplyId](~~69514~~)接口根据对应申请批次ID完成设备注册。'."\n" + ."\n" + .'> - 如果有校验失败的设备名称,请根据错误信息提示进行修正,然后重新调用[BatchCheckDeviceNames](~~69482~~)接口获取新的申请批次ID(**ApplyId**)后,再次调用**QueryBatchRegisterDeviceStatus**接口确认全部设备名称校验通过。'."\n" + .'- 如果返回的**Status**为**CHECK**,请耐心等待。批量注册设备有一个过程,您可再次调用本接口查看**Status**确认全部设备名称校验通过。'."\n" + ."\n" + .'使用自定义设备名称批量注册设备的完整流程,请参见[BatchCheckDeviceNames](~~69482~~)的**使用说明**。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateOTAStaticUpgradeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryBatchRegisterDeviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryCertUrlByApplyId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'FirmwareId', + 'name' => 'ApplyId', 'in' => 'query', - 'schema' => [ - 'description' => '升级包ID,升级包的唯一标识符。'."\n" - ."\n" - .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'nx3xxVvFdwvn6dim50PY03****', - ], + 'schema' => ['description' => '要查询的申请批次ID。申请批次ID可在[BatchRegisterDeviceWithApplyId](~~69514~~)和[BatchRegisterDevice](~~69473~~)接口返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1234567'], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '升级包所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Le6d0****', + 'type' => 'object', + 'properties' => [ + 'CertUrl' => ['description' => '该批次设备的X.509证书下载链接。', 'type' => 'string', 'example' => 'https://****'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CertUrl\\": \\"https://****\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\nhttps://****\\n","errorExample":""}]', + 'title' => '获取批量注册设备X.509证书下载链接', + 'summary' => '获取批量注册设备的X.509证书下载链接。', + 'description' => '## 限制说明'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'TargetSelection', - 'in' => 'query', - 'schema' => [ - 'description' => '升级范围。'."\n" - ."\n" - .'- **ALL**:全量升级。'."\n" - .'- **SPECIFIC**:定向升级。'."\n" - .'- **GRAY**:灰度升级。'."\n" - .'- **GROUP**:分组升级', - 'type' => 'string', - 'required' => true, - 'example' => 'ALL', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryCertUrlByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryClientIds' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'ScheduleTime', - 'in' => 'query', - 'schema' => [ - 'description' => '指定发起OTA升级的时间。'."\n" - ."\n" - .'定时时间范围需为当前时间的5分钟后至7天内。取值为13位毫秒值时间戳。'."\n" - ."\n" - .'不传入该参数,则表示立即升级。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1577808000000', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'RetryInterval', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '设备升级失败后,自动重试的时间间隔,单位为分钟。可选值:'."\n" - ."\n" - .'- **0**:立即重试。'."\n" - .'- **10**:10分钟后重试。'."\n" - .'- **30**:30分钟后重试。'."\n" - .'- **60**:60分钟(即1小时)后重试。'."\n" - .'- **1440**:1,440分钟(即24小时)后重试。'."\n" - ."\n" - .'> **RetryInterval**的值需要小于**TimeoutInMinutes**的值。例如:'."\n" - .'- **TimeoutInMinutes**的值为60分钟,**RetryInterval**的值最大可设置为30。'."\n" - .'- **TimeoutInMinutes**的值为1440分钟,**RetryInterval**的值最大可设置为60。'."\n" - ."\n" - .'若**RetryInterval**需设置为24小时后重试,则建议不传入**TimeoutInMinutes**。因升级超时后,不会再触发升级重试。'."\n" - .'>'."\n" - ."\n" - .'不传入此参数,则表示不重试。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - ], + 'schema' => ['description' => '设备ID。您可调用[QueryDeviceInfo](~~257184~~)接口查询**IotId**。', 'type' => 'string', 'required' => true, 'example' => 'y4u2weAIrpp****WHMle1234'], ], [ - 'name' => 'RetryCount', + 'name' => 'IotInstanceId', 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-a****13l'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '自动重试次数。'."\n" - ."\n" - .'如果传入**RetryInterval**参数,则需传入该参数。'."\n" - ."\n" - .'可选值:'."\n" - ."\n" - .'- **1**:1次。'."\n" - .'- **2**:2次。'."\n" - .'- **5**:5次。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。'."\n", 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。'."\n", 'type' => 'string', 'example' => '89F22330-BAEE-****-****-41BA46D6E267'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '设备包含标识ID时,返回的标识列表。详细内容,请参见**DynamicRegClientIds**信息。', + 'type' => 'object', + 'properties' => [ + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'y4u2weAI********HMle1234'], + 'DynamicRegClientIds' => [ + 'description' => '设备标识列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CreateTime' => ['description' => '设备标识创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1636514022424'], + 'ClientId' => ['description' => '设备标识。', 'type' => 'string', 'example' => '9rSzYt4js92********f000112'], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"IotId\\": \\"y4u2weAI********HMle1234\\",\\n \\"DynamicRegClientIds\\": [\\n {\\n \\"CreateTime\\": 1636514022424,\\n \\"ClientId\\": \\"9rSzYt4js92********f000112\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nCA991E7C-BDE7-5887-B3B7-E08C68C0D346\\n\\n kRLP***0000\\n \\n 1635847637823\\n K19uYV***000100\\n \\n \\n 1635846982286\\n bpQwyW***000100\\n \\n \\n 1635847426368\\n ntnIvez***000100\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryClientIds', + 'summary' => '一型一密免注册场景下,调用该接口查看单个设备的标识列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'TimeoutInMinutes', - 'in' => 'query', - 'schema' => [ - 'description' => '设备升级超时时间,超过指定时间后,设备未完成升级,则升级失败。单位为分钟,取值范围为1~1,440。'."\n" - ."\n" - .'> - 从设备首次上报进度开始计算时间。升级期间若设备多次上下线,触发物联网平台多次推送升级包,都始终以设备最开始的第一次上报升级进度时间作为开始时间。'."\n" - .'- 因超时而导致的升级失败,物联网平台不会触发自动重试逻辑。'."\n" - ."\n\n" - ."\n\n" - .'不传入该参数,则表示设备升级没有超时限制。'."\n" - ."\n\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1440', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryClientIds', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryConsumerGroupByGroupId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'MaximumPerMinute', - 'in' => 'query', - 'schema' => [ - 'description' => '每分钟最多向多少个设备推送升级包下载URL。取值范围:10~10,000。'."\n" - ."\n" - .'不传入该参数,则取默认值10,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'GrayPercent', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '设置灰度比例。取值为字符串格式的百分比,小数点后最多3位小数,系统计算结果向下取整。灰度升级的设备至少为1个。'."\n" - ."\n" - .'例如有100个待升级设备,设置灰度升级的灰度比例为33.33,则系统计算结果为33。'."\n" - ."\n" - .'升级范围指定为灰度升级(`TargetSelection=GRAY`)时,需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '33.33', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ScheduleFinishTime', + 'name' => 'GroupId', 'in' => 'query', + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGf****** '], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '指定结束升级的时间。'."\n" - ."\n" - .'结束时间距发起时间(**ScheduleTime**)最少1小时,最多为30天。取值为13位毫秒值时间戳。'."\n" - ."\n" - .'不传入该参数,则表示不会强制结束升级。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1577909000000', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的消费组详情。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '消费组ID。', 'type' => 'string', 'example' => 'nJRaJPn5U1JITGf****** '], + 'GroupName' => ['description' => '消费组名称。', 'type' => 'string', 'example' => '消费组1'], + 'CreateTime' => ['description' => '消费组创建时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', 'type' => 'string', 'example' => '2020-05-20T00:05:20.000Z'], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\\\t\\",\\n \\"GroupName\\": \\"消费组1\\",\\n \\"CreateTime\\": \\"2020-05-20T00:05:20.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n nJRaJPn5U1JITGf******\\r\\n 消费组1\\r\\n 2019-11-12T11:19:13.000Z\\r\\n \\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '根据消费组ID查询消费组详情', + 'summary' => '调用该接口查询AMQP服务端订阅的消费组详情。', + 'description' => '## 使用说明'."\n" + .'使用AMQP服务端订阅时,可以调用该接口根据消费组ID查询消费组详情。创建AMQP服务端订阅的接口信息,请参见[CreateSubscribeRelation](~~170349~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'OverwriteMode', - 'in' => 'query', - 'schema' => [ - 'description' => '是否覆盖之前的升级任务。取值:'."\n" - .'- **1**(默认):不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" - .'- **2**:覆盖。设备只执行新的升级任务。此时**MultiModuleMode**不能传入**true**。'."\n" - ."\n\n" - .'> 不覆盖升级中的任务。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupByGroupId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryConsumerGroupList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DnListFileUrl', - 'in' => 'query', - 'schema' => [ - 'description' => '定向升级设备列表文件的URL。'."\n" - .'> - 发起定向升级(`TargetSelection=SPECIFIC`)任务时,需传入该参数或**TargetDeviceName.N**,不可同时传入。'."\n" - .'- 请调用[GenerateDeviceNameListURL](~~186062~~)生成文件URL,并按说明上传设备列表文件。'."\n" - .'- 整包升级时,会过滤列表中已经升级成功的设备。'."\n" - .'- 差分升级时,会过滤列表中已经升级成功,和初始版本号跟升级包不相符的设备。', - 'type' => 'string', - 'required' => false, - 'example' => 'https://iotx-ota.oss-cn-shanghai.aliyuncs.com/ota/65dfcda0473be29836dfde585472****/ck2nfzljo00023g7kysg0****.bin', - ], + 'AK' => [], ], + ], + 'deprecated' => false, + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'NeedPush', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台是否主动向设备推送升级任务。'."\n" - ."\n" - .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" - .' '."\n" - .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" - ."\n" - .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'NeedConfirm', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" - ."\n\n" - .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" - .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '指定返回结果中每页显示的消费组数量,最小值为1,最大值为1000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2'], ], [ - 'name' => 'GroupId', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID。'."\n" - ."\n" - .'仅当发起分组升级(`TargetSelection=GROUP`)任务时,需传入该参数和**GroupType**。'."\n" - ."\n\n" - .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', - 'type' => 'string', - 'required' => false, - 'example' => 'CtjzCkNuOx***', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页,最小值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'GroupType', + 'name' => 'Fuzzy', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型,仅可取值**LINK_PLATFORM**。'."\n" - ."\n" - .'仅当发起分组升级(`TargetSelection=GROUP`)任务时,需传入该参数和**GroupId**。', - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM', - ], + 'schema' => ['description' => '是否使用模糊查询。可选值:'."\n" + ."\n" + .'- **true**:使用模糊查询,需指定**GroupName**参数。'."\n" + .'- **false**:查询该用户的所有消费组。'."\n" + ."\n" + .'默认为**false**。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], [ - 'name' => 'DownloadProtocol', + 'name' => 'GroupName', 'in' => 'query', - 'schema' => [ - 'description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" - ."\n" - .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" - .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" - .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" - .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTPS', - ], + 'schema' => ['description' => '模糊查询时要查询的消费组名称,当**Fuzzy**取值为**true**时传入。', 'type' => 'string', 'required' => false, 'example' => 'A类消费组'], ], [ - 'name' => 'MultiModuleMode', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '设备是否支持多模块同时升级。'."\n" - ."\n" - .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" - .'- **true**:是,设备支持多模块同时升级。此时**OverwriteMode**不能传入**2**。相同模块下的升级任务会被覆盖,但不覆盖升级中的任务。'."\n" - ."\n" - .'>'."\n" - .'- 支持的实例:企业版实例和新版公共实例。'."\n" - .'- 设备端SDK:必须使用物联网平台提供的设备端C语言4.x版本的Link SDK。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'SrcVersion', + 'name' => 'SubBizCode', 'in' => 'query', - 'style' => 'repeatList', + 'schema' => ['type' => 'string', 'required' => false], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '待升级版本号列表。'."\n" - ."\n" - .'>- 发起全量升级(`TargetSelection=ALL`)和灰度升级(`TargetSelection=GRAY`)任务时,可以传入该参数。'."\n" - .'- 使用差分升级包发起全量升级和灰度升级任务时,该参数值需指定为差分升级包的待升级版本号(**SrcVersion**)。'."\n" - .'- 发起定向升级(`TargetSelection=SPECIFIC`)或分组升级(`TargetSelection=GROUP`)任务时,不能传入该参数。'."\n" - .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" - .'- 列表中不能有重复的版本号。'."\n" - .'- 最多可传入10个版本号。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的消费组数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageCount' => ['description' => '返回结果总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'Total' => ['description' => '查询到的消费组总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '8'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ConsumerGroupDTO' => [ + 'description' => '调用成功时,返回的消费组详情,请参见ConsumerGroupDTO。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '消费组ID。', 'type' => 'string', 'example' => 'nJRaJPn5U1JITGf****** '], + 'GroupName' => ['description' => '消费组名称。', 'type' => 'string', 'example' => 'XX消费组1'], + 'CreateTime' => ['description' => '消费组创建时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', 'type' => 'string', 'example' => '2020-05-20T00:05:20.000Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], ], - 'required' => false, - 'example' => 'V1.0.1', - 'maxItems' => 20, + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 2,\\n \\"PageCount\\": 4,\\n \\"Total\\": 8,\\n \\"Data\\": {\\n \\"ConsumerGroupDTO\\": [\\n {\\n \\"GroupId\\": \\"nJRaJPn5U1JITGf******\\\\t\\",\\n \\"GroupName\\": \\"XX消费组1\\",\\n \\"CreateTime\\": \\"2020-05-20T00:05:20.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 2\\r\\n 4\\r\\n 1\\r\\n 8\\r\\n \\r\\n \\r\\n nJRaJPn5U1JITGf******\\r\\n A类消费组1\\r\\n 2020-05-29T03:37:56.000Z\\r\\n \\r\\n \\r\\n qJRaJPndeefwgef******\\r\\n A类消费组2\\r\\n 2020-01-17T07:27:01.000Z\\r\\n \\r\\n \\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询消费组列表', + 'summary' => '查询用户所有消费组列表,或按消费组名称进行模糊查询。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' '."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'TargetDeviceName', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '定向升级的设备名称列表。'."\n" - ."\n" - .'> - 发起定向升级(`TargetSelection=SPECIFIC`)任务时,需传入该参数或**DnListFileUrl**,不可同时传入。'."\n" - .'- 使用差分升级包进行定向升级时,要升级的设备的当前OTA模块版本号需与差分升级包的待升级版本号(**SrcVersion**)相同。'."\n" - .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号(**FirmwareVersion**)。'."\n" - .'- 列表中的设备所属的产品必须与升级包所属产品一致。'."\n" - .'- 列表中不能有重复的设备名称。'."\n" - .'- 最多可传入200个设备名称。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - 'required' => false, - 'example' => 'deviceName1', - 'maxItems' => 200, ], ], + ], + ], + 'QueryConsumerGroupStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Tag', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" - ."\n" - .'批次标签将在向设备推送升级通知时下发给设备。'."\n" - ."\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" - ."\n\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'value1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 20, - ], + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGf******'], ], ], 'responses' => [ @@ -40587,394 +27379,299 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'MissingFirmwareId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'FirmwareId is mandatory for this action.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的升级批次信息。更多信息,请参见Data下参数说明。', + 'ConsumerSpeed' => ['description' => '消费组消息消费速率,单位:条/分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '14'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'AccumulatedConsumeCountPerMinute' => ['description' => '消费组堆积消息消费速率,单位:条/分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'LastConsumerTime' => ['description' => '最近消息消费时间。为UTC时间,以毫秒计,格式为“yyyy-MM-dd\'T\'HH:mm:ss.SSSZ”。', 'type' => 'string', 'example' => '2020-05-29T03:37:56.000Z'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'RealTimeConsumeCountPerMinute' => ['description' => '消费组实时消息消费速率,单位:条/分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '14'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'AccumulationCount' => ['description' => '消费组消息堆积数。', 'type' => 'integer', 'format' => 'int32', 'example' => '13'], + 'ClientConnectionStatusList' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'JobId' => [ - 'description' => '升级批次ID,升级批次的唯一标识符。', - 'type' => 'string', - 'example' => 'wahVIzGkCMuAUE2gDERM02****', - ], - 'UtcCreate' => [ - 'description' => '升级批次的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T06:22:19.566Z', + 'ConsumerGroupClientConnectionInfo' => [ + 'description' => '消费组的在线客户端信息,请参见**ConsumerGroupClientConnectionInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OnlineTime' => ['description' => '在线客户端的最后上线时间。取值为1970年01月01日00时00分00秒000毫秒以来的毫秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1591240546649'], + 'AccumulatedConsumeCountPerMinute' => ['description' => '消费组的单个客户端堆积消息消费速率,单位:条/分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'RealTimeConsumeCountPerMinute' => ['description' => '消费组的单个客户端实时消息消费速率,单位:条/分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'ClientIpPort' => ['description' => '在线客户端IP和端口。', 'type' => 'string', 'example' => '192.168.1.2:36918 '], + 'ClientId' => ['description' => '在线客户端ID。', 'type' => 'string', 'example' => '868575026******'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingFirmwareId\\",\\n \\"ErrorMessage\\": \\"FirmwareId is mandatory for this action.\\",\\n \\"RequestId\\": \\"29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"wahVIzGkCMuAUE2gDERM02****\\",\\n \\"UtcCreate\\": \\"2019-11-04T06:22:19.566Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateOTAStaticUpgradeJob', - 'summary' => '调用该接口创建静态升级批次。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 若在调用[CreateOTAFirmware](~~147311~~)接口创建升级包时,未指定“升级包可不通过验证”,则调用本接口创建批量升级批次前,必须保证升级包已验证成功。关于如何创建验证升级包任务,请参见[CreateOTAVerifyJob](~~147480~~)。'."\n" - .'- 单次调用,对于定向升级,若直接传入设备名称,则最多可对200个设备发起升级任务;若使用待升级设备列表文件,则最多可对10,000个设备发起升级任务,需提前调用[GenerateDeviceNameListURL](~~186062~~)生成文件URL,并按说明上传设备列表文件。'."\n" - .'- 对多个设备发起升级任务时,如果某设备已经是目标版本,则过滤该设备,继续升级任务。'."\n" - .'- 同一设备只能同时在一个升级批次中处于待升级或正在升级状态。对处于待升级或正在升级状态的设备发起新的升级任务,后发起的任务会直接失败。'."\n" - .'- 可以对单个升级包,同时发起多个静态升级批次。'."\n" - .'- 当前日本(东京)和美国(弗吉尼亚)地域下,不支持创建静态分组升级批次,即**TargetSelection**不支持传入**GROUP**。'."\n" - .'- 当前仅中国的华东2(上海)、华北2(北京)和华南1(深圳)地域下,支持使用MQTT协议下载升级包。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ConsumerSpeed\\": 14,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"AccumulatedConsumeCountPerMinute\\": 10,\\n \\"LastConsumerTime\\": \\"2020-05-29T03:37:56.000Z\\",\\n \\"Success\\": true,\\n \\"RealTimeConsumeCountPerMinute\\": 14,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"AccumulationCount\\": 13,\\n \\"ClientConnectionStatusList\\": {\\n \\"ConsumerGroupClientConnectionInfo\\": [\\n {\\n \\"OnlineTime\\": 1591240546649,\\n \\"AccumulatedConsumeCountPerMinute\\": 10,\\n \\"RealTimeConsumeCountPerMinute\\": 5,\\n \\"ClientIpPort\\": \\"192.168.1.2:36918\\\\t\\",\\n \\"ClientId\\": \\"868575026******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 12345-1\\n 8\\n 1627624830193\\n 192.168.1.2:55545\\n 16\\n \\n \\n 12345-0\\n 10\\n 1627624829763\\n 192.168.1.2:55526\\n 14\\n \\n\\n4EC250E4-70CE-546E-9D4A-31D06E04EAD8\\n10\\ntrue\\n14\\n26\\n14\\n","errorExample":""}]', + 'title' => '查询消费组状态', + 'summary' => '查询某个消费组的状态,包括在线客户端信息、消息消费速率、消息堆积数、最近消息消费时间。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateOTADynamicUpgradeJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryCustomTimelineTableStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'FirmwareId', + 'name' => 'TableName', 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '升级包ID,升级包的唯一标识符。'."\n" - ."\n" - .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'nx3xxVvFdwvn6dim50PY03****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Data' => [ + 'type' => 'object', + 'properties' => [ + 'ResultJson' => ['type' => 'string'], + 'PageNum' => ['type' => 'integer', 'format' => 'int32'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Count' => ['type' => 'integer', 'format' => 'int64'], + 'HasNext' => ['type' => 'boolean'], + ], + ], + ], ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.noAuthorization', 'errorMessage' => 'no authorization.', 'description' => '此操作没有权限'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'System error. Please submit a ticket.', 'description' => '系统错误,请提交工单联系技术支持。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '升级包所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Le6d0****', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryCustomTimelineTableStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ResultJson\\": \\"\\",\\n \\"PageNum\\": 0,\\n \\"PageSize\\": 0,\\n \\"Count\\": 0,\\n \\"HasNext\\": true\\n }\\n}","type":"json"}]', + ], + 'QueryDetailSceneRuleLog' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'RetryInterval', - 'in' => 'query', - 'schema' => [ - 'description' => '设备升级失败后,自动重试的时间间隔,单位为分钟。可选值:'."\n" - ."\n" - .'- **0**:立即重试。'."\n" - .'- **10**:10分钟后重试。'."\n" - .'- **30**:30分钟后重试。'."\n" - .'- **60**:60分钟(即1小时)后重试。'."\n" - .'- **1440**:1,440分钟(即24小时)后重试。'."\n" - ."\n" - .'> **RetryInterval**的值需要小于**TimeoutInMinutes**的值。例如:'."\n" - .'- **TimeoutInMinutes**的值为60分钟,**RetryInterval**的值最大可设置为30。'."\n" - .'- **TimeoutInMinutes**的值为1440分钟,**RetryInterval**的值最大可设置为60。'."\n" - ."\n" - .'若**RetryInterval**需设置为24小时后重试,则建议不传入**TimeoutInMinutes**。因升级超时后,不会再触发升级重试。'."\n" - .'>'."\n" - ."\n" - .'不传入此参数,则表示不重试。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '60', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'RetryCount', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '自动重试次数。'."\n" - ."\n" - .'如果传入**RetryInterval**参数,则需传入该参数。'."\n" - ."\n" - .'可选值:'."\n" - ."\n" - .'- **1**:1次。'."\n" - .'- **2**:2次。'."\n" - .'- **5**:5次。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TimeoutInMinutes', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '设备升级超时时间,超过指定时间后,设备未完成升级,则升级失败。单位为分钟,取值范围为1~1,440。'."\n" - ."\n" - .'> - 从设备首次上报进度开始计算时间。升级期间若设备多次上下线,触发物联网平台多次推送升级包,都始终以设备最开始的第一次上报升级进度时间作为开始时间。'."\n" - .'- 因超时而导致的升级失败,物联网平台不会触发自动重试逻辑。'."\n" - ."\n\n" - ."\n\n" - .'不传入该参数,则表示设备升级没有超时限制。'."\n" - ."\n\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1440', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'e5dd1c7aa3994ecdbc88235979******'], ], [ - 'name' => 'MaximumPerMinute', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '每分钟最多向多少个设备推升级包下载URL。取值范围:10~10,000。'."\n" - ."\n" - .'不传入该参数,则取默认值10,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1000', - ], + 'schema' => ['description' => '场景联动规则日志的开始时间,单位为秒,输入Unix时间戳。'."\n" + ."\n" + .'> 最多可查询近一个月(30天)的规则执行日志。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1581917582'], ], [ - 'name' => 'OverwriteMode', + 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '是否覆盖之前的升级任务。取值:'."\n" - ."\n" - .'- **1**(默认):不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" - .'- **2**:覆盖。设备只执行新的升级任务。此时**MultiModuleMode**不能传入**true**。'."\n" - ."\n" - .'> 不覆盖升级中的任务。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], + 'schema' => ['description' => '场景联动规则日志的结束时间,单位为秒,输入Unix时间戳。'."\n" + ."\n" + .'> 最多可查询近一个月(30天)的规则执行日志。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1581918482'], ], [ - 'name' => 'DynamicMode', + 'name' => 'TraceId', 'in' => 'query', - 'schema' => [ - 'description' => '动态升级模式。取值范围:'."\n" - ."\n" - .'- **1**(默认):除了升级当前满足升级条件的设备,还将持续检查设备是否满足升级条件,对满足升级条件的设备进行升级。'."\n" - ."\n" - .'- **2**:仅对后续上报新版本号的设备生效。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '场景联动规则日志的轨迹ID。调用[QuerySummarySceneRuleLog](~~169511~~)接口获取该ID。', 'type' => 'string', 'required' => true, 'example' => 'b662a9671581918480168107******'], ], [ - 'name' => 'NeedPush', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台是否主动向设备推送升级任务。'."\n" - ."\n" - .'- **true**(默认):是。批次任务创建完成后,物联网平台主动将升级任务,直接推送给升级范围内的在线设备。'."\n" - .' '."\n" - .' 此时,设备仍可主动向物联网平台发起请求,来获取OTA升级任务信息。'."\n" - ."\n" - .'- **false**:否。设备必须通过向物联网平台发起请求,来获取OTA升级任务信息。'."\n" - ."\n\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], [ - 'name' => 'NeedConfirm', + 'name' => 'CurrentPage', 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '如需自主控制设备OTA升级时,可配置此参数,通过手机App来控制,设备是否可进行OTA升级。手机App需您自行开发。'."\n" - ."\n\n" - .'- **false**(默认):否。直接按照**NeedPush**设置,获取OTA升级任务信息。'."\n" - .'- **true**:是。设备无法获取OTA升级任务,需App侧确认OTA升级后,才能按照**NeedPush**设置,获取OTA升级任务信息。'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'ED2DF141-B09A-4C8A-BAA5-30CCEE63036C'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '场景联动规则日志总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'LogList' => [ + 'description' => '场景联动规则日志详情列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。200表示成功,其它表示错误码,详情请参见**Message**参数中的错误信息提示。', 'type' => 'string', 'example' => '9201'], + 'Message' => ['description' => '接口返回的场景联动规则日志信息。', 'type' => 'string', 'example' => 'device offline, productKey: a1c3t****, deviceName: my_device1'], + 'PkDn' => ['description' => '场景联动关联的子设备ProductKey和DeviceName。格式为`your_ProductKey/your_DeviceName`。', 'type' => 'string', 'example' => 'a1c3t****/my_device1'], + ], + 'description' => '', + ], + ], + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"ED2DF141-B09A-4C8A-BAA5-30CCEE63036C\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"LogList\\": [\\n {\\n \\"Code\\": \\"9201\\",\\n \\"Message\\": \\"device offline, productKey: a1c3t****, deviceName: my_device1\\",\\n \\"PkDn\\": \\"a1c3t****/my_device1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ED2DF141-B09A-4C8A-BAA5-30CCEE63036C\\r\\n \\r\\n \\r\\n \\r\\n a1c3t****/my_device1\\r\\n device offline, productKey: a1c3****, deviceName: my_device1\\r\\n 9201\\r\\n \\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查看场景联动规则日志的详细信息', + 'summary' => '查看场景联动规则日志的详细信息 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'GroupId', - 'in' => 'query', - 'schema' => [ - 'description' => '分组ID。'."\n" - ."\n" - .'- 如果传入该参数,则必须同时传入**GroupType**,且不能传入**SrcVersion.N**。'."\n" - .'- 如果不传入该参数,则无需传入**GroupType**,且必须传入**SrcVersion.N**。'."\n" - ."\n" - .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', - 'type' => 'string', - 'required' => false, - 'example' => 'IwOwQj7DJ***', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDetailSceneRuleLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'GroupType', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '分组类型,仅可取值**LINK_PLATFORM_DYNAMIC**(动态分组)。'."\n" - ."\n" - .'- 如果传入该参数,则必须同时传入**GroupId**,且不能传入**SrcVersion.N**。'."\n" - .'- 如果不传入该参数,则无需传入**GroupId**,且必须传入**SrcVersion.N**。', - 'type' => 'string', - 'required' => false, - 'example' => 'LINK_PLATFORM_DYNAMIC', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DownloadProtocol', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '升级包下载协议,可选:**HTTPS**(默认)或**MQTT**。设备端收到物联网平台推送的升级包下载信息后,通过该协议下载升级包。'."\n" - ."\n" - .'>使用MQTT协议下载升级包,必须符合以下条件:'."\n" - .'- 支持的地域:仅中国的华东2(上海)、华北2(北京)和华南1(深圳)。'."\n" - .'- OTA升级包:仅包含一个文件,且文件大小不超过16 MB。'."\n" - .'- 设备端SDK:必须使用物联网平台提供的C语言Link SDK最新版本的软件包,开发OTA升级和MQTT下载文件的能力。详细内容,请参见[使用MQTT协议下载升级包的OTA升级代码示例](~~330985~~)。'."\n" - ."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'HTTPS', - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值是50。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'MultiModuleMode', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备是否支持多模块同时升级。'."\n" - ."\n" - .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" - .'- **true**:是,设备支持多模块同时升级。此时**OverwriteMode**不能传入**2**。相同模块下的升级任务会被覆盖,但不覆盖升级中的任务。'."\n" - ."\n" - .'>'."\n" - .'- 支持的实例:企业版实例和新版公共实例。'."\n" - .'- 设备端SDK:必须使用物联网平台提供的设备端C语言4.x版本的Link SDK。'."\n" - .'- 发起基于分组的动态升级批次:**MultiModuleMode**和**OverwriteMode**的设置,必须与分组对应的存量动态升级批次中的设置保持一致。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', - ], + 'schema' => ['description' => '要查询的设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'SrcVersion', + 'name' => 'CurrentPage', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待升级版本号列表。'."\n" - ."\n" - .'- 如果传入该参数,则不能传入**GroupId**和**GroupType**。'."\n" - .'- 如果不传入该参数,则必须传入**GroupId**和**GroupType**。'."\n" - ."\n" - .'> - 基于版本对差分升级包发起动态升级任务时,该参数值必须与差分升级包的待升级版本号(**SrcVersion**)相同。'."\n" - .'基于动态分组对差分升级包发起动态升级任务时,无需传入该参数。'."\n" - .'- 可以调用[QueryDeviceDetail](~~69594~~),查看设备OTA模块版本号**FirmwareVersion**。'."\n" - .'- 列表中不能有重复的版本号。'."\n" - .'- 最多可传入10个版本号。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => false, - 'example' => 'V1.0.1', - 'maxItems' => 50, - ], + 'schema' => ['description' => '指定显示返回结果中的第几页的内容。默认值是 1。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'Tag', + 'name' => 'NextToken', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '批次标签key。仅支持英文字母、数字、半角句号(.),长度限制为1~30个字符。支持最多添加10个批次标签。'."\n" - ."\n" - .'批次标签将在向设备推送升级通知时下发给设备。'."\n" - ."\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。', - 'type' => 'string', - 'required' => true, - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '批次标签value。长度限制为1~1024个字符。支持最多添加10个批次标签。所有批次标签key和vlaue的长度总和,不能超过4096个字符。'."\n" - ."\n\n" - .'> 批次标签可以不传入。**是否必选**的**是**,表示如果传入批次标签Tag,**Tag.N.Value**与**Tag.N.Key**必须成对传入。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'value1', - ], - ], - 'required' => false, - ], - 'required' => false, - 'maxItems' => 10, - ], + 'schema' => ['description' => '下一页标识,首次查询无需传入。后续查询需使用的**NextToken**,要从上一次查询的返回结果中获取。'."\n" + ."\n\n" + ."\n" + .'当**PageSize**×**CurrentPage**值大于10,000时,必须传入**NextToken**。否则,无法返回数据。'."\n" + ."\n\n" + .'>'."\n" + .'如果传入**NextToken**值,则**PageSize**×**CurrentPage**值必须小于1,000,000。否则,无法返回数据。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291cm***'], ], ], 'responses' => [ @@ -40982,143 +27679,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '9F41D14E-CB5F-4CCE-939C-057F39E688F5', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'NextToken' => ['description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" + ."\n" + .'如果**NextToken**值为空,表示没有下一页数据。', 'type' => 'string', 'example' => 'TGlzdFJlc291cm***'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Page' => ['description' => '当前页面号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ - 'description' => '调用成功时,返回的升级批次信息。详情见以下Data包含的参数。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'JobId' => [ - 'description' => '升级批次ID,升级批次的唯一标识符。', - 'type' => 'string', - 'example' => 'XUbmsMHmkqv0PiAG****010001', - ], - 'UtcCreate' => [ - 'description' => '升级批次的创建时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-05-10T02:18:53.000Z', + 'DeviceInfo' => [ + 'description' => '调用成功时,返回设备信息列表(**DeviceInfo**)。'."\n" + .'> 返回的设备信息按照设备创建时间倒序排列。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'DeviceId' => ['description' => '设备ID(旧版参数)。'."\n" + ."\n" + .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前,有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', 'type' => 'string', 'example' => 'dwnS41bhNxjslDAI****'], + 'DeviceType' => ['description' => '设备所属产品的品类。'."\n" + ."\n" + .'> 目前不返回此参数。', 'type' => 'string', 'example' => 'Lighting'], + 'UtcCreate' => ['description' => '设备创建时间,UTC格式。', 'type' => 'string', 'example' => '2019-02-20T02:16:09.000Z'], + 'DeviceStatus' => ['description' => '设备状态。取值:'."\n" + .'- **ONLINE**:设备在线。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'GmtModified' => ['description' => '设备信息最后一次更新时的时间,GMT格式。', 'type' => 'string', 'example' => 'Wed, 20-Feb-2019 02:16:09 GMT'], + 'ProductKey' => ['description' => '设备所隶属的产品ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'UtcModified' => ['description' => '设备信息最后一次更新时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-02-20T02:16:09.000Z'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'sLefbFmN9SYfnWLJTePG893XNuRV****'], + 'GmtCreate' => ['description' => '设备创建时间,GMT格式。', 'type' => 'string', 'example' => 'Wed, 20-Feb-2019 02:16:09 GMT'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => '智能灯设备'], + 'IotId' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9F41D14E-CB5F-4CCE-939C-057F39E688F5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"JobId\\": \\"XUbmsMHmkqv0PiAG****010001\\",\\n \\"UtcCreate\\": \\"2019-05-10T02:18:53.000Z\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n wahVIzGkCMuAUE2gDERM02****\\r\\n 2019-11-04T06:22:19.566Z\\r\\n \\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateOTADynamicUpgradeJob', - 'summary' => '调用该接口创建动态升级批次。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291cm***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 2,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DeviceInfo\\": [\\n {\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"dwnS41bhNxjslDAI****\\",\\n \\"DeviceType\\": \\"Lighting\\",\\n \\"UtcCreate\\": \\"2019-02-20T02:16:09.000Z\\",\\n \\"DeviceStatus\\": \\"ONLINE\\",\\n \\"GmtModified\\": \\"Wed, 20-Feb-2019 02:16:09 GMT\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"UtcModified\\": \\"2019-02-20T02:16:09.000Z\\",\\n \\"DeviceSecret\\": \\"sLefbFmN9SYfnWLJTePG893XNuRV****\\",\\n \\"GmtCreate\\": \\"Wed, 20-Feb-2019 02:16:09 GMT\\",\\n \\"Nickname\\": \\"智能灯设备\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\nTGlzdFJlc291cm***\\n\\n \\n Av8NGHGtwPrH9BYG****\\n Av8NGHGtwPrH9BYGLMBi\\n a1dafDE****\\n d7GYhf5hfcPHDe1bXSd3n9MjO1G3****\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n Av8NGHGtwPrH9BYGLMBi00****\\n UNACTIVE\\n SensorInShanghai\\n \\n \\n zNIcSmWQ9BPJlmkj****\\n zNIcSmWQ9BPJlmkjn3H1\\n a1dafDE****\\n C27XXmC18yLIEDXvUj6FSlvgO7ag****\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n 2019-02-20T02:16:09.000Z\\n Wed, 20-Feb-2019 02:16:09 GMT\\n zNIcSmWQ9BPJlmkjn3H100****\\n UNACTIVE\\n DriverInShanghai\\n \\n\\n1\\n10\\nCD9E5F99-A095-4A05-9256-D924EA3075E8\\ntrue\\n2\\n","errorExample":""}]', + 'title' => '查询指定产品下的所有设备列表', + 'summary' => '调用该接口查询指定产品下的所有设备列表。', 'description' => '## 使用说明'."\n" - ."\n" - .'- 若未在调用[CreateOTAFirmware](~~147311~~)创建升级包时指定升级包无需验证,则调用本接口创建批量升级批次前,必须保证升级包已验证成功。创建验证升级包任务,请参见[CreateOTAVerifyJob](~~147480~~)。'."\n" - .'- 同一设备只能同时在一个升级批次中处于待升级或正在升级状态。对处于待升级或正在升级状态的设备发起新的升级任务,后发起的任务会直接失败。'."\n" - .'- 同一升级包下,只能有一个状态为执行中的动态升级批次。'."\n" - .'- 如果同一个设备处于不同升级包的动态升级策略中,则设备执行最新发起的动态升级。'."\n" - .'- 创建动态升级批次后,系统将自动创建对应的动态升级策略。可以调用[CancelOTAStrategyByJob](~~147905~~)取消动态升级策略。'."\n" - .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持创建动态分组的动态升级批次。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" - .'- 目前仅中国的华东2(上海)、华北2(北京)和华南1(深圳)地域下,支持使用MQTT协议下载升级包。'."\n" + .'调用该接口,单次最多查询到100万个设备。'."\n" ."\n" .'## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n" + ."\n" + .'- 当请求参数**CurrentPage**与**PageSize**的值相乘结果大于或等于100,000时,会降低调用该接口的QPS。'."\n" + .' 此时,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTAJobByFirmware' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceBySQL' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'read', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], - ], - [ - 'name' => 'FirmwareId', - 'in' => 'query', - 'schema' => [ - 'description' => '升级包ID,升级包的唯一标识符。'."\n" - ."\n" - .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'FJFx8JzpnhpIsKftRjjm03****', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中,每页显示的升级批次数量。最大值200。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'SQL', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '查询设备的类SQL语句。具体要求和示例见下文请求参数补充说明。', 'type' => 'string', 'required' => true, 'example' => 'SELECT * FROM device where product_key = "a1*********" limit 100, 20'], ], ], 'responses' => [ @@ -41126,272 +27801,212 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '5D58AC86-D5BF-4B39-834E-913E7F2C985D', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的设备升级作业数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '设备升级作业数量总计。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'TotalCount' => ['description' => '当SELECT子句为`SELECT count(*) FROM device`时,返回的count计数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SimpleOTAJobInfo' => [ - 'description' => '调用成功时,返回的批次信息。详情请参见**SimpleOTAJobInfo**下的参数。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '升级包所属产品的唯一标识。', - 'type' => 'string', - 'example' => 'a19mzPZ****', - ], - 'JobStatus' => [ - 'description' => '批次的状态。'."\n" - ."\n" - .'- **PLANNED**:计划中。批次已创建,但是定时时间未到。仅定时静态升级的批次可能返回该值。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **COMPLETED**:已完成。'."\n" - .'- **CANCELED**:已取消。', - 'type' => 'string', - 'example' => 'IN_PROGRESS', - ], - 'UtcStartTime' => [ - 'description' => '该批次任务开始执行时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'UtcModified' => [ - 'description' => '批次最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'JobId' => [ - 'description' => '升级批次ID,批次的唯一标识符。', - 'type' => 'string', - 'example' => 'HvKuBpuk3rdk6E92CP****0200', - ], - 'UtcCreate' => [ - 'description' => '批次创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'SelectionType' => [ - 'description' => '升级策略。'."\n" - ."\n" - .'- **DYNAMIC**:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" - .'- **STATIC**:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', - 'type' => 'string', - 'example' => 'STATIC', - ], - 'JobType' => [ - 'description' => '批次类型。'."\n" - ."\n" - .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" - .'- **UPGRADE_FIRMWARE**:批量升级批次。', - 'type' => 'string', - 'example' => 'UPGRADE_FIRMWARE', - ], - 'TargetSelection' => [ - 'description' => '升级范围。'."\n" - ."\n" - .'- **ALL**:全量升级。'."\n" - .'- **SPECIFIC**:定向升级。'."\n" - .'- **GRAY**:灰度升级。'."\n" - ."\n" - .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', - 'type' => 'string', - 'example' => 'SPECIFIC', - ], - 'UtcEndTime' => [ - 'description' => '该批次任务执行结束时的时间,UTC格式。'."\n" - ."\n" - .'仅已执行结束的升级批次才返回此参数。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', + 'description' => '调用成功时,返回的设备信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备状态。返回值:'."\n" + ."\n" + .'- **ONLINE**:在线。'."\n" + .'- **OFFLINE**:离线。'."\n" + .'- **UNACTIVE**:未激活。'."\n" + .'- **DISABLE**:已禁用。'."\n", 'type' => 'string', 'example' => 'ONLINE'], + 'ProductKey' => ['description' => '设备所属产品**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV**** '], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'GmtCreate' => ['description' => '设备创建时间,GMT格式。', 'type' => 'string', 'example' => '2020-04-04 16:38:17.000'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => '智能灯设备'], + 'ActiveTime' => ['description' => '设备激活时间,GMT格式。', 'type' => 'string', 'example' => '2020-04-04 16:38:18.607'], + 'GmtModified' => ['description' => '设备信息最后一次更新时间,GMT格式。', 'type' => 'string', 'example' => '2020-04-04 16:38:19.000'], + 'IotId' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100 '], + 'Groups' => [ + 'description' => '设备分组信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => 'a1d21d2fas'], ], - 'FirmwareId' => [ - 'description' => '升级包ID。', - 'type' => 'string', - 'example' => 'UfuxnwygsuSkVE0VCN****0100', + 'description' => '', + ], + ], + 'Tags' => [ + 'description' => '设备标签信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagName' => ['description' => '标签名。', 'type' => 'string', 'example' => 'Color'], + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'Red'], ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'OtaTagDTO' => [ - 'description' => '升级批次标签。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签名。', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'value1', - ], - ], - ], - ], - ], + 'description' => '', + ], + ], + 'OTAModules' => [ + 'description' => '设备的模块固件信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ModuleName' => ['description' => 'OTA模块名称。'."\n", 'type' => 'string', 'example' => 'SomeSampleModule'], + 'FirmwareVersion' => ['description' => 'OTA模块版本号。', 'type' => 'string', 'example' => 'a1-dads2-dad2'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"5D58AC86-D5BF-4B39-834E-913E7F2C985D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"Data\\": {\\n \\"SimpleOTAJobInfo\\": [\\n {\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"JobStatus\\": \\"IN_PROGRESS\\",\\n \\"UtcStartTime\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"UtcModified\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****0200\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"TargetSelection\\": \\"SPECIFIC\\",\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 1\\r\\n \\r\\n \\r\\n STATIC\\r\\n SPECIFIC\\r\\n UPGRADE_FIRMWARE\\r\\n yLYuCqfqQNQ1JOqkDa****0100\\r\\n 2019-12-28T02:43:10.000Z\\r\\n 2019-12-29T02:43:10.000Z\\r\\n a19mzPZ****\\r\\n HvKuBpuk3rdk6E92CP****0200\\r\\n 2019-12-28T02:43:10.000Z\\r\\n IN_PROGRESS\\r\\n 2019-12-28T02:43:10.000Z\\r\\n \\r\\n \\r\\n 10\\r\\n 5D58AC86-D5BF-4B39-834E-913E7F2C985D\\r\\n 1\\r\\n true\\r\\n 1\\r\\n","errorExample":""}]', - 'title' => '获取升级包下的升级任务批次列表', - 'summary' => '调用该接口获取升级包下的升级任务批次列表。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"TotalCount\\": 100,\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\\\t\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"GmtCreate\\": \\"2020-04-04 16:38:17.000\\",\\n \\"Nickname\\": \\"智能灯设备\\",\\n \\"ActiveTime\\": \\"2020-04-04 16:38:18.607\\",\\n \\"GmtModified\\": \\"2020-04-04 16:38:19.000\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\\\t\\",\\n \\"Groups\\": [\\n {\\n \\"GroupId\\": \\"a1d21d2fas\\"\\n }\\n ],\\n \\"Tags\\": [\\n {\\n \\"TagName\\": \\"Color\\",\\n \\"TagValue\\": \\"Red\\"\\n }\\n ],\\n \\"OTAModules\\": [\\n {\\n \\"ModuleName\\": \\"SomeSampleModule\\",\\n \\"FirmwareVersion\\": \\"a1-dads2-dad2\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n501CFABA-2C48-468D-B88C-3AA8E3B3A8F3\\n\\n OFFLINE\\n ii1*******\\n 2020-04-04 16:38:17.000\\n 2020-04-04 16:38:18.607\\n 2020-04-04 16:38:19.000\\n a1*********\\n testDevcieae7f3a\\n\\n\\n UNACTIVE\\n 5wt*******\\n 2020-04-04 16:37:32.000\\n \\n Ix4*******\\n \\n \\n Xrn*******\\n \\n \\n J9l*******\\n \\n \\n SomeSampleModule\\n a1-dads2-dad2\\n \\n \\n SampleModule\\n a1-dads2-dad1\\n \\n 2020-04-04 16:37:32.000\\n a1*********\\n testDevcie676a22\\n\\ntrue\\n","errorExample":""}]', + 'title' => '通过类SQL语句搜索设备', + 'summary' => '通过类SQL语句快速搜索满足指定条件的设备。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 仅支持搜索华东2(上海)、华北2(北京)、华南1(深圳)、日本(东京)地域企业版实例中的设备。'."\n" + .'- 调用该接口,单次最多查询到10,000个设备。使用说明,请参见下文SQL语句的`LIMIT`子句说明。'."\n" + ."\n\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '使用QueryDeviceBySQL进行设备高级搜索时,类SQL语句由SELECT子句、WHERE子句、ORDER BY子句(可选)、LIMIT子句(可选)组成。长度限制400个字符。'."\n" + .'示例:'."\n" + .'`SELECT * FROM device WHERE product_key = "a1*********" order by active_time limit 0,10`'."\n" + .'|SQL子句|说明 |'."\n" + .'|------------- |------------ |'."\n" + .'|SELECT子句|`SELECT [field]/[count(*)] FROM device`
其中field为需要获取的字段,请参见下面的检索字段说明。也可填\\*,获取所有字段。
如果需要获取count计数,则填count(*)。|'."\n" + .'|WHERE子句|`WHERE [condition1] AND [condition2]`
最多使用5个condition,且不支持嵌套,请参见下面的检索字段说明、运算符说明。
连接词支持AND、OR,最多使用5个连接词。|'."\n" + .'|ORDER BY子句(可选)|ORDER BY子句用于实现自定义排序,可自定义排序的字段包括gmt\\_create、gmt\\_modified、active\\_time。
该子句可不填,不填时随机排序。|'."\n" + .'|LIMIT子句(可选)|LIMIT子句用于控制查询的偏移量,有两种用法,参见下表“LIMIT子句使用方法”。
如果不填LIMIT子句,则默认为`limit 20`。|'."\n" + ."\n" + .'LIMIT子句使用方法:'."\n" + .'|方法|说明 |'."\n" + .'|------------- |------------ |'."\n" + .'|limit k|限制k<=50,即单页最大为50。示例:
`SELECT * FROM device WHERE product_key = "a1*****" limit 10`|'."\n" + .'|limit n,k|限制n\\+k<=10000且k<=50,即最大偏移量为10000且单页最大为50。示例:
`SELECT * FROM device WHERE product_key = "a1*****" limit 40,10`|'."\n" + ."\n\n" + ."\n" + .'**检索字段说明**'."\n" + ."\n" + .'|字段名|类型 |说明|'."\n" + .'|------------- |------------ |------------ |'."\n" + .'|product_key|text|设备所属产品ProductKey。|'."\n" + .'|iot_id|text|设备标识符。默认返回iot_id。|'."\n" + .'|name|text|设备名称。|'."\n" + .'|active_time|date|设备激活时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" + .'|nickname|text|设备备注名称。|'."\n" + .'|gmt_create|date|设备创建时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" + .'|gmt_modified|date|设备信息最后一次更新时间。格式为yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒。|'."\n" + .'|status|text|设备状态,取值:
ONLINE:在线。
OFFLINE:离线。
UNACTIVE:未激活。
DISABLE:已禁用。|'."\n" + .'|group.group_id|text|设备分组ID。|'."\n" + .'|tag.tag_name|text|设备标签名。|'."\n" + .'|tag.tag_value|text|设备标签值。|'."\n" + .'|ota\\_module.name|text|OTA模块名称。
与ota\\_module.version配合使用,用于指定设备当前OTA版本号对应的OTA模块。
ota\\_module.version可不传入,不传入时,将不能根据模块名称检索设备。|'."\n" + .'|ota\\_module.version|text|OTA固件版本。|'."\n" + ."\n" + .'**运算符说明**'."\n" + ."\n" + .'|运算符|支持的字段数值类型|'."\n" + .'| ------------- |------------ |'."\n" + .'|=|number、date、text|'."\n" + .'|!=|number、date、text|'."\n" + .'|> |number、date|'."\n" + .'|<|number、date|'."\n" + .'|LIKE|text|'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'其中:'."\n" + .'- =和!=:使用时,支持检索字段值取值为null。'."\n" + .'- LIKE:使用时,支持前缀匹配,不支持后缀匹配或通配符匹配。前缀不得少于4个字符,且不能包含任何特殊字符,例如反斜线(\\)、正斜线(/)、and(&)、加号(+)、短划线(-)、感叹号(!)、半角圆括号(())、半角冒号(:)、波浪线(~)、大括号({})、星号(*)、半角问号(?)等。前缀填写完成后,必须固定以`%` 结尾。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' 示例:`SELECT * FROM device where product_key = "a1*********" and name LIKE "test%" limit 10` '."\n" + ."\n\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTAJobByDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceBySQL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceByStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'FirmwareId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '升级包ID。升级包的唯一标识符。'."\n" - ."\n" - .'升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'FJFx8JzpnhpIsKftRjjm03****', - ], + 'schema' => ['description' => '设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PageSize', + 'name' => 'Status', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的升级包数量。最大限制为100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '设备状态。 可选值:'."\n" + ."\n" + .'- **0**:未激活。'."\n" + .'- **1**:在线。'."\n" + .'- **3**:离线。'."\n" + .'- **8**:已禁用。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'ProductKey', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a19mzPZ****', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'DeviceName', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'light1', - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,最大值是50。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'CurrentPage', + 'name' => 'ResourceGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '显示返回结果的第几页。返回结果页数从1开始排序。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd***'], ], ], 'responses' => [ @@ -41399,298 +28014,134 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'FirmwareId is mandatory for this action', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'MissingFirmwareId', - ], - 'PageSize' => [ - 'description' => '每页显示的升级包数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '升级包数量总计。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '查询到的设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SimpleOTAJobInfo' => [ - 'description' => '调用成功时,返回的升级批次信息。详情请参见以下**SimpleOTAJobInfo**。', + 'SimpleDeviceInfo' => [ + 'description' => '调用成功时,返回的设备信息列表(**SimpleDeviceInfo**)。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '升级包所属产品的唯一标识。', - 'type' => 'string', - 'example' => 'a19mzPZ****', - ], - 'JobStatus' => [ - 'description' => '升级任务批次的状态。'."\n" - ."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - ."\n" - .'- **COMPLETED**:已完成。'."\n" - ."\n" - .'- **CANCELED**:已取消。', - 'type' => 'string', - 'example' => 'COMPLETED', - ], - 'UtcStartTime' => [ - 'description' => '该批次任务开始执行时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', - ], - 'UtcModified' => [ - 'description' => '批次最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', - ], - 'JobId' => [ - 'description' => '升级任务批次ID。', - 'type' => 'string', - 'example' => 'HvKuBpuk3rdk6E92CP****', - ], - 'UtcCreate' => [ - 'description' => '批次创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'SelectionType' => [ - 'description' => '升级策略。'."\n" - ."\n" - .'- DYNAMIC:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" - ."\n" - .'- STATIC:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', - 'type' => 'string', - 'example' => 'STATIC', - ], - 'JobType' => [ - 'description' => '批次类型。'."\n" - ."\n" - .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" - ."\n" - .'- **UPGRADE_FIRMWARE**:批量升级批次。', - 'type' => 'string', - 'example' => 'UPGRADE_FIRMWARE', - ], - 'TargetSelection' => [ - 'description' => '升级范围。'."\n" - ."\n" - .'- **ALL**:全量升级。'."\n" - ."\n" - .'- **SPECIFIC**:定向升级。'."\n" - ."\n" - .'- **GRAY**:灰度升级。'."\n" - ."\n" - .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', - 'type' => 'string', - 'example' => 'ALL', - ], - 'UtcEndTime' => [ - 'description' => '该批次任务执行结束时的时间,UTC格式。'."\n" - ."\n" - .'> 仅已执行结束的升级批次才返回此参数。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', - ], - 'FirmwareId' => [ - 'description' => '升级包ID。', - 'type' => 'string', - 'example' => 'FJFx8JzpnhpIsKftRjjm03****', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'OtaTagDTO' => [ - 'description' => '升级批次标签。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签名。', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'value1', - ], - ], - ], - ], - ], - ], + 'Status' => ['description' => '设备状态。 取值:'."\n" + ."\n" + .'- **UNACTIVE**:未激活。'."\n" + ."\n" + .'- **ONLINE**:在线。'."\n" + ."\n" + .'- **OFFLINE**:离线。'."\n" + ."\n" + .'- **DISABLE**:已禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'UtcModified' => ['description' => '设备信息最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2021-02-18T02:46:32.000Z'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'sLefbFmN9SYfnWLJTePG893XNuRV****'], + 'UtcCreate' => ['description' => '设备创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2021-02-18T02:46:32.000Z'], + 'GmtCreate' => ['description' => '设备创建时的时间,GMT格式。', 'type' => 'string', 'example' => '2021-02-18 10:46:32'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => 'SensorInShanghai'], + 'GmtModified' => ['description' => '设备信息最后一次修改时的时间,GMT格式。', 'type' => 'string', 'example' => '2021-02-18 10:46:32'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'Av8NGHGtwPrH9BYGLMBi00****'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"ErrorMessage\\": \\"FirmwareId is mandatory for this action\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"MissingFirmwareId\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 1,\\n \\"Data\\": {\\n \\"SimpleOTAJobInfo\\": [\\n {\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"JobStatus\\": \\"COMPLETED\\",\\n \\"UtcStartTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"UtcModified\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"TargetSelection\\": \\"ALL\\",\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"FirmwareId\\": \\"FJFx8JzpnhpIsKftRjjm03****\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n1\\n\\n \\n STATIC\\n SPECIFIC\\n UPGRADE_FIRMWARE\\n FJFx8JzpnhpIsKftRjjm03****\\n 2019-12-28T02:43:10.000Z\\n a19mzPZ****\\n HvKuBpuk3rdk6E92CPQN02****\\n 2019-12-28T02:43:10.000Z\\n IN_PROGRESS\\n 2019-12-28T02:43:10.000Z\\n \\n\\n10\\n5D58AC86-D5BF-4B39-834E-913E7F2C985D\\n1\\ntrue\\n1\\n","errorExample":""}]', - 'title' => '获取设备所在的升级包升级批次列表', - 'summary' => '调用该接口获取设备所在的升级包升级批次列表。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcModified\\": \\"2021-02-18T02:46:32.000Z\\",\\n \\"DeviceSecret\\": \\"sLefbFmN9SYfnWLJTePG893XNuRV****\\",\\n \\"UtcCreate\\": \\"2021-02-18T02:46:32.000Z\\",\\n \\"GmtCreate\\": \\"2021-02-18 10:46:32\\",\\n \\"Nickname\\": \\"SensorInShanghai\\",\\n \\"GmtModified\\": \\"2021-02-18 10:46:32\\",\\n \\"IotId\\": \\"Av8NGHGtwPrH9BYGLMBi00****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n CD9E5F99-A095-4A05-9256-D924EA3075E8\\n true\\n 1\\n 10\\n 1\\n 2\\n \\n \\n Av8NGHGtwPrH9BYGLMBi00****\\n Av8NGHG***\\n a1dafDE****\\n d7GYhf5hfcPHDe1bXSd3n9MjO1G3****\\n 2021-02-18T02:46:32.000Z\\n 2021-02-18 10:46:32\\n 2021-02-18T02:46:32.000Z\\n 2021-02-18 10:46:32\\n UNACTIVE\\n SensorInShanghai\\n \\n \\n zNIcSmWQ9BPJlmkjn3H100****\\n zNIcSmWQ***\\n a1dafDE****\\n C27XXmC18yLIEDXvUj6FSlvgO7ag****\\n 2021-02-09T09:44:55.000Z\\n 2021-02-09 17:44:55\\n 2021-02-09T09:44:55.000Z\\n 2021-02-09 17:44:55\\n UNACTIVE\\n DriverInShanghai\\n \\n \\n","errorExample":""}]', + 'title' => '根据设备状态查询设备列表', + 'summary' => '调用该接口根据设备状态查询设备列表。', + 'description' => '## 使用说明'."\n" + .'设备状态变更后,新的状态数据会在变更后10秒内生效。变更数据生效后,才能根据新状态查询到该设备;变更数据生效前,根据原状态仍能查询到该设备。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTATaskByJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceByStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceByTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中,每页显示的设备升级作业数量。最大限制:100。'."\n" - ."\n" - .'>**CurrentPage**与**PageSize**相乘的值必须小于或等于100,000。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], - ], - [ - 'name' => 'TaskStatus', - 'in' => 'query', - 'schema' => [ - 'description' => '传入此参数,则查询指定升级状态下的设备升级作业。'."\n" - ."\n" - .'- **CONFIRM**:待确认。'."\n" - .'- **QUEUED**:待推送。'."\n" - .'- **NOTIFIED**:已推送。'."\n" - .'- **IN_PROGRESS**:升级中。'."\n" - .'- **SUCCEEDED**:升级成功。'."\n" - .'- **FAILED**:升级失败。'."\n" - .'- **CANCELED**:已取消。'."\n" - ."\n" - .'不传入此参数,则查询指定升级批次下的全部设备升级作业。', - 'type' => 'string', - 'required' => false, - 'example' => 'FAILED', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'JobId', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID,升级批次的唯一标识符。您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)返回的**JobId**。您也可以在物联网平台控制台上OTA升级包的**升级包详情**页查看。', - 'type' => 'string', - 'required' => true, - 'example' => '7glPHmaDYLAYMD1HHutT02****', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'CurrentPage', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。页数从1开始排序。'."\n" - ."\n" - .'>**CurrentPage**与**PageSize**相乘的值必须小于或等于100,000。'."\n" - .'>', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '指定返回结果中每页显示的设备记录数量,最大值是50。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'DeviceNames', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '指定查询的设备名称列表。'."\n" - ."\n" - .'> - 最多传入设备名称50个。'."\n" - .'- 如果传入该参数,则无需传入**PageSize**和**CurrentPage**。如果您同时传入**DeviceNames.N**、**PageSize**和**CurrentPage**,则以**DeviceNames.N**为准。', + 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '设备标签的值。', 'type' => 'string', 'required' => true, 'example' => '101'], + 'TagKey' => ['description' => '设备标签的Key。', 'type' => 'string', 'required' => true, 'example' => 'room'], + ], + 'required' => false, + 'description' => '', ], 'required' => false, - 'example' => 'device1', - 'maxItems' => 50, + 'maxItems' => 10, ], ], ], @@ -41699,216 +28150,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的设备升级作业数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '设备升级作业数量总计。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Page' => ['description' => '当前页面号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SimpleOTATaskInfo' => [ - 'description' => '调用成功时,返回的设备升级作业信息。更多信息,请参见**SimpleOTATaskInfo**下的参数。', + 'SimpleDeviceInfo' => [ + 'description' => '调用成功时,返回的设备信息列表(**SimpleDeviceInfo**)。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Timeout' => [ - 'description' => '设备升级超时时间,单位是分钟。'."\n" - ."\n" - .'> 如果发起批量升级未设置超时时间,该参数返回值为空。', - 'type' => 'string', - 'example' => '1440', - ], - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => 'MyProduct', - ], - 'Progress' => [ - 'description' => '当前的升级进度。', - 'type' => 'string', - 'example' => '0.00', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'testDevice2', - ], - 'UtcCreate' => [ - 'description' => '升级作业创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T03:38:22.000Z', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1GUfrM****', - ], - 'TaskStatus' => [ - 'description' => '设备升级状态。'."\n" - ."\n" - .'- **CONFIRM**:待确认。'."\n" - .'- **QUEUED**:待推送。'."\n" - .'- **NOTIFIED**:已推送。'."\n" - .'- **IN_PROGRESS**:升级中。'."\n" - .'- **SUCCEEDED**:升级成功。'."\n" - .'- **FAILED**:升级失败。'."\n" - .'- **CANCELED**:已取消。', - 'type' => 'string', - 'example' => 'FAILED', - ], - 'UtcModified' => [ - 'description' => '升级作业最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T03:38:22.000Z', - ], - 'JobId' => [ - 'description' => '升级批次ID。', - 'type' => 'string', - 'example' => '7glPHmaDYLAYMD1HHutT02****', - ], - 'SrcVersion' => [ - 'description' => '设备的原固件版本。', - 'type' => 'string', - 'example' => '1.0.0', - ], - 'TaskDesc' => [ - 'description' => '升级作业描述信息。当设备升级超时、升级作业被取消等场景下,该参数承载具体的错误信息。', - 'type' => 'string', - 'example' => 'report version is not conform', - ], - 'TaskId' => [ - 'description' => '设备升级作业ID。', - 'type' => 'string', - 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', - ], - 'DestVersion' => [ - 'description' => '升级的目标OTA升级包版本。', - 'type' => 'string', - 'example' => '1.0.1', - ], - 'FirmwareId' => [ - 'description' => '升级包ID。', - 'type' => 'string', - 'example' => 'q3j9OYBjUAZMv1hlMgdo03****', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'nadRdeffljdEndlfadgadfse****', - ], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => 'lamp'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light1'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 2,\\n \\"Data\\": {\\n \\"SimpleOTATaskInfo\\": [\\n {\\n \\"Timeout\\": \\"1440\\",\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"Progress\\": \\"0.00\\",\\n \\"DeviceName\\": \\"testDevice2\\",\\n \\"UtcCreate\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"ProductKey\\": \\"a1GUfrM****\\",\\n \\"TaskStatus\\": \\"FAILED\\",\\n \\"UtcModified\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"JobId\\": \\"7glPHmaDYLAYMD1HHutT02****\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"TaskDesc\\": \\"report version is not conform\\",\\n \\"TaskId\\": \\"y3tOmCDNgpR8F9jnVEzC01****\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"FirmwareId\\": \\"q3j9OYBjUAZMv1hlMgdo03****\\",\\n \\"IotId\\": \\"nadRdeffljdEndlfadgadfse****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n 1.0.0\\n testDevice1\\n q3j9OYBjUAZMv1hlMgdo03****\\n SR8FiTu1R9tlUR2V1bmi00105****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n report version is not conform\\n 1.0.1\\n 1440\\n 2019-11-04T03:38:15.000Z\\n 2019-11-04T03:38:15.000Z\\n FAILED\\n MyProduct\\n y3tOmCDNgpR8F9jnVEzC01****\\n 0.00\\n \\n \\n 1.0.0\\n testDevice2\\n q3j9OYBjUAZMv1hlMgdo03****\\n nadRdeffljdEndlfadgadfse****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n \\n 1.0.1\\n 1000\\n 2019-11-04T03:38:22.000Z\\n 2019-11-04T03:38:22.000Z\\n SUCCEEDED\\n MyProduct\\n ZS9sNBb1ahsu6khqr9II01****\\n 100.00\\n \\n\\n10\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\n1\\ntrue\\n2\\n","errorExample":""}]', - 'title' => '查询指定升级批次下的设备升级作业列表', - 'summary' => '调用该接口查询指定升级批次下的设备升级作业列表。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ProductName\\": \\"lamp\\",\\n \\"DeviceName\\": \\"light1\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n 1102jichu02\\n a1SM5S1****\\n GookTiUcwqRbHosp9Ta10****3a00\\n TEST\\n \\n\\n10\\n1\\n2B5091E4-32D5-4884-A5B2-2E8E713D84AF\\ntrue\\n1\\n","errorExample":""}]', + 'title' => 'QueryDeviceByTags', + 'summary' => '调用该接口通过标签查询设备。', + 'description' => '## 使用说明'."\n" + .'单次调用,最多可输入10个标签。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryOTAJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceCert' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'operationType' => 'read', + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'JobId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID。'."\n" - ."\n" - .'您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务批次后,返回的**JobId**。您也可以在物联网平台控制台的**升级包详情**页面查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'wahVIzGkCMuAUE2gDERM02****', - ], + 'schema' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'light'], ], ], 'responses' => [ @@ -41916,506 +28249,127 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的升级批次信息。详情见以下Data所包含的参数。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。'."\n", 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceCertInfo' => [ + 'description' => '返回的证书信息列表。', 'type' => 'object', 'properties' => [ - 'UtcCreate' => [ - 'description' => '批次创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'RetryInterval' => [ - 'description' => '设备升级失败后,自动重试时间间隔,单位:分钟。'."\n" - ."\n" - .'创建升级批次时,设置了失败重试策略,则返回该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '60', - ], - 'JobType' => [ - 'description' => '批次类型。'."\n" - ."\n" - .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" - .'- **UPGRADE_FIRMWARE**:批量升级批次。', - 'type' => 'string', - 'example' => 'UPGRADE_FIRMWARE', - ], - 'SelectionType' => [ - 'description' => '升级策略。'."\n" - ."\n" - .'- **DYNAMIC**:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" - .'- **STATIC**:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', - 'type' => 'string', - 'example' => 'STATIC', - ], - 'OverwriteMode' => [ - 'description' => '是否覆盖之前的升级任务。取值:'."\n" - ."\n" - .'- **1**:不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" - .'- **2**:覆盖。设备只执行新的升级任务。'."\n" - ."\n" - .'不覆盖升级中的任务。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TargetSelection' => [ - 'description' => '升级范围。'."\n" - ."\n" - .'- **ALL**:全量升级。'."\n" - .'- **SPECIFIC**:定向升级。'."\n" - .'- **GRAY**:灰度升级。'."\n" - ."\n" - .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', - 'type' => 'string', - 'example' => 'SPECIFIC', - ], - 'TimeoutInMinutes' => [ - 'description' => '设备升级超时时间,单位:分钟。'."\n" - ."\n" - .'创建升级批次时,设置了超时时间,则返回该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '5', - ], - 'GrayPercent' => [ - 'description' => '灰度升级的比例。'."\n" - ."\n" - .'仅升级范围为灰度升级时,返回该参数。', - 'type' => 'string', - 'example' => '50.00', - ], - 'NeedPush' => [ - 'description' => '物联网平台是否主动向设备推送升级任务。'."\n" - ."\n", - 'type' => 'boolean', - 'example' => 'true', - ], - 'JobStatus' => [ - 'description' => '批次的状态。'."\n" - ."\n" - .'- **PLANNED**:计划中。批次已创建,但是定时时间未到。仅定时静态升级的批次可能返回该值。'."\n" - .'- **IN_PROGRESS**:执行中。'."\n" - .'- **COMPLETED**:已完成。'."\n" - .'- **CANCELED**:已取消。', - 'type' => 'string', - 'example' => 'IN_PROGRESS', - ], - 'JobDesc' => [ - 'description' => '升级批次描述。', - 'type' => 'string', - 'example' => 'batch upgrade', - ], - 'UtcModified' => [ - 'description' => '批次最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'UtcStartTime' => [ - 'description' => '该批次任务开始执行时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-12-28T02:43:10.000Z', - ], - 'MultiModuleMode' => [ - 'description' => '设备是否支持多模块同时升级。'."\n" - ."\n" - .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" - .'- **true**:是,设备支持多模块同时升级。'."\n" - ."\n" - .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'UtcEndTime' => [ - 'description' => '该批次任务执行结束时的时间,UTC格式。'."\n" - ."\n" - .'仅已执行结束的升级批次才返回此参数。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', - ], - 'Name' => [ - 'description' => '升级包名称。', - 'type' => 'string', - 'example' => 'Firmware2', - ], - 'DestVersion' => [ - 'description' => '升级目标版本号。', - 'type' => 'string', - 'example' => '1.0.1', - ], - 'UtcScheduleFinishTime' => [ - 'description' => '定时升级结束的时间。仅定时升级任务且设置了定时升级结束时间时会返回该参数。', - 'type' => 'string', - 'example' => '2019-12-30T02:43:10.000Z', - ], - 'MaximumPerMinute' => [ - 'description' => '每分钟最多向多少个设备推送升级包下载URL。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'DynamicMode' => [ - 'description' => '动态升级模式。取值范围:'."\n" - ."\n" - .'- **1**:除了升级当前满足升级条件的设备,还将持续检查设备是否满足升级条件,对满足升级条件的设备进行升级。'."\n" - .'- **2**:仅对后续上报新版本号的设备生效。'."\n" - ."\n" - .'仅升级策略为动态升级时,返回该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RetryCount' => [ - 'description' => '设备升级失败后,自动重试次数。'."\n" - ."\n" - .'创建升级批次时,设置了失败重试策略,则返回该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ProductKey' => [ - 'description' => '升级包所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a19mzPZ****', - ], - 'GroupName' => [ - 'description' => '分组升级的设备分组名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'GroupId' => [ - 'description' => '分组升级的设备分组ID。', - 'type' => 'string', - 'example' => 'CtjzCkNuOxUR***', - ], - 'UtcScheduleTime' => [ - 'description' => '定时升级发起的时间。仅定时升级任务会返回该参数。', - 'type' => 'string', - 'example' => '2019-12-29T02:43:10.000Z', - ], - 'JobId' => [ - 'description' => '升级批次ID,批次的唯一标识符。', - 'type' => 'string', - 'example' => 'HvKuBpuk3rdk6E92CP****0200', - ], - 'DownloadProtocol' => [ - 'description' => '升级包文件的下载协议。', - 'type' => 'string', - 'example' => 'HTTPS', - ], - 'NeedConfirm' => [ - 'description' => '是否App确认升级。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'FirmwareId' => [ - 'description' => '升级包ID。', - 'type' => 'string', - 'example' => 'UfuxnwygsuSkVE0VCN****0100', - ], - 'Tags' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'OtaTagDTO' => [ - 'description' => '升级批次标签。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '标签名。', - 'type' => 'string', - 'example' => 'key1', - ], - 'Value' => [ - 'description' => '标签值。', - 'type' => 'string', - 'example' => 'value1', - ], - ], - ], - ], - ], - ], - 'SrcVersions' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'SrcVersion' => [ - 'type' => 'array', - 'items' => [ - 'description' => '待升级版本号列表。', - 'type' => 'string', - 'example' => '{"SrcVersion": ["1.0.0"]}', - ], - ], - ], - ], + 'Status' => ['description' => '证书生成状态。'."\n" + ."\n" + .'- **0**:生成中。'."\n" + ."\n" + .'- **1**:生成失败。'."\n" + ."\n" + .'- **2**:生成成功。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Certificate' => ['description' => 'X.509证书。', 'type' => 'string', 'example' => 'tXHf4ezGEHcwdyMwoCDHGBmk9avi****'], + 'PrivateKey' => ['description' => 'X.509证书密钥。', 'type' => 'string', 'example' => 'CqXL5h5ysRTA4NxjABjj0010fa****'], + 'CertSN' => ['description' => 'X.509证书ID。', 'type' => 'string', 'example' => '636217374433****'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"RetryInterval\\": 60,\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"OverwriteMode\\": 1,\\n \\"TargetSelection\\": \\"SPECIFIC\\",\\n \\"TimeoutInMinutes\\": 5,\\n \\"GrayPercent\\": \\"50.00\\",\\n \\"NeedPush\\": true,\\n \\"JobStatus\\": \\"IN_PROGRESS\\",\\n \\"JobDesc\\": \\"batch upgrade\\",\\n \\"UtcModified\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"UtcStartTime\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"MultiModuleMode\\": false,\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"Name\\": \\"Firmware2\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"UtcScheduleFinishTime\\": \\"2019-12-30T02:43:10.000Z\\",\\n \\"MaximumPerMinute\\": 1000,\\n \\"DynamicMode\\": 1,\\n \\"RetryCount\\": 1,\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"GroupName\\": \\"test\\",\\n \\"GroupId\\": \\"CtjzCkNuOxUR***\\",\\n \\"UtcScheduleTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****0200\\",\\n \\"DownloadProtocol\\": \\"HTTPS\\",\\n \\"NeedConfirm\\": false,\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n },\\n \\"SrcVersions\\": {\\n \\"SrcVersion\\": [\\n \\"{\\\\\\"SrcVersion\\\\\\": [\\\\\\"1.0.0\\\\\\"]}\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5\\n batch upgrade\\n HTTPS\\n 2019-12-28T02:43:10.000Z\\n 2019-12-29T02:43:10.000Z\\n a19mzPZ****\\n 2019-12-28T02:43:10.000Z\\n IN_PROGRESS\\n 2019-12-28T02:43:10.000Z\\n STATIC\\n SPECIFIC\\n UPGRADE_FIRMWARE\\n \\n \\n 60\\n 1\\n 1\\n true\\n 1000\\n \\n 1.0.0\\n \\n firmware2\\n true\\n false\\n UfuxnwygsuSkVE0VCN****0100\\n HvKuBpuk3rdk6E92CP****0200\\n 1.0.1\\n\\n30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定升级批次的详情', - 'summary' => '调用该接口查询指定升级批次的详情。', - 'description' => '## 使用说明'."\n" - .'您可调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务批次后,根据返回的**JobId**查看升级批次的详情。'."\n" - ."\n" - .'## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"DeviceCertInfo\\": {\\n \\"Status\\": 2,\\n \\"Certificate\\": \\"tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\",\\n \\"PrivateKey\\": \\"CqXL5h5ysRTA4NxjABjj0010fa****\\",\\n \\"CertSN\\": \\"636217374433****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 2\\n tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\n CqXL5h5ysRTA4NxjABjj0010fa****\\n 636217374433****\\n\\n","errorExample":""}]', + 'title' => '查询设备的X.509证书', + 'summary' => '调用该接口查询设备的X.509证书。', + 'description' => '## 限制说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'- 仅支持地域为华东2(上海),且认证方式为X.509证书的设备。'."\n" + ."\n\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CancelOTAStrategyByJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID。'."\n" - ."\n" - .'您调用[CreateOTADynamicUpgradeJob](~~147887~~)创建批次返回的**JobId**。您也可以在物联网平台控制台固件的**固件详情**页查看。', - 'type' => 'string', - 'required' => true, - 'docRequired' => true, - 'example' => 'HvKuBpuk3rdk6E92CP****0200', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '取消动态升级策略', - 'summary' => '调用该接口取消动态升级策略。', - 'description' => '## 使用说明'."\n" - .'只支持取消动态升级批次所关联的动态升级策略。该接口对静态升级批次无效。'."\n" - ."\n" - .'该接口执行成功后,会将动态升级批次的状态(**JobStatus**)设置为已取消(CANCELED)。'."\n" - ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'CancelOTATaskByJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryDeviceDesiredProperty' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID。'."\n" - ."\n" - .'您调用[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建批次返回的**JobId**。您也可以在物联网平台控制台固件的**固件详情**页查看。', - 'type' => 'string', - 'required' => true, - 'example' => '7glPHmaDYLAYMD1HHutT02****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'CancelScheduledTask', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '取消定时升级批次下的设备升级作业,即调用[CreateOTAStaticUpgradeJob](~~147496~~)时,传入了**ScheduleTime**参数创建的升级批次。取值:'."\n" - ."\n" - .'- **true**:取消。'."\n" - .'- **false**(默认):不取消。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '要查询的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'CancelQueuedTask', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '取消批次下所有状态为待推送(**QUEUED**)的设备升级作业。取值:'."\n" - ."\n" - .'- **true**:取消。'."\n" - .'- **false**(默认):不取消。'."\n" - ."\n" - .'>该参数值为**true**时,如果传入**CancelUnconfirmedTask**参数值,则仅取消待推送状态的设备升级作业;如果不传入**CancelUnconfirmedTask**参数值,则会取消待确认和待推送状态的设备升级任务。'."\n" - .'>'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'CancelInProgressTask', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '取消批次下所有状态为升级中(**IN_PROGRESS**)的设备升级作业。取值:'."\n" - ."\n" - .'- **true**:取消。'."\n" - .'- **false**(默认):不取消。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ - 'name' => 'CancelNotifiedTask', + 'name' => 'FunctionBlockId', 'in' => 'query', - 'schema' => [ - 'description' => '取消批次下所有状态为已推送(**NOTIFIED**)的设备升级作业。取值:'."\n" - ."\n" - .'- **true**:取消。'."\n" - .'- **false**(默认):不取消。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块的数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], [ - 'name' => 'CancelUnconfirmedTask', + 'name' => 'Identifier', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => "\n" - .'取消批次下所有状态为待确认(**CONFIRM**)的设备升级作业。取值:'."\n" - ."\n" - .'- **true**:取消。'."\n" - .'- **false**:不取消。'."\n" + 'description' => '要查询期望值的属性的标识符(identifier)列表。'."\n" ."\n" - .'默认值为空。'."\n" + .'设备的属性identifier,可在控制台中,设备所属产品的功能定义中查看。'."\n" ."\n" - .'>如果不传入此参数,当**CancelQueuedTask**值为**true**时,会同步取消待确认状态的设备升级任务;当**CancelQueuedTask**值为**false**时,不会取消待确认状态的设备升级作业。'."\n" - .'>', - 'type' => 'boolean', + .'- 单次调用,最多能传入10个标识符。'."\n" + .'- 不可输入重复的属性标识符。'."\n" + .'- 若不传入此参数,将返回该设备所有属性的期望值。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => 'false', + 'example' => 'Temperature', + 'maxItems' => 10, ], ], ], @@ -42424,137 +28378,120 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据(**List**)。', + 'type' => 'object', + 'properties' => [ + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DesiredPropertyInfo' => [ + 'description' => '返回的期望属性信息(**DesiredPropertyInfo**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '期望属性值的修改时间,单位是毫秒。', 'type' => 'string', 'example' => '1579335899000'], + 'Value' => ['description' => '期望属性值。'."\n" + ."\n" + .'> 如果已调用[ClearDeviceDesiredProperty](~~477431~~)接口清空对应属性的期望值,则不会返回参数**Value**。', 'type' => 'string', 'example' => '34'], + 'DataType' => ['description' => '属性数据类型。', 'type' => 'string', 'example' => 'int'], + 'Version' => ['description' => '当前期望属性值的版本号。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'Unit' => ['description' => '属性单位。', 'type' => 'string', 'example' => '℃'], + 'Identifier' => ['description' => '属性标识符。', 'type' => 'string', 'example' => 'Temperature'], + 'Name' => ['description' => '属性名称。', 'type' => 'string', 'example' => 'airconditioning'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '取消指定批次下的设备升级作业', - 'summary' => '调用该接口取消指定批次下的设备升级作业。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"List\\": {\\n \\"DesiredPropertyInfo\\": [\\n {\\n \\"Time\\": \\"1579335899000\\",\\n \\"Value\\": \\"34\\",\\n \\"DataType\\": \\"int\\",\\n \\"Version\\": 1,\\n \\"Unit\\": \\"℃\\",\\n \\"Identifier\\": \\"Temperature\\",\\n \\"Name\\": \\"airconditioning\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n 温度\\n 35\\n \\n float\\n 1\\n Temperature\\n °C\\n \\n \\n\\nF0B1F7C8-A799-44C3-BDF8-1B8F9E91E675\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的期望属性值', + 'summary' => '调用该接口查询指定设备的期望属性值。', 'description' => '## 使用说明'."\n" - .'调用本接口时,除必传参数**JobId**,还需对照非必选参数,传入待取消升级作业对应的类型或状态,否则调用接口会失败。'."\n" + ."\n" + .'- 只读属性不支持查询期望属性值。'."\n" + ."\n" + .'- 一次调用最多能查询10个属性的期望值。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .' > RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CancelOTATaskByDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'FirmwareId', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA升级包ID,OTA升级包的唯一标识符。'."\n" - ."\n" - .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建OTA升级包时,返回的参数之一。'."\n" - ."\n" - .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'T0F5b5tpFnHQrgfk****030100', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '要取消升级的设备所属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1V4kde****', - ], + 'schema' => ['description' => '要查询的设备所隶属的产品Key。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'JobId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID。传入此参数则只取消指定批次下的设备升级任务。'."\n" - .'批次ID是您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务后返回的**JobId**。您也可以在物联网平台控制台上固件的**固件详情**页查看。', - 'type' => 'string', - 'required' => false, - 'example' => 'wahVIzGkCMuAUE2gDERM02****', - ], + 'schema' => ['description' => '指定要查询的设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'DeviceName', + 'name' => 'IotId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要取消升级的设备名称。'."\n" - ."\n" - .'设备名称不能重复。'."\n" - ."\n" - .'最多可传入200个设备名称。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'device1', - 'maxItems' => 200, - ], + 'schema' => ['description' => '要查询的设备ID。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -42562,121 +28499,155 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回设备的详细信息。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备状态。取值:'."\n" + ."\n" + .'- **ONLINE**:设备在线。'."\n" + ."\n" + .'- **OFFLINE**:设备离线。'."\n" + ."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + ."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'example' => 'ONLINE'], + 'Owner' => ['description' => 'API调用者是否是该设备的拥有者。', 'type' => 'boolean', 'example' => 'true'], + 'UtcActive' => ['description' => '设备的激活时间,UTC格式。', 'type' => 'string', 'example' => '2018-08-06T02:48:41.000Z'], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'test'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'UtcCreate' => ['description' => '设备的创建时间,UTC格式。', 'type' => 'string', 'example' => '2018-08-06T02:47:50.000Z'], + 'FirmwareVersion' => ['description' => '设备默认(default)OTA模块的版本号。'."\n" + ."\n" + .'如果需要查询设备上报过的其他OTA模块版本信息,请参见[ListOTAModuleVersionsByDevice](~~190622~~)。', 'type' => 'string', 'example' => 'V1.0.0.0'], + 'GmtOnline' => ['description' => '设备最近一次上线的时间,GMT格式。', 'type' => 'string', 'example' => '2018-08-06 13:43:12'], + 'UtcOnline' => ['description' => '设备最近一次上线的时间,UTC格式。', 'type' => 'string', 'example' => '2018-08-06T05:43:12.000Z'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1rYuVF****'], + 'IpAddress' => ['description' => '设备的IP地址。', 'type' => 'string', 'example' => '10.0.0.1'], + 'NodeType' => ['description' => '节点类型,取值:'."\n" + .'- **0**:设备。设备不能挂载子设备。可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Region' => ['description' => '设备所在地区(与控制台上的物联网地平台服务地域对应)。', 'type' => 'string', 'example' => 'cn-shanghai'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****'], + 'GmtActive' => ['description' => '设备的激活时间,GMT格式。', 'type' => 'string', 'example' => '2018-08-06 10:48:41'], + 'GmtCreate' => ['description' => '设备的创建时间,GMT格式。', 'type' => 'string', 'example' => '2018-08-06 10:47:50'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => 'detectors_in_beijing'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n A01829CE-75A1-4920-B775-921146A1AB79\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '取消待升级设备升级作业', - 'summary' => '取消指定固件下状态为待升级的设备升级作业。', - 'description' => '## 使用说明'."\n" - .'该接口只能取消待推送、已推送、升级中状态的设备升级。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"Owner\\": true,\\n \\"UtcActive\\": \\"2018-08-06T02:48:41.000Z\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2018-08-06T02:47:50.000Z\\",\\n \\"FirmwareVersion\\": \\"V1.0.0.0\\",\\n \\"GmtOnline\\": \\"2018-08-06 13:43:12\\",\\n \\"UtcOnline\\": \\"2018-08-06T05:43:12.000Z\\",\\n \\"ProductKey\\": \\"a1rYuVF****\\",\\n \\"IpAddress\\": \\"10.0.0.1\\",\\n \\"NodeType\\": 0,\\n \\"Region\\": \\"cn-shanghai\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"GmtActive\\": \\"2018-08-06 10:48:41\\",\\n \\"GmtCreate\\": \\"2018-08-06 10:47:50\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 2020-01-16 13:33:37\\n Humidity\\n a1ttsqu****\\n sLefbFmN9SYfnWLJTePG893XNuRV****\\n 42.120.75.144\\n 2020-01-08 14:47:08\\n 2020-01-08T06:47:08.000Z\\n dwnS41bhNxjslDAIF****00100\\n OFFLINE\\n 2020-01-17T08:19:11.091Z\\n cn-shanghai\\n 2020-01-16T05:33:37.830Z\\n 温湿度\\n 0\\n 2020-01-17 16:19:11\\n 光照温湿度传感器\\n\\nD2D2DE90-DD0F-44EA-9F56-63F07A59F65B\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的详细信息', + 'summary' => '调用该接口查询指定设备的详细信息。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateOTAModule' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceDistributeDetail' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'AliasName', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块别名。支持中文、英文字母、数字、英文句号(.)、短划线(-)和下划线(_),长度限制为1~64个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '条码扫描仪', - ], + 'schema' => ['description' => '分发任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'UbmsMHmkqv0PiAG****010001'], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'File' => ['description' => '分发结果的文件URL,即文件在对象存储(OSS)上的存储地址,有效期为10分钟。'."\n", 'type' => 'string', 'example' => 'https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"File\\": \\"https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***\\"\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nhttps://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***\\ntrue\\n","errorExample":""}]', + 'title' => '获取设备分发任务执行完成后的结果信息', + 'summary' => '调用该接口获取设备分发任务执行完成后的结果信息。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" + ."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'ModuleName', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块名称,产品下唯一且不可修改。仅支持英文字母、数字、英文句号(.)、短划线(-)和下划线(_)。长度限制为1~64个字符。'."\n" - .'> 英文字母不区分大小写,例如“scanner”和“Scanner”被认为是相同的模块名称,不可重复使用。', - 'type' => 'string', - 'required' => true, - 'example' => 'barcodeScanner', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDistributeDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryDeviceDistributeJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Desc', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块的描述信息,支持最多100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '条码扫描仪的固件模块', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'ProductKey', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块所属产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Le6d0****', - ], + 'schema' => ['description' => '分发任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'UbmsMHmkqv0PiAG****010001'], ], ], 'responses' => [ @@ -42684,125 +28655,181 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => ' E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功后,返回的设备分发任务详情。', + 'type' => 'object', + 'properties' => [ + 'Strategy' => ['description' => '分发策略。'."\n" + ."\n" + .'- **0**:指定地域,将设备分发到指定地域的指定实例。'."\n" + .'- **1**:就近接入,配置了多个地域的实例ID,设备将根据设备的IP位置动态接入其中距离最近的地域。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Status' => ['description' => '分发任务状态。'."\n" + ."\n" + .'- **0**:任务初始化。'."\n" + ."\n" + .'- **1**:任务执行中。'."\n" + .' '."\n" + .'- **2**:任务完成。该状态仅表示分发任务执行完成,不表示所有产品和设备都分发成功。获取分发结果详情,请调用[QueryDeviceDistributeDetail](~~199533~~)。'."\n" + ."\n" + .'- **3**:任务异常中断。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'TargetUid' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => '198***'], + 'JobId' => ['description' => '分发任务的ID。', 'type' => 'string', 'example' => 'UbmsMHmkqv0PiAG****010001'], + 'GmtCreate' => ['description' => '分发任务的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942000'], + 'SourceUid' => ['description' => '阿里云账号ID。', 'type' => 'string', 'example' => '198***'], + 'Total' => ['description' => '分发任务中的设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'SourceInstanceId' => ['description' => '源实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + 'TargetInstanceConfigs' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'targetInstanceConfigs' => [ + 'description' => '目标实例ID列表。'."\n" + ."\n" + .'- 当参数**Strategy**为**1**时,列表可有多个实例ID。'."\n" + .'- 当参数**Strategy**为**0**时,列表有一个实例ID。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TargetInstanceId' => ['description' => '目标实例ID。', 'type' => 'string', 'example' => 'iot-cn-6ja***'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\n true\\n","errorExample":""}]', - 'title' => '创建产品的OTA模块', - 'summary' => '调用该接口创建产品的OTA模块。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\" E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Strategy\\": 0,\\n \\"Status\\": 1,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"TargetUid\\": \\"198***\\",\\n \\"JobId\\": \\"UbmsMHmkqv0PiAG****010001\\",\\n \\"GmtCreate\\": 1581595942000,\\n \\"SourceUid\\": \\"198***\\",\\n \\"Total\\": 5,\\n \\"SourceInstanceId\\": \\"iot-cn-6ja***\\",\\n \\"TargetInstanceConfigs\\": {\\n \\"targetInstanceConfigs\\": [\\n {\\n \\"TargetInstanceId\\": \\"iot-cn-6ja***\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 1581595942000\\n 198***\\n 5\\n 0\\n 198***\\n iot-cn-6ja***\\n \\n \\n iot-cn-6ja***\\n \\n \\n a1BwAGV****\\n UbmsMHmkqv0PiAG****010001\\n\\ntrue\\n","errorExample":""}]', + 'title' => '获取设备分发任务的详细信息', + 'summary' => '调用该接口获取设备分发任务的详细信息。', 'description' => '## 使用说明'."\n" - .'OTA模块是同产品下设备的不同可升级模块。默认(default)模块表示整个设备的OTA升级包。您可以调用该接口创建自定义OTA模块。'."\n" ."\n" - .'- 同一产品下最多自定义10个OTA模块。'."\n" + .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即`iot.cn-shanghai.aliyuncs.com`。'."\n" ."\n" - .'- 创建后,OTA模块名称不可更改,可调用[UpdateOTAModule](~~186061~~)修改模块别名、模块描述。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateOTAModule' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceEventData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'AliasName', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '新的模块别名。支持中文、英文字母、数字、英文句号(.)、短划线(-)和下划线(_),长度限制为1~64个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '条码扫描仪2', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'ModuleName', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'barcodeScanner', - ], + 'schema' => ['description' => '要查询的设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Desc', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '新的模块描述信息,支持最多100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '条码扫描仪的固件模块', - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'ProductKey', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Le6d0****', - ], + 'schema' => ['description' => '要查询的事件记录的开始时间。格式为毫秒级的13位时间戳,例如:1516538300303。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1516541900303'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件标识符。设备的事件**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + ."\n" + .'> 如果是自定义(非默认)模块**testFb**下事件**PowerOff**,则参数值为**testFb:PowerOff**。'."\n" + ."\n" + .'不传入此参数时,查询默认模块和自定义模块下的所有事件数据。', 'type' => 'string', 'required' => false, 'example' => 'PowerOff'], + ], + [ + 'name' => 'EventType', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件类型。取值:'."\n" + ."\n" + .'- **info**:信息。'."\n" + ."\n" + .'- **alert**:告警。'."\n" + ."\n" + .'- **error**:故障。', 'type' => 'string', 'required' => false, 'example' => 'info'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中事件记录的排序方式,取值:'."\n" + ."\n" + .'- **0**(默认):倒序。'."\n" + .'- **1**:正序。'."\n" + ."\n" + .'> 不传入此参数时,使用默认值**0**,按照倒序进行排序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件记录的结束时间。格式为毫秒级的13位时间戳,例如:1516541900303。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1516541900303'], ], ], 'responses' => [ @@ -42810,99 +28837,138 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的设备事件记录。', + 'type' => 'object', + 'properties' => [ + 'NextValid' => ['description' => '是否有下一页事件记录。'."\n" + ."\n" + .'- **true**:有,返回**NextTime**。详细说明,请参见**NextTime**描述。'."\n" + .'- **false**:没有。', 'type' => 'boolean', 'example' => 'true'], + 'NextTime' => ['description' => '下一页面中的事件记录的起始时间。毫秒级时间戳。'."\n" + ."\n" + .'- 当事件记录的排序方式为倒序(入参**Asc**为0或不传入),调用本接口查询下一页事件记录时,该值可作为下次查询的入参**EndTime**的值。'."\n" + .'- 当事件记录的排序方式为正序(入参**Asc**为1),调用本接口查询下一页事件记录时,该值可作为下次查询的入参**StartTime**的值。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1579163099000'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EventInfo' => [ + 'description' => '事件集合。每个元素代表一个事件。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Identifier' => ['description' => '事件标识符。', 'type' => 'string', 'example' => 'PowerOff'], + 'OutputData' => ['description' => '事件的输出参数,map格式的字符串。', 'type' => 'string', 'example' => '{"structArgs":{"structchildFLOATf71c20e":1.23}}'], + 'Time' => ['description' => '事件发生时间。毫秒级时间戳。', 'type' => 'string', 'example' => '1579163099000'], + 'EventType' => ['description' => '事件类型。'."\n" + .'- **info**:信息。'."\n" + .'- **alert**:告警。'."\n" + .'- **error**:故障。', 'type' => 'string', 'example' => 'info'], + 'Name' => ['description' => '事件名称。', 'type' => 'string', 'example' => '设备关机'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '修改OTA模块别名或描述', - 'summary' => '调用该接口修改OTA模块别名、描述。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579163099000,\\n \\"List\\": {\\n \\"EventInfo\\": [\\n {\\n \\"Identifier\\": \\"PowerOff\\",\\n \\"OutputData\\": \\"{\\\\\\"structArgs\\\\\\":{\\\\\\"structchildFLOATf71c20e\\\\\\":1.23}}\\",\\n \\"Time\\": \\"1579163099000\\",\\n \\"EventType\\": \\"info\\",\\n \\"Name\\": \\"设备关机\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n 1579249151177\\n \\n \\n testEventInfoName\\n \\n {\\"structArgs\\":{\\"structchildFLOATf71c20e\\":1.23,\\"structchildINT6b6b626\\":3,\\"structchildDATE663436a\\":\\"1516517966152\\",\\"structchildDOUBLE08d0f74\\":1.23,\\"structchildTEXTdc764f9\\":\\"07b68264b0ba42c18e5f\\",\\"structchildBOOLd260729\\":0,\\"structchildENUMbe62590\\":1},\\"enumArgs\\":0,\\"boolArgs\\":0,\\"floatArgs\\":2.3,\\"dateArgs\\":\\"1516517966152\\",\\"intArgs\\":1,\\"doubleArgs\\":2.3,\\"textArgs\\":\\"dV56zbkzjBjw1Ti1dA52\\"}\\n info\\n testEventInfo\\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的事件记录', + 'summary' => '调用该接口查询指定设备的事件记录。', + 'description' => '## 使用说明'."\n" + .'仅可查询最近30天内的事件记录数据。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的事件记录数据。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + .''."\n" + ."\n" + .' > 数据存储时间从事件生成当日起开始计算。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteOTAModule' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceEventData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceFile' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1uctKe****', - ], + 'schema' => ['description' => '要查询的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ModuleName', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '要删除的OTA模块名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'barcodeScanner', - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'FileId', + 'in' => 'query', + 'schema' => ['description' => '文件标识符。您可以调用[QueryDeviceFileList](~~112001~~),从返回结果中查看文件ID。', 'type' => 'string', 'required' => true, 'example' => 'xL0G67MBLBDtkR7GCfT******'], ], ], 'responses' => [ @@ -42910,95 +28976,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。'."\n", 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的文件信息。', + 'type' => 'object', + 'properties' => [ + 'UtcCreatedOn' => ['description' => '文件创建时间。', 'type' => 'string', 'example' => '2019-03-21T08:45:42.000Z'], + 'Name' => ['description' => '文件名称。', 'type' => 'string', 'example' => 'testFile3.txt'], + 'DownloadUrl' => ['description' => '文件下载URL。', 'type' => 'string', 'example' => 'http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******'], + 'Size' => ['description' => '文件大小,单位:KB。', 'type' => 'string', 'example' => '102400'], + 'FileId' => ['description' => '文件标识符。', 'type' => 'string', 'example' => '6UCo1SqbqnQEoh9aKqDQ01****'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除自定义OTA模块', - 'summary' => '调用该接口删除自定义OTA模块。', - 'description' => '## 使用说明'."\n" - ."\n" - .'- 默认(default)模块不允许删除。'."\n" - ."\n" - .'- 若OTA模块下存在升级包,则不允许删除。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"UtcCreatedOn\\": \\"2019-03-21T08:45:42.000Z\\",\\n \\"Name\\": \\"testFile3.txt\\",\\n \\"DownloadUrl\\": \\"http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******\\",\\n \\"Size\\": \\"102400\\",\\n \\"FileId\\": \\"6UCo1SqbqnQEoh9aKqDQ01****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n93C5276D-5C8A-40D9-BFD6-4BD5B8C1A08F\\n\\n testFile3.txt\\n http://iotx-file-store.oss-cn-shanghai.aliyuncs.com/device_file/A849******/aGE******/testFile3.txt?Expires=1553162075&OSSAccessKeyId=LTAI****************&Signature=%2F8******\\n 6UCo1SqbqnQEoh9aKqDQ01****\\n 2019-03-21T08:45:42.000Z\\n 102400\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备文件信息', + 'summary' => '查询指定设备上传到物联网平台的指定文件信息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n\n" + .' > RAM用户共享阿里云账号配额。'."\n" ."\n", - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTAModuleByProduct' => [ - 'methods' => [ - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceFileList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-0pp1n8t****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的文件记录数量。最大取值200,默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1uctKe****', - ], + 'schema' => ['description' => '要查询的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '显示返回结果中的第几页。最小取值1,默认值 1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -43006,131 +29082,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的文件个数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '文件总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ - 'description' => '调用成功时,返回的OTA模块列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ModuleName' => [ - 'description' => '模块名称。', - 'type' => 'string', - 'example' => 'barcodeScanner', - ], - 'ProductKey' => [ - 'description' => '产品的ProductKey。', - 'type' => 'string', - 'example' => 'aluctKe****', - ], - 'GmtCreate' => [ - 'description' => '模块创建时间,GMT格式。', - 'type' => 'string', - 'example' => '2020-10-13T09:46Z', - ], - 'AliasName' => [ - 'description' => '模块别名。', - 'type' => 'string', - 'example' => '条码扫描仪', - ], - 'GmtModified' => [ - 'description' => '模块信息最后一次更新时间,GMT格式。', - 'type' => 'string', - 'example' => '2020-10-19T09:46Z', - ], - 'Desc' => [ - 'description' => '模块描述。'."\n", - 'type' => 'string', - 'example' => '这个模块对应于条码扫描仪的固件', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'FileSummary' => [ + 'description' => '调用成功时,返回的文件信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'UtcCreatedOn' => ['description' => '文件创建时间。', 'type' => 'string', 'example' => '2019-03-21T08:45:42.000Z'], + 'Name' => ['description' => '文件名称。', 'type' => 'string', 'example' => 'testFile2.txt'], + 'Size' => ['description' => '文件大小,单位:KB。', 'type' => 'string', 'example' => '1024000'], + 'FileId' => ['description' => '文件ID,文件的唯一标识符。', 'type' => 'string', 'example' => 'xL0G67MBLBDtkR7GCfT******'], + ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"ModuleName\\": \\"barcodeScanner\\",\\n \\"ProductKey\\": \\"aluctKe****\\",\\n \\"GmtCreate\\": \\"2020-10-13T09:46Z\\",\\n \\"AliasName\\": \\"条码扫描仪\\",\\n \\"GmtModified\\": \\"2020-10-19T09:46Z\\",\\n \\"Desc\\": \\"这个模块对应于条码扫描仪的固件\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\n \\n 这个模块对应于条码扫描仪的固件\\n 2020-10-13T09:46Z\\n barcodeScanner\\n 条码扫描仪\\n 2020-10-19T09:46Z\\n a1uctKe****\\n \\n true\\n","errorExample":""}]', - 'title' => '查询产品下的OTA模块列表', - 'summary' => '调用该接口查询产品下的OTA模块列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Data\\": {\\n \\"FileSummary\\": [\\n {\\n \\"UtcCreatedOn\\": \\"2019-03-21T08:45:42.000Z\\",\\n \\"Name\\": \\"testFile2.txt\\",\\n \\"Size\\": \\"1024000\\",\\n \\"FileId\\": \\"xL0G67MBLBDtkR7GCfT******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n testFile2.txt\\n xL0G67MBLBDtkR7GCfT******\\n 2019-03-21T08:45:42.000Z\\n 102400\\n \\n \\n testFile3.txt\\n 6UCo1SqbqnQEoh9aKqD******\\n 2019-03-21T08:45:42.000Z\\n 102400\\n \\n \\n testFile1.txt\\n IhXXww3Eeu6uzSOSCyu******\\n 2019-03-21T08:45:40.000Z\\n 102400\\n \\n\\n10\\n7C7BA526-826D-46AA-A45E-55D21E6D1583\\n1\\ntrue\\n3\\n","errorExample":""}]', + 'title' => '查询设备上传到物联网平台文件列表', + 'summary' => '查询指定设备上传到物联网平台的所有文件列表。', + 'description' => '## 使用说明'."\n" + .'调用该接口返回的文件信息中,不包括文件下载地址。如需获取文件下载地址,请调用[QueryDeviceFile](~~112002~~)查询。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ConfirmOTATask' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceFileList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceGroupByDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TaskId', + 'name' => 'ProductKey', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待确认的设备升级作业ID。最多可传入10个TaskId。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', - 'maxItems' => 10, - ], + 'schema' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1SKk9K****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'test456'], ], ], 'responses' => [ @@ -43138,171 +29184,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7941C8CD-7764-4A94-8CD9-E2762D4A73AC'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'GroupInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'GroupInfo' => [ + 'description' => '调用成功时,返回的分组信息。详情请参见以下GroupInfo。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'father1543152336554'], + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => '6a3FF2XE2BKa****'], + 'GroupType' => ['description' => '分组类型。', 'type' => 'string', 'example' => 'LINK_PLATFORM_DYNAMIC'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'father desc'], + 'UtcCreate' => ['description' => '分组的创建时间。', 'type' => 'string', 'example' => '2018-11-25T13:25:37.000Z'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\ntrue\\n","errorExample":""}]', - 'title' => '批量确认设备升级作业', - 'summary' => '批量确认,处于待确认状态的设备升级作业。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7941C8CD-7764-4A94-8CD9-E2762D4A73AC\\",\\n \\"Success\\": true,\\n \\"GroupInfos\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupName\\": \\"father1543152336554\\",\\n \\"GroupId\\": \\"6a3FF2XE2BKa****\\",\\n \\"GroupType\\": \\"LINK_PLATFORM_DYNAMIC\\",\\n \\"GroupDesc\\": \\"father desc\\",\\n \\"UtcCreate\\": \\"2018-11-25T13:25:37.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n7941C8CD-7764-4A94-8CD9-E2762D4A73AC\\n\\n \\n father desc\\n father1543152336554\\n 2018-11-25T13:25:37.000Z\\n 6a3FF2XE2BKa***\\n LINK_PLATFORM_DYNAMIC\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询某一设备所在的分组列表', + 'summary' => '调用该接口查询某一设备所在的分组列表。', 'description' => '## 使用说明'."\n" - .'若批次升级任务设置了定时升级,仅可在升级时间范围内,调用本接口来确认设备升级作业。'."\n" + .'一个设备最多能被添加到10个分组中 。'."\n" ."\n" .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTAUnfinishedTaskByDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceGroupByTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-c3j***', - ], - ], - [ - 'name' => 'ModuleName', - 'in' => 'query', - 'schema' => [ - 'description' => 'OTA模块名称。'."\n" - ."\n" - .'- 传入时,表示查询指定模块的升级任务。'."\n" - .'- 不传入时,表示查询所有模块的升级任务。', - 'type' => 'string', - 'required' => false, - 'example' => 'WifiConfigModify', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的ProductKey。'."\n" - ."\n" - .'>如果传入该参数,需同时传入**DeviceName**。'."\n" - .' >', - 'type' => 'string', - 'required' => false, - 'example' => 'a19mzPZ****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。'."\n" - ."\n" - .'>如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TaskStatus', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '查询单个指定升级状态下的设备升级作业。'."\n" - .'- **CONFIRM**:待确认。'."\n" - .'- **QUEUED**:待推送。'."\n" - .'- **NOTIFIED**:已推送。'."\n" - .'- **IN_PROGRESS**:升级中。'."\n" - ."\n" - .'> 单次调用本接口,仅可传入一个状态进行查询。该参数与**TaskStatusList**二选一使用。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'CONFIRM', - ], + 'schema' => ['description' => '指定显示查询结果的第几页。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'IotId', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的设备ID。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'TfmUAeJjQQhCPH84UVNn0010c6****', - ], + 'schema' => ['description' => '指定每页显示的记录数。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'TaskStatusList', + 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '查询多个指定升级状态下的设备升级作业。'."\n" - .'- **CONFIRM**:待确认。'."\n" - .'- **QUEUED**:待推送。'."\n" - .'- **NOTIFIED**:已推送。'."\n" - .'- **IN_PROGRESS**:升级中。'."\n" - ."\n" - .'> 单次调用本接口,可传入多个状态进行查询。该参数与**TaskStatus**二选一使用。', + 'description' => '标签列表。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '分组标签值(value)。', 'type' => 'string', 'required' => true, 'example' => 'tag'], + 'TagKey' => ['description' => '分组标签键(key)。', 'type' => 'string', 'required' => true, 'example' => 'group'], + ], + 'required' => false, + 'description' => '', ], 'required' => false, - 'example' => 'QUEUED', - 'maxItems' => 4, + 'maxItems' => 10, ], ], ], @@ -43311,244 +29304,104 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9599EE98-1642-4FCD-BFC4-039E458A4693'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SimpleOTATaskInfo' => [ - 'description' => '调用成功时,返回的升级作业信息。详细内容,请参见以下**SimpleOTATaskInfo**。', + 'DeviceGroup' => [ + 'description' => '调用成功时,返回分组信息。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ModuleName' => [ - 'description' => 'OTA模块名称。', - 'type' => 'string', - 'example' => 'WifiConfigModify', - ], - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => 'MyProduct', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'light', - ], - 'UtcCreate' => [ - 'description' => '升级作业创建时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2019-11-04T03:38:22.000Z', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1GUfrM****', - ], - 'TaskStatus' => [ - 'description' => '设备升级作业状态。'."\n" - ."\n" - .'- **CONFIRM**:待确认。'."\n" - .'- **QUEUED**:待推送。'."\n" - .'- **NOTIFIED**:已推送。'."\n" - .'- **IN_PROGRESS**:升级中。', - 'type' => 'string', - 'example' => 'CONFIRM', - ], - 'UtcModified' => [ - 'description' => '升级作业最后一次修改时的时间,UTC格式。', - 'type' => 'string', - 'example' => '2021-11-04T03:38:22.000Z', - ], - 'JobId' => [ - 'description' => '升级批次ID。', - 'type' => 'string', - 'example' => '7glPHmaDYLAYMD1HHutT02****', - ], - 'SrcVersion' => [ - 'description' => '设备的原版本。', - 'type' => 'string', - 'example' => '1.0.0', - ], - 'TaskId' => [ - 'description' => '设备升级作业ID。', - 'type' => 'string', - 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', - ], - 'DestVersion' => [ - 'description' => '升级的目标版本。', - 'type' => 'string', - 'example' => '1.0.1', - ], - 'FirmwareId' => [ - 'description' => '升级包ID。', - 'type' => 'string', - 'example' => 'q3j9OYBjUAZMv1hlMgdo03****', - ], - 'IotId' => [ - 'description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。', - 'type' => 'string', - 'example' => 'nadRdeffljdEndlfadgadfse****', - ], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'test11'], + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => 'Z0ElGF5aqc0t****'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.common.InvalidPageParams', - 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', - ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The productKey is empty.', - ], - [ - 'errorCode' => 'iot.prod.InvalidFormattedProductkey', - 'errorMessage' => 'The productKey format is incorrect.', - ], - [ - 'errorCode' => 'iot.ota.NullOtaModuleName', - 'errorMessage' => 'the module name can not be empty.', - ], - [ - 'errorCode' => 'iot.ota.InvalidOtaModuleName', - 'errorMessage' => 'the format of module name is invalid.', - ], - [ - 'errorCode' => 'iot.ota.EmptyDeviceInfoParams', - 'errorMessage' => 'the device info in params is empty', - ], - [ - 'errorCode' => 'iot.firmware.InvalidTaskStatus', - 'errorMessage' => 'Invalid TaskStatus.', - ], - [ - 'errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', - 'errorMessage' => 'The deviceName list contains an invalid device name.', - ], - [ - 'errorCode' => 'iot.firmware.ListOTATaskByDeviceFailed', - 'errorMessage' => 'Failed to list OTA tasks by device.', - ], - [ - 'errorCode' => 'iot.device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SimpleOTATaskInfo\\": [\\n {\\n \\"ModuleName\\": \\"WifiConfigModify\\",\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcCreate\\": \\"2019-11-04T03:38:22.000Z\\",\\n \\"ProductKey\\": \\"a1GUfrM****\\",\\n \\"TaskStatus\\": \\"CONFIRM\\",\\n \\"UtcModified\\": \\"2021-11-04T03:38:22.000Z\\",\\n \\"JobId\\": \\"7glPHmaDYLAYMD1HHutT02****\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"TaskId\\": \\"y3tOmCDNgpR8F9jnVEzC01****\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"FirmwareId\\": \\"q3j9OYBjUAZMv1hlMgdo03****\\",\\n \\"IotId\\": \\"nadRdeffljdEndlfadgadfse****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n 1.0.0\\n testDevice1\\n q3j9OYBjUAZMv1hlMgdo03****\\n SR8FiTu1R9tlUR2V1bmi00105****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n 1.0.1\\n 2019-11-04T03:38:15.000Z\\n 2019-11-04T03:38:15.000Z\\n QUEUED\\n MyProduct\\n y3tOmCDNgpR8F9jnVEzC01****\\n WifiConfigModify\\n \\n \\n 1.0.0\\n testDevice2\\n q3j9OYBjUAZMv1hlMgdo03****\\n nadRdeffljdEndlfadgadfse****\\n a1GUfrM****\\n 7glPHmaDYLAYMD1HHutT02****\\n 1.0.1\\n 2019-11-04T03:38:22.000Z\\n 2019-11-04T03:38:22.000Z\\n CONFIRM\\n MyProduct\\n ZS9sNBb1ahsu6khqr9II01****\\n ConfigModify\\n \\n\\nA59D3BE1-E9A3-43F3-9B50-B7C8DE165D9B\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定设备未完成的升级作业', - 'summary' => '查询指定设备下,未完成状态的设备升级作业。', - 'description' => '## 使用说明'."\n" - .'请求参数中的**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。调用API时,**ProductKey**与**DeviceName**的组合和**IotId**必须传入一个。'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"9599EE98-1642-4FCD-BFC4-039E458A4693\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"DeviceGroup\\": [\\n {\\n \\"GroupName\\": \\"test11\\",\\n \\"GroupId\\": \\"Z0ElGF5aqc0t****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n 1 \\r\\n \\r\\n \\r\\n test11 \\r\\n Z0ElGF5aqc0t**** \\r\\n \\r\\n \\r\\n 1 \\r\\n 10 \\r\\n 9599EE98-1642-4FCD-BFC4-039E458A4693 \\r\\n true \\r\\n 1 \\r\\n","errorExample":""}]', + 'title' => 'QueryDeviceGroupByTags', + 'summary' => '调用该接口根据标签查询设备分组。', + 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ReupgradeOTATask' => [ - 'methods' => [ - 'post', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceGroupInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'JobId', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '升级批次ID。'."\n" - .'您调用[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建批次任务返回的**JobId**。'."\n" - ."\n" - .'您也可以在物联网平台控制台上OTA升级包的**升级包详情**页面查看**批次ID**。', - 'type' => 'string', - 'required' => true, - 'example' => '7glPHmaDYLAYMD1HHutT02****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64***', - ], + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。'."\n" + ."\n" + .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', 'type' => 'string', 'required' => true, 'example' => 'tDQvBJqbUyHs****'], ], [ - 'name' => 'TaskId', + 'name' => 'GroupType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待重新升级的设备升级作业ID。传入**TaskId**个数范围为1~10个。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => true, - 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', - 'maxItems' => 10, - ], + 'schema' => ['description' => '分组类型。'."\n" + ."\n" + .'目前仅支持传入**LINK_PLATFORM_DYNAMIC**,表示动态分组。不传入时,默认为静态分组。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM_DYNAMIC'], ], ], 'responses' => [ @@ -43556,187 +29409,118 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'false', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7411716B-A488-4EEB-9AA0-6DB05AD2491F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的分组详细信息数据,包含以下参数。', + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => 'tDQvBJqbUyHs****'], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'aliyun'], + 'DeviceActive' => ['description' => '激活设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'UtcCreate' => ['description' => '创建时间。', 'type' => 'string', 'example' => '2018-09-14T14:35:51.000Z'], + 'DynamicGroupExpression' => ['description' => '动态分组规则,仅动态分组返回该参数信息。', 'type' => 'string', 'example' => 'product_key = "a1***" and name LIKE "test%"'], + 'DeviceOnline' => ['description' => '在线设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'usefulGroup'], + 'DeviceCount' => ['description' => '设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.ota.FirmwareNotVerified', - 'errorMessage' => 'The firmware validation is not completed.', - ], - [ - 'errorCode' => 'iot.ota.NotFirmwareOwner', - 'errorMessage' => 'The user is not owner of firmware.', - ], - [ - 'errorCode' => 'iot.ota.UnmatchedJob', - 'errorMessage' => 'The jobId and taskId do not match.', - ], - [ - 'errorCode' => 'iot.ota.JobCanceled', - 'errorMessage' => 'The job has already been canceled.', - ], - [ - 'errorCode' => 'iot.ota.InvalidJobId', - 'errorMessage' => 'The job is not existed.', - ], - [ - 'errorCode' => 'iot.ota.InvalidFirmwareUid', - 'errorMessage' => 'The firmware is not exist.', - ], - [ - 'errorCode' => 'iot.ota.InvalidTaskId', - 'errorMessage' => 'The tasks are not existed.', - ], - [ - 'errorCode' => 'iot.ota.FailedTaskNotFound', - 'errorMessage' => 'There are no failed tasks.', - ], - [ - 'errorCode' => 'iot.ota.InvalidTaskExist', - 'errorMessage' => 'The taskId list contains at least an invalid task.', - ], - [ - 'errorCode' => 'iot.ota.DeviceNotReUpgraded', - 'errorMessage' => 'There is no device can upgrade.', - ], - [ - 'errorCode' => 'iot.ota.DeviceNotExist', - 'errorMessage' => 'The device does not exist.', - ], - [ - 'errorCode' => 'iot.ota.TooManyOtaTask', - 'errorMessage' => 'There are too many tasks in parameters.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\ntrue\\n","errorExample":""}]', - 'title' => 'ReupgradeOTATask', - 'summary' => '调用该接口重新升级指定批次下升级失败或升级取消的设备升级作业。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7411716B-A488-4EEB-9AA0-6DB05AD2491F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupId\\": \\"tDQvBJqbUyHs****\\",\\n \\"GroupName\\": \\"aliyun\\",\\n \\"DeviceActive\\": 1,\\n \\"UtcCreate\\": \\"2018-09-14T14:35:51.000Z\\",\\n \\"DynamicGroupExpression\\": \\"product_key = \\\\\\"a1***\\\\\\" and name LIKE \\\\\\"test%\\\\\\"\\",\\n \\"DeviceOnline\\": 0,\\n \\"GroupDesc\\": \\"usefulGroup\\",\\n \\"DeviceCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n7411716B-A488-4EEB-9AA0-6DB05AD2491F\\n\\n aliyun\\n 2021-10-14T14:35:51.000Z\\n 0\\n usefulGroup\\n 1\\n product_key = \\"a1***\\" and name LIKE \\"test%\\"\\n 10\\n tDQvBJqbUyHs****\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询分组详情', + 'summary' => '调用该接口查询分组详情。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ListOTAModuleVersionsByDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceGroupList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '指定返回结果中每页显示的模块版本数量。数量限制:每页最多可显示200条。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '每页记录数。最大值是200。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'ProductKey', + 'name' => 'SuperGroupId', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属的产品**ProductKey**。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'aluctKe****', - ], + 'schema' => ['description' => '父组ID。查询某父组下的子分组列表时,需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '8vDubXr4nUvZkNgk9mle010200'], ], [ - 'name' => 'DeviceName', + 'name' => 'GroupName', 'in' => 'query', - 'schema' => [ - 'description' => '指定要查询设备的名称。'."\n" - ."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'newdevice', - ], + 'schema' => ['description' => '分组名称。'."\n" + ."\n" + .'- 传入分组名称,则根据名称进行查询。不支持分组名称模糊查询。'."\n" + .'- 若不传入此参数,则进行全量分组查询。', 'type' => 'string', 'required' => false, 'example' => 'GroupName1'], ], [ - 'name' => 'IotId', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" - ."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ - 'name' => 'CurrentPage', + 'name' => 'GroupTypes', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', + 'description' => '待查询的分组类型。'."\n" + ."\n" + .'目前仅支持传入一个,且为**LINK_PLATFORM_DYNAMIC**,表示动态分组。不传入时,默认为静态分组。'."\n" + ."\n\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => false, + 'example' => 'LINK_PLATFORM_DYNAMIC', + 'maxItems' => 2, ], ], ], @@ -43745,238 +29529,216 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页面号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'PageSize' => [ - 'description' => '每页显示的模块版本数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageCount' => [ - 'description' => '返回的总页数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '设备上报的模块版本总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], + 'CurrentPage' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '24'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], 'Data' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'SimpleOTAModuleInfo' => [ - 'description' => '调用成功时,返回的设备上报的模块版本信息。更多信息,请参见以下**SimpleOTAModuleInfo**信息。', + 'GroupInfo' => [ + 'description' => '调用成功时,返回的分组信息。请参见GroupInfo。'."\n" + ."\n" + .'> 返回的分组信息按照分组创建时间倒序排列。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ModuleName' => [ - 'description' => '模块名称。', - 'type' => 'string', - 'example' => 'barcodeScanner', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'aluctKe****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'newDevice', - ], - 'ModuleVersion' => [ - 'description' => '设备上报的模块版本。', - 'type' => 'string', - 'example' => '1.0', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'QjIFT***000101', - ], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => 'test1'], + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => 'Kzt9FD8wje8o****'], + 'GroupType' => ['description' => '分组类型。', 'type' => 'string', 'example' => 'LINK_PLATFORM_DYNAMIC'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'usefulGroup'], + 'UtcCreate' => ['description' => '分组创建时间。', 'type' => 'string', 'example' => '2018-10-09T02:58:34.000Z'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"PageCount\\": 1,\\n \\"Total\\": 10,\\n \\"Data\\": {\\n \\"SimpleOTAModuleInfo\\": [\\n {\\n \\"ModuleName\\": \\"barcodeScanner\\",\\n \\"ProductKey\\": \\"aluctKe****\\",\\n \\"DeviceName\\": \\"newDevice\\",\\n \\"ModuleVersion\\": \\"1.0\\",\\n \\"IotId\\": \\"QjIFT***000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n67AF7881-704C-40CC-B296-72F91380A117\\ntrue\\n\\n\\n10\\n1\\n1\\n1\\n\\n \\n QjIFT***000101\\n 1.6940.1\\n default\\n a14***S\\n newDevice\\n \\n\\n","errorExample":""}]', - 'title' => '查询设备上报过的OTA模块版本列表', - 'summary' => '调用该接口查询设备上报过的OTA模块版本列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"BEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 24,\\n \\"PageCount\\": 3,\\n \\"Data\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupName\\": \\"test1\\",\\n \\"GroupId\\": \\"Kzt9FD8wje8o****\\",\\n \\"GroupType\\": \\"LINK_PLATFORM_DYNAMIC\\",\\n \\"GroupDesc\\": \\"usefulGroup\\",\\n \\"UtcCreate\\": \\"2018-10-09T02:58:34.000Z\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n3\\n\\n \\n test1\\n 2021-10-01T02:58:34.000Z\\n Kzt9FD8wje8o***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n test2\\n 2021-10-01T02:56:40.000Z\\n 0ayrSQ3DSd7***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n Test\\n test3\\n 2021-10-01T05:38:27.000Z\\n oWXlIQeFZtzC***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ylv0915\\n 2021-10-01T04:51:56.000Z\\n SfEiVapLPUjB***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ydlv\\n 2021-10-01T14:35:51.000Z\\n z2S2h9NsDTZm***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ldh_group_3\\n 2021-10-01T12:26:20.000Z\\n chn5fkjin***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n ddd\\n ylvgisbim\\n 2021-10-01T11:41:20.000Z\\n ncUZ8DjWYaB9***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n abc\\n 2021-10-01T09:14:30.000Z\\n zpdvwxzBdt4F***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n test11\\n 2021-10-01T07:22:39.000Z\\n BTaudF16X2xK***\\n LINK_PLATFORM_DYNAMIC\\n \\n \\n testy\\n 2021-10-01T01:58:06.000Z\\n PrTm3VOeggPw***\\n LINK_PLATFORM_DYNAMIC\\n \\n\\n10\\nBEFCA316-D6C7-470C-81ED-1FF4FFD4AA0D\\n1\\ntrue\\n24\\n","errorExample":""}]', + 'title' => '查询分组列表', + 'summary' => '调用该接口分页查询分组列表。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'OpenIotService' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceGroupTagList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'APP' => [], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'PrivateKey' => [], + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'W16X8Tvdosec****'], ], [ - 'BearerToken' => [], + 'name' => 'GroupType', + 'in' => 'query', + 'schema' => ['description' => '分组类型。'."\n" + ."\n" + .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。', 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM_DYNAMIC'], ], ], - 'operationType' => 'readAndWrite', - 'deprecated' => false, - 'systemTags' => [ - 'operationType' => 'create', - ], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'OrderId' => [ - 'description' => '开通服务的订单号。', - 'type' => 'string', - 'example' => '20671870***', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '427DB0B3-9436-4A3C-B2BC-B961F95E9488', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '214154FF-9D47-4E3F-AAAD-F4CE67F41060'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'GroupTagInfo' => [ + 'description' => '调用成功时,返回的标签信息。请参见以下**GroupTagInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => 'bulb'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'room1'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'OrderOpend', - 'errorMessage' => 'You have already purchased the Iot service. Go to the Iot console to start using it.', - ], - [ - 'errorCode' => 'AccountTypeRestricted', - 'errorMessage' => 'Please submit the application for beta testing first. You can activate the product after the application is approved.', - ], - [ - 'errorCode' => 'PermissionDenied', - 'errorMessage' => 'The current sub account without permission, to authorize the Sub - Account, please.', - ], - [ - 'errorCode' => 'PriceWanHuaTongSys', - 'errorMessage' => 'Inquiry call kaleidoscope error', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"OrderId\\": \\"20671870***\\",\\n \\"RequestId\\": \\"427DB0B3-9436-4A3C-B2BC-B961F95E9488\\"\\n}","errorExample":""},{"type":"xml","example":"\\n427DB0B3-9436-4A3C-B2BC-B961F95E9488\\n20671870***\\n","errorExample":""}]', - 'title' => '开通服务', - 'summary' => '调用该接口开通物联网平台服务。', - 'description' => '## 限制说明'."\n" - ."\n" - .'- 调用云服务的接入地址**Endpoint**仅支持华东2(上海),即iot.cn-shanghai.aliyuncs.com。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"214154FF-9D47-4E3F-AAAD-F4CE67F41060\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupTagInfo\\": [\\n {\\n \\"TagValue\\": \\"bulb\\",\\n \\"TagKey\\": \\"room1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n \\r\\n bulb\\r\\n room1\\r\\n \\r\\n \\r\\n 214154FF-9D47-4E3F-AAAD-F4CE67F41060\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询分组标签列表', + 'summary' => '调用该接口查询分组标签列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .' > RAM用户共享阿里云账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BindLicenseProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupTagList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-23***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'LicenseCode', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', - 'type' => 'string', - 'required' => true, - 'example' => '480P', - ], + 'schema' => ['description' => '要查询设备所属产品的ProductKey。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ProductKey', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '待授权的产品的ProductKey。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV***', - ], + 'schema' => ['description' => '要查询设备的设备名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询设备的设备ID。'."\n" + ."\n\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**的组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**的组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -43984,123 +29746,262 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见本文下方的**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '表示产品授权License是否成功。'."\n" - .'- **true**:产品授权License成功。'."\n" - .'- **false**:产品授权License失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回设备的基本信息。', + 'type' => 'object', + 'properties' => [ + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => 'detectors_in_beijing'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1rYuVF****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'invalid license code', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'invalid product key', - ], - [ - 'errorCode' => 'iot.rtc.license.product.relation.exist', - 'errorMessage' => 'license product relation has exist', - ], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'Iot.common.QueryDeviceActionError', 'errorMessage' => 'An error occurred while querying the device.', 'description' => '查询设备失败。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceNameInNameArray', 'errorMessage' => 'The DeviceName list contains an invalid DeviceName.', 'description' => '设备名称列表中存在非法格式的设备名称。'], + ['errorCode' => 'iot.common.InvalidTenant', 'errorMessage' => 'The tenant is invalid.', 'description' => '不合法的租户。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The DeviceName format is invalid.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'Iot.digitaltwin.DTInstanceInvalidThingType', 'errorMessage' => 'The digital twin operation is not supported.', 'description' => '孪生数据类型不支持使用此接口访问。'], + ['errorCode' => 'iot.gateway.BackEndServiceInvalid', 'errorMessage' => 'Request has failed due to invalid backend server', 'description' => ''], + ['errorCode' => 'Iot.device.InvalidIoTId', 'errorMessage' => 'The specified device ID is invalid.', 'description' => ''], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The deviceName is empty.', 'description' => '空的设备名称。'], + ['errorCode' => 'iot.device.DeviceInstanceInconsistency', 'errorMessage' => 'The instance of devices is inconsistency.', 'description' => '设备企业实例ID错误。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The productKey is empty.', 'description' => ''], + ['errorCode' => 'iot.common.QueryDevicePropertyActionError', 'errorMessage' => 'An error occurred while querying the device property.', 'description' => '查询设备属性失败。'], + ['errorCode' => 'iot.common.QueryManyDevicesActionError', 'errorMessage' => 'An error occurred while querying the devices', 'description' => '批量查询设备失败。'], + ['errorCode' => 'iot.Sre.IotInstanceStatusForbidden', 'errorMessage' => 'Instance status forbidden.', 'description' => '实例状态不可用。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\ntrue\\ntrue\\n","errorExample":""}]', - 'title' => '为指定产品授权License', - 'summary' => '调用该接口为指定产品授权License。', - 'description' => '## 使用说明'."\n" - .'调用本接口前,请购买License。具体内容,请参见[购买方式](~~427935~~)。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"ProductKey\\": \\"a1rYuVF****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n Q7uOhVRdZRRlDnTLv****00100\\n mz2Canp4GB7qRVf1OYPNtRqB2anu****\\n a1rYuVF****\\n detectors_in_beijing\\n light\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备信息', + 'summary' => '查询指定设备的基本信息(设备ID、设备证书和备注名称)。', + 'description' => '## QPS限制'."\n" ."\n\n" - .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + ], + 'QueryDeviceListByDeviceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => '7DIgqIl1Ijnh****'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中,每页显示的设备数量。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定显示查询结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B1A921D9-1061-4D45-9F12-EA6B0FDEDE30'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页所显示的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleDeviceInfo' => [ + 'description' => '调用成功时,返回的设备列表信息数据。详情请参见以下**SimpleDeviceInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属的产品Key。', 'type' => 'string', 'example' => 'a1hWjHD****'], + 'ProductName' => ['description' => '设备所属的产品名称。', 'type' => 'string', 'example' => 'WIFIdevice'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'ios_1207_08'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'TfmUAeJjQQhCPH84UVNn0010c6****'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"B1A921D9-1061-4D45-9F12-EA6B0FDEDE30\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 3,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"ProductKey\\": \\"a1hWjHD****\\",\\n \\"ProductName\\": \\"WIFIdevice\\",\\n \\"DeviceName\\": \\"ios_1207_08\\",\\n \\"IotId\\": \\"TfmUAeJjQQhCPH84UVNn0010c6****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 1\\r\\n \\r\\n \\r\\n ios_1207_08\\r\\n a1hWjHD****\\r\\n WIFIdevice\\r\\n TfmUAeJjQQhCPH84UVNn0010c6****\\r\\n \\r\\n \\r\\n ios_1207_07\\r\\n a1hWjHD****\\r\\n WIFIgateway\\r\\n wVPeAksaboXBlRgvZNHQ001031****\\r\\n \\r\\n \\r\\n E1IPK25iL4CTOwnuI2yt\\r\\n a1mV8bK****\\r\\n yanlv\\r\\n E1IPK25iL4CTOwnuI2yt001059****\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n B1A921D9-1061-4D45-9F12-EA6B0FDEDE30\\r\\n true\\r\\n 3\\r\\n","errorExample":""}]', + 'title' => '查询分组中的设备列表', + 'summary' => '调用该接口查询分组中的设备列表。', + 'description' => '## QPS限制'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnbindLicenseProduct' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceListByDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceOriginalEventData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-s3***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'LicenseCode', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。'."\n" - ."\n" - .'您可在**音视频通信服务**控制台的**License管理>产品授权**页面,查看目标产品的License类型。', - 'type' => 'string', - 'required' => true, - 'example' => '480P', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '待取消授权的产品的ProductKey。'."\n" - ."\n" - .'您可在**音视频通信服务**控制台的**License管理>产品授权**页面,查看目标产品的**Product Key**。', - 'type' => 'string', - 'required' => true, - 'example' => 'gq62z***', - ], + 'schema' => ['description' => '要查询设备所属的产品**ProductKey**。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件记录的开始时间。格式为毫秒级的13位时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1516538300303'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件标识符。'."\n" + ."\n" + .'- 对于弱校验,设备的事件**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + .'- 对于免校验,必须与设备事件上报时自定义的**identifier**一致。', 'type' => 'string', 'required' => true, 'example' => 'PowerOff'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中事件记录的排序方式,取值:'."\n" + ."\n" + .'- 0:倒序。'."\n" + .'- 1:正序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + ."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的事件记录的结束时间。格式为毫秒级的13位时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1516541900303'], ], ], 'responses' => [ @@ -44108,160 +30009,166 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见本文下方的**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.device.InvalidIoTId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- true:调用成功。'."\n" + .'- false:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '表示取消产品授权License是否成功。'."\n" - ."\n" - .'- **true**:取消产品授权License成功。'."\n" - .'- **false**:取消产品授权License失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回的设备事件记录。', + 'type' => 'object', + 'properties' => [ + 'NextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'EventInfo' => [ + 'description' => '事件集合。每个元素代表一个事件。事件详情请参见**EventInfo**下参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Identifier' => ['description' => '事件标识符。', 'type' => 'string', 'example' => 'PowerOff'], + 'OutputData' => ['description' => '事件的输出参数,MAP格式的字符串。', 'type' => 'string', 'example' => '{"structArgs":{"structchildFLOATf71c20e":1.23}}'], + 'Time' => ['description' => '事件发生时间。毫秒级的13位时间戳。', 'type' => 'string', 'example' => '1579163099000'], + 'EventType' => ['description' => '事件类型。'."\n" + ."\n" + .'- info:信息。'."\n" + .'- alert:告警。'."\n" + .'- error:故障。', 'type' => 'string', 'example' => 'info'], + 'Name' => ['description' => '事件名称。', 'type' => 'string', 'example' => '设备关机'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'invalid license code', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'invalid product key', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\ntrue\\ntrue\\n","errorExample":""}]', - 'title' => '取消指定产品的License授权', - 'summary' => '调用该接口取消指定产品的License授权。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"EventInfo\\": [\\n {\\n \\"Identifier\\": \\"PowerOff\\",\\n \\"OutputData\\": \\"{\\\\\\"structArgs\\\\\\":{\\\\\\"structchildFLOATf71c20e\\\\\\":1.23}}\\",\\n \\"Time\\": \\"1579163099000\\",\\n \\"EventType\\": \\"info\\",\\n \\"Name\\": \\"设备关机\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n Bo***x44Qx\\n \\n \\n testEventInfoName\\n \\n {\\"structArgs\\":{\\"structchildFLOATf71c20e\\":1.23,\\"structchildINT6b6b626\\":3,\\"structchildDATE663436a\\":\\"1516517966152\\",\\"structchildDOUBLE08d0f74\\":1.23,\\"structchildTEXTdc764f9\\":\\"07b68264b0ba42c18e5f\\",\\"structchildBOOLd260729\\":0,\\"structchildENUMbe62590\\":1},\\"enumArgs\\":0,\\"boolArgs\\":0,\\"floatArgs\\":2.3,\\"dateArgs\\":\\"1516517966152\\",\\"intArgs\\":1,\\"doubleArgs\\":2.3,\\"textArgs\\":\\"dV56zbkzjBjw1Ti1dA52\\"}\\n info\\n testEventInfo\\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备上报的原始事件', + 'summary' => '查询指定设备本身上报的原始事件(通过和未通过物模型校验的所有事件)记录。', 'description' => '## 使用说明'."\n" - .'已为目标产品授权过License。具体操作,请参见[BindLicenseProduct](~~427956~~)或[产品授权](~~427937~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" + .'仅可查询最近30天内的事件记录数据。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的事件记录数据。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .''."\n" + ."\n" + .' > 数据存储时间从事件生成当日起开始计算。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BindLicenseDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryDeviceOriginalPropertyData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-e3***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'LicenseCode', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', - 'type' => 'string', - 'required' => true, - 'example' => '720P', - ], + 'schema' => ['description' => '单个属性可返回的数据记录数量。最大值为100。'."\n" + ."\n" + .'任意一个属性返回的数据记录数量不超过该值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '待授权设备所属产品的**ProductKey**。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2YwD23***', - ], + 'schema' => ['description' => '要查询设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'IotIdList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待授权License的设备列表,需传入设备对应的**IotId**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', - 'type' => 'array', - 'items' => [ - 'description' => '待授权License的设备,需传入设备对应的**IotId**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - 'required' => false, - 'maxItems' => 10000, - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'DeviceNameList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待授权License的设备列表,需传入设备对应的**DeviceName**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', - 'type' => 'array', - 'items' => [ - 'description' => '待授权License的设备,需传入设备对应的**DeviceName**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - 'required' => false, - 'maxItems' => 10000, - ], + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的属性记录的开始时间。取值为毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1569249488000'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '属性的标识符。'."\n" + ."\n" + .'- 对于弱校验,设备的属性**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + .'- 对于免校验,必须与设备属性上报时自定义的**identifier**一致。'."\n", 'type' => 'string', 'required' => true, 'example' => 'temperature'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中,属性记录按时间排序的方式。取值:'."\n" + ."\n" + .'- 0:倒序。'."\n" + .'- 1:正序。'."\n" + ."\n" + .'> **StartTime**必须小于**EndTime**,系统会根据排序方式自动转换。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + ."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '属性记录的结束时间。取值为13位毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], ], ], 'responses' => [ @@ -44269,180 +30176,134 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见本文下方_错误码_。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.device.InvalidIoTId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的授权结果。', + 'description' => '调用成功时,返回的设备属性记录。', 'type' => 'object', 'properties' => [ - 'SuccessSum' => [ - 'description' => '授权License成功的设备个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Progress' => [ - 'description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ResultCsvFile' => [ - 'description' => '授权License完成后,授权失败设备文件的URL。', - 'type' => 'string', - 'example' => 'http://***', - ], - 'CheckProgressId' => [ - 'description' => '查询批量授权设备进度的唯一ID。', - 'type' => 'string', - 'example' => '123***', - ], - 'FailSum' => [ - 'description' => '授权License失败的设备个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', + 'nextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyInfo' => [ + 'description' => '属性集合。每个元素代表一个属性。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => '{\\"data\\":32.49}'], + 'Time' => ['description' => '属性修改时间。', 'type' => 'string', 'example' => '1516541885630'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'Invalid product key.', - ], - [ - 'errorCode' => 'iot.rtc.license.product.relation.nonexist', - 'errorMessage' => 'License product relation non existent.', - ], - [ - 'errorCode' => 'iot.rtc.license.quota.lack', - 'errorMessage' => 'License quota is not enough.', - ], - [ - 'errorCode' => 'iot.vas.EmptyLicenseDeviceList', - 'errorMessage' => 'Empty license device list.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'Invalid license code.', - ], - [ - 'errorCode' => 'iot.rtc.license.device.authorization.executing', - 'errorMessage' => 'Authorization for this license device is in progress.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"ResultCsvFile\\": \\"http://***\\",\\n \\"CheckProgressId\\": \\"123***\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\n\\n 123***\\n 10\\n http://***\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', - 'title' => '为指定产品下设备授权License', - 'summary' => '调用该接口为指定产品下设备授权License。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"nextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"{\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":32.49}\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nDD8EE383-F007-5647-8B6B-0C52FAC3E7F2\\n\\n true\\n MTcxMjc0N***********\\n \\n \\n {\\"data\\":31.26}\\n \\n \\n \\n {\\"data\\":32.43}\\n \\n \\n \\n {\\"data\\":30.58}\\n \\n \\n \\n {\\"data\\":32.49}\\n \\n \\n \\n {\\"data\\":30.66}\\n \\n \\n \\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的原始属性记录', + 'summary' => '调用该接口查询指定设备本身上报的原始属性(通过和未通过物模型校验的所有属性)记录。', 'description' => '## 使用说明'."\n" - .'调用本接口前,请确认完成以下操作:'."\n" + .'仅可查询最近30天内的原始属性数据。'."\n" ."\n" - .'1. 请购买License。具体内容,请参见[购买方式](~~427935~~)。'."\n" - .'2. 为目标设备所属产品授权License。具体操作,请参见[BindLicenseProduct](~~427956~~)或[产品授权](~~427937~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的原始属性数据。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', + .''."\n" + ."\n" + .' > 数据存储时间从属性时间戳表示的时间当日开始计算。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CheckBindLicenseDeviceProgress' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryDeviceOriginalPropertyStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2ws****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'LicenseCode', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', - 'type' => 'string', - 'required' => true, - 'example' => '720P', - ], + 'schema' => ['description' => '指定返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'uhf5****', - ], + 'schema' => ['description' => '要查询设备所属的产品**ProductKey**。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'CheckProgressId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '查询批量授权设备进度的唯一ID。', - 'type' => 'string', - 'required' => true, - 'example' => '23****', - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '指定查询属性数据的字典排序方式。取值:'."\n" + .'- 0:根据返回参数**Identifier**的值,按照字典倒序。'."\n" + .'- 1:根据返回参数**Identifier**的值,按照字典正序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + ."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -44450,206 +30311,161 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见本文下方**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.common.InvalidPageParams'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- true:调用成功。'."\n" + .'- false:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的查询结果。', + 'description' => '调用成功时,返回的数据,更多信息,请参见List包含的参数。', 'type' => 'object', 'properties' => [ - 'SuccessSum' => [ - 'description' => '授权License成功的设备数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '9', - ], - 'Progress' => [ - 'description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '80', - ], - 'ResultCsvFile' => [ - 'description' => '授权完成后的结果文件的URL。即文件在对象存储(OSS)上的存储地址。', - 'type' => 'string', - 'example' => 'http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***', - ], - 'FailSum' => [ - 'description' => '授权License失败的设备数量。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', + 'NextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyStatusDataInfo' => [ + 'description' => '返回的属性集合信息(**PropertyStatusInfo**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Identifier' => ['description' => '属性标识符。', 'type' => 'string', 'example' => 'Temperture'], + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => '26'], + 'Time' => ['description' => '属性修改的时间,单位是毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1517553572362'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'Invalid product key.', - ], - [ - 'errorCode' => 'iot.rtc.license.product.relation.nonexist', - 'errorMessage' => 'License product relation non existent.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'Invalid license code.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 9,\\n \\"Progress\\": 80,\\n \\"ResultCsvFile\\": \\"http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***\\",\\n \\"FailSum\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\n\\n 80\\n http://***.oss-***.aliyuncs.com/license_device_***/***/d***h/c***.csv?Expires=16***&OSSAccessKeyId=L***&Signature=***\\n 1\\n 9\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'CheckBindLicenseDeviceProgress', - 'summary' => '调用该接口根据批量授权设备接口返回的唯一ID(CheckProgressId)查询授权的进度。', - 'description' => '## 使用说明'."\n" - .'已调用[BindLicenseDevice](~~427961~~)接口为设备授权License,获取返回的查询授权进度的**CheckProgressId**。'."\n" - ."\n" - .'## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.common.InvalidPageParams\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyStatusDataInfo\\": [\\n {\\n \\"Identifier\\": \\"Temperture\\",\\n \\"Value\\": \\"26\\",\\n \\"Time\\": 1517553572362\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n Bo***x44Qx\\n \\n \\n 48\\n \\n Humidity\\n \\n \\n 32.46\\n \\n Temperature\\n \\n \\n\\n84BAD25B-9879-4BA1-9213-F576C6558D77\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备上报的原始属性', + 'summary' => '查询指定设备本身上报的原始属性(通过和未通过物模型校验的所有属性)快照。', + 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryLicenseDeviceList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceOriginalPropertyStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceOriginalServiceData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-ws4***', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '指定每页返回的记录数量,取值范围:1~100,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '50', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'LicenseCode', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', - 'type' => 'string', - 'required' => false, - 'example' => '720P', - ], + 'schema' => ['description' => '要查询设备所属的产品**ProductKey**。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ProductKey', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'es****', - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'PageId', + 'name' => 'NextPageToken', 'in' => 'query', - 'schema' => [ - 'description' => '指定分页查询的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '下一页标识。第一次请求,服务会返回此Token,第二次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], ], [ - 'name' => 'IotId', + 'name' => 'StartTime', 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备的设备ID。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'schema' => ['description' => '要查询的服务调用记录的开始时间。取值为毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249498000'], ], [ - 'name' => 'StartTime', + 'name' => 'Identifier', 'in' => 'query', - 'schema' => [ - 'description' => '设备授权License的开始时间,取值为毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1620634297000', - ], + 'schema' => ['description' => '要查询的服务标识符。'."\n" + ."\n" + .'- 对于弱校验,设备的服务**Identifier**,可在控制台中设备所属的产品的功能定义中查看;也可以调用[QueryThingModel](~~150321~~),从返回的物模型信息中查看。'."\n" + .'- 对于免校验,必须与设备服务上报时自定义的**identifier**一致。', 'type' => 'string', 'required' => true, 'example' => 'Set'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中,服务调用记录按时间排序的方式。取值:'."\n" + ."\n" + .'- 0:倒序。'."\n" + .'- 1:正序。'."\n" + ."\n" + .'> **StartTime**必须小于**EndTime**,系统会根据排序方式自动转换。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + ."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ 'name' => 'EndTime', 'in' => 'query', - 'schema' => [ - 'description' => '设备授权License的结束时间,取值为毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1620934297000', - ], + 'schema' => ['description' => '要查询的服务调用记录的结束时间。取值为毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], ], ], 'responses' => [ @@ -44657,212 +30473,117 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见本文下方**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.device.InvalidIoTId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的结果信息。', + 'description' => '调用成功时,返回的设备服务调用记录。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示的记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'PageId' => [ - 'description' => '分页查询的当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '总记录数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'DeviceList' => [ + 'NextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'item' => [ - 'description' => '设备列表信息。', + 'ServiceInfo' => [ + 'description' => '服务调用记录集合。每个元素代表一个服务调用记录。服务信息请参见**ServiceInfo**下参数。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ExpiryTime' => [ - 'description' => '设备授权License的失效时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1690934297000', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'es****', - ], - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => '测试产品', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'device1', - ], - 'GmtCreate' => [ - 'description' => '设备授权License的时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'LicenseCode' => [ - 'description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', - 'type' => 'string', - 'example' => '720P', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'Identifier' => ['description' => '服务标识符。', 'type' => 'string', 'example' => 'Set'], + 'OutputData' => ['description' => '服务的输出参数,MAP格式的字符串,结构为`key:value`。', 'type' => 'string', 'example' => '{\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}'], + 'Time' => ['description' => '调用服务的时间。', 'type' => 'string', 'example' => '1579249499000'], + 'InputData' => ['description' => '服务的输入参数,MAP格式的字符串,结构为`key:value`。', 'type' => 'string', 'example' => '{\\"LightAdjustLevel\\":123}'], + 'Name' => ['description' => '服务名称。', 'type' => 'string', 'example' => '设置温度'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'invalid license code', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'invalid product key', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 2,\\n \\"PageId\\": 1,\\n \\"Total\\": 10,\\n \\"DeviceList\\": {\\n \\"item\\": [\\n {\\n \\"ExpiryTime\\": 1690934297000,\\n \\"ProductKey\\": \\"es****\\",\\n \\"ProductName\\": \\"测试产品\\",\\n \\"DeviceName\\": \\"device1\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"LicenseCode\\": \\"720P\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n739536F1-9EB3-511E-960A-524C473EE87A\\n\\n 1\\n 20\\n 2\\n \\n \\n QTGl****000000\\n 480P\\n 1653996767000\\n xinde\\n 1748604768000\\n a1****ls\\n device001\\n \\n \\n eJt****000000\\n 480P\\n 1653996767000\\n xinde\\n 1748604768000\\n a1****ls\\n fefe\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryLicenseDeviceList', - 'summary' => '调用该接口查询授权License的设备列表。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.InvalidIoTId\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"ServiceInfo\\": [\\n {\\n \\"Identifier\\": \\"Set\\",\\n \\"OutputData\\": \\"{\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":200,\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{},\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100686\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.0\\\\\\\\\\\\\\"}\\",\\n \\"Time\\": \\"1579249499000\\",\\n \\"InputData\\": \\"{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":123}\\",\\n \\"Name\\": \\"设置温度\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n Bo***x44Qx\\n \\n \\n set\\n \\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n {\\"LightAdjustLevel\\":123}\\n set\\n \\n \\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备本身调用的原始服务', + 'summary' => '查询指定设备本身调用的原始服务(通过和未通过物模型校验的所有服务)记录。', + 'description' => '## 使用说明'."\n" + .'仅可查询最近30天内的服务数据。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的服务数据。'."\n" + ."\n" + .''."\n" + ."\n" + .'> 数据存储时间从调用服务当日开始计算。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'ReBindLicenseDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryDeviceProp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-e3***', - ], - ], - [ - 'name' => 'LicenseCode', - 'in' => 'query', - 'schema' => [ - 'description' => 'License类型,暂时只支持千里传音,可取值:**LINK_SPEECH_COMMON_LICENSE**。', - 'type' => 'string', - 'required' => true, - 'example' => 'LINK_SPEECH_COMMON_LICENSE', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '待授权设备所属产品的**ProductKey**。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2YwD23***', - ], + 'schema' => ['description' => '要查询的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], - [ - 'name' => 'DeviceNameList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待授权License的设备列表,需传入设备对应的**deviceName**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', - 'type' => 'array', - 'items' => [ - 'description' => '待授权License的设备,需传入设备对应的**deviceName**。'."\n" - ."\n" - .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'testdevice', - ], - 'required' => true, - 'example' => 'test', - 'maxItems' => 10000, - ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n", 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -44870,192 +30591,148 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回重新绑定结果。', - 'type' => 'object', - 'properties' => [ - 'SuccessSum' => [ - 'description' => '重新授权License成功的设备个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '10', - ], - 'Progress' => [ - 'description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ResultCsvFile' => [ - 'description' => '重新授权License完成后,授权失败设备文件的URL。', - 'type' => 'string', - 'example' => 'http://***', - ], - 'CheckProgressId' => [ - 'description' => '查询批量授权设备进度的唯一ID。', - 'type' => 'string', - 'example' => '123***', - ], - 'FailSum' => [ - 'description' => '授权License失败的设备个数。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '2', - ], - ], - ], + 'Props' => ['description' => '调用成功时,返回的设备标签信息列表,JSON String格式。', 'type' => 'string', 'example' => '{"coordinate":"104.07086:30.549169"}'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.rtc.service.notSigned', - 'errorMessage' => 'The RTC service is not activated.', - ], - [ - 'errorCode' => 'iot.rtc.invalid.license.code', - 'errorMessage' => 'invalid license code', - ], - [ - 'errorCode' => 'iot.rtc.invalid.product.key', - 'errorMessage' => 'invalid product key', - ], - [ - 'errorCode' => 'iot.rtc.license.product.relation.nonexist', - 'errorMessage' => 'license product relation non existent', - ], - [ - 'errorCode' => 'iot.rtc.license.quota.lack', - 'errorMessage' => 'license quota is not enough', - ], - [ - 'errorCode' => 'iot.rtc.license.device.authorization.executing', - 'errorMessage' => 'authorization for this license device is in progress', - ], - [ - 'errorCode' => 'iot.vas.EmptyLicenseDeviceList', - 'errorMessage' => 'empty license device list', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"ResultCsvFile\\": \\"http://***\\",\\n \\"CheckProgressId\\": \\"123***\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 123***\\n 100\\n http://***\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'ReBindLicenseDevice', - 'summary' => '调用该接口为指定产品下设备重新授权License。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Props\\": \\"{\\\\\\"coordinate\\\\\\":\\\\\\"104.07086:30.549169\\\\\\"}\\",\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nD8CEF5E7-1484-4164-A242-C06BA3A54E0F\\n{\\"coordinate\\":\\"104.07086:30.549169\\"}\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的标签列表', + 'summary' => '调用该接口查询指定设备的标签列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ImportDTData' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDevicePropertiesData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单个属性可返回的数据记录数量。最大值为100。'."\n" + .'任意一个属性返回的数据记录数量不超过该值。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], [ 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'dgb9****', - ], + 'in' => 'query', + 'schema' => ['description' => '要查询设备所属的产品ProductKey。'."\n" + ."\n" + .'>'."\n" + .' 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'DTInstanceId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'>'."\n" + .' 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'airconditioning'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-****001', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '属性记录的开始时间。取值为13位毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], ], [ - 'name' => 'Items', - 'in' => 'formData', + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中,属性记录按时间排序的方式。取值:'."\n" + ."\n" + .'- **0**:倒序。倒序查询时,**StartTime**必须大于**EndTime**。'."\n" + .'- **1**:正序。正序查询时,**StartTime**必须小于**EndTime**。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询属性所属的设备ID或数字孪生节点ID:'."\n" + ."\n" + .''."\n" + .'- 调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" + .'- 在物联网平台控制台的**数字孪生体详情**页面,单击孪生节点,可查看**节点ID**。'."\n" + ."\n" + .''."\n" + ."\n" + .'调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" + ."\n" + .'>**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '属性记录的结束时间。取值为13位毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '触发数据映射的设备信息列表。', + 'description' => '属性的标识符列表。'."\n" + .'不可输入重复的属性Identifier。'."\n" + .''."\n" + .'- 设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" + .'- 数字孪生节点的属性**Identifier**,可在物联网平台控制台的数字孪生工作台下的孪生节点的功能属性中查看。具体操作,请参见[孪生节点的功能属性](~~454999~~)。'."\n" + ."\n" + .''."\n" + ."\n" + .'设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" + ."\n" + .'> 如果设备的属性是自定义(非默认)模块**testFb**下属性**temperature**,则参数值为**testFb:temperature**。'."\n", 'type' => 'array', - 'items' => [ - 'description' => '触发数据映射的设备信息。', - 'type' => 'object', - 'properties' => [ - 'Params' => [ - 'description' => '设备数据源,格式为`Key:Value`的JSON字符串。'."\n" - ."\n" - .'单次调用本接口,最多传入300个键值对。', - 'type' => 'string', - 'required' => true, - 'example' => '{"key1":12,"key2":56}', - ], - 'DeviceName' => [ - 'description' => '设备名称。单次调用接口下,最多传入5个。', - 'type' => 'string', - 'required' => true, - 'example' => 'Device1', - ], - ], - 'required' => false, - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'maxItems' => 200, + 'example' => 'temperature', + 'maxItems' => 10, ], ], ], @@ -45064,181 +30741,191 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'NextValid' => ['description' => '目前本接口不支持分页查询,请忽略此参数返回值。', 'type' => 'boolean', 'example' => 'true'], + 'NextTime' => ['description' => '目前本接口不支持分页查询,请忽略此参数返回值。', 'type' => 'integer', 'format' => 'int64', 'example' => '1579249499000'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PropertyDataInfos' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyDataInfo' => [ + 'description' => '调用成功时,返回的属性信息列表(**PropertyDataInfo**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Identifier' => ['description' => '属性的标识符。', 'type' => 'string', 'example' => 'temperature'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyInfo' => [ + 'description' => '属性数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => '21.3'], + 'Time' => ['description' => '属性上报时间。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'example' => '1579249499000'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Iot.digitaltwin.RequestParamError', - 'errorMessage' => 'Request parameter error.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.instanceNotFound', - 'errorMessage' => 'The instance does not exist.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.instanceNodeNotExist', - 'errorMessage' => 'The nodeId is not exist.', - ], - [ - 'errorCode' => 'Iot.product.ProductNotFound', - 'errorMessage' => 'product not found.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.productAuthticFailed', - 'errorMessage' => 'Product authentic failed.', - ], - [ - 'errorCode' => 'Iot.device.DeviceNotFound', - 'errorMessage' => 'device not found.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.notSupportApiDataSource', - 'errorMessage' => 'APIs cannot be used as data sources.', - ], - [ - 'errorCode' => 'Iot.digitaltwin.tooManyRequest', - 'errorMessage' => 'Too many requests.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', - 'title' => 'ImportDTData', - 'summary' => '调用该接口触发孪生体的数据映射配置,实现数据到孪生节点的映射。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579249499000,\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PropertyDataInfos\\": {\\n \\"PropertyDataInfo\\": [\\n {\\n \\"Identifier\\": \\"temperature\\",\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"21.3\\",\\n \\"Time\\": 1579249499000\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nfalse\\nCC4CAC00-ED4C-4004-9E8D-E8B4A78552FA\\n\\n \\n \\n \\n 32.46\\n \\n \\n \\n Temperature\\n \\n \\n \\n \\n 48\\n \\n \\n \\n Humidity\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '批量查询指定设备的属性上报数据', + 'summary' => '调用该接口查询指定设备或数字孪生节点,在指定时间段内,多个属性的数据。', 'description' => '## 使用说明'."\n" - .'已在孪生空间配置API数据源映射。具体操作,请参见[配置数据源](~~455005~~)。'."\n" - ."\n\n" - .'## QPS限制'."\n" + .''."\n" + .'- 若查询数字孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" + .'- 目前本接口已不支持分页查询。调用本接口时,如果在指定时间段内,没有返回**PageSize**条记录,返回的**NextTime**和**NextValid**也是无效的。您可多次调用接口[QueryDevicePropertyData](~~69539~~),一次输入一个**Identifier**进行查询。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n" + .''."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', + .'目前本接口已不支持分页查询。调用本接口时,如果在指定时间段内,没有返回**PageSize**条记录,返回的**NextTime**和**NextValid**也是无效的。您可多次调用接口[QueryDevicePropertyData](~~69539~~),一次输入一个**Identifier**进行查询。'."\n" + ."\n" + .'## 使用限制'."\n" + ."\n" + .'- 一次调用下,最多查询10个属性的历史数据,最多返回100条数据。'."\n" + .'- 标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他实例:仅可查询最近30天内的属性数据。 '."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PrintByTemplate' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertiesData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDevicePropertyData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ParamsJsonString', - 'in' => 'formData', - 'schema' => [ - 'description' => '打印参数,您可以在寄雁传书服务控制台获取打印参数的模板,然后在模板中填入本次需要动态打印的内容。', - 'type' => 'string', - 'required' => false, - 'example' => '{ "orderTable": [ { "number": "1", "price": "33.00", "name": "糖醋排骨" } ], "orderTime": "2021-01-25 10:20:00", "address": "地址:浙江省杭州市西湖区阿里云飞天园区", "phone": "13********", "price": "? 74.00", "distributionFee": "5.00", "shopName": "XX食品商店", "title": "XX外卖单", "status": "--已在线支付--" }', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID。'."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '10'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。'."\n" - ."\n" - .'无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要查询设备所属的产品ProductKey。'."\n" + ."\n" + .'>'."\n" + .'如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'TemplateBizCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '模板标识,您可以在寄雁传书服务的控制台获取模板标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询设备的名称。'."\n" + ."\n" + .'>'."\n" + .' 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'airconditioning'], ], [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '产品的唯一标识。'."\n" - ."\n" - .'> 如果传入**ProductKey**,则必须同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的属性记录的开始时间,必须小于结束时间**EndTime**。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '1579249499000'], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '要查询的属性标识符。'."\n" + ."\n" + .''."\n" + .'- 设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" + .'- 数字孪生节点的属性**Identifier**,可在物联网平台控制台中数字孪生工作台下的孪生节点的功能属性中查看。具体操作,请参见[孪生节点的功能属性](~~278729~~)。'."\n" + ."\n" + .''."\n" + ."\n" + .'设备的属性**Identifier**,可在物联网平台控制台中设备所属的产品的功能定义中查看,或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" + ."\n" + .'> 如果设备的属性是自定义(非默认)模块**testFb**下属性**temperature**,则参数值为**testFb:temperature**。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'temperature'], ], [ - 'name' => 'HistoryPrintTopic', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否下发历史的Topic给打印设备。'."\n" - ."\n" - .'- false(默认):下发设备的Topic格式为**/ext/rrpc/+/{pk}/{dn}/user/print**'."\n" - .'- true:下发设备的Topic格式为**/ext/rrpc/+/{pk}/{dn}/print**'."\n", - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中属性记录的排序方式,取值:'."\n" + ."\n" + .'- **0**:倒序。'."\n" + .'- **1**:正序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询属性所属的设备ID或数字孪生节点ID:'."\n" + ."\n" + .''."\n" + .'- 调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" + .'- 在物联网平台控制台的**数字孪生体详情**页面,单击孪生节点,可查看**节点ID**。'."\n" + ."\n" + .''."\n" + ."\n" + .'调用[QueryDeviceInfo](~~257184~~)接口,可查询指定设备的**IotId**。'."\n" + ."\n" + .'>**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的属性记录的结束时间,必须大于起始时间**StartTime**。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '1579249499000'], ], ], 'responses' => [ @@ -45246,163 +30933,149 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.printservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'print service not open', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-*** ', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '打印结果。', + 'description' => '调用成功时,返回的设备属性记录。', 'type' => 'object', 'properties' => [ - 'RetryCount' => [ - 'description' => '实际重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Success' => [ - 'description' => '是否打印成功。'."\n" - ."\n" - .'- **true**:打印成功。'."\n" - ."\n" - .'- **false**:打印失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceErrorMessage' => [ - 'description' => '打印设备返回的错误详情。', - 'type' => 'string', - 'example' => 'no paper', - ], - 'MaxRetryCount' => [ - 'description' => '最多重试次数,固定取值为2,最多重试2次。'."\n" - ."\n" - .'打印指令下发到设备后,如果设备回复失败或者超时,服务器将重新下发打印指令。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'DeviceErrorCode' => [ - 'description' => '打印设备返回的错误码。'."\n" - ."\n" - .'- 2:缺纸'."\n" - .'- 3:卡纸', - 'type' => 'string', - 'example' => '2', - ], - 'Id' => [ - 'description' => '打印的ID。', - 'type' => 'string', - 'example' => 'NyWh5lw3*****RfL9LJUivhOhQV*****', + 'NextTime' => ['description' => '下一页面中的属性记录的起始时间。'."\n" + ."\n" + .'- 当属性记录的排序方式为倒序(入参**Asc**为**0**),调用本接口查询下一页属性记录时,该值可作为下次查询的入参**EndTime**的值。'."\n" + .'- 当属性记录的排序方式为正序(入参**Asc**为**1**),调用本接口查询下一页属性记录时,该值可作为下次查询的入参**StartTime**的值。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1579249499000'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有,返回**NextTime**。详细说明,请参见**NextTime**描述。'."\n" + .'- **false**:没有。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyInfo' => [ + 'description' => '属性数据列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => '2'], + 'Time' => ['description' => '属性修改时间。', 'type' => 'string', 'example' => '1516541885630'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.printservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"print service not open\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\\\t\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RetryCount\\": 0,\\n \\"Success\\": true,\\n \\"DeviceErrorMessage\\": \\"no paper\\",\\n \\"MaxRetryCount\\": 2,\\n \\"DeviceErrorCode\\": \\"2\\",\\n \\"Id\\": \\"NyWh5lw3*****RfL9LJUivhOhQV*****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\t\\n\\n 2\\n 0\\n NyWh5lw3*****RfL9LJUivhOhQV*****\\n 2\\n no paper\\n true\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'PrintByTemplate', - 'summary' => '调用该接口根据寄雁传书服务控制台创建的小票打印模板完成小票打印。', - 'description' => '## 限制说明'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextTime\\": 1579249499000,\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"2\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n false\\n 1579249151177\\n \\n \\n 32.46\\n \\n \\n \\n\\n45391E10-446B-4986-863E-1BA8CC44748F\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的属性记录', + 'summary' => '调用该接口查询指定设备或数字孪生节点,在指定时间段内,单个属性的数据。', + 'description' => '## 使用说明'."\n" + .'若设备或数字孪生节点有多个属性,您可以多次调用本接口,一次输入一个**Identifier**进行查询,也可以直接调用接口[QueryDevicePropertiesData](~~99237~~),一次输入多个**Identifier**进行查询。'."\n" ."\n" - .'调用该接口打印小票时,必须已经在寄雁传书控制台创建小票打印模板,否则将调用失败。'."\n" + .''."\n" + .'- 若设备或数字孪生节点有多个属性,您可以多次调用本接口,一次输入一个**Identifier**进行查询,也可以直接调用接口[QueryDevicePropertiesData](~~99237~~),一次输入多个**Identifier**进行查询。'."\n" + .'- 若查询数字孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" + ."\n" + .''."\n" + ."\n" + .'## 使用限制'."\n" + .'仅可查询最近30天内的属性数据。'."\n" + ."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的属性数据。'."\n" + ."\n" + .''."\n" + ."\n" + .'> 数据存储时间从属性时间戳表示的时间当日开始计算。'."\n" ."\n" .'## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。', + .'> RAM用户共享阿里云账号配额。'."\n", 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GisQueryDeviceLocation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertyData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDevicePropertyStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ThingList', + 'name' => 'IotInstanceId', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '要查询设备所属产品的ProductKey列表。'."\n" - .'ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。'."\n" - .'>每个设备的 **ProductKey**与**DeviceName**必须同时传入,且设备个数不能超过20个。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'g3r****Vjta', - ], - 'DeviceName' => [ - 'description' => '要查询的设备名列表。'."\n" - .'>每个设备的 **ProductKey**与**DeviceName**必须同时传入,且设备个数不能超过20个。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'mock_device_name', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 20, - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n\n" + .'> - 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'> - 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-a****13l', - ], + 'schema' => ['description' => '要查询的设备所属的产品ProductKey。'."\n" + ."\n" + .'>'."\n" + .'如果传入该参数,需同时传入DeviceName。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + ."\n" + .'>'."\n" + .'如果传入该参数,需同时传入ProductKey。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询属性所属的设备ID或IoT孪生节点ID:'."\n" + ."\n" + .'- 调用[QueryDeviceInfo](~~QueryDeviceInfo~~)接口,可查询指定设备的**IotId**。'."\n" + .'- 在物联网平台控制台的**孪生实体图**页面,单击孪生节点,可查看**节点ID**。'."\n" + ."\n\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块的数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -45410,202 +31083,103 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息,如果调用成功,没有ErrorMessage字段。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '4C717018-B6D4-5EB0-8495-2A4FF08D58CA', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回设备的位置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**productKey**。', - 'type' => 'string', - 'example' => 'g3r****Vjta', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'mock_device_name', - ], - 'CoordinateSystem' => [ - 'description' => '坐标类型。'."\n" - ."\n" - .'- **1**:WGS_84,国际经纬度坐标系统。'."\n" - .'- **2**:GCJ_02,由国测局制定,是对地理位置进行首次加密后的一种坐标系统。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Longitude' => [ - 'description' => '设备位置的经度。', - 'type' => 'number', - 'format' => 'float', - 'example' => '120.0', - ], - 'Country' => [ - 'description' => '设备所在国家。', - 'type' => 'string', - 'example' => '中国', - ], - 'Ip' => [ - 'description' => '设备上线的IP。', - 'type' => 'string', - 'example' => '127.0.0.1', - ], - 'City' => [ - 'description' => '设备所在城市。', - 'type' => 'string', - 'example' => '杭州', - ], - 'Adcode' => [ - 'description' => '高德adcode,adcode信息可参考城市编码表。'."\n" - ."\n" - .'> 城市编码表,更新于2020年7月27日,该表用于查询不同城市对应的编码。仅供查询使用,建议通过地址解析等线上服务实时获取最新编码。暂时不支持台湾省的行政区域编码查询。'."\n" - .'[下载链接](https://a.amap.com/lbs/static/amap_3dmap_lite/AMap_adcode_citycode.zip)', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '90000', - ], - 'Latitude' => [ - 'description' => '设备位置的纬度。', - 'type' => 'number', - 'format' => 'float', - 'example' => '30.0', - ], - 'Province' => [ - 'description' => '设备所在省。', - 'type' => 'string', - 'example' => '浙江省', + 'description' => '调用成功时,返回的数据,详情请参见**List**包含的参数。', + 'type' => 'object', + 'properties' => [ + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PropertyStatusInfo' => [ + 'description' => '返回的属性集合信息(**PropertyStatusInfo**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Time' => ['description' => '属性修改的时间,单位是毫秒。', 'type' => 'string', 'example' => '1517553572362'], + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => '25'], + 'DataType' => ['description' => '属性格式类型,取值:'."\n" + ."\n" + .'- **int**:整型。'."\n" + .'- **float**:单精度浮点型。'."\n" + .'- **double**:双精度浮点型。'."\n" + .'- **enum**:枚举型。'."\n" + .'- **bool**:布尔型。'."\n" + .'- **text**:字符型。'."\n" + .'- **date**:时间型(String类型的UTC时间戳,单位是毫秒)。'."\n" + .'- **array**:数组型。'."\n" + .'- **struct**:结构体类型。', 'type' => 'string', 'example' => 'int'], + 'Unit' => ['description' => '属性值的单位。', 'type' => 'string', 'example' => '°C'], + 'Identifier' => ['description' => '属性标识符。', 'type' => 'string', 'example' => 'Temperature'], + 'Name' => ['description' => '属性名称。', 'type' => 'string', 'example' => 'temperature'], + ], + 'description' => '', + ], + ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"ProductKey\\": \\"g3r****Vjta\\",\\n \\"DeviceName\\": \\"mock_device_name\\",\\n \\"CoordinateSystem\\": 1,\\n \\"Longitude\\": 120,\\n \\"Country\\": \\"中国\\",\\n \\"Ip\\": \\"127.0.0.1\\",\\n \\"City\\": \\"杭州\\",\\n \\"Adcode\\": 90000,\\n \\"Latitude\\": 30,\\n \\"Province\\": \\"浙江省\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n 4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\n \\n 1\\n 127.0.0.1\\n 中国\\n 90000\\n 30\\n 杭州\\n 120\\n 浙江省\\n g3r****Vjta\\n mock_device_name\\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => 'GisQueryDeviceLocation', - 'summary' => '调用该接口查询设备位置信息。', - 'description' => '## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"List\\": {\\n \\"PropertyStatusInfo\\": [\\n {\\n \\"Time\\": \\"1517553572362\\",\\n \\"Value\\": \\"25\\",\\n \\"DataType\\": \\"int\\",\\n \\"Unit\\": \\"°C\\",\\n \\"Identifier\\": \\"Temperature\\",\\n \\"Name\\": \\"temperature\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n \\n \\n 湿度\\n 48\\n \\n int\\n Humidity\\n %\\n \\n \\n 温度\\n 32.46\\n \\n float\\n Temperature\\n °C\\n \\n \\n\\n84BAD25B-9879-4BA1-9213-F576C6558D77\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的属性快照', + 'summary' => '调用该接口查询指定设备或数字孪生节点的所有属性快照。', + 'description' => '若查询IoT孪生节点的属性数据,必须传入参数**IotId**,且取值为孪生节点ID。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为200。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GisSearchDeviceTrace' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertyStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceProvisioning' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'MapMatch', - 'in' => 'query', - 'schema' => [ - 'description' => '是否结合地图进行位置纠偏。可取值:'."\n" - .'- **0**:否,不进行轨迹纠偏。'."\n" - .'- **1**:是,进行轨迹纠偏。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '0', - ], - ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-a****13l', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '轨迹结束时间戳(毫秒)。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645071254000', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '轨迹开始时间戳(毫秒)。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'example' => '1645071254000', - ], - ], [ 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询设备所属产品的ProductKey。'."\n" - .'ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', - 'type' => 'string', - 'required' => true, - 'example' => 'g3r****Vjta', - ], + 'in' => 'formData', + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1ji*****'], ], [ 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'mock_device_name', - ], + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'testDevcieBwT3Un'], ], ], 'responses' => [ @@ -45613,256 +31187,146 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '200表示成功。其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => '200', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '4C717018-B6D4-5EB0-8495-2A4FF08D58CA', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '- 调用成功时,返回**success**。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回设备的轨迹信息。', + 'description' => '调用成功后,返回的设备分发结果。', 'type' => 'object', 'properties' => [ - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'mock_device_name', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**productKey**。', - 'type' => 'string', - 'example' => 'g3r****Vjta', - ], - 'Points' => [ - 'description' => '轨迹点列表,最多返回200个点。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LocateTime' => [ - 'description' => '位置点时间,如果是纠偏过的轨迹,则没有该字段。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1645071254000', - ], - 'Location' => [ - 'description' => '轨迹点坐标,格式为:(经度,维度)。', - 'type' => 'string', - 'example' => '120.0,30.0', - ], - ], - ], - ], + 'TargetRegion' => ['description' => '设备所属的目标地域。', 'type' => 'string', 'example' => 'ap-southeast-1'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1ji*****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'testDevcieBwT3Un'], + 'GmtCreate' => ['description' => '设备所属分发任务的创建时间(毫秒级时间戳)。'."\n" + ."\n" + .'如果设备未分发,则返回当前服务器时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1676297683000'], + 'TargetIotInstanceId' => ['description' => '设备所属的目标实例ID。', 'type' => 'string', 'example' => 'iot-09k****'], + 'SourceIotInstanceId' => ['description' => '设备所属的源实例ID。', 'type' => 'string', 'example' => 'iot-6ja****'], + 'AliyunUid' => ['description' => '设备当前所属阿里云账号。', 'type' => 'string', 'example' => 'io****@example.com'], + 'GmtModified' => ['description' => '设备所属分发任务的修改时间(毫秒级时间戳)。'."\n" + ."\n" + .'如果设备未分发,则返回当前服务器时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1676297683000'], + 'SourceRegion' => ['description' => '设备所属的源地域。', 'type' => 'string', 'example' => 'cn-shanghai'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.gis.InvalidRequestParam', - 'errorMessage' => 'Invalid Request Param.', - ], - [ - 'errorCode' => 'iot.gis.InvalidParamSize', - 'errorMessage' => 'Invalid Param Size', - ], - [ - 'errorCode' => 'iot.gis.lbsBasicFalse', - 'errorMessage' => 'lbs service has not open yet.', - ], + ['errorCode' => 'iot.common.APINotSupportedInInstance', 'errorMessage' => 'This API operation is not supported in this instance.', 'description' => '当前实例不支持该API。'], + ['errorCode' => 'iot.common.RamActionPermissionDeny', 'errorMessage' => 'You do not have the RAM permission.', 'description' => '没有资源访问控制(RAM)权限。'], + ['errorCode' => 'iot.common.InvalidTenant', 'errorMessage' => 'The Invalid tenant.', 'description' => '不合法的租户或者创建租户失败。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"200\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"DeviceName\\": \\"mock_device_name\\",\\n \\"ProductKey\\": \\"g3r****Vjta\\",\\n \\"Points\\": [\\n {\\n \\"LocateTime\\": 1645071254000,\\n \\"Location\\": \\"120.0,30.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 4C717018-B6D4-5EB0-8495-2A4FF08D58CA\\n \\n g3r****Vjta\\n mock_device_name\\n \\n 1645071254000\\n 120.0,30.0\\n \\n \\n 200\\n true\\n","errorExample":""}]', - 'title' => '查询设备轨迹详情', - 'summary' => '调用该接口查询设备轨迹详情。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TargetRegion\\": \\"ap-southeast-1\\",\\n \\"ProductKey\\": \\"a1ji*****\\",\\n \\"DeviceName\\": \\"testDevcieBwT3Un\\",\\n \\"GmtCreate\\": 1676297683000,\\n \\"TargetIotInstanceId\\": \\"iot-09k****\\",\\n \\"SourceIotInstanceId\\": \\"iot-6ja****\\",\\n \\"AliyunUid\\": \\"io****@example.com\\",\\n \\"GmtModified\\": 1676297683000,\\n \\"SourceRegion\\": \\"cn-shanghai\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n ap-southeast-1\\n 1676297683000\\n iot-09k****\\n io****@example.com\\n 1676297683000\\n iot-6ja****\\n cn-shanghai\\n a1ji*****\\n testDevcieBwT3Un\\n\\nsuccess\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryDeviceProvisioning', + 'summary' => '调用该接口查询指定设备的分发结果。', 'description' => '## QPS限制'."\n" ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceProvisioning', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceServiceData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'Voice', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', - 'type' => 'string', - 'required' => true, - 'example' => 'Xiaoyun', - ], - ], - [ - 'name' => 'SpeechType', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料类型,分为自定义语料和常用语料。'."\n" - ."\n" - .'> 不传入此参数时或传入**custom**,必须传入参数Text和BizCode,否则调用会失败。'."\n" - ."\n" - .'- 自定义语料(默认):取值为**custom**,是自定义语料时,必须填写语料标识和语料文本。'."\n" - .'- 常用语料:由系统预置的常用语料文本,包括以下类型:'."\n" - .' - 数字:取值为**number**,包含:数字0~9,点,幺。'."\n" - .' - 量词:取值为**measure_word**,包含:个,十,百,千,万,十万,百万,亿等。'."\n" - .' - 货币单位:取值为**monetary_unit**,包含:分,角,元等。'."\n" - .' - 时间单位:取值为**time_unit**,包含:时,分,秒,月,日,年等。'."\n" - .' - 单位时间:取值为**unit_time**,包含:每秒,每分,每小时,每天,每周,每月,每年等。'."\n" - .' - 长度单位:取值为**length_unit**,包含:毫米,厘米,分米,米,千米,公里,英寸,英尺,英里等。', - 'type' => 'string', - 'required' => false, - 'example' => 'custom', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'BizCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料标识,当设备调用多个语料进行组合播报时,通过该标识播报指定的语料。'."\n" - ."\n" - .'- 当**语料类型**选择为**自定义语料**时,该参数必选。语料标识由用户自定义,支持英文字母和数字,长度为1~32个字符,项目下保证唯一。建议将语料语义的拼音首字母设置为语料标识,例如:`支付到账`设置为`ZFDZ`。'."\n" - ."\n" - .'- 当**语料类型**选择为**常用语料**时,语料标识由系统自动生成,无需用户自定义。', - 'type' => 'string', - 'required' => false, - 'example' => 'identifying', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数。数量限制:每页最多可显示50条。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'SpeechRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '播报速度,取值范围:-500~500。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '-500', - 'example' => '0', - 'default' => '0', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'Volume', - 'in' => 'formData', - 'schema' => [ - 'description' => '音量大小,取值范围:0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。如果没有项目,可以创建项目后获取项目ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的服务调用记录的开始时间。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], ], [ - 'name' => 'Text', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '要查询的服务标识符。设备的服务**Identifier**。可在控制台中,设备所属的产品的功能定义中查看;或调用[QueryThingModel](~~150321~~)。'."\n" + ."\n" + .'> 如果是自定义(非默认)模块**testFb**下服务**testService**,则参数值为**testFb:testService**。'."\n" + ."\n" + .'不传入此参数时,查询默认模块和自定义模块下的所有服务数据。'."\n", 'type' => 'string', 'required' => false, 'example' => 'Set'], ], [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中,服务调用记录按时间排序的方式。取值:'."\n" + ."\n" + .'- **0**:倒序。'."\n" + .'- **1**:正序。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], [ - 'name' => 'SoundCodeConfig', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '声码配置,包含字段如下:'."\n" - ."\n\n" - .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" - ."\n" - .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', - 'type' => 'object', - 'required' => false, - 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}', - ], + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ - 'name' => 'EnableSoundCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否启用声码,若传入了true,必须传入参数SoundCodeConfig,否则调用会失败。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的服务调用记录的结束时间。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1579249499000'], ], ], 'responses' => [ @@ -45870,59 +31334,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '创建成功时返回的语料ID(SpeechCode),是语料的唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回的设备服务调用记录。', + 'type' => 'object', + 'properties' => [ + 'NextValid' => ['description' => '是否有下一页服务调用记录。'."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextTime**的值作为下次查询的**StartTime**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'NextTime' => ['description' => '下一页面中的服务调用记录的起始时间。'."\n" + .'调用本接口查询下一页服务调用记录时,该值可作为请求**StartTime**的值。', 'type' => 'integer', 'format' => 'int64', 'example' => '1579335899000'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ServiceInfo' => [ + 'description' => '服务调用记录集合。每个元素代表一个服务执调用录。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Identifier' => ['description' => '服务标识符。', 'type' => 'string', 'example' => 'Set'], + 'OutputData' => ['description' => '服务的输出参数,MAP格式的字符串,结构为`key:value`。', 'type' => 'string', 'example' => '{\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}'], + 'Time' => ['description' => '调用服务的时间。', 'type' => 'string', 'example' => '1579249499000'], + 'InputData' => ['description' => '服务的输入参数,MAP格式的字符串,结构为`key:value`。', 'type' => 'string', 'example' => '{\\"LightAdjustLevel\\":123}'], + 'Name' => ['description' => '服务名称。', 'type' => 'string', 'example' => '设置温度'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => '创建语料', - 'summary' => '调用该接口创建语料。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextValid\\": true,\\n \\"NextTime\\": 1579335899000,\\n \\"List\\": {\\n \\"ServiceInfo\\": [\\n {\\n \\"Identifier\\": \\"Set\\",\\n \\"OutputData\\": \\"{\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":200,\\\\\\\\\\\\\\"data\\\\\\\\\\\\\\":{},\\\\\\\\\\\\\\"id\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"100686\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.0\\\\\\\\\\\\\\"}\\",\\n \\"Time\\": \\"1579249499000\\",\\n \\"InputData\\": \\"{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":123}\\",\\n \\"Name\\": \\"设置温度\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 1517315865197\\n \\n \\n set\\n \\n {\\"code\\":200,\\"data\\":{},\\"id\\":\\"100686\\",\\"message\\":\\"success\\",\\"version\\":\\"1.0\\"}\\n {\\"LightAdjustLevel\\":123}\\n set\\n \\n \\n\\nA44C818E-FA7F-4765-B1E7-01D14AE01C6A\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定设备的服务调用记录', + 'summary' => '调用该接口查询指定设备的服务调用记录。', + 'description' => '## 使用说明'."\n" + ."\n" + .'仅能查询最近30天内的服务数据。'."\n" + ."\n" + .''."\n" + .'- 华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例:仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .'- 其他地域和实例:仅可查询最近30天内的服务数据。'."\n" + ."\n" + .''."\n" + ."\n" + .'> 数据存储时间从调用服务当日开始计算。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享该阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceServiceData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -45931,108 +31428,29 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'Voice', - 'in' => 'formData', - 'schema' => [ - 'description' => '更新创建语料时设置的语料播报声音,可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', - 'type' => 'string', - 'required' => true, - 'example' => 'Siyue', - ], - ], - [ - 'name' => 'SpeechCode', + 'name' => 'IotId', 'in' => 'formData', - 'schema' => [ - 'description' => '语料ID,该参数可通过调用[QuerySpeechList](~~217576~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => ' VlKzbj3XIZ****CeIHH6vR82JNCSzk**', - ], + 'schema' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。调用[QuerySpeechDevice](~~280408~~)可以获取该参数。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'SpeechRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '播报速度,默认值为0,取值范围:-500~500。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '-500', - 'example' => '0', - 'default' => '0', - ], - ], - [ - 'name' => 'Volume', - 'in' => 'formData', - 'schema' => [ - 'description' => '音量大小,默认值为50,取值范围:0~100。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => ' 4de2c367****8c585e5992**', - ], - ], - [ - 'name' => 'SoundCodeConfig', + 'name' => 'PageSize', 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '声码配置,包含字段如下:'."\n" - ."\n\n" - .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" - ."\n" - .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', - 'type' => 'object', - 'required' => false, - 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'EnableSoundCode', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '是否启用声码。'."\n" - ."\n" - .'> 如果传入了**true**,必须传入参数**SoundCodeConfig**,否则调用会失败。'."\n" - .'>', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '当前页,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -46040,405 +31458,279 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => '千里传音解决方案未开通', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的结果。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '返回数据的总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页,从1开始。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '当前页的语料列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'AudioFormat' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'example' => 'wav'], + 'BizCode' => ['description' => '语料标识。', 'type' => 'string', 'example' => 'ZFDZ'], + 'Size' => ['description' => '语料大小,单位KB。', 'type' => 'number', 'format' => 'float', 'example' => '16'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"千里传音解决方案未开通\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => '更新语料', - 'summary' => '更新语料,包括语料的播报声音、播报速度和音量大小等。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"AudioFormat\\": \\"wav\\",\\n \\"BizCode\\": \\"ZFDZ\\",\\n \\"Size\\": 16\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n 16\\n wav\\n ZFDZ\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备语料列表', + 'summary' => '查询指定设备的语料列表。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechLicenseAvailableQuota' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceStatistics' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '返回的License可用配额。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '120', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.system.InstanceNotFound', - 'errorMessage' => 'The instance ID does not exist.', - ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要查询设备所属的产品ProductKey。'."\n" + .'- 传入此参数,返回该产品下的设备统计数据。如果同时传入**GroupId**,返回指定分组下该产品的设备统计数据。'."\n" + .'- 不传入此参数和**GroupId**,则返回当前账号下所有设备统计数据。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": 120,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n120\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySpeechLicenseAvailableQuota', - 'summary' => '调用该接口查询当前License的剩余可用配额。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetSpeechVoice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '要查询设备所属的分组ID。'."\n" + ."\n" + .'- 传入此参数,返回该分组下的设备统计数据。如果同时传入**ProductKey**,返回该分组下指定产品的设备统计数据。'."\n" + .'- 不传入此参数和**ProductKey**,返回当前账号下所有设备统计数据。', 'type' => 'string', 'required' => false, 'example' => 'W16X8Tvdosec****'], ], ], - 'systemTags' => [], - 'parameters' => [], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'F94F72A5-82F0-496F-9AC2-3DBCFF77608A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的设备统计信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '返回的语料播报声音列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Label' => [ - 'description' => '声音标签,标注声音的适用场景,例如通用场景、客服场景、童声场景等。', - 'type' => 'string', - 'example' => '通用场景', - ], - 'Value' => [ - 'description' => '声音值。', - 'type' => 'string', - 'example' => 'tongyong', - ], - 'VoiceList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '播报声音列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Label' => [ - 'description' => '播报声音标签,标注声音的类型,例如标准男声、标准女声等。', - 'type' => 'string', - 'example' => '小云,标准女声', - ], - 'Value' => [ - 'description' => '播报声音值,需要填入**Voice**参数的API,例如:'."\n" - .'[CreateSpeech](~~217571~~)、[TestSpeech](~~217575~~),传入该字段的值。', - 'type' => 'string', - 'example' => 'Xiaoyun', - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'deviceCount' => ['description' => '设备总数。', 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + 'activeCount' => ['description' => '已激活的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'onlineCount' => ['description' => '在线的设备数量。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"F94F72A5-82F0-496F-9AC2-3DBCFF77608A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"通用场景\\",\\n \\"Value\\": \\"tongyong\\",\\n \\"VoiceList\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"小云,标准女声\\",\\n \\"Value\\": \\"Xiaoyun\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nF94F72A5-82F0-496F-9AC2-3DBCFF77608A\\n\\n \\n \\n tongyong\\n \\n \\n \\n Xiaoyun\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '获取语料播报声音', - 'summary' => '获取语料播报的声音配置。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"deviceCount\\": 100,\\n \\"activeCount\\": 10,\\n \\"onlineCount\\": 10\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 2\\n 2\\n 0\\n\\n8AC026D2-6F16-4719-A396-969D63DCA138\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备统计数据', + 'summary' => '调用该接口查询设备统计数据,包括在线设备数、已激活设备数和已创建的设备总数。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'TestSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDeviceSubTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'Voice', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中`VoiceList`中`Value`的值。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Siyue', - ], - ], - [ - 'name' => 'Volume', - 'in' => 'formData', - 'schema' => [ - 'description' => '音量大小,取值范围:0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], - ], - [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。如果没有项目,可以创建项目后获取项目ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'SpeechRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '播报速度,取值范围:-500~500。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '-500', - 'example' => '0', - 'default' => '0', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要查询设备所属产品的ProductKey。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)查看产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'hf768****'], ], [ - 'name' => 'Text', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要查询设备的设备名称。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用[QueryDeviceInfo](~~257184~~)查看设备的信息。', 'type' => 'string', 'required' => true, 'example' => 'device1'], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'TopicList' => [ + 'description' => '调用成功后,返回的设备已订阅Topic信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TopicName' => ['description' => '已订阅的设备Topic。', 'type' => 'string', 'example' => '/hf768****/device1/user/test'], + 'Timestamp' => ['description' => '订阅Topic的时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1662039965873'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], - [ - 'name' => 'SpeechType', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料类型,分为自定义语料和常用语料。'."\n" - ."\n" - .'> 不传入此参数时或传入**custom**,必须传入参数Text,否则调用会失败。'."\n" - ."\n" - .'- 自定义语料(默认):取值为**custom**,是自定义语料时,必须填写语料标识和语料文本。'."\n" - .'- 常用语料:由系统预置的常用语料文本,包括以下类型:'."\n" - .' - 数字:取值为**number**,包含:数字0~9,点,幺。'."\n" - .' - 量词:取值为**measure_word**,包含:个,十,百,千,万,十万,百万,亿等。'."\n" - .' - 货币单位:取值为**monetary_unit**,包含:分,角,元等。'."\n" - .' - 时间单位:取值为**time_unit**,包含:时,分,秒,月,日,年等。'."\n" - .' - 单位时间:取值为**unit_time**,包含:每秒,每分,每小时,每天,每周,每月,每年等。'."\n" - .' - 长度单位:取值为**length_unit**,包含:毫米,厘米,分米,米,千米,公里,英寸,英尺,英里等。', - 'type' => 'string', - 'required' => false, - 'example' => 'custom', + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"TopicList\\": [\\n {\\n \\"TopicName\\": \\"/hf768****/device1/user/test\\",\\n \\"Timestamp\\": 1662039965873\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1662039965873\\n /hf768****/device1/user/test\\n\\n\\n 1662039965873\\n /hf768****/device1/user/down\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryDeviceSubTopic', + 'summary' => '调用该接口查询设备已订阅的Topic列表。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceSubTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryDeviceTunnel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'SoundCodeConfig', - 'in' => 'formData', - 'style' => 'json', - 'schema' => [ - 'description' => '声码配置,包含字段如下:'."\n" - ."\n\n" - .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" - ."\n" - .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', - 'type' => 'object', - 'required' => false, - 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}', - ], + 'name' => 'TunnelId', + 'in' => 'query', + 'schema' => ['description' => '要查询安全隧道的ID。', 'type' => 'string', 'required' => true, 'example' => 'd4098041-a560-***'], ], [ - 'name' => 'EnableSoundCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否启用声码,若传入了true,必须传入参数SoundCodeConfig,否则调用会失败。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-***-v6***'], ], ], 'responses' => [ @@ -46446,100 +31738,153 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回安全隧道的信息。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'items' => [ - 'description' => '语料试听的音频下载地址列表。'."\n", - 'type' => 'array', - 'items' => [ - 'description' => '语料试听的音频下载地址,若是语料包则返回各个语料的地址。'."\n", - 'type' => 'string', - 'example' => ' [ "http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723"]', - ], - ], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'test'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'UtcClosed' => ['description' => '安全隧道关闭的UTC时间。', 'type' => 'string', 'example' => '2021-09-22T12:44:12.000Z'], + 'DeviceConnState' => ['description' => '设备端连接状态。'."\n" + ."\n" + .'- **CONNECTED**:已连接。'."\n" + .'- **DISCONNECTED**:未连接。', 'type' => 'string', 'example' => 'CONNECTED'], + 'UtcCreated' => ['description' => '安全隧道创建的UTC时间。', 'type' => 'string', 'example' => '2021-09-22T12:44:12.000Z'], + 'SourceConnState' => ['description' => '访问端连接状态。'."\n" + ."\n" + .'- **CONNECTED**:已连接。'."\n" + .'- **DISCONNECTED**:未连接。', 'type' => 'string', 'example' => 'DISCONNECTED'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1rYuVF***'], + 'Description' => ['description' => '安全隧道的描述信息。', 'type' => 'string', 'example' => '用于远程登录到摄像头。'], + 'TunnelId' => ['description' => '安全隧道的ID。', 'type' => 'string', 'example' => ' d4098041-a560-***'], + 'TunnelState' => ['description' => '安全隧道的状态。'."\n" + ."\n" + .'- **OPEN**:已打开,支持通过安全隧道访问对应设备。'."\n" + .'- **CLOSED**:已关闭,不支持通过安全隧道访问对应设备了。', 'type' => 'string', 'example' => 'OPEN'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv***00100'], + 'Udi' => ['description' => '推送给设备的自定义信息。', 'type' => 'string', 'example' => 'reboot'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"items\\": [\\n \\" [ \\\\\\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n [ \\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\"]\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'TestSpeech', - 'summary' => '调用该接口试听语料。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.securetunnel.InstanceIdMismatch', 'errorMessage' => 'The instanceId does not match the parameter.', 'description' => '实例id跟其他参数不匹配。'], + ['errorCode' => 'iot.securetunnel.TunnelNotExist', 'errorMessage' => 'The device tunnel does not exist.', 'description' => '设备隧道不存在'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcClosed\\": \\"2021-09-22T12:44:12.000Z\\",\\n \\"DeviceConnState\\": \\"CONNECTED\\",\\n \\"UtcCreated\\": \\"2021-09-22T12:44:12.000Z\\",\\n \\"SourceConnState\\": \\"DISCONNECTED\\",\\n \\"ProductKey\\": \\"a1rYuVF***\\",\\n \\"Description\\": \\"用于远程登录到摄像头。\\",\\n \\"TunnelId\\": \\" d4098041-a560-***\\",\\n \\"TunnelState\\": \\"OPEN\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv***00100\\",\\n \\"Udi\\": \\"reboot\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n Q7uOhVRdZRRlDnTLv***00100\\n 用于远程登录到摄像头。\\n 2021-09-22T12:44:12.000Z\\n 2021-09-22T12:44:12.000Z\\n CONNECTED\\n OPEN\\n DISCONNECTED\\n reboot\\n d4098041-a560-***\\n a1rYuVF***\\n test\\n light\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询单个安全隧道的详细信息', + 'summary' => '查询单个安全隧道的详细信息,包括安全隧道的所属设备、创建时间、ID、连接状态等。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDevicesHotStorageData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'SpeechCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料ID,调用[CreateSpeech](~~217571~~)成功后返回的**Data**字段为语料ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992** ', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-2w****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => ' iot_instc_pu****_c*-v64********', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '单个字段标识符可返回的数据记录数量,最大值为100。'."\n" + ."\n" + .'任意一个字段返回的数据记录数量均不超过该值。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '201', 'minimum' => '0', 'example' => '10'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], + ], + [ + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的数据记录的开始时间,必须小于结束时间**EndTime**。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999999', 'minimum' => '0', 'example' => '1579249499000'], + ], + [ + 'name' => 'Identifier', + 'in' => 'query', + 'schema' => ['description' => '已存储热数据中的字段标识符。即调用**WriteDevicesHotStorageData**接口写入热数据中请求参数**Items**中的字段标识符。', 'type' => 'string', 'required' => true, 'example' => 'temperature'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中数据记录的排序方式,取值:'."\n" + ."\n" + .'- **0**:倒序。'."\n" + .'- **1**:正序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '5', 'minimum' => '0', 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '设备ID。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'y4u2weAI********HMle1234'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '要查询的数据记录的结束时间,必须大于起始时间**StartTime**。取值为毫秒值时间戳,例如:1579249499000。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999999', 'minimum' => '0', 'example' => '1579249499000'], + ], + [ + 'name' => 'UserTopic', + 'in' => 'query', + 'schema' => ['description' => '要查询数据所属自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" + ."\n" + .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', 'type' => 'string', 'required' => true, 'example' => 'user/a***/b***'], ], ], 'responses' => [ @@ -46547,190 +31892,157 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '语料详情。', + 'description' => '调用成功后,返回的数据。', 'type' => 'object', 'properties' => [ - 'Voice' => [ - 'description' => '语料播报声音。', - 'type' => 'string', - 'example' => 'Siyue', - ], - 'BizCode' => [ - 'description' => '语料标识,当设备调用多个语料进行组合播报时,通过该标识播报指定的语料。'."\n", - 'type' => 'string', - 'example' => 'identifying', - ], - 'SpeechCode' => [ - 'description' => '语料ID。'."\n", - 'type' => 'string', - 'example' => '4de2c367****8c585e5992** ', - ], - 'SpeechType' => [ - 'description' => '语料类型,分为自定义语料和常用语料。', - 'type' => 'string', - 'example' => 'custom', - ], - 'Text' => [ - 'description' => '语料内容。'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'SpeechRate' => [ - 'description' => '播报速度。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Volume' => [ - 'description' => '音量大小。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'AudioFormat' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'example' => 'wav', - ], - 'EnableSoundCode' => [ - 'description' => '是否启用声码。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'SoundCodeConfig' => [ - 'description' => '声码配置。', + 'nextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], + 'List' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'AdditionalDuration' => [ - 'description' => '语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'SoundCodeContent' => [ - 'description' => '声码营销内容,例如商品的详情地址等。', - 'type' => 'string', - 'example' => 'www.taobao.com', + 'PropertyInfo' => [ + 'description' => '时序数据集合。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Value' => ['description' => '字段值。', 'type' => 'string', 'example' => '2'], + 'Time' => ['description' => '字段值对应时间戳,单位为毫秒。', 'type' => 'string', 'example' => '1516541885630'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\",\\n \\"SpeechType\\": \\"custom\\",\\n \\"Text\\": \\"test\\",\\n \\"SpeechRate\\": 0,\\n \\"Volume\\": 50,\\n \\"AudioFormat\\": \\"wav\\",\\n \\"EnableSoundCode\\": true,\\n \\"SoundCodeConfig\\": {\\n \\"AdditionalDuration\\": 3,\\n \\"SoundCodeContent\\": \\"www.taobao.com\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"66FF51D3-***-49F1-B1A2-***\\n\\n custom\\n 50\\n true\\n test\\n 4de2c367****8c585e5992** \\n wav\\n Siyue\\n 0\\n identifying\\n \\n 3\\n www.taobao.com\\n \\n\\nspeech solution has not been signed\\niot.speechsolution.NotSigned\\ntrue","errorExample":""}]', - 'title' => 'QuerySpeech', - 'summary' => '调用该接口查询语料详情,包括语料的播报声音、语料类型和音量大小等。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.InvalidTimeBucket', 'errorMessage' => 'The specified time range is invalid.', 'description' => '指定的时间区间不合法。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The DeviceName parameter cannot be empty.', 'description' => '设备名称不能为空。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey parameter cannot be empty.', 'description' => '入参产品ProductKey不能为空。'], + ['errorCode' => 'iot.common.InvalidPageParams', 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', 'description' => '分页大小或者分页页号不合法。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.device.PageTokenIsIllegal', 'errorMessage' => 'The paging token is invalid.', 'description' => '分页token非法。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The DeviceName format is invalid.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is invalid.', 'description' => '入参产品ProductKey格式错误。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.device.InvalidIoTId', 'errorMessage' => 'The specified device ID is invalid.', 'description' => '设备ID错误。'], + ['errorCode' => 'iot.storage.HotStorageIopsReadNotEnough', 'errorMessage' => 'The timeline storage read IOPS is not enough.', 'description' => '时序存储读IOPS不足。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"nextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyInfo\\": [\\n {\\n \\"Value\\": \\"2\\",\\n \\"Time\\": \\"1516541885630\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n true\\n Bo***x44Qx\\n \\n \\n 2\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryDevicesHotStorageData', + 'summary' => '调用该接口查询设备热数据的时序数据。', + 'description' => '## 使用说明'."\n" + .'仅标准型和尊享型企业版实例下,支持调用该接口查询热数据。'."\n" + ."\n" + .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" + ."\n" + .'## 使用限制'."\n" + .'- 调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。'."\n" + ."\n" + .'- 仅可查询存储时效内的数据。数据存储时效,请参见[存储配置](~~464050~~)。'."\n" + .' '."\n" + .' > 数据存储时间从存储字段的时间戳表示的时间当日开始计算。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicesHotStorageData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDevicesHotStorageDataStatus' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-2w****'], ], [ 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数,最多不可超过50条。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '201', 'minimum' => '0', 'example' => '10'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'name' => 'NextPageToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识。如果存在下一页,服务会返回此token,下次请求带上即可。', 'type' => 'string', 'required' => false, 'example' => 'Bo***x44Qx'], + ], + [ + 'name' => 'Asc', + 'in' => 'query', + 'schema' => ['description' => '返回结果中数据记录的排序方式,取值:'."\n" + ."\n" + .'- **0**:倒序。'."\n" + .'- **1**:正序。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '5', 'minimum' => '0', 'example' => '0'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '设备ID。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'y4u2weAI********HMle1234'], + ], + [ + 'name' => 'UserTopic', + 'in' => 'query', + 'schema' => ['description' => '要查询数据所属自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" + ."\n" + .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', 'type' => 'string', 'required' => true, 'example' => 'user/a***/b***'], ], ], 'responses' => [ @@ -46738,266 +32050,160 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的语料列表。', + 'description' => '调用成功后,返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的语料条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的语料总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageId' => [ - 'description' => '当前页,从1开始,最大10000。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'NextPageToken' => ['description' => '下一页标识。', 'type' => 'string', 'example' => 'Bo***x44Qx'], + 'NextValid' => ['description' => '是否有下一页属性记录。'."\n" + ."\n" + .'- **true**:有。'."\n" + .'- **false**:没有。'."\n" + ."\n" + .'返回**NextValid**为**true**时,可以将**NextPageToken**的值作为下次查询的**NextPageToken**,继续查询本次查询不显示的数据。', 'type' => 'boolean', 'example' => 'true'], 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '语料列表信息。', + 'PropertyStatusDataInfo' => [ + 'description' => '快照数据集合。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Voice' => [ - 'description' => '语料的语音场景。', - 'type' => 'string', - 'example' => 'Siyue', - ], - 'BizCode' => [ - 'description' => '语料标识。'."\n", - 'type' => 'string', - 'example' => 'identifying', - ], - 'SpeechCode' => [ - 'description' => '语料ID。'."\n", - 'type' => 'string', - 'example' => '4de2c367****8c585e5992** ', - ], - 'SpeechType' => [ - 'description' => '语料类型,分为自定义语料和常用语料。', - 'type' => 'string', - 'example' => 'custom', - ], - 'Text' => [ - 'description' => '语料的文本内容。'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'AudioFormat' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'example' => 'wav', - ], - 'SpeechList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '通用语料包的语料列表。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Text' => [ - 'description' => '语料的文本内容。'."\n", - 'type' => 'string', - 'example' => 'test', - ], - 'Voice' => [ - 'description' => '语料的语音场景。', - 'type' => 'string', - 'example' => 'Siyue', - ], - 'BizCode' => [ - 'description' => '语料标识。'."\n", - 'type' => 'string', - 'example' => 'identifying', - ], - 'SpeechCode' => [ - 'description' => '语料标识的ID。'."\n" - ."\n", - 'type' => 'string', - 'example' => '4de2c367****8c585e5992** ', - ], - ], - ], - ], - ], - ], + 'Identifier' => ['description' => '字段标识符。', 'type' => 'string', 'example' => 'Temperture'], + 'Value' => ['description' => '字段值。', 'type' => 'string', 'example' => '22'], + 'Time' => ['description' => '字段值对应时间戳,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1517553572362'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 100,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\",\\n \\"SpeechType\\": \\"custom\\",\\n \\"Text\\": \\"test\\",\\n \\"AudioFormat\\": \\"wav\\",\\n \\"SpeechList\\": {\\n \\"Items\\": [\\n {\\n \\"Text\\": \\"test\\",\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n custom\\n test\\n 4de2c367****8c585e5992** \\n wav\\n Siyue\\n identifying\\n \\n \\n test\\n 4de2c367****8c585e5992** \\n Siyue\\n identifying\\n \\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询语料列表', - 'summary' => '查询指定项目语料列表。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.PageTokenIsIllegal', 'errorMessage' => 'The paging token is invalid.', 'description' => '分页token非法。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.device.InvalidTimeBucket', 'errorMessage' => 'The specified time range is invalid.', 'description' => '指定的时间区间不合法。'], + ['errorCode' => 'iot.common.InvalidPageParams', 'errorMessage' => 'The specified pagination size or pagination parameter is invalid.', 'description' => '分页大小或者分页页号不合法。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey parameter cannot be empty.', 'description' => '入参产品ProductKey不能为空。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The DeviceName format is invalid.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is invalid.', 'description' => '入参产品ProductKey格式错误。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.device.InvalidIoTId', 'errorMessage' => 'The specified device ID is invalid.', 'description' => '设备ID错误。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The DeviceName parameter cannot be empty.', 'description' => '设备名称不能为空。'], + ['errorCode' => 'iot.storage.HotStorageIopsReadNotEnough', 'errorMessage' => 'The timeline storage read IOPS is not enough.', 'description' => '时序存储读IOPS不足。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"NextPageToken\\": \\"Bo***x44Qx\\",\\n \\"NextValid\\": true,\\n \\"List\\": {\\n \\"PropertyStatusDataInfo\\": [\\n {\\n \\"Identifier\\": \\"Temperture\\",\\n \\"Value\\": \\"22\\",\\n \\"Time\\": 1517553572362\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n true\\n Bo***x44Qx\\n \\n \\n Temperture\\n 22\\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryDevicesHotStorageDataStatus', + 'summary' => '调用该接口查询设备热数据的快照数据。', + 'description' => '## 使用说明'."\n" + .'仅华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例下,支持调用该接口查询热数据。'."\n" + ."\n" + .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" + ."\n" + .'## 使用限制'."\n" + .'调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PushSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicesHotStorageDataStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryDynamicGroupDevices' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PushMode', - 'in' => 'formData', - 'schema' => [ - 'description' => '推送模式。'."\n" - ."\n" - .'- **ALL**:全量设备推送。'."\n" - ."\n" - .'- **SINGLE_DEVICE**:单设备推送。'."\n" - ."\n" - .'- **GROUP_DEVICE**:分组设备推送。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'SINGLE_DEVICE', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-***-v6***'], ], [ 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '分组ID,当**推送模式**选择为**分组设备**时,该项必填。'."\n" - .'您可以在**设备管理** > **分组管理**中获取分组ID,', - 'type' => 'string', - 'required' => false, - 'example' => '4de2c367****8c585e5992**', - ], + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。'."\n" + ."\n" + .'您可调用[QueryDeviceGroupList](~~93356~~)接口查询分组ID(**GroupId**)。', 'type' => 'string', 'required' => true, 'example' => 'tDQvBJqbUyHs***'], ], [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID。当**推送模式**选择为**单个设备**时,该参数与**ProductKey**、**DeviceName**组合二选一必传。'."\n" - ."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '每页记录数,最大值是200,默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10', 'default' => '10'], ], [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV***'], ], [ 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'light', - ], + 'in' => 'query', + 'schema' => ['description' => '设备名称。'."\n" + ."\n" + .'传入此参数时,若**FuzzyName**同时传入**true**,会模糊搜索设备,**DeviceName**值为设备名称的前缀字符串,长度必须大于4个字符。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '产品的唯一标识。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'name' => 'NextToken', + 'in' => 'query', + 'schema' => ['description' => '下一页标识,首次查询无需传入。', 'type' => 'string', 'required' => false, 'example' => 'TGlzdFJlc291***'], ], [ - 'name' => 'SpeechCodeList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要推送的语料ID列表。该参数可以通过[QuerySpeechList](~~217576~~)查询获取。'."\n" - ."\n" - .'N为整数,取值范围:1~100,表示每次最多推送100条语料。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - 'maxItems' => 100, - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'default' => '1'], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '设备状态。取值:'."\n" + ."\n" + .'- **ONLINE**:设备在线。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **UNACTIVE**:设备未激活。'."\n" + .'- **DISABLE**:设备已禁用。', 'type' => 'string', 'required' => false, 'example' => 'OFFLINE'], + ], + [ + 'name' => 'FuzzyName', + 'in' => 'query', + 'schema' => ['description' => '是否根据**DeviceName**值,模糊搜索设备。'."\n" + .'- **true**:模糊搜索。'."\n" + .'- **false**(默认):不模糊搜索。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -47005,100 +32211,141 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], + 'NextToken' => ['description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" + ."\n" + .'如果返回值为空,则表示没有下一页数据。', 'type' => 'string', 'example' => 'TGlzdFJlc291***'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页所显示的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '24'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Page' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'Data' => [ - 'description' => '返回的推送任务ID(JobCode),是推送任务的唯一标识。', - 'type' => 'string', - 'example' => '4de2c367****8c585e5992**', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SimpleDeviceInfo' => [ + 'description' => '调用成功后,返回的设备列表,详情参见**SimpleDeviceInfo**下信息。', + 'type' => 'array', + 'items' => [ + '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' => 'light'], + 'UtcActiveTime' => ['description' => '设备的激活时间,UTC格式。', 'type' => 'string', 'example' => '2018-08-06T02:48:41.000Z'], + 'ActiveTime' => ['description' => '设备的激活时间。', 'type' => 'string', 'example' => '2018-08-06 10:48:41'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1rYuVF***'], + 'LastOnlineTime' => ['description' => '设备最近一次上线时间。', 'type' => 'string', 'example' => '2018-08-06 13:43:12'], + 'NodeType' => ['description' => '产品的节点类型。取值:'."\n" + ."\n" + .'- **0**:设备。设备不能挂载子设备,可以直连物联网平台,也可以作为网关的子设备连接物联网平台。'."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,和将拓扑关系同步到物联网平台。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'UtcLastOnlineTime' => ['description' => '设备最近一次上线的时间,UTC格式。', 'type' => 'string', 'example' => '2018-08-06T05:43:12.000Z'], + 'Nickname' => ['description' => '设备的备注名称。', 'type' => 'string', 'example' => 'detectors_in_beijing'], + 'CategoryKey' => ['description' => '产品所属品类的标识符。'."\n" + ."\n" + .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。', 'type' => 'string', 'example' => 'Lighting'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"Data\\": \\"4de2c367****8c585e5992**\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n4de2c367****8c585e5992**\\ntrue\\n","errorExample":""}]', - 'title' => '推送语料到设备', - 'summary' => '将语料推送到设备。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.group.NotExistedGroup', 'errorMessage' => 'The specified device group does not exist.', 'description' => '分组不存在。'], + ['errorCode' => 'iot.device.FuzzyRuntimeSearchMinLengthLimit', 'errorMessage' => 'Fuzzy runtime search length must exceed 4.', 'description' => '模糊搜索长度必须大于等于5。'], + ['errorCode' => 'iot.device.RegionNotSupportDynamicGroup', 'errorMessage' => 'The region does not currently support the dynamic group feature.', 'description' => '该region目前不支持动态分组功能。'], + ['errorCode' => 'iot.common.APINotSupportedInInstance', 'errorMessage' => 'This API operation is not supported in this instance.', 'description' => '当前实例不支持该API。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"NextToken\\": \\"TGlzdFJlc291***\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 24,\\n \\"PageCount\\": 2,\\n \\"Page\\": 1,\\n \\"Data\\": {\\n \\"SimpleDeviceInfo\\": [\\n {\\n \\"Status\\": \\"ONLINE\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"UtcActiveTime\\": \\"2018-08-06T02:48:41.000Z\\",\\n \\"ActiveTime\\": \\"2018-08-06 10:48:41\\",\\n \\"ProductKey\\": \\"a1rYuVF***\\",\\n \\"LastOnlineTime\\": \\"2018-08-06 13:43:12\\",\\n \\"NodeType\\": 0,\\n \\"UtcLastOnlineTime\\": \\"2018-08-06T05:43:12.000Z\\",\\n \\"Nickname\\": \\"detectors_in_beijing\\",\\n \\"CategoryKey\\": \\"Lighting\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nTGlzdFJlc291***\\n2\\n10\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n24\\n1\\n\\n \\n 2018-08-06 13:43:12\\n 2018-08-06T02:48:41.000Z\\n ONLINE\\n Q7uOhVRdZRRlDnTLv****00100\\n Lighting\\n test\\n 2018-08-06T05:43:12.000Z\\n 2018-08-06 10:48:41\\n 0\\n a1rYuVF***\\n detectors_in_beijing\\n light\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询动态分组下设备', + 'summary' => '查询动态分组下的设备列表。', + 'description' => '## 限制说明'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'- 目前仅华东2(上海)地域下,企业版实例和新版公共实例,支持动态分组功能。实例详细说明,请参见[实例管理](~~147356~~)。'."\n" ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDynamicGroupDevices', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SpeechCodeList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => "\n" - .'需要删除的语料ID,您可以在**语料配置**控制台获取语料ID,或者调用[CreateSpeech](~~217571~~),成功后返回的**Data**字段为语料ID。'."\n" - ."\n" - .'N为整数,取值范围:1~20,表示每次最多删除20条。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - 'maxItems' => 20, - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中,每页显示的记录数量。最大取值30,最小取值1,默认取值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => '驱动类型:'."\n" + ."\n" + .'- **0**:表示官方驱动。'."\n" + .'- **1**:表示自研驱动。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], + ], + [ + 'name' => 'DriverName', + 'in' => 'query', + 'schema' => ['description' => '驱动名称。若查询驱动信息时,需要匹配驱动名称,则填写该参数。', 'type' => 'string', 'required' => false, 'example' => 'MyledDriver'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -47106,118 +32353,141 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidSpeechCodeList', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'invalid SpeechCodeList', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E0BD540E-DCFE-4602-B6D1-D208E8594BF7'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '官方驱动或自研驱动的总数量: '."\n" + ."\n" + .'- 请求参数**Type**的值为**0**,则此处是官方驱动的总数量。'."\n" + .'- 请求参数**Type**的值为**1**,则此处是自研驱动的总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DriverList' => [ + 'description' => '驱动信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '驱动类型:'."\n" + ."\n" + .'- **0**:表示官方驱动。'."\n" + .'- **1**:表示自研驱动。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'CpuArch' => ['description' => '驱动适配的CPU架构,有如下几种架构:'."\n" + ."\n" + .'- **armv7**'."\n" + .'- **armv7-hf**'."\n" + .'- **aarch64**'."\n" + .'- **x86-64**'."\n" + .'- **x86**', 'type' => 'string', 'example' => 'x86-64'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => 'fec565038d7544978d9aed5c1a******'], + 'IsBuiltIn' => ['description' => '驱动文件是否内置:'."\n" + ."\n" + .'- **true**:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" + .'- **false**:表示驱动为非内置驱动。', 'type' => 'boolean', 'example' => 'false'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'IsApply' => ['description' => '该驱动是否需要申请才能使用。当前仅支持**false**值。', 'type' => 'boolean', 'example' => 'false'], + 'Runtime' => ['description' => '驱动的语言类型,有如下三种类型:'."\n" + ."\n" + .'- **nodejs8**:表示Node.js v8。'."\n" + .'- **python3**:表示Python v3.5。'."\n" + .'- **c**: 表示C语言。', 'type' => 'string', 'example' => 'c'], + 'DriverName' => ['description' => '驱动名称。', 'type' => 'string', 'example' => 'MyLedDriver'], + 'DriverProtocol' => ['description' => '驱动通信协议:'."\n" + ."\n" + .'- **modbus**:表示Modbus通信协议。'."\n" + .'- **opc-ua**:表示OPC UA通信协议。'."\n" + .'- **customize**:表示自定义通信协议。', 'type' => 'string', 'example' => 'customize'], + ], + 'description' => '', + ], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidSpeechCodeList\\",\\n \\"ErrorMessage\\": \\"invalid SpeechCodeList\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => '删除语料', - 'summary' => '删除指定语料。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E0BD540E-DCFE-4602-B6D1-D208E8594BF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 1,\\n \\"CpuArch\\": \\"x86-64\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"IsBuiltIn\\": false,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"IsApply\\": false,\\n \\"Runtime\\": \\"c\\",\\n \\"DriverName\\": \\"MyLedDriver\\",\\n \\"DriverProtocol\\": \\"customize\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E0BD540E-DCFE-4602-B6D1-D208E8594BF7\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n customize\\r\\n 1\\r\\n c\\r\\n 2019-12-01 22:28:00\\r\\n fec565038d7544978d9aed5c1a******\\r\\n MyLedDriver\\r\\n 2019-12-01 22:28:00\\r\\n false\\r\\n false\\r\\n x86-64\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'QueryEdgeDriver', + 'summary' => '调用该接口分页查询驱动信息。', + 'description' => '## 限制条件'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySolutionDeviceGroupPage' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProjectCode', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], [ - 'name' => 'FuzzyGroupName', + 'name' => 'CurrentPage', 'in' => 'query', - 'schema' => [ - 'description' => '模糊查询分组的名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'PageSize', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '20', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'PageId', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '当前页,从1开始,最大10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - ], + 'schema' => ['description' => '驱动版本号。设置该参数表示仅查询该版本号匹配的驱动版本信息。', 'type' => 'string', 'required' => false, 'example' => 'led驱动'], + ], + [ + 'name' => 'VersionState', + 'in' => 'query', + 'schema' => ['description' => '驱动版本状态。'."\n" + ."\n" + .'- 0:表示查询未发布的驱动版本。'."\n" + .'- 1:表示查询已发布的驱动版本。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '0'], ], ], 'responses' => [ @@ -47225,226 +32495,155 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.tcloud.ProjectNotFound', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'project not found', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'ABA0CD1F-4270-42FE-84AD-D612240196F7'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的分组列表。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的分组个数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageId' => [ - 'description' => '当前页,从1开始。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '查询返回的数据总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'itemName' => [ - 'description' => '分组列表数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GroupId' => [ - 'description' => '分组的ID。', - 'type' => 'string', - 'example' => '4de2c367****8c585e5992** ', - ], - 'GroupName' => [ - 'description' => '分组名称。'."\n", - 'type' => 'string', - 'example' => 'test***', - ], - 'GmtCreate' => [ - 'description' => '分组的创建时间。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1356565656', - ], - 'GmtModified' => [ - 'description' => '分组最近一次修改的时间。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1357865658', - ], - 'GroupDesc' => [ - 'description' => '分组描述。', - 'type' => 'string', - 'example' => 'description', - ], - 'DeviceCount' => [ - 'description' => '分组下设备的数量。'."\n", - 'type' => 'integer', - 'format' => 'int64', - 'example' => '100', - ], - ], - ], + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '驱动数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DriverVersionList' => [ + 'description' => '驱动版本列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'ConfigCheckRule' => ['description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" + ."\n" + .'参数说明如下。'."\n" + ."\n" + .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" + ."\n" + .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。', 'type' => 'string', 'example' => '{\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => 'fec565038d7544978d9aed5c1a******'], + 'EdgeVersion' => ['description' => '驱动适配的边缘版本。', 'type' => 'string', 'example' => '2.0.0'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新驱动的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'VersionState' => ['description' => '驱动版本状态。'."\n" + ."\n" + .'- 0:表示该版本未发布。'."\n" + .'- 1:表示该版本已发布。', 'type' => 'string', 'example' => '0'], + 'ContainerConfig' => ['description' => '容器配置。JSON格式字符串参数说明,请参见本文下方ContainerConfig表格。', 'type' => 'string', 'example' => '{\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}'], + 'Description' => ['description' => '驱动描述。', 'type' => 'string', 'example' => 'Led驱动'], + 'DriverConfig' => ['description' => '驱动配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"format":"JSON","content":"{}"}`'."\n" + ."\n" + .'参数说明如下所示。'."\n" + ."\n" + .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" + .'- content:配置内容。format为KV或JSON时,此处为配置内容;format为FILE时,此处为OSS地址。', 'type' => 'string', 'example' => '[{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]'], + 'DriverVersion' => ['description' => '驱动版本号。', 'type' => 'string', 'example' => '1.2.0'], + 'Argument' => ['description' => 'JVM(Java Virtual Machine)启动参数。', 'type' => 'string', 'example' => '-XX:+PrintGCDetails'], + 'SourceConfig' => ['description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"ossAddress":"http://***/driver_code.zip","temporaryOssAddress":"http://***/driver_code.zip?Expires***"}`'."\n" + ."\n" + .'其中,`ossAddress`为对象存储(OSS)访问地址,`temporaryOssAddress`为可以直接下载的临时链接,有效期5分钟。', 'type' => 'string', 'example' => '{\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip?Expires\\u003d1575******\\u0026OSSAccessKeyId\\u003daS4MT0IYr******\\u0026Signature\\u003dm6cpmcaB8rm3YfbkhTYgb0W******\\"}'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.tcloud.ProjectNotFound\\",\\n \\"ErrorMessage\\": \\"project not found\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"List\\": {\\n \\"itemName\\": [\\n {\\n \\"GroupId\\": \\"4de2c367****8c585e5992** \\",\\n \\"GroupName\\": \\"test***\\",\\n \\"GmtCreate\\": 1356565656,\\n \\"GmtModified\\": 1357865658,\\n \\"GroupDesc\\": \\"description\\",\\n \\"DeviceCount\\": 100\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n test***\\n 1356565656\\n description\\n 1357865658\\n 100\\n 4de2c367****8c585e5992** \\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询项目分组列表', - 'summary' => '查询指定项目下的分组列表。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"ABA0CD1F-4270-42FE-84AD-D612240196F7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DriverVersionList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"ConfigCheckRule\\": \\"{\\\\\\\\\\\\\\"deviceConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false},\\\\\\\\\\\\\\"driverConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false}}\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"EdgeVersion\\": \\"2.0.0\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"VersionState\\": \\"0\\",\\n \\"ContainerConfig\\": \\"{\\\\\\\\\\\\\\"devMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"hostNetworkMode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"portMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"privileged\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"volumeMappings\\\\\\\\\\\\\\":[]}\\",\\n \\"Description\\": \\"Led驱动\\",\\n \\"DriverConfig\\": \\"[{\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"defaultConfig\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this is default driver config demo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"format\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"JSON\\\\\\\\\\\\\\"}]\\",\\n \\"DriverVersion\\": \\"1.2.0\\",\\n \\"Argument\\": \\"-XX:+PrintGCDetails\\",\\n \\"SourceConfig\\": \\"{\\\\\\\\\\\\\\"ossAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"temporaryOssAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip?Expires\\\\\\\\u003d1575******\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYr******\\\\\\\\u0026Signature\\\\\\\\u003dm6cpmcaB8rm3YfbkhTYgb0W******\\\\\\\\\\\\\\"}\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ABA0CD1F-4270-42FE-84AD-D612240196F7\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n {\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}\\r\\n 2019-12-01 22:28:01\\r\\n fec565038d7544978d9aed5c1a******\\r\\n Led驱动\\r\\n 1.2.0\\r\\n {\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires=1575******&OSSAccessKeyId=aS4MT0IYrPS******&Signature=m6cpmcaB8rm3YfbkhTYgb0WO******\\"}\\r\\n 2019-12-01 22:28:01\\r\\n [{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]\\r\\n 2.0.0\\r\\n {\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}\\r\\n 0\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '分页查询驱动版本列表', + 'summary' => '分页查询驱动版本列表。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' **ContainerConfig参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| privileged | Integer | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" + .'| hostNetworkMode | Integer | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" + .'| portMappings | List | 网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" + .'| devMappings | List | 设备映射。格式请参考本文下方devMappings表格。 |'."\n" + .'| volumeMappings | List | 卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" + ."\n" + .'
**portMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPort | Integer | 宿主机端口。 |'."\n" + .'| containerPort | Integer | 容器内端口。 |'."\n" + .'| protocol | Integer | 协议类型。取值有tcp和udp两种。 |'."\n" + ."\n\n" + .'**devMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPath | String | 设备名称。 |'."\n" + .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" + .'| comment | String | 注释信息。 |'."\n" + ."\n\n" + .'**volumeMappings参数说明**'."\n" + ."\n" + .'| 名称 | 类型 | 描述 |'."\n" + .'| --- | --- | --- |'."\n" + .'| hostPath | String | 源路径。 |'."\n" + .'| containerPath | String | 目的路径。 |'."\n" + .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|', 'extraInfo' => ' ', - ], - 'QuerySpeechPushJob' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-060*****', - ], - ], - [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => '0Ykj************************Av0I', - ], - ], - [ - 'name' => 'PushMode', - 'in' => 'formData', - 'schema' => [ - 'description' => '推送任务的模式,不传则查询所有模式。'."\n" - ."\n" - .'- **SINGLE_DEVICE**:单设备推送。'."\n" - .'- **ALL**:全量设备推送。'."\n" - .'- **GROUP_DEVICE**:分组设备推送。', - 'type' => 'string', - 'required' => false, - 'example' => 'ALL', - ], - ], - [ - 'name' => 'JobCode', 'in' => 'query', - 'schema' => [ - 'description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'tBUm***********************QPGT', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'StatusList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '查询语料推送任务的状态列表,不传则查询所有状态。'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **CANCEL**:取消。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **TIMEOUT**:超时。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'RUNNING', - 'maxItems' => 10, - ], + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '边缘实例名称。', 'type' => 'string', 'required' => false, 'example' => '测试实例_test'], ], ], 'responses' => [ @@ -47452,274 +32651,136 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '199BBC5D-FC99-46CB-88E2-FB98E92446FA'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的语料推送任务状态列表。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '当前页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的语料推送任务总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '语料推送任务列表信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '语料推送任务状态。'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **CANCEL**:取消。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **TIMEOUT**:超时。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'SuccessDeviceNum' => [ - 'description' => '语料推送成功的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'SpeechNum' => [ - 'description' => '语料数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'FailDeviceNum' => [ - 'description' => '推送失败的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PushMode' => [ - 'description' => '推送模式。'."\n" - ."\n" - .'- **SINGLE_DEVICE**:单设备推送。'."\n" - .'- **ALL**:全量设备推送。'."\n" - .'- **GROUP_DEVICE**:分组设备推送。', - 'type' => 'string', - 'example' => 'ALL', - ], - 'SpeechStatus' => [ - 'description' => '推送语料是否完整。'."\n" - ."\n" - .'- **true**:完整。'."\n" - .'- **false**:不完整。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ProductKey' => [ - 'description' => '产品的唯一标识。', - 'type' => 'string', - 'example' => 'den0ZLt****', - ], - 'GroupName' => [ - 'description' => '分组名称。', - 'type' => 'string', - 'example' => '测试分组', - ], - 'GroupId' => [ - 'description' => '分组ID。', - 'type' => 'string', - 'example' => 'test_group', - ], - 'ExpiredTime' => [ - 'description' => '推送任务的到期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'RunningDeviceNum' => [ - 'description' => '运行中的设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Code' => [ - 'description' => '推送任务ID。', - 'type' => 'string', - 'example' => 'tBUm***********************QPGT', - ], - 'TotalDeviceNum' => [ - 'description' => '总设备数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'CreatedTime' => [ - 'description' => '推送任务的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => '0iOf*****************n001', - ], - ], - ], + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Total' => ['description' => '边缘实例数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '201'], + 'InstanceList' => [ + 'description' => '边缘实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建边缘实例的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '边缘实例授权类型。'."\n" + ."\n" + .'- 0:自有实例'."\n" + .'- 1:授权实例', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'RoleArn' => ['description' => '授权角色的全局资源描述符。', 'type' => 'string', 'example' => 'acs:ram::1473922805******:role/aliyuniotaccessingfcrole'], + 'RoleAttachTime' => ['description' => '角色绑定时间。', 'type' => 'string', 'example' => '2020-02-19 11:25:48'], + 'Spec' => ['description' => '产品规格。'."\n" + ."\n" + .'- 10:轻量版。'."\n" + .'- 20:标准版。'."\n" + .'- 30:专业版。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新边缘实例的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Tags' => ['description' => '边缘实例标签。', 'type' => 'string', 'example' => 'k1:v1,k2:v2'], + 'InstanceId' => ['description' => '边缘实例ID。', 'type' => 'string', 'example' => '9iqyQAKDb2aYGVKa****'], + 'RoleName' => ['description' => '授权角色名称。', 'type' => 'string', 'example' => 'AliyunIOTAccessingFCRole'], + 'RoleAttachTimestamp' => ['description' => '角色绑定的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '最后一次更新边缘实例的时间。', 'type' => 'string', 'example' => '2019-07-17 14:51:38'], + 'LatestDeploymentType' => ['description' => '边缘实例最近一次部署单类型。'."\n" + ."\n" + .'- deploy:部署。'."\n" + .'- reset:重置。', 'type' => 'string', 'example' => 'deploy'], + 'LatestDeploymentStatus' => ['description' => '边缘实例最近一次部署单状态。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 1:正在进行(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'BizEnable' => ['description' => '边缘实例是否开启。'."\n" + ."\n" + .'- true:开启。'."\n" + .'- false:关闭。', 'type' => 'boolean', 'example' => 'true'], + 'GmtCreate' => ['description' => '创建边缘实例的时间。', 'type' => 'string', 'example' => '2019-07-17 14:34:28'], + 'Name' => ['description' => '边缘实例名称。', 'type' => 'string', 'example' => 'test_le1'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"RUNNING\\",\\n \\"SuccessDeviceNum\\": 1,\\n \\"SpeechNum\\": 1,\\n \\"DeviceName\\": \\"test\\",\\n \\"FailDeviceNum\\": 1,\\n \\"PushMode\\": \\"ALL\\",\\n \\"SpeechStatus\\": true,\\n \\"ProductKey\\": \\"den0ZLt****\\",\\n \\"GroupName\\": \\"测试分组\\",\\n \\"GroupId\\": \\"test_group\\",\\n \\"ExpiredTime\\": 1620634297000,\\n \\"RunningDeviceNum\\": 2,\\n \\"Code\\": \\"tBUm***********************QPGT\\",\\n \\"TotalDeviceNum\\": 3,\\n \\"CreatedTime\\": 1620634297000,\\n \\"IotId\\": \\"0iOf*****************n001\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n 测试分组\\n RUNNING\\n 1\\n 1620634297000\\n 3\\n 1\\n 2\\n 1\\n tBUm***********************QPGT\\n test_group\\n ALL\\n 0iOf*****************n001\\n 1620634297000\\n true\\n den0ZLt****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询语料推送任务列表', - 'summary' => '查询指定项目的语料推送任务列表。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"199BBC5D-FC99-46CB-88E2-FB98E92446FA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 201,\\n \\"InstanceList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 0,\\n \\"RoleArn\\": \\"acs:ram::1473922805******:role/aliyuniotaccessingfcrole\\",\\n \\"RoleAttachTime\\": \\"2020-02-19 11:25:48\\",\\n \\"Spec\\": 30,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Tags\\": \\"k1:v1,k2:v2\\",\\n \\"InstanceId\\": \\"9iqyQAKDb2aYGVKa****\\",\\n \\"RoleName\\": \\"AliyunIOTAccessingFCRole\\",\\n \\"RoleAttachTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-07-17 14:51:38\\",\\n \\"LatestDeploymentType\\": \\"deploy\\",\\n \\"LatestDeploymentStatus\\": 1,\\n \\"BizEnable\\": true,\\n \\"GmtCreate\\": \\"2019-07-17 14:34:28\\",\\n \\"Name\\": \\"test_le1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 199BBC5D-FC99-46CB-88E2-FB98E92446FA\\r\\n \\r\\n 2\\r\\n 1\\r\\n 201\\r\\n \\r\\n \\r\\n 2019-07-17 14:34:28\\r\\n true\\r\\n 9iqyQAKDb2aYGVKa****\\r\\n 2019-07-17 14:51:38\\r\\n 20\\r\\n test_le1\\r\\n \\r\\n \\r\\n 2018-10-22 20:09:29\\r\\n true\\r\\n ZpbCxkQpbb2kpmm0****\\r\\n reset\\r\\n 2019-07-16 16:50:50\\r\\n 30\\r\\n test_le1\\r\\n 1\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询当前账号下的所有边缘实例', + 'summary' => '查询当前账号下的所有边缘实例 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechPushJobDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstanceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'JobCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'tBUm***********************QPGT', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'ChannelName', + 'in' => 'query', + 'schema' => ['description' => '驱动通道名称。', 'type' => 'string', 'required' => false, 'example' => 'le_name0'], ], [ - 'name' => 'Status', - 'in' => 'formData', - 'schema' => [ - 'description' => '推送任务状态,不传则查询所有类型。'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **SENDING**:正在发送。'."\n" - .'- **CANCEL**:取消。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **TIMEOUT**:超时。', - 'type' => 'string', - 'required' => false, - 'example' => 'SUCCESS', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot-060*****', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], ], 'responses' => [ @@ -47727,185 +32788,125 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AA1EF007-0455-43C7-8E03-39D0BA20F4F5'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的指定语料推送任务下的设备。', + 'description' => '调用成功时返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '当前页显示的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的数据总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '驱动通道总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ChannelList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '指定语料推送任务下的设备详情。', + 'Channel' => [ + 'description' => '驱动通道信息列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '推送任务状态。'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **SENDING**:正在发送。'."\n" - .'- **CANCEL**:取消。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **TIMEOUT**:超时。', - 'type' => 'string', - 'example' => 'SUCCESS', - ], - 'ErrorMessage' => [ - 'description' => '设备上报的错误信息。', - 'type' => 'string', - 'example' => 'device storage limited', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'GmtModified' => [ - 'description' => '最近一次修改时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620624606000', - ], - 'ErrorCode' => [ - 'description' => '设备上报的错误码。'."\n" - ."\n" - .'- 1:本地空间不足。'."\n" - .'- 2:下载失败。'."\n" - .'- 3: 语料更新中。', - 'type' => 'string', - 'example' => '2', + 'GmtCreateTimestamp' => ['description' => '创建驱动通道的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1584371212000'], + 'ChannelName' => ['description' => '驱动通道名称。', 'type' => 'string', 'example' => 'le_name0'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新驱动通道的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1584371212000'], + 'ChannelId' => ['description' => '驱动通道ID。', 'type' => 'string', 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], + 'GmtCreate' => ['description' => '创建驱动通道的时间。', 'type' => 'string', 'example' => '2020-03-16 23:06:52'], + 'GmtModified' => ['description' => '最后一次更新驱动通道的时间。', 'type' => 'string', 'example' => '2020-03-16 23:06:52'], + 'ConfigList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Config' => [ + 'description' => '配置信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。', 'type' => 'string', 'example' => 'key1'], + 'ConfigId' => ['description' => '配置ID。', 'type' => 'string', 'example' => '5d6016035c1a451daf174b1051******'], + 'Format' => ['description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'example' => 'JSON'], + 'Content' => ['description' => '配置内容。', 'type' => 'string', 'example' => '{\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"SUCCESS\\",\\n \\"ErrorMessage\\": \\"device storage limited\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"GmtModified\\": 1620624606000,\\n \\"ErrorCode\\": \\"2\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n SUCCESS\\n 1620624606000\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询指定语料推送任务下的设备', - 'summary' => '查询指定语料推送任务下的设备 。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AA1EF007-0455-43C7-8E03-39D0BA20F4F5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"ChannelList\\": {\\n \\"Channel\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1584371212000,\\n \\"ChannelName\\": \\"le_name0\\",\\n \\"GmtModifiedTimestamp\\": 1584371212000,\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"GmtCreate\\": \\"2020-03-16 23:06:52\\",\\n \\"GmtModified\\": \\"2020-03-16 23:06:52\\",\\n \\"ConfigList\\": {\\n \\"Config\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"5d6016035c1a451daf174b1051******\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"protocol\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TCP\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.2.3.4\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"port\\\\\\\\\\\\\\":1}\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n AA1EF007-0455-43C7-8E03-39D0BA20F4F5\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n 2020-03-16 23:06:52\\r\\n le_name0\\r\\n 1584371212000\\r\\n 2020-03-16 23:06:52\\r\\n 1584371212000\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}\\r\\n 5d6016035c1a451daf174b1051******\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例中的驱动通道列表', + 'summary' => '查询边缘实例中的驱动通道列表 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechPushJobSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstanceDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'JobCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => '0Ykj************************Av0I', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'tG7sKuOQ7ylb7qS4****'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-060*****', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中,每页显示的记录数量。最大取值30,最小取值1,默认取值为10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], ], 'responses' => [ @@ -47913,270 +32914,106 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AC76932E-E0C9-41EE-843D-B1CA3279B053'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的语料推送任务下的语料详情。', - 'type' => 'object', - 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的数据总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageId' => [ - 'description' => '当前页,从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '语料推送任务下的语料详情。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'SpeechType' => [ - 'description' => '语料类型,包括自定义语料和常用语料。', - 'type' => 'string', - 'example' => 'CUSTOM', - ], - 'Text' => [ - 'description' => '自定义语料的语料文本。', - 'type' => 'string', - 'example' => '支付到账', - ], - 'Voice' => [ - 'description' => '自定义语料的语料播报声音。', - 'type' => 'string', - 'example' => 'Xiaoyun', - ], - 'BizCode' => [ - 'description' => '语料的标识。', - 'type' => 'string', - 'example' => 'ZFDZ', - ], - 'SpeechList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '常用语料包的语料列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Text' => [ - 'description' => '常用语料包的语料文本。', - 'type' => 'string', - 'example' => '1', - ], - 'Voice' => [ - 'description' => '常用语料包的语料声音。', - 'type' => 'string', - 'example' => 'Xiaoyun', - ], - 'BizCode' => [ - 'description' => '常用语料包的语料标识。', - 'type' => 'string', - 'example' => 'SYS_TONE_0', - ], - ], - ], - ], - ], - ], - ], - ], + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '4'], + 'DeviceList' => [ + 'description' => '设备信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '产品的唯一标识符。', 'type' => 'string', 'example' => 'a1p5QfE****'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => '44c090ba7b104641a4b9bcf10241****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test_tmp_zdy'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'XSpPdtxzE6ebtCkx****000101'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 1,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"SpeechType\\": \\"CUSTOM\\",\\n \\"Text\\": \\"支付到账\\",\\n \\"Voice\\": \\"Xiaoyun\\",\\n \\"BizCode\\": \\"ZFDZ\\",\\n \\"SpeechList\\": {\\n \\"Items\\": [\\n {\\n \\"Text\\": \\"1\\",\\n \\"Voice\\": \\"Xiaoyun\\",\\n \\"BizCode\\": \\"SYS_TONE_0\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"AF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n CUSTOM\\n 支付到账\\n Xiaoyun\\n ZFDZ\\n \\n \\n 1\\n Xiaoyun\\n SYS_TONE_0\\n \\n \\n \\n \\n\\ntrue","errorExample":""}]', - 'title' => '查询语料推送任务的语料列表', - 'summary' => '查询语料推送任务下的语料详情,包括语料的播报声音、语料类型和语料文本等。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AC76932E-E0C9-41EE-843D-B1CA3279B053\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 4,\\n \\"DeviceList\\": [\\n {\\n \\"ProductKey\\": \\"a1p5QfE****\\",\\n \\"DriverId\\": \\"44c090ba7b104641a4b9bcf10241****\\",\\n \\"DeviceName\\": \\"test_tmp_zdy\\",\\n \\"IotId\\": \\"XSpPdtxzE6ebtCkx****000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n AC76932E-E0C9-41EE-843D-B1CA3279B053\\r\\n \\r\\n 15\\r\\n 1\\r\\n 4\\r\\n \\r\\n \\r\\n XSpPdtxzE6ebtCkx****000101\\r\\n 44c090ba7b104641a4b9bcf10241****\\r\\n a1p5QfE****\\r\\n test_tmp_zdy\\r\\n \\r\\n \\r\\n ixX7TRWtewDxZnus****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a1p5QfE****\\r\\n test_name19\\r\\n \\r\\n \\r\\n MkzMNGVF3wOk62J6****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a11jTlJ****\\r\\n testsss\\r\\n \\r\\n \\r\\n 6nFJ9ewglx7aBWPb****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a1PcD3R****\\r\\n device01\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例中的设备列表', + 'summary' => '查询边缘实例中的设备列表。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SpeechByCombination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstanceDeviceByDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV**** ', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的**DeviceName**。'."\n" - .'如果传入该参数,需同时传入**ProductKey**。'."\n" - ."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ - 'name' => 'SpeechId', - 'in' => 'formData', - 'schema' => [ - 'description' => '下发给设备的唯一播报ID。'."\n" - .'>'."\n" - .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '42000011392021112380********', - ], + 'name' => 'ChannelId', + 'in' => 'query', + 'schema' => ['description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], ], [ - 'name' => 'EnforceFlag', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否下发强制播报标识给播报设备。'."\n" - ."\n" - .'- **false**(默认):不下发'."\n" - .'- **true**:下发', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ - 'name' => 'CombinationList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组合播报内容,包括以下类型:'."\n" - ."\n" - .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" - ."\n" - .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" - .' '."\n" - .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" - .' '."\n" - .'设备根据下发的CombinationList进行顺序播报。', - 'type' => 'array', - 'items' => [ - 'description' => '组合播报内容,包括以下类型:'."\n" - ."\n" - .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" - ."\n" - .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" - .' '."\n" - .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" - .' '."\n" - .'设备根据下发的CombinationList进行顺序播报。', - 'type' => 'string', - 'required' => false, - 'example' => 'ZFBDZ', - ], - 'required' => true, - 'example' => 'ZFBDZ', - 'maxItems' => 50, - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -48184,184 +33021,80 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C2AEE142-A9ED-46C5-9EA4-BF0817F0D556'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '15'], + 'Total' => ['description' => '驱动下关联的子设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DeviceList' => [ + 'description' => '子设备信息列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'IotId' => ['description' => '子设备ID。', 'type' => 'string', 'example' => 'Hathoyxglj9jpYPyw3WN******'], + ], + 'description' => '', + ], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', - 'title' => 'SpeechByCombination', - 'summary' => '调用该接口推送音频到设备播报。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C2AEE142-A9ED-46C5-9EA4-BF0817F0D556\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DeviceList\\": [\\n {\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C2AEE142-A9ED-46C5-9EA4-BF0817F0D556\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN******\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询驱动下关联的子设备', + 'summary' => '查询驱动下关联的子设备 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'SyncSpeechByCombination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryEdgeInstanceDriver' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV**** ', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的**DeviceName**。'."\n" - .'如果传入该参数,需同时传入**ProductKey**。'."\n" - ."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SpeechId', - 'in' => 'formData', - 'schema' => [ - 'description' => '下发给设备的唯一播报ID。'."\n" - .'>'."\n" - .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '42000011392021112380********', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'EnforceFlag', - 'in' => 'formData', - 'schema' => [ - 'description' => '是否下发强制播报标识给播报设备。'."\n" - ."\n" - .'- false(默认):不下发'."\n" - .'- true:下发', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'CombinationList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组合播报内容,包括以下类型:'."\n" - ."\n" - .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" - ."\n" - .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" - .' '."\n" - .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" - .' '."\n" - .'设备根据下发的CombinationList进行顺序播报。', - 'type' => 'array', - 'items' => [ - 'description' => '组合播报内容,包括以下类型:'."\n" - ."\n" - .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" - ."\n" - .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" - .' '."\n" - .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" - .' '."\n" - .'设备根据下发的CombinationList进行顺序播报。', - 'type' => 'string', - 'required' => false, - 'example' => 'ZFBDZ', - ], - 'required' => true, - 'example' => 'ZFBDZ', - 'maxItems' => 10, - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], ], 'responses' => [ @@ -48369,225 +33102,181 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '77F540BC-A0EF-46A4-ABDE-18644C69AAF5'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的结果。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'RetryCount' => [ - 'description' => '重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Success' => [ - 'description' => '播报是否成功。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceErrorMessage' => [ - 'description' => '设备播报返回错误信息。', - 'type' => 'string', - 'example' => 'speech model not found', - ], - 'MaxRetryCount' => [ - 'description' => '最多重试次数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'DeviceErrorCode' => [ - 'description' => '设备播报返回错误码。', - 'type' => 'string', - 'example' => '1', - ], - 'Id' => [ - 'description' => '下发给设备的唯一播报ID,即请求的参数SpeechId,若不传入则由系统生成。', - 'type' => 'string', - 'example' => '42000011392021112380********', - ], - 'Detail' => [ - 'description' => '设备播报详情。', - 'type' => 'string', - 'example' => 'Bat_Pt:99 RSSI: -92', + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '30'], + 'Total' => ['description' => '驱动数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DriverList' => [ + 'description' => '驱动列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreate' => ['description' => '驱动创建时间。', 'type' => 'string', 'example' => '2019-06-26 17:22:25'], + 'GmtModified' => ['description' => '驱动最后一次更新时间。', 'type' => 'string', 'example' => '2019-06-26 17:22:25'], + 'DriverId' => ['description' => '驱动ID。', 'type' => 'string', 'example' => '9c1ae7bd59f1469abbdccc959228****'], + 'OrderId' => ['description' => '订单编号。', 'type' => 'string', 'example' => '11123458765423'], + 'DriverVersion' => ['description' => '驱动版本号。', 'type' => 'string', 'example' => '1.0.0'], + ], + 'description' => '', + ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RetryCount\\": 1,\\n \\"Success\\": true,\\n \\"DeviceErrorMessage\\": \\"speech model not found\\",\\n \\"MaxRetryCount\\": 2,\\n \\"DeviceErrorCode\\": \\"1\\",\\n \\"Id\\": \\"42000011392021112380********\\",\\n \\"Detail\\": \\"Bat_Pt:99 RSSI: -92\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n 2\\n 0\\n 42000011392021112380********\\n Bat_Pt:99 RSSI: -92\\n true\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'SyncSpeechByCombination', - 'summary' => '调用该接口同步组合播报设备中的语料。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"77F540BC-A0EF-46A4-ABDE-18644C69AAF5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 30,\\n \\"Total\\": 1,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreate\\": \\"2019-06-26 17:22:25\\",\\n \\"GmtModified\\": \\"2019-06-26 17:22:25\\",\\n \\"DriverId\\": \\"9c1ae7bd59f1469abbdccc959228****\\",\\n \\"OrderId\\": \\"11123458765423\\",\\n \\"DriverVersion\\": \\"1.0.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 77F540BC-A0EF-46A4-ABDE-18644C69AAF5\\r\\n \\r\\n 30\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n 2019-06-26 17:22:25\\r\\n 9c1ae7bd59f1469abbdccc959228****\\r\\n 2019-06-26 17:22:25\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例的驱动列表', + 'summary' => '查询边缘实例的驱动列表 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SpeechBySynthesis' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstanceGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'Voice', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中`VoiceList`中`Value`的值。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'Siyue', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotId', - 'in' => 'formData', + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'GatewayList' => [ + 'description' => '调用成功时,返回的网关数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'example' => 'a1mAdeG****'], + 'EdgeVersion' => ['description' => '边缘服务版本号。', 'type' => 'string', 'example' => 'v1.0.0'], + 'DeviceName' => ['description' => '网关设备名称。', 'type' => 'string', 'example' => 'gateway_01'], + 'IotId' => ['description' => '网关设备的ID,物联网平台为设备生成的唯一标识符。', 'type' => 'string', 'example' => 'LuD9x5hiRUdVemWU****000101'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true,\\n \\"GatewayList\\": [\\n {\\n \\"ProductKey\\": \\"a1mAdeG****\\",\\n \\"EdgeVersion\\": \\"v1.0.0\\",\\n \\"DeviceName\\": \\"gateway_01\\",\\n \\"IotId\\": \\"LuD9x5hiRUdVemWU****000101\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n LuD9x5hiRUdVemWU****000101\\r\\n a1mAdeG****\\r\\n gateway_01\\r\\n v1.0.0\\r\\n \\r\\n \\r\\n 547A62E5-0D6D-4DB5-9CCC-58C706891976\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例中的网关', + 'summary' => '查询边缘实例中的网关。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'SpeechRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '播报速度,取值范围:-500~500。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '-500', - 'example' => '0', - 'default' => '0', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QueryEdgeInstanceHistoricDeployment' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Text', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的**DeviceName**。'."\n" - .'如果传入该参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'PgEfYupSn6Pvhfkx****'], ], [ - 'name' => 'SpeechId', - 'in' => 'formData', - 'schema' => [ - 'description' => '下发给设备的唯一播报ID。'."\n" - .'>'."\n" - .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '42000011392021112380********', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => true, - 'example' => 'wav', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '15'], ], [ - 'name' => 'Volume', - 'in' => 'formData', - 'schema' => [ - 'description' => '音量大小,取值范围:0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '查询起始时间。如果不传入起止时间,则查询该实例的全部历史部署记录。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1558951998639'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '查询结束时间。如果不传入起止时间,则查询该实例的全部历史部署记录。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1561543998639'], ], ], 'responses' => [ @@ -48595,150 +33284,106 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Total' => ['description' => '总记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '6'], + 'DeploymentList' => [ + 'description' => '边缘实例列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreateTimestamp' => ['description' => '创建部署单的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'Type' => ['description' => '部署单类型。'."\n" + ."\n" + .'- deploy:部署。'."\n" + .'- reset:重置。', 'type' => 'string', 'example' => 'deploy'], + 'Status' => ['description' => '实例的部署单状态。'."\n" + ."\n" + .'- 0:未开始(init)。'."\n" + .'- 1:正在进行中(processing)。'."\n" + .'- 2:成功(success)。'."\n" + .'- 3:失败(failure)。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'DeploymentId' => ['description' => '部署单ID。', 'type' => 'string', 'example' => 'e4803e566b424fa68e7f4b1c747c****'], + 'Description' => ['description' => '部署单描述。', 'type' => 'string', 'example' => 'deploy_1561694817061'], + 'GmtModifiedTimestamp' => ['description' => '最后一次更新部署单的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtCompleted' => ['description' => '部署单完成时间。', 'type' => 'string', 'example' => '2019-06-28 12:07:16'], + 'GmtCreate' => ['description' => '创建部署单时间。', 'type' => 'string', 'example' => '2019-06-26 18:12:29'], + 'GmtCompletedTimestamp' => ['description' => '部署单完成的Unix时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581912859713'], + 'GmtModified' => ['description' => '最后一次更新部署单的时间。', 'type' => 'string', 'example' => '2019-06-28 12:07:16'], + ], + 'description' => '', + ], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', - 'title' => 'SpeechBySynthesis', - 'summary' => '调用该接口下发动态播报内容到设备进行播报。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 6,\\n \\"DeploymentList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"deploy\\",\\n \\"Status\\": 2,\\n \\"DeploymentId\\": \\"e4803e566b424fa68e7f4b1c747c****\\",\\n \\"Description\\": \\"deploy_1561694817061\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-28 12:07:16\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-28 12:07:16\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4\\r\\n \\r\\n \\r\\n \\r\\n 2\\r\\n e4803e566b424fa68e7f4b1c747c****\\r\\n 2019-06-28 12:07:16\\r\\n deploy\\r\\n 2019-06-28 12:06:57\\r\\n deploy_1561694817061\\r\\n 2019-06-28 12:07:16\\r\\n \\r\\n \\r\\n 2\\r\\n 9261e308a9504fde9b4cf8462b0b****\\r\\n 2019-06-26 18:12:35\\r\\n deploy\\r\\n 2019-06-26 18:12:29\\r\\n deploy_1561543948874\\r\\n 2019-06-26 18:12:35\\r\\n \\r\\n \\r\\n 2\\r\\n 1\\r\\n 6\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询边缘实例历史部署记录', + 'summary' => '查询边缘实例历史部署记录 。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceHistoricDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryEdgeInstanceMessageRouting' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ProjectCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], - ], - [ - 'name' => 'AvailableSpace', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的可用空间,单位KB,取值为任意正数。'."\n" - .'> **AvailableSpaceScope**字段必须同时传入才会生效。', - 'type' => 'string', - 'required' => false, - 'example' => '500', - ], - ], - [ - 'name' => 'AvailableSpaceScope', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备可用空间的查询条件。'."\n" - ."\n" - .'- **greater**:大于。'."\n" - .'- **smaller**:小于。'."\n" - .'- **equal**:等于。'."\n" - ."\n" - .'示例:**AvailableSpace**设置为**500**,**AvailableSpaceScope**设置为**smaller**,则返回可用空间小于500KB的设备列表。', - 'type' => 'string', - 'required' => false, - 'example' => 'smaller', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], - [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称查询条件,最左前缀匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100000', 'minimum' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1'], ], ], 'responses' => [ @@ -48746,82 +33391,47 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'Data' => [ - 'description' => '查询结果。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '返回数据的总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ + 'CurrentPage' => ['type' => 'integer', 'format' => 'int32'], + 'PageSize' => ['type' => 'integer', 'format' => 'int32'], + 'Total' => ['type' => 'integer', 'format' => 'int32'], + 'MessageRouteList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '返回的设备列表。', + 'MessageRoute' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所隶属产品的ProductKey。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'AvailableSpace' => [ - 'description' => '设备的实际可用空间,单位KB。', - 'type' => 'number', - 'format' => 'float', - 'example' => '200', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'IotId' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', + 'GmtCreateTimestamp' => ['type' => 'integer', 'format' => 'int64'], + 'TopicFilter' => ['type' => 'string'], + 'GmtModifiedTimestamp' => ['type' => 'integer', 'format' => 'int64'], + 'TargetData' => ['type' => 'string'], + 'GmtCreate' => ['type' => 'string'], + 'SourceType' => ['type' => 'string'], + 'GmtModified' => ['type' => 'string'], + 'Name' => ['type' => 'string'], + 'RouteId' => ['type' => 'integer', 'format' => 'int32'], + 'SourceData' => ['type' => 'string'], + 'TargetType' => ['type' => 'string'], + 'RouteContext' => [ + 'type' => 'object', + 'properties' => [ + 'TargetApplicationName' => ['type' => 'string'], + 'SourceApplicationName' => ['type' => 'string'], + 'TargetFcFunctionName' => ['type' => 'string'], + 'SourceFcFunctionName' => ['type' => 'string'], + 'TargetFcServiceName' => ['type' => 'string'], + 'SourceFcServiceName' => ['type' => 'string'], + 'Qos' => ['type' => 'string'], + ], ], ], ], @@ -48835,84 +33445,53 @@ ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"AvailableSpace\\": 200,\\n \\"DeviceName\\": \\"test\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 200\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询播报设备列表', - 'summary' => '查询播报设备的列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryDeviceSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 0,\\n \\"PageSize\\": 0,\\n \\"Total\\": 0,\\n \\"MessageRouteList\\": {\\n \\"MessageRoute\\": [\\n {\\n \\"GmtCreateTimestamp\\": 0,\\n \\"TopicFilter\\": \\"\\",\\n \\"GmtModifiedTimestamp\\": 0,\\n \\"TargetData\\": \\"\\",\\n \\"GmtCreate\\": \\"\\",\\n \\"SourceType\\": \\"\\",\\n \\"GmtModified\\": \\"\\",\\n \\"Name\\": \\"\\",\\n \\"RouteId\\": 0,\\n \\"SourceData\\": \\"\\",\\n \\"TargetType\\": \\"\\",\\n \\"RouteContext\\": {\\n \\"TargetApplicationName\\": \\"\\",\\n \\"SourceApplicationName\\": \\"\\",\\n \\"TargetFcFunctionName\\": \\"\\",\\n \\"SourceFcFunctionName\\": \\"\\",\\n \\"TargetFcServiceName\\": \\"\\",\\n \\"SourceFcServiceName\\": \\"\\",\\n \\"Qos\\": \\"\\"\\n }\\n }\\n ]\\n }\\n }\\n}","type":"json"}]', + ], + 'QueryEdgeInstanceSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。调用[QuerySpeechDevice](~~280408~~)可以获取该参数。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'llL44UVXUqb9m5******'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], ], 'responses' => [ @@ -48920,298 +33499,375 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的结果。', + 'description' => '调用成功时返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '返回数据的总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页,从1开始。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '当前页的语料列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'AudioFormat' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'example' => 'wav', - ], - 'BizCode' => [ - 'description' => '语料标识。', - 'type' => 'string', - 'example' => 'ZFDZ', - ], - 'Size' => [ - 'description' => '语料大小,单位KB。', - 'type' => 'number', - 'format' => 'float', - 'example' => '16', - ], - ], - ], + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '场景联动规则总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RuleList' => [ + 'description' => '场景联动规则列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '场景联动规则在边缘实例中的状态。'."\n" + ."\n" + .'- 0:表示已停止。'."\n" + ."\n" + .'- 1:表示已启动。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'GmtCreate' => ['description' => '场景联动规则的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1582004185000'], + 'IsExisted' => ['description' => '场景联动规则是否存在。'."\n" + ."\n" + .'- 0:表示已删除。'."\n" + ."\n" + .'- 1:表示存在。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RuleName' => ['description' => '场景联动规则的名称。', 'type' => 'string', 'example' => 'test'], + 'RuleId' => ['description' => '场景联动规则ID。', 'type' => 'string', 'example' => 'f041397879ad4d89822811d741******'], ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"AudioFormat\\": \\"wav\\",\\n \\"BizCode\\": \\"ZFDZ\\",\\n \\"Size\\": 16\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n 16\\n wav\\n ZFDZ\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询设备语料列表', - 'summary' => '查询指定设备的语料列表。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"RuleList\\": [\\n {\\n \\"Status\\": 1,\\n \\"GmtCreate\\": 1582004185000,\\n \\"IsExisted\\": 1,\\n \\"RuleName\\": \\"test\\",\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\r\\n \\r\\n \\r\\n \\r\\n 1582004185000\\r\\n f041397879ad4d89822811d741******\\r\\n 1\\r\\n test\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '分页查询边缘实例中的场景规则', + 'summary' => '分页查询边缘实例中的场景规则。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetSpeechDeviceDetail' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryImportedDeviceByApplyId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotId', - 'in' => 'formData', + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-1n8t****'], + ], + [ + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量,默认值为10,最大值不超过50。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '1000', 'minimum' => '1', 'example' => '10'], + ], + [ + 'name' => 'ApplyId', + 'in' => 'query', + 'schema' => ['description' => '要查询设备的申请批次ID。申请批次ID可在[BatchImportDevice](~~433878~~)接口返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '100000000000000000', 'minimum' => '1', 'example' => '1295006'], + ], + [ + 'name' => 'PageNo', + 'in' => 'query', + 'schema' => ['description' => '指定显示返回结果中的第几页,取值范围为1~10,000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100000', 'minimum' => '1', 'example' => '1'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。调用[QuerySpeechDevice](~~280408~~)可以获取该参数。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageNo' => ['description' => '显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '返回结果的总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'DeviceList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'device' => [ + 'description' => '返回的设备列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'Sn' => ['description' => '设备序列号。'."\n" + ."\n" + .'> 若您没有为设备传入序列号,则该参数返回为空。', 'type' => 'string', 'example' => 'QC4******001'], + 'DeviceName' => ['description' => '设备名称。'."\n" + ."\n" + .'>'."\n" + .'请妥善保管,勿泄露。'."\n" + .'>', 'type' => 'string', 'example' => 'light'], + 'DeviceSecret' => ['description' => '设备密钥。'."\n" + ."\n" + .'>'."\n" + .'请妥善保管,勿泄露。'."\n" + .'>', 'type' => 'string', 'example' => 'b4d43f7******10ba5e5'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'iot.device.DeviceApplyIsNotFound', 'errorMessage' => 'The application ID for the device does not exist.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 100,\\n \\"PageSize\\": 10,\\n \\"DeviceList\\": {\\n \\"device\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"Sn\\": \\"QC4******001\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceSecret\\": \\"b4d43f7******10ba5e5\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n100\\n10\\n1\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\na1BwAGV****\\n\\n \\n b4d43f7******10ba5e5\\n QC4******001\\n a1BwAGV****\\n light\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询批量导入的设备列表', + 'summary' => '调用该接口根据申请批次ID(ApplyId)查询批量导入的设备列表。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryImportedDeviceByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], + ], + 'QueryJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => '450407b***'], + ], + ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。'."\n", - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '查询结果。', + 'description' => '调用成功时,返回的任务详情信息,请参见以下参数说明。', 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '设备的状态。'."\n" - ."\n" - .'- **ONLINE**:在线。'."\n" - .'- **OFFLINE**:离线。'."\n" - .'- **UNACTIVE**:未激活。'."\n" - .'- **DISABLE**:禁用。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'TotalSpace' => [ - 'description' => '设备的总空间,单位KB。', - 'type' => 'number', - 'format' => 'float', - 'example' => '2000', - ], - 'ProductKey' => [ - 'description' => '产品的唯一标识。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', + 'Type' => ['description' => '任务类型。取值:'."\n" + .'- **INVOKE_SERVICE**:设备批量服务调用任务。'."\n" + .'- **SET_PROPERTY**:设备批量属性设置任务。'."\n" + .'- **PUB**:Pub批量消息推送任务。'."\n" + .'- **CUSTOM_JOB**:自定义任务。', 'type' => 'string', 'example' => 'SET_PROPERTY'], + 'Status' => ['description' => '任务状态。取值范围:'."\n" + ."\n" + .'- **INITIALIZING**:初始化。'."\n" + .'- **WAITING**:待调度。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **COMPLETED**:已完成。'."\n" + .'- **CANCELLING**:取消中。'."\n" + .'- **CANCELLED**:已取消。'."\n" + .'- **REMOVING**:删除中。'."\n" + .'- **TIMED_OUT**:已超时。', 'type' => 'string', 'example' => 'CANCELLED'], + 'Description' => ['description' => '任务的描述信息。', 'type' => 'string', 'example' => 'jobDescription'], + 'JobName' => ['description' => '任务名称。', 'type' => 'string', 'example' => 'tes'], + 'UtcModified' => ['description' => '任务信息修改时间。', 'type' => 'string', 'example' => '2020-12-13T04:10:00.000Z'], + 'JobId' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'example' => '450407b***'], + 'UtcCreate' => ['description' => '任务创建时间。', 'type' => 'string', 'example' => '2020-12-13T04:09:51.000Z'], + 'ScheduledTime' => ['description' => '任务调度时间的毫秒数。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557062301656'], + 'JobDocument' => ['description' => '下发给设备的任务执行规则文件', 'type' => 'string', 'example' => '{ "serviceIdentifier": "test_service", "params": { "key1": "value1", "key2": "value2" } } '], + 'RolloutConfig' => [ + 'description' => '任务下作业推送速率配置。', + 'type' => 'object', + 'properties' => [ + 'MaximumPerMinute' => ['description' => '任务下每分钟作业推送数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'MessageQoS' => ['description' => '发送消息类型,仅对自定义任务和Pub批量消息推送任务包含该参数。可取值:'."\n" + ."\n" + .'- **QoS0**,表示最多发送一次。'."\n" + .'- **QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。', 'type' => 'string', 'example' => 'Qos1'], + ], ], - 'SpeechListUpdateTime' => [ - 'description' => '设备中语料列表的更新时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620624606000', + 'TimeoutConfig' => [ + 'description' => '任务下作业执行的超时配置', + 'type' => 'object', + 'properties' => [ + 'InProgressTimeoutInMinutes' => ['description' => '任务下作业执行的超时时间,单位为分钟。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + ], ], - 'AvailableSpace' => [ - 'description' => '设备的可用空间,单位KB。', - 'type' => 'number', - 'format' => 'float', - 'example' => '200', + 'JobFile' => [ + 'description' => '任务文件的下载信息。', + 'type' => 'object', + 'properties' => [ + 'FileUrl' => ['description' => '任务文件的下载地址,地址有效时间为30分钟。', 'type' => 'string', 'example' => 'https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***'], + 'SignMethod' => ['description' => '签名方法,可取值MD5和SHA256。', 'type' => 'string', 'example' => 'SHA256'], + 'Sign' => ['description' => '签名,通过URL上传的文件,根据相应的签名方法生成的签名参数。'."\n" + ."\n", 'type' => 'string', 'example' => 'TTTejn***'], + ], ], - 'IotId' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', - 'type' => 'string', - 'example' => '4de2c367****8c585e5992**', + 'TargetConfig' => [ + 'description' => '设备任务的目标设备配置。', + 'type' => 'object', + 'properties' => [ + 'TargetProduct' => ['description' => '目标设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'nCwfSBzc***'], + 'TargetGroup' => ['description' => '目标设备所属设备分组的标识符(GroupID)。', 'type' => 'string', 'example' => '1234'], + 'TargetType' => ['description' => '目标设备的配置类型,取值: '."\n" + .'- DEVICE_LIST:设备列表。'."\n" + .'- GROUP_ID:设备分组ID。'."\n" + .'- PRODUCT_KEY:产品ProductKey。', 'type' => 'string', 'example' => 'DEVICE_LIST'], + 'TargetDevices' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'targetDevices' => [ + 'description' => '目标设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'a1Ix***'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'nCwfSBzc***'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"ONLINE\\",\\n \\"TotalSpace\\": 2000,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"SpeechListUpdateTime\\": 1620624606000,\\n \\"AvailableSpace\\": 200,\\n \\"IotId\\": \\"4de2c367****8c585e5992**\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n ONLINE\\n 4de2c367****8c585e5992**\\n 1620624606000\\n 200\\n 2000\\n a1BwAGV****\\n test\\n\\ntrue\\n","errorExample":""}]', - 'title' => '查询播报设备的详情', - 'summary' => '查询播报设备的详情,包括设备的状态、设备的可用空间等。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"SET_PROPERTY\\",\\n \\"Status\\": \\"CANCELLED\\",\\n \\"Description\\": \\"jobDescription\\",\\n \\"JobName\\": \\"tes\\",\\n \\"UtcModified\\": \\"2020-12-13T04:10:00.000Z\\",\\n \\"JobId\\": \\"450407b***\\",\\n \\"UtcCreate\\": \\"2020-12-13T04:09:51.000Z\\",\\n \\"ScheduledTime\\": 1557062301656,\\n \\"JobDocument\\": \\"{ \\\\\\"serviceIdentifier\\\\\\": \\\\\\"test_service\\\\\\", \\\\\\"params\\\\\\": { \\\\\\"key1\\\\\\": \\\\\\"value1\\\\\\", \\\\\\"key2\\\\\\": \\\\\\"value2\\\\\\" } } \\",\\n \\"RolloutConfig\\": {\\n \\"MaximumPerMinute\\": 10,\\n \\"MessageQoS\\": \\"Qos1\\"\\n },\\n \\"TimeoutConfig\\": {\\n \\"InProgressTimeoutInMinutes\\": 5\\n },\\n \\"JobFile\\": {\\n \\"FileUrl\\": \\"https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***\\",\\n \\"SignMethod\\": \\"SHA256\\",\\n \\"Sign\\": \\"TTTejn***\\"\\n },\\n \\"TargetConfig\\": {\\n \\"TargetProduct\\": \\"nCwfSBzc***\\",\\n \\"TargetGroup\\": \\"1234\\",\\n \\"TargetType\\": \\"DEVICE_LIST\\",\\n \\"TargetDevices\\": {\\n \\"targetDevices\\": [\\n {\\n \\"DeviceName\\": \\"a1Ix***\\",\\n \\"ProductKey\\": \\"nCwfSBzc***\\"\\n }\\n ]\\n }\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\n \\n CANCELLED\\n\\t\\t1557062301656\\n SET_PROPERTY\\n \\n 5\\n \\n jobDescription\\n 2020-12-13T04:09:51.000Z\\n \\n https://iotx-***.oss-cn-shanghai.aliyuncs.com/job***/7u***.sh?Expires=16***&OSSAccessKeyId=LTA***&Signature=TTTejn***\\n 1235\\n SHA256\\n \\n {}\\n test\\n 2020-12-13T04:10:00.000Z\\n 450407b***\\n \\n \\n \\n nCwf***\\n a1IxS***\\n \\n \\n 24VI***\\n a1***\\n \\n \\n 6NDWQ***\\n a1I***\\n \\n \\n EQtTJT***\\n a1IxS***\\n \\n \\n rUdc33Vr***\\n a1IxS***\\n \\n \\n DEVICE_LIST\\n \\n \\n true\\n","errorExample":""}]', + 'title' => '任务管理', + 'summary' => '查询任务详情。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteDeviceSpeech' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryJobStatistics' => [ + 'methods' => ['get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。可以调用[QueryDeviceInfo](~~257184~~)查询设备ID。', - 'type' => 'string', - 'required' => true, - 'example' => '4de2c367****8c585e5992**', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'DeviceSpeechList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待删除的语料列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'BizCode' => [ - 'description' => '语料标识。调用[QuerySpeech](~~217577~~)可以查询语料标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'identifying', - ], - 'AudioFormat' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => true, - 'example' => 'wav', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 50, - ], + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'sGWotgRkut***10001'], ], ], 'responses' => [ @@ -49219,52 +33875,62 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n" - ."\n", - 'type' => 'string', - 'example' => 'iot.speechsolution.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回的作业状态详情,请参见以下参数说明。', + 'type' => 'object', + 'properties' => [ + 'Rejected' => ['description' => '对应任务下被设备拒绝的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TimeOut' => ['description' => '对应任务下执行超时的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'Failed' => ['description' => '对应任务下执行失败的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Queued' => ['description' => '对应任务下待执行的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Succeeded' => ['description' => '对应任务下执行成功的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '22'], + 'Sent' => ['description' => '对应任务下处于已推送状态的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'Total' => ['description' => '对应任务下的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'InProgress' => ['description' => '对应任务下执行中的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '13'], + 'Cancelled' => ['description' => '对应任务下被取消的作业总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteDeviceSpeech', - 'summary' => '调用该接口删除设备中的语料。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Rejected\\": 1,\\n \\"TimeOut\\": 5,\\n \\"Failed\\": 1,\\n \\"Queued\\": 2,\\n \\"Succeeded\\": 22,\\n \\"Sent\\": 3,\\n \\"Total\\": 50,\\n \\"InProgress\\": 13,\\n \\"Cancelled\\": 3\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n 22\\n 13\\n 5\\n 1\\n 50\\n 3\\n 1\\n 2\\n 3\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询作业统计信息', + 'summary' => '调用该接口查询指定任务下各状态作业的统计信息。', + 'description' => '## 使用说明'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetShareTaskByDeviceOpen' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryJobStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryLicenseDeviceList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -49273,58 +33939,56 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID。'."\n" - .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'y4u2weAIrpp****WHMle1234', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-ws4***'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定每页返回的记录数量,取值范围:1~100,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '50'], + ], + [ + 'name' => 'LicenseCode', + 'in' => 'query', + 'schema' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', 'type' => 'string', 'required' => false, 'example' => '720P'], ], [ 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'a2Yw*****', - ], + 'in' => 'query', + 'schema' => ['description' => '设备所属产品的**ProductKey**。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => false, 'example' => 'es****'], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的名称。'."\n" - .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], + 'name' => 'PageId', + 'in' => 'query', + 'schema' => ['description' => '指定分页查询的页码。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '要查询设备的设备ID。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**IotId**。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '设备授权License的开始时间,取值为毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1620634297000'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '设备授权License的结束时间,取值为毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'required' => false, 'example' => '1620934297000'], ], ], 'responses' => [ @@ -49332,127 +33996,210 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见本文下方**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的分享任务Code。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '返回的结果信息。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页显示的记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageId' => ['description' => '分页查询的当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '总记录数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'DeviceList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'item' => [ + 'description' => '设备列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ExpiryTime' => ['description' => '设备授权License的失效时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1690934297000'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'es****'], + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => '测试产品'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'device1'], + 'GmtCreate' => ['description' => '设备授权License的时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'LicenseCode' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。', 'type' => 'string', 'example' => '720P'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'invalid license code', 'description' => ''], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'invalid product key', 'description' => '无效的产品KEY'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 2,\\n \\"PageId\\": 1,\\n \\"Total\\": 10,\\n \\"DeviceList\\": {\\n \\"item\\": [\\n {\\n \\"ExpiryTime\\": 1690934297000,\\n \\"ProductKey\\": \\"es****\\",\\n \\"ProductName\\": \\"测试产品\\",\\n \\"DeviceName\\": \\"device1\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"LicenseCode\\": \\"720P\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n739536F1-9EB3-511E-960A-524C473EE87A\\n\\n 1\\n 20\\n 2\\n \\n \\n QTGl****000000\\n 480P\\n 1653996767000\\n xinde\\n 1748604768000\\n a1****ls\\n device001\\n \\n \\n eJt****000000\\n 480P\\n 1653996767000\\n xinde\\n 1748604768000\\n a1****ls\\n fefe\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryLicenseDeviceList', + 'summary' => '调用该接口查询授权License的设备列表。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryLicenseDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], - [ - 'errorCode' => 'iot.system.InstanceNotFound', - 'errorMessage' => 'The instance ID does not exist.', + ], + ], + ], + 'QueryLoRaJoinPermissions' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'get'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ProductKey' => ['description' => '使用该凭证的设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'JoinPermissions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'JoinPermission' => [ + 'description' => '调用成功时,返回的入网凭证数据(**JoinPermission**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Enabled' => ['description' => '入网凭证的启停用状态。取值:'."\n" + ."\n" + .'- **true**:启用。'."\n" + .'- **false**:停用。', 'type' => 'boolean', 'example' => 'true'], + 'JoinPermissionType' => ['description' => '入网凭证的类型。取值:'."\n" + ."\n" + .'- **LOCAL**:专用凭证。'."\n" + .'- **ROAMING**:漫游凭证。', 'type' => 'string', 'example' => 'LOCAL'], + 'JoinPermissionId' => ['description' => '入网凭证ID,入网凭证的唯一标识。', 'type' => 'string', 'example' => '80***'], + 'JoinPermissionName' => ['description' => '入网凭证名称。', 'type' => 'string', 'example' => 'ForTest'], + 'OwnerAliyunPk' => ['description' => '入网凭证创建者的阿里云账号ID。', 'type' => 'string', 'example' => '1375364789****'], + 'ClassMode' => ['description' => '入网凭证采用的通信模式。取值:'."\n" + ."\n" + .'- **A**:终端设备允许双向通信。'."\n" + .'- **B**:终端设备会在预设时间中开放接收窗口。'."\n" + .'- **C**:终端设备持续开放接收窗口,只在传输时关闭。', 'type' => 'string', 'example' => 'A'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\nMd3ZiTL888K9llXDy7890***********\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetShareTaskByDeviceOpen', - 'summary' => '调用该接口根据设备信息查询分享任务。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为40。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"JoinPermissions\\": {\\n \\"JoinPermission\\": [\\n {\\n \\"Enabled\\": true,\\n \\"JoinPermissionType\\": \\"LOCAL\\",\\n \\"JoinPermissionId\\": \\"80***\\",\\n \\"JoinPermissionName\\": \\"ForTest\\",\\n \\"OwnerAliyunPk\\": \\"1375364789****\\",\\n \\"ClassMode\\": \\"A\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1C1BD4E7-2FD3-4535-9D97-DE51803192AD\\ntrue\\n\\n \\n true\\n LOCAL\\n 50***\\n 198426864326****\\n A\\n 给开发者B使用\\n \\n\\n","errorExample":""}]', + 'title' => '查询LoRaWAN入网凭证列表', + 'summary' => '调用该接口查询LoRaWAN入网凭证列表。', + 'description' => '## 限制说明'."\n" + ."\n\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetShareSpeechModelAudio' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryLoRaJoinPermissions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryMessageInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'ShareTaskId', - 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务的**任务ID**。'."\n" - ."\n" - .'您可在**千里传音语音播报服务**控制台的**分享语料管理**页面,获取**任务ID**。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t***'], ], [ - 'name' => 'SpeechModelCodeList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '共享语料的**语料标识**列表,最多可传入10个**语料标识**。'."\n" - ."\n" - .'您可在**千里传音语音播报服务**控制台的**分享语料管理**下**任务详情**页面,获取**语料标识**。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'WSD****', - 'maxItems' => 10, - ], + 'name' => 'UniMsgId', + 'in' => 'query', + 'schema' => ['description' => '物联网平台为消息生成的唯一标识ID。'."\n" + ."\n" + .'您可登录[物联网平台控制台](http://iot.console.aliyun.com/),在**监控运维 > 日志服务**页面,获取消息ID信息。', 'type' => 'string', 'required' => true, 'example' => '323455***'], ], ], 'responses' => [ @@ -49460,107 +34207,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功,表示查询消息详情成功。'."\n" + .'- **false**:调用失败,表示查询消息详情失败。', 'type' => 'boolean', 'example' => 'true'], + 'Message' => [ + 'description' => '调用成功后,返回的消息详情。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'data' => [ + 'TopicFullName' => ['description' => '消息所属的Topic。', 'type' => 'string', 'example' => '/a1Q5XoY****/device1/user/get'], + 'MessageContent' => ['description' => '消息原文转换成二进制数据,并进行Base64编码后的消息内容。', 'type' => 'string', 'example' => 'eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**'], + 'UniMsgId' => ['description' => '物联网平台为消息生成的唯一标识ID。', 'type' => 'string', 'example' => '323455***'], + 'TransformedMessageContent' => ['description' => '产品配置了消息解析时,转换成功后的消息内容。', 'type' => 'string', 'example' => 'test'], + 'GenerateTime' => ['description' => '消息产生的时间,单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1624419431000'], + 'TransformedTopicFullName' => ['description' => '产品配置了消息解析时,转换成功后的Topic。', 'type' => 'string', 'example' => '/w******j/device01/user/testmsg'], + 'UserProperties' => [ + 'description' => '使用MQTT 5.0版本通信协议时,用户自定义的属性列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '用户自定义属性的Key字段。', 'type' => 'string', 'example' => 'key1'], + 'Value' => ['description' => '用户自定义属性**Key**字段对应的值。', 'type' => 'string', 'example' => 'value1'], + ], + 'description' => '', + ], + ], + 'MqttProperties' => [ + 'description' => '使用MQTT 5.0版本通信协议时,配置的特性属性列表。详细内容,请参见[MQTT 5.0特性](~~2330876~~)。'."\n", 'type' => 'array', 'items' => [ - 'description' => '语音文件的URL。', - 'type' => 'string', - 'example' => 'https://********', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '属性名称。', 'type' => 'string', 'example' => 'attrkey'], + 'Value' => ['description' => '属性值。', 'type' => 'string', 'example' => 'attrvalue'], + ], + 'description' => '', ], ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"data\\": [\\n \\"https://********\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n https://********\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetShareSpeechModelAudio', - 'summary' => '调用该接口获取共享语料的语音文件。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Message\\": {\\n \\"TopicFullName\\": \\"/a1Q5XoY****/device1/user/get\\",\\n \\"MessageContent\\": \\"eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**\\",\\n \\"UniMsgId\\": \\"323455***\\",\\n \\"TransformedMessageContent\\": \\"test\\",\\n \\"GenerateTime\\": 1624419431000,\\n \\"TransformedTopicFullName\\": \\"/w******j/device01/user/testmsg\\",\\n \\"UserProperties\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ],\\n \\"MqttProperties\\": [\\n {\\n \\"Key\\": \\"attrkey\\",\\n \\"Value\\": \\"attrvalue\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nBB71E443-4447-4024-A000-EDE09922891E\\n\\n eyJsYXN0VGltZSI6IjIwMjEtMDYtMjQgMTY6Mj**\\n 1624419431000\\n 323455***\\n /a1Q5XoY****/device1/user/get\\n \\n value1\\n key1\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询设备上下行消息的详情', + 'summary' => '查询设备上下行消息的详情,包括消息的内容、消息的产生时间、发送消息的Topic等。', + 'description' => '## 使用说明'."\n" + .'QoS=0和QoS=1消息的最大存储时间分别为1天和7天。调用本接口前,请确认查询的是存储时间内的消息。否则,查询消息会失败。'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetSpeechLicenseDeviceStatistics' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryMessageInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryOTAFirmware' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-e3***', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'FirmwareId', + 'in' => 'query', + 'schema' => ['description' => 'OTA升级包ID,升级包的唯一标识符。'."\n" + ."\n" + .'OTA升级包ID是调用[CreateOTAFirmware](~~147311~~)创建升级包时,返回的参数之一。'."\n" + ."\n" + .'可以调用[ListOTAFirmware](~~147450~~),从返回参数中查看。', 'type' => 'string', 'required' => true, 'example' => 's8SSHiKjpBfrM3BSN0z803****'], ], ], 'responses' => [ @@ -49568,190 +34322,138 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回结果。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A01829CE-75A1-4920-B775-921146A1AB79'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'FirmwareInfo' => [ + 'description' => '调用成功时,返回的升级包信息。详情参见以下**FirmwareInfo**包含的参数。', 'type' => 'object', 'properties' => [ - 'AvailableQuota' => [ - 'description' => '可用License数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ExpiredQuota' => [ - 'description' => '已过期的License数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ExpiringQuota' => [ - 'description' => '即将过期License数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', + 'ModuleName' => ['description' => 'OTA升级包的模块名称。'."\n" + ."\n" + .'升级包模块用于区分同产品下设备的不同模块的升级。更多信息,请参见[添加升级包中的自定义OTA模块](~~202664~~)。', 'type' => 'string', 'example' => 'WifiConfigModify'], + 'Type' => ['description' => 'OTA升级包类型。'."\n" + ."\n" + .'- **0**:整包升级包,您上传的升级包文件包含完整的升级包,将推送整包升级包给设备进行升级。'."\n" + .'- **1**:差分升级包,您上传的升级包文件仅包含新版本升级包与之前版本的差异部分,仅推送差异部分给设备进行升级。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Status' => ['description' => 'OTA升级包状态。'."\n" + ."\n" + .'- **-1**:不需要验证。'."\n" + .'- **0**:未验证。'."\n" + .'- **1**:已验证。'."\n" + .'- **2**:验证中。'."\n" + .'- **3**:验证失败。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'ProductName' => ['description' => 'OTA升级包所属产品的名称。', 'type' => 'string', 'example' => 'MyProduct'], + 'FirmwareUrl' => ['description' => 'OSS存储升级包文件的URL。'."\n" + ."\n" + .'> OTA升级包中仅有一个升级包文件时,返回该参数。', 'type' => 'string', 'example' => 'https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****'], + 'UtcCreate' => ['description' => '创建OTA升级包的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:42:22.000Z'], + 'FirmwareSize' => ['description' => 'OTA升级包文件大小,单位为字节。'."\n" + ."\n" + .'> OTA升级包中仅有一个升级包文件时,返回该参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '924'], + 'FirmwareName' => ['description' => 'OTA升级包名称。', 'type' => 'string', 'example' => 't3q5rkNm'], + 'FirmwareSign' => ['description' => 'OTA升级包文件内容的签名值。'."\n" + ."\n" + .'> OTA升级包中仅有一个升级包文件时,返回该参数。', 'type' => 'string', 'example' => '3d04ab6462633508606e5f3daac8****'], + 'ProductKey' => ['description' => 'OTA升级包所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a19mzPZ****'], + 'UtcModified' => ['description' => 'OTA升级包最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:42:41.000Z'], + 'SrcVersion' => ['description' => '待升级的OTA升级包版本号。'."\n" + ."\n" + .'> 仅差分升级的升级包返回该参数。升级包类型的说明,请参见参数**Type**的描述。', 'type' => 'string', 'example' => '1.0.0'], + 'VerifyProgress' => ['description' => 'OTA升级包的验证进度。'."\n" + ."\n" + .'- **0**:未验证。'."\n" + .'- **100**:已完成验证。'."\n" + .'- 0至100之间的数值N:表示N%的设备已完成升级。升级包验证状态请根据返回参数**Status**判断。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'FirmwareDesc' => ['description' => 'OTA升级包描述信息。', 'type' => 'string', 'example' => 'modified-WiFi-module'], + 'SignMethod' => ['description' => 'OTA升级包签名方式。', 'type' => 'string', 'example' => 'MD5'], + 'DestVersion' => ['description' => '当前OTA升级包版本号。', 'type' => 'string', 'example' => '4.0.0'], + 'FirmwareId' => ['description' => 'OTA升级包ID,升级包的唯一标识符。', 'type' => 'string', 'example' => 'UfuxnwygsuSkVE0VCN****0100'], + 'Udi' => ['description' => '推送给设备的自定义信息。不限制文本内容的格式,长度不超过4096个字符。'."\n" + ."\n" + .'创建升级任务后,物联网平台向设备推送升级通知时,会将该自定义信息下发给设备。', 'type' => 'string', 'example' => '{"ota_notice":"升级底层摄像头驱动,解决视频图像模糊的问题。"}'], + 'MultiFiles' => [ + 'description' => 'OTA升级包文件列表信息。OTA升级包中有多个升级包文件时,返回此参数。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Url' => ['description' => 'OSS存储升级包文件的URL。', 'type' => 'string', 'example' => 'https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****'], + 'FileMd5' => ['description' => 'OTA升级包文件的MD5值。', 'type' => 'string', 'example' => '3d04ab6462633508606e5f3d****'], + 'SignValue' => ['description' => 'OTA升级包文件内容的签名值。', 'type' => 'string', 'example' => '3d04ab6462633508606e5f3d****'], + 'Name' => ['description' => 'OTA升级包文件名称。', 'type' => 'string', 'example' => 'firmware1'], + 'Size' => ['description' => 'OTA升级包文件大小,单位为字节。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + ], + 'description' => '', + ], ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.common.AuthActionPermissionDeny', - 'errorMessage' => 'The authorization fails.', - ], - [ - 'errorCode' => 'iot.system.InstanceNotFound', - 'errorMessage' => 'The instance ID does not exist.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AvailableQuota\\": 100,\\n \\"ExpiredQuota\\": 100,\\n \\"ExpiringQuota\\": 100\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 100\\n 100\\n 100\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetSpeechLicenseDeviceStatistics', - 'summary' => '调用该接口查询千里传音License设备统计。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A01829CE-75A1-4920-B775-921146A1AB79\\",\\n \\"Success\\": true,\\n \\"FirmwareInfo\\": {\\n \\"ModuleName\\": \\"WifiConfigModify\\",\\n \\"Type\\": 0,\\n \\"Status\\": 2,\\n \\"ProductName\\": \\"MyProduct\\",\\n \\"FirmwareUrl\\": \\"https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\",\\n \\"UtcCreate\\": \\"2019-12-28T02:42:22.000Z\\",\\n \\"FirmwareSize\\": 924,\\n \\"FirmwareName\\": \\"t3q5rkNm\\",\\n \\"FirmwareSign\\": \\"3d04ab6462633508606e5f3daac8****\\",\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"UtcModified\\": \\"2019-12-28T02:42:41.000Z\\",\\n \\"SrcVersion\\": \\"1.0.0\\",\\n \\"VerifyProgress\\": 0,\\n \\"FirmwareDesc\\": \\"modified-WiFi-module\\",\\n \\"SignMethod\\": \\"MD5\\",\\n \\"DestVersion\\": \\"4.0.0\\",\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Udi\\": \\"{\\\\\\"ota_notice\\\\\\":\\\\\\"升级底层摄像头驱动,解决视频图像模糊的问题。\\\\\\"}\\",\\n \\"MultiFiles\\": [\\n {\\n \\"Url\\": \\"https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\",\\n \\"FileMd5\\": \\"3d04ab6462633508606e5f3d****\\",\\n \\"SignValue\\": \\"3d04ab6462633508606e5f3d****\\",\\n \\"Name\\": \\"firmware1\\",\\n \\"Size\\": 200\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nA01829CE-75A1-4920-B775-921146A1AB79\\n\\n \\n 3d04ab6462633508606e5f3daac8****\\n a19mzPZ****\\n 0\\n 2019-12-28T02:42:41.000Z\\n MD5\\n 2019-12-28T02:42:22.000Z\\n 924\\n 2\\n UfuxnwygsuSkVE0VCN****0100\\n modified-WiFi-module\\n https://ota-***.aliyuncs.com/ota/572ef2fd12ca4791a5b21a9eb948****/5E962CF83DB1495E8337E9C8A4D1****.bin?Expires=1577587360&OSSAccessKeyId=cS8uRRy54Rsz****&Signature=farzC8%2FVMN4HYdEtXvdiC2OevH****\\n 4.0.0\\n MyProduct\\n t3q5rkNm\\n WifiConfigModify\\n {\\"ota_notice\\":\\"升级底层摄像头驱动,解决视频图像模糊的问题。\\"}\\n 0\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定固件的详细信息', + 'summary' => '调用该接口查询指定OTA升级包的详细信息,包括升级包的名称、类型、状态等。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySpeechLicenseDeviceList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryOTAJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-e3***', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'maximum' => '100', - 'minimum' => '1', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'PageId', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '当前页码,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称查询条件,模糊匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'CheckGroupId', - 'in' => 'formData', - 'schema' => [ - 'description' => '检查设备分组ID,返回设备是否在该分组下。', - 'type' => 'string', - 'required' => false, - 'example' => '4de2c367****8c585e5992**', - ], - ], - [ - 'name' => 'LicenseStatusList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => 'License状态查询条件。'."\n" - ."\n" - .'- **NORMAL**:正常。'."\n" - .'- **EXPIRE**:到期。'."\n" - .'- **EXPIRING**:即将到期。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'NORMAL', - 'maxItems' => 3, - ], + 'schema' => ['description' => '升级批次ID。'."\n" + ."\n" + .'您调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务批次后,返回的**JobId**。您也可以在物联网平台控制台的**升级包详情**页面查看。', 'type' => 'string', 'required' => true, 'example' => 'wahVIzGkCMuAUE2gDERM02****'], ], ], 'responses' => [ @@ -49759,222 +34461,193 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '查询结果。', + 'description' => '调用成功时,返回的升级批次信息。详情见以下Data所包含的参数。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageId' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '返回数据的总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'DeviceList' => [ + 'UtcCreate' => ['description' => '批次创建时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'RetryInterval' => ['description' => '设备升级失败后,自动重试时间间隔,单位:分钟。'."\n" + ."\n" + .'创建升级批次时,设置了失败重试策略,则返回该参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '60'], + 'JobType' => ['description' => '批次类型。'."\n" + ."\n" + .'- **VERIFY_FIRMWARE**:升级包验证批次。'."\n" + .'- **UPGRADE_FIRMWARE**:批量升级批次。', 'type' => 'string', 'example' => 'UPGRADE_FIRMWARE'], + 'SelectionType' => ['description' => '升级策略。'."\n" + ."\n" + .'- **DYNAMIC**:动态升级。调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的升级批次,该参数返回该值。'."\n" + .'- **STATIC**:静态升级。调用[CreateOTAStaticUpgradeJob](~~147496~~)创建的升级批次,该参数返回该值。', 'type' => 'string', 'example' => 'STATIC'], + 'OverwriteMode' => ['description' => '是否覆盖之前的升级任务。取值:'."\n" + ."\n" + .'- **1**:不覆盖。若设备已有升级任务,则只执行已有任务。'."\n" + .'- **2**:覆盖。设备只执行新的升级任务。'."\n" + ."\n" + .'不覆盖升级中的任务。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TargetSelection' => ['description' => '升级范围。'."\n" + ."\n" + .'- **ALL**:全量升级。'."\n" + .'- **SPECIFIC**:定向升级。'."\n" + .'- **GRAY**:灰度升级。'."\n" + ."\n" + .'> 调用[CreateOTADynamicUpgradeJob](~~147887~~)创建的动态升级批次,该参数仅返回ALL。', 'type' => 'string', 'example' => 'SPECIFIC'], + 'TimeoutInMinutes' => ['description' => '设备升级超时时间,单位:分钟。'."\n" + ."\n" + .'创建升级批次时,设置了超时时间,则返回该参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '5'], + 'GrayPercent' => ['description' => '灰度升级的比例。'."\n" + ."\n" + .'仅升级范围为灰度升级时,返回该参数。', 'type' => 'string', 'example' => '50.00'], + 'NeedPush' => ['description' => '物联网平台是否主动向设备推送升级任务。'."\n" + ."\n", 'type' => 'boolean', 'example' => 'true'], + 'JobStatus' => ['description' => '批次的状态。'."\n" + ."\n" + .'- **PLANNED**:计划中。批次已创建,但是定时时间未到。仅定时静态升级的批次可能返回该值。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **COMPLETED**:已完成。'."\n" + .'- **CANCELED**:已取消。', 'type' => 'string', 'example' => 'IN_PROGRESS'], + 'JobDesc' => ['description' => '升级批次描述。', 'type' => 'string', 'example' => 'batch upgrade'], + 'UtcModified' => ['description' => '批次最后一次修改时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'UtcStartTime' => ['description' => '该批次任务开始执行时的时间,UTC格式。', 'type' => 'string', 'example' => '2019-12-28T02:43:10.000Z'], + 'MultiModuleMode' => ['description' => '设备是否支持多模块同时升级。'."\n" + ."\n" + .'- **false**(默认):否,设备不支持多模块同时升级。'."\n" + .'- **true**:是,设备支持多模块同时升级。'."\n" + ."\n" + .'更多信息,请参见[设备支持多模块同时升级说明表](~~58328~~)。', 'type' => 'boolean', 'example' => 'false'], + 'UtcEndTime' => ['description' => '该批次任务执行结束时的时间,UTC格式。'."\n" + ."\n" + .'仅已执行结束的升级批次才返回此参数。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'Name' => ['description' => '升级包名称。', 'type' => 'string', 'example' => 'Firmware2'], + 'DestVersion' => ['description' => '升级目标版本号。', 'type' => 'string', 'example' => '1.0.1'], + 'UtcScheduleFinishTime' => ['description' => '定时升级结束的时间。仅定时升级任务且设置了定时升级结束时间时会返回该参数。', 'type' => 'string', 'example' => '2019-12-30T02:43:10.000Z'], + 'MaximumPerMinute' => ['description' => '每分钟最多向多少个设备推送升级包下载URL。', 'type' => 'integer', 'format' => 'int32', 'example' => '1000'], + 'DynamicMode' => ['description' => '动态升级模式。取值范围:'."\n" + ."\n" + .'- **1**:除了升级当前满足升级条件的设备,还将持续检查设备是否满足升级条件,对满足升级条件的设备进行升级。'."\n" + .'- **2**:仅对后续上报新版本号的设备生效。'."\n" + ."\n" + .'仅升级策略为动态升级时,返回该参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RetryCount' => ['description' => '设备升级失败后,自动重试次数。'."\n" + ."\n" + .'创建升级批次时,设置了失败重试策略,则返回该参数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ProductKey' => ['description' => '升级包所属产品的ProductKey。', 'type' => 'string', 'example' => 'a19mzPZ****'], + 'GroupName' => ['description' => '分组升级的设备分组名称。', 'type' => 'string', 'example' => 'test'], + 'GroupId' => ['description' => '分组升级的设备分组ID。', 'type' => 'string', 'example' => 'CtjzCkNuOxUR***'], + 'UtcScheduleTime' => ['description' => '定时升级发起的时间。仅定时升级任务会返回该参数。', 'type' => 'string', 'example' => '2019-12-29T02:43:10.000Z'], + 'JobId' => ['description' => '升级批次ID,批次的唯一标识符。', 'type' => 'string', 'example' => 'HvKuBpuk3rdk6E92CP****0200'], + 'DownloadProtocol' => ['description' => '升级包文件的下载协议。', 'type' => 'string', 'example' => 'HTTPS'], + 'NeedConfirm' => ['description' => '是否App确认升级。', 'type' => 'boolean', 'example' => 'false'], + 'FirmwareId' => ['description' => '升级包ID。', 'type' => 'string', 'example' => 'UfuxnwygsuSkVE0VCN****0100'], + 'Tags' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'item' => [ - 'description' => '设备列表。', + 'OtaTagDTO' => [ + 'description' => '升级批次标签。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ExpiryTime' => [ - 'description' => 'License到期时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620624606000', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'LicenseStatus' => [ - 'description' => 'License状态。'."\n" - ."\n" - .'- **NORMAL**:正常。'."\n" - .'- **EXPIRE**:到期。'."\n" - .'- **EXPIRING**:即将到期。', - 'type' => 'string', - 'example' => 'NORMAL', - ], - 'ProductName' => [ - 'description' => '设备所属产品的名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'InSpecifiedGroup' => [ - 'description' => '当前设备是否在指定的设备分组下。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceStatus' => [ - 'description' => '设备状态。'."\n" - ."\n" - .'- **ONLINE**:在线。'."\n" - .'- **OFFLINE**:离线。'."\n" - .'- **UNACTIVE**:未激活。'."\n" - .'- **DISABLE**:禁用。'."\n" - .'- **DELETE**:已删除。', - 'type' => 'string', - 'example' => 'ONLINE', - ], - 'IotId' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'Key' => ['description' => '标签名。', 'type' => 'string', 'example' => 'key1'], + 'Value' => ['description' => '标签值。', 'type' => 'string', 'example' => 'value1'], ], + 'description' => '', ], ], ], + 'description' => '', + ], + 'SrcVersions' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'SrcVersion' => [ + 'type' => 'array', + 'items' => ['description' => '待升级版本号列表。', 'type' => 'string', 'example' => '{"SrcVersion": ["1.0.0"]}'], + 'description' => '', + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'RequestParamError', - 'errorMessage' => 'The request params error.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"UtcCreate\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"RetryInterval\\": 60,\\n \\"JobType\\": \\"UPGRADE_FIRMWARE\\",\\n \\"SelectionType\\": \\"STATIC\\",\\n \\"OverwriteMode\\": 1,\\n \\"TargetSelection\\": \\"SPECIFIC\\",\\n \\"TimeoutInMinutes\\": 5,\\n \\"GrayPercent\\": \\"50.00\\",\\n \\"NeedPush\\": true,\\n \\"JobStatus\\": \\"IN_PROGRESS\\",\\n \\"JobDesc\\": \\"batch upgrade\\",\\n \\"UtcModified\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"UtcStartTime\\": \\"2019-12-28T02:43:10.000Z\\",\\n \\"MultiModuleMode\\": false,\\n \\"UtcEndTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"Name\\": \\"Firmware2\\",\\n \\"DestVersion\\": \\"1.0.1\\",\\n \\"UtcScheduleFinishTime\\": \\"2019-12-30T02:43:10.000Z\\",\\n \\"MaximumPerMinute\\": 1000,\\n \\"DynamicMode\\": 1,\\n \\"RetryCount\\": 1,\\n \\"ProductKey\\": \\"a19mzPZ****\\",\\n \\"GroupName\\": \\"test\\",\\n \\"GroupId\\": \\"CtjzCkNuOxUR***\\",\\n \\"UtcScheduleTime\\": \\"2019-12-29T02:43:10.000Z\\",\\n \\"JobId\\": \\"HvKuBpuk3rdk6E92CP****0200\\",\\n \\"DownloadProtocol\\": \\"HTTPS\\",\\n \\"NeedConfirm\\": false,\\n \\"FirmwareId\\": \\"UfuxnwygsuSkVE0VCN****0100\\",\\n \\"Tags\\": {\\n \\"OtaTagDTO\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"Value\\": \\"value1\\"\\n }\\n ]\\n },\\n \\"SrcVersions\\": {\\n \\"SrcVersion\\": [\\n \\"{\\\\\\"SrcVersion\\\\\\": [\\\\\\"1.0.0\\\\\\"]}\\"\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 5\\n batch upgrade\\n HTTPS\\n 2019-12-28T02:43:10.000Z\\n 2019-12-29T02:43:10.000Z\\n a19mzPZ****\\n 2019-12-28T02:43:10.000Z\\n IN_PROGRESS\\n 2019-12-28T02:43:10.000Z\\n STATIC\\n SPECIFIC\\n UPGRADE_FIRMWARE\\n \\n \\n 60\\n 1\\n 1\\n true\\n 1000\\n \\n 1.0.0\\n \\n firmware2\\n true\\n false\\n UfuxnwygsuSkVE0VCN****0100\\n HvKuBpuk3rdk6E92CP****0200\\n 1.0.1\\n\\n30F1BB8D-EDBF-44FD-BBC0-BE97DEA73991\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定升级批次的详情', + 'summary' => '调用该接口查询指定升级批次的详情。', + 'description' => '## 使用说明'."\n" + .'您可调用[CreateOTAVerifyJob](~~147480~~)、[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建升级任务批次后,根据返回的**JobId**查看升级批次的详情。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryOTAJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"item\\": [\\n {\\n \\"ExpiryTime\\": 1620624606000,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"LicenseStatus\\": \\"NORMAL\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"InSpecifiedGroup\\": true,\\n \\"DeviceStatus\\": \\"ONLINE\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n test\\n NORMAL\\n ONLINE\\n 1620624606000\\n true\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySpeechLicenseDeviceList', - 'summary' => '调用该接口查询千里传音License设备列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'AddShareTaskDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryPageByApplyId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ShareTaskId', - 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的记录数量。数量限制:每页最多可显示50条。默认值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '待添加设备所属产品的**ProductKey**。'."\n" - ."\n" - .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'a2YwD23***', - ], + 'name' => 'ApplyId', + 'in' => 'query', + 'schema' => ['description' => '要查询的申请批次ID。申请批次ID可在[BatchRegisterDeviceWithApplyId](~~69514~~)和[BatchRegisterDevice](~~69473~~)接口返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1295006'], ], [ - 'name' => 'IotIdList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待添加的设备列表,需传入设备对应的**IotId**,该参数可以通过调用[QueryDevice](~~69905~~)获取。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**。如果您同时传入**IotIdList**和**ProductKey**,则以**IotIdList**为准。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'y4u2weAIrpp****WHMle1234 ', - 'maxItems' => 10000, - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认值是1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -49982,159 +34655,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '返回的添加结果。', + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PageSize' => ['description' => '每页显示的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '该批次的设备总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Page' => ['description' => '当前页面号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'ApplyDeviceList' => [ 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ProgressId' => [ - 'description' => '进度ID。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'SuccessSum' => [ - 'description' => '添加成功的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Progress' => [ - 'description' => '添加进度,可取值0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'FailedResultCsvFile' => [ - 'description' => '添加失败的设备列表文件。', - 'type' => 'string', - 'example' => 'https://****.csv', - ], - 'FailSum' => [ - 'description' => '添加失败的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', + 'ApplyDeviceInfo' => [ + 'description' => '调用成功时,生成的已注册的设备列表(**ApplyDeviceInfo**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'DeviceId' => ['description' => '设备ID(旧版参数)。'."\n" + ."\n" + .'> 该参数是旧版本遗留参数,已无实际作用,不能用来标识设备。目前有效的设备标识符为**IotId**和**ProductKey**与**DeviceName**组合。', 'type' => 'string', 'example' => 'gQG2GJ2y10m6hIk8****'], + 'IotId' => ['description' => '设备ID,物联网平台为该设备颁发的唯一标识符。', 'type' => 'string', 'example' => 'vWxNur6BUApsqjv9****000100'], + 'DeviceSecret' => ['description' => '设备密钥。', 'type' => 'string', 'example' => 'SkfeXXKrTgp1DbDxYr74mfJ5cnui****'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.sharetask.EmptyShareDevice', - 'errorMessage' => 'no device to share.', - ], - [ - 'errorCode' => 'iot.sharetask.ShareDeviceProcessing', - 'errorMessage' => 'share device processing.', - ], - [ - 'errorCode' => 'Iot.sharetask.ImportDevicePartFail', - 'errorMessage' => 'Failed to import some of the devices.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProgressId\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"FailedResultCsvFile\\": \\"https://****.csv\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n https://****.csv\\n 100\\n Md3ZiTL888K9llXDy7890***********\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'AddShareTaskDevice', - 'summary' => '调用该接口添加设备到分享任务。', - 'description' => '## 使用说明'."\n" - .'单次调用本接口添加设备的数量不能超过50。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 2,\\n \\"PageCount\\": 1,\\n \\"Page\\": 1,\\n \\"ApplyDeviceList\\": {\\n \\"ApplyDeviceInfo\\": [\\n {\\n \\"DeviceName\\": \\"light\\",\\n \\"DeviceId\\": \\"gQG2GJ2y10m6hIk8****\\",\\n \\"IotId\\": \\"vWxNur6BUApsqjv9****000100\\",\\n \\"DeviceSecret\\": \\"SkfeXXKrTgp1DbDxYr74mfJ5cnui****\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n1\\n\\n \\n vWxNur6BUApsqjv9****\\n APItest\\n tXXEtily4XuV7WS1fosJoDkhRIIU****\\n vWxNur6BUApsqjv****4000100\\n \\n \\n hoiwszKPYmHk074H****\\n awfg\\n BYpg1b2nmuq21BO7fxOogYQQZd9z****\\n hoiwszKPYmHk074HA****000100\\n \\n\\n1\\n10\\n762F7AAD-8B87-4C65-BBF3-4575B002B384\\ntrue\\n2\\n","errorExample":""}]', + 'title' => '查询批量注册的设备信息', + 'summary' => '调用该接口查询批量注册的设备信息。', + 'description' => '## QPS限制'."\n" ."\n" - .'## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteShareTaskDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryPageByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'ShareTaskId', - 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotIdList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '待删除的设备列表,需传入设备对应的**IotId**,该参数可以通过调用[QueryDevice](~~69905~~)获取。'."\n", - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - 'maxItems' => 10000, - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '要查询的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的全局唯一标识符。您可以在物联网平台控制台或调用[QueryProductList](~~69271~~),查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], ], 'responses' => [ @@ -50142,155 +34753,175 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:表示调用成功。'."\n" + ."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回删除结果。', + 'description' => '调用成功时,返回的产品信息详情。', 'type' => 'object', 'properties' => [ - 'ProgressId' => [ - 'description' => '进度ID。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'Progress' => [ - 'description' => '进度,取值为0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], + 'Owner' => ['description' => '调用者是否是产品的拥有者。'."\n" + ."\n" + .'- **true**:是。'."\n" + ."\n" + .'- **false**:不是。', 'type' => 'boolean', 'example' => 'true'], + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => '路灯'], + 'ProductSecret' => ['description' => '产品密钥。', 'type' => 'string', 'example' => 'U5tW7i44uilc****'], + 'DataFormat' => ['description' => '设备与云端之间的数据通信协议类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n" + .'取值:'."\n" + ."\n" + .'- **0**:透传模式。使用自定义的串口数据格式。该模式下,设备可以上报原始数据(如二进制数据流)。阿里云物联网平台会运行您配置在云端的数据解析脚本,将原始数据转换成Alink JSON标准数据格式。'."\n" + ."\n" + .'- **1**:Alink JSON。阿里云物联网平台定义的设备与云端的数据交换协议,采用 JSON 格式。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'CategoryName' => ['description' => '产品所属品类的名称。'."\n" + .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。'."\n" + .'该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。', 'type' => 'string', 'example' => '路灯照明'], + 'ProductStatus' => ['description' => '产品的状态。'."\n" + ."\n" + .'- **DEVELOPMENT_STATUS**:开发中。'."\n" + ."\n" + .'- **RELEASE_STATUS**:产品已发布。', 'type' => 'string', 'example' => 'DEVELOPMENT_STATUS'], + 'AliyunCommodityCode' => ['description' => '产品类型,决定是否使用物模型功能。'."\n" + .'取值:'."\n" + ."\n" + .'- **iothub_senior**:使用物模型。'."\n" + .'- **iothub**:不使用物模型。'."\n" + ."\n", 'type' => 'string', 'example' => 'iothub_senior'], + 'DeviceCount' => ['description' => '该产品下的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'AuthType' => ['description' => '产品下的设备接入物联网平台的认证方式。'."\n" + ."\n" + .'- **secret**:使用设备密钥进行设备身份认证。'."\n" + ."\n" + .'- **id2**:使用物联网设备身份认证ID²。'."\n" + ."\n" + .'- **x509**:使用设备X.509证书进行设备身份认证。', 'type' => 'string', 'example' => 'secret'], + 'ProductKey' => ['description' => '产品的ProductKey。创建产品时,物联网平台为该产品颁发的全局唯一标识。', 'type' => 'string', 'example' => 'a1T27vz****'], + 'NodeType' => ['description' => '产品的节点类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。取值:'."\n" + ."\n" + .'- **0**:设备。设备不能挂载子设备,可以直连IoT Hub,也可以作为网关的子设备连接IoT Hub。'."\n" + ."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,并且可以将拓扑关系同步到云端。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Description' => ['description' => '产品描述。', 'type' => 'string', 'example' => '智能路灯'], + 'ValidateType' => ['description' => '数据校验级别。可取值:'."\n" + ."\n" + .'- **2**:免校验。对上报的数据不进行校验,流转全量数据。'."\n" + ."\n" + .' 数据不展示在物联网平台控制台对应设备的设备详情页物模型数据页签。'."\n" + ."\n" + .'- **1**:弱校验。只校验设备数据的idetifier和dataType字段,不校验其他字段,流转全量数据。'."\n" + ."\n\n" + .'- **0**:强校验。校验所有字段,仅流转校验通过的数据。'."\n" + .' '."\n" + .'对于2020年10月14日之前(不含当日)创建的产品,仅支持强校验。'."\n" + ."\n" + .'对于2020年10月14日(含当日)之后创建的产品,支持弱校验和免校验。'."\n" + ."\n" + .'强校验和弱校验后:'."\n" + ."\n" + .'- 校验通过的数据展示在物联网平台控制台对应设备的**设备详情**页**物模型数据**页签。校验不通过的数据则不展示。'."\n" + ."\n" + .'- 通过流转数据中的参数**checkFailedData**,可查看校验不通过的数据,请参见[数据格式](~~73736~~)。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Id2' => ['description' => '该产品是否使用ID²认证。取值:'."\n" + ."\n" + .'- **true**:使用ID²认证。'."\n" + ."\n" + .'- **false**:不使用ID²认证。', 'type' => 'boolean', 'example' => 'false'], + 'NetType' => ['description' => '产品下设备的联网方式。取值:'."\n" + ."\n" + .'- **3**:Wi-Fi。'."\n" + ."\n" + .'- **6**:Cellular(2G/3G/4G/5G)蜂窝网。'."\n" + ."\n" + .'- **7**:Ethernet以太网。'."\n" + ."\n" + .'- **8**:其他。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'GmtCreate' => ['description' => '该产品的创建时间。毫秒级时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942000'], + 'ProtocolType' => ['description' => '子设备接入网关的协议类型。'."\n" + .'此参数为使用物模型的产品(AliyunCommodityCode=iothub_senior),且产品节点类型为要接入网关的设备的特有参数。取值:'."\n" + ."\n" + .'- **modbus**:Modbus协议。'."\n" + ."\n" + .'- **opc-ua**:OPC UA协议。'."\n" + ."\n" + .'- **customize**:自定义协议。'."\n" + ."\n" + .'- **ble**:BLE协议。'."\n" + ."\n" + .'- **zigbee**:ZigBee协议。', 'type' => 'string', 'example' => 'modbus'], + 'CategoryKey' => ['description' => '产品所属品类的标识符。'."\n" + .'产品使用了物联网平台预定义的标准品类物模型会返回此参数。'."\n" + .'该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n", 'type' => 'string', 'example' => 'Lighting'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'invalid instance id', - ], - [ - 'errorCode' => 'iot.sharetask.EmptyShareDevice', - 'errorMessage' => 'no device to share', - ], - [ - 'errorCode' => 'iot.sharetask.ShareDeviceProcessing', - 'errorMessage' => 'share device processing', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProgressId\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"Progress\\": 100\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 100\\n Md3ZiTL888K9llXDy7890***********\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteShareTaskDevice', - 'summary' => '调用该接口删除分享任务设备。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Owner\\": true,\\n \\"ProductName\\": \\"路灯\\",\\n \\"ProductSecret\\": \\"U5tW7i44uilc****\\",\\n \\"DataFormat\\": 1,\\n \\"CategoryName\\": \\"路灯照明\\",\\n \\"ProductStatus\\": \\"DEVELOPMENT_STATUS\\",\\n \\"AliyunCommodityCode\\": \\"iothub_senior\\",\\n \\"DeviceCount\\": 0,\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1T27vz****\\",\\n \\"NodeType\\": 0,\\n \\"Description\\": \\"智能路灯\\",\\n \\"ValidateType\\": 1,\\n \\"Id2\\": false,\\n \\"NetType\\": 3,\\n \\"GmtCreate\\": 1581595942000,\\n \\"ProtocolType\\": \\"modbus\\",\\n \\"CategoryKey\\": \\"Lighting\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n true\\n 路灯照明\\n 1\\n a1BwAGV****\\n DEVELOPMENT_STATUS\\n 1581595942000\\n U5tW7i44uilc****\\n 0\\n 路灯\\n 1\\n 0\\n 3\\n secret\\n Lighting\\n false\\n iothub_senior\\n\\nDA5A3C45-D457-48ED-9A20-AEDEA8503401\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定产品的详细信息', + 'summary' => '调用该接口查询指定产品的详细信息。', 'description' => '## QPS限制'."\n" ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', + .' '."\n" + ."\n" + .' ', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryProjectShareDeviceList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryProductCertInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。'."\n" - ."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV**** ', - ], - ], - [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页码,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称查询条件,模糊匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'in' => 'query', + 'schema' => ['description' => '产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a2YwD23****'], ], ], 'responses' => [ @@ -50298,199 +34929,108 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '查询结果。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'MissingProductKey'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'ProductKey is mandatory for this action.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:表示调用成功。'."\n" + ."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'ProductCertInfo' => [ + 'description' => '返回的证书信息(**IssueModel**)。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageId' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '返回数据的总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'DeviceList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'items' => [ - 'description' => '返回的设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'Sharable' => [ - 'description' => '是否可以分享。'."\n" - ."\n" - .'- **1**:可以。'."\n" - ."\n" - .'- **0**:不可以。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1', - ], - 'IotId' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - ], - ], - ], - ], + 'IssueModel' => ['description' => '证书颁发模式。'."\n" + ."\n" + .'- **1**:物联网平台颁发的X.509证书。'."\n" + ."\n" + .'- **3**:第三方平台颁发的X.509证书。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.speech.InvalidIotProjectCode', - 'errorMessage' => 'invalid project code', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"Sharable\\": 1,\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 1\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryProjectShareDeviceList', - 'summary' => '调用该接口查询项目的分享设备列表。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingProductKey\\",\\n \\"ErrorMessage\\": \\"ProductKey is mandatory for this action.\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"ProductCertInfo\\": {\\n \\"IssueModel\\": 1\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n 1\\n\\n","errorExample":""}]', + 'title' => '获取产品的X.509证书信息', + 'summary' => '调用该接口获取产品的X.509证书信息。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。 ', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryShareTaskDeviceList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductCertInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryProductList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'ShareTaskId', - 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-e3***', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'in' => 'query', + 'schema' => ['description' => '指定返回结果中每页显示的产品数量,最大值是200。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '2'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '当前页码,从1开始,最大为10000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'rg-acfmxazb4ph****'], ], [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称查询条件,模糊匹配。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'AliyunCommodityCode', + 'in' => 'query', + 'schema' => ['description' => '指定要查看的产品类型,取值:'."\n" + ."\n" + .'- **iothub_senior**:使用物模型版产品。'."\n" + ."\n" + .'- **iothub**:不使用物模型版产品。'."\n" + ."\n" + .'> 如果不传入该参数,则返回所有产品的列表。', 'type' => 'string', 'required' => false, 'example' => 'iothub_senior'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '指定显示返回结果中的第几页。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -50498,237 +35038,129 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '4B4ECF2C-6222-42EC-A4B5-C12202E71CEA'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:表示调用成功。'."\n" + ."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '查询结果。', + 'description' => '调用成功时,返回的产品信息。具体信息请参见以下参数。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'PageId' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '返回数据的总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'DeviceList' => [ + 'CurrentPage' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的产品数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Total' => ['description' => '产品总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '184'], + 'PageCount' => ['description' => '总页数。', 'type' => 'integer', 'format' => 'int32', 'example' => '92'], + 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'items' => [ - 'description' => '设备列表。', + 'ProductInfo' => [ + 'description' => '产品信息列表。'."\n" + ."\n" + .'> 返回的产品信息按照产品创建时间倒序排列。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a1BwAGV****', - ], - 'GmtAdded' => [ - 'description' => '添加时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620624606000', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'IotId' => [ - 'description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', - 'type' => 'string', - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], + 'AuthType' => ['description' => '产品下的设备接入物联网平台的认证方式。'."\n" + ."\n" + .'- **secret**:使用设备密钥进行设备身份认证。'."\n" + ."\n" + .'- **id2**:使用物联网设备身份认证ID²。'."\n" + ."\n" + .'- **x509**:使用设备X.509证书进行设备身份认证。', 'type' => 'string', 'example' => 'secret'], + 'ProductKey' => ['description' => '产品的ProductKey。创建产品时,物联网平台为该产品颁发的全局唯一标识。', 'type' => 'string', 'example' => 'a1T27vz****'], + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => '路灯'], + 'Description' => ['description' => '产品描述。', 'type' => 'string', 'example' => 'This is a test product.'], + 'NodeType' => ['description' => '产品的节点类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。取值:'."\n" + ."\n" + .'- **0**:设备。设备不能挂载子设备,可以直连IoT Hub,也可以作为网关的子设备连接IoT Hub。'."\n" + ."\n" + .'- **1**:网关。网关可以挂载子设备,具有子设备管理模块,维持子设备的拓扑关系,并且可以将拓扑关系同步到云端。', 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'GmtCreate' => ['description' => '该产品的创建时间。毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1581595942000'], + 'DataFormat' => ['description' => '设备与云端之间的数据通信协议类型。该参数为使用物模型的产品(AliyunCommodityCode=iothub_senior)的特有参数。'."\n" + .'取值:'."\n" + ."\n" + .'- **0**:透传模式。使用自定义的串口数据格式。该模式下,设备可以上报原始数据(如二进制数据流)。阿里云物联网平台会运行您配置在云端的数据解析脚本,将原始数据转换成Alink JSON标准数据格式。'."\n" + ."\n" + .'- **1**:Alink JSON。阿里云物联网平台定义的设备与云端的数据交换协议,采用JSON格式。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DeviceCount' => ['description' => '产品下的设备数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '128'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'RequestParamError', - 'errorMessage' => 'The request params error.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"GmtAdded\\": 1620624606000,\\n \\"DeviceName\\": \\"test\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 1620624606000\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryShareTaskDeviceList', - 'summary' => '调用该接口查询分享任务的设备列表。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"4B4ECF2C-6222-42EC-A4B5-C12202E71CEA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 184,\\n \\"PageCount\\": 92,\\n \\"List\\": {\\n \\"ProductInfo\\": [\\n {\\n \\"AuthType\\": \\"secret\\",\\n \\"ProductKey\\": \\"a1T27vz****\\",\\n \\"ProductName\\": \\"路灯\\",\\n \\"Description\\": \\"This is a test product.\\",\\n \\"NodeType\\": 0,\\n \\"GmtCreate\\": 1581595942000,\\n \\"DataFormat\\": 1,\\n \\"DeviceCount\\": 128\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n\\n 92\\n 2\\n \\n \\n 1\\n a1A0D4t****\\n 0\\n 路灯产品\\n 1\\n 1569233025000\\n secret\\n \\n \\n 1\\n a1dEvuQ****\\n 0\\n 子设备custom\\n 0\\n 1568690432000\\n secret\\n \\n \\n 1\\n 184\\n\\n4B4ECF2C-6222-42EC-A4B5-C12202E71CEA\\ntrue\\n","errorExample":""}]', + 'title' => '查看所有产品列表', + 'summary' => '调用该接口查看所有产品列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'- 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n" + .'- 当请求参数**CurrentPage**与**PageSize**的值相乘结果大于或等于100000时,会降低调用该接口的QPS。'."\n" + .' 此时,单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + ."\n\n" + ."\n\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ShareSpeechByCombination' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryProductTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'SpeechId', - 'in' => 'formData', - 'schema' => [ - 'description' => '下发给设备的唯一播报ID。'."\n" - .'>'."\n" - .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => '42000011392021112380********', - ], - ], - [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'required' => false, - 'example' => 'wav', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'ProductKey', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" - ."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'a1BwAGV**** ', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备的**DeviceName**。'."\n" - .'如果传入该参数,需同时传入**ProductKey**。'."\n" - ."\n" - .' ', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" - ."\n" - .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'CombinationList', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '组合播报内容,包括以下类型:'."\n" - ."\n" - .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" - ."\n" - .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" - .' '."\n" - .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" - .' '."\n" - .'设备根据下发的CombinationList进行顺序播报。'."\n" - .' '."\n" - .' ', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'ZFBDZ', - 'maxItems' => 50, - ], + 'in' => 'query', + 'schema' => ['description' => '要查询Topic类的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'HMyB*******'], ], ], 'responses' => [ @@ -50736,109 +35168,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'An internal error occurred. Try again later.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B953EAFF-CFF6-4FF8-BC94-8B89F018E4DD'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ProductTopicInfo' => [ + 'description' => '调用成功时,返回的Topic类信息列表。详情参见以下**ProductTopicInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Operation' => ['description' => '设备对该Topic类的操作权限,取值:'."\n" + .'- **0**:发布'."\n" + .'- **1**:订阅'."\n" + .'- **2**:发布和订阅', 'type' => 'string', 'example' => '1'], + 'ProductKey' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'example' => 'HMyB***'], + 'Codec' => ['description' => '是否开启自定义Topic数据压缩或解压缩。'."\n" + .'取值:'."\n" + ."\n" + .'- **compress**:压缩。'."\n" + .'- **decompress**:解压缩。'."\n" + ."\n" + .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。', 'type' => 'string', 'example' => 'compress'], + 'TopicShortName' => ['description' => '产品的自定义Topic类。', 'type' => 'string', 'example' => '/HMyB***/${deviceName}/user/get'], + 'EnableProxySubscribe' => ['description' => '是否开启代理订阅。'."\n" + .'取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:不开启。'."\n" + ."\n" + .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', 'type' => 'boolean', 'example' => 'false'], + 'Id' => ['description' => 'Topic类的ID。', 'type' => 'string', 'example' => '821****'], + 'Desc' => ['description' => 'Topic类的描述信息。', 'type' => 'string', 'example' => 'topicDesc'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.devicespeech.ProjectNotFound', - 'errorMessage' => 'project not found', - ], - [ - 'errorCode' => 'iot.speechsolution.ProjectHasStopped', - 'errorMessage' => 'project has stopped', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidDevice', - 'errorMessage' => 'invalid device to speech', - ], - [ - 'errorCode' => 'iot.devicespeech.DeviceNotActived', - 'errorMessage' => 'device not actived', - ], - [ - 'errorCode' => 'iot.devicespeech.DeviceOffline', - 'errorMessage' => 'device is offline', - ], - [ - 'errorCode' => 'iot.devicespeech.RequestLimit', - 'errorMessage' => 'too much request', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidAudioFormat', - 'errorMessage' => 'invalid audio format', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidProductKeyAndDeviceName', - 'errorMessage' => 'invalid productKey and deviceName', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidDeviceId', - 'errorMessage' => 'invalid iot device id', - ], - [ - 'errorCode' => 'iot.speechservice.NotSigned', - 'errorMessage' => 'speech service has not been signed', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidSpeechId', - 'errorMessage' => 'invalid device speech id', - ], - [ - 'errorCode' => 'iot.devicespeech.ThingModelNotDefine', - 'errorMessage' => 'thing model not define', - ], - [ - 'errorCode' => 'iot.devicespeech.InvalidLicenseDevice', - 'errorMessage' => 'invalid speech license device', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', - 'title' => 'ShareSpeechByCombination', - 'summary' => '调用该接口推送共享音频到设备播报。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B953EAFF-CFF6-4FF8-BC94-8B89F018E4DD\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductTopicInfo\\": [\\n {\\n \\"Operation\\": \\"1\\",\\n \\"ProductKey\\": \\"HMyB***\\",\\n \\"Codec\\": \\"compress\\",\\n \\"TopicShortName\\": \\"/HMyB***/${deviceName}/user/get\\",\\n \\"EnableProxySubscribe\\": false,\\n \\"Id\\": \\"821****\\",\\n \\"Desc\\": \\"topicDesc\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n310E4A1E-B614-5607-B7DB-55530CAE074A\\n\\n \\n /g18******F/${deviceName}/user/get\\n false\\n 1\\n 3679****\\n g18******F\\n \\n \\n /g18******F/${deviceName}/user/update\\n false\\n 0\\n 3679****\\n g18******F\\n \\n \\n /g18******F/${deviceName}/user/update/error\\n false\\n 0\\n 3679****\\n g18******F\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定产品的自定义Topic类', + 'summary' => '调用该接口查询指定产品的自定义Topic类。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .' 单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PageQuerySharedSpeechOpen' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryProjectShareDeviceList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -50846,108 +35254,39 @@ ], 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'IotId', - 'in' => 'formData', - 'schema' => [ - 'description' => '要查询的设备ID。'."\n" - ."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => 'Q7uOhVRdZRRlDnTLv****00100', - ], - ], - [ - 'name' => 'ShareTaskCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料分享任务的分享码。'."\n" - ."\n" - .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', - 'type' => 'string', - 'required' => false, - 'example' => 'ebed9280_ba25_48df_80c2_****', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,最大不超过100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ 'name' => 'ProductKey', 'in' => 'formData', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'sd34****', - ], + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV**** '], ], [ 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '要查询的页码。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '当前页码,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], [ 'name' => 'DeviceName', 'in' => 'formData', - 'schema' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], - ], - [ - 'name' => 'Status', - 'in' => 'formData', - 'schema' => [ - 'description' => '要查询语料的状态。可取值:'."\n" - ."\n" - .'- **1**:等待审核。'."\n" - .'- **2**:审核通过。'."\n" - .'- **3**:审核拒绝。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '设备名称查询条件,模糊匹配。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -50955,205 +35294,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'String iot.system.SystemException ', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功,返回的结果。', + 'description' => '查询结果。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageId' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '数据记录总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'ResultData' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageId' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '返回数据的总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'DeviceList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Data' => [ - 'description' => '返回的共享语料信息。', + 'items' => [ + 'description' => '返回的设备列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Status' => [ - 'description' => '语料状态。返回值:'."\n" - ."\n" - .'- **1**:等待审核。'."\n" - .'- **2**:审核通过。'."\n" - .'- **3**:审核拒绝。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Voice' => [ - 'description' => '语料播报声音。', - 'type' => 'string', - 'example' => 'Siyue', - ], - 'BizCode' => [ - 'description' => '语料标识。项目下唯一。', - 'type' => 'string', - 'example' => 'identifying', - ], - 'Code' => [ - 'description' => '模版唯一标识。', - 'type' => 'string', - 'example' => 'ws****', - ], - 'Text' => [ - 'description' => '语料内容。', - 'type' => 'string', - 'example' => 'test', - ], - 'SpeechRate' => [ - 'description' => '播报速度,取值范围:-500~500。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'Volume' => [ - 'description' => '音量大小,取值范围:0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '50', - ], - 'AudioFormat' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', - 'type' => 'string', - 'example' => 'wav', - ], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'Sharable' => ['description' => '是否可以分享。'."\n" + ."\n" + .'- **1**:可以。'."\n" + ."\n" + .'- **0**:不可以。', 'type' => 'integer', 'format' => 'int64', 'example' => '1'], + 'IotId' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.system.IllegalRequest', - 'errorMessage' => 'The request parameter is invalid.', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.speech.InvalidIotProjectCode', 'errorMessage' => 'invalid project code', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 10,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"ResultData\\": {\\n \\"Data\\": [\\n {\\n \\"Status\\": 1,\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"Code\\": \\"ws****\\",\\n \\"Text\\": \\"test\\",\\n \\"SpeechRate\\": 50,\\n \\"Volume\\": 50,\\n \\"AudioFormat\\": \\"wav\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1\\n 10\\n 100\\n \\n \\n 1\\n 50\\n test\\n wav\\n Siyue\\n ws****\\n 50\\n identifying\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'PageQuerySharedSpeechOpen', - 'summary' => '被共享方调用该接口分页查询共享的语料。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"Sharable\\": 1,\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 1\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryProjectShareDeviceList', + 'summary' => '调用该接口查询项目的分享设备列表。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" - ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CountSpeechBroadcastHour' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'changeSet' => [], + 'ramActions' => [], + ], + 'QuerySceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'ShareTaskCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料分享任务的分享码。'."\n" - ."\n" - .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', - 'type' => 'string', - 'required' => true, - 'example' => 'ebed9280_ba25_48df_80c2_****', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'name' => 'RuleName', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则的名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'QueryDateTimeHour', + 'name' => 'PageSize', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的时间。2020090919表示2020年09月09日19时。', - 'type' => 'string', - 'required' => true, - 'example' => '2020090919', - ], + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], + ], + [ + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -51161,79 +35396,73 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'String iot.system.SystemException ', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '共享播报的小时数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1000', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时返回的数据。', + 'type' => 'object', + 'properties' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '场景联动规则总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'RuleList' => [ + 'description' => '场景联动规则列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'RuleStatus' => ['description' => '场景联动规则在云端的状态。'."\n" + ."\n" + .'- 0:表示停止。'."\n" + ."\n" + .'- 1:表示启动。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'GmtCreate' => ['description' => '场景联动规则的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1582004185000'], + 'GmtModified' => ['description' => '场景联动规则最后一次更新的时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1582098176000'], + 'RuleDescription' => ['description' => '场景联动规则描述。', 'type' => 'string', 'example' => '测试'], + 'RuleId' => ['description' => '场景联动规则ID。', 'type' => 'string', 'example' => 'f041397879ad4d89822811d741******'], + 'RuleName' => ['description' => '场景联动规则的名称。', 'type' => 'string', 'example' => 'test'], + ], + 'description' => '', + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'invalid instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"String\\\\tiot.system.SystemException\\\\t\\",\\n \\"Data\\": 1000,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n1000\\ntrue\\n","errorExample":""}]', - 'title' => 'CountSpeechBroadcastHour', - 'summary' => '调用该接口分页查询千里传音中共享播报的小时数据量。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用该接口可查询的共享播报数据的时间会延迟6小时。例如早上07:15分播报数据,需要延迟6个小时后,即在13:15后才能查询到07:15分播报的数据。'."\n" - ."\n\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"RuleList\\": [\\n {\\n \\"RuleStatus\\": 1,\\n \\"GmtCreate\\": 1582004185000,\\n \\"GmtModified\\": 1582098176000,\\n \\"RuleDescription\\": \\"测试\\",\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\",\\n \\"RuleName\\": \\"test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\r\\n \\r\\n \\r\\n \\r\\n 1582004185000\\r\\n f041397879ad4d89822811d741******\\r\\n 1582098176000\\r\\n 1\\r\\n test\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询场景联动规则列表', + 'summary' => '调用该接口查询场景联动规则列表。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PageQuerySpeechBroadcastHour' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySchedulePeriodList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -51242,70 +35471,32 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ShareTaskCode', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '语料分享任务的分享码。'."\n" - ."\n" - .'您可在**千里传音语音播报服务**的**分享语料管理**页面,获取**分享码**。', - 'type' => 'string', - 'required' => true, - 'example' => 'ebed9280_ba25_48df_80c2_****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'ScheduleCode', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-2w****', - ], + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '指定返回结果中每页显示的记录数量,默认值为10,最大不超过2,000。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '2000', - 'minimum' => '1', - 'example' => '10', - 'default' => '10', - ], + 'schema' => ['description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'PageToken', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '下一页标识,首次查询无需传入。后续查询需使用的**PageToken**,要从上一次查询的返回结果中获取。'."\n" - ."\n" - .'例如查询第n页时,传入查询第n-1页返回的**PageToken**值。', - 'type' => 'string', - 'required' => false, - 'example' => 'TGlzdFJlc291cm****', - ], - ], - [ - 'name' => 'QueryDateTimeHour', - 'in' => 'query', - 'schema' => [ - 'description' => '要查询的时间。2020090919表示2020年09月09日19时。', - 'type' => 'string', - 'required' => true, - 'example' => '2020090919', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -51313,165 +35504,86 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功,返回的结果。', + 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页显示数据条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageId' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '数据记录总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageToken' => [ - 'description' => '下一页标识。可在下次请求时传入,来获取下一页数据。'."\n" - ."\n" - .'如果**PageToken**值为空,表示没有下一页数据。', - 'type' => 'string', - 'example' => 'TGlzdFJlc291cm****', - ], - 'ResultData' => [ + 'PageSize' => ['description' => '每页返回的时间段条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的时间段总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Data' => [ - 'description' => '返回的共享播报数据。', + 'Items' => [ + 'description' => '时间段列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Msg' => [ - 'description' => '播报结果信息。', - 'type' => 'string', - 'example' => '播报成功。', - ], - 'StartTime' => [ - 'description' => '播报开始时间戳,单位为毫秒。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1663210172207', - ], - 'ProductKey' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'sd34****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'device1', - ], - 'ShareTaskCode' => [ - 'description' => '共享码。', - 'type' => 'string', - 'example' => 'ebed9280_ba25_48df_80c2_****', - ], - 'SpeechId' => [ - 'description' => '播报ID。', - 'type' => 'string', - 'example' => '42000011392021112380****', - ], - 'Code' => [ - 'description' => '播报结果码。返回值:'."\n" - ."\n" - .'- **0**:语料播报成功。'."\n" - .'- **1**:语料已播报,重复播报。'."\n" - .'- **2**:语料不存在。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'Speechs' => [ - 'description' => '播报语料。JSON数组格式。', - 'type' => 'string', - 'example' => '["ANC","CDF"]', - ], + 'EndTime' => ['description' => '时间段结束时间', 'type' => 'string', 'example' => '00:10'], + 'StartTime' => ['description' => '时间段开始时间。', 'type' => 'string', 'example' => '00:00'], + 'SoundCodeContent' => ['description' => '时间段声码解析内容。', 'type' => 'string', 'example' => 'www.taobao.com'], + 'Description' => ['description' => '时间段描述。', 'type' => 'string', 'example' => 'test'], + 'PeriodCode' => ['description' => '时间段唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'invalid instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', 'errorMessage' => 'invalid IotInstanceId', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 10,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"PageToken\\": \\"TGlzdFJlc291cm****\\",\\n \\"ResultData\\": {\\n \\"Data\\": [\\n {\\n \\"Msg\\": \\"播报成功。\\",\\n \\"StartTime\\": 1663210172207,\\n \\"ProductKey\\": \\"sd34****\\",\\n \\"DeviceName\\": \\"device1\\",\\n \\"ShareTaskCode\\": \\"ebed9280_ba25_48df_80c2_****\\",\\n \\"SpeechId\\": \\"42000011392021112380****\\",\\n \\"Code\\": 0,\\n \\"Speechs\\": \\"[\\\\\\"ANC\\\\\\",\\\\\\"CDF\\\\\\"]\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\n\\n 1\\n 10\\n 100\\n TGlzdFJlc291cm****\\n \\n \\n 播报成功。\\n [\\"ANC\\",\\"CDF\\"]\\n ebed9280_ba25_48df_80c2_****\\n 1663210172207\\n 0\\n sd34****\\n 42000011392021112380****\\n device1\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'PageQuerySpeechBroadcastHour', - 'summary' => '调用该接口分页查询千里传音中共享播报的小时数据。', - 'description' => '## 使用说明'."\n" - ."\n" - .'调用该接口可查询的共享播报数据的时间会延迟6小时。例如早上07:15分播报数据,需要延迟6个小时后,即在13:15后才能查询到07:15分播报的数据。'."\n" - ."\n\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"EndTime\\": \\"00:10\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"SoundCodeContent\\": \\"www.taobao.com\\",\\n \\"Description\\": \\"test\\",\\n \\"PeriodCode\\": \\"Md3ZiTL888K9llXDy7890***********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n test\\n 00:10\\n 00:00\\n www.taobao.com\\n Md3ZiTL888K9llXDy7890***********\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySchedulePeriodList', + 'summary' => '调用该接口查询声码排程时间段列表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSharePromotionActivity' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySchedulePeriodList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryShareProductNameByProductKey' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -51480,54 +35592,16 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SharePromotionActivityName', - 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'task01', - ], - ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cv3********', - ], - ], - [ - 'name' => 'StartTime', + 'name' => 'ShareTaskCode', 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动开始时间的毫秒级时间戳。不传入,表示促销活动没有开始时间的限制。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1691547072000', - ], + 'schema' => ['description' => '分享任务的分享码。'."\n" + ."\n" + .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', 'type' => 'string', 'required' => true, 'example' => '52******_7**e_4**3_9**e_61**********'], ], [ - 'name' => 'EndTime', + 'name' => 'ProductKey', 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动结束时间的毫秒级时间戳。不传入,表示促销活动没有结束时间的限制。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1694315533000', - ], + 'schema' => ['description' => '共享设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a2YwD2****'], ], ], 'responses' => [ @@ -51535,89 +35609,62 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidIotInstanceId', - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.speech.InvalidIotInstanceId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Invalid instance ID.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的促销活动ID。', - 'type' => 'string', - 'example' => '61******_****_4901_****_47***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'Invalid instance ID.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '返回的结果。', + 'type' => 'object', + 'properties' => [ + 'ProductName' => ['description' => '产品名称。', 'type' => 'string', 'example' => '播报音响'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"Data\\": \\"61******_****_4901_****_47***********\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n61******_****_4901_****_47***********\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSharePromotionActivity', - 'summary' => '调用该接口创建千里传音分享任务的促销活动。', - 'description' => '## 使用说明'."\n" - .'由于一个设备只能加入一个分享任务且只能播报该分享任务中共享语料,千里传音语音播报服务提供了促销活动功能,可指定分享任务中共享设备播报促销活动中的语料。'."\n" - ."\n" - .'配置流程如下:'."\n" - ."\n" - .'1. 调用本接口为当前实例下所有分享任务创建促销活动。'."\n" - .'2. 调用接口**QuerySharePromotionActivityAuditResult**,查询指定分享任务的促销活动审核结果,确认指定分享任务的促销活动审核通过。'."\n" - .'3. 调用接口**CreateSharePromotionSpeechModel**添加促销活动的语料。'."\n" - .'4. 调用接口**AddDeviceToSharePromotion**将千里传音分享任务中已有共享设备添加到促销活动中。'."\n" - .'5. 调用接口**ShareSpeechByCombination**播放促销活动的共享语料。'."\n" - ."\n" - .'分享任务的详细配置,请参见[使用共享设备播报分享语料](~~607661~~)。'."\n" - ."\n" - .'## QPS限制'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductName\\": \\"播报音响\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 播报音响\\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryShareProductNameByProductKey', + 'summary' => '调用该接口根据产品ProductKey查询分享任务中共享设备所属产品的名称。', + 'description' => '## QPS限制'."\n" ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryShareProductNameByProductKey', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], ], 'QuerySharePromotionActivityAuditResult' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -51628,44 +35675,29 @@ [ 'name' => 'SharePromotionActivityId', 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动ID。'."\n" - ."\n" - .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', - 'type' => 'string', - 'required' => true, - 'example' => '61******_****_4901_****_47***********', - ], + 'schema' => ['description' => '促销活动ID。'."\n" + ."\n" + .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', 'type' => 'string', 'required' => true, 'example' => '61******_****_4901_****_47***********'], ], [ 'name' => 'ShareTaskCode', 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务的分享码。'."\n" - ."\n" - .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '52******_7**e_4**3_9**e_61**********', - ], + 'schema' => ['description' => '分享任务的分享码。'."\n" + ."\n" + .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', 'type' => 'string', 'required' => true, 'example' => '52******_7**e_4**3_9**e_61**********'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cv3********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cv3********'], ], ], 'responses' => [ @@ -51673,64 +35705,35 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidIotInstanceId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'Invalid instance ID.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.speech.InvalidIotInstanceId'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'Invalid instance ID.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ 'description' => '调用成功后,返回的审核结果数据。', 'type' => 'object', 'properties' => [ - 'AuditResult' => [ - 'description' => '审核结果。'."\n" - ."\n" - .'- **1**:待审核。'."\n" - .'- **2**:审核通过。'."\n" - .'- **3**:审核拒绝。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], + 'AuditResult' => ['description' => '审核结果。'."\n" + ."\n" + .'- **1**:待审核。'."\n" + .'- **2**:审核通过。'."\n" + .'- **3**:审核拒绝。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], + ['errorCode' => 'iot.speech.InvalidIotInstanceId', 'errorMessage' => 'Invalid instance ID.', 'description' => '无效的实例ID。'], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AuditResult\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 2\\n\\n\\ntrue\\n","errorExample":""}]', @@ -51747,16 +35750,12 @@ 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'AddDeviceToSharePromotion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryShareTaskDeviceList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -51765,73 +35764,37 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SharePromotionActivityId', + 'name' => 'ShareTaskId', 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动ID。'."\n" - ."\n" - .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', - 'type' => 'string', - 'required' => true, - 'example' => '61******_****_4901_****_47***********', - ], + 'schema' => ['description' => '分享任务ID。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'ShareTaskCode', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务的分享码。'."\n" - ."\n" - .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '52******_7**e_4**3_9**e_61**********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-e3***'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cv3********', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20'], ], [ - 'name' => 'DeviceSimpleInfoList', + 'name' => 'PageId', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '待添加共享设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2YwD2****', - ], - 'DeviceName' => [ - 'description' => '待添加的共享设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device01', - ], - ], - ], - 'required' => true, - 'maxItems' => 200, - ], + 'schema' => ['description' => '当前页码,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称查询条件,模糊匹配。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -51839,120 +35802,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidIotInstanceId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'Invalid instance ID.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的添加结果。', + 'description' => '查询结果。', 'type' => 'object', 'properties' => [ - 'FailDeviceSimpleInfoList' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageId' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '返回数据的总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'DeviceList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'item' => [ - 'description' => '添加失败的共享设备列表文件。', + 'items' => [ + 'description' => '设备列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'ProductKey' => [ - 'description' => '添加失败的共享设备所属产品的**ProductKey**。', - 'type' => 'string', - 'example' => 'a2YwD2****', - ], - 'DeviceName' => [ - 'description' => '添加失败的共享设备名称。', - 'type' => 'string', - 'example' => 'device02', - ], - 'FailReason' => [ - 'description' => '添加失败的描述。', - 'type' => 'string', - 'example' => '设备在共享中不存在', - ], - 'FailCode' => [ - 'description' => '添加失败的错误码。'."\n" - ."\n" - .'- **1**:设备在共享中不存在。'."\n" - .'- **2**:设备已经在大促中存在。'."\n" - .'- **3**:批量操作异常,请稍后重试。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'GmtAdded' => ['description' => '添加时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620624606000'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'IotId' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], + ['errorCode' => 'RequestParamError', 'errorMessage' => 'The request params error.', 'description' => ''], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"FailDeviceSimpleInfoList\\": {\\n \\"item\\": [\\n {\\n \\"ProductKey\\": \\"a2YwD2****\\",\\n \\"DeviceName\\": \\"device02\\",\\n \\"FailReason\\": \\"设备在共享中不存在\\",\\n \\"FailCode\\": 1\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n \\n \\n 1\\n 设备在共享中不存在\\n a2YwD2****\\n device02\\n \\n \\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'AddDeviceToSharePromotion', - 'summary' => '调用该接口将千里传音分享任务中已有共享设备添加到促销活动中。', - 'description' => '## 使用说明'."\n" - .'促销活动使用的详细说明,请参见**CreateSharePromotionActivity**接口文档的**使用说明**。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"GmtAdded\\": 1620624606000,\\n \\"DeviceName\\": \\"test\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 1620624606000\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryShareTaskDeviceList', + 'summary' => '调用该接口查询分享任务的设备列表。', + 'description' => '## QPS限制'."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSharePromotionSpeechModel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryShareTaskDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySolutionDeviceGroupPage' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -51960,127 +35886,35 @@ ], 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'Voice', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', - 'type' => 'string', - 'required' => true, - 'example' => 'Xiaoyun', - ], - ], - [ - 'name' => 'SharePromotionActivityId', - 'in' => 'formData', - 'schema' => [ - 'description' => '促销活动ID。'."\n" - ."\n" - .'调用接口**CreateSharePromotionActivity**返回的**Data**值。', - 'type' => 'string', - 'required' => true, - 'example' => '61******_****_4901_****_47***********', - ], - ], - [ - 'name' => 'SpeechModelType', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料类型,仅支持取值目前只支持固定值**custom**,表示自定义语料。', - 'type' => 'string', - 'required' => true, - 'example' => 'custom', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cv3********', - ], - ], - [ - 'name' => 'BizCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料标识,由用户自定义,支持英文字母和数字,长度为1~32个字符,项目下保证唯一。'."\n" - ."\n" - .'建议将语料语义的拼音首字母设置为语料标识,例如:`支付到账`设置为`ZFDZ`。', - 'type' => 'string', - 'required' => true, - 'example' => 'ZFDZ', - ], - ], - [ - 'name' => 'SpeechRate', - 'in' => 'formData', - 'schema' => [ - 'description' => '播报速度,取值范围:-500~500。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '500', - 'minimum' => '-500', - 'example' => '0', - 'default' => '0', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'AudioFormat', - 'in' => 'formData', - 'schema' => [ - 'description' => '音频格式,仅支持**wav**、**mp3**格式。', - 'type' => 'string', - 'required' => true, - 'example' => 'wav', - ], + 'name' => 'ProjectCode', + 'in' => 'query', + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], ], [ - 'name' => 'Volume', - 'in' => 'formData', - 'schema' => [ - 'description' => '音量大小,取值范围:0~100。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '100', - 'minimum' => '0', - 'example' => '50', - 'default' => '50', - ], + 'name' => 'FuzzyGroupName', + 'in' => 'query', + 'schema' => ['description' => '模糊查询分组的名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'ShareTaskCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务的分享码。'."\n" - ."\n" - .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '52******_7**e_4**3_9**e_61**********', - ], + 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '20'], ], [ - 'name' => 'Text', - 'in' => 'formData', - 'schema' => [ - 'description' => '语料文本,支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'name' => 'PageId', + 'in' => 'query', + 'schema' => ['description' => '当前页,从1开始,最大10000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '10000', 'minimum' => '1', 'example' => '1'], ], ], 'responses' => [ @@ -52088,74 +35922,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidIotInstanceId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'Invalid instance ID.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSharePromotionSpeechModel', - 'summary' => '调用该接口为千里传音分享任务的促销活动创建共享语料。', - 'description' => '## 使用说明'."\n" - .'促销活动使用的详细说明,请参见[CreateSharePromotionActivity](~~2568449~~)接口文档的“使用说明”。'."\n" - ."\n" - .'## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.tcloud.ProjectNotFound'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'project not found'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的分组列表。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的分组个数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageId' => ['description' => '当前页,从1开始。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '查询返回的数据总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'itemName' => [ + 'description' => '分组列表数据。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '分组的ID。', 'type' => 'string', 'example' => '4de2c367****8c585e5992** '], + 'GroupName' => ['description' => '分组名称。'."\n", 'type' => 'string', 'example' => 'test***'], + 'GmtCreate' => ['description' => '分组的创建时间。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1356565656'], + 'GmtModified' => ['description' => '分组最近一次修改的时间。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '1357865658'], + 'GroupDesc' => ['description' => '分组描述。', 'type' => 'string', 'example' => 'description'], + 'DeviceCount' => ['description' => '分组下设备的数量。'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.tcloud.ProjectNotFound\\",\\n \\"ErrorMessage\\": \\"project not found\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 100,\\n \\"List\\": {\\n \\"itemName\\": [\\n {\\n \\"GroupId\\": \\"4de2c367****8c585e5992** \\",\\n \\"GroupName\\": \\"test***\\",\\n \\"GmtCreate\\": 1356565656,\\n \\"GmtModified\\": 1357865658,\\n \\"GroupDesc\\": \\"description\\",\\n \\"DeviceCount\\": 100\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n test***\\n 1356565656\\n description\\n 1357865658\\n 100\\n 4de2c367****8c585e5992** \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询项目分组列表', + 'summary' => '查询指定项目下的分组列表。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryShareProductNameByProductKey' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySolutionDeviceGroupPage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySoundCodeLabelBatchFailedResult' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52164,26 +36000,22 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ShareTaskCode', + 'name' => 'BatchCode', 'in' => 'formData', - 'schema' => [ - 'description' => '分享任务的分享码。'."\n" - ."\n" - .'分享任务的分享码信息,请参见[使用共享设备播报分享语料](~~607661~~)。', - 'type' => 'string', - 'required' => true, - 'example' => '52******_7**e_4**3_9**e_61**********', - ], + 'schema' => ['description' => '批次唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'ProductKey', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '共享设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a2YwD2****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -52191,82 +36023,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => 'iot.speech.InvalidIotInstanceId', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'Invalid instance ID.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回的结果。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'ProductName' => [ - 'description' => '产品名称。', - 'type' => 'string', - 'example' => '播报音响', + 'Items' => [ + 'description' => '批次失败声码标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ResultCode' => ['description' => '错误码。', 'type' => 'string', 'example' => '7541'], + 'ErrorMessage' => ['description' => '错误信息。', 'type' => 'string', 'example' => 'sound code label exist'], + 'Label' => ['description' => '标签。', 'type' => 'string', 'example' => 'test'], + ], + 'description' => '', + ], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.speech.InvalidIotInstanceId', - 'errorMessage' => 'Invalid instance ID.', - ], - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', - ], - [ - 'errorCode' => 'iot.system.SystemException', - 'errorMessage' => 'An internal error occurred. Try again later.', - ], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speech.InvalidIotInstanceId\\",\\n \\"ErrorMessage\\": \\"Invalid instance ID.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductName\\": \\"播报音响\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 播报音响\\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QueryShareProductNameByProductKey', - 'summary' => '调用该接口根据产品ProductKey查询分享任务中共享设备所属产品的名称。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n {\\n \\"ResultCode\\": \\"7541\\",\\n \\"ErrorMessage\\": \\"sound code label exist\\",\\n \\"Label\\": \\"test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n \\n \\n sound code label exist\\n 7541\\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySoundCodeLabelBatchFailedResult', + 'summary' => '调用该接口查询指定声码标签批次下创建失败的声码标签列表。', 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSoundCode' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelBatchFailedResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySoundCodeLabelBatchList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52275,67 +36100,32 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'Duration', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码持续时长,单位为秒,取值范围为1~30。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '2', - ], - ], - [ - 'name' => 'SoundCodeContent', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '声码营销内容,例如商品的详情地址等,长度限制100个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.taobao.com', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'ScheduleCode', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'Name', + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '声码名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', - 'type' => 'string', - 'required' => false, - 'example' => 'TEST123', - ], + 'schema' => ['description' => '指定每页返回的时间段条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'OpenType', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '排程开放类型。'."\n" - ."\n" - .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" - ."\n" - .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', - 'type' => 'string', - 'required' => false, - 'example' => 'OPEN', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -52343,98 +36133,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '创建成功时返回的声码ID(SoundCode),是声码的唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的时间段条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的时间段总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '批次列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '批次状态。'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **PARTIAL_FAILED**:部分成功。'."\n" + .'- **INTERRUPT**:中断。', 'type' => 'string', 'example' => 'RUNNING'], + 'Description' => ['description' => '批次描述。', 'type' => 'string', 'example' => 'test'], + 'BatchCode' => ['description' => '批次唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'GmtCreate' => ['description' => '批次创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'SuccessNum' => ['description' => '成功创建数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '批量创建总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCodeContent', - 'errorMessage' => 'invalid sound code content', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCodeDuration', - 'errorMessage' => 'invalid sound code duration', - ], - [ - 'errorCode' => 'iot.soundcode.SensitiveContent', - 'errorMessage' => 'sensitive content', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidName', - 'errorMessage' => 'invalid sound code name', - ], - [ - 'errorCode' => 'iot.soundcode.AlreadyExistsName', - 'errorMessage' => 'already exists sound code name', - ], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], ], 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', - ], + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSoundCode', - 'summary' => '调用该接口创建声码。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"RUNNING\\",\\n \\"Description\\": \\"test\\",\\n \\"BatchCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"SuccessNum\\": 1,\\n \\"Total\\": 20\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n RUNNING\\n 1620634297000\\n test\\n 1\\n Md3ZiTL888K9llXDy7890***********\\n 20\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySoundCodeLabelBatchList', + 'summary' => '调用该接口查询指定排程的声码标签批次列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSoundCode' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelBatchList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySoundCodeLabelList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52443,32 +36227,32 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SoundCode', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '声码的唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'ScheduleCode', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'PageId', + 'in' => 'formData', + 'schema' => ['description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -52476,73 +36260,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的时间段条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的时间段总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '声码标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => '标签。', 'type' => 'string', 'example' => 'test'], + 'SoundCode' => ['description' => '声码唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCode', - 'errorMessage' => 'invalid sound code', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.soundcode.NotExists', - 'errorMessage' => 'sound code not exists', - ], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteSoundCode', - 'summary' => '调用该接口删除声码。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"test\\",\\n \\"SoundCode\\": \\"Md3ZiTL888K9llXDy7890***********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n \\n Md3ZiTL888K9llXDy7890***********\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySoundCodeLabelList', + 'summary' => '调用该接口查询指定排程的声码标签列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], ], 'QuerySoundCodeList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52553,48 +36347,25 @@ [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'schema' => ['description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], ], 'responses' => [ @@ -52602,52 +36373,21 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ 'description' => '返回数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的语料条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的语料总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageId' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'PageSize' => ['description' => '每页返回的语料条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的语料总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageId' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], 'List' => [ 'type' => 'object', 'itemNode' => true, @@ -52658,69 +36398,37 @@ 'items' => [ 'type' => 'object', 'properties' => [ - 'OpenType' => [ - 'description' => '排程开放类型。'."\n" - ."\n" - .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" - ."\n" - .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', - 'type' => 'string', - 'example' => 'OPEN', - ], - 'GmtCreate' => [ - 'description' => '声码创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'Duration' => [ - 'description' => '声码持续时长。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'SoundCodeContent' => [ - 'description' => '声码营销内容。', - 'type' => 'string', - 'example' => 'www.taobao.com', - ], - 'Name' => [ - 'description' => '声码名。', - 'type' => 'string', - 'example' => 'test1', - ], - 'SoundCode' => [ - 'description' => '声码的唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'OpenType' => ['description' => '排程开放类型。'."\n" + ."\n" + .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" + ."\n" + .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', 'type' => 'string', 'example' => 'OPEN'], + 'GmtCreate' => ['description' => '声码创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'Duration' => ['description' => '声码持续时长。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'SoundCodeContent' => ['description' => '声码营销内容。', 'type' => 'string', 'example' => 'www.taobao.com'], + 'Name' => ['description' => '声码名。', 'type' => 'string', 'example' => 'test1'], + 'SoundCode' => ['description' => '声码的唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], ], 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 100,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"OpenType\\": \\"OPEN\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"Duration\\": 2,\\n \\"SoundCodeContent\\": \\"www.taobao.com\\",\\n \\"Name\\": \\"test1\\",\\n \\"SoundCode\\": \\"Md3ZiTL888K9llXDy7890***********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n 1620634297000\\n 2\\n www.taobao.com\\n Md3ZiTL888K9llXDy7890***********\\n \\n \\n\\ntrue\\n","errorExample":""}]', @@ -52732,16 +36440,24 @@ 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetSoundCodeAudio' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySoundCodeScheduleList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52752,33 +36468,27 @@ [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" - .'>'."\n" - .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" - .'>', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'SoundCodeList', + 'name' => 'PageSize', 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '声码的唯一标识列表,最多100个元素。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - 'maxItems' => 50, - ], + 'schema' => ['description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '1', 'default' => '20'], + ], + [ + 'name' => 'PageId', + 'in' => 'formData', + 'schema' => ['description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。'."\n" + ."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '20', 'default' => '1'], ], ], 'responses' => [ @@ -52786,85 +36496,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'speech solution has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '返回数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'type' => 'array', - 'items' => [ - 'description' => '声码音频下载地址列表。', - 'type' => 'string', - 'example' => '["http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********"]', + 'PageSize' => ['description' => '每页返回的排程条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的排程总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageId' => ['description' => '当前页号。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '排程列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'OpenType' => ['description' => '排程开放类型。'."\n" + ."\n" + .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" + ."\n" + .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', 'type' => 'string', 'example' => 'INNER'], + 'EndTime' => ['description' => '排程每日结束工作时间。', 'type' => 'string', 'example' => '23:59'], + 'Status' => ['description' => '排程状态。', 'type' => 'string', 'example' => 'WORKING'], + 'StartTime' => ['description' => '排程每日开始工作时间。', 'type' => 'string', 'example' => '00:00'], + 'EndDate' => ['description' => '排程结束工作日期。', 'type' => 'string', 'example' => '2022-03-28'], + 'Description' => ['description' => '排程描述。', 'type' => 'string', 'example' => 'test'], + 'ScheduleCode' => ['description' => '排程唯一标识。', 'type' => 'string', 'example' => 'Md3ZiTL888K9llXDy7890***********'], + 'GmtCreate' => ['description' => '排程创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'StartDate' => ['description' => '排程开始工作日期。', 'type' => 'string', 'example' => '2022-03-28'], + 'Name' => ['description' => '排程名称。', 'type' => 'string', 'example' => 'test'], + ], + 'description' => '', + ], + ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], + ['errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'errorMessage' => 'invalid schedule IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], ], 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n \\"[\\\\\\"http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n [\\"http://speech-solution.oss-cn-shanghai.aliyuncs.com/sound_code_model_audio/Md3ZiTL888K9llXDy7890***********/iot_instc_pu****_c*-v64********/Md3ZiTL888K9llXDy7890***********.wav?Expires=1641436550&OSSAccessKeyId=LTAIN4oIyl*****&Signature=dZQWqHxjJVd0SCZZ2wR***********\\"]\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetSoundCodeAudio', - 'summary' => '调用该接口获取声码音频下载地址。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 100,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"OpenType\\": \\"INNER\\",\\n \\"EndTime\\": \\"23:59\\",\\n \\"Status\\": \\"WORKING\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"EndDate\\": \\"2022-03-28\\",\\n \\"Description\\": \\"test\\",\\n \\"ScheduleCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"StartDate\\": \\"2022-03-28\\",\\n \\"Name\\": \\"test\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n 2022-03-28\\n WORKING\\n 1620634297000\\n test\\n 23:59\\n 00:00\\n Md3ZiTL888K9llXDy7890***********\\n 2022-03-28\\n test\\n INNER\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySoundCodeScheduleList', + 'summary' => '调用该接口查询声码排程列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateSoundCodeSchedule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeScheduleList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -52873,76 +36593,19 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], - ], - [ - 'name' => 'Description', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程描述,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], - ], - [ - 'name' => 'StartDate', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程开始工作日期,格式为yyyy-MM-dd。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2022-03-31', - ], - ], - [ - 'name' => 'EndDate', + 'name' => 'SpeechCode', 'in' => 'formData', - 'schema' => [ - 'description' => '排程结束工作日期,格式为yyyy-MM-dd,不得早于StartDate。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '2022-03-31', - ], + 'schema' => ['description' => '语料ID,调用[CreateSpeech](~~217571~~)成功后返回的**Data**字段为语料ID。'."\n", 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992** '], ], [ - 'name' => 'OpenType', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '排程开放类型。'."\n" - ."\n" - .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" - ."\n" - .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', - 'type' => 'string', - 'required' => false, - 'example' => 'INNER', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => ' iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -52950,92 +36613,67 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '排程唯一标识。'."\n", - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '语料详情。', + 'type' => 'object', + 'properties' => [ + 'Voice' => ['description' => '语料播报声音。', 'type' => 'string', 'example' => 'Siyue'], + 'BizCode' => ['description' => '语料标识,当设备调用多个语料进行组合播报时,通过该标识播报指定的语料。'."\n", 'type' => 'string', 'example' => 'identifying'], + 'SpeechCode' => ['description' => '语料ID。'."\n", 'type' => 'string', 'example' => '4de2c367****8c585e5992** '], + 'SpeechType' => ['description' => '语料类型,分为自定义语料和常用语料。', 'type' => 'string', 'example' => 'custom'], + 'Text' => ['description' => '语料内容。'."\n", 'type' => 'string', 'example' => 'test'], + 'SpeechRate' => ['description' => '播报速度。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '0'], + 'Volume' => ['description' => '音量大小。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '50'], + 'AudioFormat' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'example' => 'wav'], + 'EnableSoundCode' => ['description' => '是否启用声码。', 'type' => 'boolean', 'example' => 'true'], + 'SoundCodeConfig' => [ + 'description' => '声码配置。', + 'type' => 'object', + 'properties' => [ + 'AdditionalDuration' => ['description' => '语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'SoundCodeContent' => ['description' => '声码营销内容,例如商品的详情地址等。', 'type' => 'string', 'example' => 'www.taobao.com'], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidDesc', - 'errorMessage' => 'invalid schedule description', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidName', - 'errorMessage' => 'invalid schedule name', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.AlreadyExistsName', - 'errorMessage' => 'already exists schedule name', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', - 'errorMessage' => 'invalid schedule IotInstanceId', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.LimitExceeded', - 'errorMessage' => 'sound code schedule limit exceeded', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidDate', - 'errorMessage' => 'invalid sound code schedule date', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\",\\n \\"SpeechType\\": \\"custom\\",\\n \\"Text\\": \\"test\\",\\n \\"SpeechRate\\": 0,\\n \\"Volume\\": 50,\\n \\"AudioFormat\\": \\"wav\\",\\n \\"EnableSoundCode\\": true,\\n \\"SoundCodeConfig\\": {\\n \\"AdditionalDuration\\": 3,\\n \\"SoundCodeContent\\": \\"www.taobao.com\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"66FF51D3-***-49F1-B1A2-***\\n\\n custom\\n 50\\n true\\n test\\n 4de2c367****8c585e5992** \\n wav\\n Siyue\\n 0\\n identifying\\n \\n 3\\n www.taobao.com\\n \\n\\nspeech solution has not been signed\\niot.speechsolution.NotSigned\\ntrue","errorExample":""}]', + 'title' => 'QuerySpeech', + 'summary' => '调用该接口查询语料详情,包括语料的播报声音、语料类型和音量大小等。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSoundCodeSchedule', - 'summary' => '调用该接口创建声码排程。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'UpdateSoundCodeSchedule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QuerySpeechDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53043,107 +36681,52 @@ ], 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Description', + 'name' => 'ProjectCode', 'in' => 'formData', - 'schema' => [ - 'description' => '排程描述,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], ], [ - 'name' => 'Status', + 'name' => 'AvailableSpace', 'in' => 'formData', - 'schema' => [ - 'description' => '排程状态。'."\n" - ."\n" - .'- **WORKING**:启用。'."\n" - ."\n" - .'- **STOP**:停用。', - 'type' => 'string', - 'required' => false, - 'example' => 'WORKING', - ], + 'schema' => ['description' => '设备的可用空间,单位KB,取值为任意正数。'."\n" + .'> **AvailableSpaceScope**字段必须同时传入才会生效。', 'type' => 'string', 'required' => false, 'example' => '500'], ], [ - 'name' => 'StartTime', + 'name' => 'AvailableSpaceScope', 'in' => 'formData', - 'schema' => [ - 'description' => '排程每日开始工作时间,格式为二十四小时制时间,范围为00:00~23:59。', - 'type' => 'string', - 'required' => false, - 'example' => '00:00', - ], + 'schema' => ['description' => '设备可用空间的查询条件。'."\n" + ."\n" + .'- **greater**:大于。'."\n" + .'- **smaller**:小于。'."\n" + .'- **equal**:等于。'."\n" + ."\n" + .'示例:**AvailableSpace**设置为**500**,**AvailableSpaceScope**设置为**smaller**,则返回可用空间小于500KB的设备列表。', 'type' => 'string', 'required' => false, 'example' => 'smaller'], ], [ - 'name' => 'EndTime', + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '排程每日结束工作时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。', - 'type' => 'string', - 'required' => false, - 'example' => '23:59', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'StartDate', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '排程开始工作日期,格式为yyyy-MM-dd。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-03-31', - ], + 'schema' => ['description' => '当前页,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'EndDate', + 'name' => 'DeviceName', 'in' => 'formData', - 'schema' => [ - 'description' => '排程结束工作日期,格式为yyyy-MM-dd,不得早于StartDate。', - 'type' => 'string', - 'required' => false, - 'example' => '2022-03-31', - ], + 'schema' => ['description' => '设备名称查询条件,最左前缀匹配。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -53151,99 +36734,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。', - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '查询结果。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '返回数据的总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '返回的设备列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所隶属产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'AvailableSpace' => ['description' => '设备的实际可用空间,单位KB。', 'type' => 'number', 'format' => 'float', 'example' => '200'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'IotId' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidDesc', - 'errorMessage' => 'invalid schedule description', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidName', - 'errorMessage' => 'invalid schedule name', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.AlreadyExistsName', - 'errorMessage' => 'already exists schedule name', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', - 'errorMessage' => 'invalid schedule IotInstanceId', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidStatus', - 'errorMessage' => 'invalid schedule status', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidTime', - 'errorMessage' => 'invalid schedule time', - ], - [ - 'errorCode' => 'iot.scheduleperiod.ConflictTime', - 'errorMessage' => 'conflict with:%s', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidDate', - 'errorMessage' => 'invalid sound code schedule date', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n\\n","errorExample":""}]', - 'title' => 'UpdateSoundCodeSchedule', - 'summary' => '调用该接口更新声码排程。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"AvailableSpace\\": 200,\\n \\"DeviceName\\": \\"test\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n 200\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询播报设备列表', + 'summary' => '查询播报设备的列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSoundCodeSchedule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySpeechLicenseAvailableQuota' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53251,33 +36812,18 @@ ], 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], ], 'responses' => [ @@ -53285,77 +36831,54 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '返回的License可用配额。', 'type' => 'integer', 'format' => 'int64', 'example' => '120'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', - 'errorMessage' => 'invalid schedule IotInstanceId', - ], - [ - 'errorCode' => 'iot.scheduleperiod.AlreadyExists', - 'errorMessage' => 'schedule period already exists', - ], - [ - 'errorCode' => 'iot.soundcode.AlreadyExistsLabel', - 'errorMessage' => 'already exists sound code label', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.system.InstanceNotFound', 'errorMessage' => 'The instance ID does not exist.', 'description' => '实例ID不存在。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteSoundCodeSchedule', - 'summary' => '调用该接口删除声码排程。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": 120,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n120\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySpeechLicenseAvailableQuota', + 'summary' => '调用该接口查询当前License的剩余可用配额。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', - ], - 'QuerySoundCodeScheduleList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechLicenseAvailableQuota', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySpeechLicenseDeviceList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53365,50 +36888,57 @@ 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-e3***'], ], [ 'name' => 'PageSize', + 'in' => 'query', + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'maximum' => '100', 'minimum' => '1'], + ], + [ + 'name' => 'ProductKey', 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '1', - 'default' => '20', - ], + 'schema' => ['description' => '设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ 'name' => 'PageId', + 'in' => 'query', + 'schema' => ['description' => '当前页码,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称查询条件,模糊匹配。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'CheckGroupId', + 'in' => 'formData', + 'schema' => ['description' => '检查设备分组ID,返回设备是否在该分组下。', 'type' => 'string', 'required' => false, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'LicenseStatusList', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。'."\n" - ."\n", - 'type' => 'integer', - 'format' => 'int32', + 'description' => 'License状态查询条件。'."\n" + ."\n" + .'- **NORMAL**:正常。'."\n" + .'- **EXPIRE**:到期。'."\n" + .'- **EXPIRING**:即将到期。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '20', - 'default' => '1', + 'example' => 'NORMAL', + 'maxItems' => 3, ], ], ], @@ -53417,165 +36947,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '查询结果。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的排程条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的排程总条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '100', - ], - 'PageId' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'PageId' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Total' => ['description' => '返回数据的总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'DeviceList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '排程列表。', + 'item' => [ + 'description' => '设备列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'OpenType' => [ - 'description' => '排程开放类型。'."\n" - ."\n" - .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" - ."\n" - .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', - 'type' => 'string', - 'example' => 'INNER', - ], - 'EndTime' => [ - 'description' => '排程每日结束工作时间。', - 'type' => 'string', - 'example' => '23:59', - ], - 'Status' => [ - 'description' => '排程状态。', - 'type' => 'string', - 'example' => 'WORKING', - ], - 'StartTime' => [ - 'description' => '排程每日开始工作时间。', - 'type' => 'string', - 'example' => '00:00', - ], - 'EndDate' => [ - 'description' => '排程结束工作日期。', - 'type' => 'string', - 'example' => '2022-03-28', - ], - 'Description' => [ - 'description' => '排程描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'ScheduleCode' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'GmtCreate' => [ - 'description' => '排程创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'StartDate' => [ - 'description' => '排程开始工作日期。', - 'type' => 'string', - 'example' => '2022-03-28', - ], - 'Name' => [ - 'description' => '排程名称。', - 'type' => 'string', - 'example' => 'test', - ], + 'ExpiryTime' => ['description' => 'License到期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620624606000'], + 'ProductKey' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'LicenseStatus' => ['description' => 'License状态。'."\n" + ."\n" + .'- **NORMAL**:正常。'."\n" + .'- **EXPIRE**:到期。'."\n" + .'- **EXPIRING**:即将到期。', 'type' => 'string', 'example' => 'NORMAL'], + 'ProductName' => ['description' => '设备所属产品的名称。', 'type' => 'string', 'example' => 'test'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'InSpecifiedGroup' => ['description' => '当前设备是否在指定的设备分组下。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceStatus' => ['description' => '设备状态。'."\n" + ."\n" + .'- **ONLINE**:在线。'."\n" + .'- **OFFLINE**:离线。'."\n" + .'- **UNACTIVE**:未激活。'."\n" + .'- **DISABLE**:禁用。'."\n" + .'- **DELETE**:已删除。', 'type' => 'string', 'example' => 'ONLINE'], + 'IotId' => ['description' => '物联网平台为设备颁发的ID,是设备的唯一标识符。', 'type' => 'string', 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', - 'errorMessage' => 'invalid schedule IotInstanceId', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + ['errorCode' => 'RequestParamError', 'errorMessage' => 'The request params error.', 'description' => ''], + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 100,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"OpenType\\": \\"INNER\\",\\n \\"EndTime\\": \\"23:59\\",\\n \\"Status\\": \\"WORKING\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"EndDate\\": \\"2022-03-28\\",\\n \\"Description\\": \\"test\\",\\n \\"ScheduleCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"StartDate\\": \\"2022-03-28\\",\\n \\"Name\\": \\"test\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n 2022-03-28\\n WORKING\\n 1620634297000\\n test\\n 23:59\\n 00:00\\n Md3ZiTL888K9llXDy7890***********\\n 2022-03-28\\n test\\n INNER\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySoundCodeScheduleList', - 'summary' => '调用该接口查询声码排程列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"PageId\\": 1,\\n \\"Total\\": 200,\\n \\"DeviceList\\": {\\n \\"item\\": [\\n {\\n \\"ExpiryTime\\": 1620624606000,\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"LicenseStatus\\": \\"NORMAL\\",\\n \\"ProductName\\": \\"test\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"InSpecifiedGroup\\": true,\\n \\"DeviceStatus\\": \\"ONLINE\\",\\n \\"IotId\\": \\"Q7uOhVRdZRRlDnTLv****00100\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\n 1\\n 20\\n 200\\n \\n \\n Q7uOhVRdZRRlDnTLv****00100\\n test\\n NORMAL\\n ONLINE\\n 1620624606000\\n true\\n a1BwAGV****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QuerySpeechLicenseDeviceList', + 'summary' => '调用该接口查询千里传音License设备列表。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为3。'."\n" .'> RAM用户共享阿里云账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetSoundCodeSchedule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechLicenseDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySpeechList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53584,32 +37046,34 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'ScheduleCode', + 'name' => 'ProjectCode', 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'PageId', + 'in' => 'formData', + 'schema' => ['description' => '当前页,从1开始,最大10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], ], ], 'responses' => [ @@ -53617,132 +37081,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '排程详情。', + 'description' => '返回的语料列表。', 'type' => 'object', 'properties' => [ - 'OpenType' => [ - 'description' => '排程开放类型。'."\n" - ."\n" - .'- 内部(默认):取值为**INNER**,只允许排程所在实例下的设备请求声码解码。'."\n" - ."\n" - .'- 公开:取值为**OPEN**,可以发送邮件的方式配置白名单,允许跨实例的设备请求声码解码,跨实例解码的用量计算在声码所在的实例下。', - 'type' => 'string', - 'example' => 'INNER', - ], - 'EndTime' => [ - 'description' => '排程每日结束工作时间。', - 'type' => 'string', - 'example' => '23:59', - ], - 'Status' => [ - 'description' => '排程状态。', - 'type' => 'string', - 'example' => 'WORKING', - ], - 'StartTime' => [ - 'description' => '排程每日开始工作时间。', - 'type' => 'string', - 'example' => '00:00', - ], - 'EndDate' => [ - 'description' => '排程结束工作日期。', - 'type' => 'string', - 'example' => '2022-03-28', - ], - 'Description' => [ - 'description' => '排程描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'ScheduleCode' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'GmtCreate' => [ - 'description' => '排程创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'StartDate' => [ - 'description' => '排程开始工作日期。', - 'type' => 'string', - 'example' => '2022-03-28', - ], - 'Name' => [ - 'description' => '排程名称。', - 'type' => 'string', - 'example' => 'test', + 'PageSize' => ['description' => '每页返回的语料条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的语料总条数。'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'PageId' => ['description' => '当前页,从1开始,最大10000。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '语料列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Voice' => ['description' => '语料的语音场景。', 'type' => 'string', 'example' => 'Siyue'], + 'BizCode' => ['description' => '语料标识。'."\n", 'type' => 'string', 'example' => 'identifying'], + 'SpeechCode' => ['description' => '语料ID。'."\n", 'type' => 'string', 'example' => '4de2c367****8c585e5992** '], + 'SpeechType' => ['description' => '语料类型,分为自定义语料和常用语料。', 'type' => 'string', 'example' => 'custom'], + 'Text' => ['description' => '语料的文本内容。'."\n", 'type' => 'string', 'example' => 'test'], + 'AudioFormat' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'example' => 'wav'], + 'SpeechList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '通用语料包的语料列表。'."\n", + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Text' => ['description' => '语料的文本内容。'."\n", 'type' => 'string', 'example' => 'test'], + 'Voice' => ['description' => '语料的语音场景。', 'type' => 'string', 'example' => 'Siyue'], + 'BizCode' => ['description' => '语料标识。'."\n", 'type' => 'string', 'example' => 'identifying'], + 'SpeechCode' => ['description' => '语料标识的ID。'."\n" + ."\n", 'type' => 'string', 'example' => '4de2c367****8c585e5992** '], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', - 'errorMessage' => 'invalid schedule IotInstanceId', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 100,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\",\\n \\"SpeechType\\": \\"custom\\",\\n \\"Text\\": \\"test\\",\\n \\"AudioFormat\\": \\"wav\\",\\n \\"SpeechList\\": {\\n \\"Items\\": [\\n {\\n \\"Text\\": \\"test\\",\\n \\"Voice\\": \\"Siyue\\",\\n \\"BizCode\\": \\"identifying\\",\\n \\"SpeechCode\\": \\"4de2c367****8c585e5992** \\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 100\\n \\n \\n custom\\n test\\n 4de2c367****8c585e5992** \\n wav\\n Siyue\\n identifying\\n \\n \\n test\\n 4de2c367****8c585e5992** \\n Siyue\\n identifying\\n \\n \\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询语料列表', + 'summary' => '查询指定项目语料列表。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"OpenType\\": \\"INNER\\",\\n \\"EndTime\\": \\"23:59\\",\\n \\"Status\\": \\"WORKING\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"EndDate\\": \\"2022-03-28\\",\\n \\"Description\\": \\"test\\",\\n \\"ScheduleCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"StartDate\\": \\"2022-03-28\\",\\n \\"Name\\": \\"test\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 2022-03-28\\n WORKING\\n 1620634297000\\n test\\n 23:59\\n 00:00\\n Md3ZiTL888K9llXDy7890***********\\n 2022-03-28\\n test\\n INNER\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'GetSoundCodeSchedule', - 'summary' => '调用该接口查询声码排程详情。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'UpdateSchedulePeriod' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QuerySpeechPushJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53751,71 +37181,60 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SoundCodeContent', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段声码解析内容,长度为1~512个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.taobao.com', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot-060*****'], ], [ - 'name' => 'PeriodCode', + 'name' => 'ProjectCode', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => '0Ykj************************Av0I'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'PushMode', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '推送任务的模式,不传则查询所有模式。'."\n" + ."\n" + .'- **SINGLE_DEVICE**:单设备推送。'."\n" + .'- **ALL**:全量设备推送。'."\n" + .'- **GROUP_DEVICE**:分组设备推送。', 'type' => 'string', 'required' => false, 'example' => 'ALL'], ], [ - 'name' => 'Description', + 'name' => 'JobCode', + 'in' => 'query', + 'schema' => ['description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。', 'type' => 'string', 'required' => false, 'example' => 'tBUm***********************QPGT'], + ], + [ + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段描述,长度为1~64个字符,一个汉字占两个字符。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'StartTime', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段开始时间,格式为二十四小时制时间,范围为00:00~23:59。'."\n", - 'type' => 'string', - 'required' => false, - 'example' => '00:00', - ], + 'schema' => ['description' => '当前页,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'EndTime', + 'name' => 'StatusList', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '时间段结束时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。'."\n", - 'type' => 'string', + 'description' => '查询语料推送任务的状态列表,不传则查询所有状态。'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **CANCEL**:取消。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **TIMEOUT**:超时。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => false, - 'example' => '01:00', + 'example' => 'RUNNING', + 'maxItems' => 10, ], ], ], @@ -53824,89 +37243,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的语料推送任务状态列表。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '当前页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的语料推送任务总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '语料推送任务列表信息。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '语料推送任务状态。'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **CANCEL**:取消。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **TIMEOUT**:超时。', 'type' => 'string', 'example' => 'RUNNING'], + 'SuccessDeviceNum' => ['description' => '语料推送成功的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'SpeechNum' => ['description' => '语料数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'FailDeviceNum' => ['description' => '推送失败的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PushMode' => ['description' => '推送模式。'."\n" + ."\n" + .'- **SINGLE_DEVICE**:单设备推送。'."\n" + .'- **ALL**:全量设备推送。'."\n" + .'- **GROUP_DEVICE**:分组设备推送。', 'type' => 'string', 'example' => 'ALL'], + 'SpeechStatus' => ['description' => '推送语料是否完整。'."\n" + ."\n" + .'- **true**:完整。'."\n" + .'- **false**:不完整。', 'type' => 'boolean', 'example' => 'true'], + 'ProductKey' => ['description' => '产品的唯一标识。', 'type' => 'string', 'example' => 'den0ZLt****'], + 'GroupName' => ['description' => '分组名称。', 'type' => 'string', 'example' => '测试分组'], + 'GroupId' => ['description' => '分组ID。', 'type' => 'string', 'example' => 'test_group'], + 'ExpiredTime' => ['description' => '推送任务的到期时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'RunningDeviceNum' => ['description' => '运行中的设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'Code' => ['description' => '推送任务ID。', 'type' => 'string', 'example' => 'tBUm***********************QPGT'], + 'TotalDeviceNum' => ['description' => '总设备数。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'CreatedTime' => ['description' => '推送任务的创建时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620634297000'], + 'IotId' => ['description' => '设备ID。', 'type' => 'string', 'example' => '0iOf*****************n001'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', - 'errorMessage' => 'invalid IotInstanceId', - ], - [ - 'errorCode' => 'iot.scheduleperiod.InvalidTime', - 'errorMessage' => 'invalid period time', - ], - [ - 'errorCode' => 'iot.scheduleperiod.InvalidDesc', - 'errorMessage' => 'Invalid period description', - ], - [ - 'errorCode' => 'iot.scheduleperiod.NotExists', - 'errorMessage' => 'schedule period not exists', - ], - [ - 'errorCode' => 'iot.scheduleperiod.ConflictWithScheduleTime', - 'errorMessage' => 'conflict with schedule time', - ], - [ - 'errorCode' => 'iot.scheduleperiod.ConflictTime', - 'errorMessage' => 'conflict with:%s', - ], - [ - 'errorCode' => 'iot.soundcode.SensitiveContent', - 'errorMessage' => 'sensitive content', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"RUNNING\\",\\n \\"SuccessDeviceNum\\": 1,\\n \\"SpeechNum\\": 1,\\n \\"DeviceName\\": \\"test\\",\\n \\"FailDeviceNum\\": 1,\\n \\"PushMode\\": \\"ALL\\",\\n \\"SpeechStatus\\": true,\\n \\"ProductKey\\": \\"den0ZLt****\\",\\n \\"GroupName\\": \\"测试分组\\",\\n \\"GroupId\\": \\"test_group\\",\\n \\"ExpiredTime\\": 1620634297000,\\n \\"RunningDeviceNum\\": 2,\\n \\"Code\\": \\"tBUm***********************QPGT\\",\\n \\"TotalDeviceNum\\": 3,\\n \\"CreatedTime\\": 1620634297000,\\n \\"IotId\\": \\"0iOf*****************n001\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n 测试分组\\n RUNNING\\n 1\\n 1620634297000\\n 3\\n 1\\n 2\\n 1\\n tBUm***********************QPGT\\n test_group\\n ALL\\n 0iOf*****************n001\\n 1620634297000\\n true\\n den0ZLt****\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询语料推送任务列表', + 'summary' => '查询指定项目的语料推送任务列表。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'UpdateSchedulePeriod', - 'summary' => '调用该接口更新声码排程时间段。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', ], - 'CreateSchedulePeriod' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QuerySpeechPushJobDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -53915,72 +37343,162 @@ 'systemTags' => [], 'parameters' => [ [ - 'name' => 'SoundCodeContent', + 'name' => 'JobCode', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段声码解析内容,长度为1~512个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.taobao.com', - ], + 'schema' => ['description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。'."\n", 'type' => 'string', 'required' => true, 'example' => 'tBUm***********************QPGT'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'PageId', + 'in' => 'formData', + 'schema' => ['description' => '当前页,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'Status', + 'in' => 'formData', + 'schema' => ['description' => '推送任务状态,不传则查询所有类型。'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **SENDING**:正在发送。'."\n" + .'- **CANCEL**:取消。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **TIMEOUT**:超时。', 'type' => 'string', 'required' => false, 'example' => 'SUCCESS'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'iot-060*****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的指定语料推送任务下的设备。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '当前页显示的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的数据总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'PageId' => ['description' => '当前页。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '指定语料推送任务下的设备详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '推送任务状态。'."\n" + ."\n" + .'- **RUNNING**:运行中。'."\n" + .'- **SENDING**:正在发送。'."\n" + .'- **CANCEL**:取消。'."\n" + .'- **SUCCESS**:成功。'."\n" + .'- **TIMEOUT**:超时。', 'type' => 'string', 'example' => 'SUCCESS'], + 'ErrorMessage' => ['description' => '设备上报的错误信息。', 'type' => 'string', 'example' => 'device storage limited'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'test'], + 'GmtModified' => ['description' => '最近一次修改时间。', 'type' => 'integer', 'format' => 'int64', 'example' => '1620624606000'], + 'ErrorCode' => ['description' => '设备上报的错误码。'."\n" + ."\n" + .'- 1:本地空间不足。'."\n" + .'- 2:下载失败。'."\n" + .'- 3: 语料更新中。', 'type' => 'string', 'example' => '2'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + ], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"SUCCESS\\",\\n \\"ErrorMessage\\": \\"device storage limited\\",\\n \\"DeviceName\\": \\"test\\",\\n \\"GmtModified\\": 1620624606000,\\n \\"ErrorCode\\": \\"2\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n SUCCESS\\n 1620624606000\\n test\\n \\n \\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定语料推送任务下的设备', + 'summary' => '查询指定语料推送任务下的设备 。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJobDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'QuerySpeechPushJobSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'systemTags' => [], + 'parameters' => [ [ - 'name' => 'ScheduleCode', + 'name' => 'JobCode', 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '推送任务ID,调用[PushSpeech](~~217573~~)成功后返回的**Data**字段为推送任务ID。', 'type' => 'string', 'required' => true, 'example' => '0Ykj************************Av0I'], ], [ - 'name' => 'Description', + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段描述,长度为1~64个字符,一个汉字占两个字符。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['description' => '指定每页返回数据的最大条数,取值范围:1~50,默认值为20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], ], [ - 'name' => 'StartTime', + 'name' => 'PageId', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段开始时间,格式为二十四小时制时间,范围为00:00~23:59。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '00:00', - ], + 'schema' => ['description' => '当前页,从1开始,最大为10000。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '10000', 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'EndTime', + 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段结束时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => '01:00', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'必须传入实例ID,否则调用会失败。您可在物联网平台控制台的**实例概览**页面,查看您的实例ID。'."\n" + .'>'."\n" + .'如果公共实例没有ID,请参见[如何获取实例ID](~~267533~~)。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'iot-060*****'], ], ], 'responses' => [ @@ -53988,136 +37506,122 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '时间段唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '返回的语料推送任务下的语料详情。', + 'type' => 'object', + 'properties' => [ + 'PageSize' => ['description' => '每页返回的数据条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '查询返回的数据总条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageId' => ['description' => '当前页,从1开始。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '语料推送任务下的语料详情。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'SpeechType' => ['description' => '语料类型,包括自定义语料和常用语料。', 'type' => 'string', 'example' => 'CUSTOM'], + 'Text' => ['description' => '自定义语料的语料文本。', 'type' => 'string', 'example' => '支付到账'], + 'Voice' => ['description' => '自定义语料的语料播报声音。', 'type' => 'string', 'example' => 'Xiaoyun'], + 'BizCode' => ['description' => '语料的标识。', 'type' => 'string', 'example' => 'ZFDZ'], + 'SpeechList' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Items' => [ + 'description' => '常用语料包的语料列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Text' => ['description' => '常用语料包的语料文本。', 'type' => 'string', 'example' => '1'], + 'Voice' => ['description' => '常用语料包的语料声音。', 'type' => 'string', 'example' => 'Xiaoyun'], + 'BizCode' => ['description' => '常用语料包的语料标识。', 'type' => 'string', 'example' => 'SYS_TONE_0'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', - 'errorMessage' => 'invalid IotInstanceId', - ], - [ - 'errorCode' => 'iot.scheduleperiod.InvalidTime', - 'errorMessage' => 'invalid period time', - ], - [ - 'errorCode' => 'iot.scheduleperiod.InvalidDesc', - 'errorMessage' => 'Invalid period description', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCodeContent', - 'errorMessage' => 'invalid sound code content', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcode.SensitiveContent', - 'errorMessage' => 'sensitive content', - ], - [ - 'errorCode' => 'iot.scheduleperiod.ConflictTime', - 'errorMessage' => 'conflict with:%s', - ], - [ - 'errorCode' => 'iot.scheduleperiod.ConflictWithScheduleTime', - 'errorMessage' => 'conflict with schedule time', - ], - [ - 'errorCode' => 'iot.scheduleperiod.LimitExceeded', - 'errorMessage' => 'schedule period limit exceeded', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 1,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"SpeechType\\": \\"CUSTOM\\",\\n \\"Text\\": \\"支付到账\\",\\n \\"Voice\\": \\"Xiaoyun\\",\\n \\"BizCode\\": \\"ZFDZ\\",\\n \\"SpeechList\\": {\\n \\"Items\\": [\\n {\\n \\"Text\\": \\"1\\",\\n \\"Voice\\": \\"Xiaoyun\\",\\n \\"BizCode\\": \\"SYS_TONE_0\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"AF71BF1D-B552-47CD-B34B-352557627992\\n\\n 1\\n 20\\n 200\\n \\n \\n CUSTOM\\n 支付到账\\n Xiaoyun\\n ZFDZ\\n \\n \\n 1\\n Xiaoyun\\n SYS_TONE_0\\n \\n \\n \\n \\n\\ntrue","errorExample":""}]', + 'title' => '查询语料推送任务的语料列表', + 'summary' => '查询语料推送任务下的语料详情,包括语料的播报声音、语料类型和语料文本等。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJobSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSchedulePeriod', - 'summary' => '调用该接口创建声码排程时间段。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', ], - 'DeleteSchedulePeriod' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryStudioAppDomainListOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'PeriodCode', + 'name' => 'ProjectId', 'in' => 'formData', - 'schema' => [ - 'description' => '时间段唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], + ], + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。'."\n", 'type' => 'string', 'required' => true, 'example' => 'a12******'], ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -54125,130 +37629,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '应用绑定域名列表信息。', + 'type' => 'object', + 'properties' => [ + 'PageNo' => ['description' => '指定从返回结果中的第几页开始显示。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '分页总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '域名总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'DomainInfo' => [ + 'description' => '应用绑定域名列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Host' => ['description' => '域名。', 'type' => 'string', 'example' => 'example.com'], + 'Protocol' => ['description' => '请求协议。', 'type' => 'string', 'example' => 'https'], + 'AppId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a12*******'], + 'ProjectId' => ['description' => '项目ID。', 'type' => 'string', 'example' => 'a123********'], + 'GmtCreate' => ['description' => '应用绑定域名的时间。', 'type' => 'string', 'example' => '1619598445000'], + 'IsBeian' => ['description' => '域名是否已备案。'."\n" + .'- **YES**:是。'."\n" + .'- **NO**:否。', 'type' => 'string', 'example' => 'YES'], + 'GmtModified' => ['description' => '应用修改域名的时间。', 'type' => 'string', 'example' => '1619598445000'], + 'Id' => ['description' => '域名ID。', 'type' => 'integer', 'format' => 'int32', 'example' => '1548'], + 'TenantId' => ['description' => '租户ID。', 'type' => 'string', 'example' => 'C70B541046F64EAAB*********'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', - 'errorMessage' => 'invalid IotInstanceId', - ], - [ - 'errorCode' => 'iot.scheduleperiod.NotExists', - 'errorMessage' => 'schedule period not exists', - ], + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"DomainInfo\\": [\\n {\\n \\"Host\\": \\"example.com\\",\\n \\"Protocol\\": \\"https\\",\\n \\"AppId\\": \\"a12*******\\",\\n \\"ProjectId\\": \\"a123********\\",\\n \\"GmtCreate\\": \\"1619598445000\\",\\n \\"IsBeian\\": \\"YES\\",\\n \\"GmtModified\\": \\"1619598445000\\",\\n \\"Id\\": 1548,\\n \\"TenantId\\": \\"C70B541046F64EAAB*********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n 10\\n 1\\n 1\\n \\n \\n 1619598445000\\n C70B541046F64EAAB*********\\n a12*******\\n 1619598445000\\n a123********\\n example.com\\n 1548\\n https\\n YES\\n \\n \\n \\n true\\n","errorExample":""}]', + 'title' => 'QueryStudioAppDomainListOpen', + 'summary' => '调用该接口获取应用绑定域名列表。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryStudioAppDomainListOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteSchedulePeriod', - 'summary' => '调用该接口删除声码排程时间段。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', ], - 'QuerySchedulePeriodList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryStudioAppList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'ProjectId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.15b03118ooIo9y),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123********'], ], [ - 'name' => 'ScheduleCode', + 'name' => 'PageNo', 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], ], [ 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'schema' => ['description' => '指定返回结果中每页显示的产品数量,最大值是200。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2', 'default' => '15'], ], [ - 'name' => 'PageId', + 'name' => 'FuzzyName', + 'in' => 'formData', + 'schema' => ['description' => '应用名称。'."\n" + .'- 支持中文、英文字母、数字、下划线(_)、短划线(-)和英文圆括号(())。'."\n" + .'- 必须以中文、英文字母或数字开头。'."\n" + .'- 长度不超过30个字符(一个中文算一个字符)。', 'type' => 'string', 'required' => false, 'example' => 'test1'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'Types', 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + 'description' => '应用类型列表。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], + 'required' => true, + 'example' => '["webApp", "mobileApp"]', + 'maxItems' => 9, ], ], ], @@ -54257,179 +37771,120 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '应用列表详情。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的时间段条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的时间段总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], + 'PageNo' => ['description' => '指定从返回结果中的第几页开始显示。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '分页总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '应用总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'List' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '时间段列表。', + 'AppInfo' => [ + 'description' => '应用列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'EndTime' => [ - 'description' => '时间段结束时间', - 'type' => 'string', - 'example' => '00:10', - ], - 'StartTime' => [ - 'description' => '时间段开始时间。', - 'type' => 'string', - 'example' => '00:00', - ], - 'SoundCodeContent' => [ - 'description' => '时间段声码解析内容。', - 'type' => 'string', - 'example' => 'www.taobao.com', - ], - 'Description' => [ - 'description' => '时间段描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'PeriodCode' => [ - 'description' => '时间段唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'Type' => ['description' => '应用类型。', 'type' => 'string', 'example' => 'webApp'], + 'AppSecret' => ['description' => '应用密钥。', 'type' => 'string', 'example' => 'a605*******'], + 'AppKey' => ['description' => '应用**AppKey**。', 'type' => 'string', 'example' => '322******'], + 'Description' => ['description' => '应用描述。', 'type' => 'string', 'example' => 'This is a test.'], + 'AppId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a123********'], + 'ProjectId' => ['description' => '应用所属项目ID。', 'type' => 'string', 'example' => 'a123********'], + 'GmtCreate' => ['description' => '应用的创建时间。', 'type' => 'string', 'example' => '2020-12-25 16:20:53'], + 'GmtRelease' => ['description' => '应用的发布时间。', 'type' => 'string', 'example' => '2021-04-15 19:11:32'], + 'GmtModified' => ['description' => '应用的修改时间。', 'type' => 'string', 'example' => '2021-04-10 15:06:23'], + 'Name' => ['description' => '应用名称。', 'type' => 'string', 'example' => 'test1'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', - 'errorMessage' => 'invalid IotInstanceId', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ['errorCode' => 'IoT.Common.ParamterError', 'errorMessage' => 'The request parameter is invalid.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"EndTime\\": \\"00:10\\",\\n \\"StartTime\\": \\"00:00\\",\\n \\"SoundCodeContent\\": \\"www.taobao.com\\",\\n \\"Description\\": \\"test\\",\\n \\"PeriodCode\\": \\"Md3ZiTL888K9llXDy7890***********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n test\\n 00:10\\n 00:00\\n www.taobao.com\\n Md3ZiTL888K9llXDy7890***********\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySchedulePeriodList', - 'summary' => '调用该接口查询声码排程时间段列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"List\\": {\\n \\"AppInfo\\": [\\n {\\n \\"Type\\": \\"webApp\\",\\n \\"AppSecret\\": \\"a605*******\\",\\n \\"AppKey\\": \\"322******\\",\\n \\"Description\\": \\"This is a test.\\",\\n \\"AppId\\": \\"a123********\\",\\n \\"ProjectId\\": \\"a123********\\",\\n \\"GmtCreate\\": \\"2020-12-25 16:20:53\\",\\n \\"GmtRelease\\": \\"2021-04-15 19:11:32\\",\\n \\"GmtModified\\": \\"2021-04-10 15:06:23\\",\\n \\"Name\\": \\"test1\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 10\\n 20\\n 200\\n 1\\n \\n \\n 2020-12-25 16:20:53\\n webApp\\n This is a test.\\n a123********\\n 322******\\n 2021-04-10 15:06:23\\n a123********\\n 2021-04-15 19:11:32\\n a605*******\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', + 'title' => 'QueryStudioAppList', + 'summary' => '调用该接口获取应用列表。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CreateSoundCodeLabel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryStudioAppPageListOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ + [ + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。'."\n", 'type' => 'string', 'required' => true, 'example' => 'a12*******'], + ], [ 'name' => 'IotInstanceId', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ScheduleCode', + 'name' => 'IsRelease', 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '获取应用页面。'."\n" + .'- **true**:获取已发布的应用页面。'."\n" + .'- **false(默认)**:获取未发布的应用页面。', 'type' => 'boolean', 'required' => false, 'example' => 'false', 'default' => 'false'], ], [ - 'name' => 'Label', + 'name' => 'PageNo', 'in' => 'formData', - 'schema' => [ - 'description' => '标签,长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1', 'default' => '1'], + ], + [ + 'name' => 'PageSize', + 'in' => 'formData', + 'schema' => ['description' => '返回结果中每页显示的条数。最小值1,最大值50,默认值20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '20', 'default' => '50'], + ], + [ + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1.您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], ], ], 'responses' => [ @@ -54437,134 +37892,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '声码标签唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '应用页面列表信息。', + 'type' => 'object', + 'properties' => [ + 'PageNo' => ['description' => '指定从返回结果中的第几页开始显示。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '分页总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '页面总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'PageInfo' => [ + 'description' => '应用页面列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreate' => ['description' => '页面的创建时间。', 'type' => 'string', 'example' => '2020-12-25T16:21Z'], + 'IsLoginPage' => ['description' => '表示页面是否为登录页。'."\n" + .'- **0**:否。'."\n" + .'- **1**:是。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Path' => ['description' => '页面路径。', 'type' => 'string', 'example' => '/page/44920'], + 'IsHidden' => ['description' => '表示页面是否隐藏。'."\n" + .'- **0**:否。'."\n" + .'- **1**:是。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'GmtModified' => ['description' => '页面的修改时间。', 'type' => 'string', 'example' => '2021-05-08T17:18Z'], + 'Name' => ['description' => '页面名称。', 'type' => 'string', 'example' => 'test1'], + 'PageId' => ['description' => '页面ID。', 'type' => 'string', 'example' => '44920'], + 'IsHome' => ['description' => '表示页面是否为主页。'."\n" + .'- **0**:否。'."\n" + .'- **1**:是。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Id' => ['description' => '标记每条记录的唯一标识。', 'type' => 'integer', 'format' => 'int32', 'example' => '49739'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcode.AlreadyExistsLabel', - 'errorMessage' => 'already exists sound code label', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidLabel', - 'errorMessage' => 'invalid sound code label', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', - ], + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'CreateSoundCodeLabel', - 'summary' => '调用该接口为指定排程创建声码标签。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"PageInfo\\": [\\n {\\n \\"GmtCreate\\": \\"2020-12-25T16:21Z\\",\\n \\"IsLoginPage\\": 1,\\n \\"Path\\": \\"/page/44920\\",\\n \\"IsHidden\\": 1,\\n \\"GmtModified\\": \\"2021-05-08T17:18Z\\",\\n \\"Name\\": \\"test1\\",\\n \\"PageId\\": \\"44920\\",\\n \\"IsHome\\": 1,\\n \\"Id\\": 49739\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n 10\\n 10\\n 1\\n \\n \\n /page/44920\\n 44920\\n 1\\n 1\\n 2020-12-25T16:21Z\\n 1\\n 2021-05-08T17:18Z\\n 49739\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', + 'title' => 'QueryStudioAppPageListOpen', + 'summary' => '调用该接口获取应用页面列表。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'UpdateSoundCodeLabel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryStudioProjectList' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'SoundCode', + 'name' => 'Name', 'in' => 'formData', - 'schema' => [ - 'description' => '声码唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'schema' => ['description' => '项目名称。'."\n" + .'- 支持中文、英文字母、数字、下划线(_)、短划线(-)、英文圆括号(())。'."\n" + .'- 必须以中文、英文字母或数字开头。'."\n" + .'- 长度不超过30个字符(一个中文算一个字符)。', 'type' => 'string', 'required' => false, 'example' => 'test1'], ], [ - 'name' => 'IotInstanceId', + 'name' => 'PageNo', 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '指定从返回结果中的第几页开始显示。默认为1。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'minimum' => '1', 'example' => '1', 'default' => '1'], ], [ - 'name' => 'Label', + 'name' => 'PageSize', 'in' => 'formData', - 'schema' => [ - 'description' => '标签,长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['description' => '返回结果中每页显示的条数。最小值1,最大值50,默认值20。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '50', 'minimum' => '1', 'example' => '20', 'default' => '20'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -54572,123 +38006,114 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '项目列表详情。', + 'type' => 'object', + 'properties' => [ + 'PageNo' => ['description' => '指定从返回结果中的第几页开始显示。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TotalPage' => ['description' => '分页总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'PageSize' => ['description' => '每页显示的条数。', 'type' => 'integer', 'format' => 'int32', 'example' => '20'], + 'Total' => ['description' => '项目总数。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], + 'List' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ProjectInfo' => [ + 'description' => '项目列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GmtCreate' => ['description' => '项目的创建时间。毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1611819839000'], + 'Description' => ['description' => '项目描述。', 'type' => 'string', 'example' => 'This is a test project.'], + 'Name' => ['description' => '项目名称。', 'type' => 'string', 'example' => 'test1'], + 'GmtModified' => ['description' => '项目的修改时间。毫秒值时间戳。', 'type' => 'integer', 'format' => 'int64', 'example' => '1611819860000'], + 'ProjectId' => ['description' => '项目ID。', 'type' => 'string', 'example' => 'a123********'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCode', - 'errorMessage' => 'invalid sound code', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidLabel', - 'errorMessage' => 'invalid sound code label', - ], - [ - 'errorCode' => 'iot.soundcode.LabelNotExists', - 'errorMessage' => 'sound code label not exists', - ], - [ - 'errorCode' => 'iot.soundcode.AlreadyExistsLabel', - 'errorMessage' => 'already exists sound code label', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', - ], + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'UpdateSoundCodeLabel', - 'summary' => '调用该接口更新声码标签。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"List\\": {\\n \\"ProjectInfo\\": [\\n {\\n \\"GmtCreate\\": 1611819839000,\\n \\"Description\\": \\"This is a test project.\\",\\n \\"Name\\": \\"test1\\",\\n \\"GmtModified\\": 1611819860000,\\n \\"ProjectId\\": \\"a123********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 10\\n 20\\n 200\\n 1\\n \\n \\n 1611819839000\\n This is a test project.\\n a123********\\n 1611819860000\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', + 'title' => 'QueryStudioProjectList', + 'summary' => '调用该接口获取项目列表。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSoundCodeLabel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryStudioProjectList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QuerySubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'SoundCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '该订阅中的产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], + ], + [ + 'name' => 'Type', + 'in' => 'query', + 'schema' => ['description' => '订阅类型:'."\n" + ."\n" + .'- **MNS**'."\n" + .'- **AMQP**', 'type' => 'string', 'required' => true, 'example' => 'AMQP'], ], ], 'responses' => [ @@ -54696,137 +38121,189 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Type' => ['description' => '订阅类型。返回值:'."\n" + ."\n" + .'- **MNS**'."\n" + .'- **AMQP**', 'type' => 'string', 'example' => 'AMQP'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'DeviceTagFlag' => ['description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'true'], + 'OtaVersionFlag' => ['description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceDataFlag' => ['description' => '推送消息类型是否选择设备上报消息。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'SubscribeFlags' => ['description' => '标识当前订阅产品的其他类型消息。'."\n" + ."\n" + .'- 如果订阅的是JT/T 808协议云网关产品,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + ."\n" + .'- 如果订阅的是设备视频流状态变更通知消息,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" + ."\n" + .'- 如果同时订阅以上消息,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true,'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```'."\n", 'type' => 'string', 'example' => '{ "jt808DeviceDataFlag": true }'], + 'OtaEventFlag' => ['description' => '推送消息类型是否选择OTA升级状态通知。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ThingHistoryFlag' => ['description' => '推送消息类型是否选择物模型历史数据上报。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceStatusChangeFlag' => ['description' => '推送消息类型是否选择设备状态变化通知。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'ProductKey' => ['description' => '该订阅中的产品的ProductKey。', 'type' => 'string', 'example' => 'a1fyXVF****'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555'], + 'MnsConfiguration' => ['description' => '**Type**为**MNS**时,返回MNS队列的配置信息。'."\n" + ."\n" + .'具体组成和示例,请参见下文的“MnsConfiguration定义和示例”。', 'type' => 'string', 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }'], + 'DeviceTopoLifeCycleFlag' => ['description' => '推送消息类型是否选择设备拓扑关系变更。'."\n" + .'- **true**:是。仅网关产品会返回**true**。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceLifeCycleFlag' => ['description' => '推送消息类型是否选择设备生命周期变更。'."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'FoundDeviceListFlag' => ['description' => '推送消息类型是否选择网关子设备发现上报。'."\n" + .'- **true**:是。仅网关产品会返回**true**。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'example' => 'true'], + 'OtaJobFlag' => ['description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**:否。'."\n" + ."\n" + .'默认值为**false**。', 'type' => 'boolean', 'example' => 'true'], + 'ConsumerGroupIds' => [ + 'type' => 'array', + 'items' => ['description' => '**Type**为**AMQP**时,返回AMQP订阅中的消费组ID。', 'type' => 'string', 'example' => '[DEFAULT_GROUP,br45A6A1amoRFGN7x1zP00****]'], + 'description' => '', ], ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Type\\": \\"AMQP\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"DeviceTagFlag\\": true,\\n \\"OtaVersionFlag\\": true,\\n \\"DeviceDataFlag\\": true,\\n \\"Success\\": true,\\n \\"SubscribeFlags\\": \\"{ \\\\\\"jt808DeviceDataFlag\\\\\\": true }\\",\\n \\"OtaEventFlag\\": true,\\n \\"ThingHistoryFlag\\": true,\\n \\"DeviceStatusChangeFlag\\": true,\\n \\"ProductKey\\": \\"a1fyXVF****\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"MnsConfiguration\\": \\"{ \\\\\\"queueName\\\\\\": \\\\\\"mns-test-topic1\\\\\\", \\\\\\"regionName\\\\\\": \\\\\\"cn-shanghai\\\\\\", \\\\\\"role\\\\\\": { \\\\\\"roleArn\\\\\\": \\\\\\"acs:ram::5645***:role/aliyuniotaccessingmnsrole\\\\\\", \\\\\\"roleName\\\\\\": \\\\\\"AliyunIOTAccessingMNSRole\\\\\\" } }\\",\\n \\"DeviceTopoLifeCycleFlag\\": true,\\n \\"DeviceLifeCycleFlag\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"FoundDeviceListFlag\\": true,\\n \\"OtaJobFlag\\": true,\\n \\"ConsumerGroupIds\\": [\\n \\"[DEFAULT_GROUP,br45A6A1amoRFGN7x1zP00****]\\"\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\nfalse\\n73B9DF43-7780-47DE-8BED-077729D28BD2\\ntrue\\nfalse\\nfalse\\nXs95KifeaSKbi8tKkcoD00****\\ntrue\\nfalse\\nAMQP\\nfalse\\nfalse\\n{ \\"jt808DeviceDataFlag\\": true }\\na1Zkii7****\\n","errorExample":""}]', + 'title' => '查询MNS或AMQP服务端订阅', + 'summary' => '调用该接口查询MNS或AMQP服务端订阅。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => '**MnsConfiguration定义**'."\n" + .'| 名称 | 描述 |'."\n" + .'| ------------- |------------ |'."\n" + .'|queueName| 消息服务中用来接收信息的队列名称。 |'."\n" + .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" + .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" + ."\n" + .'示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "queueName": "mns-test-topic1",'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" + .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCode', - 'errorMessage' => 'invalid sound code', - ], - [ - 'errorCode' => 'iot.soundcode.LabelNotExists', - 'errorMessage' => 'sound code label not exists', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'DeleteSoundCodeLabel', - 'summary' => '调用该接口删除声码标签。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'QuerySoundCodeLabelList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QuerySummarySceneRuleLog' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'RuleId', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], + ], + [ + 'name' => 'StartTime', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则日志的开始时间,单位为秒,输入Unix时间戳。'."\n" + ."\n" + .'> 最多可查询近一个月(30天)的规则执行日志。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1582372973'], + ], + [ + 'name' => 'EndTime', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则日志的结束时间,单位为秒,输入Unix时间戳。'."\n" + ."\n" + .'> 最多可查询近一个月(30天)的规则执行日志。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1582373873'], + ], + [ + 'name' => 'Status', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则的执行结果。'."\n" + ."\n" + .'- 0:表示失败。'."\n" + ."\n" + .'- 1:表示成功。', 'type' => 'string', 'required' => true, 'example' => '2'], ], [ 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的语料条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'in' => 'query', + 'schema' => ['description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '10'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'CurrentPage', + 'in' => 'query', + 'schema' => ['description' => '从返回结果中的第几页开始显示。最小取值为1。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -54834,177 +38311,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的时间段条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的时间段总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ + 'CurrentPage' => ['description' => '当前页码。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'PageSize' => ['description' => '返回结果中每页显示的记录数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '10'], + 'Total' => ['description' => '场景联动规则日志总数量。', 'type' => 'integer', 'format' => 'int32', 'example' => '3'], + 'LogList' => [ 'type' => 'object', 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '声码标签列表。', + 'LogInfo' => [ + 'description' => '场景联动规则日志列表。', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ - 'Label' => [ - 'description' => '标签。', - 'type' => 'string', - 'example' => 'test', - ], - 'SoundCode' => [ - 'description' => '声码唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'LogTime' => ['description' => '场景联动规则日志出现的时间。', 'type' => 'integer', 'format' => 'int32', 'example' => '1582373706'], + 'Result' => ['description' => '场景联动规则的执行结果。'."\n" + ."\n" + .'- true:表示成功。'."\n" + ."\n" + .'- false:表示失败。', 'type' => 'string', 'example' => 'true'], + 'TraceId' => ['description' => '场景联动规则日志的轨迹ID。', 'type' => 'string', 'example' => 'a6a5b5df1582373508176121******'], ], + 'description' => '', ], ], ], + 'description' => '', ], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 3,\\n \\"LogList\\": {\\n \\"LogInfo\\": [\\n {\\n \\"LogTime\\": 1582373706,\\n \\"Result\\": \\"true\\",\\n \\"TraceId\\": \\"a6a5b5df1582373508176121******\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77\\r\\n \\r\\n \\r\\n \\r\\n 1582373706\\r\\n a6a5b5df1582373508176121******\\r\\n true\\r\\n \\r\\n \\r\\n 1582373411\\r\\n 90c8f97a1582373433359109******\\r\\n true\\r\\n \\r\\n \\r\\n 1582373408\\r\\n 90c8f97a1582373411302109******\\r\\n true\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 3\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '查询场景联动规则日志', + 'summary' => '调用该接口查询场景联动规则日志。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySummarySceneRuleLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Label\\": \\"test\\",\\n \\"SoundCode\\": \\"Md3ZiTL888K9llXDy7890***********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n \\n Md3ZiTL888K9llXDy7890***********\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySoundCodeLabelList', - 'summary' => '调用该接口查询指定排程的声码标签列表。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'BatchCreateSoundCodeLabel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QuerySuperDeviceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ - [ - 'name' => 'Total', - 'in' => 'formData', - 'schema' => [ - 'description' => '批量创建声码个数,数量为1~200个,系统将为每个声码自动生成由字母、数字随机组合的标签。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '200', - 'minimum' => '1', - 'example' => '20', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Description', - 'in' => 'formData', - 'schema' => [ - 'description' => '批次描述,长度为1~64个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'GroupId', + 'in' => 'query', + 'schema' => ['description' => '子分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'DMoI2Kby5m62****'], ], ], 'responses' => [ @@ -55012,145 +38413,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7411716B-A488-4EEB-9AA0-6DB05AD2491F'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '声码标签批次唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'GroupInfo' => [ + 'description' => '调用成功时,返回的父分组信息数据。请参见以下**GroupInfo**。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'GroupId' => ['description' => '子分组所属的父分组ID。', 'type' => 'string', 'example' => 'tDQvBJqbUyHskDse'], + 'GroupName' => ['description' => '子分组所属的父分组名称。', 'type' => 'string', 'example' => 'IOTTEST'], + 'GroupDesc' => ['description' => '父分组描述。', 'type' => 'string', 'example' => 'A test'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidLabelBatchDescription', - 'errorMessage' => 'invalid sound code label batch description', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchCreateSoundCodeLabel', - 'summary' => '调用该接口为指定排程批量创建声码标签。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"7411716B-A488-4EEB-9AA0-6DB05AD2491F\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GroupInfo\\": [\\n {\\n \\"GroupId\\": \\"tDQvBJqbUyHskDse\\",\\n \\"GroupName\\": \\"IOTTEST\\",\\n \\"GroupDesc\\": \\"A test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n \\r\\n IOTTEST\\r\\n tDQvBJqbUyHskDse\\r\\n A test.\\r\\n \\r\\n 7411716B-A488-4EEB-9AA0-6DB05AD2491F\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '根据子分组ID查询父分组信息', + 'summary' => '调用该接口根据子分组ID查询父分组信息。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchCreateSoundCodeLabelWithLabels' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySuperDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryTask' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], - [ - 'name' => 'Description', - 'in' => 'formData', - 'schema' => [ - 'description' => '批次描述,长度为1~64个字符,一个汉字占两个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'Labels', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '标签列表,数量为1~200个,每个标签长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'test', - 'maxItems' => 200, - ], + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => '任务下作业的ID。', 'type' => 'string', 'required' => true, 'example' => 'MSnT9***q010101'], ], ], 'responses' => [ @@ -55158,152 +38501,121 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '声码标签批次唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回的作业详情,请参见以下参数说明。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '作业的状态。'."\n" + ."\n" + .'- **QUEUED**:待调度。'."\n" + .'- **SENT**:已调度。'."\n" + .'- **IN_PROGRESS**:执行中。'."\n" + .'- **FAILED**:失败。'."\n" + .'- **REJECTED**:已拒绝。'."\n" + .'- **TIMED_OUT**:已超时。'."\n" + .'- **SUCCEEDED**:已成功。'."\n" + .'- **CANCELLED**:已取消。', 'type' => 'string', 'example' => 'SUCCEEDED'], + 'Progress' => ['description' => '作业的进度。', 'type' => 'string', 'example' => '80'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'mydevice'], + 'Message' => ['description' => '任务执行的相关信息,例如执行的错误信息。', 'type' => 'string', 'example' => 'this is message about task execution'], + 'UtcQueueTime' => ['description' => '作业的排队时间。', 'type' => 'string', 'example' => '2019-05-21T13:03:53.000Z'], + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1S****'], + 'JobName' => ['description' => '作业所属任务的名称。', 'type' => 'string', 'example' => 'MyTestJobIax6Eq'], + 'UtcModified' => ['description' => '作业信息的修改时间。', 'type' => 'string', 'example' => '2019-05-21T13:03:56.000Z'], + 'JobId' => ['description' => '作业所属任务的ID。', 'type' => 'string', 'example' => 'sGWotgRkutxX*****'], + 'StatusDetail' => ['description' => '任务作业执行过程中设备上报的信息。', 'type' => 'string', 'example' => '{ "msg":"this is message reported by device" }'], + 'TaskId' => ['description' => '作业ID。作业的全局唯一标识符。', 'type' => 'string', 'example' => 'MSnT9***q010101'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,作为该设备的唯一标识符。', 'type' => 'string', 'example' => 'BDjhI****01'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcodeschedule.NotExists', - 'errorMessage' => 'schedule not exists', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidLabel', - 'errorMessage' => 'invalid sound code label', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidLabelBatchDescription', - 'errorMessage' => 'invalid sound code label batch description', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"SUCCEEDED\\",\\n \\"Progress\\": \\"80\\",\\n \\"DeviceName\\": \\"mydevice\\",\\n \\"Message\\": \\"this is message about task execution\\",\\n \\"UtcQueueTime\\": \\"2019-05-21T13:03:53.000Z\\",\\n \\"ProductKey\\": \\"a1S****\\",\\n \\"JobName\\": \\"MyTestJobIax6Eq\\",\\n \\"UtcModified\\": \\"2019-05-21T13:03:56.000Z\\",\\n \\"JobId\\": \\"sGWotgRkutxX*****\\",\\n \\"StatusDetail\\": \\"{ \\\\\\"msg\\\\\\":\\\\\\"this is message reported by device\\\\\\" }\\",\\n \\"TaskId\\": \\"MSnT9***q010101\\",\\n \\"IotId\\": \\"BDjhI****01\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n512FF8FD-A97F-4AAF-B0A2-7BE3D3A19BB3\\n\\n SUCCEEDED\\n 80\\n MSnT9***q010101\\n this is message about task execution\\n MyTestJobIax6Eq\\n BDjhI****01\\n { \\"msg\\":\\"this is message reported by device\\" }\\n 2019-05-21T13:03:56.000Z\\n 2019-05-21T13:03:53.000Z\\n a1S****\\n sGWotgRkutxX*****\\n mydevice\\n\\ntrue\\n","errorExample":""}]', + 'title' => '查询指定任务下作业', + 'summary' => '调用该接口查询指定任务下的作业。', + 'description' => '## 使用说明'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nMd3ZiTL888K9llXDy7890***********\\ntrue\\n","errorExample":""}]', - 'title' => 'BatchCreateSoundCodeLabelWithLabels', - 'summary' => '调用该接口为指定排程批量创建指定声码标签。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'QuerySoundCodeLabelBatchList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ScheduleCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '排程唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd****'], ], [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定每页返回的时间段条数,取值范围:1~50,默认值为20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PageId', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定显示返回结果中的第几页。取值范围1~10,000,默认值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '10000', - 'minimum' => '1', - 'example' => '1', - 'default' => '1', - ], + 'name' => 'ModelVersion', + 'in' => 'query', + 'schema' => ['description' => '要查看的物模型版本号。'."\n" + .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" + ."\n" + .'不传入此参数,则查询草稿状态的物模型功能定义;传入此参数,则查询指定版本的物模型功能定义。', 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -55311,182 +38623,113 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ProductKey' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '返回数据。', + 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'PageSize' => [ - 'description' => '每页返回的时间段条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '查询返回的时间段总条数。'."\n", - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'PageId' => [ - 'description' => '当前页号。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Items' => [ - 'description' => '批次列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '批次状态。'."\n" - ."\n" - .'- **RUNNING**:运行中。'."\n" - .'- **SUCCESS**:成功。'."\n" - .'- **PARTIAL_FAILED**:部分成功。'."\n" - .'- **INTERRUPT**:中断。', - 'type' => 'string', - 'example' => 'RUNNING', - ], - 'Description' => [ - 'description' => '批次描述。', - 'type' => 'string', - 'example' => 'test', - ], - 'BatchCode' => [ - 'description' => '批次唯一标识。', - 'type' => 'string', - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - 'GmtCreate' => [ - 'description' => '批次创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1620634297000', - ], - 'SuccessNum' => [ - 'description' => '成功创建数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Total' => [ - 'description' => '批量创建总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - ], - ], - ], - ], - ], + 'ThingModelJson' => ['description' => '物模型的功能定义。默认模块和自定义模块的物模型数据格式不同。'."\n" + ."\n" + .'ThingModelJson取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。', 'type' => 'string', 'example' => '{ "productKey":"a1Jw4id***", "_ppk":{ "version":"1.1", "description":"xxx" }, "properties":[ { "identifier": "SimCardType", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1Jw4idFWHX", "required": false, "customFlag": true, "name": "sim卡类型" } ], "services":[], "events":[] }'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"PageId\\": 1,\\n \\"List\\": {\\n \\"Items\\": [\\n {\\n \\"Status\\": \\"RUNNING\\",\\n \\"Description\\": \\"test\\",\\n \\"BatchCode\\": \\"Md3ZiTL888K9llXDy7890***********\\",\\n \\"GmtCreate\\": 1620634297000,\\n \\"SuccessNum\\": 1,\\n \\"Total\\": 20\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n 1\\n 20\\n 200\\n \\n \\n RUNNING\\n 1620634297000\\n test\\n 1\\n Md3ZiTL888K9llXDy7890***********\\n 20\\n \\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySoundCodeLabelBatchList', - 'summary' => '调用该接口查询指定排程的声码标签批次列表。', - 'description' => '## QPS限制'."\n" + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ThingModelJson\\": \\"{ \\\\\\"productKey\\\\\\":\\\\\\"a1Jw4id***\\\\\\", \\\\\\"_ppk\\\\\\":{ \\\\\\"version\\\\\\":\\\\\\"1.1\\\\\\", \\\\\\"description\\\\\\":\\\\\\"xxx\\\\\\" }, \\\\\\"properties\\\\\\":[ { \\\\\\"identifier\\\\\\": \\\\\\"SimCardType\\\\\\", \\\\\\"dataSpecs\\\\\\": { \\\\\\"max\\\\\\": \\\\\\"1\\\\\\", \\\\\\"dataType\\\\\\": \\\\\\"INT\\\\\\", \\\\\\"unit\\\\\\": \\\\\\"mmHg\\\\\\", \\\\\\"min\\\\\\": \\\\\\"0\\\\\\", \\\\\\"step\\\\\\": \\\\\\"1\\\\\\" }, \\\\\\"std\\\\\\": false, \\\\\\"custom\\\\\\": true, \\\\\\"dataType\\\\\\": \\\\\\"INT\\\\\\", \\\\\\"rwFlag\\\\\\": \\\\\\"READ_ONLY\\\\\\", \\\\\\"productKey\\\\\\": \\\\\\"a1Jw4idFWHX\\\\\\", \\\\\\"required\\\\\\": false, \\\\\\"customFlag\\\\\\": true, \\\\\\"name\\\\\\": \\\\\\"sim卡类型\\\\\\" } ], \\\\\\"services\\\\\\":[], \\\\\\"events\\\\\\":[] }\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1F9041A2-ED5B-4A5A-9C44-598E28C0B434\\n \\n {\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a114xeJ****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJGj2p\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}\\n \\n true\\n","errorExample":""}]', + 'title' => '查看指定产品的物模型中的功能定义详情', + 'summary' => '调用该接口查看指定产品物模型中的功能定义详情。', + 'description' => '## 使用说明'."\n" + .'物模型的功能定义详情中包含物模型中的所有属性、服务和事件定义。'."\n" + ."\n" + .'如果产品物模型中添加了自定义模块,请求参数**FunctionBlockId**的值为空时,可获取到自定义模块列表;不为空时,可获取指定自定义模块的功能定义。'."\n" + .'返回参数**ThingModelJson**取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n\n" + ."\n" .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n" + ."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySoundCodeLabelBatchFailedResult' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryThingModelExtendConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'BatchCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '批次唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1T27vz****'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'>目前,物联网平台仅支持实例维度的资源组管理。请求参数**ResourceGroupId**配置已无效,无需再传入。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '123***'], + ], + [ + 'name' => 'ModelVersion', + 'in' => 'query', + 'schema' => ['description' => '物模型版本号。'."\n" + ."\n" + .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" + ."\n" + .'为空时返回已发布的最新版本。', 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,导出默认模块数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -55494,135 +38737,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ + 'description' => '调用成功时,返回的数据。', 'type' => 'object', - 'itemNode' => true, 'properties' => [ - 'Items' => [ - 'description' => '批次失败声码标签列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ResultCode' => [ - 'description' => '错误码。', - 'type' => 'string', - 'example' => '7541', - ], - 'ErrorMessage' => [ - 'description' => '错误信息。', - 'type' => 'string', - 'example' => 'sound code label exist', - ], - 'Label' => [ - 'description' => '标签。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], + 'Configuration' => ['description' => '物模型扩展描述配置。参数含义请参见[CreateThingModel](~~150323~~)的extendConfig说明。', 'type' => 'string', 'example' => '{\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Items\\": [\\n {\\n \\"ResultCode\\": \\"7541\\",\\n \\"ErrorMessage\\": \\"sound code label exist\\",\\n \\"Label\\": \\"test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n \\n \\n sound code label exist\\n 7541\\n \\n\\ntrue\\n","errorExample":""}]', - 'title' => 'QuerySoundCodeLabelBatchFailedResult', - 'summary' => '调用该接口查询指定声码标签批次下创建失败的声码标签列表。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114x******\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":1}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n \\n {\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}\\n \\n 6DDF9D04-24C3-40D8-B490-2A528E59EA67\\n true\\n","errorExample":""}]', + 'title' => '导出指定产品物模型扩展描述配置', + 'summary' => '查询物模型扩展描述配置。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .' > 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'PackageSoundCodeLabelBatchAudio' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelExtendConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryThingModelExtendConfigPublished' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'BatchCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '批次唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的**ProductKey**。'."\n" + ."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'ModelVersion', + 'in' => 'query', + 'schema' => ['description' => '要获取的物模型版本号。不传入此参数,则返回已发布的最新版本。', 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,导出默认模块数据。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -55630,114 +38831,104 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '声码标签批次音频打包地址。', - 'type' => 'string', - 'example' => 'http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'description' => '调用成功时,返回的数据。', + 'type' => 'object', + 'properties' => [ + 'Configuration' => ['description' => '物模型扩展描述配置。参数含义请参见[CreateThingModel](~~150323~~)的extendConfig说明。'."\n" + ."\n" + .'更多信息,请参见[ThingModelJson数据说明](~~150457~~)。', 'type' => 'string', 'example' => '{\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.LabelBatchNotExists', - 'errorMessage' => 'sound code label batch not exists', - ], - [ - 'errorCode' => 'iot.soundcode.NoSuccessLabel', - 'errorMessage' => 'no success label', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"Data\\": \\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\nhttp://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\ntrue\\n","errorExample":""}]', - 'title' => 'PackageSoundCodeLabelBatchAudio', - 'summary' => '调用该接口获取声码标签批次音频打包地址。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Configuration\\": \\"{\\\\\\\\\\\\\\"profile\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114x******\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":1}]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n {\\"profile\\":{\\"productKey\\":\\"a114x******\\"},\\"properties\\":[{\\"originalDataType\\":{\\"specs\\":{\\"registerCount\\":1,\\"reverseRegister\\":0,\\"swap16\\":0},\\"type\\":\\"bool\\"},\\"identifier\\":\\"WakeUpData\\",\\"registerAddress\\":\\"0x04\\",\\"scaling\\":1,\\"writeFunctionCode\\":0,\\"operateType\\":\\"inputStatus\\",\\"pollingTime\\":1000,\\"trigger\\":1}]}\\n\\n6DDF9D04-24C3-40D8-B490-2A528E59EA67\\ntrue\\n","errorExample":""}]', + 'title' => '获取已发布物模型的扩展描述配置', + 'summary' => '调用该接口获取已发布物模型的扩展描述配置。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'RetrySoundCodeLabelBatch' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelExtendConfigPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryThingModelPublished' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ - 'name' => 'BatchCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '批次唯一标识,可通过[QuerySoundCodeLabelBatchList](~~424329~~)接口查询批次列表得到。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '产品的ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'ResourceGroupId', + 'in' => 'query', + 'schema' => ['description' => '资源组ID。'."\n" + ."\n" + .'> 目前不传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'rg-acfm4l5tcwd***'], + ], + [ + 'name' => 'ModelVersion', + 'in' => 'query', + 'schema' => ['description' => '物模型版本号。'."\n" + ."\n" + .'可调用[ListThingModelVersion](~~150318~~)查看产品下的物模型版本号。'."\n" + ."\n" + .'为空时返回已发布的最新版本。'."\n", 'type' => 'string', 'required' => false, 'example' => 'v1.0.0'], + ], + [ + 'name' => 'FunctionBlockId', + 'in' => 'query', + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'不传入此参数时,查询默认模块数据。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], ], 'responses' => [ @@ -55745,79 +38936,53 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ProductKey' => ['description' => '产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回数据。', + 'type' => 'object', + 'properties' => [ + 'ThingModelJson' => ['description' => '物模型的功能定义。ThingModelJson取值的数据格式说明,请参见[ThingModelJson数据说明](~~150457~~)。', 'type' => 'string', 'example' => '{\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a1BwAGV****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJGj2p\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidParam', - 'errorMessage' => 'invalid param', - ], - [ - 'errorCode' => 'iot.soundcode.LabelBatchNotExists', - 'errorMessage' => 'sound code label batch not exists', - ], - [ - 'errorCode' => 'iot.soundcode.LabelBatchCanNotBeRetried', - 'errorMessage' => 'label batch can not be retried', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], - ], - ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', - 'title' => 'RetrySoundCodeLabelBatch', - 'summary' => '调用该接口重启声码标签批次。', + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ThingModelJson\\": \\"{\\\\\\\\\\\\\\"_ppk\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"version\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1594253010934\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"events\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a1BwAGV****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"properties\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"configCode\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"custom\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"customFlag\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"dataSpecs\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"custom\\\\\\\\\\\\\\":true,\\\\\\\\\\\\\\"dataType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"max\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"min\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"step\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"unit\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"ppb\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"dataType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"description\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"extendConfig\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"originalDataType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"specs\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"registerCount\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"reverseRegister\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"swap16\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0},\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"bool\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"registerAddress\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"0x04\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"scaling\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"writeFunctionCode\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"operateType\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"inputStatus\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"pollingTime\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1000,\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":1}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"identifier\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"WakeUpData\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"name\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"唤醒数据\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a114xeJGj2p\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false,\\\\\\\\\\\\\\"rwFlag\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"READ_ONLY\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"std\\\\\\\\\\\\\\":false}],\\\\\\\\\\\\\\"services\\\\\\\\\\\\\\":[]}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 1F9041A2-ED5B-4A5A-9C44-598E28C0B434\\n \\n {\\"_ppk\\":{\\"version\\":\\"1594253010934\\"},\\"events\\":[],\\"productKey\\":\\"a1BwAGV****\\",\\"properties\\":[{\\"configCode\\":\\"8C03F0EEC63D4897BF2637F89AE36B011594227294067\\",\\"custom\\":true,\\"customFlag\\":true,\\"dataSpecs\\":{\\"custom\\":true,\\"dataType\\":\\"INT\\",\\"max\\":\\"1\\",\\"min\\":\\"0\\",\\"step\\":\\"1\\",\\"unit\\":\\"ppb\\"},\\"dataType\\":\\"INT\\",\\"description\\":\\"1\\",\\"extendConfig\\":\\"{\\\\\\"originalDataType\\\\\\":{\\\\\\"specs\\\\\\":{\\\\\\"registerCount\\\\\\":1,\\\\\\"reverseRegister\\\\\\":0,\\\\\\"swap16\\\\\\":0},\\\\\\"type\\\\\\":\\\\\\"bool\\\\\\"},\\\\\\"identifier\\\\\\":\\\\\\"WakeUpData\\\\\\",\\\\\\"registerAddress\\\\\\":\\\\\\"0x04\\\\\\",\\\\\\"scaling\\\\\\":1,\\\\\\"writeFunctionCode\\\\\\":0,\\\\\\"operateType\\\\\\":\\\\\\"inputStatus\\\\\\",\\\\\\"pollingTime\\\\\\":1000,\\\\\\"trigger\\\\\\":1}\\",\\"identifier\\":\\"WakeUpData\\",\\"name\\":\\"唤醒数据\\",\\"productKey\\":\\"a114xeJ****\\",\\"required\\":false,\\"rwFlag\\":\\"READ_ONLY\\",\\"std\\":false}],\\"services\\":[]}\\n \\n true\\n","errorExample":""}]', + 'title' => 'QueryThingModelPublished', + 'summary' => '调用该接口查看指定产品的已发布物模型中的功能定义详情。', 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateSoundCode' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryTopicConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], @@ -55825,64 +38990,15 @@ ], 'systemTags' => [], 'parameters' => [ - [ - 'name' => 'Duration', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码持续时长,单位为秒,取值范围为1~30。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - ], - ], - [ - 'name' => 'SoundCodeContent', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码营销内容,例如商品的详情地址等,长度限制100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'www.taobao.com', - ], - ], - [ - 'name' => 'SoundCode', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码唯一标识。', - 'type' => 'string', - 'required' => true, - 'example' => 'Md3ZiTL888K9llXDy7890***********', - ], - ], [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '声码名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], ], ], 'responses' => [ @@ -55890,29 +39006,30 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", - 'type' => 'string', - 'example' => 'iot.soundcodeservice.NotSigned', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的错误信息。'."\n", - 'type' => 'string', - 'example' => 'sound code service has not been signed', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '66FF51D3-***-49F1-B1A2-***', - ], - 'Success' => [ - 'description' => '是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - ."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['type' => 'string'], + 'Message' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'Data' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'TopicConfigInfo' => [ + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TopicFullName' => ['type' => 'string'], + 'Operation' => ['type' => 'string'], + 'ProductKey' => ['type' => 'string'], + 'Description' => ['type' => 'string'], + 'Codec' => ['type' => 'string'], + 'EnableBroadcast' => ['type' => 'boolean'], + 'EnableProxySubscribe' => ['type' => 'boolean'], + ], + ], + ], + ], ], ], ], @@ -55920,115 +39037,61 @@ ], 'errorCodes' => [ 400 => [ - [ - 'errorCode' => 'iot.soundcode.InvalidIotInstanceId', - 'errorMessage' => 'invalid iot instance id', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCode', - 'errorMessage' => 'invalid sound code', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCodeContent', - 'errorMessage' => 'invalid sound code content', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidSoundCodeDuration', - 'errorMessage' => 'invalid sound code duration', - ], - [ - 'errorCode' => 'iot.soundcode.InvalidName', - 'errorMessage' => 'invalid sound code name', - ], - [ - 'errorCode' => 'iot.soundcode.SensitiveContent', - 'errorMessage' => 'sensitive content', - ], - [ - 'errorCode' => 'iot.soundcode.AlreadyExistsName', - 'errorMessage' => 'already exists sound code name', - ], - ], - 403 => [ - [ - 'errorCode' => 'iot.soundcodeservice.NotSigned', - 'errorMessage' => 'sound code service has not been signed', - ], + ['errorCode' => 'iot.message.broker.ParamCheckError', 'errorMessage' => 'Param check error.', 'description' => '参数校验错误。'], + ['errorCode' => 'iot.message.broker.ProductCheckError', 'errorMessage' => 'Product check error.', 'description' => '产品鉴权失败。'], + ['errorCode' => 'iot.message.broker.SystemError', 'errorMessage' => 'System error.', 'description' => '系统异常。'], ], - 429 => [ - [ - 'errorCode' => 'iot.soundcode.EncodeLimit', - 'errorMessage' => 'sound code encode limit exceeded', + ], + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 66FF51D3-***-49F1-B1A2-***\\n true\\n","errorExample":""}]', - 'title' => 'UpdateSoundCode', - 'summary' => '调用该接口更新声码。', - 'description' => '## QPS限制'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"TopicConfigInfo\\": [\\n {\\n \\"TopicFullName\\": \\"\\",\\n \\"Operation\\": \\"\\",\\n \\"ProductKey\\": \\"\\",\\n \\"Description\\": \\"\\",\\n \\"Codec\\": \\"\\",\\n \\"EnableBroadcast\\": true,\\n \\"EnableProxySubscribe\\": true\\n }\\n ]\\n }\\n}","type":"json"}]', ], - 'CreateSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'QueryTopicReverseRouteTable' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则名称。支持中文、大小写英文字母、数字、下划线(_)和短划线(-),长度限制为1~30个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'test', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'RuleContent', + 'name' => 'RegionId', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则内容。格式详情请参见[场景联动规则编写说明](~~171059~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '{"action":[{"params":{"content":"${metadata.formattedTime}: 收到定时消息","title":"钉钉机器人通知","webHook":"https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx"},"uri":"action/dingtalk/robot"}],"trigger":{"params":{"cron":"0 * * * * ? 2020","cronType":"quartz_cron"},"uri":"trigger/timer"},"type":"IFTTT"}', - ], + 'schema' => ['description' => '设备所在地域(与控制台上的地域对应),如cn-shanghai。'."\n" + ."\n" + .'> 目前此参数已包含在公共请求参数中,不再作为API特有参数传入。', 'type' => 'string', 'required' => false, 'example' => 'cn-shanghai'], ], [ - 'name' => 'RuleDescription', + 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则描述。长度不超过100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '定时发送消息到钉钉机器人', - ], + 'schema' => ['description' => '要查询的目标Topic,即接收消息的Topic。', 'type' => 'string', 'required' => true, 'example' => '/x7aWKW9***/testDataToDataHub/user/update'], ], ], 'responses' => [ @@ -56036,84 +39099,82 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'RuleId' => [ - 'description' => '场景联动规则ID。', - 'type' => 'string', - 'example' => 'f041397879ad4d89822811d741******', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC"'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], + 'SrcTopics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Topic' => [ + 'type' => 'array', + 'items' => ['description' => '调用成功时,返回的源Topic列表,即被订阅的Topic列表。', 'type' => 'object', 'example' => '["/CXi4***/device1/user/get","/CXi4***/device4/user/get"]'], + 'description' => '', + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"Success\\": true,\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n f041397879ad4d89822811d741******\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建场景联动规则', - 'summary' => '创建场景联动规则。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\\\\\"\\",\\n \\"Success\\": true,\\n \\"SrcTopics\\": {\\n \\"Topic\\": [\\n [\\n \\"/CXi4***/device1/user/get\\",\\n \\"/CXi4***/device4/user/get\\"\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n /CXi4***/device1/user/get\\n /CXi4***/device4/user/get\\n\\nC5515170-3C1F-4004-A7C1-181E7955BC73\\ntrue\\n","errorExample":""}]', + 'title' => '查询反向路由表', + 'summary' => '查询指定自定义Topic订阅的源Topic,即反向路由表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTopicReverseRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryTopicRouteTable' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'Topic', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], + 'schema' => ['description' => '要查询的源Topic,即发布消息的Topic。', 'type' => 'string', 'required' => true, 'example' => '/x7aWKW94bb8/testDataToDataHub/user/update'], ], ], 'responses' => [ @@ -56121,109 +39182,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'DstTopics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'Topic' => [ + 'type' => 'array', + 'items' => ['description' => '调用成功时,返回的目标Topic列表,即向源Topic订阅消息的Topic列表。', 'type' => 'object', 'example' => '["/CXi4***/device2/get","/CXi4***/device3/get"]'], + 'description' => '', + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除场景联动规则', - 'summary' => '删除场景联动规则。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true,\\n \\"DstTopics\\": {\\n \\"Topic\\": [\\n [\\n \\"/CXi4***/device2/get\\",\\n \\"/CXi4***/device3/get\\"\\n ]\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n /a1T27vz****/${deviceName}/user/submit/update\\n\\nD6CB2387-0D65-4240-9436-A2E18B434E31\\ntrue\\n","errorExample":""}]', + 'title' => '查询 Topic 路由表', + 'summary' => '查询向指定自定义Topic订阅消息的目标Topic,即指定Topic的路由表。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTopicRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'QueryVehicleDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'RuleId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], - ], - [ - 'name' => 'RuleName', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则的名称。支持中文、大小写英文字母、数字、下划线(_)和短划线(-),长度限制为1~30个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'RuleContent', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则内容。格式详情请参见[场景联动规则编写说明](~~171059~~)。', - 'type' => 'string', - 'required' => false, - 'example' => '{"action":[{"params":{"content":"${metadata.formattedTime}: 收到定时消息","title":"钉钉机器人通知","webHook":"https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx"},"uri":"action/dingtalk/robot"}],"trigger":{"params":{"cron":"0 * * * * ? 2020","cronType":"quartz_cron"},"uri":"trigger/timer"},"type":"IFTTT"}', - ], + 'schema' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'a1Bw****'], ], [ - 'name' => 'RuleDescription', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则描述。长度不超过100个字符。', - 'type' => 'string', - 'required' => false, - 'example' => '定时发送消息到钉钉机器人', - ], + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], ], 'responses' => [ @@ -56231,79 +39264,153 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的设备信息。', + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属云网关产品的**ProductKey**。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'ModifiedTime' => ['description' => '设备更新时间的时间戳。单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1657062301656'], + 'DeviceName' => ['description' => '设备名称。', 'type' => 'string', 'example' => 'light'], + 'Protocol' => ['description' => '云网关协议类型。取值:'."\n" + ."\n" + .'- **gb32960**:GB/T 32960协议。'."\n" + .'- **jt808**:JT/T 808协议。'."\n" + .'- **sl651**:SL 651协议。', 'type' => 'string', 'example' => 'gb32960'], + 'CreateTime' => ['description' => '设备创建时间的时间戳。单位为毫秒。', 'type' => 'integer', 'format' => 'int64', 'example' => '1557062301656'], + 'IotId' => ['description' => '物联网平台为该设备颁发的ID,设备的唯一标识符。', 'type' => 'string', 'example' => 'dm0001'], + 'JtProtocolDeviceData' => [ + 'description' => '仅JT/T 808协议云网关设备返回的注册认证信息。', + 'type' => 'object', + 'properties' => [ + 'Status' => ['description' => '设备状态。可取值:'."\n" + ."\n" + .'- **create**:设备已创建。'."\n" + .'- **register**:设备已注册。'."\n" + .'- **unregister**:设备已注销。', 'type' => 'string', 'example' => 'create'], + 'RegisterTime' => ['description' => '设备注册时间的时间戳。单位为毫秒。', 'type' => 'string', 'format' => 'int64', 'example' => '1517062301656'], + 'AuthCode' => ['description' => '设备认证的鉴权码。', 'type' => 'string', 'example' => '*******'], + 'VehicleColour' => ['description' => '车牌颜色。取值符合标准JT/T 808协议要求即可。详细说明,请参见[JT/T 808的2019版本协议](https://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/file-manage-files/zh-CN/20221220/mdsf/JT-T%20808-2019.pdf)。', 'type' => 'string', 'example' => '1'], + 'DeviceId' => ['description' => '设备ID。', 'type' => 'string', 'example' => 'di0001'], + 'VehicleNumber' => ['description' => '车牌号。', 'type' => 'string', 'example' => '浙A****'], + 'City' => ['description' => '设备注册的城市。', 'type' => 'string', 'example' => '杭州'], + 'DeviceModel' => ['description' => '设备型号。', 'type' => 'string', 'example' => 'dm0001'], + 'Manufacturer' => ['description' => '设备厂商ID。', 'type' => 'string', 'example' => 'mf0001'], + 'Province' => ['description' => '设备注册的省。', 'type' => 'string', 'example' => '浙江'], + ], + ], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新场景联动规则', - 'summary' => '更新场景联动规则 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The ProductKey or DeviceName parameter cannot be empty.', 'description' => '产品标识或设备名不能为空。'], + ['errorCode' => 'iot.device.NoPermission', 'errorMessage' => 'The Operation has not permission to the device.', 'description' => '无权限操作该设备,请核实。'], + ['errorCode' => 'Iot.Device.NoVehicleProtocolDevice', 'errorMessage' => 'The device non vehicle protocol data.', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"ModifiedTime\\": 1657062301656,\\n \\"DeviceName\\": \\"light\\",\\n \\"Protocol\\": \\"gb32960\\",\\n \\"CreateTime\\": 1557062301656,\\n \\"IotId\\": \\"dm0001\\",\\n \\"JtProtocolDeviceData\\": {\\n \\"Status\\": \\"create\\",\\n \\"RegisterTime\\": \\"1517062301656\\",\\n \\"AuthCode\\": \\"*******\\",\\n \\"VehicleColour\\": \\"1\\",\\n \\"DeviceId\\": \\"di0001\\",\\n \\"VehicleNumber\\": \\"浙A****\\",\\n \\"City\\": \\"杭州\\",\\n \\"DeviceModel\\": \\"dm0001\\",\\n \\"Manufacturer\\": \\"mf0001\\",\\n \\"Province\\": \\"浙江\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nCF291A12-EBB7-5A38-A087-C8A04450913E\\n\\n ERfsXh***************wk05dm0\\n 1695274556000\\n 1695274556000\\n gb32960\\n k05d******\\n Device01\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'QueryVehicleDevice', + 'summary' => '调用该接口查询云网关设备信息。', + 'description' => '## 使用说明'."\n" + .'本接口适用于查询JT/T 808协议、GB/T 32960协议和SL 651协议云网关设备的信息。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'使用云网关协议接入设备的具体流程和通信说明,请参见[JT/T 808协议云网关概述](~~474256~~)、[GB/T 32960协议云网关概述](~~2248990~~)和[SL 651协议云网关概述](~~2636038~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryVehicleDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'RRpc' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], + 'schema' => ['description' => '要发送消息产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'aldfeSe****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '要接收消息的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'device1'], + ], + [ + 'name' => 'Timeout', + 'in' => 'query', + 'schema' => ['description' => '等待设备回复消息的时间,单位是毫秒,取值范围是1,000 ~8,000。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1000'], + ], + [ + 'name' => 'ContentType', + 'in' => 'query', + 'schema' => ['description' => '使用JT/T 808协议通信时,服务端向指定设备发送消息的类型。可取值:'."\n" + ."\n" + .'- **0**:GNSS模块详细定位数据。'."\n" + .'- **11**:道路运输证IC卡信息。'."\n" + .'- **65**:串口1透传。'."\n" + .'- **66**:串口2透传。'."\n" + .'- **240**~**255**:用户自定义透传。'."\n" + ."\n" + .'物联网平台支持的JT/T 808协议详细使用说明,请参见[JT/T 808协议云网关概述](~~474256~~)。', 'type' => 'string', 'required' => false, 'example' => '240'], + ], + [ + 'name' => 'RequestBase64Byte', + 'in' => 'formData', + 'schema' => ['description' => '要发送的消息内容经过Base64编码得到的字符串格式数据,例如`dGhpcyBpcyBhbiBleGFtcGxl`。', 'type' => 'string', 'required' => true, 'example' => 'dGhpcyBpcyBhbiBleGFtcGxl'], + ], + [ + 'name' => 'Topic', + 'in' => 'query', + 'schema' => ['description' => '使用自定义的RRPC相关Topic。需要设备端配合使用,请参见设备端开发[自定义Topic](~~90570~~)。'."\n" + .'不传入此参数,则使用系统默认的RRPC Topic。', 'type' => 'string', 'required' => false, 'example' => '/a1uZfYb****/A_Vol****/user/update'], ], ], 'responses' => [ @@ -56311,143 +39418,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '1B6D50A7-F160-4D47-863C-EDEE25E26495', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => '场景联动规则在云端的状态。'."\n" - ."\n" - .'- 0:表示停止。'."\n" - ."\n" - .'- 1:表示启动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RuleContent' => [ - 'description' => '场景联动规则内容。', - 'type' => 'string', - 'example' => '{\\"action\\":[{\\"params\\":{\\"productKey\\":\\"a19luLB****\\",\\"propertyItems\\":{\\"LightAdjustLevel\\":10},\\"deviceName\\":\\"test01\\"},\\"uri\\":\\"action/device/setProperty\\"}],\\"trigger\\":{\\"params\\":{\\"cron\\":\\"22 13 20 1 *\\",\\"cronType\\":\\"linux\\"},\\"uri\\":\\"trigger/timer\\"},\\"type\\":\\"IFTTT\\",\\"sid\\":\\"9df954b33c854d469a507ef8d6******\\"}', - ], - 'GmtCreate' => [ - 'description' => '场景联动规则的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1584085921000', - ], - 'GmtModified' => [ - 'description' => '场景联动规则最后一次更新的时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1579493552000', - ], - 'RuleDescription' => [ - 'description' => '场景联动规则描述。', - 'type' => 'string', - 'example' => '测试', - ], - 'RuleName' => [ - 'description' => '场景联动规则的名称。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], + 'MessageId' => ['description' => '成功发送请求消息后,云端生成的消息ID,用于标识该消息。', 'type' => 'integer', 'format' => 'int64', 'example' => '889455942124347392'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '41C4265E-F05D-4E2E-AB09-E031F501AF7F'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'PayloadBase64Byte' => ['description' => '设备返回结果Base64编码后的值。', 'type' => 'string', 'example' => 'd29ybGQgaGVsbG8='], + 'RrpcCode' => ['description' => '调用成功时,生成的调用返回码,标识请求状态。取值:'."\n" + .'- **UNKNOWN**:系统异常。'."\n" + .'- **SUCCESS**:成功 。'."\n" + .'- **TIMEOUT**:设备响应超时。'."\n" + .'- **OFFLINE**:设备离线。'."\n" + .'- **HALFCONN**:设备离线(设备连接断开,但是断开时间未超过一个心跳周期)。', 'type' => 'string', 'example' => 'SUCCESS'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"1B6D50A7-F160-4D47-863C-EDEE25E26495\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RuleStatus\\": 0,\\n \\"RuleContent\\": \\"{\\\\\\\\\\\\\\"action\\\\\\\\\\\\\\":[{\\\\\\\\\\\\\\"params\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"productKey\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"a19luLB****\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"propertyItems\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"LightAdjustLevel\\\\\\\\\\\\\\":10},\\\\\\\\\\\\\\"deviceName\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"test01\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"uri\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"action/device/setProperty\\\\\\\\\\\\\\"}],\\\\\\\\\\\\\\"trigger\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"params\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"cron\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"22 13 20 1 *\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"cronType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"linux\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"uri\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"trigger/timer\\\\\\\\\\\\\\"},\\\\\\\\\\\\\\"type\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"IFTTT\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"sid\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"9df954b33c854d469a507ef8d6******\\\\\\\\\\\\\\"}\\",\\n \\"GmtCreate\\": 1584085921000,\\n \\"GmtModified\\": 1579493552000,\\n \\"RuleDescription\\": \\"测试\\",\\n \\"RuleName\\": \\"test\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 1B6D50A7-F160-4D47-863C-EDEE25E26495\\r\\n \\r\\n 1584085921000\\r\\n 1579493552000\\r\\n {\\"action\\":[{\\"params\\":{\\"productKey\\":\\"a19luLB****\\",\\"propertyItems\\":{\\"LightAdjustLevel\\":10},\\"deviceName\\":\\"test01\\"},\\"uri\\":\\"action/device/setProperty\\"}],\\"trigger\\":{\\"params\\":{\\"cron\\":\\"22 13 20 1 *\\",\\"cronType\\":\\"linux\\"},\\"uri\\":\\"trigger/timer\\"},\\"type\\":\\"IFTTT\\",\\"sid\\":\\"9df954b33c854d469a507ef8d6******\\"}\\r\\n 0\\r\\n test\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '获取场景联动规则详情', - 'summary' => '获取场景联动规则详情 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"MessageId\\": 889455942124347400,\\n \\"RequestId\\": \\"41C4265E-F05D-4E2E-AB09-E031F501AF7F\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"PayloadBase64Byte\\": \\"d29ybGQgaGVsbG8=\\",\\n \\"RrpcCode\\": \\"SUCCESS\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n 41C4265E-F05D-4E2E-AB09-E031F501AF7F\\r\\n true\\r\\n SUCCESS\\r\\n d29ybGQgaGVsbG8=\\r\\n 889455942124347392\\r\\n ","errorExample":""}]', + 'title' => '向设备发送请求消息', + 'summary' => '向指定设备发送请求消息,并同步返回响应。', + 'description' => '## 使用说明'."\n" + .'调用该接口后,如果设备端未在设置的超时时间(**Timeout**)内做出反馈,即使设备收到了消息,云端也视消息为发送失败。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1000。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:RRpc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ReBindLicenseDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'get', + ], ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 对于新版公共实例或企业版实例,实例有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 对于旧版公共实例,实例无ID值,无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-e3***'], ], [ - 'name' => 'RuleName', + 'name' => 'LicenseCode', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则的名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'test', - ], + 'schema' => ['description' => 'License类型,暂时只支持千里传音,可取值:**LINK_SPEECH_COMMON_LICENSE**。', 'type' => 'string', 'required' => true, 'example' => 'LINK_SPEECH_COMMON_LICENSE'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '待授权设备所属产品的**ProductKey**。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用接口[QueryProductList](~~69271~~),查看当前实例下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a2YwD23***'], ], [ - 'name' => 'CurrentPage', - 'in' => 'query', + 'name' => 'DeviceNameList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', + 'description' => '待授权License的设备列表,需传入设备对应的**deviceName**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', + 'type' => 'array', + 'items' => ['description' => '待授权License的设备,需传入设备对应的**deviceName**。'."\n" + ."\n" + .'您可调用接口[QueryDevice](~~69905~~),查询指定产品下所有设备的**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'testdevice'], 'required' => true, - 'example' => '1', + 'example' => 'test', + 'maxItems' => 10000, ], ], ], @@ -56456,149 +39525,79 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'AF71BF1D-B552-47CD-B34B-352557627992'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时返回的数据。', + 'description' => '返回重新绑定结果。', 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '场景联动规则总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleList' => [ - 'description' => '场景联动规则列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'RuleStatus' => [ - 'description' => '场景联动规则在云端的状态。'."\n" - ."\n" - .'- 0:表示停止。'."\n" - ."\n" - .'- 1:表示启动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'GmtCreate' => [ - 'description' => '场景联动规则的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1582004185000', - ], - 'GmtModified' => [ - 'description' => '场景联动规则最后一次更新的时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1582098176000', - ], - 'RuleDescription' => [ - 'description' => '场景联动规则描述。', - 'type' => 'string', - 'example' => '测试', - ], - 'RuleId' => [ - 'description' => '场景联动规则ID。', - 'type' => 'string', - 'example' => 'f041397879ad4d89822811d741******', - ], - 'RuleName' => [ - 'description' => '场景联动规则的名称。', - 'type' => 'string', - 'example' => 'test', - ], - ], - ], - ], + 'SuccessSum' => ['description' => '重新授权License成功的设备个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '10'], + 'Progress' => ['description' => '为批量设备授权License的进度百分比,即取值范围为1~100。', 'type' => 'integer', 'format' => 'int32', 'example' => '100'], + 'ResultCsvFile' => ['description' => '重新授权License完成后,授权失败设备文件的URL。', 'type' => 'string', 'example' => 'http://***'], + 'CheckProgressId' => ['description' => '查询批量授权设备进度的唯一ID。', 'type' => 'string', 'example' => '123***'], + 'FailSum' => ['description' => '授权License失败的设备个数。', 'type' => 'integer', 'format' => 'int64', 'example' => '2'], ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"RuleList\\": [\\n {\\n \\"RuleStatus\\": 1,\\n \\"GmtCreate\\": 1582004185000,\\n \\"GmtModified\\": 1582098176000,\\n \\"RuleDescription\\": \\"测试\\",\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\",\\n \\"RuleName\\": \\"test\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\r\\n \\r\\n \\r\\n \\r\\n 1582004185000\\r\\n f041397879ad4d89822811d741******\\r\\n 1582098176000\\r\\n 1\\r\\n test\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询场景联动规则列表', - 'summary' => '调用该接口查询场景联动规则列表。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'invalid license code', 'description' => ''], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'invalid product key', 'description' => '无效的产品KEY'], + ['errorCode' => 'iot.rtc.license.product.relation.nonexist', 'errorMessage' => 'license product relation non existent', 'description' => ''], + ['errorCode' => 'iot.rtc.license.quota.lack', 'errorMessage' => 'license quota is not enough', 'description' => ''], + ['errorCode' => 'iot.rtc.license.device.authorization.executing', 'errorMessage' => 'authorization for this license device is in progress', 'description' => ''], + ['errorCode' => 'iot.vas.EmptyLicenseDeviceList', 'errorMessage' => 'empty license device list', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"AF71BF1D-B552-47CD-B34B-352557627992\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"SuccessSum\\": 10,\\n \\"Progress\\": 100,\\n \\"ResultCsvFile\\": \\"http://***\\",\\n \\"CheckProgressId\\": \\"123***\\",\\n \\"FailSum\\": 2\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nAF71BF1D-B552-47CD-B34B-352557627992\\n\\n 123***\\n 100\\n http://***\\n 2\\n 10\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'ReBindLicenseDevice', + 'summary' => '调用该接口为指定产品下设备重新授权License。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'EnableSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RefreshDeviceTunnelSharePassword' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], + 'schema' => ['description' => '网关所属产品的Key,产品的唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'a1Wmy******'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '网关的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'LEGatewayAuto_B3XM******'], ], ], 'responses' => [ @@ -56606,79 +39605,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'Password' => ['description' => '新的隧道分享密码。', 'type' => 'string', 'example' => '5f5c96d7e792af75da33a81dc87982ea********'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '启动场景联动规则', - 'summary' => '启动场景联动规则 。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Password\\": \\"5f5c96d7e792af75da33a81dc87982ea********\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF\\r\\n Success\\r\\n true\\r\\n 5f5c96d7e792af75da33a81dc87982ea********\\r\\n","errorExample":""}]', + 'title' => 'RefreshDeviceTunnelSharePassword', + 'summary' => '调用该接口更新网关隧道分享密码。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DisableSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RefreshDeviceTunnelSharePassword', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'RefreshStudioAppTokenOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12******'], + ], + [ + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123*******'], ], ], 'responses' => [ @@ -56686,91 +39681,128 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => 'Token数据。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'Token类型。', 'type' => 'string', 'example' => 'custom'], + 'IsEnable' => ['description' => '是否启用Token。'."\n" + .'- **YES**:是。'."\n" + .'- **NO**:否。', 'type' => 'string', 'example' => 'YES'], + 'BizId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a12*******'], + 'Token' => ['description' => 'Token值。', 'type' => 'string', 'example' => 'cf245ddebd******'], + 'BizType' => ['description' => '应用类型。', 'type' => 'string', 'example' => 'webApp'], + ], ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7BAA989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '停止场景联动规则', - 'summary' => '停止场景联动规则 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'Studio.App.Token.AppHaveNoToken', 'errorMessage' => 'The application does not have any token.', 'description' => '应用无token'], + ['errorCode' => 'Studio.App.Token.AppTokenNotActive', 'errorMessage' => 'The application token is not active.', 'description' => '应用无激活token'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12*******\\",\\n \\"Token\\": \\"cf245ddebd******\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n YES\\n custom\\n cf245ddebd******\\n webApp\\n a12*******\\n \\n true\\n ","errorExample":""}]', + 'title' => 'RefreshStudioAppTokenOpen', + 'summary' => '调用该接口刷新应用鉴权Token。', + 'description' => '## 限制说明'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'TriggerSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'RegisterDevice' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], + 'schema' => ['description' => '待注册设备所隶属的产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。'."\n" + .'您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'InstanceId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在物联网平台控制台的**边缘计算** > **边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '为待注册的设备命名。设备名称长度为4~32个字符,可以包含英文字母、数字和特殊字符:短划线(-)、下划线(_)、at(@)、半角句号(.)、半角冒号(:)。'."\n" + ."\n" + .'DeviceName通常与ProductKey组合使用,用作设备标识。'."\n" + ."\n" + .'> 如果不传入该参数,则由系统随机生成设备名称。', 'type' => 'string', 'required' => false, 'example' => 'light'], + ], + [ + 'name' => 'DevEui', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN设备的DevEUI。'."\n" + ."\n" + .'创建LoRaWAN设备时,该参数必传。', 'type' => 'string', 'required' => false, 'example' => 'e8SDdgeIlk3nED****'], + ], + [ + 'name' => 'Nickname', + 'in' => 'query', + 'schema' => ['description' => '为待注册的设备设置备注名称。备注名称长度为4~64个字符,可包含中文汉字、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" + ."\n" + .'> 如果不传入该参数,系统不会为设备生成备注名称。', 'type' => 'string', 'required' => false, 'example' => '园区灯'], + ], + [ + 'name' => 'PinCode', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN设备的PIN Code,用于校验DevEUI的合法性。'."\n" + ."\n" + .'创建LoRaWAN设备时,**LoraNodeType**为**ALIYUNDEFINED**,该参数必传。', 'type' => 'string', 'required' => false, 'example' => 'DIe80dfeg*****'], + ], + [ + 'name' => 'JoinEui', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN设备的入网凭证JoinEui。'."\n" + ."\n" + .'创建LoRaWAN设备时,**LoraNodeType**为**USERDEFINED**,该参数必传。', 'type' => 'string', 'required' => false, 'example' => 'Ede4tde8erth****'], + ], + [ + 'name' => 'AppKey', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN设备的AppKey。'."\n" + ."\n" + .'创建LoRaWAN设备时,**LoraNodeType**为**USERDEFINED**,该参数必传。', 'type' => 'string', 'required' => false, 'example' => '674f***'], + ], + [ + 'name' => 'LoraNodeType', + 'in' => 'query', + 'schema' => ['description' => 'LoRaWAN设备类型。可取值:'."\n" + ."\n" + .'- **ALIYUNDEFINED**:阿里云颁发类型,需同时传入**DevEui**和**PinCode**。'."\n" + .'- **USERDEFINED**:用户自定义类型,需同时传入**DevEui**、**JoinEui**和**AppKey**。', 'type' => 'string', 'required' => false, 'example' => 'ALIYUNDEFINED', 'default' => 'ALIYUNDEFINED'], ], ], 'responses' => [ @@ -56778,141 +39810,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '调用成功时,返回注册的设备信息。', + 'type' => 'object', + 'properties' => [ + 'ProductKey' => ['description' => '设备所属产品的ProductKey。', 'type' => 'string', 'example' => 'a1BwAGV****'], + 'DevEui' => ['description' => 'LoRaWAN设备的DevEUI。仅LoRaWAN设备才会返回该参数。', 'type' => 'string', 'example' => 'e8SDdgeIlk3nED****'], + 'DeviceName' => ['description' => '设备名称。'."\n" + ."\n" + .'> 请妥善保管,勿泄露。'."\n" + .'> ', 'type' => 'string', 'example' => 'light'], + 'JoinEui' => ['description' => 'LoRaWAN设备的入网凭证 JoinEUI。仅LoRaWAN设备才会返回该参数。', 'type' => 'string', 'example' => 'Ede4tde8erth****'], + 'DeviceSecret' => ['description' => '设备密钥。'."\n" + ."\n" + .'> 请妥善保管,勿泄露。'."\n" + .'> ', 'type' => 'string', 'example' => 'mz2Canp4GB7qRVf1OYPNtRqB2anu****'], + 'Nickname' => ['description' => '设备的备注名称。'."\n" + .'若您没有为该设备设置备注名称,则该参数返回为空。', 'type' => 'string', 'example' => '园区灯'], + 'IotId' => ['description' => '物联网平台为该设备颁发的设备ID,作为该设备的唯一标识符。'."\n" + ."\n" + .'> 请妥善保管,勿泄露。'."\n" + .'> ', 'type' => 'string', 'example' => '1O4YPNtRqB2anumz2Canp4GB7q****'], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '触发场景联动规则', - 'summary' => '调用该接口触发场景联动规则。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ProductKey\\": \\"a1BwAGV****\\",\\n \\"DevEui\\": \\"e8SDdgeIlk3nED****\\",\\n \\"DeviceName\\": \\"light\\",\\n \\"JoinEui\\": \\"Ede4tde8erth****\\",\\n \\"DeviceSecret\\": \\"mz2Canp4GB7qRVf1OYPNtRqB2anu****\\",\\n \\"Nickname\\": \\"园区灯\\",\\n \\"IotId\\": \\"1O4YPNtRqB2anumz2Canp4GB7q****\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n device1\\n a1rYuVF****\\n tXHf4ezGEHcwdyMwoCDHGBmk9avi****\\n CqXL5h5ysRTA4NxjABjj0010fa****\\n detectors_in_beijing\\n\\n","errorExample":""}]', + 'title' => '在指定产品下注册设备', + 'summary' => '调用该接口在指定产品下注册设备。', + 'description' => '## 接口说明'."\n" + .'注册设备指在物联网平台产品下添加设备。在指定产品下成功注册设备后,阿里云物联网平台为设备颁发全局唯一的设备ID(IotId),用来标识该设备。在进行与设备相关的操作时,您可能需要提供目标设备的IotId。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'您也可以使用ProductKey和DeviceName组合来标识一个设备。其中ProductKey是新建产品时,物联网平台为产品颁发的ProductKey,DeviceName是注册设备时,由您指定或由系统随机生成的设备名称。IotId的优先级高于ProductKey和DeviceName组合。'."\n" + ."\n" + .'如需在同一产品下,批量注册多个设备,请参见[BatchRegisterDeviceWithApplyId接口的使用说明](~~69514~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QuerySummarySceneRuleLog' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:RegisterDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ReleaseEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'RuleId', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - ], - [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则日志的开始时间,单位为秒,输入Unix时间戳。'."\n" - ."\n" - .'> 最多可查询近一个月(30天)的规则执行日志。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1582372973', - ], - ], - [ - 'name' => 'EndTime', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则日志的结束时间,单位为秒,输入Unix时间戳。'."\n" - ."\n" - .'> 最多可查询近一个月(30天)的规则执行日志。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1582373873', - ], - ], - [ - 'name' => 'Status', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则的执行结果。'."\n" - ."\n" - .'- 0:表示失败。'."\n" - ."\n" - .'- 1:表示成功。', - 'type' => 'string', - 'required' => true, - 'example' => '2', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'CurrentPage', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '驱动版本号。', 'type' => 'string', 'required' => true, 'example' => '1.2.0'], ], ], 'responses' => [ @@ -56920,196 +39911,157 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '场景联动规则日志总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '3', - ], - 'LogList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'LogInfo' => [ - 'description' => '场景联动规则日志列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'LogTime' => [ - 'description' => '场景联动规则日志出现的时间。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1582373706', - ], - 'Result' => [ - 'description' => '场景联动规则的执行结果。'."\n" - ."\n" - .'- true:表示成功。'."\n" - ."\n" - .'- false:表示失败。', - 'type' => 'string', - 'example' => 'true', - ], - 'TraceId' => [ - 'description' => '场景联动规则日志的轨迹ID。', - 'type' => 'string', - 'example' => 'a6a5b5df1582373508176121******', - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '3E56BFDF-3F00-495F-89A1-F891930DDB51'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 3,\\n \\"LogList\\": {\\n \\"LogInfo\\": [\\n {\\n \\"LogTime\\": 1582373706,\\n \\"Result\\": \\"true\\",\\n \\"TraceId\\": \\"a6a5b5df1582373508176121******\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 2279A994-3E7D-4EC6-BD17-FA0D0EC2EC77\\r\\n \\r\\n \\r\\n \\r\\n 1582373706\\r\\n a6a5b5df1582373508176121******\\r\\n true\\r\\n \\r\\n \\r\\n 1582373411\\r\\n 90c8f97a1582373433359109******\\r\\n true\\r\\n \\r\\n \\r\\n 1582373408\\r\\n 90c8f97a1582373411302109******\\r\\n true\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 3\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询场景联动规则日志', - 'summary' => '调用该接口查询场景联动规则日志。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3E56BFDF-3F00-495F-89A1-F891930DDB51\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3E56BFDF-3F00-495F-89A1-F891930DDB51\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '发布驱动的某一版本', + 'summary' => '发布驱动的某一版本。', 'description' => '## 限制条件'."\n" .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryDetailSceneRuleLog' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ReleaseEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ReleaseProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductKey', 'in' => 'query', + 'schema' => ['description' => '待发布产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'e5dd1c7aa3994ecdbc88235979******', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '产品发布', + 'summary' => '指定产品的发布。', + 'description' => '## 使用说明'."\n" + ."\n" + .'产品发布成功后,不可调用接口[CreateThingModel](~~150323~~)、[UpdateThingModel](~~151240~~)、[ImportThingModelTSL](~~150320~~)、[PublishThingModel](~~150311~~)、[DeleteThingModel](~~150312~~)、[CopyThingModel](~~150322~~)编辑物模型。如需编辑,请先调用接口[CancelReleaseProduct](~~213875~~)取消产品发布。'."\n" + .' '."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'StartTime', - 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则日志的开始时间,单位为秒,输入Unix时间戳。'."\n" - ."\n" - .'> 最多可查询近一个月(30天)的规则执行日志。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1581917582', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ReleaseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'RemoveThingTopo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'EndTime', + 'AK' => [], + ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ + [ + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则日志的结束时间,单位为秒,输入Unix时间戳。'."\n" - ."\n" - .'> 最多可查询近一个月(30天)的规则执行日志。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1581918482', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'TraceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则日志的轨迹ID。调用[QuerySummarySceneRuleLog](~~169511~~)接口获取该ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'b662a9671581918480168107******', - ], + 'schema' => ['description' => '要删除拓扑关系的设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'PageSize', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'schema' => ['description' => '要删除拓扑关系的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'CurrentPage', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '要删除拓扑关系的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -57117,163 +40069,84 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'ED2DF141-B09A-4C8A-BAA5-30CCEE63036C', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '场景联动规则日志总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'LogList' => [ - 'description' => '场景联动规则日志详情列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。200表示成功,其它表示错误码,详情请参见**Message**参数中的错误信息提示。', - 'type' => 'string', - 'example' => '9201', - ], - 'Message' => [ - 'description' => '接口返回的场景联动规则日志信息。', - 'type' => 'string', - 'example' => 'device offline, productKey: a1c3t****, deviceName: my_device1', - ], - 'PkDn' => [ - 'description' => '场景联动关联的子设备ProductKey和DeviceName。格式为`your_ProductKey/your_DeviceName`。', - 'type' => 'string', - 'example' => 'a1c3t****/my_device1', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '删除拓扑关系的结果。'."\n" + ."\n" + .'- **true**:删除成功。'."\n" + .'- **false**:删除失败。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"ED2DF141-B09A-4C8A-BAA5-30CCEE63036C\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"LogList\\": [\\n {\\n \\"Code\\": \\"9201\\",\\n \\"Message\\": \\"device offline, productKey: a1c3t****, deviceName: my_device1\\",\\n \\"PkDn\\": \\"a1c3t****/my_device1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ED2DF141-B09A-4C8A-BAA5-30CCEE63036C\\r\\n \\r\\n \\r\\n \\r\\n a1c3t****/my_device1\\r\\n device offline, productKey: a1c3****, deviceName: my_device1\\r\\n 9201\\r\\n \\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查看场景联动规则日志的详细信息', - 'summary' => '查看场景联动规则日志的详细信息 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\ntrue\\n098BEEF4-58F4-4181-A891-5D37DB6C4C3B\\ntrue\\n","errorExample":""}]', + 'title' => '移除网关与子设备的拓扑关系', + 'summary' => '调用该接口移除网关与子设备的拓扑关系。', + 'description' => '## 使用说明'."\n" + .'- 如果传入的设备信息是网关设备,则移除该网关与其下所有子设备的拓扑关系。'."\n" + .'- 如果传入的设备信息是子设备,则移除该子设备与其关联网关的拓扑关系。'."\n" + .'- 如果网关设备的子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RemoveThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ReplaceEdgeInstanceGateway' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'Name', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例名称。'."\n" - .'支持中文汉字、英文大小写、数字、下划线(_)和短划线(-),不超过20个字符(一个中文汉字算2个字符)。', - 'type' => 'string', - 'required' => true, - 'example' => 'LinkIoTEdge_Node', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'G4TGWGYwpo8zwr******'], ], [ - 'name' => 'Tags', + 'name' => 'CurrentGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例标签。每个标签由`key:value`组成,多个标签间以英文逗号隔开。如`k1:v1,k2:v2`。'."\n" - .'- 标签key限制如下: '."\n" - .' - 不可为空。'."\n" - .' - 在该边缘实例中唯一。'."\n" - .' - 仅支持英文大小写。'."\n" - .' - 不可超过20个字符。'."\n" - .'- 标签value限制如下:'."\n" - .' - 不可为空。'."\n" - .' - 支持中文、英文大小写、数字、下划线(_)和短划线(-)。'."\n" - .' - 不可超过20个字符(一个中文汉字算2个字符)。', - 'type' => 'string', - 'required' => false, - 'example' => 'k1:v1,k2:v2', - ], + 'schema' => ['description' => '当前网关设备的IotId。IotId是物联网平台为设备生成的唯一标识符。可调用[QueryDevice](~~69905~~)接口查询。', 'type' => 'string', 'required' => true, 'example' => 'oTCJomvT95WPyPPQ5sje******'], ], [ - 'name' => 'Spec', + 'name' => 'NewGatewayId', 'in' => 'query', - 'schema' => [ - 'description' => '产品规格。'."\n" - .'- 10:轻量版。'."\n" - .'- 20:标准版。'."\n" - .'- 30:专业版。'."\n" - ."\n" - .'默认值为20(标准版)。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - ], + 'schema' => ['description' => '要替换的新网关设备的IotId。IotId是物联网平台为设备生成的唯一标识符。可调用[QueryDevice](~~69905~~)接口查询。', 'type' => 'string', 'required' => true, 'example' => '65SkFyhZcU5d3PO2Ri13******'], ], ], 'responses' => [ @@ -57281,85 +40154,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'InstanceId' => [ - 'description' => '边缘实例ID。', - 'type' => 'string', - 'example' => 'F3APY0tPLhmgGtx0****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '10E5C856-E0A1-4468-BE01-E540A8BA8819'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"InstanceId\\": \\"F3APY0tPLhmgGtx0****\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 28D159F4-980F-423D-95F0-F705E9DFC016\\r\\n F3APY0tPLhmgGtx0****\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建边缘实例', - 'summary' => '创建边缘实例。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"10E5C856-E0A1-4468-BE01-E540A8BA8819\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 10E5C856-E0A1-4468-BE01-E540A8BA8819\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '替换已绑定到边缘实例网关', + 'summary' => '替换已绑定到边缘实例的网关。替换网关后,原网关的部署状态和部署历史会被清除。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + ."\n" + .'- 替换网关前,必须先在物联网平台控制台的**边缘计算** > **边缘实例**> **实例详情**页面重置边缘实例。'."\n" + ."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .' > RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ReplaceEdgeInstanceGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'RerunJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '设备任务ID。任务的全局唯一标识符。'."\n" + ."\n" + .'您可在物联网平台控制台的**设备管理 > 任务**页面,查看任务ID。'."\n" + ."\n\n" + ."\n", 'type' => 'string', 'required' => true, 'example' => '450407b***'], ], ], 'responses' => [ @@ -57367,143 +40230,83 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'F29C33E5-BF22-48FE-9FEF-8A24146E3388', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD'], + 'Success' => ['description' => '表示接口调用是否成功。'."\n" + ."\n" + .'- **true**:调用成功,表示设备作业已重新执行。'."\n" + .'- **false**:调用失败,表示设备作业未重新执行。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"F29C33E5-BF22-48FE-9FEF-8A24146E3388\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n F29C33E5-BF22-48FE-9FEF-8A24146E3388\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除边缘实例', - 'summary' => '删除边缘实例。', - 'description' => '单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"A6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nA6BEAB33-03E6-4CE0-A94F-9E24C5512BAD\\ntrue\\n","errorExample":""}]', + 'title' => '重新执行任务', + 'summary' => '重新执行指定设备任务下,所有已超时和失败的设备作业。', + 'description' => '## 使用说明'."\n" + .'仅支持指定已完成或已超时状态的设备任务。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + .'已完成状态设备任务,表示该任务下所有作业已执行完成。已执行完成作业状态如下:'."\n" + ."\n" + .'- **FAILED**:已失败。'."\n" + .'- **REJECTED**:已拒绝。'."\n" + .'- **TIMED_OUT**:已超时。'."\n" + .'- **SUCCEEDED**:已成功。'."\n" + .'- **CANCELLED**:已取消。'."\n" + ."\n" + .'> 若设备任务下所有作业执行状态为已成功,调用本接口无法重新执行设备任务。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RerunJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ResetConsumerGroupPosition' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], - ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例名称。'."\n" - .'支持中文汉字、英文大小写、数字、下划线(_)和短划线(-),不超过20个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'LinkIoTEdge_Node', - ], - ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例标签。每个标签由`key:value`组成,多个标签间以英文逗号隔开。例如`k1:v1,k2:v2`。'."\n" - .'- 标签key限制如下: '."\n" - .' - 不可为空。'."\n" - .' - 在该边缘实例中唯一。'."\n" - .' - 仅支持英文大小写。'."\n" - .' - 不可超过20个字符。'."\n" - .'- 标签value限制如下:'."\n" - .' - 不可为空。'."\n" - .' - 支持中文、英文大小写、数字、下划线(_)和短划线(-)。'."\n" - .' - 不可超过20个字符(一个中文汉字算2个字符)。'."\n" - ."\n" - .'为空时表示不更新该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'k1:v1,k2:v2', - ], - ], - [ - 'name' => 'Spec', - 'in' => 'query', - 'schema' => [ - 'description' => '产品规格。'."\n" - .'- 10:轻量版。'."\n" - .'- 20:标准版。'."\n" - .'- 30:专业版。'."\n" - ."\n" - .'为空时表示不更新该参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '10', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'BizEnable', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '是否开启边缘实例。可选值:'."\n" - ."\n" - .'- true:开启。'."\n" - .'- false:关闭。'."\n" - ."\n" - .'为空时表示不更新该参数。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'true', - ], + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGf******'], ], ], 'responses' => [ @@ -57511,80 +40314,75 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新边缘实例', - 'summary' => '更新边缘实例。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '清空某个消费组的堆积消息', + 'summary' => '使用AMQP服务端订阅时,调用该接口清空某个消费组的堆积消息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ResetConsumerGroupPosition', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ResetDeviceTimeline' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'InstanceId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '设备名称。', 'type' => 'string', 'required' => true, 'example' => 'light'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64******'], ], ], 'responses' => [ @@ -57592,210 +40390,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '16645053-546B-4D7C-832E-E519B0E23CF1', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建边缘实例的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '边缘实例授权类型。'."\n" - ."\n" - .'- 0:自有实例'."\n" - ."\n" - .'- 1:授权实例', - 'type' => 'string', - 'example' => '0', - ], - 'RoleArn' => [ - 'description' => '授权角色的全局资源描述符。', - 'type' => 'string', - 'example' => 'acs:ram::1473922805******:role/aliyuniotaccessingfcrole', - ], - 'Spec' => [ - 'description' => '产品规格。'."\n" - ."\n" - .'- 10:轻量版。'."\n" - .'- 20:标准版。'."\n" - .'- 30:专业版。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'RoleAttachTime' => [ - 'description' => '角色绑定时间。', - 'type' => 'string', - 'example' => '2020-02-19 11:25:48', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新边缘实例的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Tags' => [ - 'description' => '边缘实例标签,标签由`key:value`组成,多个标签以英文逗号隔开,例如`k1:v1,k2:v2`。', - 'type' => 'string', - 'example' => 'k1:v1,k2:v2', - ], - 'InstanceId' => [ - 'description' => '边缘实例ID。', - 'type' => 'string', - 'example' => 'F3APY0tPLhmgGtx0****', - ], - 'RoleName' => [ - 'description' => '授权角色名称。', - 'type' => 'string', - 'example' => 'AliyunIOTAccessingFCRole', - ], - 'RoleAttachTimestamp' => [ - 'description' => '角色绑定的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '最后一次更新边缘实例的时间。', - 'type' => 'string', - 'example' => '2019-06-26 12:33:25', - ], - 'LatestDeploymentType' => [ - 'description' => '边缘实例最近一次部署单的类型。'."\n" - ."\n" - .'- deploy:部署。'."\n" - .'- reset:重置。', - 'type' => 'string', - 'example' => 'deploy', - ], - 'LatestDeploymentStatus' => [ - 'description' => '边缘实例最近一次部署单的状态。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 1:正在进行(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'BizEnable' => [ - 'description' => '边缘实例是否开启。'."\n" - ."\n" - .'- true:开启。'."\n" - .'- false:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'GmtCreate' => [ - 'description' => '创建边缘实例的时间。', - 'type' => 'string', - 'example' => '2019-06-26 12:33:25', - ], - 'Name' => [ - 'description' => '边缘实例名称。', - 'type' => 'string', - 'example' => '测试实例new', - ], - ], - ], + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.device.NotExistedDevice'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'device not found.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"16645053-546B-4D7C-832E-E519B0E23CF1\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"0\\",\\n \\"RoleArn\\": \\"acs:ram::1473922805******:role/aliyuniotaccessingfcrole\\",\\n \\"Spec\\": 30,\\n \\"RoleAttachTime\\": \\"2020-02-19 11:25:48\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Tags\\": \\"k1:v1,k2:v2\\",\\n \\"InstanceId\\": \\"F3APY0tPLhmgGtx0****\\",\\n \\"RoleName\\": \\"AliyunIOTAccessingFCRole\\",\\n \\"RoleAttachTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 12:33:25\\",\\n \\"LatestDeploymentType\\": \\"deploy\\",\\n \\"LatestDeploymentStatus\\": 2,\\n \\"BizEnable\\": true,\\n \\"GmtCreate\\": \\"2019-06-26 12:33:25\\",\\n \\"Name\\": \\"测试实例new\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 16645053-546B-4D7C-832E-E519B0E23CF1\\r\\n \\r\\n 2019-06-26 12:33:25\\r\\n true\\r\\n F3APY0tPLhmgGtx0****\\r\\n deploy\\r\\n 2019-06-26 16:16:22\\r\\n 30\\r\\n k1:v1,k2:v2\\r\\n 测试实例new\\r\\n 2\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '获取边缘实例详情', - 'summary' => '获取边缘实例详情。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.device.NotExistedDevice', 'errorMessage' => 'device not found.', 'description' => ''], + ['errorCode' => 'iot.common.AuthActionPermissionDeny', 'errorMessage' => 'auth action permission deny.', 'description' => ''], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.%s.', 'description' => '非法的请求参数,%s。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.device.NotExistedDevice\\",\\n \\"ErrorMessage\\": \\"device not found.\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'ResetDeviceTimeline', + 'summary' => '调用该接口删除指定设备下已存储的时序数据。', + 'description' => '## 使用说明'."\n" + .'目前,本接口仅支持白名单用户调用。请提交工单申请。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ResetDeviceTimeline', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ResetThing' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'PageSize', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'schema' => ['description' => '要重置的设备所属的产品ProductKey。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1KiV******'], ], [ - 'name' => 'CurrentPage', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '指定重置的设备的名称。'."\n" + ."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'device1'], ], [ - 'name' => 'Name', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例名称。', - 'type' => 'string', - 'required' => false, - 'example' => '测试实例_test', - ], + 'schema' => ['description' => '要重置的设备ID。'."\n" + ."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,与**ProductKey**和**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'SR8FiTu1R9tlUR2V1bmi0010a5****'], ], ], 'responses' => [ @@ -57803,253 +40489,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '199BBC5D-FC99-46CB-88E2-FB98E92446FA', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Total' => [ - 'description' => '边缘实例数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '201', - ], - 'InstanceList' => [ - 'description' => '边缘实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建边缘实例的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '边缘实例授权类型。'."\n" - ."\n" - .'- 0:自有实例'."\n" - .'- 1:授权实例', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'RoleArn' => [ - 'description' => '授权角色的全局资源描述符。', - 'type' => 'string', - 'example' => 'acs:ram::1473922805******:role/aliyuniotaccessingfcrole', - ], - 'RoleAttachTime' => [ - 'description' => '角色绑定时间。', - 'type' => 'string', - 'example' => '2020-02-19 11:25:48', - ], - 'Spec' => [ - 'description' => '产品规格。'."\n" - ."\n" - .'- 10:轻量版。'."\n" - .'- 20:标准版。'."\n" - .'- 30:专业版。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新边缘实例的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Tags' => [ - 'description' => '边缘实例标签。', - 'type' => 'string', - 'example' => 'k1:v1,k2:v2', - ], - 'InstanceId' => [ - 'description' => '边缘实例ID。', - 'type' => 'string', - 'example' => '9iqyQAKDb2aYGVKa****', - ], - 'RoleName' => [ - 'description' => '授权角色名称。', - 'type' => 'string', - 'example' => 'AliyunIOTAccessingFCRole', - ], - 'RoleAttachTimestamp' => [ - 'description' => '角色绑定的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '最后一次更新边缘实例的时间。', - 'type' => 'string', - 'example' => '2019-07-17 14:51:38', - ], - 'LatestDeploymentType' => [ - 'description' => '边缘实例最近一次部署单类型。'."\n" - ."\n" - .'- deploy:部署。'."\n" - .'- reset:重置。', - 'type' => 'string', - 'example' => 'deploy', - ], - 'LatestDeploymentStatus' => [ - 'description' => '边缘实例最近一次部署单状态。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 1:正在进行(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'BizEnable' => [ - 'description' => '边缘实例是否开启。'."\n" - ."\n" - .'- true:开启。'."\n" - .'- false:关闭。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'GmtCreate' => [ - 'description' => '创建边缘实例的时间。', - 'type' => 'string', - 'example' => '2019-07-17 14:34:28', - ], - 'Name' => [ - 'description' => '边缘实例名称。', - 'type' => 'string', - 'example' => 'test_le1', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '是否调用成功。**true**表示调用成功,**false**表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'JobId' => ['description' => '设备任务ID,设备任务的全局唯一标识符。', 'type' => 'string', 'example' => '450407b***'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"199BBC5D-FC99-46CB-88E2-FB98E92446FA\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 201,\\n \\"InstanceList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 0,\\n \\"RoleArn\\": \\"acs:ram::1473922805******:role/aliyuniotaccessingfcrole\\",\\n \\"RoleAttachTime\\": \\"2020-02-19 11:25:48\\",\\n \\"Spec\\": 30,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Tags\\": \\"k1:v1,k2:v2\\",\\n \\"InstanceId\\": \\"9iqyQAKDb2aYGVKa****\\",\\n \\"RoleName\\": \\"AliyunIOTAccessingFCRole\\",\\n \\"RoleAttachTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-07-17 14:51:38\\",\\n \\"LatestDeploymentType\\": \\"deploy\\",\\n \\"LatestDeploymentStatus\\": 1,\\n \\"BizEnable\\": true,\\n \\"GmtCreate\\": \\"2019-07-17 14:34:28\\",\\n \\"Name\\": \\"test_le1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 199BBC5D-FC99-46CB-88E2-FB98E92446FA\\r\\n \\r\\n 2\\r\\n 1\\r\\n 201\\r\\n \\r\\n \\r\\n 2019-07-17 14:34:28\\r\\n true\\r\\n 9iqyQAKDb2aYGVKa****\\r\\n 2019-07-17 14:51:38\\r\\n 20\\r\\n test_le1\\r\\n \\r\\n \\r\\n 2018-10-22 20:09:29\\r\\n true\\r\\n ZpbCxkQpbb2kpmm0****\\r\\n reset\\r\\n 2019-07-16 16:50:50\\r\\n 30\\r\\n test_le1\\r\\n 1\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询当前账号下的所有边缘实例', - 'summary' => '查询当前账号下的所有边缘实例 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true,\\n \\"JobId\\": \\"450407b***\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 57b144cf-09fc-4916-a272-a62902d5b207\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '重置设备', + 'summary' => '重置指定设备,重置直连设备一型一密状态,同时删除当前设备的拓扑关系。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 如果直连设备通过动态注册获取设备证书信息(ProductKey、DeviceName和DeviceSecret)并激活后,您可调用本接口,重置设备的动态注册状态为未注册,然后再次通过动态注册获取设备证书信息。'."\n" + .' > 调用本接口是重置设备动态注册状态,不是重置设备激活状态,即物联网平台控制台对应设备的状态不会重置为未激活。'."\n" + ."\n" + .'- 如果指定设备是网关设备,且其子设备数量超过2000个,调用本接口会创建删除设备拓扑关系的设备任务,以异步方式删除拓扑关系,并返回参数**JobId** (任务ID)。您可通过调用接口[QueryJob](~~198577~~),查看任务执行结果。'."\n" + ."\n\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BindGatewayToEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ResetThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'RetrySoundCodeLabelBatch' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], - ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。'."\n" - ."\n" - .'> 如果传入此参数,需同时传入**DeviceName**。', - 'type' => 'string', - 'required' => false, - 'example' => 'a1mAdeG****', - ], - ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关设备名称。'."\n" - ."\n" - .'> 如果传入此参数,需同时传入**ProductKey**。', - 'type' => 'string', - 'required' => false, - 'example' => 'device1', - ], + 'name' => 'BatchCode', + 'in' => 'formData', + 'schema' => ['description' => '批次唯一标识,可通过[QuerySoundCodeLabelBatchList](~~424329~~)接口查询批次列表得到。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'IotId', - 'in' => 'query', - 'schema' => [ - 'description' => '网关设备的ID,物联网平台为设备生成的唯一标识符,与**ProductKey**和**DeviceName**组合一一对应。'."\n" - ."\n" - .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**;如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', - 'type' => 'string', - 'required' => false, - 'example' => '4z819VQHk6VSLmmBJfrf0010******', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -58057,79 +40567,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E3817065-2A17-4814-82FA-66FAB2CC01DF\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '将网关分配到边缘实例中', - 'summary' => '将网关分配到边缘实例中 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidParam', 'errorMessage' => 'invalid param', 'description' => '无效的参数'], + ['errorCode' => 'iot.soundcode.LabelBatchNotExists', 'errorMessage' => 'sound code label batch not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.LabelBatchCanNotBeRetried', 'errorMessage' => 'label batch can not be retried', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'RetrySoundCodeLabelBatch', + 'summary' => '调用该接口重启声码标签批次。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceGateway' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:RetrySoundCodeLabelBatch', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'ReupgradeOTATask' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['description' => '升级批次ID。'."\n" + .'您调用[CreateOTAStaticUpgradeJob](~~147496~~)或[CreateOTADynamicUpgradeJob](~~147887~~)创建批次任务返回的**JobId**。'."\n" + ."\n" + .'您也可以在物联网平台控制台上OTA升级包的**升级包详情**页面查看**批次ID**。', 'type' => 'string', 'required' => true, 'example' => '7glPHmaDYLAYMD1HHutT02****'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64***'], ], [ - 'name' => 'InstanceId', + 'name' => 'TaskId', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', + 'description' => '待重新升级的设备升级作业ID。传入**TaskId**个数范围为1~10个。', + 'type' => 'array', + 'items' => ['type' => 'string', 'required' => false, 'description' => ''], 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', + 'example' => 'y3tOmCDNgpR8F9jnVEzC01****', + 'maxItems' => 10, ], ], ], @@ -58138,143 +40665,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'GatewayList' => [ - 'description' => '调用成功时,返回的网关数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'example' => 'a1mAdeG****', - ], - 'EdgeVersion' => [ - 'description' => '边缘服务版本号。', - 'type' => 'string', - 'example' => 'v1.0.0', - ], - 'DeviceName' => [ - 'description' => '网关设备名称。', - 'type' => 'string', - 'example' => 'gateway_01', - ], - 'IotId' => [ - 'description' => '网关设备的ID,物联网平台为设备生成的唯一标识符。', - 'type' => 'string', - 'example' => 'LuD9x5hiRUdVemWU****000101', - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '291438BA-6E10-4C4C-B761-243B9A0D324F'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'false'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true,\\n \\"GatewayList\\": [\\n {\\n \\"ProductKey\\": \\"a1mAdeG****\\",\\n \\"EdgeVersion\\": \\"v1.0.0\\",\\n \\"DeviceName\\": \\"gateway_01\\",\\n \\"IotId\\": \\"LuD9x5hiRUdVemWU****000101\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n LuD9x5hiRUdVemWU****000101\\r\\n a1mAdeG****\\r\\n gateway_01\\r\\n v1.0.0\\r\\n \\r\\n \\r\\n 547A62E5-0D6D-4DB5-9CCC-58C706891976\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例中的网关', - 'summary' => '查询边缘实例中的网关。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BindDriverToEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.ota.FirmwareNotVerified', 'errorMessage' => 'The firmware validation is not completed.', 'description' => '升级包未验证完成,无法发起重升级。'], + ['errorCode' => 'iot.ota.NotFirmwareOwner', 'errorMessage' => 'The user is not owner of firmware.', 'description' => '该用户不是升级包拥有者。'], + ['errorCode' => 'iot.ota.UnmatchedJob', 'errorMessage' => 'The jobId and taskId do not match.', 'description' => '升级批次Id和升级作业Id不匹配。'], + ['errorCode' => 'iot.ota.JobCanceled', 'errorMessage' => 'The job has already been canceled.', 'description' => '升级批次已被取消。'], + ['errorCode' => 'iot.ota.InvalidJobId', 'errorMessage' => 'The job is not existed.', 'description' => '升级批次不存在。'], + ['errorCode' => 'iot.ota.InvalidFirmwareUid', 'errorMessage' => 'The firmware is not exist.', 'description' => '升级包不存在。'], + ['errorCode' => 'iot.ota.InvalidTaskId', 'errorMessage' => 'The tasks are not existed.', 'description' => '升级作业不存在。'], + ['errorCode' => 'iot.ota.FailedTaskNotFound', 'errorMessage' => 'There are no failed tasks.', 'description' => '升级批次下没有升级失败或取消的升级作业。'], + ['errorCode' => 'iot.ota.InvalidTaskExist', 'errorMessage' => 'The taskId list contains at least an invalid task.', 'description' => '升级作业列表中至少包含有一个不是升级失败或升级取消的作业。'], + ['errorCode' => 'iot.ota.DeviceNotReUpgraded', 'errorMessage' => 'There is no device can upgrade.', 'description' => '没有可以重升级的设备。'], + ['errorCode' => 'iot.ota.DeviceNotExist', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在。'], + ['errorCode' => 'iot.ota.TooManyOtaTask', 'errorMessage' => 'There are too many tasks in parameters.', 'description' => '参数TaskId个数超出限制。'], + ], ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"291438BA-6E10-4C4C-B761-243B9A0D324F\\",\\n \\"Success\\": false\\n}","errorExample":""},{"type":"xml","example":"\\n291438BA-6E10-4C4C-B761-243B9A0D324F\\ntrue\\n","errorExample":""}]', + 'title' => 'ReupgradeOTATask', + 'summary' => '调用该接口重新升级指定批次下升级失败或升级取消的设备升级作业。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], + ], + 'SaveDeviceProp' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '设备所属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'DriverId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc959228****', - ], + 'schema' => ['description' => '设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'DriverVersion', + 'name' => 'Props', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。为空则默认为最新版本驱动。', - 'type' => 'string', - 'required' => false, - 'example' => '2.0.0', - ], + 'schema' => ['description' => '要设置的设备标签,支持设置多个标签。'."\n" + ."\n" + .'设备标签是JSON格式,每个标签的具体结构为:**Key:Value**。**Key**是标签名称,**Value**是对应的标签值。'."\n" + ."\n" + .'多个标签使用半角逗号隔开,例如**Props={"color":"red","shape":"round"}**。'."\n" + ."\n" + .' > '."\n" + .'- **Props**的总大小不超过5 KB。'."\n" + .'- `abc`为物联网平台系统保留的标签**Key**,即标签**Key**不能设置为abc。若设置`Key=abc`,使用标签检索时会直接被过滤。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '{"color":"red"}'], ], [ - 'name' => 'OrderId', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '订单编号。'."\n" - ."\n" - .'> 当驱动为已购驱动时必填;驱动为官方驱动或自研驱动时不需要填写。', - 'type' => 'string', - 'required' => false, - 'example' => '11123458765****', - ], + 'schema' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> 如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], ], 'responses' => [ @@ -58282,92 +40767,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n FEA6A369-2E16-4DB3-A0A6-6D14FD244170\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '将驱动分配到边缘实例中', - 'summary' => '将驱动分配到边缘实例中。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => '为指定设备设置标签', + 'summary' => '调用该接口为指定设备设置标签。', + 'description' => '## 使用说明'."\n" + ."\n" + .' - 单个设备的设备标签总数不超过100个。'."\n" + .' - 单次修改或新增的设备标签数不超过100个。'."\n" + ."\n\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnbindDriverFromEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SaveDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SaveScript' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'InstanceId', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999', 'minimum' => '0', 'example' => '1001'], ], [ - 'name' => 'DriverId', + 'name' => 'ScriptDraft', 'in' => 'query', - 'schema' => [ - 'description' => '要移除的驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc959228****', - ], + 'schema' => ['description' => '解析器脚本。', 'type' => 'string', 'required' => true, 'example' => 'var data = payload("json")'], ], ], 'responses' => [ @@ -58375,102 +40849,125 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B15AF459-6A65-44DB-8047-1BDF3E68BE3D\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '将驱动从边缘实例中移除', - 'summary' => '调用该接口将驱动从边缘实例中移除。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.EmptyScriptDraft', 'errorMessage' => 'The script draft is empty', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.ScriptLengthExceeds', 'errorMessage' => 'The length of script is exceeded', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'SaveScript', + 'summary' => '调用该接口编辑并保存解析器的脚本草稿。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SaveScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetDeviceDesiredProperty' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '要设置期望属性值的设备所隶属的产品ProductKey。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '要设置期望属性值的设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'light'], ], [ - 'name' => 'PageSize', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '要设置期望属性值的设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>'."\n", 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'Versions', + 'in' => 'query', + 'schema' => ['description' => '当前期望属性值版本,组成为Key:Value,数据格式为JSON String,例如{"Temperature":2}。'."\n" + ."\n" + .'- **Key**取值为属性的标识符(identifier)。可在控制台中,设备所属产品的功能定义中查看属性的identifier。'."\n" + ."\n" + .' > 一次调用中,key的取值(即属性的identifier)不能重复。'."\n" + ."\n" + .'- **Value**取值为当前期望属性值的版本号。'."\n" + ."\n" + .' 首次设置期望属性值时,指定该参数值为0。首次设置期望属性值后,期望值版本号为1。以后每次设置期望值后,物联网平台自动将期望值版本加1(即第二次设置期望属性值时,指定该参数值为1。设置成功后,版本号自动变为2;第三次设置时,指定该参数值为2。设置成功后,版本号自动变为3;以此类推)。'."\n" + .' > 如果传入的版本号与当前版本不符,服务器将拒绝此次请求。若您不确定当前期望值的版本号,可以不传入版本号,但仍需传入有效的JSON,即传入{}。', 'type' => 'string', 'required' => true, 'example' => '{"Temperature":2}'], + ], + [ + 'name' => 'Items', + 'in' => 'query', + 'schema' => ['description' => '要设置的期望属性值,组成为属性的**Key:Value**,数据格式为JSON String,例如**{"Temperature":35}**。最多可输入10个期望属性值。'."\n" + ."\n" + .'- **Key**取值为属性的标识符(**identifier**)。可在控制台中,设备所属产品的**功能定义**中查看;或调用[QueryThingModel](~~150321~~),从返回的物模型数据中查看。'."\n" + ."\n" + .' 如果是自定义(非默认)模块testFb下属性temperature,则参数值为**{"testFb:temperature":35}**。'."\n" + ."\n" + .' > 指定属性必须是读写型。如果您指定了一个只读型的属性,设置将会失败。并且, 一次调用中,不能传入重复的属性标识符。'."\n" + .' '."\n" + ."\n\n" + .'- **Value**取值为要设置的期望属性值。取值需符合您为该属性定义的数据类型和取值范围。'."\n" + ."\n" + .' > 若属性值设置为null,则表示清空期望属性值。'."\n", 'type' => 'string', 'required' => true, 'example' => '{"Temperature":35}'], ], ], 'responses' => [ @@ -58478,188 +40975,111 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '77F540BC-A0EF-46A4-ABDE-18644C69AAF5', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的数据。', + 'description' => '调用成功时,返回的数据。详情请参见以下参数。', 'type' => 'object', 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '30', - ], - 'Total' => [ - 'description' => '驱动数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DriverList' => [ - 'description' => '驱动列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreate' => [ - 'description' => '驱动创建时间。', - 'type' => 'string', - 'example' => '2019-06-26 17:22:25', - ], - 'GmtModified' => [ - 'description' => '驱动最后一次更新时间。', - 'type' => 'string', - 'example' => '2019-06-26 17:22:25', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => '9c1ae7bd59f1469abbdccc959228****', - ], - 'OrderId' => [ - 'description' => '订单编号。', - 'type' => 'string', - 'example' => '11123458765423', - ], - 'DriverVersion' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'example' => '1.0.0', - ], - ], - ], - ], + 'MessageId' => ['description' => '云端下发给设备的设置期望属性值的消息ID。', 'type' => 'string', 'example' => '300511751'], + 'Versions' => ['description' => '本次设置期望属性值后,期望属性值的当前版本号。', 'type' => 'string', 'example' => '{\\"Temperature\\":2}'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"77F540BC-A0EF-46A4-ABDE-18644C69AAF5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 30,\\n \\"Total\\": 1,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreate\\": \\"2019-06-26 17:22:25\\",\\n \\"GmtModified\\": \\"2019-06-26 17:22:25\\",\\n \\"DriverId\\": \\"9c1ae7bd59f1469abbdccc959228****\\",\\n \\"OrderId\\": \\"11123458765423\\",\\n \\"DriverVersion\\": \\"1.0.0\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 77F540BC-A0EF-46A4-ABDE-18644C69AAF5\\r\\n \\r\\n 30\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n 2019-06-26 17:22:25\\r\\n 9c1ae7bd59f1469abbdccc959228****\\r\\n 2019-06-26 17:22:25\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例的驱动列表', - 'summary' => '查询边缘实例的驱动列表 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"300511751\\",\\n \\"Versions\\": \\"{\\\\\\\\\\\\\\"Temperature\\\\\\\\\\\\\\":2}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n\\n 300511751\\n {\\"LightAdjustLevel\\":2}\\n\\nAADE79D2-B328-4FC6-A3E0-34BB23BCA440\\ntrue\\n","errorExample":""}]', + 'title' => '为指定设备批量设置期望属性值', + 'summary' => '调用该接口为指定设备批量设置期望属性值。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 只读属性不支持设置期望属性值。'."\n" + .'- 一次调用最多可设置10个期望属性值。'."\n" + .'- 设备创建后,期望属性值的版本(**Version**)为**0**。首次设置期望属性值时,如果指定**Version**参数,则需指定**Version**值为**0**。'."\n" + ."\n" + .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + .'>'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'SetEdgeInstanceDriverConfigs' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetDeviceGroupTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '分组ID,分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'W16X8Tvdosec****'], ], [ - 'name' => 'DriverId', + 'name' => 'TagString', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '021d154d2a2f4dd7a489773d9e04****', - ], + 'schema' => ['description' => 'JSON格式的标签数据。TagString由标签的**tagKey**和**tagValue**组成,**tagKey**和**tagValue**均不能为空。'."\n" + .'- **tagKey**:标签键。可包含英文大小写字母,数字和英文句号(.),长度在2~30字符之间。'."\n" + .'- **tagValue**:标签值。可包含中文、英文字母、数字、下划线(_)和短划线(-)。长度不可超过128个字符。一个中文汉字算2个字符。'."\n" + ."\n" + .'多个标签以英文逗号间隔。例如`[{"tagKey":"h1","tagValue":"rr"},{"tagKey":"7h","tagValue":"rr"}]`。'."\n" + ."\n" + .'若更新已有标签,新的标签Value值将覆盖原来的值。'."\n" + ."\n" + .'若要删除某个标签,则不传入该标签的Key和Value即可。'."\n" + ."\n" + .'>`abc`为物联网平台系统保留的标签Key,即**tagKey**不能设置为abc。若设置`tagKey=abc`,使用标签检索时会直接被过滤。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '[{"tagKey":"h1","tagValue":"rr"},{"tagKey":"7h","tagValue":"rr"}]'], ], [ - 'name' => 'Configs', + 'name' => 'GroupType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'key1', - ], - 'Format' => [ - 'description' => '配置文件格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'required' => true, - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容,可以选择传入:'."\n" - ."\n" - .'- 配置内容文本。格式请参见[驱动与设备信息配置](~~120906~~)内容。'."\n" - .'- 存储配置文件的阿里云对象存储(OSS)地址。', - 'type' => 'string', - 'required' => true, - 'example' => '{"test":123}', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, - ], + 'schema' => ['description' => '分组类型。'."\n" + ."\n" + .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。'."\n" + ."\n" + .'无需传入。'."\n", 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM_DYNAMIC'], ], ], 'responses' => [ @@ -58667,192 +41087,115 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '252C7754-F6A2-454B-9DE2-382A97FC0C3F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '12CFDAF1-99D9-42E0-8C2F-F281DA5E8953'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"252C7754-F6A2-454B-9DE2-382A97FC0C3F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 252C7754-F6A2-454B-9DE2-382A97FC0C3F\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'SetEdgeInstanceDriverConfigs', - 'summary' => '调用该接口配置边缘实例驱动。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"12CFDAF1-99D9-42E0-8C2F-F281DA5E8953\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 12CFDAF1-99D9-42E0-8C2F-F281DA5E8953\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '添加、更新、或删除分组标签', + 'summary' => '批量增加、更新或者删除设备分组标签。', + 'description' => '## 使用说明'."\n" + .'单个分组最多可有100个标签。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ClearEdgeInstanceDriverConfigs' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceGroupTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetDeviceProperty' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-v64*****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'DriverId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '021d154d2a2f4dd7a489773d9e04****', - ], - ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n DF6B728B-ADD7-4C41-88C3-D21B4CA82CF1\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '清空边缘实例驱动配置', - 'summary' => '清空边缘实例驱动配置。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchGetEdgeInstanceDriverConfigs' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + 'schema' => ['description' => '设备名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'light'], ], - ], - 'systemTags' => [ - 'operationType' => 'get', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '设备ID。物联网平台为该设备颁发的ID,设备的唯一标识符。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], ], [ - 'name' => 'InstanceId', + 'name' => 'Items', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '要设置的属性信息,数据格式为JSON。'."\n" + ."\n" + .'每个属性信息由标识符与属性值 (key:value) 构成,多个属性用英文逗号隔开。'."\n" + ."\n" + .'例如,设置智能灯的如下两个属性:'."\n" + ."\n" + .'- 标识符为**Switch**的开关属性,数据类型为**Bool**,设置值为**1**(开)。'."\n" + ."\n" + .'- 标识符为**Color**的灯颜色属性,数据类型为**String**,设置值为**blue**。'."\n" + ."\n" + .'那么要设置的属性信息,JSON格式如下:'."\n" + ."\n" + .'`Items={"Switch":1,"Color":"blue"}`'."\n" + ."\n" + .'> 如果设置自定义模块testFb(非默认模块)的属性,则格式为:`Items={"testFb:Switch":1,"testFb:Color":"blue"}`', 'type' => 'string', 'required' => true, 'example' => '{"Switch":1,"Color":"blue"}'], ], [ - 'name' => 'DriverIds', + 'name' => 'Qos', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要查询的驱动ID列表。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。'."\n" - ."\n" - .'> 最多可传入20个驱动ID,即最多可批量获取20个驱动的配置。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '021d154d2a2f4dd7a489773d9e04****', - 'maxItems' => 21, - ], + 'schema' => ['description' => '指定调用本接口时,消息的发送方式。取值:'."\n" + ."\n" + .'- **0**(默认):最多发送一次。'."\n" + .'- **1**:最少发送一次。如果QoS=1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1', 'minimum' => '0', 'example' => '1', 'default' => '0'], ], ], 'responses' => [ @@ -58860,152 +41203,116 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'D6113390-F507-458B-8544-7B01F945630B', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DriverConfigList' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ 'description' => '调用成功时,返回的数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => '021d154d2a2f4dd7a489773d9e04****', - ], - 'ConfigList' => [ - 'description' => '驱动配置信息。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', - 'type' => 'string', - 'example' => 'key1', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => 'dac71722ceac4a299dbf3e8dc3c8****', - ], - 'Format' => [ - 'description' => '配置文件格式,取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容文本或存储配置内容文件的OSS地址。', - 'type' => 'string', - 'example' => '{\\"test\\":123}', - ], - ], - ], - ], - ], + 'type' => 'object', + 'properties' => [ + 'MessageId' => ['description' => '云端给设备下发属性设置的消息ID。', 'type' => 'string', 'example' => 'abcabc123'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D6113390-F507-458B-8544-7B01F945630B\\",\\n \\"Success\\": true,\\n \\"DriverConfigList\\": [\\n {\\n \\"DriverId\\": \\"021d154d2a2f4dd7a489773d9e04****\\",\\n \\"ConfigList\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"dac71722ceac4a299dbf3e8dc3c8****\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\":123}\\"\\n }\\n ]\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n 021d154d2a2f4dd7a489773d9e0****c\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"test\\":123}\\r\\n dac71722ceac4a299dbf3e8dc3c8****\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n D6113390-F507-458B-8544-7B01F945630B\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量获取边缘实例驱动配置', - 'summary' => '批量获取边缘实例驱动配置。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"MessageId\\": \\"abcabc123\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n\\n abcabc123\\n\\n","errorExample":""}]', + 'title' => '为指定设备设置属性值', + 'summary' => '调用该接口为指定设备设置属性值。', + 'description' => '因为云端下发属性设置命令和设备收到并执行该命令是异步的,所以调用该接口时,返回的成功结果只表示云端下发属性设置的请求成功,不能保证设备端收到并执行了该请求。即需设备端SDK成功响应云端设置设备属性值的请求,设备属性值才能真正设置成功。'."\n" + ."\n" + .'>物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + .'>'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchBindDeviceToEdgeInstanceWithDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetDevicesProperty' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '要设置属性值的设备所属的产品**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'DriverId', + 'name' => 'Qos', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '021d154d2a2f4dd7a489773d9e04****', - ], + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '1', 'minimum' => '0', 'default' => '0'], ], [ - 'name' => 'IotIds', + 'name' => 'Items', + 'in' => 'query', + 'schema' => ['description' => '要设置的属性信息,数据格式为JSON。'."\n" + ."\n" + .'每个属性信息由**标识符与属性值(key:value)**构成,多个属性用英文逗号隔开。'."\n" + ."\n" + .'例如,设置智能灯的两个属性:'."\n" + .'- 标识符为**Switch**的开关属性,数据类型为**Bool**,设置值为**1**(开)。'."\n" + .'- 标识符为**Color**的灯颜色属性,数据类型为**String**,设置值为**blue**。'."\n" + ."\n" + .'那么要设置的属性信息,JSON格式如下:'."\n" + ."\n" + .'`Items={"Switch":1,"Color":"blue"}`'."\n" + ."\n" + .'> 如果设置自定义模块testFb(非默认模块)的属性,则格式为:`Items={"testFb:Switch":1,"testFb:Color":"blue"}`', 'type' => 'string', 'required' => true, 'example' => '{"Switch":1,"Color":"blue"}'], + ], + [ + 'name' => 'DeviceName', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '设备ID列表。'."\n" - .'可调用[QueryDevice](~~69905~~)查询当前账号下所有设备信息,获取设备IotId。'."\n" - ."\n" - .'> 单次调用最多可绑定20个设备。', + 'description' => '要设置属性值的设备名称列表。设备名称的个数范围为1~100个。'."\n" + ."\n", 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fD****0000101', - 'maxItems' => 21, + 'example' => 'light', + 'maxItems' => 500, ], ], ], @@ -59014,95 +41321,96 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BFFA9519-6AF1-4D15-AFAF-FD412714C1BE', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BFFA9519-6AF1-4D15-AFAF-FD412714C1BE\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BFFA9519-6AF1-4D15-AFAF-FD412714C1BE\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量将设备分配到边缘实例', - 'summary' => '批量将设备分配到边缘实例中,并为设备设置驱动。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', + 'title' => '批量设置设备属性值', + 'summary' => '调用该接口批量设置设备属性值。', + 'description' => '## 使用说明'."\n" + .'物模型功能定义数据类型为float或double时,对应参数值(即使值为整数)至少携带一位小数位。例如10.0、11.1。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchUnbindDeviceFromEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDevicesProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetEdgeInstanceDriverConfigs' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'IotIds', + 'name' => 'DriverId', + 'in' => 'query', + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '021d154d2a2f4dd7a489773d9e04****'], + ], + [ + 'name' => 'Configs', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '设备ID列表。可调用[QueryDevice](~~69905~~)查询当前账号下所有设备信息,获取设备IotId。'."\n" - ."\n" - .'> 单次调用最多可移除20个设备。', + 'description' => '配置列表。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', 'type' => 'string', 'required' => false, 'example' => 'key1'], + 'Format' => ['description' => '配置文件格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'required' => true, 'example' => 'JSON'], + 'Content' => ['description' => '配置内容,可以选择传入:'."\n" + ."\n" + .'- 配置内容文本。格式请参见[驱动与设备信息配置](~~120906~~)内容。'."\n" + .'- 存储配置文件的阿里云对象存储(OSS)地址。', 'type' => 'string', 'required' => true, 'example' => '{"test":123}'], + ], + 'required' => false, + 'description' => '', ], 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fD****0000101', 'maxItems' => 21, ], ], @@ -59112,102 +41420,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '34755DC3-2809-4AE2-BAD8-7B81ED69D570', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '252C7754-F6A2-454B-9DE2-382A97FC0C3F'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"34755DC3-2809-4AE2-BAD8-7B81ED69D570\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 34755DC3-2809-4AE2-BAD8-7B81ED69D570\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量将设备从边缘实例中移除', - 'summary' => '批量将设备从边缘实例中移除。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"252C7754-F6A2-454B-9DE2-382A97FC0C3F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 252C7754-F6A2-454B-9DE2-382A97FC0C3F\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'SetEdgeInstanceDriverConfigs', + 'summary' => '调用该接口配置边缘实例驱动。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceDevice' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetProductCertInfo' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'tG7sKuOQ7ylb7qS4****', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值是1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'aS2dewS****'], ], [ - 'name' => 'PageSize', + 'name' => 'IssueModel', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中,每页显示的记录数量。最大取值30,最小取值1,默认取值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'schema' => ['description' => '证书颁发模式。'."\n" + ."\n" + .'- **1**:由物联网平台颁发X.509证书。'."\n" + ."\n" + .'- **3**:由第三方平台颁发X.509证书。', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'example' => '1'], ], ], 'responses' => [ @@ -59215,170 +41497,76 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AC76932E-E0C9-41EE-843D-B1CA3279B053', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '设备数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '4', - ], - 'DeviceList' => [ - 'description' => '设备信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '产品的唯一标识符。', - 'type' => 'string', - 'example' => 'a1p5QfE****', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => '44c090ba7b104641a4b9bcf10241****', - ], - 'DeviceName' => [ - 'description' => '设备名称。', - 'type' => 'string', - 'example' => 'test_tmp_zdy', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'XSpPdtxzE6ebtCkx****000101', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'MissingProductKey'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'ProductKey is mandatory for this action.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '57b144cf-09fc-4916-a272-a62902d5b207'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:表示调用成功。'."\n" + ."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AC76932E-E0C9-41EE-843D-B1CA3279B053\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 4,\\n \\"DeviceList\\": [\\n {\\n \\"ProductKey\\": \\"a1p5QfE****\\",\\n \\"DriverId\\": \\"44c090ba7b104641a4b9bcf10241****\\",\\n \\"DeviceName\\": \\"test_tmp_zdy\\",\\n \\"IotId\\": \\"XSpPdtxzE6ebtCkx****000101\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n AC76932E-E0C9-41EE-843D-B1CA3279B053\\r\\n \\r\\n 15\\r\\n 1\\r\\n 4\\r\\n \\r\\n \\r\\n XSpPdtxzE6ebtCkx****000101\\r\\n 44c090ba7b104641a4b9bcf10241****\\r\\n a1p5QfE****\\r\\n test_tmp_zdy\\r\\n \\r\\n \\r\\n ixX7TRWtewDxZnus****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a1p5QfE****\\r\\n test_name19\\r\\n \\r\\n \\r\\n MkzMNGVF3wOk62J6****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a11jTlJ****\\r\\n testsss\\r\\n \\r\\n \\r\\n 6nFJ9ewglx7aBWPb****000101\\r\\n 021d154d2a2f4dd7a489773d9e04****\\r\\n a1PcD3R****\\r\\n device01\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例中的设备列表', - 'summary' => '查询边缘实例中的设备列表。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"MissingProductKey\\",\\n \\"ErrorMessage\\": \\"ProductKey is mandatory for this action.\\",\\n \\"RequestId\\": \\"57b144cf-09fc-4916-a272-a62902d5b207\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n57b144cf-09fc-4916-a272-a62902d5b207\\ntrue\\n","errorExample":""}]', + 'title' => '设置产品的X.509证书信息', + 'summary' => '调用该接口设置产品的X.509证书信息。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为30。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchSetEdgeInstanceDeviceConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetProductCertInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SetStudioProjectCooperation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', + 'name' => 'Status', + 'in' => 'formData', 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', + 'description' => '设置项目协作状态。'."\n" + .'- **0**(默认): 关闭。'."\n" + .'- **1**: 开通。', 'type' => 'string', 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], - ], - [ - 'name' => 'DeviceConfigs', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '设备配置信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'description' => '配置内容,可以选择传入:'."\n" - ."\n" - .'- 配置内容文本。格式请参见[设备配置说明](~~172319~~)。'."\n" - .'- 存储配置文件的阿里云对象存储(OSS)地址。'."\n" - ."\n" - .'> 单次调用最多可填写20个配置信息。', - 'type' => 'string', - 'required' => true, - 'example' => '{"test": "device_config_demo"}', - ], - 'IotId' => [ - 'description' => '设备ID。'."\n" - ."\n" - .'可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个设备ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'sjI0Sd124XFYyjBY****000101', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, + 'example' => '1', + 'enum' => ['1', '0'], ], ], ], @@ -59387,194 +41575,211 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '748659E2-EDC9-4E3E-BF9D-06F16995CF66', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '调用成功时,返回该参数,值为true。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"748659E2-EDC9-4E3E-BF9D-06F16995CF66\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 748659E2-EDC9-4E3E-BF9D-06F16995CF66\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'BatchSetEdgeInstanceDeviceConfig', - 'summary' => '调用该接口批量配置边缘实例设备。', - 'description' => '## 限制条件'."\n" + 'errorCodes' => [ + 200 => [ + ['errorCode' => 'IoT.Common.NullParameter', 'errorMessage' => 'Parameter cannot be empty.', 'description' => ''], + ['errorCode' => 'Studio.Project.FeatureNotSupport', 'errorMessage' => 'The feature is not supported by the current account.', 'description' => '该功能当前账户不支持'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n","errorExample":""}]', + 'title' => 'SetStudioProjectCooperation', + 'summary' => '调用该接口设置项目协作,即阿里云账号可以给不同的RAM用户授权不同的项目。', + 'description' => '## 限制说明'."\n" .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BatchClearEdgeInstanceDeviceConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SetupStudioAppAuthModeOpen' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .''."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'name' => 'AppId', + 'in' => 'formData', + 'schema' => ['description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', 'type' => 'string', 'required' => true, 'example' => 'a12*****'], ], [ - 'name' => 'IotIds', - 'in' => 'query', - 'style' => 'repeatList', + 'name' => 'AuthMode', + 'in' => 'formData', 'schema' => [ - 'description' => '要查询的设备ID列表。可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" - ."\n" - .'>单次调用最多可填写20个设备ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'description' => '鉴权模式。取值:'."\n" + .'- **0**:不鉴权。'."\n" + .'- **1**:Token。'."\n" + .'- **2**:账号。', + 'type' => 'integer', + 'format' => 'int32', 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fD****0000101', - 'maxItems' => 21, + 'example' => '1', + 'enum' => ['0', '1', '2'], ], ], + [ + 'name' => 'ProjectId', + 'in' => 'formData', + 'schema' => ['description' => '项目ID。'."\n" + .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" + .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', 'type' => 'string', 'required' => true, 'example' => 'a123********'], + ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '应用数据。', + 'type' => 'object', + 'properties' => [ + 'AuthMode' => ['description' => '鉴权模式。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'TokenInfo' => [ + 'description' => 'Token信息。', + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'Token类型。', 'type' => 'string', 'example' => 'custom'], + 'IsEnable' => ['description' => '是否启用Token。'."\n" + .'- **YES**:是。'."\n" + .'- **NO**:否。', 'type' => 'string', 'example' => 'YES'], + 'BizId' => ['description' => '应用ID。', 'type' => 'string', 'example' => 'a12********'], + 'Token' => ['description' => 'Token值。', 'type' => 'string', 'example' => '25bf576a6c6f**********'], + 'BizType' => ['description' => '应用类型。', 'type' => 'string', 'example' => 'webApp'], + ], + ], + ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 0BC2AA1C-E4D0-4E78-A70F-08C9A90686B0\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量清空边缘实例设备配置', - 'summary' => '批量清空边缘实例设备配置。', - 'description' => '## 限制条件'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AuthMode\\": 1,\\n \\"TokenInfo\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12********\\",\\n \\"Token\\": \\"25bf576a6c6f**********\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n \\n YES\\n custom\\n 25bf576a6c6f**********\\n webApp\\n a12********\\n \\n \\n true\\n","errorExample":""}]', + 'title' => 'SetupStudioAppAuthModeOpen', + 'summary' => '调用该接口设置应用鉴权模式。', + 'description' => '## 限制说明'."\n" .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BatchGetEdgeInstanceDeviceConfig' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'ShareSpeechByCombination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'name' => 'SpeechId', + 'in' => 'formData', + 'schema' => ['description' => '下发给设备的唯一播报ID。'."\n" + .'>'."\n" + .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '42000011392021112380********'], ], [ - 'name' => 'IotIds', - 'in' => 'query', + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV**** '], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备的**DeviceName**。'."\n" + .'如果传入该参数,需同时传入**ProductKey**。'."\n" + ."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'CombinationList', + 'in' => 'formData', 'style' => 'repeatList', 'schema' => [ - 'description' => '要查询的设备ID列表。可调用[QueryEdgeInstanceDevice](~~135261~~)查询实例中的设备ID。'."\n" + 'description' => '组合播报内容,包括以下类型:'."\n" ."\n" - .'> 单次调用最多可填写20个设备ID。', + .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" + ."\n" + .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" + .' '."\n" + .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" + .' '."\n" + .'设备根据下发的CombinationList进行顺序播报。'."\n" + .' '."\n" + .' ', 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'BXPV9Ks3bxwM9fDl****000101', - 'maxItems' => 21, + 'example' => 'ZFBDZ', + 'maxItems' => 50, ], ], ], @@ -59583,122 +41788,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'D4A102C2-36A5-4964-9694-0F8EFF95CCA8', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceConfigList' => [ - 'description' => '调用成功时,返回的设备配置数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'sjI0Sd124XFYyjBY****000101', - ], - 'Config' => [ - 'description' => '设备配置信息。', - 'type' => 'object', - 'properties' => [ - 'Content' => [ - 'description' => '配置内容文本或存储配置内容文件的OSS地址。', - 'type' => 'string', - 'example' => '{\\"test\\": \\"device_config_demo\\"}', - ], - 'Format' => [ - 'description' => '配置文件格式。参数值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'example' => 'JSON', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4A102C2-36A5-4964-9694-0F8EFF95CCA8\\",\\n \\"Success\\": true,\\n \\"DeviceConfigList\\": [\\n {\\n \\"IotId\\": \\"sjI0Sd124XFYyjBY****000101\\",\\n \\"Config\\": {\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"test\\\\\\\\\\\\\\": \\\\\\\\\\\\\\"device_config_demo\\\\\\\\\\\\\\"}\\",\\n \\"Format\\": \\"JSON\\"\\n }\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n \\r\\n sjI0Sd124XFYyjBY****000101\\r\\n \\r\\n JSON\\r\\n {\\"test\\": \\"device_config_demo\\"}\\r\\n \\r\\n \\r\\n \\r\\n BXPV9Ks3bxwM9fD****0000101\\r\\n \\r\\n JSON\\r\\n {\\"test\\": \\"device_config_demo\\"}\\r\\n \\r\\n \\r\\n \\r\\n D4A102C2-36A5-4964-9694-0F8EFF95CCA8\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量获取边缘实例设备配置', - 'summary' => '批量获取边缘实例设备配置。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.devicespeech.ProjectNotFound', 'errorMessage' => 'project not found', 'description' => ''], + ['errorCode' => 'iot.speechsolution.ProjectHasStopped', 'errorMessage' => 'project has stopped', 'description' => ''], + ['errorCode' => 'iot.devicespeech.InvalidDevice', 'errorMessage' => 'invalid device to speech', 'description' => ''], + ['errorCode' => 'iot.devicespeech.DeviceNotActived', 'errorMessage' => 'device not actived', 'description' => ''], + ['errorCode' => 'iot.devicespeech.DeviceOffline', 'errorMessage' => 'device is offline', 'description' => ''], + ['errorCode' => 'iot.devicespeech.RequestLimit', 'errorMessage' => 'too much request', 'description' => ''], + ['errorCode' => 'iot.devicespeech.InvalidAudioFormat', 'errorMessage' => 'invalid audio format', 'description' => ''], + ['errorCode' => 'iot.devicespeech.InvalidProductKeyAndDeviceName', 'errorMessage' => 'invalid productKey and deviceName', 'description' => '无效的设备KEY以及名称'], + ['errorCode' => 'iot.devicespeech.InvalidDeviceId', 'errorMessage' => 'invalid iot device id', 'description' => '无效的设备ID'], + ['errorCode' => 'iot.speechservice.NotSigned', 'errorMessage' => 'speech service has not been signed', 'description' => ''], + ['errorCode' => 'iot.devicespeech.InvalidSpeechId', 'errorMessage' => 'invalid device speech id', 'description' => ''], + ['errorCode' => 'iot.devicespeech.ThingModelNotDefine', 'errorMessage' => 'thing model not define', 'description' => ''], + ['errorCode' => 'iot.devicespeech.InvalidLicenseDevice', 'errorMessage' => 'invalid speech license device', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', + 'title' => 'ShareSpeechByCombination', + 'summary' => '调用该接口推送共享音频到设备播报。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CreateEdgeInstanceDeployment' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SpeechByCombination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV**** '], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备的**DeviceName**。'."\n" + .'如果传入该参数,需同时传入**ProductKey**。'."\n" + ."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'PgEfYupSn6Pvhfkx****', - ], + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], ], [ - 'name' => 'Type', - 'in' => 'query', + 'name' => 'SpeechId', + 'in' => 'formData', + 'schema' => ['description' => '下发给设备的唯一播报ID。'."\n" + .'>'."\n" + .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '42000011392021112380********'], + ], + [ + 'name' => 'EnforceFlag', + 'in' => 'formData', + 'schema' => ['description' => '是否下发强制播报标识给播报设备。'."\n" + ."\n" + .'- **false**(默认):不下发'."\n" + .'- **true**:下发', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'CombinationList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'description' => '部署单类型。'."\n" + 'description' => '组合播报内容,包括以下类型:'."\n" ."\n" - .'- deploy:部署。'."\n" - .'- reset:重置。', - 'type' => 'string', + .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" + ."\n" + .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" + .' '."\n" + .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" + .' '."\n" + .'设备根据下发的CombinationList进行顺序播报。', + 'type' => 'array', + 'items' => ['description' => '组合播报内容,包括以下类型:'."\n" + ."\n" + .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" + ."\n" + .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" + .' '."\n" + .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" + .' '."\n" + .'设备根据下发的CombinationList进行顺序播报。', 'type' => 'string', 'required' => false, 'example' => 'ZFBDZ'], 'required' => true, - 'example' => 'deploy', + 'example' => 'ZFBDZ', + 'maxItems' => 50, ], ], ], @@ -59707,85 +41930,105 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'DeploymentId' => [ - 'description' => '调用成功时,返回的部署任务单ID。', - 'type' => 'string', - 'example' => '38d544b1222d45b4b425240167bf****', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C8293A57-6BBC-42FB-B093-BF304D5BF09C', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"DeploymentId\\": \\"38d544b1222d45b4b425240167bf****\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C8293A57-6BBC-42FB-B093-BF304D5BF09C\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C8293A57-6BBC-42FB-B093-BF304D5BF09C\\r\\n 38d544b1222d45b4b425240167bf****\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建边缘实例部署单', - 'summary' => '部署边缘实例,创建边缘实例部署单。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', + 'title' => 'SpeechByCombination', + 'summary' => '调用该接口推送音频到设备播报。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'CloseEdgeInstanceDeployment' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'SpeechBySynthesis' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'Voice', + 'in' => 'formData', + 'schema' => ['description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中`VoiceList`中`Value`的值。'."\n", 'type' => 'string', 'required' => true, 'example' => 'Siyue'], ], [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'PgEfYupSn6Pvhfkx****', - ], + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'SpeechRate', + 'in' => 'formData', + 'schema' => ['description' => '播报速度,取值范围:-500~500。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '-500', 'example' => '0', 'default' => '0'], + ], + [ + 'name' => 'Text', + 'in' => 'formData', + 'schema' => ['description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => true, 'example' => 'test'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备的**DeviceName**。'."\n" + .'如果传入该参数,需同时传入**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'SpeechId', + 'in' => 'formData', + 'schema' => ['description' => '下发给设备的唯一播报ID。'."\n" + .'>'."\n" + .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '42000011392021112380********'], + ], + [ + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => true, 'example' => 'wav'], + ], + [ + 'name' => 'Volume', + 'in' => 'formData', + 'schema' => ['description' => '音量大小,取值范围:0~100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'default' => '50'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], ], 'responses' => [ @@ -59793,90 +42036,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '3C969586-3DD1-41A7-9B8E-E8B134CA6600', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], - ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3C969586-3DD1-41A7-9B8E-E8B134CA6600\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3C969586-3DD1-41A7-9B8E-E8B134CA6600\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '关闭边缘实例部署任务单', - 'summary' => '关闭边缘实例部署任务单。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\ntrue\\n","errorExample":""}]', + 'title' => 'SpeechBySynthesis', + 'summary' => '调用该接口下发动态播报内容到设备进行播报。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'GetEdgeInstanceDeployment' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'StartPTDetection' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'InstanceId', + 'name' => 'PowerStationUid', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'PgEfYupSn6Pvhfkx****', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'DeploymentId', + 'name' => 'FileName', 'in' => 'query', - 'schema' => [ - 'description' => '部署单ID。可调用[QueryEdgeInstanceHistoricDeployment](~~135275~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9261e308a9504fde9b4cf8462b0b****', - ], + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'PowerPlantsNumber', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], + ], + [ + 'name' => 'Data', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'DataCollectionTime', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int64', 'required' => true], + ], + [ + 'name' => 'AlgorithmInstanceUid', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'Sensitivity', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], ], ], 'responses' => [ @@ -59884,366 +42118,152 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '6B72291A-9492-445E-81D9-335D2D3E44C0', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], 'Data' => [ - 'description' => '调用成功时,返回的数据。', 'type' => 'object', 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '部署单创建的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '部署单类型。'."\n" - ."\n" - .'- deploy:部署。'."\n" - .'- reset:重置。', - 'type' => 'string', - 'example' => 'deploy', - ], - 'Status' => [ - 'description' => '部署单当前状态。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 1:正在进行中(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'DeploymentId' => [ - 'description' => '部署单ID。', - 'type' => 'string', - 'example' => '9261e308a9504fde9b4cf8462b0b****', - ], - 'Description' => [ - 'description' => '部署单描述。', - 'type' => 'string', - 'example' => 'deploy_1561543948874', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '部署单最后一次更新的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtCompleted' => [ - 'description' => '部署完成时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:35', - ], - 'GmtCreate' => [ - 'description' => '部署单创建时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:29', - ], - 'GmtCompletedTimestamp' => [ - 'description' => '部署完成的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '部署单最后一次更新时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:35', - ], - 'TaskList' => [ - 'description' => '部署任务列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '部署任务创建的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Status' => [ - 'description' => '部署任务当前状态。'."\n" - ."\n" - .'- 0:初始状态(init)。'."\n" - .'- 1:正在进行中(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Stage' => [ - 'description' => '部署任务当前阶段。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 8:正在装配(assembly)。'."\n" - .'- 16:正在打包(package)。'."\n" - .'- 24:正在分发(dispatcher)。'."\n" - .'- 32:已完成(finish)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '32', - ], - 'GatewayId' => [ - 'description' => '网关设备ID。', - 'type' => 'string', - 'example' => 'jQWf3MVgQjMzcwsY****000101', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '部署任务最后一次更新的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtCompleted' => [ - 'description' => '部署任务完成时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:35', - ], - 'GmtCreate' => [ - 'description' => '部署任务创建时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:29', - ], - 'GmtCompletedTimestamp' => [ - 'description' => '部署任务完成的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '部署任务最后一次更新时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:35', - ], - 'TaskId' => [ - 'description' => '部署任务ID。', - 'type' => 'string', - 'example' => '49ea651529014bf8b5645d5f9062****', - ], - 'ResourceSnapshotList' => [ - 'description' => '部署快照列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '当前状态。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 1:正在进行(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'GmtCreateTimestamp' => [ - 'description' => '部署单快照创建的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Stage' => [ - 'description' => '部署单快照当前阶段。'."\n" - ."\n" - .'- 0:初始状态(init)。'."\n" - .'- 8:正在编译(assembly)。'."\n" - .'- 16:正在打包(package)。'."\n" - .'- 24:正在分发(dispatcher)。'."\n" - .'- 32:已完成(finish)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '32', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '部署单快照最后一次更新的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '部署单快照最后一次更新时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:34', - ], - 'Log' => [ - 'description' => '资源部署日志。', - 'type' => 'string', - 'example' => '[{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":0,\\"level\\":\\"INFO\\",\\"message\\":\\"init success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543949858},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":8,\\"level\\":\\"INFO\\",\\"message\\":\\"assembly success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543951419},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":16,\\"level\\":\\"INFO\\",\\"message\\":\\"package success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543952591},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":32,\\"level\\":\\"INFO\\",\\"message\\":\\"download success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543954149}]', - ], - 'OperateType' => [ - 'description' => '操作类型。'."\n" - ."\n" - .'- 0:部署(deploy)。'."\n" - .'- 1:删除(delete)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '0', - ], - 'ResourceType' => [ - 'description' => '资源类型。', - 'type' => 'string', - 'example' => 'device_config', - ], - 'SnapshotId' => [ - 'description' => '部署快照ID。', - 'type' => 'string', - 'example' => 'ab576e84a43043d7840cbcebf4a5****', - ], - 'GmtCompleted' => [ - 'description' => '部署单快照完成时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:34', - ], - 'GmtCreate' => [ - 'description' => '部署单快照创建时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:29', - ], - 'GmtCompletedTimestamp' => [ - 'description' => '部署单快照完成的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'ResourceId' => [ - 'description' => '资源ID。', - 'type' => 'string', - 'example' => 'device_config', - ], - 'ResourceName' => [ - 'description' => '资源名称。', - 'type' => 'string', - 'example' => 'device_config', - ], - ], - ], - ], - ], - ], - ], + 'Status' => ['type' => 'string'], + 'InputData' => ['type' => 'string'], + 'Data' => ['type' => 'string'], + 'ErrMsg' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"6B72291A-9492-445E-81D9-335D2D3E44C0\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"deploy\\",\\n \\"Status\\": 2,\\n \\"DeploymentId\\": \\"9261e308a9504fde9b4cf8462b0b****\\",\\n \\"Description\\": \\"deploy_1561543948874\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:35\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:35\\",\\n \\"TaskList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Status\\": 2,\\n \\"Stage\\": 32,\\n \\"GatewayId\\": \\"jQWf3MVgQjMzcwsY****000101\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:35\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:35\\",\\n \\"TaskId\\": \\"49ea651529014bf8b5645d5f9062****\\",\\n \\"ResourceSnapshotList\\": [\\n {\\n \\"Status\\": 2,\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Stage\\": 32,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-26 18:12:34\\",\\n \\"Log\\": \\"[{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"init success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543949858},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":8,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"assembly success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543951419},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":16,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"package success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543952591},{\\\\\\\\\\\\\\"resourceId\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"device_config\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"code\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"stage\\\\\\\\\\\\\\":32,\\\\\\\\\\\\\\"level\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"INFO\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"message\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"download success\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"resourceType\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"DEVICE_CONFIG\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"timestamp\\\\\\\\\\\\\\":1561543954149}]\\",\\n \\"OperateType\\": 0,\\n \\"ResourceType\\": \\"device_config\\",\\n \\"SnapshotId\\": \\"ab576e84a43043d7840cbcebf4a5****\\",\\n \\"GmtCompleted\\": \\"2019-06-26 18:12:34\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"ResourceId\\": \\"device_config\\",\\n \\"ResourceName\\": \\"device_config\\"\\n }\\n ]\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 6B72291A-9492-445E-81D9-335D2D3E44C0\\r\\n \\r\\n 2\\r\\n 9261e308a9504fde9b4cf8462b0b****\\r\\n 2019-06-26 18:12:35\\r\\n deploy\\r\\n 2019-06-26 18:12:29\\r\\n deploy_1561543948874\\r\\n \\r\\n \\r\\n 2\\r\\n 2019-06-26 18:12:35\\r\\n 2019-06-26 18:12:29\\r\\n 49ea651529014bf8b5645d5f9062****\\r\\n \\r\\n \\r\\n 2\\r\\n ab576e84a43043d7840cbcebf4a5****\\r\\n 2019-06-26 18:12:34\\r\\n 2019-06-26 18:12:29\\r\\n [{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":0,\\"level\\":\\"INFO\\",\\"message\\":\\"init success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543949858},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":8,\\"level\\":\\"INFO\\",\\"message\\":\\"assembly success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543951419},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":16,\\"level\\":\\"INFO\\",\\"message\\":\\"package success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543952591},{\\"resourceId\\":\\"device_config\\",\\"code\\":\\"0\\",\\"stage\\":32,\\"level\\":\\"INFO\\",\\"message\\":\\"download success\\",\\"resourceType\\":\\"DEVICE_CONFIG\\",\\"timestamp\\":1561543954149}]\\r\\n device_config\\r\\n device_config\\r\\n 2019-06-26 18:12:34\\r\\n 32\\r\\n device_config\\r\\n 0\\r\\n \\r\\n \\r\\n 2019-06-26 18:12:35\\r\\n 32\\r\\n jQWf3MVgQjMzcwsY****000101\\r\\n \\r\\n \\r\\n 2019-06-26 18:12:35\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '获取边缘实例部署详情', - 'summary' => '获取边缘实例部署详情 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceHistoricDeployment' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.dap.insight.unknownException', 'errorMessage' => 'unknown exception.', 'description' => '未知异常。'], + ['errorCode' => 'iot.dap.insight.requestParamError', 'errorMessage' => 'request param error.', 'description' => '请求参数异常。'], + ['errorCode' => 'iot.dap.insight.datetimeNotMatch', 'errorMessage' => 'The acquisition time does not match the data time.', 'description' => '采集时间与数据时间不匹配。'], + ['errorCode' => 'iot.dap.insight.needDetectionData', 'errorMessage' => 'Detection data is required.', 'description' => '需要检测数据。'], + ['errorCode' => 'iot.dap.insight.parsedDataError', 'errorMessage' => 'Failed to parse data.', 'description' => '解析数据失败。'], + ['errorCode' => 'iot.dap.insight.frozen', 'errorMessage' => 'The algorithm instance has been frozen. please renew.', 'description' => '算法实例已冻结,请续费。'], + ], + 500 => [ + ['errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', 'errorMessage' => 'biz exception not specified.', 'description' => '服务内部错误,请联系管理员。'], + ], ], + 'changeSet' => [], + 'ramActions' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Status\\": \\"\\",\\n \\"InputData\\": \\"\\",\\n \\"Data\\": \\"\\",\\n \\"ErrMsg\\": \\"\\",\\n \\"Success\\": true\\n }\\n}","type":"json"}]', + ], + 'StartParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'InstanceId', + 'name' => 'ParserId', 'in' => 'query', + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999999', 'minimum' => '0', 'example' => '1001'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'PgEfYupSn6Pvhfkx****', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.EmptyScript', 'errorMessage' => 'The script is empty.', 'description' => '脚本配置为空。'], + ['errorCode' => 'iot.rule.DestinationNotBound', 'errorMessage' => 'The connector has not destination.', 'description' => '数据目的地未绑定。'], + ['errorCode' => 'iot.rule.StartRuleFailed', 'errorMessage' => 'An error occurred while starting the rule.', 'description' => '启动规则失败。'], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.scriptSyntaxError', 'errorMessage' => 'Script Syntax Error', 'description' => ''], + ['errorCode' => 'iot.common.TooManyRequest', 'errorMessage' => 'Request frequency is too high', 'description' => ''], + ['errorCode' => 'iot.rule.NoDataSourceBound', 'errorMessage' => 'no datasource bound', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'StartParser', + 'summary' => '调用该接口启动解析器。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:StartParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'StartRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'StartTime', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '查询起始时间。如果不传入起止时间,则查询该实例的全部历史部署记录。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1558951998639', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'EndTime', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '查询结束时间。如果不传入起止时间,则查询该实例的全部历史部署记录。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => false, - 'example' => '1561543998639', - ], + 'schema' => ['description' => '要启动的规则ID。可调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], ], 'responses' => [ @@ -60251,232 +42271,152 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'Total' => [ - 'description' => '总记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '6', - ], - 'DeploymentList' => [ - 'description' => '边缘实例列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建部署单的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '部署单类型。'."\n" - ."\n" - .'- deploy:部署。'."\n" - .'- reset:重置。', - 'type' => 'string', - 'example' => 'deploy', - ], - 'Status' => [ - 'description' => '实例的部署单状态。'."\n" - ."\n" - .'- 0:未开始(init)。'."\n" - .'- 1:正在进行中(processing)。'."\n" - .'- 2:成功(success)。'."\n" - .'- 3:失败(failure)。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '2', - ], - 'DeploymentId' => [ - 'description' => '部署单ID。', - 'type' => 'string', - 'example' => 'e4803e566b424fa68e7f4b1c747c****', - ], - 'Description' => [ - 'description' => '部署单描述。', - 'type' => 'string', - 'example' => 'deploy_1561694817061', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新部署单的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtCompleted' => [ - 'description' => '部署单完成时间。', - 'type' => 'string', - 'example' => '2019-06-28 12:07:16', - ], - 'GmtCreate' => [ - 'description' => '创建部署单时间。', - 'type' => 'string', - 'example' => '2019-06-26 18:12:29', - ], - 'GmtCompletedTimestamp' => [ - 'description' => '部署单完成的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'GmtModified' => [ - 'description' => '最后一次更新部署单的时间。', - 'type' => 'string', - 'example' => '2019-06-28 12:07:16', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 2,\\n \\"Total\\": 6,\\n \\"DeploymentList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": \\"deploy\\",\\n \\"Status\\": 2,\\n \\"DeploymentId\\": \\"e4803e566b424fa68e7f4b1c747c****\\",\\n \\"Description\\": \\"deploy_1561694817061\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"GmtCompleted\\": \\"2019-06-28 12:07:16\\",\\n \\"GmtCreate\\": \\"2019-06-26 18:12:29\\",\\n \\"GmtCompletedTimestamp\\": 1581912859713,\\n \\"GmtModified\\": \\"2019-06-28 12:07:16\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989E4\\r\\n \\r\\n \\r\\n \\r\\n 2\\r\\n e4803e566b424fa68e7f4b1c747c****\\r\\n 2019-06-28 12:07:16\\r\\n deploy\\r\\n 2019-06-28 12:06:57\\r\\n deploy_1561694817061\\r\\n 2019-06-28 12:07:16\\r\\n \\r\\n \\r\\n 2\\r\\n 9261e308a9504fde9b4cf8462b0b****\\r\\n 2019-06-26 18:12:35\\r\\n deploy\\r\\n 2019-06-26 18:12:29\\r\\n deploy_1561543948874\\r\\n 2019-06-26 18:12:35\\r\\n \\r\\n \\r\\n 2\\r\\n 1\\r\\n 6\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例历史部署记录', - 'summary' => '查询边缘实例历史部署记录 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4846-BAB5-D02A25155AC4\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '启动指定的规则', + 'summary' => '调用该接口启动指定的规则。', + 'description' => '## 使用说明'."\n" + .'启动规则前需要确认该规则已经配置了SQL。如果创建规则时没有配置SQL,请调用[UpdateRule](~~69513~~)更新规则,补充SQL配置。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateEdgeDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:StartRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'StopParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-n8t***'], ], [ - 'name' => 'DriverName', + 'name' => 'ParserId', 'in' => 'query', + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '99999999999', 'minimum' => '0', 'example' => '1001'], + ], + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '驱动名称。支持大小写英文字母、数字和下划线(_),必须以英文字母开头,不超过20个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'MyLedDriver', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.StopRuleFailed', 'errorMessage' => 'An error occurred while stopping the rule.', 'description' => '停止规则失败。'], + ['errorCode' => 'iot.rule.NoDataSourceBound', 'errorMessage' => 'no datasource bound', 'description' => ''], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'StopParser', + 'summary' => '调用该接口停止解析器运行。', + 'description' => '## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'DriverProtocol', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动通信协议。取值如下:'."\n" - ."\n" - .'- modbus:Modbus通信协议。'."\n" - .'- opc-ua:OPC UA通信协议。'."\n" - .'- customize:自定义通信协议。', - 'type' => 'string', - 'required' => true, - 'example' => 'customize', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:StopParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'StopRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'Runtime', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动的语言类型。支持如下三种类型:'."\n" - ."\n" - .'- nodejs8:Node.js v8'."\n" - .'- python3:Python v3.5'."\n" - .'- c: C语言', - 'type' => 'string', - 'required' => true, - 'example' => 'c', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'CpuArch', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动适配的CPU架构。取值如下:'."\n" - ."\n" - .'- armv7'."\n" - .'- armv7-hf'."\n" - .'- aarch64'."\n" - .'- x86-64'."\n" - .'- x86', - 'type' => 'string', - 'required' => false, - 'example' => 'x86-64', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'IsBuiltIn', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '是否内置驱动文件。'."\n" - ."\n" - .'- true:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" - .'- false:表示驱动为非内置驱动。 非内置驱动必须上传驱动代码。默认为false。'."\n" - ."\n" - .' > 非内置驱动必须上传驱动代码。如需通过API的方式上传驱动代码并获取阿里云对象存储(OSS)地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口创建预签名地址后,使用OSS SDK上传驱动文件。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - ], + 'schema' => ['description' => '要停止的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], ], 'responses' => [ @@ -60484,85 +42424,90 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**表示调用成功。'."\n" + .'- **false**表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n fec565038d7544978d9aed5c1a******\\r\\n BB179FE4-94AB-41B0-AE8A-66DDB7B8B13A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建驱动', - 'summary' => '创建驱动 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '停止指定规则', + 'summary' => '调用该接口停止指定的规则。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteEdgeDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:StopRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SubscribeTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-06***'], ], [ - 'name' => 'DriverId', + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY***'], + ], + [ + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '指定要订阅Topic所属设备的**DeviceName**。', 'type' => 'string', 'required' => true, 'example' => 'device1'], + ], + [ + 'name' => 'Topic', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + 'description' => '要订阅的Topic,最多订阅10个Topic。'."\n" ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', + .'Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" + ."\n", + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', + 'example' => '/a1Q5XoY***/device1/user/get', + 'maxItems' => 10, ], ], ], @@ -60571,283 +42516,284 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'F82E857F-B6B9-4CCC-96B8-E4BE97095F1A', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"F82E857F-B6B9-4CCC-96B8-E4BE97095F1A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n F82E857F-B6B9-4CCC-96B8-E4BE97095F1A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除已创建的驱动', - 'summary' => '删除已创建的驱动 。', - 'description' => '## 限制条件'."\n" - ."\n" - .'- 当驱动下存在已发布的驱动版本时,该驱动无法删除。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Iot.System.BillIsOverDue', 'errorMessage' => 'Your account has overdue payments. Go to the expense center and add funds to your account.', 'description' => '您已欠费超期,请到账户中心充值!'], + ['errorCode' => 'Iot.MessageBroker.EmptySubTopicList', 'errorMessage' => 'The subscription topic list is empty.', 'description' => '订阅的主题列表为空。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'Iot.MessageBroker.TopicTemplateIsNotFound', 'errorMessage' => 'The topic template does not exist.', 'description' => '主题模板不存在。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.device.InactiveDevice', 'errorMessage' => 'The device is inactive.', 'description' => '设备未激活,即物理设备从未连接物联网平台。'], + ['errorCode' => 'Iot.MessageBroker.InvalidFormattedTopicName', 'errorMessage' => 'The topic format specified while publishing the message is incorrect.', 'description' => '发送消息的主题格式错误。'], + ], + 403 => [ + ['errorCode' => 'Iot.Device.NotDeviceOwner', 'errorMessage' => 'You are not the device owner.', 'description' => '当前操作者不是设备的拥有者。'], + ], + 500 => [ + ['errorCode' => 'Iot.MessageBroker.BatchSubTopicFailed', 'errorMessage' => 'An error occurred while batch subscribing to the topic.', 'description' => '批量订阅主题失败。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n32B9828A-25DD-48E2-8E26-D1664B341940\\ntrue\\n","errorExample":""}]', + 'title' => '为指定设备订阅Topic', + 'summary' => '该接口为指定设备订阅Topic。', + 'description' => '## 使用说明'."\n" + .'- 待订阅Topic所属设备,必须已经接入物联网平台并激活在线。'."\n" + .'- 调用本接口仅订阅指定设备的Topic,且单次调用最多订阅10个Topic。'."\n" ."\n" - .' > RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchGetEdgeDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SubscribeTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'SyncSpeechByCombination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'IotId', + 'in' => 'formData', + 'schema' => ['description' => '设备ID,该参数可以通过调用[QuerySpeechDevice](~~280408~~)获取。'."\n" + ."\n" + .'>如果传入该参数,则无需传入**ProductKey**和**DeviceName**。**IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。', 'type' => 'string', 'required' => false, 'example' => 'Q7uOhVRdZRRlDnTLv****00100'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'formData', + 'schema' => ['description' => '设备所属的产品**ProductKey**。如果传入该参数,需同时传入**DeviceName**。'."\n" + ."\n", 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV**** '], + ], + [ + 'name' => 'DeviceName', + 'in' => 'formData', + 'schema' => ['description' => '设备的**DeviceName**。'."\n" + .'如果传入该参数,需同时传入**ProductKey**。'."\n" + ."\n" + .' ', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'ot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DriverIds', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '驱动ID列表。最多可填写30个驱动ID,即一次最多支持查询30个驱动的信息。格式请参见本文下方请求示例。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - 'maxItems' => 31, - ], + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], ], - ], - 'responses' => [ - 200 => [ + [ + 'name' => 'SpeechId', + 'in' => 'formData', + 'schema' => ['description' => '下发给设备的唯一播报ID。'."\n" + .'>'."\n" + .'若不传入则由系统生成,若业务上进行重试播报,需传入重试的播报ID,避免出现重复业务播报。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => '42000011392021112380********'], + ], + [ + 'name' => 'EnforceFlag', + 'in' => 'formData', + 'schema' => ['description' => '是否下发强制播报标识给播报设备。'."\n" + ."\n" + .'- false(默认):不下发'."\n" + .'- true:下发', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'CombinationList', + 'in' => 'formData', + 'style' => 'repeatList', 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'A42CAB88-6E26-4DC7-9A35-584D17E82DE0', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DriverList' => [ - 'description' => '驱动信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '驱动类型。'."\n" - ."\n" - .'- 0:表示官方驱动。'."\n" - .'- 1:表示自研驱动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CpuArch' => [ - 'description' => '驱动适配的CPU架构。有如下几种架构:'."\n" - ."\n" - .'- armv7'."\n" - .'- armv7-hf'."\n" - .'- aarch64'."\n" - .'- x86-64'."\n" - .'- x86', - 'type' => 'string', - 'example' => 'x86-64', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - 'IsBuiltIn' => [ - 'description' => '驱动文件是否内置。'."\n" - ."\n" - .'- true:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" - .'- false:表示驱动为非内置驱动。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Runtime' => [ - 'description' => '驱动的语言类型。有如下三种类型:'."\n" - ."\n" - .'- nodejs8:Node.js v8'."\n" - .'- python3:Python v3.5'."\n" - .'- c: C语言', - 'type' => 'string', - 'example' => 'c', - ], - 'DriverName' => [ - 'description' => '驱动名称。', - 'type' => 'string', - 'example' => 'MyLedDriver', - ], - 'DriverProtocol' => [ - 'description' => '驱动通信协议。'."\n" - ."\n" - .'- modbus:Modbus通信协议。'."\n" - .'- opc-ua:OPC UA通信协议。'."\n" - .'- customize:自定义通信协议。', - 'type' => 'string', - 'example' => 'customize', - ], - ], + 'description' => '组合播报内容,包括以下类型:'."\n" + ."\n" + .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" + ."\n" + .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" + .' '."\n" + .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" + .' '."\n" + .'设备根据下发的CombinationList进行顺序播报。', + 'type' => 'array', + 'items' => ['description' => '组合播报内容,包括以下类型:'."\n" + ."\n" + .'- 播报已成功推送至设备中的语料,填入语料的标识。'."\n" + ."\n" + .'- 播报支持的动态内容,根据设备支持的具体规则传入。'."\n" + .' '."\n" + .' 示例:金额,格式为`{$xxx}`,xxx为具体的金额数,如`{$1000}`,则设备播报**1000元**。'."\n" + .' '."\n" + .'设备根据下发的CombinationList进行顺序播报。', 'type' => 'string', 'required' => false, 'example' => 'ZFBDZ'], + 'required' => true, + 'example' => 'ZFBDZ', + 'maxItems' => 10, + ], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'An internal error occurred. Try again later.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '671D0F8F-FDC7-4B12-93FA-336C079C965A'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'Data' => [ + 'description' => '返回的结果。', + 'type' => 'object', + 'properties' => [ + 'RetryCount' => ['description' => '重试次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '1'], + 'Success' => ['description' => '播报是否成功。', 'type' => 'boolean', 'example' => 'true'], + 'DeviceErrorMessage' => ['description' => '设备播报返回错误信息。', 'type' => 'string', 'example' => 'speech model not found'], + 'MaxRetryCount' => ['description' => '最多重试次数。', 'type' => 'integer', 'format' => 'int32', 'example' => '2'], + 'DeviceErrorCode' => ['description' => '设备播报返回错误码。', 'type' => 'string', 'example' => '1'], + 'Id' => ['description' => '下发给设备的唯一播报ID,即请求的参数SpeechId,若不传入则由系统生成。', 'type' => 'string', 'example' => '42000011392021112380********'], + 'Detail' => ['description' => '设备播报详情。', 'type' => 'string', 'example' => 'Bat_Pt:99 RSSI: -92'], ], ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"A42CAB88-6E26-4DC7-9A35-584D17E82DE0\\",\\n \\"Success\\": true,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 1,\\n \\"CpuArch\\": \\"x86-64\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"IsBuiltIn\\": false,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"Runtime\\": \\"c\\",\\n \\"DriverName\\": \\"MyLedDriver\\",\\n \\"DriverProtocol\\": \\"customize\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n A42CAB88-6E26-4DC7-9A35-584D17E82DE0\\r\\n \\r\\n \\r\\n customize\\r\\n 1\\r\\n c\\r\\n 2019-12-01 22:28:00\\r\\n fec565038d7544978d9aed5c1a******\\r\\n MyLedDriver\\r\\n 2019-12-01 22:28:00\\r\\n false\\r\\n x86-64\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量查询驱动信息', - 'summary' => '批量查询驱动信息。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享主账号配额。'."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"An internal error occurred. Try again later.\\",\\n \\"RequestId\\": \\"671D0F8F-FDC7-4B12-93FA-336C079C965A\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"RetryCount\\": 1,\\n \\"Success\\": true,\\n \\"DeviceErrorMessage\\": \\"speech model not found\\",\\n \\"MaxRetryCount\\": 2,\\n \\"DeviceErrorCode\\": \\"1\\",\\n \\"Id\\": \\"42000011392021112380********\\",\\n \\"Detail\\": \\"Bat_Pt:99 RSSI: -92\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n671D0F8F-FDC7-4B12-93FA-336C079C965A\\n\\n 2\\n 0\\n 42000011392021112380********\\n Bat_Pt:99 RSSI: -92\\n true\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'SyncSpeechByCombination', + 'summary' => '调用该接口同步组合播报设备中的语料。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryEdgeDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'TestSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'Voice', + 'in' => 'formData', + 'schema' => ['description' => '语料播报声音,由系统预设,例如标准女声、标准男声等。可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中`VoiceList`中`Value`的值。'."\n", 'type' => 'string', 'required' => true, 'example' => 'Siyue'], + ], + [ + 'name' => 'Volume', + 'in' => 'formData', + 'schema' => ['description' => '音量大小,取值范围:0~100。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'default' => '50'], + ], + [ + 'name' => 'ProjectCode', + 'in' => 'formData', + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。如果没有项目,可以创建项目后获取项目ID。'."\n", 'type' => 'string', 'required' => true, 'example' => '4de2c367****8c585e5992**'], + ], + [ + 'name' => 'SpeechRate', + 'in' => 'formData', + 'schema' => ['description' => '播报速度,取值范围:-500~500。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '-500', 'example' => '0', 'default' => '0'], + ], + [ + 'name' => 'Text', + 'in' => 'formData', + 'schema' => ['description' => '语料文本,当语料类型选择为自定义语料时,该参数必选。语料文本支持英文字母、汉字和空格,长度为1~100个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中,每页显示的记录数量。最大取值30,最小取值1,默认取值为10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'name' => 'SpeechType', + 'in' => 'formData', + 'schema' => ['description' => '语料类型,分为自定义语料和常用语料。'."\n" + ."\n" + .'> 不传入此参数时或传入**custom**,必须传入参数Text,否则调用会失败。'."\n" + ."\n" + .'- 自定义语料(默认):取值为**custom**,是自定义语料时,必须填写语料标识和语料文本。'."\n" + .'- 常用语料:由系统预置的常用语料文本,包括以下类型:'."\n" + .' - 数字:取值为**number**,包含:数字0~9,点,幺。'."\n" + .' - 量词:取值为**measure_word**,包含:个,十,百,千,万,十万,百万,亿等。'."\n" + .' - 货币单位:取值为**monetary_unit**,包含:分,角,元等。'."\n" + .' - 时间单位:取值为**time_unit**,包含:时,分,秒,月,日,年等。'."\n" + .' - 单位时间:取值为**unit_time**,包含:每秒,每分,每小时,每天,每周,每月,每年等。'."\n" + .' - 长度单位:取值为**length_unit**,包含:毫米,厘米,分米,米,千米,公里,英寸,英尺,英里等。', 'type' => 'string', 'required' => false, 'example' => 'custom'], ], [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动类型:'."\n" - ."\n" - .'- **0**:表示官方驱动。'."\n" - .'- **1**:表示自研驱动。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'name' => 'AudioFormat', + 'in' => 'formData', + 'schema' => ['description' => '音频格式,仅支持**wav**、**mp3**、**amr**格式。', 'type' => 'string', 'required' => false, 'example' => 'wav'], ], [ - 'name' => 'DriverName', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动名称。若查询驱动信息时,需要匹配驱动名称,则填写该参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'MyledDriver', - ], + 'name' => 'SoundCodeConfig', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => '声码配置,包含字段如下:'."\n" + ."\n\n" + .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" + ."\n" + .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', 'type' => 'object', 'required' => false, 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}'], ], [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'name' => 'EnableSoundCode', + 'in' => 'formData', + 'schema' => ['description' => '是否启用声码,若传入了true,必须传入参数SoundCodeConfig,否则调用会失败。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -60855,297 +42801,151 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E0BD540E-DCFE-4602-B6D1-D208E8594BF7', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'speech solution has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], 'Data' => [ - 'description' => '调用成功时,返回的数据。', 'type' => 'object', + 'itemNode' => true, 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '官方驱动或自研驱动的总数量: '."\n" - ."\n" - .'- 请求参数**Type**的值为**0**,则此处是官方驱动的总数量。'."\n" - .'- 请求参数**Type**的值为**1**,则此处是自研驱动的总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DriverList' => [ - 'description' => '驱动信息列表。', + 'items' => [ + 'description' => '语料试听的音频下载地址列表。'."\n", 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'Type' => [ - 'description' => '驱动类型:'."\n" - ."\n" - .'- **0**:表示官方驱动。'."\n" - .'- **1**:表示自研驱动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'CpuArch' => [ - 'description' => '驱动适配的CPU架构,有如下几种架构:'."\n" - ."\n" - .'- **armv7**'."\n" - .'- **armv7-hf**'."\n" - .'- **aarch64**'."\n" - .'- **x86-64**'."\n" - .'- **x86**', - 'type' => 'string', - 'example' => 'x86-64', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - 'IsBuiltIn' => [ - 'description' => '驱动文件是否内置:'."\n" - ."\n" - .'- **true**:表示驱动为内置驱动,即驱动代码已预置到网关上。'."\n" - .'- **false**:表示驱动为非内置驱动。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'IsApply' => [ - 'description' => '该驱动是否需要申请才能使用。当前仅支持**false**值。', - 'type' => 'boolean', - 'example' => 'false', - ], - 'Runtime' => [ - 'description' => '驱动的语言类型,有如下三种类型:'."\n" - ."\n" - .'- **nodejs8**:表示Node.js v8。'."\n" - .'- **python3**:表示Python v3.5。'."\n" - .'- **c**: 表示C语言。', - 'type' => 'string', - 'example' => 'c', - ], - 'DriverName' => [ - 'description' => '驱动名称。', - 'type' => 'string', - 'example' => 'MyLedDriver', - ], - 'DriverProtocol' => [ - 'description' => '驱动通信协议:'."\n" - ."\n" - .'- **modbus**:表示Modbus通信协议。'."\n" - .'- **opc-ua**:表示OPC UA通信协议。'."\n" - .'- **customize**:表示自定义通信协议。', - 'type' => 'string', - 'example' => 'customize', - ], - ], - ], + 'items' => ['description' => '语料试听的音频下载地址,若是语料包则返回各个语料的地址。'."\n", 'type' => 'string', 'example' => ' [ "http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723"]'], ], ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E0BD540E-DCFE-4602-B6D1-D208E8594BF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DriverList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"Type\\": 1,\\n \\"CpuArch\\": \\"x86-64\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"IsBuiltIn\\": false,\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"IsApply\\": false,\\n \\"Runtime\\": \\"c\\",\\n \\"DriverName\\": \\"MyLedDriver\\",\\n \\"DriverProtocol\\": \\"customize\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E0BD540E-DCFE-4602-B6D1-D208E8594BF7\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n customize\\r\\n 1\\r\\n c\\r\\n 2019-12-01 22:28:00\\r\\n fec565038d7544978d9aed5c1a******\\r\\n MyLedDriver\\r\\n 2019-12-01 22:28:00\\r\\n false\\r\\n false\\r\\n x86-64\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'QueryEdgeDriver', - 'summary' => '调用该接口分页查询驱动信息。', - 'description' => '## 限制条件'."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"speech solution has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"items\\": [\\n \\" [ \\\\\\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\\\\\"]\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\n\\n [ \\"http://****.oss-cn-shanghai.aliyuncs.com/speech_test_audio/CPjUL8qUtOMoQmC******.wav?Expires=1620380723\\"]\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'TestSpeech', + 'summary' => '调用该接口试听语料。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:TestSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'TestSwitch' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'DriverId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'schema' => ['type' => 'string', 'required' => true], ], [ - 'name' => 'DriverVersion', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。必须是该驱动唯一的版本号,即一个驱动不可以设置两个相同的版本号。允许中文、英文字母、数字、下划线(_)、短划线(-)和英文句号(.),长度不超过64个字符。', - 'type' => 'string', - 'required' => true, - 'example' => '1.2.0', - ], + 'schema' => ['type' => 'string', 'required' => true], ], - [ - 'name' => 'EdgeVersion', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '驱动适配的边缘版本,即该驱动只能在该边缘版本及以上版本的网关中运行。例如2.4.0,表示在v2.4.0及以上的边缘版本中运行该驱动。', - 'type' => 'string', - 'required' => true, - 'example' => '2.0.0', + 'type' => 'object', + 'properties' => [ + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], + 'IotId' => ['type' => 'string'], + ], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动描述。长度不超过256个字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'Led驱动', - ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey parameter cannot be empty.', 'description' => '入参产品ProductKey不能为空。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The DeviceName parameter cannot be empty.', 'description' => '设备名称不能为空。'], ], + ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'SourceConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'` {"ossAddress":"http://***/driver_code.zip"}`'."\n" - ."\n" - .'其中,`ossAddress`为对象存储(OSS)访问地址,如需通过API的方式上传驱动代码并获取OSS地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => '{"ossAddress":"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30c******/ck3n3koe200003h6zf******.zip"}', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:TestSwitch', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true,\\n \\"IotId\\": \\"\\"\\n}","type":"json"}]', + ], + 'TransformClientId' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DriverConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"format":"JSON","content":"{}"}`'."\n" - ."\n" - .'参数说明如下所示。'."\n" - ."\n" - .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" - .'- content:配置内容。format为KV或JSON时,请填配置内容;format为FILE时,请填OSS地址。 '."\n" - ."\n" - .' > OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"format":"JSON","content":"{\\"defaultConfig\\":\\"this is default driver config demo\\"}"}]', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'create'], + 'parameters' => [ [ - 'name' => 'ContainerConfig', + 'name' => 'IotId', 'in' => 'query', - 'schema' => [ - 'description' => '容器配置。JSON格式字符串。更多信息,请参见本文下方**ContainerConfig**表格。', - 'type' => 'string', - 'required' => false, - 'example' => '{"privileged":1,"devMappings":[],"volumeMappings":[],"hostNetworkMode":0,"portMappings":[]}', - ], + 'schema' => ['description' => '设备ID。', 'type' => 'string', 'required' => true, 'example' => 'BXPV9Ks3bxwM9fD****0000101'], ], [ - 'name' => 'ConfigCheckRule', + 'name' => 'ClientId', 'in' => 'query', - 'schema' => [ - 'description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" - ."\n" - .'参数说明如下。'."\n" - ."\n" - .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" - ."\n" - .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。'."\n" - ."\n" - .'`required`为true表示参数不能为空;false表示参数允许为空。', - 'type' => 'string', - 'required' => false, - 'example' => '{"deviceConfig":{"required":false},"driverConfig":{"required":false}}', - ], + 'schema' => ['description' => '设备标识ID。', 'type' => 'string', 'required' => true, 'example' => '9rSz********UNMWj33f000112'], ], [ - 'name' => 'Argument', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => 'JVM(Java Virtual Machine)启动参数。', - 'type' => 'string', - 'required' => false, - 'example' => '-XX:+PrintGCDetails', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-02****43'], ], ], 'responses' => [ @@ -61153,121 +42953,71 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '001ADA35-8846-4B6F-93E7-E5C076F8BB56', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。错误码详情,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。'."\n", 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。'."\n", 'type' => 'string', 'example' => '89F22330-BAEE-****-****-41BA46D6E267'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"001ADA35-8846-4B6F-93E7-E5C076F8BB56\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 001ADA35-8846-4B6F-93E7-E5C076F8BB56\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '新增驱动版本', - 'summary' => '新增驱动版本。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"89F22330-BAEE-****-****-41BA46D6E267\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n89F22330-BAEE-****-****-41BA46D6E267\\nSuccess\\ntrue\\n","errorExample":""}]', + 'title' => 'TransformClientId', + 'summary' => '一型一密免注册场景下,若设备包含多个设备标识,需调用该接口指定一个正确的设备标识,以防止非法的设备登录。', + 'description' => '## 使用说明'."\n" + .'您可调用[QueryClientIds](~~371985~~)接口,查看设备的设备标识列表。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。'."\n" - ."\n\n" - .'**ContainerConfig参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| privileged | Integer | 否 | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" - .'| hostNetworkMode | Integer | 否 | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" - .'| portMappings | List | 否 | 网络端口映射。使用宿主机host模式时无须配置此项。最多可添加10个网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" - .'| devMappings | List | 否 | 设备映射。使用特权模式时无须配置此项。最多可添加10个设备映射。格式请参考本文下方devMappings表格。 |'."\n" - .'| volumeMappings | List | 否 | 卷映射。最多可添加10个卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" - ."\n\n" - .'**portMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPort | Integer | 是 | 宿主机端口。端⼝取值范围为1~65535。 |'."\n" - .'| containerPort | Integer | 是 | 容器内端口。端⼝取值范围为1~65535。 |'."\n" - .'| protocol | Integer | 是 | 协议类型。取值有tcp和udp两种。 |'."\n" - ."\n\n" - .'**devMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPath | String | 是 | 设备名称。需要以**/dev/**开头,长度为1~128个字符。 |'."\n" - .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" - .'| comment | String | 否 | 注释信息。长度为1~128个字符。 |'."\n" - ."\n\n" - .'**volumeMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPath | String | 是 | 源路径。长度为1~128个字符,不支持空格。 |'."\n" - .'| containerPath | String | 是 | 目的路径。须填写绝对路径,不支持根目录,以正斜杠(/)开头,长度为2~128个字符,不支持空格。 |'."\n" - .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|', + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DeleteEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:TransformClientId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'TriggerSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DriverId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], [ - 'name' => 'DriverVersion', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '1.2.0', - ], + 'schema' => ['description' => '边缘实例ID。在物联网平台控制台的**边缘计算** > **边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => 'F3APY0tPLhmgGtx0****'], ], ], 'responses' => [ @@ -61275,186 +43025,137 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'J82E857F-T6B9-4FDE-96B8-E4BE97095D1A', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"J82E857F-T6B9-4FDE-96B8-E4BE97095D1A\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n J82E857F-T6B9-4FDE-96B8-E4BE97095D1A\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '删除驱动的某一版本', - 'summary' => '删除驱动的某一版本。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA989EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '触发场景联动规则', + 'summary' => '调用该接口触发场景联动规则。', 'description' => '## 限制条件'."\n" - ."\n" - .'- 已发布的驱动版本,不允许删除。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:TriggerSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UnbindApplicationFromEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'DriverId', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DriverVersion', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '1.2.0', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'Tb4r9k3GWHJFWv******'], ], [ - 'name' => 'EdgeVersion', + 'name' => 'ApplicationId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动适配的边缘版本,即该驱动只能在该边缘版本及以上版本的网关中运行。例如2.4.0,表示在v2.4.0及以上的边缘版本中运行该驱动。', - 'type' => 'string', - 'required' => true, - 'example' => '2.0.0', - ], + 'schema' => ['description' => '边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标悬浮在目标应用名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => '361368ba5a094da9bf5625d092******'], ], - [ - 'name' => 'Description', - 'in' => 'query', + ], + 'responses' => [ + 200 => [ 'schema' => [ - 'description' => '驱动描述。长度不超过256个字节。', - 'type' => 'string', - 'required' => false, - 'example' => 'Led驱动(更新描述)', + 'type' => 'object', + 'properties' => [ + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', ], ], + ], + 'errorCodes' => [], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '从边缘实例中移除边缘应用', + 'summary' => '从边缘实例中移除边缘应用。', + 'description' => '## 限制条件'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'SourceConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'` {"ossAddress":"http://***/driver_code.zip"}`'."\n" - ."\n" - .'其中,`ossAddress`为对象存储(OSS)访问地址,如需通过API的方式上传驱动代码并获取OSS地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => '{"ossAddress":"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30c******/ck3n3koe200003h6zf******.zip"}', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindApplicationFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], + ], + ], + 'UnbindDriverFromEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ [ - 'name' => 'DriverConfig', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"format":"JSON","content":"{}"}`'."\n" - ."\n" - .'参数说明如下所示。'."\n" - ."\n" - .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" - .'- content:配置内容。format为KV或JSON时,请填配置内容;format为FILE时,请填OSS地址。 '."\n" - ."\n" - .' > OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => '[{"format":"JSON","content":"{\\"defaultConfig\\":\\"this is default driver config demo\\"}"}]', - ], + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'delete'], + 'parameters' => [ [ - 'name' => 'ContainerConfig', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '容器配置。JSON格式字符串。更多信息,请参见本文下方ContainerConfig表格。', - 'type' => 'string', - 'required' => false, - 'example' => '{"privileged":1,"devMappings":[],"volumeMappings":[],"hostNetworkMode":0,"portMappings":[]}', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ConfigCheckRule', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" - ."\n" - .'参数说明如下。'."\n" - ."\n" - .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" - ."\n" - .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。'."\n" - ."\n" - .'`required`为true表示参数不能为空;false表示参数允许为空。', - 'type' => 'string', - 'required' => false, - 'example' => '{"deviceConfig":{"required":false},"driverConfig":{"required":false}}', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'Argument', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => 'JVM(Java Virtual Machine)启动参数。', - 'type' => 'string', - 'required' => false, - 'example' => '-XX:+PrintGCDetails', - ], + 'schema' => ['description' => '要移除的驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc959228****'], ], ], 'responses' => [ @@ -61462,124 +43163,68 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7757A782-6C24-4325-A663-C62857F32E87', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '28D159F4-980F-423D-95F0-F705E9DFC016'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"7757A782-6C24-4325-A663-C62857F32E87\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 7757A782-6C24-4325-A663-C62857F32E87\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '更新驱动版本', - 'summary' => '调用该接口更新驱动版本。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"28D159F4-980F-423D-95F0-F705E9DFC016\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B15AF459-6A65-44DB-8047-1BDF3E68BE3D\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '将驱动从边缘实例中移除', + 'summary' => '调用该接口将驱动从边缘实例中移除。', 'description' => '## 限制条件'."\n" - ."\n" - .'- 请求参数中置空的参数(不填写参数值),将清空原来的参数值配置。'."\n" - .'- 已发布的驱动版本,不允许更新。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .' > RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。'."\n" - ."\n\n" - .'**ContainerConfig参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| privileged | Integer | 否 | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" - .'| hostNetworkMode | Integer | 否 | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" - .'| portMappings | List | 否 | 网络端口映射。使用宿主机host模式时无须配置此项。最多可添加10个网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" - .'| devMappings | List | 否 | 设备映射。使用特权模式时无须配置此项。最多可添加10个设备映射。格式请参考本文下方devMappings表格。 |'."\n" - .'| volumeMappings | List | 否 | 卷映射。最多可添加10个卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" - ."\n\n" - .'**portMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPort | Integer | 是 | 宿主机端口。端⼝取值范围为1~65535。 |'."\n" - .'| containerPort | Integer | 是 | 容器内端口。端⼝取值范围为1~65535。 |'."\n" - .'| protocol | Integer | 是 | 协议类型。取值有tcp和udp两种。 |'."\n" - ."\n\n" - .'**devMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPath | String | 是 | 设备名称。需要以**/dev/**开头,长度为1~128个字符。 |'."\n" - .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" - .'| comment | String | 否 | 注释信息。长度为1~128个字符。 |'."\n" - ."\n\n" - .'**volumeMappings参数说明**'."\n" - .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" - .'| --- | --- | --- | --- |'."\n" - .'| hostPath | String | 是 | 源路径。长度为1~128个字符,不支持空格。 |'."\n" - .'| containerPath | String | 是 | 目的路径。须填写绝对路径,不支持根目录,以正斜杠(/)开头,长度为2~128个字符,不支持空格。 |'."\n" - .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|', + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见 [公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindDriverFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UnbindLicenseProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '企业版实例的实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => false, 'example' => 'iot-s3***'], ], [ - 'name' => 'DriverId', + 'name' => 'LicenseCode', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'schema' => ['description' => 'License类型(音视频规格),可取值:**480P**、**720P**。'."\n" + ."\n" + .'您可在**音视频通信服务**控制台的**License管理>产品授权**页面,查看目标产品的License类型。', 'type' => 'string', 'required' => true, 'example' => '480P'], ], [ - 'name' => 'DriverVersion', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '1.2.0', - ], + 'schema' => ['description' => '待取消授权的产品的ProductKey。'."\n" + ."\n" + .'您可在**音视频通信服务**控制台的**License管理>产品授权**页面,查看目标产品的**Product Key**。', 'type' => 'string', 'required' => true, 'example' => 'gq62z***'], ], ], 'responses' => [ @@ -61587,248 +43232,66 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '6ECE664B-E670-47BA-A6AD-62B9F35E3A7B', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'ConfigCheckRule' => [ - 'description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" - ."\n" - .'参数说明如下。'."\n" - ."\n" - .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" - .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。', - 'type' => 'string', - 'example' => '{\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - 'EdgeVersion' => [ - 'description' => '驱动适配的边缘版本。', - 'type' => 'string', - 'example' => '2.0.0', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'VersionState' => [ - 'description' => '驱动版本状态。'."\n" - ."\n" - .'- 0:表示该版本未发布。'."\n" - .'- 1:表示该版本已发布。', - 'type' => 'string', - 'example' => '0', - ], - 'ContainerConfig' => [ - 'description' => '容器配置。JSON格式字符串,参数说明,请参见本文下方ContainerConfig表格。', - 'type' => 'string', - 'example' => '{\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}', - ], - 'Description' => [ - 'description' => '驱动描述。', - 'type' => 'string', - 'example' => 'Led驱动', - ], - 'DriverConfig' => [ - 'description' => '驱动配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"format":"JSON","content":"{}"}`'."\n" - ."\n" - .'参数说明如下所示。'."\n" - ."\n" - .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" - .'- content:配置内容。format为KV或JSON时,此处为配置内容;format为FILE时,此处为OSS地址。 ', - 'type' => 'string', - 'example' => '[{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]', - ], - 'DriverVersion' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'example' => '1.2.0', - ], - 'Argument' => [ - 'description' => 'JVM(Java Virtual Machine)启动参数。', - 'type' => 'string', - 'example' => '-XX:+PrintGCDetails', - ], - 'SourceConfig' => [ - 'description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"ossAddress":"http://***/driver_code.zip","temporaryOssAddress":"http://***/driver_code.zip?Expires***"}`'."\n" - ."\n" - .'其中,`ossAddress`为对象存储(OSS)访问地址,`temporaryOssAddress`为可以直接下载的临时链接,有效期5分钟。', - 'type' => 'string', - 'example' => '{\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zfg******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires\\u003d1575******\\u0026OSSAccessKeyId\\u003daS4MT0IYrP******\\u0026Signature\\u003dm6cpmcaB8rm3YfbkhTYgb0******\\"}', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见本文下方的**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Data' => ['description' => '表示取消产品授权License是否成功。'."\n" + ."\n" + .'- **true**:取消产品授权License成功。'."\n" + .'- **false**:取消产品授权License失败。', 'type' => 'boolean', 'example' => 'true'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4F94B97-1D64-4080-BFD2-67461667AA43'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"6ECE664B-E670-47BA-A6AD-62B9F35E3A7B\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"ConfigCheckRule\\": \\"{\\\\\\\\\\\\\\"deviceConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false},\\\\\\\\\\\\\\"driverConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false}}\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"EdgeVersion\\": \\"2.0.0\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"VersionState\\": \\"0\\",\\n \\"ContainerConfig\\": \\"{\\\\\\\\\\\\\\"devMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"hostNetworkMode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"portMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"privileged\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"volumeMappings\\\\\\\\\\\\\\":[]}\\",\\n \\"Description\\": \\"Led驱动\\",\\n \\"DriverConfig\\": \\"[{\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"defaultConfig\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this is default driver config demo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"format\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"JSON\\\\\\\\\\\\\\"}]\\",\\n \\"DriverVersion\\": \\"1.2.0\\",\\n \\"Argument\\": \\"-XX:+PrintGCDetails\\",\\n \\"SourceConfig\\": \\"{\\\\\\\\\\\\\\"ossAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zfg******.zip\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"temporaryOssAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires\\\\\\\\u003d1575******\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYrP******\\\\\\\\u0026Signature\\\\\\\\u003dm6cpmcaB8rm3YfbkhTYgb0******\\\\\\\\\\\\\\"}\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 6ECE664B-E670-47BA-A6AD-62B9F35E3A7B\\r\\n \\r\\n {\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}\\r\\n 2019-12-01 22:28:01\\r\\n fec565038d7544978d9aed5c1a******\\r\\n Led驱动\\r\\n 1.2.0\\r\\n {\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires=1575******&OSSAccessKeyId=aS4MT0IYrPSPj6******;Signature=m6cpmcaB8rm3YfbkhTYgb0W******\\"}\\r\\n 2019-12-01 22:28:01\\r\\n [{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]\\r\\n 2.0.0\\r\\n {\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}\\r\\n 0\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询驱动某一版本的信息', - 'summary' => '查询驱动某一版本的信息。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。 ', - 'responseParamsDescription' => ' **ContainerConfig参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| privileged | Integer | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" - .'| hostNetworkMode | Integer | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" - .'| portMappings | List | 网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" - .'| devMappings | List | 设备映射。格式请参考本文下方devMappings表格。 |'."\n" - .'| volumeMappings | List | 卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" - ."\n" - .'
**portMappings参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPort | Integer | 宿主机端口。 |'."\n" - .'| containerPort | Integer | 容器内端口。 |'."\n" - .'| protocol | Integer | 协议类型。取值有tcp和udp两种。 |'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.rtc.service.notSigned', 'errorMessage' => 'The RTC service is not activated.', 'description' => '音视频通信服务未开通。'], + ['errorCode' => 'iot.rtc.invalid.license.code', 'errorMessage' => 'invalid license code', 'description' => ''], + ['errorCode' => 'iot.rtc.invalid.product.key', 'errorMessage' => 'invalid product key', 'description' => '无效的产品KEY'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4F94B97-1D64-4080-BFD2-67461667AA43\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4F94B97-1D64-4080-BFD2-67461667AA43\\ntrue\\ntrue\\n","errorExample":""}]', + 'title' => '取消指定产品的License授权', + 'summary' => '调用该接口取消指定产品的License授权。', + 'description' => '## 使用说明'."\n" + .'已为目标产品授权过License。具体操作,请参见[BindLicenseProduct](~~427956~~)或[产品授权](~~427937~~)。'."\n" ."\n\n" - .'**devMappings参数说明**'."\n" + .'## QPS限制'."\n" ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPath | String | 设备名称。 |'."\n" - .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" - .'| comment | String | 注释信息。 |'."\n" - ."\n\n" - .'**volumeMappings参数说明**'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPath | String | 源路径。 |'."\n" - .'| containerPath | String | 目的路径。 |'."\n" - .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|', + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'QueryEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UnbindRoleFromEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], - ], - [ - 'name' => 'CurrentPage', - 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], - ], - [ - 'name' => 'DriverId', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - ], - [ - 'name' => 'DriverVersion', - 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。设置该参数表示仅查询该版本号匹配的驱动版本信息。', - 'type' => 'string', - 'required' => false, - 'example' => 'led驱动', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'VersionState', + 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本状态。'."\n" - ."\n" - .'- 0:表示查询未发布的驱动版本。'."\n" - .'- 1:表示查询已发布的驱动版本。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的 **边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'BlYJyXZpLBtkmR******'], ], ], 'responses' => [ @@ -61836,278 +43299,67 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'ABA0CD1F-4270-42FE-84AD-D612240196F7', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '驱动数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DriverVersionList' => [ - 'description' => '驱动版本列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'ConfigCheckRule' => [ - 'description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" - ."\n" - .'参数说明如下。'."\n" - ."\n" - .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" - ."\n" - .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。', - 'type' => 'string', - 'example' => '{\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}', - ], - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => 'fec565038d7544978d9aed5c1a******', - ], - 'EdgeVersion' => [ - 'description' => '驱动适配的边缘版本。', - 'type' => 'string', - 'example' => '2.0.0', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新驱动的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1581912859713', - ], - 'VersionState' => [ - 'description' => '驱动版本状态。'."\n" - ."\n" - .'- 0:表示该版本未发布。'."\n" - .'- 1:表示该版本已发布。', - 'type' => 'string', - 'example' => '0', - ], - 'ContainerConfig' => [ - 'description' => '容器配置。JSON格式字符串参数说明,请参见本文下方ContainerConfig表格。', - 'type' => 'string', - 'example' => '{\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}', - ], - 'Description' => [ - 'description' => '驱动描述。', - 'type' => 'string', - 'example' => 'Led驱动', - ], - 'DriverConfig' => [ - 'description' => '驱动配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"format":"JSON","content":"{}"}`'."\n" - ."\n" - .'参数说明如下所示。'."\n" - ."\n" - .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" - .'- content:配置内容。format为KV或JSON时,此处为配置内容;format为FILE时,此处为OSS地址。', - 'type' => 'string', - 'example' => '[{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]', - ], - 'DriverVersion' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'example' => '1.2.0', - ], - 'Argument' => [ - 'description' => 'JVM(Java Virtual Machine)启动参数。', - 'type' => 'string', - 'example' => '-XX:+PrintGCDetails', - ], - 'SourceConfig' => [ - 'description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" - ."\n" - .'`{"ossAddress":"http://***/driver_code.zip","temporaryOssAddress":"http://***/driver_code.zip?Expires***"}`'."\n" - ."\n" - .'其中,`ossAddress`为对象存储(OSS)访问地址,`temporaryOssAddress`为可以直接下载的临时链接,有效期5分钟。', - 'type' => 'string', - 'example' => '{\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip?Expires\\u003d1575******\\u0026OSSAccessKeyId\\u003daS4MT0IYr******\\u0026Signature\\u003dm6cpmcaB8rm3YfbkhTYgb0W******\\"}', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '270097AC-FFC3-4D2F-B48D-384BA1EA9962'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"ABA0CD1F-4270-42FE-84AD-D612240196F7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DriverVersionList\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1581912859713,\\n \\"ConfigCheckRule\\": \\"{\\\\\\\\\\\\\\"deviceConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false},\\\\\\\\\\\\\\"driverConfig\\\\\\\\\\\\\\":{\\\\\\\\\\\\\\"required\\\\\\\\\\\\\\":false}}\\",\\n \\"DriverId\\": \\"fec565038d7544978d9aed5c1a******\\",\\n \\"EdgeVersion\\": \\"2.0.0\\",\\n \\"GmtModifiedTimestamp\\": 1581912859713,\\n \\"VersionState\\": \\"0\\",\\n \\"ContainerConfig\\": \\"{\\\\\\\\\\\\\\"devMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"hostNetworkMode\\\\\\\\\\\\\\":0,\\\\\\\\\\\\\\"portMappings\\\\\\\\\\\\\\":[],\\\\\\\\\\\\\\"privileged\\\\\\\\\\\\\\":1,\\\\\\\\\\\\\\"volumeMappings\\\\\\\\\\\\\\":[]}\\",\\n \\"Description\\": \\"Led驱动\\",\\n \\"DriverConfig\\": \\"[{\\\\\\\\\\\\\\"content\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"defaultConfig\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"this is default driver config demo\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"}\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"format\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"JSON\\\\\\\\\\\\\\"}]\\",\\n \\"DriverVersion\\": \\"1.2.0\\",\\n \\"Argument\\": \\"-XX:+PrintGCDetails\\",\\n \\"SourceConfig\\": \\"{\\\\\\\\\\\\\\"ossAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip\\\\\\\\\\\\\\",\\\\\\\\\\\\\\"temporaryOssAddress\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb3******/ck3n3koe200003h6zf******.zip?Expires\\\\\\\\u003d1575******\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYr******\\\\\\\\u0026Signature\\\\\\\\u003dm6cpmcaB8rm3YfbkhTYgb0W******\\\\\\\\\\\\\\"}\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ABA0CD1F-4270-42FE-84AD-D612240196F7\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n {\\"devMappings\\":[],\\"hostNetworkMode\\":0,\\"portMappings\\":[],\\"privileged\\":1,\\"volumeMappings\\":[]}\\r\\n 2019-12-01 22:28:01\\r\\n fec565038d7544978d9aed5c1a******\\r\\n Led驱动\\r\\n 1.2.0\\r\\n {\\"ossAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip\\",\\"temporaryOssAddress\\":\\"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30******/ck3n3koe200003h6zf******.zip?Expires=1575******&OSSAccessKeyId=aS4MT0IYrPS******&Signature=m6cpmcaB8rm3YfbkhTYgb0WO******\\"}\\r\\n 2019-12-01 22:28:01\\r\\n [{\\"content\\":\\"{\\\\\\"defaultConfig\\\\\\":\\\\\\"this is default driver config demo\\\\\\"}\\",\\"format\\":\\"JSON\\"}]\\r\\n 2.0.0\\r\\n {\\"deviceConfig\\":{\\"required\\":false},\\"driverConfig\\":{\\"required\\":false}}\\r\\n 0\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '分页查询驱动版本列表', - 'summary' => '分页查询驱动版本列表。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"270097AC-FFC3-4D2F-B48D-384BA1EA9962\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 270097AC-FFC3-4D2F-B48D-384BA1EA9962\\n Success\\n true\\n","errorExample":""}]', + 'title' => '解除边缘实例中已绑定的角色', + 'summary' => '调用该接口解除边缘实例中已绑定的角色。', 'description' => '## 限制条件'."\n" .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" .'> RAM用户共享主账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' **ContainerConfig参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| privileged | Integer | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" - .'| hostNetworkMode | Integer | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" - .'| portMappings | List | 网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" - .'| devMappings | List | 设备映射。格式请参考本文下方devMappings表格。 |'."\n" - .'| volumeMappings | List | 卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" - ."\n" - .'
**portMappings参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPort | Integer | 宿主机端口。 |'."\n" - .'| containerPort | Integer | 容器内端口。 |'."\n" - .'| protocol | Integer | 协议类型。取值有tcp和udp两种。 |'."\n" - ."\n\n" - .'**devMappings参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPath | String | 设备名称。 |'."\n" - .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" - .'| comment | String | 注释信息。 |'."\n" - ."\n\n" - .'**volumeMappings参数说明**'."\n" - ."\n" - .'| 名称 | 类型 | 描述 |'."\n" - .'| --- | --- | --- |'."\n" - .'| hostPath | String | 源路径。 |'."\n" - .'| containerPath | String | 目的路径。 |'."\n" - .'| permission | String | 读写权限。
ro:只读权限。
rw:读写权限。
|', + 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateEdgeOssPreSignedAddress' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindRoleFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UnbindSceneRuleFromEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ - [ - 'name' => 'ResourceId', - 'in' => 'query', - 'schema' => [ - 'description' => '资源ID。目前仅支持驱动资源,因此此处为驱动ID。'."\n" - ."\n" - .'可在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取驱动ID。您也可以调用[QueryEdgeDriver](~~155776~~)接口获取驱动ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'df9b9f441*********4c90d0c21d14', - ], - ], - [ - 'name' => 'FileName', - 'in' => 'query', - 'schema' => [ - 'description' => '文件名,格式为`<文件名>.<后缀>`。', - 'type' => 'string', - 'required' => true, - 'example' => 'testfile.zip', - ], - ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'Type', - 'in' => 'query', - 'schema' => [ - 'description' => '文件内容类型。有如下三种类型:'."\n" - ."\n" - .'- DRIVER_VERSION_CONTENT:驱动某一版本的代码。'."\n" - .'- DRIVER_VERSION_DEFAULT_CONFIG:驱动某一版本的默认配置。'."\n" - .'- INSTANCE_DRIVER_VERSION_CONFIG:边缘实例驱动某一版本的配置。', - 'type' => 'string', - 'required' => true, - 'example' => 'DRIVER_VERSION_CONTENT', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。'."\n" - ."\n" - .'> 当**Type**参数取值为**INSTANCE_DRIVER_VERSION_CONFIG**时,此项不可为空。', - 'type' => 'string', - 'required' => false, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'llL44UVXUqb9m5******'], ], [ - 'name' => 'ResourceVersion', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '资源版本。目前仅支持驱动资源,因此此处为驱动版本。', - 'type' => 'string', - 'required' => true, - 'example' => '2.0.0', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], ], 'responses' => [ @@ -62115,116 +43367,85 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '91E2BFA2-ECD7-4E11-B36B-66BCC4773922', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'OssAddress' => [ - 'description' => 'OSS地址。', - 'type' => 'string', - 'example' => 'http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip', - ], - 'OssPreSignedAddress' => [ - 'description' => 'OSS预签名地址。更多信息,请参见[OSS文档](~~32016~~)。', - 'type' => 'string', - 'example' => 'http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires\\u003d1581586402\\u0026OSSAccessKeyId\\u003daS4MT0IYrP******\\u0026Signature\\u003dIUUjZ881H3rUoCOwjMXPmGbw******', - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"91E2BFA2-ECD7-4E11-B36B-66BCC4773922\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"OssAddress\\": \\"http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip\\",\\n \\"OssPreSignedAddress\\": \\"http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires\\\\\\\\u003d1581586402\\\\\\\\u0026OSSAccessKeyId\\\\\\\\u003daS4MT0IYrP******\\\\\\\\u0026Signature\\\\\\\\u003dIUUjZ881H3rUoCOwjMXPmGbw******\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 91E2BFA2-ECD7-4E11-B36B-66BCC4773922\\r\\n \\r\\n http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip?Expires=1581586402&OSSAccessKeyId=aS4MT0IYrP******&Signature=IUUjZ881H3rUoCOwjMXPmGbw******\\r\\n http://xxxx.oss-cn-shanghai.aliyuncs.com/driver/a534d3b81*******8fe7da0/DRIVER_VERSION_CONTENT/df9b9f441*********4c90d0c21d14/2.0.0/1581586102750/driver_code.zip\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '创建对象存储OSS预签名地址', - 'summary' => '创建对象存储 OSS 预签名地址。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '从边缘实例中移除场景联动规则', + 'summary' => '调用该接口,从边缘实例中移除场景联动规则。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" ."\n" .'> RAM用户共享主账号配额。', 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BindApplicationToEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindSceneRuleFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UnsubscribeTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-n6w1y59****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'Tb4r9k3GWHJFWv******', - ], + 'schema' => ['description' => '设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ApplicationId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标悬浮在目标应用名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => '361368ba5a094da9bf5625d092******', - ], + 'schema' => ['description' => '设备的名称。', 'type' => 'string', 'required' => true, 'example' => 'device1'], ], [ - 'name' => 'ApplicationVersion', + 'name' => 'Topic', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '边缘应用的版本号。', - 'type' => 'string', + 'description' => '要取消订阅的Topic列表。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], 'required' => true, - 'example' => '3.7', + 'example' => '/a1BwAGV****/device1/user/get', + 'maxItems' => 10, ], ], ], @@ -62233,91 +43454,89 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '86B23D5F-BF86-4F29-82E2-686D7B4D9AAA', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用结果状态码:'."\n" + .'- 调用成功,返回空值。'."\n" + .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => '400'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'The unsub topic list is empty.'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55***B7-4***-4***-8***-D3******F565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'FailureTopics' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'topic' => [ + 'type' => 'array', + 'items' => ['description' => '取消订阅失败的Topic列表。', 'type' => 'object', 'example' => '/a1BwAGV****/device1/user/get'], + 'description' => '', + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"86B23D5F-BF86-4F29-82E2-686D7B4D9AAA\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 86B23D5F-BF86-4F29-82E2-686D7B4D9AAA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '绑定边缘应用到边缘实例', - 'summary' => '绑定边缘应用到边缘实例。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'Iot.System.BillIsOverDue', 'errorMessage' => 'Your account has overdue payments. Go to the expense center and add funds to your account.', 'description' => '您已欠费超期,请到账户中心充值!'], + ['errorCode' => 'Iot.MessageBroker.EmptyUnSubTopicList', 'errorMessage' => 'The unsub topic list is empty.', 'description' => '取消订阅的主题列表为空。'], + ['errorCode' => 'Iot.MessageBroker.InvalidFormattedTopicName', 'errorMessage' => 'The topic format specified while publishing the message is incorrect.', 'description' => '发送消息的主题格式错误。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ], + 403 => [ + ['errorCode' => 'Iot.Device.NotDeviceOwner', 'errorMessage' => 'You are not the device owner.', 'description' => '当前操作者不是设备的拥有者。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"The unsub topic list is empty.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"topic\\": [\\n {\\n \\"test\\": \\"test\\",\\n \\"test2\\": 1\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55***B7-4***-4***-8***-D3******F565\\n\\n /a1BwAGV****/device1/user/get\\n\\n\\ntrue\\n","errorExample":""}]', + 'title' => 'UnsubscribeTopic', + 'summary' => '调用接口UnsubscribeTopic为指定设备取消已订阅的指定Topic。', + 'description' => '## QPS限制'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数](~~87387~~)文档。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'UnbindApplicationFromEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateConsumerGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'NewGroupName', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'Tb4r9k3GWHJFWv******', - ], + 'schema' => ['description' => '消费组的新名称。支持中文汉字、英文字母、数字和下划线(_),长度为4~30个字符,一个汉字计为两个字符。', 'type' => 'string', 'required' => true, 'example' => '消费组2'], ], [ - 'name' => 'ApplicationId', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标悬浮在目标应用名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => '361368ba5a094da9bf5625d092******', - ], + 'schema' => ['description' => '消费组ID。调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID。', 'type' => 'string', 'required' => true, 'example' => 'nJRaJPn5U1JITGf******'], ], ], 'responses' => [ @@ -62325,142 +43544,104 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '73B9DF43-7780-47DE-8BED-077729D28BD2'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5CA3B4EE-D865-47B0-91FD-BA7C2BC6BCC4\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '从边缘实例中移除边缘应用', - 'summary' => '从边缘实例中移除边缘应用。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"73B9DF43-7780-47DE-8BED-077729D28BD2\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73B9DF43-7780-47DE-8BED-077729D28BD2\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改指定消费组属性', + 'summary' => '使用AMQP服务端订阅时,可以调用该接口修改消费组名称。', + 'description' => '## 使用说明'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'不支持修改物联网平台提供的默认消费组。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'CreateEdgeInstanceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateDestination' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'Configuration', + 'in' => 'query', + 'schema' => ['description' => '数据目的对应的配置信息,传入格式为JSON String。不同规则动作类型所需内容不同,具体要求和示例说明,请参见[CreateDestination](~~433032~~)中**Configuration**参数描述。', 'type' => 'string', 'required' => true, 'example' => '{"topic":"/a1POX0c****/device1/user/get","topicType":1}'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'InstanceId', + 'name' => 'DestinationId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '数据目的ID。'."\n" + ."\n" + .'您可调用接口[ListDestination](~~433025~~),查询数据源列表,获取**DestinationId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '999999999999', 'minimum' => '0', 'example' => '1002'], ], [ - 'name' => 'DriverId', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '数据目的操作类型,可取值:'."\n" + ."\n" + .'- **REPUBLISH**:将解析器脚本处理后的Topic数据转发至物联网平台的另一个通信Topic。'."\n" + .'- **AMQP**:将解析器脚本处理后的Topic数据流转到AMQP消费组。'."\n" + .'- **DATAHUB**:将解析器脚本处理后的Topic数据转发至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:将解析器脚本处理后的Topic数据转发至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:将解析器脚本处理后的Topic数据发送至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:将解析器脚本处理后的Topic数据发送至阿里云函数计算服务,进行事件计算。'."\n" + .'- **OTS**:将解析器脚本处理后的Topic数据发送至阿里云表格存储(Tablestore),进行NoSQL数据存储。', 'type' => 'string', 'required' => true, 'example' => 'REPUBLISH'], ], [ - 'name' => 'ChannelName', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道名称。支持中文、英文大小写字母、数字和下划线(_),长度限制1~30个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'le_name0', - ], + 'schema' => ['description' => '数据目的名称。', 'type' => 'string', 'required' => true, 'example' => 'DataPurpose'], ], [ - 'name' => 'Configs', + 'name' => 'Description', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'key1', - ], - 'Format' => [ - 'description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'required' => true, - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容。'."\n" - ."\n" - .'- **Configs.N.Format**参数的值为KV或JSON时,此处请填写配置内容。配置内容格式,请参见[驱动通道配置说明](~~172321~~)。'."\n" - ."\n" - .'- **Configs.N.Format**参数的值为FILE时,此处请填写阿里云对象存储OSS地址。OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '{"protocol":"TCP", "ip":"1.2.3.4", "port":1}', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, - ], + 'schema' => ['description' => '数据目的描述信息。', 'type' => 'string', 'required' => false, 'example' => '数据流转至另一个Topic。'], ], ], 'responses' => [ @@ -62468,115 +43649,124 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'Data' => [ - 'description' => '调用成功时返回的驱动通道ID。', - 'type' => 'string', - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B34673EA-ECE7-44F5-BF01-40B5FAE633B6', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + ], + 'description' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.ruleng.NullRuleActionConfig', 'errorMessage' => 'The rule action configuration is empty.', 'description' => '规则动作的配置为空。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.destinationNotExists', 'errorMessage' => 'Destination not found', 'description' => ''], + ['errorCode' => 'iot.rule.DestinationNameExisted', 'errorMessage' => 'The destination name is existed', 'description' => '同名数据目的地已存在'], + ['errorCode' => 'iot.rule.InvalidDestinationName', 'errorMessage' => 'The destination name is invalid', 'description' => '数据目的名称无效'], + ['errorCode' => 'iot.ruleng.NotFoundVpcInstance', 'errorMessage' => 'The specified VPC instance does not exist', 'description' => 'vpc实例不存在'], + ['errorCode' => 'iot.ruleng.InstanceNotFound', 'errorMessage' => 'The instance not exists', 'description' => '实例不存在'], + ['errorCode' => 'iot.ruleng.TopicNotFound', 'errorMessage' => 'The topic not exists', 'description' => 'Topic不存在'], + ['errorCode' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', 'errorMessage' => 'The specified region does not support creating rules to publish messages to the specified cloud product', 'description' => '此region不支持将规则转发到该云产品'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The productKey is empty.', 'description' => ''], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.ruleng.IncorrectRegionName', 'errorMessage' => 'The regionName parameter is invalid.', 'description' => 'regionName值错误。'], + ['errorCode' => 'iot.ruleng.NullProjectOfDatahub', 'errorMessage' => 'The project in DataHub is empty', 'description' => 'DATAHUB的project为空'], + ['errorCode' => 'iot.ruleng.NullTopicInDatahubProject', 'errorMessage' => 'The project topic in DataHub is empty', 'description' => 'DATAHUB产品下的选中project的topic为空'], + ['errorCode' => 'iot.ruleng.NullRamRoleName', 'errorMessage' => 'You must specify a roleName', 'description' => 'roleName为空'], + ['errorCode' => 'iot.ruleng.NullRamRoleArn', 'errorMessage' => 'You must specify a roleArn', 'description' => 'roleArn为空'], + ['errorCode' => 'iot.ruleng.NotFoundProjectInDataHub', 'errorMessage' => 'The specified project does not exist in DataHub.', 'description' => 'DataHub中不存在此项目(project)。'], + ['errorCode' => 'iot.ruleng.NullOrEmptySchemaOfTopic', 'errorMessage' => 'The topic schema is empty', 'description' => 'Topic的schema信息为空'], + ['errorCode' => 'iot.ruleng.IncorrectSchemaValueOfTopic', 'errorMessage' => 'The specified Topic schema value is invalid', 'description' => 'Topic的schema值错误'], + ['errorCode' => 'iot.ruleng.RuleActionConfigurationIsNotJson', 'errorMessage' => 'The rule action configuration is not in the JSON format', 'description' => '规则动作配置不是JSON格式'], + ['errorCode' => 'iot.ruleng.NullOtsInstanceName', 'errorMessage' => 'The Table Store instance name is empty', 'description' => 'OTS实例名称为空'], + ['errorCode' => 'iot.ruleng.NullTableNameInOtsInstance', 'errorMessage' => 'The table name is empty in the Table Store instance', 'description' => ''], + ['errorCode' => 'iot.ruleng.OnlySameRegionSupport', 'errorMessage' => 'target region is not supported', 'description' => '只支持同节点数据流转'], + ['errorCode' => 'iot.ruleng.NotFoundTableInOtsInstance', 'errorMessage' => 'The specified table does not exist in the Table Store instance', 'description' => 'Ots不存在此表'], + ['errorCode' => 'iot.ruleng.NullServiceNameInFc', 'errorMessage' => 'The Function Compute service name is empty', 'description' => ''], + ['errorCode' => 'iot.ruleng.NullFunctionNameInFc', 'errorMessage' => 'The Function Compute function name is empty', 'description' => 'FC函数名称为空'], + ['errorCode' => 'iot.ruleng.NotFoundServiceInFc', 'errorMessage' => 'The Function Compute service does not exist', 'description' => ''], + ['errorCode' => 'iot.ruleng.NotFoundFunctionInFc', 'errorMessage' => 'The Function Compute function does not exist', 'description' => 'Fc函数不存在'], + ['errorCode' => 'iot.ruleng.OnlySupportSameRegionRds', 'errorMessage' => 'Messages can only be publish to the RDS instances on the same node', 'description' => '只支持转发到同节点的RDS'], + ['errorCode' => 'iot.messagebroker.NullTopicName', 'errorMessage' => 'The topic specified while publishing the message is empty', 'description' => ''], + ['errorCode' => 'iot.ruleng.InvalidFormattedTagInConfiguration', 'errorMessage' => 'The tag in configuration is too long', 'description' => ''], + ['errorCode' => 'iot.ruleng.InvalidFormattedShardingKeyInConfiguration', 'errorMessage' => 'The shardingKey in configuration is too long', 'description' => '配置信息参数configuration中的shardingKey过长'], + ['errorCode' => 'iot.ruleng.NullTopic', 'errorMessage' => 'The topic is null', 'description' => 'Topic为空'], + ['errorCode' => 'iot.consumer.group.InvalidConsumerGroupId', 'errorMessage' => 'Illegal consumer group ID', 'description' => '非法的消费组ID'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'UpdateDestination', + 'summary' => '调用该接口更新数据目的名称、操作类型和描述信息。', + 'description' => '## 使用说明'."\n" + ."\n" + .'调用接口[CreateDestination](~~433032~~)创建数据目的成功后,若有业务需要,您可根据返回的**DestinationId**更新对应数据目的信息。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Data\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B34673EA-ECE7-44F5-BF01-40B5FAE633B6\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B34673EA-ECE7-44F5-BF01-40B5FAE633B6\\r\\n BE0BD49EF5EF4D119D09CC1B2******\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateEdgeInstanceChannel', - 'summary' => '调用该接口创建边缘实例中的驱动通道。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', ], - 'BatchDeleteEdgeInstanceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateDeviceGroup' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'GroupId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '分组ID。分组的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'W16X8Tvdosec****'], ], [ - 'name' => 'DriverId', + 'name' => 'GroupDesc', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '修改后的分组描述。长度不超过100个字符,一个中文汉字占一个字符。', 'type' => 'string', 'required' => false, 'example' => 'test2'], ], [ - 'name' => 'ChannelIds', + 'name' => 'GroupType', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '驱动通道ID列表。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取通道ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个通道ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - 'maxItems' => 21, - ], + 'schema' => ['description' => '分组类型。'."\n" + ."\n" + .'传入**LINK_PLATFORM_DYNAMIC**时,表示动态分组。不传入时,默认为静态分组。', 'type' => 'string', 'required' => false, 'example' => 'LINK_PLATFORM_DYNAMIC'], ], ], 'responses' => [ @@ -62584,152 +43774,100 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'B78B4FD1-AE89-417B-AD55-367EBB0C6759'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C95D46F1-0B13-46C7-9FA7-FDBFCF2F9F6F\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量删除边缘实例中驱动的通道', - 'summary' => '批量删除边缘实例中驱动的通道。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"B78B4FD1-AE89-417B-AD55-367EBB0C6759\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改分组信息', + 'summary' => '调用该接口修改分组信息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateEdgeInstanceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateDeviceShadow' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DriverId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '要修改影子信息的设备所隶属的产品ProductKey。', 'type' => 'string', 'required' => true, 'example' => 'a1T27vz****'], ], [ - 'name' => 'ChannelId', + 'name' => 'DeviceName', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], + 'schema' => ['description' => '要修改影子信息的设备名称。', 'type' => 'string', 'required' => true, 'example' => 'device1'], ], [ - 'name' => 'ChannelName', + 'name' => 'ShadowMessage', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道名称。支持中文、英文大小写字母、数字和下划线(_),长度限制1~30个字符。', - 'type' => 'string', - 'required' => true, - 'example' => 'le_name_update', - ], + 'schema' => ['description' => '修改后的设备影子信息。'."\n" + .'影子信息参数中包含:'."\n" + .'- **method**:String,指定操作类型,取值:**update**。'."\n" + ."\n" + .'- **state**:String,发送给影子的具体状态,由**desired**参数表示期望的影子状态。'."\n" + ."\n" + .'- **version**:Long,设备影子的版本。'."\n" + .' - 若无需版本控制,该值设置为0。'."\n" + .' - 若需要版本控制,该值必须大于当前影子版本。'."\n" + ."\n\n" + .'>需要版本控制时,不能直接从物联网平台查询当前影子版本。因为更新和查询操作并发量高时,可能导致多个更新操作查询到同一个影子版本。基于此情况,最后一次发起的更新操作可能先完成,进而导致最终更新的影子信息不是最新的影子信息。所以,建议您本地维护影子版本,调用本接口时,从本地应用获取最新影子版本。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '{"method":"update","state":{"desired":{"color":"green"}},"version":2}'], ], [ - 'name' => 'Configs', + 'name' => 'DeltaUpdate', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '配置列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', - 'type' => 'string', - 'required' => false, - 'example' => 'key1', - ], - 'Format' => [ - 'description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'required' => true, - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容。'."\n" - ."\n" - .'- **Configs.N.Format**参数的值为KV或JSON时,此处请填写配置内容。配置内容格式,请参见[驱动通道配置说明](~~172321~~)。'."\n" - ."\n" - .'- **Configs.N.Format**参数的值为FILE时,此处请填写阿里云对象存储OSS地址。OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '{"protocol":"TCP", "ip":"1.2.3.4", "port":122}', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 21, - ], + 'schema' => ['description' => '是否增量更新设备影子**desired**参数。'."\n" + ."\n" + .'- **true**:增量更新。'."\n" + ."\n" + .'- **false**(默认):全量更新。'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false'], ], ], 'responses' => [ @@ -62737,110 +43875,126 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '60D75DC6-00BC-47B5-AB1B-0619B7830D7D', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '6754C0E7-A35D-4CC8-A684-45EB1F0008D9'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"60D75DC6-00BC-47B5-AB1B-0619B7830D7D\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 60D75DC6-00BC-47B5-AB1B-0619B7830D7D\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'UpdateEdgeInstanceChannel', - 'summary' => '调用该接口更新边缘实例中的驱动通道。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"6754C0E7-A35D-4CC8-A684-45EB1F0008D9\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n \\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n ","errorExample":""}]', + 'title' => '修改指定设备的影子信息', + 'summary' => '调用该接口修改指定设备的影子信息。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchGetEdgeInstanceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDeviceShadow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateEdgeDriverVersion' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'fec565038d7544978d9aed5c1a******'], ], [ - 'name' => 'DriverId', + 'name' => 'DriverVersion', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '驱动版本号。', 'type' => 'string', 'required' => true, 'example' => '1.2.0'], ], [ - 'name' => 'ChannelIds', + 'name' => 'EdgeVersion', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '驱动通道ID列表。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取通道ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个通道ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - 'maxItems' => 21, - ], + 'schema' => ['description' => '驱动适配的边缘版本,即该驱动只能在该边缘版本及以上版本的网关中运行。例如2.4.0,表示在v2.4.0及以上的边缘版本中运行该驱动。', 'type' => 'string', 'required' => true, 'example' => '2.0.0'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '驱动描述。长度不超过256个字节。', 'type' => 'string', 'required' => false, 'example' => 'Led驱动(更新描述)'], + ], + [ + 'name' => 'SourceConfig', + 'in' => 'query', + 'schema' => ['description' => '驱动代码来源配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'` {"ossAddress":"http://***/driver_code.zip"}`'."\n" + ."\n" + .'其中,`ossAddress`为对象存储(OSS)访问地址,如需通过API的方式上传驱动代码并获取OSS地址,请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => '{"ossAddress":"http://nova-scene-daily.oss-cn-shanghai.aliyuncs.com/driver/a8d6e4acc6941ecea8f0cfb30c******/ck3n3koe200003h6zf******.zip"}'], + ], + [ + 'name' => 'DriverConfig', + 'in' => 'query', + 'schema' => ['description' => '驱动配置。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"format":"JSON","content":"{}"}`'."\n" + ."\n" + .'参数说明如下所示。'."\n" + ."\n" + .'- format:配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。'."\n" + .'- content:配置内容。format为KV或JSON时,请填配置内容;format为FILE时,请填OSS地址。 '."\n" + ."\n" + .' > OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => false, 'example' => '[{"format":"JSON","content":"{\\"defaultConfig\\":\\"this is default driver config demo\\"}"}]'], + ], + [ + 'name' => 'ContainerConfig', + 'in' => 'query', + 'schema' => ['description' => '容器配置。JSON格式字符串。更多信息,请参见本文下方ContainerConfig表格。', 'type' => 'string', 'required' => false, 'example' => '{"privileged":1,"devMappings":[],"volumeMappings":[],"hostNetworkMode":0,"portMappings":[]}'], + ], + [ + 'name' => 'ConfigCheckRule', + 'in' => 'query', + 'schema' => ['description' => '配置校验规则。JSON格式字符串,格式如下:'."\n" + ."\n" + .'`{"deviceConfig":{"required":false},"driverConfig":{"required":false}`'."\n" + ."\n" + .'参数说明如下。'."\n" + ."\n" + .'- driverConfig:表示边缘实例中该驱动的配置校验规则。'."\n" + ."\n" + .'- deviceConfig:表示边缘实例中该驱动下设备的配置校验规则。'."\n" + ."\n" + .'`required`为true表示参数不能为空;false表示参数允许为空。', 'type' => 'string', 'required' => false, 'example' => '{"deviceConfig":{"required":false},"driverConfig":{"required":false}}'], + ], + [ + 'name' => 'Argument', + 'in' => 'query', + 'schema' => ['description' => 'JVM(Java Virtual Machine)启动参数。', 'type' => 'string', 'required' => false, 'example' => '-XX:+PrintGCDetails'], ], ], 'responses' => [ @@ -62848,185 +44002,137 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '5B86570E-C1A7-4569-BF7B-F7F09EB35BEB', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Channel' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ChannelName' => [ - 'description' => '驱动通道名称。', - 'type' => 'string', - 'example' => 'le_name0', - ], - 'ChannelId' => [ - 'description' => '驱动通道ID。', - 'type' => 'string', - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], - 'ConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Config' => [ - 'description' => '配置信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。', - 'type' => 'string', - 'example' => 'key1', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '5d6016035c1a451daf174b1051******', - ], - 'Format' => [ - 'description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容。', - 'type' => 'string', - 'example' => '{\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '7757A782-6C24-4325-A663-C62857F32E87'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"5B86570E-C1A7-4569-BF7B-F7F09EB35BEB\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Channel\\": [\\n {\\n \\"ChannelName\\": \\"le_name0\\",\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ConfigList\\": {\\n \\"Config\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"5d6016035c1a451daf174b1051******\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"protocol\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TCP\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.2.3.4\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"port\\\\\\\\\\\\\\":1}\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 5B86570E-C1A7-4569-BF7B-F7F09EB35BEB\\r\\n \\r\\n \\r\\n le_name0\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}\\r\\n 5d6016035c1a451daf174b1051******\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量查询边缘实例中的驱动通道', - 'summary' => '批量查询边缘实例中的驱动通道。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"7757A782-6C24-4325-A663-C62857F32E87\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 7757A782-6C24-4325-A663-C62857F32E87\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新驱动版本', + 'summary' => '调用该接口更新驱动版本。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'- 请求参数中置空的参数(不填写参数值),将清空原来的参数值配置。'."\n" + .'- 已发布的驱动版本,不允许更新。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享主账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。'."\n" + ."\n\n" + .'**ContainerConfig参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| privileged | Integer | 否 | 是否启动特权模式。
0:表示否。
1:表示是。
|'."\n" + .'| hostNetworkMode | Integer | 否 | 是否使用宿主机host模式。
0:表示否。
1:表示是。
|'."\n" + .'| portMappings | List | 否 | 网络端口映射。使用宿主机host模式时无须配置此项。最多可添加10个网络端口映射。格式请参考本文下方portMappings表格。 |'."\n" + .'| devMappings | List | 否 | 设备映射。使用特权模式时无须配置此项。最多可添加10个设备映射。格式请参考本文下方devMappings表格。 |'."\n" + .'| volumeMappings | List | 否 | 卷映射。最多可添加10个卷映射。格式请参考本文下方volumeMappings表格。 |'."\n" + ."\n\n" + .'**portMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPort | Integer | 是 | 宿主机端口。端⼝取值范围为1~65535。 |'."\n" + .'| containerPort | Integer | 是 | 容器内端口。端⼝取值范围为1~65535。 |'."\n" + .'| protocol | Integer | 是 | 协议类型。取值有tcp和udp两种。 |'."\n" + ."\n\n" + .'**devMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPath | String | 是 | 设备名称。需要以**/dev/**开头,长度为1~128个字符。 |'."\n" + .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|'."\n" + .'| comment | String | 否 | 注释信息。长度为1~128个字符。 |'."\n" + ."\n\n" + .'**volumeMappings参数说明**'."\n" + .'| 名称 | 类型 | 是否必需 | 描述 |'."\n" + .'| --- | --- | --- | --- |'."\n" + .'| hostPath | String | 是 | 源路径。长度为1~128个字符,不支持空格。 |'."\n" + .'| containerPath | String | 是 | 目的路径。须填写绝对路径,不支持根目录,以正斜杠(/)开头,长度为2~128个字符,不支持空格。 |'."\n" + .'| permission | String | 是 | 读写权限。
ro:只读权限。
rw:读写权限。
|', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateEdgeInstance' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'F3APY0tPLhmgGtx0****'], ], [ - 'name' => 'DriverId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '边缘实例名称。'."\n" + .'支持中文汉字、英文大小写、数字、下划线(_)和短划线(-),不超过20个字符。', 'type' => 'string', 'required' => true, 'example' => 'LinkIoTEdge_Node'], ], [ - 'name' => 'ChannelName', + 'name' => 'Tags', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道名称。', - 'type' => 'string', - 'required' => false, - 'example' => 'le_name0', - ], + 'schema' => ['description' => '边缘实例标签。每个标签由`key:value`组成,多个标签间以英文逗号隔开。例如`k1:v1,k2:v2`。'."\n" + .'- 标签key限制如下: '."\n" + .' - 不可为空。'."\n" + .' - 在该边缘实例中唯一。'."\n" + .' - 仅支持英文大小写。'."\n" + .' - 不可超过20个字符。'."\n" + .'- 标签value限制如下:'."\n" + .' - 不可为空。'."\n" + .' - 支持中文、英文大小写、数字、下划线(_)和短划线(-)。'."\n" + .' - 不可超过20个字符(一个中文汉字算2个字符)。'."\n" + ."\n" + .'为空时表示不更新该参数。', 'type' => 'string', 'required' => false, 'example' => 'k1:v1,k2:v2'], ], [ - 'name' => 'CurrentPage', + 'name' => 'Spec', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '产品规格。'."\n" + .'- 10:轻量版。'."\n" + .'- 20:标准版。'."\n" + .'- 30:专业版。'."\n" + ."\n" + .'为空时表示不更新该参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '10'], ], [ - 'name' => 'PageSize', + 'name' => 'BizEnable', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'schema' => ['description' => '是否开启边缘实例。可选值:'."\n" + ."\n" + .'- true:开启。'."\n" + .'- false:关闭。'."\n" + ."\n" + .'为空时表示不更新该参数。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -63034,224 +44140,101 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AA1EF007-0455-43C7-8E03-39D0BA20F4F5', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '驱动通道总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'ChannelList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Channel' => [ - 'description' => '驱动通道信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建驱动通道的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1584371212000', - ], - 'ChannelName' => [ - 'description' => '驱动通道名称。', - 'type' => 'string', - 'example' => 'le_name0', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新驱动通道的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1584371212000', - ], - 'ChannelId' => [ - 'description' => '驱动通道ID。', - 'type' => 'string', - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], - 'GmtCreate' => [ - 'description' => '创建驱动通道的时间。', - 'type' => 'string', - 'example' => '2020-03-16 23:06:52', - ], - 'GmtModified' => [ - 'description' => '最后一次更新驱动通道的时间。', - 'type' => 'string', - 'example' => '2020-03-16 23:06:52', - ], - 'ConfigList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'Config' => [ - 'description' => '配置信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'description' => '配置的关键字。', - 'type' => 'string', - 'example' => 'key1', - ], - 'ConfigId' => [ - 'description' => '配置ID。', - 'type' => 'string', - 'example' => '5d6016035c1a451daf174b1051******', - ], - 'Format' => [ - 'description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', - 'type' => 'string', - 'example' => 'JSON', - ], - 'Content' => [ - 'description' => '配置内容。', - 'type' => 'string', - 'example' => '{\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AA1EF007-0455-43C7-8E03-39D0BA20F4F5\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"ChannelList\\": {\\n \\"Channel\\": [\\n {\\n \\"GmtCreateTimestamp\\": 1584371212000,\\n \\"ChannelName\\": \\"le_name0\\",\\n \\"GmtModifiedTimestamp\\": 1584371212000,\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"GmtCreate\\": \\"2020-03-16 23:06:52\\",\\n \\"GmtModified\\": \\"2020-03-16 23:06:52\\",\\n \\"ConfigList\\": {\\n \\"Config\\": [\\n {\\n \\"Key\\": \\"key1\\",\\n \\"ConfigId\\": \\"5d6016035c1a451daf174b1051******\\",\\n \\"Format\\": \\"JSON\\",\\n \\"Content\\": \\"{\\\\\\\\\\\\\\"protocol\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"TCP\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"ip\\\\\\\\\\\\\\":\\\\\\\\\\\\\\"1.2.3.4\\\\\\\\\\\\\\", \\\\\\\\\\\\\\"port\\\\\\\\\\\\\\":1}\\"\\n }\\n ]\\n }\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n AA1EF007-0455-43C7-8E03-39D0BA20F4F5\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n 2020-03-16 23:06:52\\r\\n le_name0\\r\\n 1584371212000\\r\\n 2020-03-16 23:06:52\\r\\n 1584371212000\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n JSON\\r\\n {\\"protocol\\":\\"TCP\\", \\"ip\\":\\"1.2.3.4\\", \\"port\\":1}\\r\\n 5d6016035c1a451daf174b1051******\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例中的驱动通道列表', - 'summary' => '查询边缘实例中的驱动通道列表 。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 10CA6DAD-EBAF-4D3E-9309-9DB5B0FF48F2\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新边缘实例', + 'summary' => '更新边缘实例。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchSetEdgeInstanceDeviceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateEdgeInstanceChannel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ 'name' => 'InstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '6GaTtvTj7vJhiS******'], ], [ 'name' => 'DriverId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" + ."\n" + .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '9c1ae7bd59f1469abbdccc9592******'], ], [ 'name' => 'ChannelId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], + 'schema' => ['description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => 'BE0BD49EF5EF4D119D09CC1B25******'], ], [ - 'name' => 'IotIds', + 'name' => 'ChannelName', + 'in' => 'query', + 'schema' => ['description' => '驱动通道名称。支持中文、英文大小写字母、数字和下划线(_),长度限制1~30个字符。', 'type' => 'string', 'required' => true, 'example' => 'le_name_update'], + ], + [ + 'name' => 'Configs', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询子设备ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个子设备ID。', + 'description' => '配置列表。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'Key' => ['description' => '配置的关键字。在有多个配置的情况下,用于区分配置。', 'type' => 'string', 'required' => false, 'example' => 'key1'], + 'Format' => ['description' => '配置格式。取值有KV(键值对配置)、JSON(JSON格式)、FILE(配置文件)。', 'type' => 'string', 'required' => true, 'example' => 'JSON'], + 'Content' => ['description' => '配置内容。'."\n" + ."\n" + .'- **Configs.N.Format**参数的值为KV或JSON时,此处请填写配置内容。配置内容格式,请参见[驱动通道配置说明](~~172321~~)。'."\n" + ."\n" + .'- **Configs.N.Format**参数的值为FILE时,此处请填写阿里云对象存储OSS地址。OSS地址请调用[CreateOssPreSignedAddress](~~155858~~)接口获取。', 'type' => 'string', 'required' => true, 'example' => '{"protocol":"TCP", "ip":"1.2.3.4", "port":122}'], + ], + 'required' => false, + 'description' => '', ], 'required' => true, - 'example' => 'Hathoyxglj9jpYPyw3WN******', 'maxItems' => 21, ], ], @@ -63261,34 +44244,19 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B0325EA9-671C-460B-B0F3-83F41CFF855B', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '60D75DC6-00BC-47B5-AB1B-0619B7830D7D'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B0325EA9-671C-460B-B0F3-83F41CFF855B\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B0325EA9-671C-460B-B0F3-83F41CFF855B\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量关联驱动通道到子设备', - 'summary' => '批量关联驱动通道到子设备。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"60D75DC6-00BC-47B5-AB1B-0619B7830D7D\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 60D75DC6-00BC-47B5-AB1B-0619B7830D7D\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'UpdateEdgeInstanceChannel', + 'summary' => '调用该接口更新边缘实例中的驱动通道。', 'description' => '## 限制条件'."\n" .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" ."\n" @@ -63296,75 +44264,113 @@ 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchGetEdgeInstanceDeviceChannel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateEdgeInstanceMessageRouting' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'IotInstanceId', + 'in' => 'query', + 'schema' => ['description' => '物联网平台的实例ID:'."\n" + .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" + .'- 公共实例:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'InstanceId', + 'in' => 'query', + 'schema' => ['description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', 'type' => 'string', 'required' => true, 'example' => 'nF9oXo7kLRWQ********'], + ], + [ + 'name' => 'RouteId', + 'in' => 'query', + 'schema' => ['description' => '消息路由ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9223372036854775807', 'minimum' => '0', 'example' => '123456'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '消息路由名称。长度限制为4~32个字符,汉字和全角符号算2个字符。', 'type' => 'string', 'required' => false, 'example' => 'le_lite1'], + ], + [ + 'name' => 'TopicFilter', + 'in' => 'query', + 'schema' => ['description' => '消息过滤条件,取值如下:'."\n" + .'- 具体消息Topic:表示来自消息源,且符合该消息Topic的消息,会被传给消息接收者。Topic相关信息,请参见[什么是Topic](~~73731~~)。'."\n" + .'- **all**:表示来自消息源的所有消息,都会被传给消息接收者。', 'type' => 'string', 'required' => false, 'example' => 'all'], + ], + [ + 'name' => 'SourceType', + 'in' => 'query', + 'schema' => ['description' => '消息来源,取值如下:'."\n" + .'- **device**:表示消息由设备发出。'."\n" + .'- **function**:表示消息由边缘应用发出。'."\n" + .'- **IotHub**:表示消息由云端发出。', 'type' => 'string', 'required' => true, 'example' => 'device'], + ], + [ + 'name' => 'SourceData', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '消息来源的数据,取值分如下几种情况:'."\n" + ."\n" + .'- **SourceType**取值为**device**时: '."\n" + .' - 如果由指定产品下的指定设备发送消息,则此处取值格式为`/{Your_ProductKey}/{Your_DeviceName}`。'."\n" + ."\n" + .' > 请将{Your_ProductKey}和{Your_DeviceName}替换为您实际设备的ProductKey和DeviceName。'."\n" + ."\n" + .' - 如果由指定产品下的所有设备发送消息,则此处取值格式为`/{Your_ProductKey}/+`。'."\n" + ."\n" + .' > 请将{Your_ProductKey}替换为您实际设备的ProductKey。'."\n" + ."\n" + .' - 如果由边缘实例中所有产品下的所有设备发送消息,则此处取值为`#`。'."\n" + ."\n" + .'- **SourceType**取值为**function**:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" + ."\n" + .'- **SourceType**取值为**IotHub**时:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '#'], ], [ - 'name' => 'InstanceId', + 'name' => 'TargetType', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '消息接收者,取值分如下几种情况:'."\n" + .'- **SourceType**取值为**device**时:该参数可取的值为**function**或**IotHub**,表示由设备发出的消息,传给边缘应用或云端。'."\n" + .'- **SourceType**取值为**function**时:该参数可取的值为**function**或**IotHub**,表示由边缘应用发出的消息,传给另一个边缘应用或云端。'."\n" + .'- **SourceType**取值为**IotHub**时:该参数可取的值为**function**,表示由云端发出的消息,传给边缘应用。', 'type' => 'string', 'required' => true, 'example' => 'function'], ], [ - 'name' => 'DriverId', + 'name' => 'TargetData', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'schema' => ['description' => '消息接收者的数据,取值分如下几种情况:'."\n" + .'- **TargetType**取值为**function**时:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" + .'- **TargetType**取值为**IotHub**时:无需传入此参数。', 'type' => 'string', 'required' => false, 'example' => '58c46749ac934db3925fe5********'], ], [ - 'name' => 'IotIds', + 'name' => 'TargetIotHubQos', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询子设备ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个子设备ID。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'Hathoyxglj9jpYPyw3WN******', - 'maxItems' => 21, - ], + 'schema' => ['description' => '服务级别。取值如下:'."\n" + ."\n" + .'- **0**:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" + ."\n" + .'- **1**:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。'."\n" + ."\n" + .'> 当**TargetType**为**IoTHub**时,必须传入此参数。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], ], ], 'responses' => [ @@ -63372,149 +44378,87 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '029BC40B-8353-48B3-94C3-7ABF296F0AE5', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceChannelList' => [ - 'description' => '子设备关联的驱动通道列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ChannelId' => [ - 'description' => '驱动通道ID。', - 'type' => 'string', - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], - 'ChannelName' => [ - 'description' => '驱动通道名称。', - 'type' => 'string', - 'example' => 'le_name_update', - ], - 'IotId' => [ - 'description' => '子设备ID。', - 'type' => 'string', - 'example' => 'Hathoyxglj9jpYPyw3WN0******', - ], - ], - ], - ], + 'Code' => ['description' => '接口返回码:'."\n" + .'- **Success**:表示成功。'."\n" + .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BBE0E0C7-913A-47B8-A255-F2C6038B5FD8'], + 'Success' => ['description' => '是否调用成功:'."\n" + .'- **true**:表示调用成功。'."\n" + .'- **false**:表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"029BC40B-8353-48B3-94C3-7ABF296F0AE5\\",\\n \\"Success\\": true,\\n \\"DeviceChannelList\\": [\\n {\\n \\"ChannelId\\": \\"BE0BD49EF5EF4D119D09CC1B25******\\",\\n \\"ChannelName\\": \\"le_name_update\\",\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN0******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 029BC40B-8353-48B3-94C3-7ABF296F0AE5\\r\\n Success\\r\\n true\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN0******\\r\\n le_name_update\\r\\n BE0BD49EF5EF4D119D09CC1B25******\\r\\n \\r\\n \\r\\n","errorExample":""}]', - 'title' => '批量获取子设备关联的驱动通道', - 'summary' => '批量获取子设备关联的驱动通道。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => 'UpdateEdgeInstanceMessageRouting', + 'summary' => '调用该接口更新边缘实例中的消息路由。', 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" + .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceDeviceByDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '15', - ], + 'schema' => ['description' => '实例ID。'."\n" + ."\n" + .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" + ."\n" + .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', - ], + 'schema' => ['description' => '任务描述信息。长度不超过100个字符。', 'type' => 'string', 'required' => false, 'example' => 'jobDescription'], ], [ - 'name' => 'ChannelId', + 'name' => 'TimeoutConfig', 'in' => 'query', - 'schema' => [ - 'description' => '驱动通道ID。调用[QueryEdgeInstanceChannel](~~162253~~)接口获取。', - 'type' => 'string', - 'required' => false, - 'example' => 'BE0BD49EF5EF4D119D09CC1B25******', - ], + 'style' => 'json', + 'schema' => ['description' => '任务下作业执行的超时时间。'."\n" + ."\n" + .'更多信息,请参见下文“TimeoutConfig定义”。'."\n", 'type' => 'object', 'required' => false, 'example' => '{"inProgressTimeoutInMinutes": 60}'], ], [ - 'name' => 'DriverId', + 'name' => 'RolloutConfig', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], + 'style' => 'json', + 'schema' => ['description' => '任务下每分钟推送的作业数量。取值范围为50~1000。', 'type' => 'object', 'required' => false, 'example' => '{"maximumPerMinute": 1000}'], ], [ - 'name' => 'CurrentPage', + 'name' => 'JobId', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '任务ID。任务的全局唯一标识符。', 'type' => 'string', 'required' => true, 'example' => 'XUbmsMHmkqv0PiAG****010001'], ], ], 'responses' => [ @@ -63522,135 +44466,136 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C2AEE142-A9ED-46C5-9EA4-BF0817F0D556', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '15', - ], - 'Total' => [ - 'description' => '驱动下关联的子设备总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'DeviceList' => [ - 'description' => '子设备信息列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'IotId' => [ - 'description' => '子设备ID。', - 'type' => 'string', - 'example' => 'Hathoyxglj9jpYPyw3WN******', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。 '."\n", 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C2AEE142-A9ED-46C5-9EA4-BF0817F0D556\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 15,\\n \\"Total\\": 1,\\n \\"DeviceList\\": [\\n {\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C2AEE142-A9ED-46C5-9EA4-BF0817F0D556\\r\\n \\r\\n 15\\r\\n 1\\r\\n 1\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN******\\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询驱动下关联的子设备', - 'summary' => '查询驱动下关联的子设备 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B78B4FD1-AE89-417B-AD55-367EBB0C6759\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新作业', + 'summary' => '调用该接口更新任务下作业配置。', + 'description' => '## 使用说明'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '**RolloutConfig定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|maximumPerMinute|Integer|任务下每分钟推送的作业数量。默认值是1000。取值范围为50~1000。|'."\n" + .'|messageQoS|String|发送消息类型,仅对自定义任务和Pub批量消息推送任务生效。可取值:
**QoS0**,表示最多发送一次。
**QoS1**,表示最少发送一次。如果QoS1消息未接收到PUBACK消息,会在设备重连时,重新推送给设备。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "maximumPerMinute": 1000,'."\n" + .' "messageQos":"Qos1"'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'**TimeoutConfig定义**'."\n" + .'|名称|类型|描述|'."\n" + .'|------|------|------|'."\n" + .'|inProgressTimeoutInMinutes|Integer|任务下作业执行的超时时间,单位为分钟。
该参数仅对自定义任务生效。
从任务开始执行(状态更新为**IN\\_PROGRESS**)时计算,如果超过了超时时间,任务下作业仍未执行完成,将被自动设置为TIMED\\_OUT状态。
取值范围:最大值为3600,最小值为1,默认值为60。|'."\n" + ."\n" + .'示例'."\n" + .'```'."\n" + .'{'."\n" + .' "inProgressTimeoutInMinutes": 60'."\n" + .'}'."\n" + .'```'."\n" + .' '."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BatchGetEdgeInstanceDeviceDriver' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateOTAJob' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'MaximumPerMinute', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '10000', 'minimum' => '10'], + ], + [ + 'name' => 'JobId', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'UpgradeType', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], + [ + 'name' => 'TimeoutInMinutes', + 'in' => 'query', + 'schema' => ['type' => 'integer', 'format' => 'int32', 'required' => false], + ], + [ + 'name' => 'TargetSelection', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => true], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['type' => 'string', 'required' => false], ], [ - 'name' => 'InstanceId', + 'name' => 'SrcVersionList', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => '6GaTtvTj7vJhiS******', + 'type' => 'array', + 'items' => ['type' => 'string'], + 'required' => false, + 'maxItems' => 30, ], ], [ - 'name' => 'IotIds', + 'name' => 'Tags', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ - 'description' => '子设备ID列表。可调用[QueryDevice](~~69905~~)接口查询设备ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个设备ID。', 'type' => 'array', 'items' => [ - 'type' => 'string', + 'type' => 'object', + 'properties' => [ + 'Key' => ['type' => 'string', 'required' => true], + 'Value' => ['type' => 'string', 'required' => true], + ], ], - 'required' => true, - 'example' => 'Hathoyxglj9jpYPyw3WN******', - 'maxItems' => 21, + 'required' => false, + 'maxItems' => 10, ], ], ], @@ -63659,108 +44604,98 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E8D82F7A-0F84-4BD3-AE8A-5444A5B42800', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'DeviceDriverList' => [ - 'description' => '子设备的驱动列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'DriverId' => [ - 'description' => '驱动ID。', - 'type' => 'string', - 'example' => '9c1ae7bd59f1469abbdccc9592******', - ], - 'IotId' => [ - 'description' => '子设备ID。', - 'type' => 'string', - 'example' => 'Hathoyxglj9jpYPyw3WN******', - ], - ], - ], - ], + 'Code' => ['type' => 'string'], + 'ErrorMessage' => ['type' => 'string'], + 'RequestId' => ['type' => 'string'], + 'Success' => ['type' => 'boolean'], ], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E8D82F7A-0F84-4BD3-AE8A-5444A5B42800\\",\\n \\"Success\\": true,\\n \\"DeviceDriverList\\": [\\n {\\n \\"DriverId\\": \\"9c1ae7bd59f1469abbdccc9592******\\",\\n \\"IotId\\": \\"Hathoyxglj9jpYPyw3WN******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n E8D82F7A-0F84-4BD3-AE8A-5444A5B42800\\r\\n \\r\\n \\r\\n Hathoyxglj9jpYPyw3WN******\\r\\n 9c1ae7bd59f1469abbdccc9592******\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量获取子设备关联的驱动', - 'summary' => '批量获取子设备关联的驱动。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.ota.FirmwareNotFound', 'errorMessage' => 'The specified firmware does not exist.', 'description' => '指定的升级包不存在。'], + ['errorCode' => 'iot.ota.StrategyNotFound', 'errorMessage' => 'The specified strategy does not exist.', 'description' => '批次对应的升级策略不存在。'], + ['errorCode' => 'iot.ota.noDynamicJob', 'errorMessage' => 'Task is not dynamic.', 'description' => '非动态升级任务,无法进行此操作。'], + ['errorCode' => 'iot.ota.InvalidBaseSpeedPerMinute', 'errorMessage' => 'Invalid baseSpeedPerMinute.', 'description' => '无效的基础推送速率。'], + ['errorCode' => 'iot.ota.InvalidIncrementFactor', 'errorMessage' => 'Invalid incrementFactor.', 'description' => '无效的增量因子。'], + ['errorCode' => 'iot.ota.InvalidExponentialRateParameter', 'errorMessage' => 'Invalid exponential rate parameter.', 'description' => '无效的可变速率参数。'], + ['errorCode' => 'iot.ota.InvalidMaximumPerMinute', 'errorMessage' => 'Invalid MaximumPerMinute.', 'description' => '无效的推送速率。'], + ['errorCode' => 'iot.ota.InvalidUpgradeType', 'errorMessage' => 'Invalid upgrade type.', 'description' => '无效的升级类型。'], + ['errorCode' => 'iot.ota.OperationForbidden', 'errorMessage' => 'This operation is forbidden by the tenantId.', 'description' => '租户没有权限执行该操作。'], + ['errorCode' => 'iot.ota.InvalidTimeout', 'errorMessage' => 'Parameter TimeoutInMinutes is invalid.', 'description' => '参数TimeoutInMinutes不合法。'], + ['errorCode' => 'iot.ota.InvalidStrategyType', 'errorMessage' => 'Invalid strategy type.', 'description' => '无效的升级范围值。'], + ['errorCode' => 'iot.ota.JobHasFinished', 'errorMessage' => 'The job has finished.', 'description' => '升级批次已完成。'], + ['errorCode' => 'iot.ota.JobHasCanceled', 'errorMessage' => 'The job has canceled.', 'description' => '升级批次已取消。'], + ['errorCode' => 'iot.ota.taskNotExist', 'errorMessage' => 'Task is not existed.', 'description' => '批次信息不存在。'], + ['errorCode' => 'iot.ota.JobTagIsTooLong', 'errorMessage' => 'The tags of job exceed the maximum number of characters.', 'description' => '批次标签总长度超过限制'], + ['errorCode' => 'iot.ota.InstanceIdMisMatch', 'errorMessage' => 'The instanceId is invalid.', 'description' => '实例ID不匹配。'], + ['errorCode' => 'iot.ota.InvalidBaseRatePerMinute', 'errorMessage' => 'Parameter BaseRatePerMinute is invalid.', 'description' => '参数BaseRatePerMinute的值不正确。'], + ['errorCode' => 'iot.ota.InvalidSrcVersionList', 'errorMessage' => 'Parameter SrcVersionList does not support by group upgrade.', 'description' => '分组升级不需要传SrcVersionList参数。'], + ['errorCode' => 'iot.ota.EmptySrcVersionList', 'errorMessage' => 'Parameter SrcVersionList is empty.', 'description' => '参数SrcVersionList不能为空。'], + ['errorCode' => 'iot.ota.InvalidConstantSpeedParameter', 'errorMessage' => 'The parameter of constant speed is invalid.', 'description' => '恒定速率的参数无效。'], + ['errorCode' => 'iot.ota.EmptyNumberOfNotifiedDevicesAndNumberOfSucceedDevices', 'errorMessage' => 'Both of NumberOfNotifiedDevices and NumberOfSucceedDevices are empty.', 'description' => '参数NumberOfNotifiedDevices和NumberOfSucceedDevices不能都为空。'], + ['errorCode' => 'iot.ota.InvalidNumberOfNotifiedDevicesOrNumberOfSucceedDevices', 'errorMessage' => 'One of NumberOfNotifiedDevices and NumberOfSucceedDevices is invalid.', 'description' => '参数NumberOfNotifiedDevices或NumberOfSucceedDevices的值是无效。'], + ], + ], + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateOTAJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + ], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": \\"\\",\\n \\"ErrorMessage\\": \\"\\",\\n \\"RequestId\\": \\"\\",\\n \\"Success\\": true\\n}","type":"json"}]', ], - 'BatchGetDeviceBindStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], + 'UpdateOTAModule' => [ + 'methods' => ['post'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'AliasName', + 'in' => 'query', + 'schema' => ['description' => '新的模块别名。支持中文、英文字母、数字、英文句号(.)、短划线(-)和下划线(_),长度限制为1~64个字符。', 'type' => 'string', 'required' => false, 'example' => '条码扫描仪2'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'IotIds', + 'name' => 'ModuleName', 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '设备ID列表。可调用[QueryDevice](~~69905~~)接口查询设备ID。'."\n" - ."\n" - .'> 单次调用最多可填写20个设备ID。', - 'type' => 'array', - 'items' => [ - 'description' => '设备ID。可调用[QueryDevice](~~69905~~)接口查询设备ID。', - 'type' => 'string', - 'required' => false, - 'example' => 'sjI0Sd124XFYyjBYMiYO******', - ], - 'required' => true, - 'example' => 'sjI0Sd124XFYyjBYMiYO******', - 'maxItems' => 21, - ], + 'schema' => ['description' => 'OTA模块名称。', 'type' => 'string', 'required' => true, 'example' => 'barcodeScanner'], + ], + [ + 'name' => 'Desc', + 'in' => 'query', + 'schema' => ['description' => '新的模块描述信息,支持最多100个字符。', 'type' => 'string', 'required' => false, 'example' => '条码扫描仪的固件模块'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => 'OTA模块所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Le6d0****'], ], ], 'responses' => [ @@ -63768,130 +44703,81 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'B1DF865D-2474-4CD5-9B7E-59B06D204CBF', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'BindStatus' => [ - 'description' => '网关或设备是否已绑定到边缘实例。'."\n" - ."\n" - .'- 0:表示未绑定。'."\n" - ."\n" - .'- 1:表示已绑定。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'InstanceId' => [ - 'description' => '实例ID。', - 'type' => 'string', - 'example' => 'iot-v64********', - ], - 'IotId' => [ - 'description' => '设备ID。', - 'type' => 'string', - 'example' => 'sjI0Sd124XFYyjBYMiYO******', - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '74C2BB8D-1D6F-41F5-AE68-6B2310883F63'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"B1DF865D-2474-4CD5-9B7E-59B06D204CBF\\",\\n \\"Success\\": true,\\n \\"Data\\": [\\n {\\n \\"BindStatus\\": 1,\\n \\"InstanceId\\": \\"iot-v64********\\",\\n \\"IotId\\": \\"sjI0Sd124XFYyjBYMiYO******\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\r\\n B1DF865D-2474-4CD5-9B7E-59B06D204CBF\\r\\n \\r\\n \\r\\n sjI0Sd124XFYyjBYMiYO******\\r\\n 0\\r\\n \\r\\n \\r\\n BXPV9Ks3bxwM9fDl9Ck0******\\r\\n 1\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '批量获取网关或设备绑定到边缘实例的状态', - 'summary' => '调用该接口批量获取网关或设备绑定到边缘实例的状态。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"74C2BB8D-1D6F-41F5-AE68-6B2310883F63\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 29EC7245-0FA4-4BB6-B4F5-5F04818FDFB1\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改OTA模块别名或描述', + 'summary' => '调用该接口修改OTA模块别名、描述。', + 'description' => '## QPS限制'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ReplaceEdgeInstanceGateway' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateParser' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-8t***'], ], [ - 'name' => 'InstanceId', + 'name' => 'ParserId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'G4TGWGYwpo8zwr******', - ], + 'schema' => ['description' => '解析器ID。您可调用接口[ListParsers](~~429046~~),查询解析器列表,获取**ParserId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '0', 'example' => '1001'], ], [ - 'name' => 'CurrentGatewayId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '当前网关设备的IotId。IotId是物联网平台为设备生成的唯一标识符。可调用[QueryDevice](~~69905~~)接口查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'oTCJomvT95WPyPPQ5sje******', - ], + 'schema' => ['description' => '解析器描述。', 'type' => 'string', 'required' => false, 'example' => '转发数据。'], ], [ - 'name' => 'NewGatewayId', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '要替换的新网关设备的IotId。IotId是物联网平台为设备生成的唯一标识符。可调用[QueryDevice](~~69905~~)接口查询。', - 'type' => 'string', - 'required' => true, - 'example' => '65SkFyhZcU5d3PO2Ri13******', - ], + 'schema' => ['description' => '解析器名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', 'type' => 'string', 'required' => false, 'example' => 'DataParserTwo'], ], ], 'responses' => [ @@ -63899,94 +44785,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '10E5C856-E0A1-4468-BE01-E540A8BA8819', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"10E5C856-E0A1-4468-BE01-E540A8BA8819\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 10E5C856-E0A1-4468-BE01-E540A8BA8819\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '替换已绑定到边缘实例网关', - 'summary' => '替换已绑定到边缘实例的网关。替换网关后,原网关的部署状态和部署历史会被清除。', - 'description' => '## 限制条件'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.common.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.rule.UpdateRuleFailed', 'errorMessage' => 'An error occurred while upgrading the rule.', 'description' => '更新规则失败。'], + ['errorCode' => 'iot.rule.InvalidRuleName', 'errorMessage' => 'The rule name is invalid', 'description' => '规则名称不合法。'], + ['errorCode' => 'iot.rule.NotFoundRule', 'errorMessage' => 'there are no rules', 'description' => ''], + ['errorCode' => 'iot.rule.ConnectorIsAlreadyExisted', 'errorMessage' => 'The parser name already exists.', 'description' => '解析器名称已经存在。'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => 'UpdateParser', + 'summary' => '调用该接口更新解析器名称和描述。', + 'description' => '## 使用说明'."\n" + .'调用接口[CreateParser](~~429044~~)创建解析器成功后,若有业务需要,您可根据返回的**ParserId**更新对应解析器的名称和描述。'."\n" ."\n" - .'- 替换网关前,必须先在物联网平台控制台的**边缘计算** > **边缘实例**> **实例详情**页面重置边缘实例。'."\n" + .'## QPS限制'."\n" ."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" ."\n" - .' > RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'ReleaseEdgeDriverVersion' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateParserDataSource' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-2w****'], ], [ - 'name' => 'DriverId', + 'name' => 'DataSourceId', 'in' => 'query', - 'schema' => [ - 'description' => '驱动ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**驱动管理**页面中,鼠标悬浮在目标驱动名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeDriver](~~155776~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'fec565038d7544978d9aed5c1a******', - ], + 'schema' => ['description' => '数据源ID。您可调用接口[ListParserDataSource](~~432676~~),查询数据源列表,获取**DataSourceId**。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'maximum' => '9999999999', 'minimum' => '0', 'example' => '1001'], ], [ - 'name' => 'DriverVersion', + 'name' => 'Name', 'in' => 'query', - 'schema' => [ - 'description' => '驱动版本号。', - 'type' => 'string', - 'required' => true, - 'example' => '1.2.0', - ], + 'schema' => ['description' => '数据源名称,支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文及日文占2个字符。', 'type' => 'string', 'required' => true, 'example' => 'DataSource'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['description' => '数据源描述信息。', 'type' => 'string', 'required' => false, 'example' => '设备数据。'], ], ], 'responses' => [ @@ -63994,101 +44879,99 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '3E56BFDF-3F00-495F-89A1-F891930DDB51', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E4C0FF92-2A86-41DB-92D3-73B60310D25E'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3E56BFDF-3F00-495F-89A1-F891930DDB51\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3E56BFDF-3F00-495F-89A1-F891930DDB51\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '发布驱动的某一版本', - 'summary' => '发布驱动的某一版本。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.system.SystemException', 'errorMessage' => 'An internal error occurred. Try again later.', 'description' => '系统异常。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.rule.UpdateRuleFailed', 'errorMessage' => 'An error occurred while upgrading the rule.', 'description' => '更新规则失败。'], + ['errorCode' => 'iot.rule.DataSourceNotExists', 'errorMessage' => 'Datasource not existed', 'description' => ''], + ['errorCode' => 'iot.rule.DataSourceExists', 'errorMessage' => 'Same datasource is existed', 'description' => ''], + ['errorCode' => 'iot.rule.InvalidDataSourceName', 'errorMessage' => 'The data source name is invalid', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E4C0FF92-2A86-41DB-92D3-73B60310D25E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE4C0FF92-2A86-41DB-92D3-73B60310D25E\\ntrue\\n","errorExample":""}]', + 'title' => '更新解析器的数据源', + 'summary' => '更新解析器的数据源。', + 'description' => '## 使用说明'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'调用接口[CreateParserDataSource](~~433011~~)创建数据源成功后,若有业务需要,您可根据返回的**DataSourceId**更新对应数据源的名称和描述。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BindRoleToEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateProduct' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'Description', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'F3APY0tPLhmgGtx0****', - ], + 'schema' => ['description' => '描述产品信息。长度不超过100个字符。一个中文算一个字符。', 'type' => 'string', 'required' => false, 'example' => '第二代路灯产品。'], ], [ - 'name' => 'RoleArn', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '授权角色的全局资源描述符(ARN)。在[RAM控制台](https://ram.console.aliyun.com/)创建角色后,单击角色名,可在**基本信息**页查看其ARN。', - 'type' => 'string', - 'required' => true, - 'example' => 'acs:ram::176********:role/iotedgerole', - ], + 'schema' => ['description' => '产品的**ProductKey**,物联网平台为产品颁发的全局唯一标识符。'."\n" + ."\n" + .'您可以在物联网平台控制台或调用[QueryProductList](~~69271~~)接口,查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'RoleName', + 'name' => 'ProductName', 'in' => 'query', - 'schema' => [ - 'description' => '角色名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'IoTEdgeRole', - ], + 'schema' => ['description' => '修改后的产品名称。'."\n" + .'产品名称长度为4~30个字符,可以包含中文、英文字母、数字和下划线(_)。一个中文汉字算2个字符。'."\n" + ."\n" + .'> 产品名称在当前实例下需保持唯一。'."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '路灯'], ], ], 'responses' => [ @@ -64096,81 +44979,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '3DE428F8-22AF-4B37-8FEC-E64CFBE4A125', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"3DE428F8-22AF-4B37-8FEC-E64CFBE4A125\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3DE428F8-22AF-4B37-8FEC-E64CFBE4A125\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '将角色绑定到边缘实例', - 'summary' => '将角色绑定到边缘实例。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nC4FDA54C-4201-487F-92E9-022F42387458\\ntrue\\n","errorExample":""}]', + 'title' => '修改指定产品的信息', + 'summary' => '调用该接口修改指定产品的信息。', + 'description' => '## QPS限制'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnbindRoleFromEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateProductFilterConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的 **边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'BlYJyXZpLBtkmR******', - ], + 'schema' => ['description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。'."\n" + .'您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], + ], + [ + 'name' => 'PropertyTimestampFilter', + 'in' => 'query', + 'schema' => ['description' => '是否根据属性上报时间进行消息去重。可选值:'."\n" + ."\n" + .'- **true**:对设备上报的时间戳相同的属性消息进行去重。'."\n" + ."\n" + .'- **false**:不根据时间戳进行消息去重。', 'type' => 'boolean', 'required' => true, 'example' => 'false'], + ], + [ + 'name' => 'PropertyValueFilter', + 'in' => 'query', + 'schema' => ['description' => '是否根据属性值进行消息去重。可选值:'."\n" + ."\n" + .'- **true**:对设备上报相同属性值的消息进行去重。'."\n" + ."\n" + .'- **false**:不根据属性值进行消息去重。', 'type' => 'boolean', 'required' => true, 'example' => 'true'], ], ], 'responses' => [ @@ -64178,90 +45072,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '270097AC-FFC3-4D2F-B48D-384BA1EA9962', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"270097AC-FFC3-4D2F-B48D-384BA1EA9962\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 270097AC-FFC3-4D2F-B48D-384BA1EA9962\\n Success\\n true\\n","errorExample":""}]', - 'title' => '解除边缘实例中已绑定的角色', - 'summary' => '调用该接口解除边缘实例中已绑定的角色。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n2E19BDAF-0FD0-4608-9F41-82D230CFEE38\\ntrue\\n","errorExample":""}]', + 'title' => '更新产品设备上报属性消息去重规则', + 'summary' => '更新产品下设备上报属性消息的去重规则。即时生效。', + 'description' => '## 使用说明'."\n" + .'消息去重规则:物联网平台根据您设置的去重规则,决定是否通过您设置的规则引擎云产品流转或服务端订阅,将设备上报的属性数据流转至指定目的地。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'规则触发条件之间是和(AND)关系。例如您设置了PropertyValueFilter=true和PropertyTimestampFilter=true,那么必须这两个条件都满足时,才会触发规则,去掉重复的消息。'."\n" + ."\n" + .'## QPS限制'."\n" + ."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'BindSceneRuleToEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductFilterConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateProductTags' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'llL44UVXUqb9m5******', - ], + 'schema' => ['description' => '产品的ProductKey。ProductKey是物联网平台为新建产品颁发的产品Key,作为其全局唯一标识符。您可以在物联网平台控制台查看或调用[QueryProductList](~~69271~~)查看当前账号下所有产品的信息。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'RuleId', + 'name' => 'ProductTag', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', + 'description' => '产品标签列表。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '更新后的标签值(value)。长度不可超过128字符,可包含中文、英文字母、数字、下划线(_)和短划线(-)。一个中文汉字算2个字符。', 'type' => 'string', 'required' => false, 'example' => '202'], + 'TagKey' => ['description' => '产品标签键(key)。长度不可超过30个字符,可包含英文大小写字母,数字和英文句号(.)。'."\n" + ."\n" + .'> 传入标签的TagKey必须是已存在的标签key。传入标签的TagKey不能重复。', 'type' => 'string', 'required' => false, 'example' => 'room'], + ], + 'required' => false, + 'description' => '', + ], 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', + 'maxItems' => 10, ], ], ], @@ -64270,91 +45171,140 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], + 'InvalidProductTags' => [ + 'type' => 'object', + 'itemNode' => true, + 'properties' => [ + 'ProductTag' => [ + 'description' => '调用失败时,返回不合法的产品标签列表(**ProductTag**)。', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'TagValue' => ['description' => '标签值。', 'type' => 'string', 'example' => '123'], + 'TagKey' => ['description' => '标签键。', 'type' => 'string', 'example' => 'room'], + ], + 'description' => '', + ], + ], + ], + 'description' => '', ], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '绑定场景联动规则到边缘实例', - 'summary' => '绑定场景联动规则到边缘实例 。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true,\\n \\"InvalidProductTags\\": {\\n \\"ProductTag\\": [\\n {\\n \\"TagValue\\": \\"123\\",\\n \\"TagKey\\": \\"room\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 57b144cf-09fc-4916-a272-a62902d5b207\\n true\\n","errorExample":""}]', + 'title' => 'UpdateProductTags', + 'summary' => '调用该接口更新产品标签。', + 'description' => '## 使用说明'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单次调用该接口最多可更新10个标签。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为500。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UnbindSceneRuleFromEdgeInstance' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateProductTopic' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'InstanceId', + 'name' => 'Desc', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'llL44UVXUqb9m5******', - ], + 'schema' => ['description' => 'Topic类的描述信息。长度限制为100字符(一个汉字占一个字符)。', 'type' => 'string', 'required' => false, 'example' => 'resubmit a test topic'], ], [ - 'name' => 'RuleId', + 'name' => 'Operation', 'in' => 'query', - 'schema' => [ - 'description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'f041397879ad4d89822811d741******', - ], + 'schema' => ['description' => '设备对该Topic类的操作权限,取值:'."\n" + ."\n" + .'- **SUB**:订阅。'."\n" + .'- **PUB**:发布。'."\n" + .'- **ALL**:发布和订阅。', 'type' => 'string', 'required' => true, 'example' => 'PUB'], + ], + [ + 'name' => 'TopicShortName', + 'in' => 'query', + 'schema' => ['description' => '设置Topic类的自定义类目名称。Topic类默认包含_productKey_和_deviceName_两级类目,类目间以正斜线(/)分隔,其格式为:`productKey/deviceName/topicShortName`。'."\n" + ."\n" + .'> 每级类目的名称只能包含字母、数字和下划线(_),且不能为空。', 'type' => 'string', 'required' => true, 'example' => 'resubmit'], + ], + [ + 'name' => 'TopicId', + 'in' => 'query', + 'schema' => ['description' => '要修改的Topic类的ID。'."\n" + .'调用[CreateProductTopic](~~69649~~)接口创建自定义Topic类成功后,返回的**TopicId**。', 'type' => 'string', 'required' => true, 'example' => '821****'], + ], + [ + 'name' => 'EnableProxySubscribe', + 'in' => 'query', + 'schema' => ['description' => '**Operation**为**SUB**(订阅)或**ALL**(发布和订阅),可开启代理订阅。'."\n" + .'取值:'."\n" + ."\n" + .'- **true**:开启。'."\n" + .'- **false**:不开启。'."\n" + ."\n" + .'开启代理订阅后,设备与物联网平台建连时,物联网平台查询已开启代理订阅的Topic,帮助设备完成订阅。', 'type' => 'boolean', 'required' => false, 'example' => 'false'], + ], + [ + 'name' => 'Codec', + 'in' => 'query', + 'schema' => ['description' => '标准型和尊享型企业版实例下,可开启自定义Topic数据压缩或解压缩。'."\n" + .'取值:'."\n" + ."\n" + .'- **compress**:压缩。'."\n" + .'- **decompress**:解压缩。'."\n" + ."\n" + .'数据压缩功能详细内容,请参见[数据压缩](~~477405~~)。'."\n" + ."\n" + .'>**TopicShortName**传入通配符(`+`和`#`)时,不可同时传入**Codec**。如果创建通配Topic类的同时,开启了数据压缩或解压缩功能,调用本接口创建该Topic类会失败。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'compress'], ], ], 'responses' => [ @@ -64362,103 +45312,146 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'FCC27691-9151-4B93-9622-9C90F30542EC'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-AE58-68E7BAA909EK\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '从边缘实例中移除场景联动规则', - 'summary' => '调用该接口,从边缘实例中移除场景联动规则。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"FCC27691-9151-4B93-9622-9C90F30542EC\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n FCC27691-9151-4B93-9622-9C90F30542EC\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新指定的产品自定义Topic类', + 'summary' => '调用该接口更新指定的产品自定义Topic类。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceSceneRule' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。公共实例不传此参数,企业版实例需传入。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标悬浮在目标边缘实例名称上获取ID。'."\n" - ."\n" - .'您也可以调用[QueryEdgeInstance](~~135214~~)接口获取。', - 'type' => 'string', - 'required' => true, - 'example' => 'llL44UVXUqb9m5******', - ], + 'schema' => ['description' => '要修改的规则ID。可在物联网平台控制台对应实例下,**消息转发**>**云产品流转**页查看规则ID,或调用[ListRule](~~69486~~)从返回结果中查看。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '100000'], ], [ - 'name' => 'CurrentPage', + 'name' => 'Select', 'in' => 'query', - 'schema' => [ - 'description' => '从返回结果中的第几页开始显示。最小取值为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - ], + 'schema' => ['description' => '要执行的SQL SELECT语句。具体内容参照[SQL表达式](~~30554~~)。'."\n" + ."\n" + .'> 此处传入的是SELECT下的内容。例如,如果SELECT语句为`SELECT a,b,c`,则此处传入`a,b,c`。', 'type' => 'string', 'required' => false, 'example' => 'deviceName() as deviceName, items.Humidity.value as Humidity, items.Temperature.value as Temperature'], ], [ - 'name' => 'PageSize', + 'name' => 'ShortTopic', 'in' => 'query', - 'schema' => [ - 'description' => '返回结果中每页显示的记录数量。最大取值30,最小取值1,默认取值是10。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '10', - ], + 'schema' => ['description' => '应用该规则的具体Topic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`是具体设备的名称,`topicShortName`是Topic短名称。'."\n" + ."\n" + .'- 基础通信Topic或物模型通信Topic的ShortTopic,格式一般为:`${deviceName}/topicShortName`。其中,`${deviceName}`可以使用通配符`+`代替,表示产品下所有设备名称。`topicShortName`取值如下:'."\n" + ."\n" + .' - `/thing/event/property/post `设备上报的属性消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/post`设备上报的事件消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/thing/lifecycle` 设备生命周期变更消息。'."\n" + .' - `/thing/downlink/reply/message`设备响应云端指令的结果消息。'."\n" + .' - `/thing/list/found`网关上报发现子设备消息。'."\n" + .' - `/thing/topo/lifecycle`设备拓扑关系变更消息。'."\n" + .' - `/thing/event/property/history/post`设备历史属性上报消息。'."\n" + .' - `/thing/event/${tsl.event.identifier}/history/post`设备历史事件上报消息,`${}`中是产品物模型中事件identifier。'."\n" + .' - `/ota/upgrade`设备OTA升级状态通知消息。'."\n" + .' - `/ota/version/post`设备OTA模块版本号上报消息。'."\n" + .' - `/thing/deviceinfo/update`设备标签变更消息。'."\n" + .' - `/edge/driver/${driver_id}/point_post`物联网边缘计算的透传模式Topic消息,`${}`中是物联网边缘计算的设备接入驱动ID。'."\n" + ."\n" + .' OTA升级批次状态通知Topic也属于基础通信Topic,ShortTopic格式为:`${packageId}/${jobId}/ota/job/status`。其中,`${packageId}`是升级包ID,`${jobId}`是升级批次ID。'."\n" + .'- 自定义Topic的ShortTopic,如:`${deviceName}/user/get`。'."\n" + ."\n" + .' 调用[QueryProductTopic](~~69647~~)接口,可以查看产品下的所有自定义Topic类。'."\n" + ."\n" + .' 指定自定义Topic时,可以使用通配符`+`和`#`。'."\n" + .' - `${deviceName}`可以使用通配符`+`代替,表示产品下所有设备;'."\n" + .' - 之后字段可以用`/user/#`,`#`表示`/user`层级之后的所有层级名称。'."\n" + .' 使用通配符,请参见[Topic类中的通配符](~~85539~~)。'."\n" + .'- 设备状态变化通知Topic的ShortTopic:`${deviceName}`。'."\n" + ."\n" + .' 可以直接使用通配符`+`,表示产品下所有设备的状态变化通知。', 'type' => 'string', 'required' => false, 'example' => '+/thing/event/property/post'], + ], + [ + 'name' => 'Where', + 'in' => 'query', + 'schema' => ['description' => '规则的触发条件。具体内容参照[SQL表达式](~~30554~~)。'."\n" + ."\n" + .'> 此处传入的是WHERE中的内容。例如,如果WHERE语句为`WHERE a>10`,则此处传入`a>10`。', 'type' => 'string', 'required' => false, 'example' => 'Temperature>35'], + ], + [ + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '应用该规则的产品**ProductKey**。', 'type' => 'string', 'required' => false, 'example' => 'aladaeW****'], + ], + [ + 'name' => 'Name', + 'in' => 'query', + 'schema' => ['description' => '规则名称。支持中文、英文字母、日文、数字、下划线(_)和短划线(-),长度为1~30个字符,一个中文或日文占2个字符。', 'type' => 'string', 'required' => false, 'example' => 'test_2'], + ], + [ + 'name' => 'RuleDesc', + 'in' => 'query', + 'schema' => ['description' => '规则的描述信息。长度限制为100个字符,一个中文字符计为1个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'TopicType', + 'in' => 'query', + 'schema' => ['description' => '- **0**:**ShortTopic**参数描述中的基础通信Topic或物模型通信Topic,包含OTA升级批次状态通知Topic。'."\n" + .'- **1**:自定义Topic。'."\n" + .'- **2**:设备状态变化通知Topic:`/as/mqtt/status/${productKey}/${deviceName}`。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'Topic', + 'in' => 'query', + 'schema' => ['description' => '待修改规则的完整Topic。'."\n" + ."\n" + .'如果传入此参数,无需再传入参数**ProductKey**、**ShortTopic**和**TopicType**。', 'type' => 'string', 'required' => false, 'example' => '/sys/g18l***/device1/thing/event/property/post'], ], ], 'responses' => [ @@ -64466,160 +45459,93 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7', - ], - 'Success' => [ - 'description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时返回的数据。', - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'description' => '当前页码。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '返回结果中每页显示的记录数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '场景联动规则总数量。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleList' => [ - 'description' => '场景联动规则列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'description' => '场景联动规则在边缘实例中的状态。'."\n" - ."\n" - .'- 0:表示已停止。'."\n" - ."\n" - .'- 1:表示已启动。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'GmtCreate' => [ - 'description' => '场景联动规则的创建时间。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1582004185000', - ], - 'IsExisted' => [ - 'description' => '场景联动规则是否存在。'."\n" - ."\n" - .'- 0:表示已删除。'."\n" - ."\n" - .'- 1:表示存在。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'RuleName' => [ - 'description' => '场景联动规则的名称。', - 'type' => 'string', - 'example' => 'test', - ], - 'RuleId' => [ - 'description' => '场景联动规则ID。', - 'type' => 'string', - 'example' => 'f041397879ad4d89822811d741******', - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '9A2F243E-17FE-4846-BAB5-D02A25155AC4'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"CurrentPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"RuleList\\": [\\n {\\n \\"Status\\": 1,\\n \\"GmtCreate\\": 1582004185000,\\n \\"IsExisted\\": 1,\\n \\"RuleName\\": \\"test\\",\\n \\"RuleId\\": \\"f041397879ad4d89822811d741******\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n D4C3331B-0FA8-4A05-AFE2-54F698EDEAF7\\r\\n \\r\\n \\r\\n \\r\\n 1582004185000\\r\\n f041397879ad4d89822811d741******\\r\\n 1\\r\\n test\\r\\n \\r\\n \\r\\n 10\\r\\n 1\\r\\n 1\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '分页查询边缘实例中的场景规则', - 'summary' => '分页查询边缘实例中的场景规则。', - 'description' => '## 限制条件'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"9A2F243E-17FE-4846-BAB5-D02A25155AC4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新规则', + 'summary' => '调用该接口修改指定的规则。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" ."\n" - .'> RAM用户共享主账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'EnableDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateRuleAction' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'ProductKey', + 'name' => 'ActionId', 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'schema' => ['description' => '要修改的规则动作ID。'."\n" + ."\n" + .'调用[CreateRuleAction](~~69586~~)创建规则动作成功后,返回的规则动作ID,您也可以调用[ListRuleActions](~~69517~~),从返回结果中查看对应的规则动作ID。', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'example' => '1000003'], ], [ - 'name' => 'DeviceName', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'schema' => ['description' => '规则动作类型,取值:'."\n" + ."\n" + .'- **DATAHUB**:流转规则处理后的Topic数据至阿里云DataHub,进行流式数据处理。'."\n" + .'- **ONS**:流转规则处理后的Topic数据至阿里云消息队列RocketMQ,进行消息分发。'."\n" + .'- **MNS**:流转规则处理后的Topic数据至阿里云消息服务中,进行消息传输。'."\n" + .'- **FC**:流转规则处理后的Topic数据至阿里云函数计算服务,进行事件计算。'."\n" + .'- **REPUBLISH**:流转规则处理后的Topic数据至另一个物联网平台 Topic。'."\n" + .'- **AMQP**:数据流转到AMQP消费组。'."\n" + .'- **OTS**:流转规则处理后的Topic数据至阿里云表格存储,进行NoSQL数据存储。'."\n" + ."\n" + .'> - 数据格式为二进制的规则(即规则的**DataType**参数是**BINARY**)不支持转发数据至OTS(表格存储)。'."\n" + .'- 服务地域不同,规则引擎所支持的数据转发目标云产品不同。具体请参见规则引擎相关[地域和可用区](~~85669~~)。'."\n", 'type' => 'string', 'required' => true, 'example' => 'REPUBLISH'], + ], + [ + 'name' => 'Configuration', + 'in' => 'query', + 'schema' => ['description' => '该规则动作的配置信息。不同规则动作类型所需配置内容不同。具体要求,请参见[CreateRuleAction](~~69586~~)的请求参数补充说明中的各规则动作类型的Configuration描述。', 'type' => 'string', 'required' => true, 'example' => '{"topic":"/a1iYSOl****/device5/user/get","topicType":1}'], ], ], 'responses' => [ @@ -64627,95 +45553,77 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '577F07AF-7EFE-4B98-AEA2-634ED864BA01', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"577F07AF-7EFE-4B98-AEA2-634ED864BA01\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 577F07AF-7EFE-4B98-AEA2-634ED864BA01\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'EnableDeviceTunnel', - 'summary' => '调用该接口开启设备隧道。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\r\\n 9A2F243E-17FE-4874-QBB5-D02A25155AC8\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改指定的规则动作', + 'summary' => '调用该接口修改指定的规则动作。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetDeviceTunnelStatus' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSceneRule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。公共实例不传此参数,企业版实例需传入。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', + 'name' => 'RuleId', 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1kqtIX****', - ], + 'schema' => ['description' => '场景联动规则ID。调用[QuerySceneRule](~~169498~~)接口获取场景联动规则ID。', 'type' => 'string', 'required' => true, 'example' => 'f041397879ad4d89822811d741******'], ], [ - 'name' => 'DeviceName', + 'name' => 'RuleName', 'in' => 'query', - 'schema' => [ - 'description' => '要查询的网关设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'schema' => ['description' => '场景联动规则的名称。支持中文、大小写英文字母、数字、下划线(_)和短划线(-),长度限制为1~30个字符。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'RuleContent', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则内容。格式详情请参见[场景联动规则编写说明](~~171059~~)。', 'type' => 'string', 'required' => false, 'example' => '{"action":[{"params":{"content":"${metadata.formattedTime}: 收到定时消息","title":"钉钉机器人通知","webHook":"https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx"},"uri":"action/dingtalk/robot"}],"trigger":{"params":{"cron":"0 * * * * ? 2020","cronType":"quartz_cron"},"uri":"trigger/timer"},"type":"IFTTT"}'], + ], + [ + 'name' => 'RuleDescription', + 'in' => 'query', + 'schema' => ['description' => '场景联动规则描述。长度不超过100个字符。', 'type' => 'string', 'required' => false, 'example' => '定时发送消息到钉钉机器人'], ], ], 'responses' => [ @@ -64723,102 +45631,88 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据:'."\n" - .'- **online**:表示网关隧道已开启。'."\n" - .'- **offline**:表示网关隧道已关闭。', - 'type' => 'string', - 'example' => 'online', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '接口返回码。Success表示成功,其它表示错误码。详情请参见[错误码](~~135200~~)。', 'type' => 'string', 'example' => 'Success'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => 'request parameter error'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA'], + 'Success' => ['description' => '表示是否调用成功。true表示调用成功,false表示调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Data\\": \\"online\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 7CCFF08F-34D1-4FBD-ACA9-22D9364EA5A4\\r\\n online\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'GetDeviceTunnelStatus', - 'summary' => '调用该接口查询网关设备的隧道状态。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C9D9C91B-1B3B-4D84-BE58-68E7B2A989EA\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '更新场景联动规则', + 'summary' => '更新场景联动规则 。', 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + ."\n" + .'> RAM用户共享主账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'DisableDeviceTunnel' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSchedulePeriod' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'SoundCodeContent', + 'in' => 'formData', + 'schema' => ['description' => '时间段声码解析内容,长度为1~512个字符,一个汉字占两个字符。', 'type' => 'string', 'required' => false, 'example' => 'www.taobao.com'], + ], + [ + 'name' => 'PeriodCode', + 'in' => 'formData', + 'schema' => ['description' => '时间段唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '时间段描述,长度为1~64个字符,一个汉字占两个字符。'."\n", 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '时间段开始时间,格式为二十四小时制时间,范围为00:00~23:59。'."\n", 'type' => 'string', 'required' => false, 'example' => '00:00'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '时间段结束时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。'."\n", 'type' => 'string', 'required' => false, 'example' => '01:00'], ], ], 'responses' => [ @@ -64826,95 +45720,97 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '73671995-9588-406B-9C1E-FC38450A2AA1', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"73671995-9588-406B-9C1E-FC38450A2AA1\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 73671995-9588-406B-9C1E-FC38450A2AA1\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'DisableDeviceTunnel', - 'summary' => '调用该接口关闭网关隧道。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetDeviceTunnelShareStatus' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.scheduleperiod.InvalidIotInstanceId', 'errorMessage' => 'invalid IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.InvalidTime', 'errorMessage' => 'invalid period time', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.InvalidDesc', 'errorMessage' => 'Invalid period description', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.NotExists', 'errorMessage' => 'schedule period not exists', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.ConflictWithScheduleTime', 'errorMessage' => 'conflict with schedule time', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.ConflictTime', 'errorMessage' => 'conflict with:%s', 'description' => ''], + ['errorCode' => 'iot.soundcode.SensitiveContent', 'errorMessage' => 'sensitive content', 'description' => '内容包含敏感词汇'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'UpdateSchedulePeriod', + 'summary' => '调用该接口更新声码排程时间段。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSoundCode' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'Duration', + 'in' => 'formData', + 'schema' => ['description' => '声码持续时长,单位为秒,取值范围为1~30。', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '2'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'name' => 'SoundCodeContent', + 'in' => 'formData', + 'schema' => ['description' => '声码营销内容,例如商品的详情地址等,长度限制100个字符。', 'type' => 'string', 'required' => false, 'example' => 'www.taobao.com'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'name' => 'SoundCode', + 'in' => 'formData', + 'schema' => ['description' => '声码唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], + [ + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], + ], + [ + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '声码名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], ], 'responses' => [ @@ -64922,130 +45818,92 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'ACC1D51C-1A58-440E-92A7-71AB61C6595A', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的信息。', - 'type' => 'object', - 'properties' => [ - 'ShareId' => [ - 'description' => '隧道分享ID。'."\n" - ."\n" - .'> 当**IsOpen**的值为**false**时,此处为空。', - 'type' => 'string', - 'example' => '18f72f95cad34ca3aeabeeefcb******', - ], - 'Password' => [ - 'description' => '隧道分享密码。'."\n" - ."\n" - .'> 当**IsOpen**的值为**false**时,此处为空。', - 'type' => 'string', - 'example' => '848bbfa0e9a31e579502869920b4d4c********', - ], - 'GmtOpened' => [ - 'description' => '开启隧道分享的Unix时间戳。'."\n" - ."\n" - .'> 当**IsOpen**的值为**false**时,此处为空。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1617941371000', - ], - 'IsOpen' => [ - 'description' => '是否已开启隧道分享:'."\n" - .'- **true**:表示已开启。'."\n" - .'- **false**:表示未开启。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"ACC1D51C-1A58-440E-92A7-71AB61C6595A\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"ShareId\\": \\"18f72f95cad34ca3aeabeeefcb******\\",\\n \\"Password\\": \\"848bbfa0e9a31e579502869920b4d4c********\\",\\n \\"GmtOpened\\": 1617941371000,\\n \\"IsOpen\\": true\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n ACC1D51C-1A58-440E-92A7-71AB61C6595A\\r\\n \\r\\n 1617941371000\\r\\n 18f72f95cad34ca3aeabeeefcb******\\r\\n 848bbfa0e9a31e579502869920b4d4c********\\r\\n true\\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'GetDeviceTunnelShareStatus', - 'summary' => '调用该接口获取网关隧道的分享状态。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidSoundCode', 'errorMessage' => 'invalid sound code', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidSoundCodeContent', 'errorMessage' => 'invalid sound code content', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidSoundCodeDuration', 'errorMessage' => 'invalid sound code duration', 'description' => '无效的声码时长'], + ['errorCode' => 'iot.soundcode.InvalidName', 'errorMessage' => 'invalid sound code name', 'description' => '无效的声码名称'], + ['errorCode' => 'iot.soundcode.SensitiveContent', 'errorMessage' => 'sensitive content', 'description' => '内容包含敏感词汇'], + ['errorCode' => 'iot.soundcode.AlreadyExistsName', 'errorMessage' => 'already exists sound code name', 'description' => '已存在声码名称'], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n 66FF51D3-***-49F1-B1A2-***\\n true\\n","errorExample":""}]', + 'title' => 'UpdateSoundCode', + 'summary' => '调用该接口更新声码。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'EnableDeviceTunnelShare' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSoundCodeLabel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => [], 'parameters' => [ [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'name' => 'SoundCode', + 'in' => 'formData', + 'schema' => ['description' => '声码唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'name' => 'IotInstanceId', + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'name' => 'Label', + 'in' => 'formData', + 'schema' => ['description' => '标签,长度为1~64个字符,一个汉字占两个字符,排程下保证唯一。', 'type' => 'string', 'required' => true, 'example' => 'test'], ], ], 'responses' => [ @@ -65053,93 +45911,124 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '3DB31A1A-BD83-4155-AD2B-56AD041E372C', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"3DB31A1A-BD83-4155-AD2B-56AD041E372C\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 3DB31A1A-BD83-4155-AD2B-56AD041E372C\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'EnableDeviceTunnelShare', - 'summary' => '调用该接口开启网关隧道分享。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - ], - 'DisableDeviceTunnelShare' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcode.InvalidIotInstanceId', 'errorMessage' => 'invalid iot instance id', 'description' => '无效的实例ID'], + ['errorCode' => 'iot.soundcode.InvalidSoundCode', 'errorMessage' => 'invalid sound code', 'description' => ''], + ['errorCode' => 'iot.soundcode.InvalidLabel', 'errorMessage' => 'invalid sound code label', 'description' => ''], + ['errorCode' => 'iot.soundcode.LabelNotExists', 'errorMessage' => 'sound code label not exists', 'description' => ''], + ['errorCode' => 'iot.soundcode.AlreadyExistsLabel', 'errorMessage' => 'already exists sound code label', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + 429 => [ + ['errorCode' => 'iot.soundcode.EncodeLimit', 'errorMessage' => 'sound code encode limit exceeded', 'description' => '声码编码数已超规格限制'], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => 'UpdateSoundCodeLabel', + 'summary' => '调用该接口更新声码标签。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSoundCodeSchedule' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'ScheduleCode', + 'in' => 'formData', + 'schema' => ['description' => '排程唯一标识。', 'type' => 'string', 'required' => true, 'example' => 'Md3ZiTL888K9llXDy7890***********'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[如何获取实例ID](~~267533~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'name' => 'Name', + 'in' => 'formData', + 'schema' => ['description' => '排程名称,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', 'type' => 'string', 'required' => false, 'example' => 'test'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'name' => 'Description', + 'in' => 'formData', + 'schema' => ['description' => '排程描述,长度为1~64个字符,一个汉字占两个字符,实例下保证唯一。', 'type' => 'string', 'required' => false, 'example' => 'test'], + ], + [ + 'name' => 'Status', + 'in' => 'formData', + 'schema' => ['description' => '排程状态。'."\n" + ."\n" + .'- **WORKING**:启用。'."\n" + ."\n" + .'- **STOP**:停用。', 'type' => 'string', 'required' => false, 'example' => 'WORKING'], + ], + [ + 'name' => 'StartTime', + 'in' => 'formData', + 'schema' => ['description' => '排程每日开始工作时间,格式为二十四小时制时间,范围为00:00~23:59。', 'type' => 'string', 'required' => false, 'example' => '00:00'], + ], + [ + 'name' => 'EndTime', + 'in' => 'formData', + 'schema' => ['description' => '排程每日结束工作时间,格式为二十四小时制时间,范围为00:00~23:59,不能早于StartTime。', 'type' => 'string', 'required' => false, 'example' => '23:59'], + ], + [ + 'name' => 'StartDate', + 'in' => 'formData', + 'schema' => ['description' => '排程开始工作日期,格式为yyyy-MM-dd。', 'type' => 'string', 'required' => false, 'example' => '2022-03-31'], + ], + [ + 'name' => 'EndDate', + 'in' => 'formData', + 'schema' => ['description' => '排程结束工作日期,格式为yyyy-MM-dd,不得早于StartDate。', 'type' => 'string', 'required' => false, 'example' => '2022-03-31'], ], ], 'responses' => [ @@ -65147,95 +46036,124 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '35023CAB-CBED-4A2E-92DF-201C72850B50', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.soundcodeservice.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。', 'type' => 'string', 'example' => 'sound code service has not been signed'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"RequestId\\": \\"35023CAB-CBED-4A2E-92DF-201C72850B50\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 35023CAB-CBED-4A2E-92DF-201C72850B50\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'DisableDeviceTunnelShare', - 'summary' => '调用该接口关闭网关隧道分享。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.soundcodeschedule.InvalidDesc', 'errorMessage' => 'invalid schedule description', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidName', 'errorMessage' => 'invalid schedule name', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.AlreadyExistsName', 'errorMessage' => 'already exists schedule name', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'errorMessage' => 'invalid schedule IotInstanceId', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.NotExists', 'errorMessage' => 'schedule not exists', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidStatus', 'errorMessage' => 'invalid schedule status', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidTime', 'errorMessage' => 'invalid schedule time', 'description' => ''], + ['errorCode' => 'iot.scheduleperiod.ConflictTime', 'errorMessage' => 'conflict with:%s', 'description' => ''], + ['errorCode' => 'iot.soundcodeschedule.InvalidDate', 'errorMessage' => 'invalid sound code schedule date', 'description' => ''], + ], + 403 => [ + ['errorCode' => 'iot.soundcodeservice.NotSigned', 'errorMessage' => 'sound code service has not been signed', 'description' => ''], + ], + ], + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.soundcodeservice.NotSigned\\",\\n \\"ErrorMessage\\": \\"sound code service has not been signed\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n\\n","errorExample":""}]', + 'title' => 'UpdateSoundCodeSchedule', + 'summary' => '调用该接口更新声码排程。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为2。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'RefreshDeviceTunnelSharePassword' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSpeech' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'update', - ], + 'systemTags' => [], 'parameters' => [ + [ + 'name' => 'Voice', + 'in' => 'formData', + 'schema' => ['description' => '更新创建语料时设置的语料播报声音,可以选择的声音类型通过[GetSpeechVoice](~~217887~~)进行查询,填入返回参数中**VoiceList**中**Value**的值。', 'type' => 'string', 'required' => true, 'example' => 'Siyue'], + ], + [ + 'name' => 'SpeechCode', + 'in' => 'formData', + 'schema' => ['description' => '语料ID,该参数可通过调用[QuerySpeechList](~~217576~~)查询。', 'type' => 'string', 'required' => true, 'example' => ' VlKzbj3XIZ****CeIHH6vR82JNCSzk**'], + ], [ 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'formData', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot_instc_pu****_c*-v64********'], ], [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '网关所属产品的Key,产品的唯一标识符。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1Wmy******', - ], + 'name' => 'SpeechRate', + 'in' => 'formData', + 'schema' => ['description' => '播报速度,默认值为0,取值范围:-500~500。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '500', 'minimum' => '-500', 'example' => '0', 'default' => '0'], ], [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '网关的设备名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'LEGatewayAuto_B3XM******', - ], + 'name' => 'Volume', + 'in' => 'formData', + 'schema' => ['description' => '音量大小,默认值为50,取值范围:0~100。'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => false, 'maximum' => '100', 'minimum' => '0', 'example' => '50', 'default' => '50'], + ], + [ + 'name' => 'ProjectCode', + 'in' => 'formData', + 'schema' => ['description' => '项目ID,是项目的唯一标识,您可以通过[项目管理控制台](https://iot.console.aliyun.com/things-service/projects)获取项目ID。', 'type' => 'string', 'required' => true, 'example' => ' 4de2c367****8c585e5992**'], + ], + [ + 'name' => 'SoundCodeConfig', + 'in' => 'formData', + 'style' => 'json', + 'schema' => ['description' => '声码配置,包含字段如下:'."\n" + ."\n\n" + .'- **SoundCodeContent**:声码营销内容,例如商品的详情地址等。'."\n" + ."\n" + .'- **AdditionalDuration**:语料播放结束后的声码播放时长,单位为秒,取值范围为1~15。', 'type' => 'object', 'required' => false, 'example' => '{"SoundCodeContent": "www.taobao.com", "AdditionalDuration": 3}'], + ], + [ + 'name' => 'EnableSoundCode', + 'in' => 'formData', + 'schema' => ['description' => '是否启用声码。'."\n" + ."\n" + .'> 如果传入了**true**,必须传入参数**SoundCodeConfig**,否则调用会失败。'."\n" + .'>', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], ], 'responses' => [ @@ -65243,294 +46161,200 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'Password' => [ - 'description' => '新的隧道分享密码。', - 'type' => 'string', - 'example' => '5f5c96d7e792af75da33a81dc87982ea********', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。'."\n", 'type' => 'string', 'example' => 'iot.speechsolution.NotSigned'], + 'ErrorMessage' => ['description' => '调用失败时,返回的错误信息。'."\n", 'type' => 'string', 'example' => '千里传音解决方案未开通'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '66FF51D3-***-49F1-B1A2-***'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + ."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"Password\\": \\"5f5c96d7e792af75da33a81dc87982ea********\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 46AF6619-EFF3-4B77-A90B-B9EAA0C6D1AF\\r\\n Success\\r\\n true\\r\\n 5f5c96d7e792af75da33a81dc87982ea********\\r\\n","errorExample":""}]', - 'title' => 'RefreshDeviceTunnelSharePassword', - 'summary' => '调用该接口更新网关隧道分享密码。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - ], - 'CreateEdgeInstanceMessageRouting' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.speechsolution.NotSigned\\",\\n \\"ErrorMessage\\": \\"千里传音解决方案未开通\\",\\n \\"RequestId\\": \\"66FF51D3-***-49F1-B1A2-***\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n66FF51D3-***-49F1-B1A2-***\\ntrue\\n","errorExample":""}]', + 'title' => '更新语料', + 'summary' => '更新语料,包括语料的播报声音、播报速度和音量大小等。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" + .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', + 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateSubscribeRelation' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'DeviceStatusChangeFlag', + 'in' => 'query', + 'schema' => ['description' => '推送消息类型是否选择设备状态变化通知。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台的实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ThingHistoryFlag', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nF9oXo7kLRWQ********', - ], + 'schema' => ['description' => '推送消息类型是否选择物模型历史数据上报。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'Name', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '消息路由名称。长度限制为4~32个字符,汉字和全角符号算2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'le_lite2', - ], + 'schema' => ['description' => '该订阅中的产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1fyXVF****'], ], [ - 'name' => 'TopicFilter', + 'name' => 'Type', 'in' => 'query', - 'schema' => [ - 'description' => '消息过滤条件,取值如下:'."\n" - .'- 具体消息Topic:表示来自消息源,且符合该消息Topic的消息,会被传给消息接收者。Topic相关信息,请参见[什么是Topic](~~73731~~)。'."\n" - .'- **all**:表示来自消息源的所有消息,都会被传给消息接收者。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '订阅类型:'."\n" + ."\n" + .'- **MNS**'."\n" + .'- **AMQP**', 'type' => 'string', 'required' => true, 'example' => 'AMQP'], ], [ - 'name' => 'SourceType', + 'name' => 'DeviceDataFlag', 'in' => 'query', - 'schema' => [ - 'description' => '消息来源,取值如下:'."\n" - .'- **device**:表示消息由设备发出。'."\n" - .'- **function**:表示消息由边缘应用发出。'."\n" - .'- **IotHub**:表示消息由云端发出。', - 'type' => 'string', - 'required' => true, - 'example' => 'device', - ], + 'schema' => ['description' => '推送消息类型是否选择设备上报消息。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'SourceData', + 'name' => 'DeviceTopoLifeCycleFlag', 'in' => 'query', - 'schema' => [ - 'description' => '消息来源的数据,取值分如下几种情况:'."\n" - ."\n" - .'- **SourceType**取值为**device**时: '."\n" - .' - 如果由指定产品下的指定设备发送消息,则此处取值格式为`/{Your_ProductKey}/{Your_DeviceName}`。'."\n" - ."\n" - .' > 请将{Your_ProductKey}和{Your_DeviceName}替换为您实际设备的ProductKey和DeviceName。'."\n" - ."\n" - .' - 如果由指定产品下的所有设备发送消息,则此处取值格式为`/{Your_ProductKey}/+`。'."\n" - ."\n" - .' > 请将{Your_ProductKey}替换为您实际设备的ProductKey。'."\n" - ."\n" - .' - 如果由边缘实例中所有产品下的所有设备发送消息,则此处取值为`#`。'."\n" - ."\n" - .'- **SourceType**取值为**function**:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" - ."\n" - .'- **SourceType**取值为**IotHub**时:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '#', - ], + 'schema' => ['description' => '推送消息类型是否选择设备拓扑关系变更。可选值:'."\n" + .'- **true**:是。仅对网关产品有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'TargetType', + 'name' => 'FoundDeviceListFlag', 'in' => 'query', - 'schema' => [ - 'description' => '消息接收者,取值分如下几种情况:'."\n" - .'- **SourceType**取值为**device**时:该参数可取的值为**function**或**IotHub**,表示由设备发出的消息,传给边缘应用或云端。'."\n" - .'- **SourceType**取值为**function**时:该参数可取的值为**function**或**IotHub**,表示由边缘应用发出的消息,传给另一个边缘应用或云端。'."\n" - .'- **SourceType**取值为**IotHub**时:该参数可取的值为**function**,表示由云端发出的消息,传给边缘应用。', - 'type' => 'string', - 'required' => true, - 'example' => 'function', - ], + 'schema' => ['description' => '推送消息类型是否选择网关子设备发现上报。可选值:'."\n" + .'- **true**:是。仅对网关产品有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'TargetData', + 'name' => 'OtaEventFlag', 'in' => 'query', - 'schema' => [ - 'description' => '消息接收者的数据,取值分如下几种情况:'."\n" - .'- **TargetType**取值为**function**时:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" - .'- **TargetType**取值为**IotHub**时:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '58c46749ac934db3925fe5********', - ], + 'schema' => ['description' => '推送消息类型是否选择OTA升级状态通知。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'TargetIotHubQos', + 'name' => 'DeviceLifeCycleFlag', 'in' => 'query', - 'schema' => [ - 'description' => '服务级别。取值如下:'."\n" - ."\n" - .'- **0**:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" - ."\n" - .'- **1**:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。'."\n" - ."\n" - .'> 当**TargetType**为**IoTHub**时,必须传入此参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '0', - ], + 'schema' => ['description' => '推送消息类型是否选择设备生命周期变更。可选值:'."\n" + .'- **true**:是。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], - ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'AC786033-00C5-4FD6-8435-F2807740D9FA', - ], - 'RouteId' => [ - 'description' => '消息路由的ID。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '123456', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], - ], + [ + 'name' => 'MnsConfiguration', + 'in' => 'query', + 'schema' => ['description' => 'MNS队列的配置信息,**Type**为**MNS**时必填。'."\n" + .'具体要求和示例见下文“MnsConfiguration定义”。', 'type' => 'string', 'required' => false, 'example' => '{ "queueName": "mns-test-topic1", "regionName": "cn-shanghai", "role": { "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole", "roleName": "AliyunIOTAccessingMNSRole" } }'], ], - ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"AC786033-00C5-4FD6-8435-F2807740D9FA\\",\\n \\"RouteId\\": 123456,\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\r\\n 123456\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'CreateEdgeInstanceMessageRouting', - 'summary' => '调用该接口,为指定的边缘实例创建消息路由。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteEdgeInstanceMessageRouting' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ [ - 'AK' => [], + 'name' => 'DeviceTagFlag', + 'in' => 'query', + 'schema' => ['description' => '推送消息类型是否选择设备标签变更。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], - ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ [ - 'name' => 'IotInstanceId', + 'name' => 'OtaVersionFlag', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台的实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '推送消息类型是否选择OTA模块版本号上报。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'InstanceId', + 'name' => 'OtaJobFlag', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => '5zvK1COK1gtr********', - ], + 'schema' => ['description' => '推送消息类型是否选择OTA升级批次状态通知。可选值:'."\n" + .'- **true**:是。仅当**Type**为**AMQP**时有效。'."\n" + .'- **false**(默认):否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'RouteId', + 'name' => 'SubscribeFlags', + 'in' => 'query', + 'schema' => ['description' => '标识当前订阅产品的其他类型消息。'."\n" + ."\n" + .'- 如果订阅的是JT/T 808协议云网关产品,必须传入**SubscribeFlags**,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + ."\n" + .'- 如果订阅的是设备视频流状态变更通知消息,必须传入**SubscribeFlags**,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true'."\n" + .' }'."\n" + .' ```'."\n" + .' 配置AMQP服务端订阅**设备视频流状态变更通知**消息的详细内容,请参见[AMQP服务端订阅](~~2698782~~)。'."\n" + ."\n" + .'- 如果同时订阅以上消息,取值为:'."\n" + ."\n" + .' ```'."\n" + .' {'."\n" + .' "lvDeviceStatusFlag": true,'."\n" + .' "jt808DeviceDataFlag": true'."\n" + .' }'."\n" + .' ```', 'type' => 'string', 'required' => false, 'example' => '{ "jt808DeviceDataFlag": true }'], + ], + [ + 'name' => 'ConsumerGroupIds', 'in' => 'query', + 'style' => 'repeatList', 'schema' => [ - 'description' => '消息路由的ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '123456', + 'description' => '创建的AMQP订阅中的消费组ID,**Type**为**AMQP**时必填。'."\n" + ."\n" + .'调用[CreateConsumerGroup](~~170388~~)创建消费组成功后,会返回消费组ID。您可以调用[QueryConsumerGroupList](~~170419~~)按消费组名称查询消费组ID,也可以在物联网平台控制台对应实例下,选择**消息转发**>**服务端订阅**>**消费组列表**,查看消费组ID。', + 'type' => 'array', + 'items' => ['type' => 'string', 'description' => ''], + 'required' => false, + 'example' => 'nJRaJPn5U1JITGfjBO9l00****', + 'maxItems' => 50, ], ], ], @@ -65539,200 +46363,129 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => '21D327AF-A7DE-4E59-B5D1-ACAC8C024555'], + 'Success' => ['description' => '是否调用成功。'."\n" + ."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n Success\\r\\n E252BC84-EF9A-4F0F-8E73-ADCF9CA3B722\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'DeleteEdgeInstanceMessageRouting', - 'summary' => '调用该接口删除边缘实例中的消息路由。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"21D327AF-A7DE-4E59-B5D1-ACAC8C024555\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n C21DA94F-07D7-482F-8A0C-5BB0E3CC1A82\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改MNS或AMQP服务端订阅', + 'summary' => '调用该接口修改MNS或AMQP服务端订阅。', + 'description' => '## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + ."\n" + .' > RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '> 请求参数中的Flag不能全部为**false**或不传入,至少传入一个为**true**的Flag。'."\n" + ."\n" + .'**MnsConfiguration定义**'."\n" + .'| 名称 | 描述 |'."\n" + .'| ------------- |------------ |'."\n" + .'|queueName| 消息服务中用来接收信息的队列名称。您需先在消息服务MNS控制台,创建队列,获取队列名称。具体操作,请参见[创建队列](~~34417~~)。 |'."\n" + .'|regionName | 目标消息服务所在的阿里云地域代码,例如cn-shanghai。 |'."\n" + .'|role | 授权角色信息。通过授予物联网平台指定的系统服务角色,您可以授权物联网平台访问您的消息服务。授权角色信息如下:
`{"roleArn":"acs:ram::5645*\\**:role/aliyuniotaccessingmnsrole","roleName": "AliyunIOTAccessingMNSRole"} `
请将`5645*\\**`替换成您的阿里云账号ID。您可以登录控制台,在账号安全设置页面查看您的账号ID。
`AliyunIOTAccessingMNSRole`是访问控制中定义的服务角色。用于授予物联网平台访问消息服务。关于角色的更多信息,请在访问控制RAM控制台的角色管理页面进行角色管理。 |'."\n" + ."\n" + .'**MnsConfiguration**示例:'."\n" + .'```'."\n" + .'{'."\n" + .' "queueName": "mns-test-topic1",'."\n" + .' "regionName": "cn-shanghai",'."\n" + .' "role": {'."\n" + .' "roleArn": "acs:ram::5645***:role/aliyuniotaccessingmnsrole",'."\n" + .' "roleName": "AliyunIOTAccessingMNSRole"'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'UpdateEdgeInstanceMessageRouting' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], - ], - ], - 'systemTags' => [ - 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台的实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], - ], - [ - 'name' => 'InstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => 'nF9oXo7kLRWQ********', - ], - ], + 'changeSet' => [], + 'ramActions' => [ [ - 'name' => 'RouteId', - 'in' => 'query', - 'schema' => [ - 'description' => '消息路由ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '123456', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - [ - 'name' => 'Name', - 'in' => 'query', - 'schema' => [ - 'description' => '消息路由名称。长度限制为4~32个字符,汉字和全角符号算2个字符。', - 'type' => 'string', - 'required' => false, - 'example' => 'le_lite1', - ], + ], + ], + 'UpdateThingModel' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], + 'security' => [ + [ + 'AK' => [], ], + ], + 'systemTags' => ['operationType' => 'update'], + 'parameters' => [ [ - 'name' => 'TopicFilter', + 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '消息过滤条件,取值如下:'."\n" - .'- 具体消息Topic:表示来自消息源,且符合该消息Topic的消息,会被传给消息接收者。Topic相关信息,请参见[什么是Topic](~~73731~~)。'."\n" - .'- **all**:表示来自消息源的所有消息,都会被传给消息接收者。', - 'type' => 'string', - 'required' => false, - 'example' => 'all', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'SourceType', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '消息来源,取值如下:'."\n" - .'- **device**:表示消息由设备发出。'."\n" - .'- **function**:表示消息由边缘应用发出。'."\n" - .'- **IotHub**:表示消息由云端发出。', - 'type' => 'string', - 'required' => true, - 'example' => 'device', - ], + 'schema' => ['description' => '产品的**ProductKey**。'."\n" + ."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看ProductKey的取值。', 'type' => 'string', 'required' => true, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'SourceData', + 'name' => 'Identifier', 'in' => 'query', - 'schema' => [ - 'description' => '消息来源的数据,取值分如下几种情况:'."\n" - ."\n" - .'- **SourceType**取值为**device**时: '."\n" - .' - 如果由指定产品下的指定设备发送消息,则此处取值格式为`/{Your_ProductKey}/{Your_DeviceName}`。'."\n" - ."\n" - .' > 请将{Your_ProductKey}和{Your_DeviceName}替换为您实际设备的ProductKey和DeviceName。'."\n" - ."\n" - .' - 如果由指定产品下的所有设备发送消息,则此处取值格式为`/{Your_ProductKey}/+`。'."\n" - ."\n" - .' > 请将{Your_ProductKey}替换为您实际设备的ProductKey。'."\n" - ."\n" - .' - 如果由边缘实例中所有产品下的所有设备发送消息,则此处取值为`#`。'."\n" - ."\n" - .'- **SourceType**取值为**function**:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" - ."\n" - .'- **SourceType**取值为**IotHub**时:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '#', - ], + 'schema' => ['description' => '功能原有的标识符。'."\n" + ."\n" + .'您可调用[GetThingModelTsl](~~150319~~),从返回参数**TslStr**中查看具体功能的**identifier**。', 'type' => 'string', 'required' => false, 'example' => 'Temperature'], ], [ - 'name' => 'TargetType', + 'name' => 'ThingModelJson', 'in' => 'query', - 'schema' => [ - 'description' => '消息接收者,取值分如下几种情况:'."\n" - .'- **SourceType**取值为**device**时:该参数可取的值为**function**或**IotHub**,表示由设备发出的消息,传给边缘应用或云端。'."\n" - .'- **SourceType**取值为**function**时:该参数可取的值为**function**或**IotHub**,表示由边缘应用发出的消息,传给另一个边缘应用或云端。'."\n" - .'- **SourceType**取值为**IotHub**时:该参数可取的值为**function**,表示由云端发出的消息,传给边缘应用。', - 'type' => 'string', - 'required' => true, - 'example' => 'function', - ], + 'schema' => ['description' => '新的功能定义详情。'."\n" + ."\n" + .'- **Identifier**不为空时,表示更新功能的标识符,最多能包含1个功能的标识符定义信息。'."\n" + .'- **Identifier**为空时,表示更新一个服务或事件下,输入或输出参数的定义,可包含多个参数的定义信息,最多不超过50个。'."\n" + ."\n" + .'ThingModelJson的编写指导,请参见[ThingModelJson数据说明](~~150457~~)。'."\n", 'type' => 'string', 'required' => false, 'example' => '{ "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1Jw4i****", "required": false, "customFlag": true, "name": "sim卡类型" } ] }'], ], [ - 'name' => 'TargetData', + 'name' => 'FunctionBlockId', 'in' => 'query', - 'schema' => [ - 'description' => '消息接收者的数据,取值分如下几种情况:'."\n" - .'- **TargetType**取值为**function**时:此处取值为边缘应用的ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**应用管理**页面中,鼠标指针悬浮在目标应用名称上获取ID。'."\n" - .'- **TargetType**取值为**IotHub**时:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => '58c46749ac934db3925fe5********', - ], + 'schema' => ['description' => '物模型自定义模块标识符,在产品中具有唯一性。'."\n" + ."\n" + .'此参数和**FunctionBlockName**均不传入时,更新默认模块中功能。', 'type' => 'string', 'required' => false, 'example' => 'BatteryModule'], ], [ - 'name' => 'TargetIotHubQos', + 'name' => 'FunctionBlockName', 'in' => 'query', - 'schema' => [ - 'description' => '服务级别。取值如下:'."\n" - ."\n" - .'- **0**:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" - ."\n" - .'- **1**:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。'."\n" - ."\n" - .'> 当**TargetType**为**IoTHub**时,必须传入此参数。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - ], + 'schema' => ['description' => '物模型的自定义模块名称。支持中文、英文字母、日文、数字和下划线(_),长度限制为4~30个字符,一个中文、一个日文算1个字符。'."\n" + ."\n" + .'- 此参数和**FunctionBlockId**均不传入时,更新默认模块中功能。'."\n" + ."\n" + .'- 如果传入此参数,必须与**FunctionBlockId**结合使用,可修改**FunctionBlockId**对应的自定义模块名称。'."\n" + ."\n" + .'> 不支持修改默认模块名称。'."\n", 'type' => 'string', 'required' => false, 'example' => '电池模块'], ], ], 'responses' => [ @@ -65740,98 +46493,95 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'BBE0E0C7-913A-47B8-A255-F2C6038B5FD8', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '表示是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BBE0E0C7-913A-47B8-A255-F2C6038B5FD8\\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => 'UpdateEdgeInstanceMessageRouting', - 'summary' => '调用该接口更新边缘实例中的消息路由。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为20。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n5573D217-8E3E-47AD-9331-2083B88E64B2\\ntrue\\n","errorExample":""}]', + 'title' => '更新产品物模型功能', + 'summary' => '更新指定产品物模型中的单个功能,支持更新物模型扩展描述。', + 'description' => '## 使用说明'."\n" + ."\n" + .'- 如果指定产品已发布,需先调用接口[CancelReleaseProduct](~~213875~~)取消该产品发布,才能调用本接口更新物模型功能。'."\n" + ."\n" + .'- 如需更新功能定义信息,您可通过[json-schema](https://github.com/everit-org/json-schema?spm=a2c4g.11186623.2.23.575832d9zD7fZb)对**ThingModelJson**中的入参进行预校验,请参见[ThingModelJson数据说明](~~150457~~)中的“校验”。'."\n" + ."\n\n" + .'- 单次调用最多可更新1个功能,即更新1个属性、服务或事件的定义信息。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'GetEdgeInstanceMessageRouting' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateThingScript' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ + [ + 'name' => 'ScriptContent', + 'in' => 'query', + 'schema' => ['description' => '脚本内容。不允许为空。'."\n" + ."\n" + .'脚本示例的更多信息,请参见[什么是数据解析](~~68702~~)。', 'type' => 'string', 'required' => true, 'example' => '"function protocolToRawData(jsonObj) {return rawdata; }function rawDataToProtocol(rawData) {return jsonObj; }"'], + ], [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'description' => '物联网平台的实例ID:'."\n" - .'- 企业版实例:必须传入此参数。您可在[物联网平台控制台](http://iot.console.aliyun.com/)的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该ID值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或ID值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-cn-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'description' => '边缘实例ID。在[边缘计算控制台](https://iot.console.aliyun.com/le/instance/list)的**边缘实例**页面中,鼠标指针悬浮在目标边缘实例名称上获取ID。', - 'type' => 'string', - 'required' => true, - 'example' => '8jKxIuMVT9rX********', - ], + 'schema' => ['description' => '产品**ProductKey**。'."\n" + ."\n" + .'可以在物联网平台控制台产品页查看,或调用[QueryProductList](~~69271~~)查看**ProductKey**的取值。'."\n", 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY****'], ], [ - 'name' => 'RouteId', + 'name' => 'ScriptType', 'in' => 'query', - 'schema' => [ - 'description' => '消息路由ID。您可以调用[QueryEdgeInstanceMessageRouting](~~212633~~)接口获取。', - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, - 'maximum' => '9223372036854775807', - 'minimum' => '0', - 'example' => '123456', - ], + 'schema' => ['description' => '脚本类型。取值:'."\n" + ."\n" + .'- JavaScript'."\n" + .'- Python_27:表示Python 2.7'."\n" + .'- PHP_72:表示PHP 7.2', 'type' => 'string', 'required' => true, 'example' => 'JavaScript'], ], ], 'responses' => [ @@ -65839,227 +46589,115 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '接口返回码:'."\n" - .'- **Success**:表示成功。'."\n" - .'- 其它:表示错误码。错误码详情,请参见[错误码](~~135200~~)。', - 'type' => 'string', - 'example' => 'Success', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => '8A248DEC-887C-4A37-8DE5-E128FFA3698D', - ], - 'Success' => [ - 'description' => '是否调用成功:'."\n" - .'- **true**:表示调用成功。'."\n" - .'- **false**:表示调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '调用成功时,返回的数据。', - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'description' => '创建消息路由的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1590407699000', - ], - 'TopicFilter' => [ - 'description' => '消息过滤条件。', - 'type' => 'string', - 'example' => 'all', - ], - 'GmtModifiedTimestamp' => [ - 'description' => '最后一次更新消息路由的Unix时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1590407699000', - ], - 'TargetData' => [ - 'description' => '消息接收者的数据:'."\n" - .'- **TargetType**为**function**时:此处是边缘应用的ID。'."\n" - .'- **TargetType**为**IotHub**时:此处为空。', - 'type' => 'string', - 'example' => '58c46749ac934db3925fe5********', - ], - 'GmtCreate' => [ - 'description' => '创建消息路由的时间。', - 'type' => 'string', - 'example' => '2020-05-25 19:54:59', - ], - 'SourceType' => [ - 'description' => '消息来源:'."\n" - .'- **device**:表示消息由设备发出。'."\n" - .'- **function**:表示消息由边缘应用发出。'."\n" - .'- **IotHub**:表示消息由云端发出。', - 'type' => 'string', - 'example' => 'device', - ], - 'GmtModified' => [ - 'description' => '最后一次更新消息路由的时间。', - 'type' => 'string', - 'example' => '2020-05-25 19:54:59', - ], - 'Name' => [ - 'description' => '消息路由名称。', - 'type' => 'string', - 'example' => 'sample', - ], - 'SourceData' => [ - 'description' => '消息来源的数据:'."\n" - ."\n" - .'- **SourceType**为**device**时:'."\n" - ."\n" - .' - 此处参数值格式为`/{Your_ProductKey}/{Your_DeviceName}`:表示消息来源为指定产品下的指定设备。'."\n" - ."\n" - .' > {Your_ProductKey}和{Your_DeviceName}是您实际设备的ProductKey和DeviceName。'."\n" - ."\n" - .' - 此处参数值格式为`/{Your_ProductKey}/+`:表示消息来源为指定产品下的所有设备。'."\n" - ."\n" - .' > {Your_ProductKey}是您实际设备的ProductKey。'."\n" - ."\n" - .' - 此处参数值为**#**:表示消息来源为边缘实例中所有产品下的所有设备。'."\n" - ."\n" - .'- **SourceType**为**function**时:此处是边缘应用的ID。'."\n" - ."\n" - .'- **SourceType**为**IotHub**时:此处为空。', - 'type' => 'string', - 'example' => '#', - ], - 'TargetType' => [ - 'description' => '消息接收者:'."\n" - .'- **function**:表示消息发送给边缘应用。'."\n" - .'- **IotHub**:表示消息发送给云端。', - 'type' => 'string', - 'example' => 'IotHub', - ], - 'RouteContext' => [ - 'description' => '消息来源和消息接收者的补充信息。', - 'type' => 'object', - 'properties' => [ - 'TargetApplicationName' => [ - 'description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用的名称。', - 'type' => 'string', - 'example' => 'le_object_detector', - ], - 'SourceApplicationName' => [ - 'description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用的名称。', - 'type' => 'string', - 'example' => 'le_object_detector', - ], - 'TargetFcFunctionName' => [ - 'description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', - 'type' => 'string', - 'example' => 'lightSensorDataFilter', - ], - 'SourceFcFunctionName' => [ - 'description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', - 'type' => 'string', - 'example' => 'object_detector_app', - ], - 'TargetFcServiceName' => [ - 'description' => '**TargetType**为**function**,且**TargetData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的函数名称。', - 'type' => 'string', - 'example' => 'EdgeFC', - ], - 'SourceFcServiceName' => [ - 'description' => '**SourceType**为**function**,且**SourceData**中指定的边缘应用,是函数计算类型的边缘应用时,返回此参数,表示函数计算类型边缘应用中的服务名称。', - 'type' => 'string', - 'example' => 'EdgeFC', - ], - 'Qos' => [ - 'description' => '服务级别:'."\n" - ."\n" - .'- 0:表示消息仅发送一次,不管是否被消息接收者成功接收。'."\n" - ."\n" - .'- 1:表示最少发送一次消息,直至收到消息接收者的返回信息,则停止发送该消息。', - 'type' => 'string', - 'example' => '1', - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回的错误码。更多信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'BB71E443-4447-4024-A000-EDE09922891E'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。'."\n", 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"Success\\",\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"8A248DEC-887C-4A37-8DE5-E128FFA3698D\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"GmtCreateTimestamp\\": 1590407699000,\\n \\"TopicFilter\\": \\"all\\",\\n \\"GmtModifiedTimestamp\\": 1590407699000,\\n \\"TargetData\\": \\"58c46749ac934db3925fe5********\\",\\n \\"GmtCreate\\": \\"2020-05-25 19:54:59\\",\\n \\"SourceType\\": \\"device\\",\\n \\"GmtModified\\": \\"2020-05-25 19:54:59\\",\\n \\"Name\\": \\"sample\\",\\n \\"SourceData\\": \\"#\\",\\n \\"TargetType\\": \\"IotHub\\",\\n \\"RouteContext\\": {\\n \\"TargetApplicationName\\": \\"le_object_detector\\",\\n \\"SourceApplicationName\\": \\"le_object_detector\\",\\n \\"TargetFcFunctionName\\": \\"lightSensorDataFilter\\",\\n \\"SourceFcFunctionName\\": \\"object_detector_app\\",\\n \\"TargetFcServiceName\\": \\"EdgeFC\\",\\n \\"SourceFcServiceName\\": \\"EdgeFC\\",\\n \\"Qos\\": \\"1\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\r\\n 8A248DEC-887C-4A37-8DE5-E128FFA3698D\\r\\n \\r\\n \\r\\n all\\r\\n 2020-05-25 19:54:59\\r\\n 1590407699000\\r\\n device\\r\\n IotHub\\r\\n 2020-05-25 19:54:59\\r\\n 170101\\r\\n 1590407699000\\r\\n sample\\r\\n #\\r\\n \\r\\n 0\\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","errorExample":""}]', - 'title' => '查询边缘实例中消息路由的详细信息', - 'summary' => '调用该接口,获取边缘实例中消息路由的详细信息。', - 'description' => '## 限制条件'."\n" - .'- 如果在企业版实例中调用该接口,必须传入参数**IotInstanceId**的值。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .' > RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~135196~~)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"BB71E443-4447-4024-A000-EDE09922891E\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n BB71E443-4447-4024-A000-EDE09922891E\\r\\n true\\r\\n","errorExample":""}]', + 'title' => '修改指定产品的数据解析脚本', + 'summary' => '调用该接口修改指定产品的数据解析脚本。', + 'description' => '## 使用说明'."\n" + .'数据解析脚本用于将设备上报的自定义格式数据转换为JSON结构体。脚本类型支持JavaScript、Python 2.7、PHP 7.2,更多信息,请参见[提交数据解析脚本](~~149963~~)。'."\n" + ."\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" + .'> RAM用户共享阿里云账号配额。'."\n" + ."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', - ], - 'QueryEdgeInstanceMessageRouting' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'UpdateTopicConfig' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'get', - ], + 'systemTags' => ['operationType' => 'update'], 'parameters' => [ [ 'name' => 'IotInstanceId', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, - ], + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。'."\n" + ."\n" + .'>'."\n" + .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" + .'- 若无**实例概览**页面或**ID**值,则无需传入。'."\n" + ."\n" + .'>'."\n" + ."\n" + .'实例的更多信息,请参见[实例概述](~~356505~~)。', 'type' => 'string', 'required' => false, 'example' => 'iot-0pp1n8t****'], ], [ - 'name' => 'InstanceId', + 'name' => 'ProductKey', 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, - ], + 'schema' => ['description' => '要接收消息的设备所属产品的**ProductKey**。', 'type' => 'string', 'required' => true, 'example' => 'a1Q5XoY****'], ], [ - 'name' => 'CurrentPage', + 'name' => 'EnableBroadcast', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100000', - 'minimum' => '1', - ], + 'schema' => ['description' => '是否支持保留消息广播。'."\n" + ."\n" + .'- **true**:是。'."\n" + .'- **false**:否。', 'type' => 'boolean', 'required' => false, 'example' => 'true'], ], [ - 'name' => 'PageSize', + 'name' => 'EnableProxySubscribe', 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', - ], + 'schema' => ['type' => 'boolean', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'Codec', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'Operation', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], + ], + [ + 'name' => 'TopicFullName', + 'in' => 'query', + 'schema' => ['description' => '要广播消息的自定义Topic。'."\n" + ."\n\n" + .'- 对于开源MQTT托管形态设备和MQTT云网关设备,自定义Topic为设备的原始自定义Topic。详细内容,请参见[Topic说明](~~433806~~)。'."\n" + .'- 对于非开源MQTT托管形态设备和非MQTT云网关设备,自定义Topic的格式为`/broadcast/${productKey}/${自定义字段}`。其中`${productKey}`与请求参数**ProductKey**值一致,`${自定义字段}`为您自定义的任意字段。'."\n" + ."\n" + .'> '."\n" + .'- Topic是在设备开发时编码定义的,无需控制台创建。'."\n" + .'- Topic的操作权限必须为**订阅**或**发布和订阅**。'."\n" + ."\n" + .'>', 'type' => 'string', 'required' => true, 'example' => '/broadcast/a1Q5XoY****/test'], + ], + [ + 'name' => 'Description', + 'in' => 'query', + 'schema' => ['type' => 'string', 'required' => false, 'description' => ''], ], ], 'responses' => [ @@ -66067,174 +46705,128 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'CurrentPage' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Total' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'MessageRouteList' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'MessageRoute' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreateTimestamp' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'TopicFilter' => [ - 'type' => 'string', - ], - 'GmtModifiedTimestamp' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'TargetData' => [ - 'type' => 'string', - ], - 'GmtCreate' => [ - 'type' => 'string', - ], - 'SourceType' => [ - 'type' => 'string', - ], - 'GmtModified' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - 'RouteId' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'SourceData' => [ - 'type' => 'string', - ], - 'TargetType' => [ - 'type' => 'string', - ], - 'RouteContext' => [ - 'type' => 'object', - 'properties' => [ - 'TargetApplicationName' => [ - 'type' => 'string', - ], - 'SourceApplicationName' => [ - 'type' => 'string', - ], - 'TargetFcFunctionName' => [ - 'type' => 'string', - ], - 'SourceFcFunctionName' => [ - 'type' => 'string', - ], - 'TargetFcServiceName' => [ - 'type' => 'string', - ], - 'SourceFcServiceName' => [ - 'type' => 'string', - ], - 'Qos' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - ], - ], - ], - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见[错误码](~~87387~~)。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'Message' => ['type' => 'string', 'description' => ''], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"errorExample":"","example":"{\\r\\n \\"RequestId\\": \\"8A248DEC-887C-4A37-8DE5-E128FFA3698D\\",\\r\\n \\"Data\\": {\\r\\n \\"PageSize\\": 15,\\r\\n \\"CurrentPage\\": 1,\\r\\n \\"Total\\": 2,\\r\\n \\"MessageRouteList\\": {\\r\\n \\"MessageRoute\\": [\\r\\n {\\r\\n \\"TargetData\\": \\"\\",\\r\\n \\"TopicFilter\\": \\"all\\",\\r\\n \\"GmtCreate\\": \\"2021-04-15 19:39:20\\",\\r\\n \\"GmtCreateTimestamp\\": 1618486760000,\\r\\n \\"SourceType\\": \\"device\\",\\r\\n \\"TargetType\\": \\"IotHub\\",\\r\\n \\"GmtModified\\": \\"2021-04-15 19:47:10\\",\\r\\n \\"RouteId\\": 123456,\\r\\n \\"GmtModifiedTimestamp\\": 1618487230000,\\r\\n \\"SourceData\\": \\"/a127n******/test1098\\",\\r\\n \\"Name\\": \\"sample\\",\\r\\n \\"RouteContext\\": {\\r\\n \\"Qos\\": 1\\r\\n }\\r\\n },\\r\\n {\\r\\n \\"TargetData\\": \\"\\",\\r\\n \\"TopicFilter\\": \\"all\\",\\r\\n \\"GmtCreate\\": \\"2020-05-25 19:54:59\\",\\r\\n \\"GmtCreateTimestamp\\": 1590407699000,\\r\\n \\"SourceType\\": \\"device\\",\\r\\n \\"TargetType\\": \\"IotHub\\",\\r\\n \\"GmtModified\\": \\"2020-05-25 19:54:59\\",\\r\\n \\"RouteId\\": 170101,\\r\\n \\"GmtModifiedTimestamp\\": 1590407699000,\\r\\n \\"SourceData\\": \\"#\\",\\r\\n \\"RouteContext\\": {\\r\\n \\"Qos\\": 0\\r\\n }\\r\\n }\\r\\n ]\\r\\n }\\r\\n },\\r\\n \\"Code\\": \\"Success\\",\\r\\n \\"Success\\": true\\r\\n}","type":"json"},{"errorExample":"","example":"\\r\\n 8A248DEC-887C-4A37-8DE5-E128FFA3698D\\r\\n \\r\\n 15\\r\\n 1\\r\\n 2\\r\\n \\r\\n \\r\\n \\r\\n all\\r\\n 2021-04-15 19:39:20\\r\\n 1618486760000\\r\\n device\\r\\n IotHub\\r\\n 2021-04-15 19:47:10\\r\\n 123456\\r\\n 1618487230000\\r\\n /a127n******/test1098\\r\\n sample\\r\\n \\r\\n 1\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n all\\r\\n 2020-05-25 19:54:59\\r\\n 1590407699000\\r\\n device\\r\\n IotHub\\r\\n 2020-05-25 19:54:59\\r\\n 170101\\r\\n 1590407699000\\r\\n #\\r\\n \\r\\n 0\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Success\\r\\n true\\r\\n","type":"xml"}]', - ], - 'BatchBindProductsIntoProject' => [ - 'methods' => [ - 'post', - 'get', + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'iot.message.broker.ParamCheckError', 'errorMessage' => 'Param check error.', 'description' => '参数校验错误。'], + ['errorCode' => 'iot.message.broker.ProductCheckError', 'errorMessage' => 'Product check error.', 'description' => '产品鉴权失败。'], + ['errorCode' => 'iot.message.broker.TopicConfigNumExceed', 'errorMessage' => 'Topic config num exceed.', 'description' => 'Topic数量超限。'], + ['errorCode' => 'iot.message.broker.SystemError', 'errorMessage' => 'System error.', 'description' => '系统异常。'], + ['errorCode' => 'iot.messagebroker.InvalidPubTopicFormat', 'errorMessage' => 'The pub topic cannot contain wildcard character.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidOperationWithBroadcast', 'errorMessage' => 'The operation must be sub when enable broadcast.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithBroadcast', 'errorMessage' => 'The topic cannot contain wildcard character when enable broadcast.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', 'errorMessage' => 'Operation must be sub or all when enable proxy subscribe.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', 'errorMessage' => 'Topic cannot contain wildcard character when enable proxy subscribe.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidTopicWithCodec', 'errorMessage' => 'Topic cannot contain wildcard when enable codec.', 'description' => ''], + ['errorCode' => 'iot.messagebroker.InvalidInstanceWithCodec', 'errorMessage' => 'Only connect instance support codec.', 'description' => ''], + ], ], - 'schemes' => [ - 'http', - 'https', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Message\\": \\"\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n\\ntrue","errorExample":""}]', + 'title' => 'UpdateTopicConfig', + 'summary' => '调用该接口设置自定义Topic是否支持保留消息广播。', + 'description' => '## 使用说明'."\n" + .'一个自定义Topic广播消息时,最多可被1,000个设备订阅。若后续需要新增更多设备订阅该自定义Topic的广播消息,可使用MQTT 5.0版本通信协议进行通信,通过设置自定义Topic支持保留消息广播和设置自定义Topic消息为保留消息来实现。'."\n" + .'具体步骤为:'."\n" + ."\n" + .'1. 调用本接口设置指定的自定义Topic(例如:`/broadcast/a1Q5XoY****/test`)支持保留消息广播,即**EnableBroadcast**设置为**true**。'."\n" + .'2. 调用[Pub](~~69793~~)接口向该自定义Topic(例如:`/broadcast/a1Q5XoY****/test`)发布广播消息,并设置为保留消息,即**Retained**设置为**true**。'."\n" + .'3. 调用[SubscribeTopic](~~311869~~)接口,新增设备订阅该自定义Topic(例如:`/broadcast/a1Q5XoY****/test`),设备即可收到上一步向该自定义Topic发送的保留消息。'."\n" + ."\n\n" + .'## QPS限制'."\n" + .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为100。'."\n" + .'> RAM用户共享阿里云账号配额。', + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', + 'responseParamsDescription' => ' ', + 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [ + [ + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], ], + ], + 'WriteDevicesHotStorageData' => [ + 'methods' => ['post', 'get'], + 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], - 'systemTags' => [ - 'operationType' => 'create', - ], + 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', - ], + 'in' => 'query', + 'schema' => ['description' => '实例ID。您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。', 'type' => 'string', 'required' => true, 'example' => 'iot-2w****'], ], [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123********', - ], + 'name' => 'ProductKey', + 'in' => 'query', + 'schema' => ['description' => '设备所属的产品**ProductKey**。'."\n" + .'> 如果传入该参数,需同时传入**DeviceName**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'a1BwAGV****'], ], [ - 'name' => 'ProductKeys', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要关联到项目的产品ProductKey列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'a1BwAGV****', - 'maxItems' => 10, - ], + 'name' => 'DeviceName', + 'in' => 'query', + 'schema' => ['description' => '设备的名称。'."\n" + .'> 如果传入该参数,需同时传入**ProductKey**。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'device1'], + ], + [ + 'name' => 'IotId', + 'in' => 'query', + 'schema' => ['description' => '设备ID。'."\n" + .'> **IotId**作为设备唯一标识符,和**ProductKey**与**DeviceName**组合是一一对应的关系。如果传入该参数,则无需传入**ProductKey**和**DeviceName**。如果您同时传入**IotId**和**ProductKey**与**DeviceName**组合,则以**IotId**为准。'."\n" + .'>', 'type' => 'string', 'required' => false, 'example' => 'y4u2weAI********HMle1234'], + ], + [ + 'name' => 'UserTopic', + 'in' => 'query', + 'schema' => ['description' => '自定义Topic。从`user`类目开始,输入自定义Topic的后续所有类目。'."\n" + ."\n" + .'自定义Topic详细说明,请参见[自定义Topic](~~85539~~)。', 'type' => 'string', 'required' => true, 'example' => 'user/a***/b***'], + ], + [ + 'name' => 'Items', + 'in' => 'query', + 'schema' => ['description' => '写入的数据,固定为如下JSON数据结构。'."\n" + ."\n" + .'```'."\n" + .'{'."\n" + .' "key1": {'."\n" + .' "value":xxx1'."\n" + .' "time":yyy1'."\n" + .' },'."\n" + .' "key2": {'."\n" + .' "value":xxx2'."\n" + .' "time":yyy2'."\n" + .' }'."\n" + .'}'."\n" + .'```'."\n" + ."\n" + .'- **key1**、**key2**为字段标识符,每个**Items**可包含多个字段。'."\n" + .'- **value**为字段对应的值,支持数据类型为int32、float、double、text、date、bool、enum、struct和array。详细说明,请参见[支持的数据类型](~~358843~~)。'."\n" + .'- **time**:字段值对应的UTC时间戳,单位为毫秒。', 'type' => 'string', 'required' => true, 'example' => '{ "Power": { "value": "on", "time": 1524448722000 }, "WF": { "value": 23.6, "time": 1524448722000 } }'], ], ], 'responses' => [ @@ -66242,4354 +46834,7980 @@ 'schema' => [ 'type' => 'object', 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- true:调用成功。'."\n" - .'- false:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], + 'Code' => ['description' => '调用失败时,返回错误码。详细信息,请参见下文**错误码**。', 'type' => 'string', 'example' => 'iot.system.SystemException'], + 'RequestId' => ['description' => '阿里云为该请求生成的唯一标识符。', 'type' => 'string', 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565'], + 'ErrorMessage' => ['description' => '调用失败时,返回的出错信息。', 'type' => 'string', 'example' => '系统异常'], + 'Success' => ['description' => '是否调用成功。'."\n" + .'- **true**:调用成功。'."\n" + .'- **false**:调用失败。', 'type' => 'boolean', 'example' => 'true'], ], + 'description' => '', ], ], ], 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', - ], - ], 400 => [ - [ - 'errorCode' => 'Studio.Product.BindFailed', - 'errorMessage' => 'bind failed', - ], + ['errorCode' => 'iot.device.InvalidFormattedDeviceName', 'errorMessage' => 'The DeviceName format is invalid.', 'description' => '设备名称格式错误。'], + ['errorCode' => 'iot.device.NullDeviceName', 'errorMessage' => 'The DeviceName parameter cannot be empty.', 'description' => '设备名称不能为空。'], + ['errorCode' => 'iot.device.SetDevicePropertyFailed', 'errorMessage' => 'An error occurred while setting the device properties.', 'description' => '设置设备属性失败。'], + ['errorCode' => 'iot.prod.InvalidFormattedProductkey', 'errorMessage' => 'The ProductKey format is invalid.', 'description' => '入参产品ProductKey格式错误。'], + ['errorCode' => 'iot.prod.NotExistedProduct', 'errorMessage' => 'The specified product does not exist.', 'description' => '指定的产品不存在。'], + ['errorCode' => 'iot.prod.NullProductKey', 'errorMessage' => 'The ProductKey parameter cannot be empty.', 'description' => '入参产品ProductKey不能为空。'], + ['errorCode' => 'iot.check.InvalidFormattedParameter', 'errorMessage' => 'The parameter format is invalid.', 'description' => '参数格式错误。'], + ['errorCode' => 'iot.messagebroker.HALFCONN', 'errorMessage' => 'The specified operation has failed. The device is in an inactive status.', 'description' => '设备处于非活跃可能心跳失败。'], + ['errorCode' => 'iot.messagebroker.OFFLINE', 'errorMessage' => 'The specified operation has failed. The device is offline.', 'description' => '由于设备离线导致失败。'], + ['errorCode' => 'iot.prod.QueryProductAbilitiesFailed', 'errorMessage' => 'An error occurred while querying the product features.', 'description' => '获取产品功能失败。'], + ['errorCode' => 'iot.system.IllegalRequest', 'errorMessage' => 'The request parameter is invalid.', 'description' => '非法的请求参数。'], + ['errorCode' => 'iot.dataalgo.ScriptMethodNotFound', 'errorMessage' => 'Method is not found in script.', 'description' => '脚本中方法找不到。'], + ['errorCode' => 'iot.dataalgo.ScriptExecutionTimeout', 'errorMessage' => 'Script execution timeout.', 'description' => '脚本执行超时。'], + ['errorCode' => 'iot.dataalgo.ScriptExecutionOomException', 'errorMessage' => 'Script execution is out of memory.', 'description' => '脚本执行超出内存限制。'], + ['errorCode' => 'Iot.Device.NotExistedDevice', 'errorMessage' => 'The device does not exist.', 'description' => '设备不存在或未激活。'], + ['errorCode' => 'iot.device.InvalidIoTId', 'errorMessage' => 'The specified device ID is invalid.', 'description' => '设备ID错误。'], + ['errorCode' => 'iot.dataalgo.ScriptExecutionException', 'errorMessage' => 'Script execution exception.', 'description' => '脚本执行异常。'], + ['errorCode' => 'iot.prod.QueryPropertyNotFound', 'errorMessage' => 'Query property not found.', 'description' => '查询属性不存在。'], + ['errorCode' => 'iot.dataalgo.ScriptDataFormatException', 'errorMessage' => 'Script function result format is incorrect.', 'description' => '脚本格式不正确。'], + ['errorCode' => 'iot.dataalgo.ScriptRelationNotExist', 'errorMessage' => 'Script relation not exist.', 'description' => '脚本关系不存在。'], + ['errorCode' => 'iot.tsl.TslParseError', 'errorMessage' => 'TSLlParseError: %s.', 'description' => 'TSL解析错误: %s。'], + ['errorCode' => 'iot.tsl.InvalidFormattedTslError', 'errorMessage' => 'The TSL format is invalid.', 'description' => 'TSL格式错误。'], + ['errorCode' => 'iot.tsl.InvalidHistoryTimestampError', 'errorMessage' => 'The history timestamp is invalid.', 'description' => '无效的历史时间戳。'], + ['errorCode' => 'iot.storage.HotStorageCapacityNotEnough', 'errorMessage' => 'The timeline storage capacity not enough.', 'description' => '时序存储容量不足。'], + ['errorCode' => 'iot.storage.HotStorageIopsWriteNotEnough', 'errorMessage' => 'The timeline storage write IOPS is not enough.', 'description' => '时序存储写IOPS不足。'], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n\\tAF4C862A-233A-43CA-A4BD-AB43FFD25A87\\n\\ttrue\\n\\ttrue\\n ","errorExample":""}]', - 'title' => '批量绑定产品到项目中', - 'summary' => '批量关联产品到项目中。', - 'description' => '## 限制说明'."\n" - .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - .'- 单次调用该接口最多可关联10个产品。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', + 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\nE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\ntrue\\n","errorExample":""}]', + 'title' => 'WriteDevicesHotStorageData', + 'summary' => '调用该接口将设备自定义Topic数据写入热数据存储空间。', + 'description' => '## 使用说明'."\n" + .'仅华东2(上海)、华北2(北京)和华南1(深圳)地域的标准型和尊享型企业版实例下,支持调用该接口写入热数据。'."\n" + ."\n" + .'热数据存储详细说明,请参见[配置热数据存储](~~464047~~)。'."\n" + ."\n" + .'## 使用限制'."\n" + .'调用该接口的每秒请求写入数据数,由您购买实例下的**热数据存储IOPS**规格决定。详细内容,请参见[购买企业版实例](~~356507~~)和[查看热数据存储IOPS](~~464051~~)。'."\n", + 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~30561~~)。', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', + 'changeSet' => [], + 'ramActions' => [], ], - 'BatchUnbindProjectProducts' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + ], + 'endpoints' => [ + ['regionId' => 'ap-northeast-1', 'regionName' => '日本(东京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'iot.ap-northeast-1.aliyuncs.com', 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', 'vpc' => 'iot-vpc.ap-northeast-1.aliyuncs.com'], + ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'iot.ap-southeast-1.aliyuncs.com', 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', 'vpc' => 'iot-vpc.ap-southeast-1.aliyuncs.com'], + ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'iot.cn-beijing.aliyuncs.com', 'endpoint' => 'iot.cn-beijing.aliyuncs.com', 'vpc' => 'iot-vpc.cn-beijing.aliyuncs.com'], + ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'iot.cn-shanghai.aliyuncs.com', 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', 'vpc' => ''], + ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'iot.cn-shenzhen.aliyuncs.com', 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', 'vpc' => 'iot-vpc.cn-shenzhen.aliyuncs.com'], + ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'iot.us-west-1.aliyuncs.com', 'endpoint' => 'iot.us-west-1.aliyuncs.com', 'vpc' => 'iot-vpc.us-west-1.aliyuncs.com'], + ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'iot.us-east-1.aliyuncs.com', 'endpoint' => 'iot.us-east-1.aliyuncs.com', 'vpc' => 'iot-vpc.us-east-1.aliyuncs.com'], + ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'iot.eu-central-1.aliyuncs.com', 'endpoint' => 'iot.eu-central-1.aliyuncs.com', 'vpc' => 'iot-vpc.eu-central-1.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'AccountTypeRestricted', 'message' => 'Please submit the application for beta testing first. You can activate the product after the application is approved.', 'http_code' => 400, 'description' => '请先提交申请进行Beta测试。您可以在申请获得批准后激活产品。'], + ['code' => 'adapter.invalid.gw.params', 'message' => 'invalid igw params.', 'http_code' => 400, 'description' => '云网关参数异常。'], + ['code' => 'Category.not.same', 'message' => 'Category must be the same.', 'http_code' => 400, 'description' => '品类必须一致。'], + ['code' => 'create.rpm.failed', 'message' => 'create rpm failed.', 'http_code' => 400, 'description' => 'rpm创建失败。'], + ['code' => 'Distribute.thing.module.no.edit', 'message' => 'Distribute.thing.module.no.edit.', 'http_code' => 400, 'description' => '分发产品的东西模型不允许编辑。'], + ['code' => 'ErrorCode', 'message' => 'ErrorMessage', 'http_code' => 500, 'description' => '1'], + ['code' => 'IllegalInput', 'message' => 'ILLEGAL INPUTS.', 'http_code' => 429, 'description' => '非法输入。'], + ['code' => 'InsufficientAuthority', 'message' => 'Insufficient permission.', 'http_code' => 400, 'description' => '权限不足'], + ['code' => 'invalid.pca.result.format', 'message' => 'pca result format is error.', 'http_code' => 400, 'description' => 'pca返回值异常。'], + ['code' => 'InvalidParameter', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '参数错误'], + ['code' => 'iot.ah.failed.query', 'message' => 'Failed to query application.', 'http_code' => 400, 'description' => '应用查询失败'], + ['code' => 'iot.ai.AlgorithmVersionAlreadyExist', 'message' => 'algorithm version already exist.', 'http_code' => 400, 'description' => '算法版本已存在。'], + ['code' => 'iot.ai.algorithmVersionNameInvalid', 'message' => 'algorithm version name invalid.', 'http_code' => 400, 'description' => '算法版本号不合法。'], + ['code' => 'iot.ai.algorithmVersionUpgradeNotSupport', 'message' => 'algorithm version upgrade not support.', 'http_code' => 400, 'description' => '当前状态不支持算法版本升级。'], + ['code' => 'iot.ai.algorithmVersionUpgradePlatformNotMatch', 'message' => 'algorithm version upgrade platform not match.', 'http_code' => 400, 'description' => '算法版本升级平台不匹配。'], + ['code' => 'iot.ai.ModelAlreadyExist', 'message' => 'model already exist.', 'http_code' => 400, 'description' => '模型已存在。'], + ['code' => 'iot.ai.ModelConvertNotSupport', 'message' => 'model convert not support.', 'http_code' => 400, 'description' => '当前状态不支持模型转换。'], + ['code' => 'iot.ai.ModelConvertRetryNotSupport', 'message' => 'model convert retry not support.', 'http_code' => 400, 'description' => '模型转换任务不支持重试。'], + ['code' => 'iot.ai.ModelConvertTaskNotExist', 'message' => 'model convert task not exist.', 'http_code' => 400, 'description' => '模型转换任务不存在。'], + ['code' => 'iot.ai.ModelLabelOssInvalid', 'message' => 'iot.ai.ModelLabelOssInvalid.', 'http_code' => 400, 'description' => '模型标签文件OSS地址不合法。'], + ['code' => 'iot.ai.ModelOssInvalid', 'message' => 'model Oss invalid.', 'http_code' => 400, 'description' => '模型文件OSS地址不合法。'], + ['code' => 'iot.ai.ModelPlatformInvalid', 'message' => 'model platform invalid.', 'http_code' => 400, 'description' => '模型平台不合法。'], + ['code' => 'iot.algo.OcrInvokeError', 'message' => 'Ocr invoke error.', 'http_code' => 400, 'description' => 'ocr调用失败。'], + ['code' => 'iot.algo.OcrParamInvalid', 'message' => 'Ocr param invalid.', 'http_code' => 400, 'description' => 'ocr参数错误。'], + ['code' => 'iot.algo.OcrServiceNotSubscribe', 'message' => 'Ocr service not subscribe.', 'http_code' => 400, 'description' => 'ocr服务未订阅。'], + ['code' => 'iot.algo.OcrUrlInvalid', 'message' => 'Ocr url invalid.', 'http_code' => 400, 'description' => 'ocr识别url非法。'], + ['code' => 'iot.app.AccessLimited', 'message' => 'Access denied.', 'http_code' => 400, 'description' => '访问受限'], + ['code' => 'iot.ca.ApplicationNotExist', 'message' => 'The application is not found.', 'http_code' => 400, 'description' => '应用信息不存在。'], + ['code' => 'iot.ca.ApplicationNotExist', 'message' => 'application not exist.', 'http_code' => 400, 'description' => '应用信息不存在。'], + ['code' => 'iot.ca.ParameterError', 'message' => 'Parameter error.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.ca.UnknownException', 'message' => 'Unknown error.', 'http_code' => 400, 'description' => '未知错误。'], + ['code' => 'iot.check.IncorrectParameter', 'message' => 'The parameter value is invalid.', 'http_code' => 400, 'description' => '请求参数{}值错误,请修改后重试。'], + ['code' => 'iot.check.InvalidElementInArray', 'message' => 'The array contains invalid data.', 'http_code' => 400, 'description' => '数组参数中存在不合法的元素。'], + ['code' => 'iot.check.InvalidFormattedParameter', 'message' => 'The parameter format is invalid.', 'http_code' => 400, 'description' => '参数格式错误。'], + ['code' => 'iot.check.LackSlaveIdInParameter', 'message' => 'The slave ID has not been specified.', 'http_code' => 400, 'description' => '缺少从站号参数。'], + ['code' => 'iot.check.NotFoundDeviceInDeviceNameArray', 'message' => 'Some listed devices do not exist.', 'http_code' => 400, 'description' => '设备数组中包含有不存在的设备。'], + ['code' => 'iot.check.NullParameter', 'message' => 'Specify parameter is null.', 'http_code' => 400, 'description' => '参数{}不能为空。'], + ['code' => 'iot.check.NullParameter', 'message' => 'The parameter {0} parameter is empty.', 'http_code' => 400, 'description' => '请求参数{}不能为空,请修改后重试。'], + ['code' => 'iot.common.AccountInfoCannotNull', 'message' => 'The account information cannot be empty.', 'http_code' => 400, 'description' => '账号信息不能为空'], + ['code' => 'iot.common.AccountNameIsNotReal', 'message' => 'You have not passed real-name verification. Go to the Account Management center for real-name verification.', 'http_code' => 400, 'description' => '您还未通过实名认证,不符合购买条件。请登录用户中心进行实名认证'], + ['code' => 'iot.common.AlreadyOpenLinkPlatForm', 'message' => 'You have activated the IoT Platform service.', 'http_code' => 400, 'description' => '您已开通物联网平台服务'], + ['code' => 'iot.common.ApiAccessForbidden', 'message' => 'Api access forbidden.', 'http_code' => 400, 'description' => '当前实例没有该API的访问权限。'], + ['code' => 'iot.common.APINotSupportedInInstance', 'message' => 'This API operation is not supported in this instance.', 'http_code' => 400, 'description' => '当前实例不支持该API。'], + ['code' => 'iot.common.ArrearageAccount', 'message' => 'Overdue payments exist. Top up the account before you activate the service.', 'http_code' => 400, 'description' => '欠费用户,请充值后再开通服务'], + ['code' => 'iot.common.AuthActionPermissionDeny', 'message' => 'The authorization fails.', 'http_code' => 400, 'description' => '鉴权失败。'], + ['code' => 'iot.common.AuthActionPermissionDeny', 'message' => 'You are not authorized to operate this product or device.', 'http_code' => 400, 'description' => '没有操作权限。'], + ['code' => 'iot.common.AuthActionPermissionDeny', 'message' => 'auth action permission deny', 'http_code' => 400, 'description' => '没有操作权限'], + ['code' => 'iot.common.AuthActionPermissionDeny', 'message' => 'iot.common.AuthActionPermissionDeny', 'http_code' => 400, 'description' => '没有操作权限'], + ['code' => 'iot.common.CreateServiceLinkedRoleFailed', 'message' => 'Failed to create the service-linked role.', 'http_code' => 400, 'description' => '创建服务账号关联角色失败'], + ['code' => 'iot.common.EmptyListParam', 'message' => 'The List parameter cannot be empty.', 'http_code' => 400, 'description' => '数组参数不能为空。'], + ['code' => 'iot.common.EmptyRegion', 'message' => 'The region information is empty.', 'http_code' => 400, 'description' => 'region信息为空'], + ['code' => 'iot.common.EmptyRoleArn', 'message' => 'You must specify the role ARN.', 'http_code' => 400, 'description' => 'roleArn为空'], + ['code' => 'iot.common.EmptyRoleArn', 'message' => 'The parameter of roleArn is empty.', 'http_code' => 400, 'description' => '参数roleArn为空。'], + ['code' => 'iot.common.EmptyRoleName', 'message' => 'You must specify the RoleName.', 'http_code' => 400, 'description' => 'roleName为空'], + ['code' => 'iot.common.EmptyRoleName', 'message' => 'The parameter of roleName is empty.', 'http_code' => 400, 'description' => 'roleName为空。'], + ['code' => 'iot.common.FileNotExist', 'message' => 'The file does not exist.', 'http_code' => 400, 'description' => '文件不存在。'], + ['code' => 'iot.common.FlowControlTriggered', 'message' => 'The requests are throttled.', 'http_code' => 400, 'description' => '触发了系统限流。'], + ['code' => 'iot.common.IllegalFileBizCode', 'message' => 'The business type of the file is invalid.', 'http_code' => 400, 'description' => '文件业务类型无效。'], + ['code' => 'iot.common.IllegalFileFormat', 'message' => 'The file format is invalid.', 'http_code' => 400, 'description' => '文件格式无效。'], + ['code' => 'iot.common.IllegalProdValidateType', 'message' => 'The verification type is invalid.', 'http_code' => 400, 'description' => '非法产品效验数据类型'], + ['code' => 'iot.common.IllegalUpdateValidateType', 'message' => 'The format of the TSL data is invalid.', 'http_code' => 400, 'description' => '物模型数据类型错误。'], + ['code' => 'iot.common.InvalidCallerTypeError', 'message' => 'This access mode is not supported.', 'http_code' => 400, 'description' => '不支持的访问方式。'], + ['code' => 'iot.common.InvalidFormattedParameter', 'message' => 'The parameter format is invalid.', 'http_code' => 400, 'description' => '参数格式错误。'], + ['code' => 'iot.common.InvalidFormattedParameter', 'message' => 'Parameter format is invalid.', 'http_code' => 400, 'description' => '参数格式错误。'], + ['code' => 'iot.common.InvalidFormattedParameter', 'message' => 'ThingModelJson invalid formatted.', 'http_code' => 400, 'description' => '参数格式错误。'], + ['code' => 'iot.common.InvalidFormattedTagKey', 'message' => 'The tag key format is invalid.', 'http_code' => 400, 'description' => '标签key格式不合法。'], + ['code' => 'iot.common.InvalidFormattedTagValue', 'message' => 'The tag value format is invalid.', 'http_code' => 400, 'description' => '标签value格式不合法。'], + ['code' => 'iot.common.InvalidPageParams', 'message' => 'The specified pagination size or pagination parameter is invalid.', 'http_code' => 400, 'description' => '分页大小或者分页页号不合法。'], + ['code' => 'iot.common.InvalidParam', 'message' => 'invalid param', 'http_code' => 400, 'description' => '参数异常'], + ['code' => 'iot.common.InvalidParam', 'message' => 'iot.common.InvalidParam', 'http_code' => 400, 'description' => '参数异常'], + ['code' => 'iot.common.InvalidTenant', 'message' => 'The tenant is invalid.', 'http_code' => 400, 'description' => '不合法的租户。'], + ['code' => 'iot.common.InvalidTenant', 'message' => 'The tenant Id is invalid.', 'http_code' => 400, 'description' => '请求参数中租户信息错误,请修正重试。'], + ['code' => 'iot.common.InvalidTenant', 'message' => 'the device tenantId is invalid.', 'http_code' => 400, 'description' => '设备的租户信息不匹配。'], + ['code' => 'iot.common.InvalidTenant', 'message' => 'The Invalid tenant.', 'http_code' => 400, 'description' => '不合法的租户或者创建租户失败。'], + ['code' => 'iot.common.InvalidUid', 'message' => 'The Alibaba Cloud account is invalid or the IoT Platform service is not activated.', 'http_code' => 400, 'description' => '不合法的阿里云账号或没有开通物联网服务。'], + ['code' => 'iot.common.LessCreateServiceLinkedRolePermission', 'message' => 'The RAM user does not have the ram:CreateServiceLinkedRole permission.', 'http_code' => 400, 'description' => '子账号缺少ram:CreateServiceLinkedRole权限'], + ['code' => 'iot.common.MethodInvokeNotPermitted', 'message' => 'The access to the API is prohibited due to excessive failures.', 'http_code' => 400, 'description' => '禁止访问接口,失败次数过多。'], + ['code' => 'iot.common.NotAllowUpdateDefaultModelName', 'message' => 'The default module name cannot be updated.', 'http_code' => 400, 'description' => '不允许更新默认模块名称。'], + ['code' => 'iot.common.NotAllowUpdateDefaultModelName', 'message' => 'The thing model function is not existed.', 'http_code' => 400, 'description' => '物模型功能模块不存在。'], + ['code' => 'iot.common.NotAllowUpdateValidateType', 'message' => 'The original data cannot be modified.', 'http_code' => 400, 'description' => '原数据类型不允许更新'], + ['code' => 'iot.common.notExistIdentifier', 'message' => 'The feature does not exist.', 'http_code' => 400, 'description' => '待更新的功能定义不存在。'], + ['code' => 'iot.common.NotPrimary.Account', 'message' => 'This account is not an Alibaba Cloud account.', 'http_code' => 400, 'description' => '非主账号'], + ['code' => 'iot.common.NullParameter', 'message' => 'The parameter cannot be empty.', 'http_code' => 400, 'description' => '参数不能为空。'], + ['code' => 'iot.common.NullParameter', 'message' => 'Parameter cannot the be empty.', 'http_code' => 400, 'description' => '参数不能为空。'], + ['code' => 'iot.common.NullProdValidateType', 'message' => 'The verification type is empty.', 'http_code' => 400, 'description' => '产品效验数据类型为空'], + ['code' => 'iot.common.OpenServiceError', 'message' => 'An error occurred while activating the service.', 'http_code' => 400, 'description' => '开通服务失败'], + ['code' => 'iot.common.PolicyNoPermission', 'message' => 'You are not authorized to access this resource.', 'http_code' => 400, 'description' => '角色授权策略错误导致没有权限访问资源'], + ['code' => 'iot.common.ProductNotExist', 'message' => 'Product does not exist.', 'http_code' => 400, 'description' => '产品不存在'], + ['code' => 'iot.common.PropertyNotFound', 'message' => 'The property not found.', 'http_code' => 400, 'description' => '属性不存在。'], + ['code' => 'Iot.common.QueryDeviceActionError', 'message' => 'An error occurred while querying the device.', 'http_code' => 400, 'description' => '查询设备失败。'], + ['code' => 'iot.common.QueryDeviceActionError', 'message' => 'The device does not exist.', 'http_code' => 400, 'description' => '设备不存在或未激活。'], + ['code' => 'iot.common.QueryDeviceActionError', 'message' => 'An error occurred while querying this device.', 'http_code' => 400, 'description' => '查询指定设备失败。'], + ['code' => 'iot.common.QueryDevicePropertyActionError', 'message' => 'An error occurred while querying the device property.', 'http_code' => 400, 'description' => '查询设备属性失败。'], + ['code' => 'iot.common.QueryManyDevicesActionError', 'message' => 'An error occurred while querying the devices.', 'http_code' => 400, 'description' => '批量查询设备失败。'], + ['code' => 'iot.common.QueryManyDevicesActionError', 'message' => 'An error occurred while querying the devices', 'http_code' => 400, 'description' => '批量查询设备失败。'], + ['code' => 'iot.common.QueryProductActionError', 'message' => 'An error occurred while querying the product.', 'http_code' => 400, 'description' => '查询产品失败。'], + ['code' => 'iot.common.QueryProductActionError', 'message' => 'query product info fail.', 'http_code' => 400, 'description' => '查询产品信息不存在。'], + ['code' => 'iot.common.QueryProductCountActionError', 'message' => 'An error occurred while querying the total number of products.', 'http_code' => 400, 'description' => '查询产品总数失败。'], + ['code' => 'iot.common.QueryThingModelValidationConfigFailed', 'message' => 'Failed to the product verification type.', 'http_code' => 400, 'description' => '查询产品数据效验类型失败'], + ['code' => 'iot.common.QueryUserInfoFailed', 'message' => 'Failed to get user information.', 'http_code' => 400, 'description' => '获取用户信息失败。'], + ['code' => 'iot.common.RamActionPermissionDeny', 'message' => 'You do not have the RAM permission.', 'http_code' => 400, 'description' => '没有资源访问控制(RAM)权限。'], + ['code' => 'iot.common.RequestForbidden', 'message' => 'The request is forbidden.', 'http_code' => 400, 'description' => '请求禁止。'], + ['code' => 'iot.common.RequestForbidden', 'message' => 'Request is forbidden.', 'http_code' => 400, 'description' => '请求禁止。'], + ['code' => 'Iot.common.RequestForbidden', 'message' => 'Request forbidden: %s.', 'http_code' => 400, 'description' => '请求被禁止。'], + ['code' => 'iot.common.ServiceLinkedRoleAlreadyExists', 'message' => 'The service-linked role already exists.', 'http_code' => 400, 'description' => '服务账号关联角色已经存在'], + ['code' => 'iot.common.TargetAccountCannotBeCurrentAccount', 'message' => 'The target user cannot be the current user.', 'http_code' => 400, 'description' => '目标用户不能是当前用户'], + ['code' => 'iot.common.TargetAliyunAccountIsNotRealNameAccount', 'message' => 'The Alibaba Cloud account does not pass the real-name verification.', 'http_code' => 400, 'description' => '未实名认证账户。'], + ['code' => 'iot.common.ThingModelFunctionNameDuplicated', 'message' => 'The TSL module names must be unique.', 'http_code' => 400, 'description' => '物模型功能模块名称重复。'], + ['code' => 'iot.common.ThingModelFunctionNotExist', 'message' => 'The TSL module does not exist.', 'http_code' => 400, 'description' => '物模型功能模块不存在。'], + ['code' => 'iot.common.ThingModelFunctionOverLimit', 'message' => 'The number of TSL modules exceeds the limit.', 'http_code' => 400, 'description' => '物模型功能模块个数超限。'], + ['code' => 'iot.common.ThingModelObjectSizeOverLimit', 'message' => 'The size of the TSL module exceeds the limit.', 'http_code' => 400, 'description' => '物模型功能模块数据量过大'], + ['code' => 'iot.common.TooManyRequest', 'message' => 'The server cannot process this number of requests.', 'http_code' => 400, 'description' => '请求频率过高'], + ['code' => 'iot.common.TooManyRequest', 'message' => 'Request frequency is too high.', 'http_code' => 400, 'description' => '请求频率过高。'], + ['code' => 'iot.common.TooManySlsProject', 'message' => 'The number of Log Service projects exceeds the limit.', 'http_code' => 400, 'description' => 'SLS日志服务project太多'], + ['code' => 'iot.common.UnsupportedForLora', 'message' => 'The LoRa device cannot be connected.', 'http_code' => 400, 'description' => '不支持LoRa设备接入。'], + ['code' => 'iot.common.UnsupportedForLora', 'message' => 'Loar device access is not supported.', 'http_code' => 400, 'description' => '暂时不支持Loar设备接入。'], + ['code' => 'iot.common.UnsupportedRegion', 'message' => 'LoRa access is not supported in this region.', 'http_code' => 400, 'description' => '该节点不支持LoRa接入。'], + ['code' => 'iot.common.UpdateThingModelOverLimit', 'message' => 'The number of TSL features exceeds the limit.', 'http_code' => 400, 'description' => '超出更新物模型的最大条数。'], + ['code' => 'iot.common.UpdateThingModelOverLimit', 'message' => 'the number of thingModel identifier is over the max number.', 'http_code' => 400, 'description' => '超出更新物模型的最大条数限制。'], + ['code' => 'iot.common.UpdateThingModelValidationConfigFailed', 'message' => 'Failed to update the product verification type.', 'http_code' => 400, 'description' => '更新产品数据效验类型失败'], + ['code' => 'iot.common.ValidateTypeIsSame', 'message' => 'The data type to be updated is consistent with the current value.', 'http_code' => 400, 'description' => '待更新数据类型与当前值一致'], + ['code' => 'iot.common.VSwitchAddressConflict', 'message' => 'The CIDR Block of the vSwitch conflicts with the IoT Platform endpoint.', 'http_code' => 400, 'description' => '交换机与物联网平台地址段冲突。'], + ['code' => 'iot.consumer.group.CallbackTypeEmpty', 'message' => 'The CallbackType parameter cannot be empty.', 'http_code' => 400, 'description' => 'CallbackType不能全为false。'], + ['code' => 'iot.consumer.group.ChangeDefaultConsumerGroupNotAllowed', 'message' => 'The default consumer group cannot be modified.', 'http_code' => 400, 'description' => '不能修改默认消费组。'], + ['code' => 'iot.consumer.group.ConsumerGroupExceedLimit', 'message' => 'The number of consumer groups exceeds the limit.', 'http_code' => 400, 'description' => '消费组数量超过最大限制。'], + ['code' => 'iot.consumer.group.ConsumerGroupExceedsLimit', 'message' => 'The number of consumer groups in a subscription exceeds the limit.', 'http_code' => 400, 'description' => '订阅关系下消费组数量超过限制。'], + ['code' => 'iot.consumer.group.ConsumerGroupHasSubscription', 'message' => 'Failed to delete the consumer group. Cancel the subscription first.', 'http_code' => 400, 'description' => '删除消费组失败,请先取消订阅。'], + ['code' => 'iot.consumer.group.ConsumerGroupNameExisted', 'message' => 'The consumer group name already exists.', 'http_code' => 400, 'description' => '消费组名称已存在。'], + ['code' => 'iot.consumer.group.ConsumerGroupNotExist', 'message' => 'The consumer group does not exist.', 'http_code' => 400, 'description' => '消费组不存在。'], + ['code' => 'iot.consumer.group.CreateConsumerGroupFailed', 'message' => 'Failed to add the consumer group.', 'http_code' => 400, 'description' => '添加消费组失败。'], + ['code' => 'iot.consumer.group.DeleteConsumerGroupFailed', 'message' => 'Failed to delete the consumer group.', 'http_code' => 400, 'description' => '删除消费组失败。'], + ['code' => 'iot.consumer.group.flagAllFalse', 'message' => 'You must specify a flag.', 'http_code' => 400, 'description' => '需要设置flag。'], + ['code' => 'iot.consumer.group.InvalidConsumerGroup', 'message' => 'The consumer group is invalid.', 'http_code' => 400, 'description' => '消费组非法。'], + ['code' => 'iot.consumer.group.InvalidConsumerGroup', 'message' => 'Invalid Consumer Group Id.', 'http_code' => 400, 'description' => '消费组非法。'], + ['code' => 'iot.consumer.group.InvalidConsumerGroupId', 'message' => 'The consumer group ID is invalid.', 'http_code' => 400, 'description' => '非法的消费组ID。'], + ['code' => 'iot.consumer.group.InvalidConsumerGroupId', 'message' => 'Illegal consumer group ID.', 'http_code' => 400, 'description' => '非法的消费组ID。'], + ['code' => 'iot.consumer.group.InvalidConsumerGroupId', 'message' => 'Illegal consumer group ID', 'http_code' => 400, 'description' => '非法的消费组ID'], + ['code' => 'iot.consumer.group.InvalidConsumerGroupName', 'message' => 'The consumer group name is invalid.', 'http_code' => 400, 'description' => '非法的消费组名称。'], + ['code' => 'iot.consumer.group.InvalidGroupBy', 'message' => 'The groupby parameter is invalid.', 'http_code' => 400, 'description' => '参数groupby非法。'], + ['code' => 'iot.consumer.group.InvalidSubscribeType', 'message' => 'The subscription type is invalid.', 'http_code' => 400, 'description' => '订阅类型非法。'], + ['code' => 'iot.consumer.group.MnsCheckFailed', 'message' => 'The MNS authentication fails.', 'http_code' => 400, 'description' => 'MNS鉴权失败。'], + ['code' => 'iot.consumer.group.MnsNotSupport', 'message' => 'MNS subscriptions are not supported by authorized products.', 'http_code' => 400, 'description' => '设备转移的产品不支持MNS订阅。'], + ['code' => 'iot.consumer.group.ProductKeyExceedsLimit', 'message' => 'The number of products subscribed by the consumer group exceeds the limit.', 'http_code' => 400, 'description' => '消费组订阅的产品超过限制。'], + ['code' => 'iot.consumer.group.QueryConsumerGroupFailed', 'message' => 'Failed to query consumption groups.', 'http_code' => 400, 'description' => '查询消费组失败。'], + ['code' => 'iot.consumer.group.QueryConsumerGroupStatusFailed', 'message' => 'Failed to query the status of the consumer group.', 'http_code' => 400, 'description' => '查询消费组状态失败。'], + ['code' => 'iot.consumer.group.QuerySubscribeError', 'message' => 'Failed to obtain the server-side subscription.', 'http_code' => 400, 'description' => '获取服务端订阅失败'], + ['code' => 'iot.consumer.group.SubscribeCannotDelete', 'message' => 'The subscription under the product has only one consumer group. You cannot delete the subscription.', 'http_code' => 400, 'description' => '对应产品下的订阅关系只关联了当前一个消费组,不能取消订阅。'], + ['code' => 'iot.consumer.group.SubscribeCannotDelete', 'message' => 'Subscription relationships under corresponding products only have one current consumption group associated and cannot be unsubscribed.', 'http_code' => 400, 'description' => '对应产品下的订阅关系只关联了当前一个消费组,不能取消订阅。'], + ['code' => 'iot.consumer.group.SubscribeExist', 'message' => 'The subscription already exists.', 'http_code' => 400, 'description' => '订阅已存在。'], + ['code' => 'iot.consumer.group.SubscribeNotExist', 'message' => 'The subscription does not exist.', 'http_code' => 400, 'description' => '订阅不存在。'], + ['code' => 'iot.consumer.group.UpdateConsumerGroupFailed', 'message' => 'Failed to update the consumer group.', 'http_code' => 400, 'description' => '更新消费组失败。'], + ['code' => 'iot.consumer.group.UpdateConsumerGroupFailed', 'message' => 'Failed to update consumer group.', 'http_code' => 400, 'description' => '更新消费组失败。'], + ['code' => 'iot.customizedcert.CreateCustomizedCertError', 'message' => 'Failed to create the custom certificate.', 'http_code' => 400, 'description' => '自定义证书创建失败'], + ['code' => 'iot.customizedcert.DeleteCustomizedCertError', 'message' => 'Failed to delete the custom certificate.', 'http_code' => 400, 'description' => '自定义证书删除失败'], + ['code' => 'iot.customizedcert.ExclusiveFunctionIsRestarting', 'message' => 'The dedicated module of the instance is restarting.', 'http_code' => 400, 'description' => '实例独享功能模块应用正在重启中'], + ['code' => 'iot.customizedcert.ParseCertPemError', 'message' => 'An error occurred while parsing the custom certificate.', 'http_code' => 400, 'description' => '自定义证书信息解析发生错误'], + ['code' => 'iot.customizedcert.QueryCustomizedCertError', 'message' => 'Failed to query the custom certificate information.', 'http_code' => 400, 'description' => '自定义证书信息搜索失败'], + ['code' => 'iot.customizedcert.RestartExclusiveFunctionAppError', 'message' => 'An error occurred while restarting the dedicated module of the instance.', 'http_code' => 400, 'description' => '重启实例独享功能模块的应用发生错误'], + ['code' => 'iot.customizedcert.UpdateCustomizedCertError', 'message' => 'Failed to update the custom certificate.', 'http_code' => 400, 'description' => '自定义证书更新失败'], + ['code' => 'iot.dap.createPipelineError', 'message' => 'create pipeline error.because invoke the data-cube failure', 'http_code' => 400, 'description' => '创建任务失败'], + ['code' => 'iot.dap.createPipelineError', 'message' => 'create pipeline error.because invoke the data-cube failure.', 'http_code' => 400, 'description' => '创建任务失败。'], + ['code' => 'iot.dap.folderNameRepeat', 'message' => 'folder name repetition', 'http_code' => 400, 'description' => '相同名称的文件夹名称已存在'], + ['code' => 'iot.dap.folderNameRepeat', 'message' => 'folder name repetition.', 'http_code' => 400, 'description' => '相同名称的文件夹名称已存在。'], + ['code' => 'iot.dap.hsfError', 'message' => 'server hsf error please try later', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.hsfError', 'message' => 'server hsf error please try later', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.hsfError', 'message' => 'server hsf error please try later.', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试。'], + ['code' => 'iot.dap.insight.addSourceTableFailed', 'message' => 'Failed to modify custom storage table', 'http_code' => 400, 'description' => '修改自定义存储表失败,请检查字段设置是否符合自定义存储表要求'], + ['code' => 'iot.dap.insight.algoInstNumberBeyondLimit', 'message' => 'The algorithm instance has reached the maximum number. If you need to create it. please submit a work order.', 'http_code' => 400, 'description' => '算法实例已达最大数目,如还需创建,请提交工单。'], + ['code' => 'iot.dap.insight.apiQueryParamError', 'message' => 'A query parameter error occurred.', 'http_code' => 400, 'description' => 'API执行查询参数异常'], + ['code' => 'iot.dap.insight.apiQueryParamError', 'message' => 'api query param error', 'http_code' => 400, 'description' => 'API执行查询参数异常'], + ['code' => 'iot.dap.insight.apiQueryParamError', 'message' => 'API execution query parameter exception.', 'http_code' => 400, 'description' => 'API执行查询参数异常。'], + ['code' => 'iot.dap.insight.apiQueryParamError', 'message' => 'A query paramter error occurred.', 'http_code' => 400, 'description' => 'API执行查询参数异常。'], + ['code' => 'iot.dap.insight.attrNameDuplicate', 'message' => 'the field name duplicate', 'http_code' => 400, 'description' => '字段名称重复'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'biz exception not specified', 'http_code' => 400, 'description' => '未定义的业务异常'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'server inner error.', 'http_code' => 500, 'description' => '服务内部错误。'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'biz exception not specified.', 'http_code' => 500, 'description' => '服务内部错误,请联系管理员。'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'serve inner biz error', 'http_code' => 500, 'description' => '服务器内部业务错误'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'server error', 'http_code' => 400, 'description' => '服务错误'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'Service internal error please contact technical support', 'http_code' => 400, 'description' => '服务内部错误,请联系技术支持'], + ['code' => 'iot.dap.insight.bizExceptionNotSpecified', 'message' => 'inner error', 'http_code' => 400, 'description' => '内部错误,请提工单联系技术支持'], + ['code' => 'iot.dap.insight.columnNotMatch', 'message' => 'Output columns do not match table columns.', 'http_code' => 400, 'description' => '输出列与表列不匹配。'], + ['code' => 'iot.dap.insight.connectorOpenOfflineAnalysisFailed', 'message' => 'Failed to start offline analysis.', 'http_code' => 400, 'description' => '开启离线分析失败。'], + ['code' => 'iot.dap.insight.createUserTableOutOfLimit', 'message' => 'The maximum number of created tables is exceeded.', 'http_code' => 400, 'description' => '超过最大建表数'], + ['code' => 'iot.dap.insight.createUserTableOutOfLimit', 'message' => 'The number of storage tables exceeds the maximum that can be created.', 'http_code' => 400, 'description' => '存储表数量超过可创建最大值。'], + ['code' => 'iot.dap.insight.csvFormatError', 'message' => 'Failed to parse the CSV data.', 'http_code' => 400, 'description' => 'CSV数据解析失败。'], + ['code' => 'iot.dap.insight.dataApiNotDeploy', 'message' => 'The current API operation is not deployed.', 'http_code' => 400, 'description' => '当前API未发布'], + ['code' => 'iot.dap.insight.dataApiNotDeploy', 'message' => 'data api not deploy', 'http_code' => 400, 'description' => '当前API未发布'], + ['code' => 'iot.dap.insight.dataApiNotDeploy', 'message' => 'The API has not been published.', 'http_code' => 400, 'description' => '当前API未发布。'], + ['code' => 'iot.dap.insight.dataProcessing', 'message' => 'the store table data processing.', 'http_code' => 400, 'description' => '数据存储表上传数据处理中'], + ['code' => 'iot.dap.insight.dataSourceNotFound', 'message' => 'source not found', 'http_code' => 400, 'description' => '数据源未找到'], + ['code' => 'iot.dap.insight.dataSourceNotFound', 'message' => 'The data source was not found.', 'http_code' => 400, 'description' => '数据源未找到。'], + ['code' => 'iot.dap.insight.dataStoreTableAlreadyExist', 'message' => 'the Datastore table already exists.', 'http_code' => 400, 'description' => '数据存储表已经存在'], + ['code' => 'iot.dap.insight.dataStoreTableHasNotBeenInit', 'message' => 'data store table has not been init.', 'http_code' => 400, 'description' => '数据存储表还未初始化。'], + ['code' => 'iot.dap.insight.dataStoreTableNotExist', 'message' => 'data store table not exist.', 'http_code' => 400, 'description' => '数据存储表不存在'], + ['code' => 'iot.dap.insight.datetimeNotMatch', 'message' => 'The acquisition time does not match the data time.', 'http_code' => 400, 'description' => '采集时间与数据时间不匹配。'], + ['code' => 'iot.dap.insight.disorderlyTime', 'message' => 'Time column data is out of order.', 'http_code' => 400, 'description' => '时间列数据无序。'], + ['code' => 'iot.dap.insight.dopAddDataError', 'message' => 'dop add data error', 'http_code' => 400, 'description' => '写入数据失败'], + ['code' => 'iot.dap.insight.dopAddDataError', 'message' => 'Failed to write data.', 'http_code' => 400, 'description' => '写入数据失败。'], + ['code' => 'iot.dap.insight.dopCreateApiError', 'message' => 'dop create api error', 'http_code' => 400, 'description' => '创建api失败'], + ['code' => 'iot.dap.insight.dopQueryApiError', 'message' => 'A DOP query error occurred.', 'http_code' => 400, 'description' => 'DOP执行API查询失败'], + ['code' => 'iot.dap.insight.dopQueryApiError', 'message' => 'An error occurred in the DOP service query.', 'http_code' => 400, 'description' => 'DOP服务查询出现错误。'], + ['code' => 'iot.dap.insight.dopQueryApiError', 'message' => 'dop query api error', 'http_code' => 400, 'description' => 'DOP执行API查询失败'], + ['code' => 'iot.dap.insight.downloadTaskNumUpperLimit', 'message' => 'the number of downloaded tasks exceeded the upper limit.', 'http_code' => 400, 'description' => '当天运行的下载任务超过上限。'], + ['code' => 'iot.dap.insight.downloadTaskNumUpperLimit', 'message' => 'the number of downloaded tasks exceeded the upper limit', 'http_code' => 400, 'description' => '当天运行的下载任务超过上限'], + ['code' => 'iot.dap.insight.downloadTimesUpperLimit', 'message' => 'the number of current job downloaded tasks exceeded the upper limit.', 'http_code' => 400, 'description' => '当前任务当天下载次数超过上限。'], + ['code' => 'iot.dap.insight.downloadTimesUpperLimit', 'message' => 'the number of current job downloaded tasks exceeded the upper limit', 'http_code' => 400, 'description' => '当前任务当天下载次数超过上限'], + ['code' => 'iot.dap.insight.duplicateName', 'message' => 'Duplicate name.', 'http_code' => 400, 'description' => '名称重复。'], + ['code' => 'iot.dap.insight.exceedSubscribeNumber', 'message' => 'Exceed subscribe number.', 'http_code' => 400, 'description' => '超过购买站点数,无法创建站点。'], + ['code' => 'iot.dap.insight.fileTypeError', 'message' => 'file extend name not support.', 'http_code' => 400, 'description' => '文件类型不支持'], + ['code' => 'iot.dap.insight.flinkJobCannotBeDeleted', 'message' => 'The flink job is running and cannot be deleted.', 'http_code' => 400, 'description' => 'flink任务正在运行中,无法删除。'], + ['code' => 'iot.dap.insight.flinkJobNotExist', 'message' => 'The flink job is not exist.', 'http_code' => 400, 'description' => 'flink任务不存在。'], + ['code' => 'iot.dap.insight.flinkJobNotFound', 'message' => 'The flink job is not found.', 'http_code' => 400, 'description' => 'flink任务不存在。'], + ['code' => 'iot.dap.insight.frozen', 'message' => 'The algorithm instance has been frozen. please renew.', 'http_code' => 400, 'description' => '算法实例已冻结,请续费。'], + ['code' => 'iot.dap.insight.hasRunningTask', 'message' => 'There is a running task %s that cannot be deleted.', 'http_code' => 400, 'description' => '有运行中任务%s,不可删除。'], + ['code' => 'iot.dap.insight.identifierNotParse', 'message' => 'sheet not exist.', 'http_code' => 400, 'description' => '报表不存在。'], + ['code' => 'iot.dap.insight.integrationEndTimeIsMandatory', 'message' => 'The EndTime parameter is required for the data integration.', 'http_code' => 400, 'description' => '请指定IoT数据源的EndTime参数。'], + ['code' => 'iot.dap.insight.integrationEndTimeIsMandatory', 'message' => 'The data integration EndTime is mandatory.', 'http_code' => 400, 'description' => '请指定IoT数据源的EndTime参数。'], + ['code' => 'iot.dap.insight.integrationJobFailed', 'message' => 'Failed to get results because the integration job has failed.', 'http_code' => 400, 'description' => '数据集成运行失败,无法获取集成任务结果。'], + ['code' => 'iot.dap.insight.integrationJobFailed', 'message' => 'Failed to get result because integration job has failed.', 'http_code' => 400, 'description' => '数据集成运行失败,无法获取集成任务结果。'], + ['code' => 'iot.dap.insight.integrationJobNotCompleted', 'message' => 'Failed to get results because the integration job is still in progress.', 'http_code' => 400, 'description' => '数据集成仍在运行,无法获取集成任务结果。'], + ['code' => 'iot.dap.insight.integrationJobNotCompleted', 'message' => 'Failed to get result because integration job is not completed.', 'http_code' => 400, 'description' => '数据集成仍在运行,无法获取集成任务结果。'], + ['code' => 'iot.dap.insight.integrationStartTimeIsMandatory', 'message' => 'The StartTime parameter is required for the data integration.', 'http_code' => 400, 'description' => '请指定IoT数据源的StartTime参数。'], + ['code' => 'iot.dap.insight.integrationStartTimeIsMandatory', 'message' => 'The data integration StartTime is mandatory.', 'http_code' => 400, 'description' => '请指定IoT数据源的StartTime参数。'], + ['code' => 'iot.dap.insight.integrationTimeOutOfRange', 'message' => 'The data integration time range exceeded the allowed time range.', 'http_code' => 400, 'description' => '数据集成的时间范围超出允许的时间范围。'], + ['code' => 'iot.dap.insight.invalidPartitionKey', 'message' => 'Invalid partition key.', 'http_code' => 400, 'description' => '分区键不存在。'], + ['code' => 'iot.dap.insight.invalidPartitionSpec', 'message' => 'Invalid partition information.', 'http_code' => 400, 'description' => '指定了无效的分区信息。'], + ['code' => 'iot.dap.insight.invalidPartitionSpec', 'message' => 'Invalid partition spec.', 'http_code' => 400, 'description' => '指定了无效的分区信息。'], + ['code' => 'iot.dap.insight.invalidToken', 'message' => 'Invalid token.', 'http_code' => 400, 'description' => '无效token。'], + ['code' => 'iot.dap.insight.jsonFormatError', 'message' => 'Invalid JSON data format.', 'http_code' => 400, 'description' => 'JSON数据格式错误。'], + ['code' => 'iot.dap.insight.jsonFormatError', 'message' => 'Invalid JSON format.', 'http_code' => 400, 'description' => 'JSON数据格式错误。'], + ['code' => 'iot.dap.insight.limitedInvoke', 'message' => 'Please check subscribe number and invoke limitation.', 'http_code' => 400, 'description' => '请检查订阅额度限额或调用限额。'], + ['code' => 'iot.dap.insight.llmResponseNotValid', 'message' => 'The response returned by the LLM is not valid.', 'http_code' => 400, 'description' => 'LLM返回的信息不合法。'], + ['code' => 'iot.dap.insight.llmResponseTimeout', 'message' => 'LLM invocation has timed out.', 'http_code' => 400, 'description' => '大模型调用已经超时。'], + ['code' => 'iot.dap.insight.loadProtobufDescFailed', 'message' => 'Failed to parse the ProtoBuf description file.', 'http_code' => 400, 'description' => '解析ProtoBuf描述文件失败。'], + ['code' => 'iot.dap.insight.maxRefreshDate', 'message' => 'The maximum refresh time of the data has been exceeded.', 'http_code' => 400, 'description' => '超过数据的最大回刷时间。'], + ['code' => 'iot.dap.insight.mustSetAtLeastOnePrimaryKey', 'message' => 'Set at least one primary key.', 'http_code' => 400, 'description' => '最少设置一个主键。'], + ['code' => 'iot.dap.insight.nameDuplicate', 'message' => 'the name duplicate', 'http_code' => 400, 'description' => '名称重复'], + ['code' => 'iot.dap.insight.nameDuplicate', 'message' => 'The name is duplicated.', 'http_code' => 400, 'description' => '任务名称重复'], + ['code' => 'iot.dap.insight.needBuyDataAnalytics', 'message' => 'data analytics not available', 'http_code' => 400, 'description' => '未购买数据分析实例'], + ['code' => 'iot.dap.insight.needDatesColumn', 'message' => 'The dates column is required.', 'http_code' => 400, 'description' => '需要dates列。'], + ['code' => 'iot.dap.insight.needDetectionData', 'message' => 'Detection data is required.', 'http_code' => 400, 'description' => '需要检测数据。'], + ['code' => 'iot.dap.insight.needPrimaryKey', 'message' => 'need primary key to publish', 'http_code' => 400, 'description' => '需要一个主键才能发布'], + ['code' => 'iot.dap.insight.noAuthorization', 'message' => 'no authorization.', 'http_code' => 400, 'description' => '此操作没有权限'], + ['code' => 'iot.dap.insight.noAuthorization', 'message' => 'No permissions.', 'http_code' => 400, 'description' => '此操作没有权限。'], + ['code' => 'iot.dap.insight.noDeleteAlgoInst', 'message' => 'Please stop the running instance first.', 'http_code' => 400, 'description' => '请先停止运行实例。'], + ['code' => 'iot.dap.insight.notEditDataPipeline', 'message' => 'The online pipeline information cannot be edited.', 'http_code' => 400, 'description' => '不能编辑已上线的管道信息。'], + ['code' => 'iot.dap.insight.notEnoughCU', 'message' => 'There is not enough CU for the operation.', 'http_code' => 400, 'description' => 'CU不足,无法执行操作。'], + ['code' => 'iot.dap.insight.notEnoughStorage', 'message' => 'There is not enough storage for the operation.', 'http_code' => 400, 'description' => '存储空间不足,无法执行操作。'], + ['code' => 'iot.dap.insight.notExistAlgoInstance', 'message' => 'Algorithm instance does not exist.', 'http_code' => 400, 'description' => '算法实例不存在。'], + ['code' => 'iot.dap.insight.notExistsDir', 'message' => 'The directory %s does not exist.', 'http_code' => 400, 'description' => '目录%s不存在。'], + ['code' => 'iot.dap.insight.notOpenFunctionOrInstanceAPI', 'message' => 'not open function or instance api.', 'http_code' => 400, 'description' => '没有开启相关功能或实例化API。'], + ['code' => 'iot.dap.insight.notPublish', 'message' => 'the table columns not change so not need publish', 'http_code' => 400, 'description' => '字段无变化,不要再次发布'], + ['code' => 'iot.dap.insight.notSupportPartitionTable', 'message' => 'Partitioned tables are not supported.', 'http_code' => 400, 'description' => '不支持分区表。'], + ['code' => 'iot.dap.insight.parsedDataError', 'message' => 'Failed to parse data.', 'http_code' => 400, 'description' => '解析数据失败。'], + ['code' => 'iot.dap.insight.pipelineProcessError', 'message' => 'pipeline processing error', 'http_code' => 400, 'description' => '执行流水线错误'], + ['code' => 'iot.dap.insight.pipelineProcessError', 'message' => 'pipeline processing error.', 'http_code' => 400, 'description' => '执行流水线错误。'], + ['code' => 'iot.dap.insight.pkLimit', 'message' => 'the store table primary key beyond maximum limit.', 'http_code' => 400, 'description' => '数据存储表主键超过最大限制,最大限制为4个'], + ['code' => 'iot.dap.insight.pkNotChange', 'message' => 'primary key not change or not increase', 'http_code' => 400, 'description' => '主键不能变更或者新增'], + ['code' => 'iot.dap.insight.powerPlantsNumError', 'message' => 'The number of power stations must be greater than or equal to 20.', 'http_code' => 400, 'description' => '电站数量必须大于等于20。'], + ['code' => 'iot.dap.insight.processDownloadJobMoreConcurrenceCount', 'message' => 'the number of concurrent download tasks in progress exceeds the upper limit', 'http_code' => 400, 'description' => '当前运行中的下载任务超过规定的最大并发数'], + ['code' => 'iot.dap.insight.processDownloadJobMoreConcurrenceCount', 'message' => 'the number of concurrent download tasks in progress exceeds the upper limit.', 'http_code' => 400, 'description' => '当前运行中的下载任务超过规定的最大并发数。'], + ['code' => 'iot.dap.insight.productReplicating', 'message' => 'The product data is being backed up.', 'http_code' => 400, 'description' => '产品数据正在备份中。'], + ['code' => 'iot.dap.insight.protoBufDataNotFound', 'message' => 'protobuf data not found.', 'http_code' => 400, 'description' => 'protobuf 样例数据文件未找到'], + ['code' => 'iot.dap.insight.protoBufDescNotFound', 'message' => 'protobuf desc not found.', 'http_code' => 400, 'description' => 'protobuf 协议配置文件未找到'], + ['code' => 'iot.dap.insight.protobufFieldStackSizeOverLimit', 'message' => 'protobuf field stack size over limit.', 'http_code' => 400, 'description' => 'protobuf字段解析超过限制'], + ['code' => 'iot.dap.insight.pullMessageFailed', 'message' => 'No data uploaded in the past seven days', 'http_code' => 400, 'description' => '近七天内没有数据上传'], + ['code' => 'iot.dap.insight.queryTimeMoreThanQueryDays', 'message' => 'The query time range exceeded the allowed time range', 'http_code' => 400, 'description' => '查询的时间范围超出允许的时间范围'], + ['code' => 'iot.dap.insight.queryTimeMoreThanQueryDays', 'message' => 'The query time range exceeded the allowed time range.', 'http_code' => 400, 'description' => '查询的时间范围超出允许的时间范围。'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'request param error', 'http_code' => 400, 'description' => '请求参数异常'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'request param empty error', 'http_code' => 400, 'description' => '参数为空错误'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'request param error.', 'http_code' => 400, 'description' => '请求参数异常。'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'request params error', 'http_code' => 400, 'description' => '请求参数错误'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'requst params error', 'http_code' => 400, 'description' => '请求参数错误'], + ['code' => 'iot.dap.insight.requestParamError', 'message' => 'The request parameter is wrong. please check the request parameter', 'http_code' => 400, 'description' => '请求参数错误,请检查请求参数'], + ['code' => 'iot.dap.insight.requiredName', 'message' => 'Data storage table display name or data storage table name is required', 'http_code' => 400, 'description' => '需要数据存储表展示名称或者数据存储表名称'], + ['code' => 'iot.dap.insight.resourceNotExist', 'message' => 'Resource does not exist. Please refresh the page.', 'http_code' => 400, 'description' => '资源不存在,请刷新页面。'], + ['code' => 'iot.dap.insight.retry', 'message' => 'The operation needs to be retried.', 'http_code' => 400, 'description' => '操作需要重试。'], + ['code' => 'iot.dap.insight.scriptNodeRunError', 'message' => 'Failed to run the script. Cause: %s.', 'http_code' => 400, 'description' => '脚本运行错误,原因:%s。'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server hsf error, please try later', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server inner error.', 'http_code' => 500, 'description' => '服务内部错误。'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server error', 'http_code' => 500, 'description' => '服务器内部错误'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'A server error occurred.', 'http_code' => 500, 'description' => '系统错误。'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server time out please retry', 'http_code' => 400, 'description' => '服务超时,请重试'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server hsf error please try later', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'Service internal error please contact technical support', 'http_code' => 400, 'description' => '服务内部错误,请联系技术支持'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'A service error occurred.', 'http_code' => 400, 'description' => '服务错误,请稍后重试。'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server hsf error please try later.', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'Service error. please try again later.', 'http_code' => 400, 'description' => '服务错误,请稍后重试。'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'server hsf error please try later.', 'http_code' => 400, 'description' => '后端HSF服务错误,请稍后重试'], + ['code' => 'iot.dap.insight.serverError', 'message' => 'There is an internal error in the service please submit a ticket to contact technical support', 'http_code' => 400, 'description' => '服务内部错误,请提交工单联系技术支持'], + ['code' => 'iot.dap.insight.serviceBusy', 'message' => 'service busy please try later.', 'http_code' => 400, 'description' => '服务器繁忙,请稍后重试。'], + ['code' => 'iot.dap.insight.sourceReplicaStatusError', 'message' => 'Backup instance status error.', 'http_code' => 400, 'description' => '备份实例状态错误。'], + ['code' => 'iot.dap.insight.sourceReplicaStatusError', 'message' => 'replica instance status error.', 'http_code' => 400, 'description' => '备份实例状态错误.'], + ['code' => 'iot.dap.insight.startTimeMustBeLessThanEndTime', 'message' => 'The start time must be earlier than the end time.', 'http_code' => 400, 'description' => 'StartTime参数必须小于EndTime参数。'], + ['code' => 'iot.dap.insight.startTimeMustBeLessThanEndTime', 'message' => 'The StartTime parameter must be less than EndTime.', 'http_code' => 400, 'description' => 'StartTime参数必须小于EndTime参数。'], + ['code' => 'iot.dap.insight.tableFieldNameNotExist', 'message' => 'The table field name is not exist.', 'http_code' => 400, 'description' => '表中字段名不存在。'], + ['code' => 'iot.dap.insight.tableFieldNameNotExist', 'message' => 'The table field names is not exist.', 'http_code' => 400, 'description' => '表中字段名不存在。'], + ['code' => 'iot.dap.insight.tableFieldNameNotFound', 'message' => 'The fields are not found in the table.', 'http_code' => 400, 'description' => '表中字段名不存在。'], + ['code' => 'iot.dap.insight.tableNameTooLong', 'message' => 'table name or disply table name beyond max limit', 'http_code' => 400, 'description' => '表名称或者表显示名超过最大限制。'], + ['code' => 'iot.dap.insight.taskRunning', 'message' => 'There is a task running.', 'http_code' => 400, 'description' => '有一个任务正在运行中。'], + ['code' => 'iot.dap.insight.taskRunning', 'message' => 'task running.', 'http_code' => 400, 'description' => '有任务运行中'], + ['code' => 'iot.dap.insight.templateDemoDataNotExists', 'message' => 'template demo data not exists', 'http_code' => 400, 'description' => '算法demo样本数据不存在'], + ['code' => 'iot.dap.insight.templateDemoDataResolveError', 'message' => 'template demo data resolve error', 'http_code' => 400, 'description' => '算法demo样本数据解析错误'], + ['code' => 'iot.dap.insight.templateNotExist', 'message' => 'template not exist', 'http_code' => 400, 'description' => '算法模板不存在'], + ['code' => 'iot.dap.insight.timeSeriesRelationColNotMatch', 'message' => 'The number of detection data needs to be between 2 and 10 columns.', 'http_code' => 400, 'description' => '检测数据的数量需在2到10列之间。'], + ['code' => 'iot.dap.insight.unknownDataIntegrationField', 'message' => 'Unknown data integration field.', 'http_code' => 400, 'description' => '字段不在数据集成的源表中。'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'server inner error.', 'http_code' => 500, 'description' => '服务内部错误。'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'unknown error.', 'http_code' => 500, 'description' => '未知错误请联系管理员。'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'A server error occurred. Please submit a ticket.', 'http_code' => 500, 'description' => '服务器错误,请提交工单处理'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'biz exception not specified.', 'http_code' => 400, 'description' => '未定义的业务异常。'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'Service internal error please contact technical support', 'http_code' => 400, 'description' => '服务内部错误,请联系技术支持'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'unknown exception.', 'http_code' => 400, 'description' => '未知异常。'], + ['code' => 'iot.dap.insight.unknownException', 'message' => 'System error. Please submit a ticket.', 'http_code' => 400, 'description' => '系统错误,请提交工单联系技术支持。'], + ['code' => 'iot.dap.insight.unsubscribe', 'message' => 'Not subscribed to related algorithm solutions.', 'http_code' => 400, 'description' => '未订阅相关算法解决方案。'], + ['code' => 'iot.dap.insight.unsupportedDataIntegrationTable', 'message' => 'Data Integration for this table is not supported.', 'http_code' => 400, 'description' => '无法识别的数据表类型,不支持对其创建数据集成任务。'], + ['code' => 'iot.dap.insight.unsupportedDataIntegrationTable', 'message' => 'Unsupported data integration table.', 'http_code' => 400, 'description' => '指定表不存在或该表不支持数据集成。'], + ['code' => 'iot.dap.insight.unsupportTableType', 'message' => 'Deletion of this type of table data is not supported.', 'http_code' => 400, 'description' => '不支持对该类型表数据进行删除。'], + ['code' => 'iot.dap.insight.useSystemColumn', 'message' => 'Column names contain system fields', 'http_code' => 400, 'description' => '列名称包含系统字段'], + ['code' => 'iot.dap.internalError', 'message' => 'internal error.', 'http_code' => 400, 'description' => '内部错误'], + ['code' => 'iot.dap.jobNameRepetition', 'message' => 'job name repetition', 'http_code' => 400, 'description' => '相同名称的文件名称已存在'], + ['code' => 'iot.dap.jobNameRepetition', 'message' => 'job name repetition.', 'http_code' => 400, 'description' => '相同名称的文件名称已存在。'], + ['code' => 'iot.dap.methodTimeout', 'message' => 'timeout', 'http_code' => 400, 'description' => '服务调用超时'], + ['code' => 'iot.dap.methodTimeout', 'message' => 'The service call timed out.', 'http_code' => 400, 'description' => '服务调用超时。'], + ['code' => 'iot.dap.noServeJobExit', 'message' => 'no serve job exist', 'http_code' => 400, 'description' => '数据服务任务不存在'], + ['code' => 'iot.dap.noServeJobExit', 'message' => 'no serve job exist.', 'http_code' => 400, 'description' => '数据服务任务不存在。'], + ['code' => 'iot.dap.onlyEstablishOneFolder', 'message' => 'Can only establish one class folder', 'http_code' => 400, 'description' => '只能建立一级文件夹,不能建立子文件夹'], + ['code' => 'iot.dap.onlyEstablishOneFolder', 'message' => 'Can only establish one class folder.', 'http_code' => 400, 'description' => '只能建立一级文件夹,不能建立子文件夹。'], + ['code' => 'iot.dap.parametersError', 'message' => 'request parameter error', 'http_code' => 400, 'description' => 'request parameter error'], + ['code' => 'iot.dap.parametersError', 'message' => 'Invalid request parameters.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.dap.parametersError', 'message' => 'The request parameter is wrong.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.dap.productListIsNull', 'message' => 'product list is null', 'http_code' => 400, 'description' => '没有已发布的产品'], + ['code' => 'iot.dap.productListIsNull', 'message' => 'product list is null.', 'http_code' => 400, 'description' => '没有已发布的产品。'], + ['code' => 'iot.dap.publishedTaskNotDelete', 'message' => 'published task not delete', 'http_code' => 400, 'description' => '已发布的任务不可删除'], + ['code' => 'iot.dap.publishedTaskNotDelete', 'message' => 'Published tasks cannot be deleted.', 'http_code' => 400, 'description' => '已发布的任务不可删除。'], + ['code' => 'iot.dap.requestHighFrequentError', 'message' => 'too many requests', 'http_code' => 400, 'description' => 'too many requests'], + ['code' => 'iot.dap.requestHighFrequentError', 'message' => 'The amount of concurrency is high. please try again later.', 'http_code' => 400, 'description' => '并发量大,请稍后重试。'], + ['code' => 'iot.dap.serveApiInvalidParam', 'message' => 'call serve api with invalid parameter', 'http_code' => 400, 'description' => '调用接口的参数检查不通过'], + ['code' => 'iot.dap.serveApiPathIsEmpty', 'message' => 'the api path is empty', 'http_code' => 400, 'description' => 'api path不能为空'], + ['code' => 'iot.dap.serveApiPathRepetition', 'message' => 'serve api path is repetition.', 'http_code' => 400, 'description' => '数据服务API接口地址重复'], + ['code' => 'iot.dap.serveApiPathRepetition', 'message' => 'The address of the data service API interface is duplicated.', 'http_code' => 400, 'description' => '数据服务API接口地址重复。'], + ['code' => 'iot.dap.serveApiSqlInvokeParamError', 'message' => 'SQL parameter error value non match type', 'http_code' => 400, 'description' => 'SQL参数错误,类型与值不匹配'], + ['code' => 'iot.dap.serveApiSqlInvokeParamError', 'message' => 'Invalid SQL parameters.', 'http_code' => 400, 'description' => 'SQL参数错误,类型与值不匹配。'], + ['code' => 'iot.dap.serveApiSqlTemplateError', 'message' => 'sql template error please check sql template and updated', 'http_code' => 400, 'description' => 'SQL 模板信息异常,请校验并更新后再尝试调用服务'], + ['code' => 'iot.dap.sourceUidIsEmpty', 'message' => 'source uid is empty', 'http_code' => 400, 'description' => '请先创建数据源'], + ['code' => 'iot.dap.sourceUidIsEmpty', 'message' => 'source uid is empty.', 'http_code' => 400, 'description' => '请先创建数据源。'], + ['code' => 'iot.dap.syncStartPipelineError', 'message' => 'start pipeline error.because invoke the data-cube failure', 'http_code' => 400, 'description' => '启动任务失败'], + ['code' => 'iot.dap.syncStartPipelineError', 'message' => 'Failed to start task.', 'http_code' => 400, 'description' => '启动任务失败。'], + ['code' => 'iot.dap.taskNotPublished', 'message' => 'the serve api not publish', 'http_code' => 400, 'description' => 'API未发布'], + ['code' => 'iot.dap.taskNotPublished', 'message' => 'The API has not been published.', 'http_code' => 400, 'description' => 'API未发布。'], + ['code' => 'iot.dap.unauthorization', 'message' => 'no authorization.', 'http_code' => 400, 'description' => '此操作没有权限'], + ['code' => 'iot.dataalgo.MethodNotFoundInScript', 'message' => 'Method is not found in script', 'http_code' => 400, 'description' => '脚本中方法找不到'], + ['code' => 'iot.dataalgo.ScriptDataFormatException', 'message' => 'Script function result format is incorrect.', 'http_code' => 400, 'description' => '脚本格式不正确。'], + ['code' => 'iot.dataalgo.ScriptExecutionException', 'message' => 'Script execution exception', 'http_code' => 400, 'description' => '脚本执行异常'], + ['code' => 'iot.dataalgo.ScriptExecutionException', 'message' => 'Script execution exception.', 'http_code' => 400, 'description' => '脚本执行异常。'], + ['code' => 'iot.dataalgo.ScriptExecutionOomException', 'message' => 'Script execution is out of memory.', 'http_code' => 400, 'description' => '脚本执行超出内存限制。'], + ['code' => 'iot.dataalgo.ScriptExecutionTimeout', 'message' => 'Script execution timeout.', 'http_code' => 400, 'description' => '脚本执行超时。'], + ['code' => 'iot.dataalgo.ScriptFlowRestriction', 'message' => 'Script Flow restrictions', 'http_code' => 400, 'description' => '脚本流量超限,请稍后重试'], + ['code' => 'iot.dataalgo.ScriptMethodNotFound', 'message' => 'Method is not found in script.', 'http_code' => 400, 'description' => '脚本中方法找不到。'], + ['code' => 'iot.dataalgo.ScriptRelationNotExist', 'message' => 'Script relation not exist.', 'http_code' => 400, 'description' => '脚本关系不存在。'], + ['code' => 'iot.databus.InsertSearchIndexConfigFail', 'message' => 'Failed to configure the index.', 'http_code' => 400, 'description' => '配置索引信息失败。'], + ['code' => 'iot.databus.QuerySearchIndexCleanFail', 'message' => 'Failed to query the index cleaning information.', 'http_code' => 400, 'description' => '查询索引清理信息失败。'], + ['code' => 'iot.databus.QuerySearchIndexConfigFail', 'message' => 'Failed to query the index information.', 'http_code' => 400, 'description' => '查询索引信息失败。'], + ['code' => 'Iot.databus.SearchDocError', 'message' => 'Search doc error.', 'http_code' => 400, 'description' => '检索错误。'], + ['code' => 'iot.databus.SearchIndexConfigNotFound', 'message' => 'The search index config is not found.', 'http_code' => 400, 'description' => '未配置高级设备检索。'], + ['code' => 'Iot.dc.DeviceExist', 'message' => 'Device exist.', 'http_code' => 400, 'description' => '设备已存在。'], + ['code' => 'Iot.dc.QuotaExceeds', 'message' => 'Quota exceeds.', 'http_code' => 400, 'description' => '配额超限。'], + ['code' => 'Iot.dc.runtime.RegionNotSupported', 'message' => 'Current region not supported.', 'http_code' => 400, 'description' => '当前区域不支持。'], + ['code' => 'Iot.dc.runtime.TenantInstanceIdIllegal', 'message' => 'Tenant of instanceId illegal.', 'http_code' => 400, 'description' => '实例的租户不合法。'], + ['code' => 'Iot.dc.runtime.TenantInstanceIdIllegal', 'message' => 'Tenant of instanceId illegal', 'http_code' => 400, 'description' => '实例的租户不合法'], + ['code' => 'Iot.dc.runtime.TsdbConfigNotExsit', 'message' => 'Tsdb config not exist.', 'http_code' => 400, 'description' => 'Tsdb配置不存在。'], + ['code' => 'Iot.dc.runtime.TsdbConfigTtlMustBigger', 'message' => 'Tsdb config new ttl must bigger than last.', 'http_code' => 400, 'description' => 'Tsdb配置新ttl值必须大于旧值。'], + ['code' => 'Iot.dc.runtime.TsdbConfigTtlOutRange', 'message' => 'Tsdb config ttl out range.', 'http_code' => 400, 'description' => 'Tsdb配置ttl值超出范围。'], + ['code' => 'Iot.dc.TenantIllegal', 'message' => 'TenantId illegal.', 'http_code' => 400, 'description' => '租户不合法。'], + ['code' => 'iot.deivce.CancelDeviceAuthFailed', 'message' => 'An error occurred while canceling the device authorization.', 'http_code' => 400, 'description' => '取消设备授权失败。'], + ['code' => 'iot.deivce.NotExistedThingConfig', 'message' => 'The specified product has not been configured.', 'http_code' => 400, 'description' => '当前产品没有配置。'], + ['code' => 'iot.device.AddNodeFailed', 'message' => 'Failed to add the LoRa device.', 'http_code' => 400, 'description' => '添加LoRa设备失败。'], + ['code' => 'iot.device.AddThingConfigFailed', 'message' => 'An error occurred while creating the TSL model.', 'http_code' => 400, 'description' => '创建物的配置失败。'], + ['code' => 'iot.device.AddTopoFailed', 'message' => 'An error occurred while creating a topological relation between the device and the gateway.', 'http_code' => 400, 'description' => '设备与网关设备建立拓扑关系失败。'], + ['code' => 'iot.device.AddTopoRelationFailed', 'message' => 'An error occurred while adding the topological relationship.', 'http_code' => 400, 'description' => '添加拓扑关系失败。'], + ['code' => 'iot.device.AllDeviceIsAuthorized', 'message' => 'All devices have been authorized and cannot be deleted.', 'http_code' => 400, 'description' => '所有设备都存在授权关系,不能被删除。'], + ['code' => 'iot.device.AlreadyCreatedExistedApplyId', 'message' => 'The specified application ID already exists.', 'http_code' => 400, 'description' => '已经创建过设备的申请单id。'], + ['code' => 'iot.device.AlreadyExistedDeviceName', 'message' => 'The device already exists.', 'http_code' => 400, 'description' => '设备已存在。'], + ['code' => 'iot.device.AlreadyExistedDeviceName', 'message' => 'The DeviceName already exists.', 'http_code' => 400, 'description' => '设备名称已经存在。'], + ['code' => 'iot.device.ApplyDeviceNumberIslarge', 'message' => 'The number of devices exceeds the limit for a single request.', 'http_code' => 400, 'description' => '单次申请的设备数量不能超过1000个。'], + ['code' => 'iot.device.ApplyManyDevicesFailed', 'message' => 'An error occurred while creating multiple devices.', 'http_code' => 400, 'description' => '申请批量创建设备失败。'], + ['code' => 'iot.device.ApplyManyDevicesFailed', 'message' => 'An error occurred while requesting multiple devices.', 'http_code' => 400, 'description' => '批量创建设备申请失败,请稍后重试。'], + ['code' => 'iot.device.ApplyNotExist', 'message' => 'The batch does not exist.', 'http_code' => 400, 'description' => '批次不存在'], + ['code' => 'iot.device.AuthDeviceToISVFailed', 'message' => 'Failed to grant device permissions to ISV.', 'http_code' => 400, 'description' => '为ISV授予设备权限失败'], + ['code' => 'iot.device.AuthorizeDeviceToTenantFailed', 'message' => 'An error occurred while authorizing the tenant to use the device.', 'http_code' => 400, 'description' => '授权设备到租户失败'], + ['code' => 'iot.device.BatchDeleteDeviceCountExceedMax', 'message' => 'The number of deleted devices cannot exceed 20.', 'http_code' => 400, 'description' => '批量删除的设备数超过最大限制20'], + ['code' => 'iot.device.BatchGetThingPropertyFailed', 'message' => 'Failed to query specified properties of multiple devices.', 'http_code' => 400, 'description' => '批量查询多个设备的指定属性失败'], + ['code' => 'iot.device.BatchQueryDeviceFailed', 'message' => 'Failed to query the information about multiple devices.', 'http_code' => 400, 'description' => '查询多个设备信息失败'], + ['code' => 'iot.device.BatchQueryDeviceTimelineError', 'message' => 'Failed to query historical property records.', 'http_code' => 400, 'description' => '获取多个属性的历史上报数据记录出错。'], + ['code' => 'iot.device.CancelAuthDeviceToISVFailed', 'message' => 'Failed to cancel the ISV authorization.', 'http_code' => 400, 'description' => '取消ISV的设备授权失败'], + ['code' => 'iot.device.CanNotEnableInactiveDevice', 'message' => 'The inactive device cannot be enabled.', 'http_code' => 400, 'description' => '无法启用未激活的设备。'], + ['code' => 'iot.device.CanNotSetReadOnlyProperty', 'message' => 'Cannot set read only property.', 'http_code' => 400, 'description' => '无法设置只读属性。'], + ['code' => 'iot.device.CertBindListSizeExceed', 'message' => 'The size of the certificate binding list exceeds the limit.', 'http_code' => 400, 'description' => '证书绑定列表大小超过限制。'], + ['code' => 'iot.device.ChannelIsNotBelongToGateway', 'message' => 'The specified channel does not belong to the gateway device.', 'http_code' => 400, 'description' => '通道不属于网关设备。'], + ['code' => 'iot.device.ChannelNameIsRepeated', 'message' => 'The specified channel name already exists.', 'http_code' => 400, 'description' => '通道名称已经存在。'], + ['code' => 'iot.device.CheckDeviceNameListFailed', 'message' => 'An error occurred while checking the deviceName list.', 'http_code' => 400, 'description' => '设备名称列表检验失败。'], + ['code' => 'iot.device.ChildDeviceCountExceedMax', 'message' => 'You cannot create any more sub-devices.', 'http_code' => 400, 'description' => '子设备数量不能超过最大值'], + ['code' => 'iot.device.ChildDeviceHasTopo', 'message' => 'A topological relationship has been established between the device and the gateway.', 'http_code' => 400, 'description' => '设备已经与网关建立了拓扑关系。'], + ['code' => 'iot.device.ClearPropertyDesiredFailed', 'message' => 'Failed to clear desired value of property.', 'http_code' => 400, 'description' => '清空属性期望值失败。'], + ['code' => 'iot.device.ConfigCheckFailed', 'message' => 'Failed to check the configurations.', 'http_code' => 400, 'description' => 'config检查失败'], + ['code' => 'iot.device.CreateChildDeviceFailed', 'message' => 'An error occurred while creating the sub-device.', 'http_code' => 400, 'description' => '创建子设备失败。'], + ['code' => 'iot.device.CreateDeviceFailed', 'message' => 'An error occurred while creating the device.', 'http_code' => 400, 'description' => '创建设备失败。'], + ['code' => 'iot.device.CreateDeviceTaskIsRunning', 'message' => 'The task to create the device is still running.', 'http_code' => 400, 'description' => '创建设备的申请任务还在执行中。'], + ['code' => 'iot.device.CreateDeviceTaskIsRunning.', 'message' => 'The device is being created.', 'http_code' => 400, 'description' => '申请的设备还在创建中。'], + ['code' => 'iot.device.CreateDeviceX509CertError', 'message' => 'Failed to generate the X.509 certificate.', 'http_code' => 400, 'description' => '生成X.509证书失败。'], + ['code' => 'iot.device.CreateThingTagFailed', 'message' => 'Failed to add the device tag.', 'http_code' => 400, 'description' => '添加设备标签失败'], + ['code' => 'iot.device.CreateVirtualDeviceFailed', 'message' => 'An error occurred while creating a virtual device.', 'http_code' => 400, 'description' => '创建虚拟设备失败。'], + ['code' => 'iot.device.DebugAbilityFaild', 'message' => 'An error occurred while debugging the product features.', 'http_code' => 400, 'description' => '调试功能失败。'], + ['code' => 'iot.device.DeleteDeviceFailed', 'message' => 'An error occurred while deleting the device.', 'http_code' => 400, 'description' => '删除设备失败。'], + ['code' => 'iot.device.DeleteDeviceFileFailed', 'message' => 'Failed to delete the device file.', 'http_code' => 400, 'description' => '删除设备上传的某一文件失败'], + ['code' => 'iot.device.DeleteDevicePropertyFailed', 'message' => 'An error occurred while deleting the device property.', 'http_code' => 400, 'description' => '删除设备属性失败。'], + ['code' => 'iot.device.DeleteSubDeviceFailed', 'message' => 'An error occurred while deleting the sub-device.', 'http_code' => 400, 'description' => '删除子设备失败。'], + ['code' => 'iot.device.DeleteThingTagFailed', 'message' => 'Failed to delete the device tag.', 'http_code' => 400, 'description' => '删除设备标签失败'], + ['code' => 'iot.device.DesiredPropertyVersionConflict', 'message' => 'Version conflict. Please check version of the properties.', 'http_code' => 400, 'description' => '版本冲突,请检查属性的期望值版本。'], + ['code' => 'iot.device.DeviceApplyIsNotFound', 'message' => 'The application ID for the device does not exist.', 'http_code' => 400, 'description' => '申请设备的申请单不存在。'], + ['code' => 'iot.device.DeviceBatchApplyNotReady', 'message' => 'The specified request ticket is not ready.', 'http_code' => 400, 'description' => '申请单没有就绪。'], + ['code' => 'iot.device.DeviceCountExceeded', 'message' => 'The number of devices exceeds the limit.', 'http_code' => 400, 'description' => '批量申请的设备数量超过最大值。'], + ['code' => 'iot.device.DeviceCountExceedMax', 'message' => 'The number of devices under the product exceeds the limit.', 'http_code' => 400, 'description' => '产品下的设备总数超过最大限制5000000。'], + ['code' => 'iot.device.DeviceCountExceedTenantInstanceMax', 'message' => 'The number of devices exceeds the limit.', 'http_code' => 400, 'description' => '设备数超过租户实例最大规格。'], + ['code' => 'iot.device.DeviceFileNotFound', 'message' => 'The device file does not exist.', 'http_code' => 400, 'description' => '设备文件不存在。'], + ['code' => 'iot.device.DeviceHasAuthorizations', 'message' => 'The current device has been assigned to another tenant and cannot be deleted.', 'http_code' => 400, 'description' => '当前设备已被授权给其他租户,不能删除。'], + ['code' => 'iot.device.DeviceHasDistributed', 'message' => 'A device with the same name has been distributed.', 'http_code' => 400, 'description' => '同名设备已被分发。'], + ['code' => 'iot.device.DeviceInstanceInconsistency', 'message' => 'The instance of devices is inconsistency.', 'http_code' => 400, 'description' => '设备企业实例ID错误。'], + ['code' => 'iot.device.DeviceIsAlreadyOnline', 'message' => 'The specified device is already online.', 'http_code' => 400, 'description' => '真实设备已经在线。'], + ['code' => 'iot.device.DeviceIsDisable', 'message' => 'The specified device has been disabled.', 'http_code' => 400, 'description' => '真实设备被禁用。'], + ['code' => 'iot.device.DeviceIsNotMathchedWithDeviceConnectionCode', 'message' => 'The specified code for device connection does not belong to this device.', 'http_code' => 400, 'description' => '设备连接配置Code不属于此设备。'], + ['code' => 'iot.device.DeviceNameAuthError', 'message' => 'An error occurred while authenticating the device.', 'http_code' => 400, 'description' => '设备名称认证失败。'], + ['code' => 'iot.device.DeviceNameListSizeExceed', 'message' => 'The size of the DeviceName list exceeds the limit.', 'http_code' => 400, 'description' => '设备名称列表大小超过限制。'], + ['code' => 'Iot.device.DeviceNotFound', 'message' => 'device not found.', 'http_code' => 400, 'description' => '设备找不到。'], + ['code' => 'Iot.device.DeviceNotFound', 'message' => 'device not found', 'http_code' => 400, 'description' => '设备找不到'], + ['code' => 'iot.device.DeviceNotOnline', 'message' => 'Device is not online.', 'http_code' => 400, 'description' => '设备不在线。'], + ['code' => 'iot.device.DeviceNumberExceedInstance', 'message' => 'Exceeds instance device number limit', 'http_code' => 400, 'description' => '实例下的设备总数超过最大限制。'], + ['code' => 'iot.device.DeviceNumerExceedTenant', 'message' => 'The total number of devices exceed the limit.', 'http_code' => 400, 'description' => '租户下的设备总数超过最大限制。'], + ['code' => 'iot.device.DeviceNumerExceedTenant', 'message' => 'The device total number beyond limit.', 'http_code' => 400, 'description' => '设备数量超限。'], + ['code' => 'iot.device.DeviceProtocolNotMatchedWithGatewayChannel', 'message' => 'The device and the channel must use the same protocol.', 'http_code' => 400, 'description' => '设备的协议与通道的协议类型不一致。'], + ['code' => 'iot.device.DeviceQuotaExceedMax', 'message' => 'The quota for the product is insufficient.', 'http_code' => 400, 'description' => '产品下配额不足。'], + ['code' => 'iot.device.DeviceTenantsCheckFailed', 'message' => 'An error occurred while authenticating the device tenant.', 'http_code' => 400, 'description' => '设备租户和请求租户不一致。'], + ['code' => 'iot.device.DisableDeviceFailed', 'message' => 'An error occurred while disabling the device.', 'http_code' => 400, 'description' => '禁用设备失败。'], + ['code' => 'iot.device.DistributedProductCanNotCreateDevice', 'message' => 'The device cannot be created under the distributed product.', 'http_code' => 400, 'description' => '被分发产品下禁止创建设备。'], + ['code' => 'iot.device.DistributedProductCanNotCreateDevice', 'message' => 'The creation of devices under distributed products is prohibited.', 'http_code' => 400, 'description' => '被分发产品下禁止创建设备。'], + ['code' => 'iot.device.DuplicateDeviceName', 'message' => 'The device name is duplicate.', 'http_code' => 400, 'description' => '设备名称重复。'], + ['code' => 'iot.device.DuplicateDeviceNicknameInfo', 'message' => 'The device name and alias must be unique.', 'http_code' => 400, 'description' => '参数错误,出现重复的设备与别名信息'], + ['code' => 'iot.device.EmptyDeviceList', 'message' => 'You must specify a device list.', 'http_code' => 400, 'description' => '设备列表为空。'], + ['code' => 'iot.device.EmptyDeviceList', 'message' => 'The productKey is empty.', 'http_code' => 400, 'description' => '请求参数中设备列表不能为空,请添加后重试。'], + ['code' => 'iot.device.EmptyDeviceNameList', 'message' => 'The DeviceName list is empty.', 'http_code' => 400, 'description' => '设备名称列表为空。'], + ['code' => 'iot.device.EmptyDeviceNicknameInfo', 'message' => 'The device alias cannot not be empty.', 'http_code' => 400, 'description' => '设备别名信息不能为空'], + ['code' => 'iot.device.EmptyDeviceNicknameInfoList', 'message' => 'The DeviceNicknameInfoList parameter cannot be empty.', 'http_code' => 400, 'description' => '列表不能为空'], + ['code' => 'iot.device.EmptyFirmwareNames', 'message' => 'You must specify a firmware name for update.', 'http_code' => 400, 'description' => '待升级固件名称不能为空。'], + ['code' => 'iot.device.EnableDeviceFailed', 'message' => 'An error occurred while enabling the device.', 'http_code' => 400, 'description' => '启用设备失败。'], + ['code' => 'iot.device.EveryDeviceIsNotExisted', 'message' => 'The devices you are querying do not exist.', 'http_code' => 400, 'description' => '查询的设备都不存在。'], + ['code' => 'iot.device.EveryDeviceNameFormatIsInvalid', 'message' => 'The formats of DeviceNames are invalid.', 'http_code' => 400, 'description' => '设备名称列表中的全部设备名称格式都不正确。'], + ['code' => 'iot.device.ExistedThingConfig', 'message' => 'The product or device is already configured.', 'http_code' => 400, 'description' => '当前产品或者设备已存在配置。'], + ['code' => 'iot.device.FailedCreateChannel', 'message' => 'An error occurred while creating a sub-device channel.', 'http_code' => 400, 'description' => '创建子设备通道失败。'], + ['code' => 'iot.device.FailedDeleteServerConfig', 'message' => 'An error occurred while deleting the sub-device channel.', 'http_code' => 400, 'description' => '删除子设备通道失败。'], + ['code' => 'iot.device.FailedListServerConfig', 'message' => 'An error occurred while querying the sub-device channels.', 'http_code' => 400, 'description' => '获取子设备通道列表失败。'], + ['code' => 'iot.device.FailedToSetDeviceOffline', 'message' => 'An error occurred while stopping the specified virtual device.', 'http_code' => 400, 'description' => '关闭虚拟设备失败。'], + ['code' => 'iot.device.FailedToSetDeviceOnline', 'message' => 'An error occurred while starting the specified virtual device.', 'http_code' => 400, 'description' => '启动虚拟设备失败。'], + ['code' => 'iot.device.FailedUpdateChannel', 'message' => 'An error occurred while updating the sub-device channel.', 'http_code' => 400, 'description' => '更新子设备通道信息失败。'], + ['code' => 'iot.device.FileNotMatchedWithDevice', 'message' => 'The file does not belong to the current device.', 'http_code' => 400, 'description' => '文件不属于当前设备。'], + ['code' => 'iot.device.FuzzyRuntimeSearchMinLengt', 'message' => 'Fuzzy runtime search length must exceed 4.', 'http_code' => 400, 'description' => '模糊搜索长度必须大于等于5。'], + ['code' => 'iot.device.FuzzyRuntimeSearchMinLengthLimit', 'message' => 'Fuzzy runtime search length must exceed 4.', 'http_code' => 400, 'description' => '模糊搜索长度必须大于等于5。'], + ['code' => 'iot.device.FuzzySearchMinLengthLimi', 'message' => 'Fuzzy search length must exceed 3', 'http_code' => 400, 'description' => '模糊搜索长度必须大于等于4。'], + ['code' => 'iot.device.FuzzySearchMinLengthLimit', 'message' => 'Fuzzy search length must exceed 3.', 'http_code' => 400, 'description' => '模糊搜索长度必须大于等于4。'], + ['code' => 'iot.device.GetDeviceEventFailed', 'message' => 'An error occurred while querying the device events.', 'http_code' => 400, 'description' => '获取设备事件失败。'], + ['code' => 'iot.device.GetDevicePropertyFailed', 'message' => 'An error occurred while querying the device properties.', 'http_code' => 400, 'description' => '获取设备属性失败。'], + ['code' => 'iot.device.GetNodesAddingTaskFailed', 'message' => 'Failed to query the task to add multiple LoRa devices.', 'http_code' => 400, 'description' => '查询批量添加LoRa设备任务失败。'], + ['code' => 'iot.device.GetNodesAddingTaskFailed', 'message' => 'Failed to query the LoRa device batch addition task.', 'http_code' => 400, 'description' => '查询LoRa设备任务失败,请稍后重试。'], + ['code' => 'iot.device.HasDeviceAuthorizationRelations', 'message' => 'The device of the specified product has been authorized.', 'http_code' => 400, 'description' => '当前产品中的设备存在授权关系。'], + ['code' => 'iot.device.ID2ProductIsNotAllowCreateDevice', 'message' => 'You cannot create devices under the ID² product.', 'http_code' => 400, 'description' => 'id2产品不允许创建设备。'], + ['code' => 'iot.device.InactiveDevice', 'message' => 'The device is inactive.', 'http_code' => 400, 'description' => '设备未激活,即物理设备从未连接物联网平台。'], + ['code' => 'iot.device.IncorrectDeviceConnectionConfig', 'message' => 'The specified protocol for the connection between the device and the gateway is invalid.', 'http_code' => 400, 'description' => '设备上连网关的协议配置错误。'], + ['code' => 'iot.device.IncorrentDeviceApplyInfo', 'message' => 'The device application information is invalid.', 'http_code' => 400, 'description' => '设备申请信息错误。'], + ['code' => 'iot.device.InitSlsClentError', 'message' => 'An error occurred while initializing the SLS client.', 'http_code' => 400, 'description' => 'SLS客户端初始化失败。'], + ['code' => 'iot.device.InvalidApplyState', 'message' => 'The specified batch request status is invalid.', 'http_code' => 400, 'description' => '批量申请状态不正确。'], + ['code' => 'iot.device.InvalidCertSNInArray', 'message' => 'The CertSN is invalid.', 'http_code' => 400, 'description' => '列表中存在不合法的CertSN。'], + ['code' => 'iot.device.InvalidDeviceNameExisted', 'message' => 'The DeviceName list contains invalid DeviceNames.', 'http_code' => 400, 'description' => '设备名称列表中的存在不正确设备名称格式。'], + ['code' => 'iot.device.InvalidDeviceNameList', 'message' => 'The string of the deviceName list is invalid.', 'http_code' => 400, 'description' => '设备名称列表字符串不合法。'], + ['code' => 'iot.device.InvalidDeviceNickNameExisted', 'message' => 'The DeviceName list contains invalid device aliases.', 'http_code' => 400, 'description' => '设备名称列表中存在不合法的设备备注名称。'], + ['code' => 'iot.device.InvalidDeviceNicknameInfo', 'message' => 'The DeviceNicknameInfo parameter is invalid.', 'http_code' => 400, 'description' => '设备别名格式错误'], + ['code' => 'iot.device.InvalidDeviceParams', 'message' => 'The request parameters are invalid.', 'http_code' => 400, 'description' => '请求参数非法。'], + ['code' => 'iot.device.InvalidDeviceStatus', 'message' => 'The device is offline.', 'http_code' => 400, 'description' => '设备不在线。'], + ['code' => 'iot.device.InvalidFormattedAppKey', 'message' => 'The AppKey format is invalid.', 'http_code' => 400, 'description' => 'AppKey格式不正确。'], + ['code' => 'iot.device.InvalidFormattedApplyId', 'message' => 'The ApplyId parameter is invalid.', 'http_code' => 400, 'description' => '创建设备的申请单(ApplyId)错误。'], + ['code' => 'iot.device.InvalidFormattedDevEui', 'message' => 'The DevEui format is invalid.', 'http_code' => 400, 'description' => 'DevEui格式不正确。'], + ['code' => 'iot.device.InvalidFormattedDeviceName', 'message' => 'The DeviceName format is invalid.', 'http_code' => 400, 'description' => '设备名称格式错误。'], + ['code' => 'iot.device.InvalidFormattedDeviceName', 'message' => 'The deviceName format is incorrect.', 'http_code' => 400, 'description' => '设备名称格式错误。'], + ['code' => 'iot.device.InvalidFormattedDeviceNameInNameArray', 'message' => 'The DeviceName list contains an invalid DeviceName.', 'http_code' => 400, 'description' => '设备名称列表中存在非法格式的设备名称。'], + ['code' => 'iot.device.InvalidFormattedDeviceNameInNameArray', 'message' => 'The deviceName list contains an invalid device name.', 'http_code' => 400, 'description' => '设备名称列表中存在非法格式的设备名称。'], + ['code' => 'iot.device.InvalidFormattedDeviceNickname', 'message' => 'The device alias is invalid.', 'http_code' => 400, 'description' => '设备别名格式错误。'], + ['code' => 'iot.device.InvalidFormattedDevicePropertiesString', 'message' => 'The device property format is invalid.', 'http_code' => 400, 'description' => '入参设备属性格式错误。'], + ['code' => 'iot.device.InvalidFormattedDevicePropertyKey', 'message' => 'The device property name format is invalid.', 'http_code' => 400, 'description' => '设备属性标识符格式错误。'], + ['code' => 'iot.device.InvalidFormattedDevicePropertyValue', 'message' => 'The device property value format is invalid.', 'http_code' => 400, 'description' => '属性值不合法。'], + ['code' => 'iot.device.InvalidFormattedDeviceStatus', 'message' => 'The specified device status is invalid.', 'http_code' => 400, 'description' => '设备状态格式错误。'], + ['code' => 'iot.device.InvalidFormattedJoinEui', 'message' => 'The JoinEui format is invalid.', 'http_code' => 400, 'description' => 'JoinEui格式不正确。'], + ['code' => 'iot.device.InvalidFormattedPinCode', 'message' => 'The PinCode format is invalid.', 'http_code' => 400, 'description' => 'DevEui格式不正确。'], + ['code' => 'iot.device.InvalidFormattedPropertyLabel', 'message' => 'The specified device property format is invalid.', 'http_code' => 400, 'description' => '设备属性格式不正确。'], + ['code' => 'iot.device.InvalidIoTId', 'message' => 'The specified device ID is invalid.', 'http_code' => 400, 'description' => '设备ID错误。'], + ['code' => 'Iot.device.InvalidIoTId', 'message' => 'This specified device ID is invalid.', 'http_code' => 400, 'description' => '设备ID错误。'], + ['code' => 'iot.device.InvalidParams', 'message' => 'The parameter is invalid。', 'http_code' => 400, 'description' => '无效的参数。'], + ['code' => 'iot.device.InvalidParams', 'message' => 'the params is illegal.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.device.InvalidParams', 'message' => 'Request params error.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.device.InvalidParams', 'message' => 'sql migrate error', 'http_code' => 403, 'description' => 'sql迁移出错'], + ['code' => 'iot.device.InvalidPushThingConfigScope', 'message' => 'The specified scope is invalid.', 'http_code' => 400, 'description' => '推送物配置scope不合法。'], + ['code' => 'iot.device.InvalidThingTagName', 'message' => 'The tag name is invalid.', 'http_code' => 400, 'description' => '非法的标签key'], + ['code' => 'iot.device.InvalidTimeBucket', 'message' => 'The specified time range is invalid.', 'http_code' => 400, 'description' => '指定的时间区间不合法。'], + ['code' => 'iot.device.InvokeThingServiceFailed', 'message' => 'An error occurred while invoking the device service.', 'http_code' => 400, 'description' => '调用设备服务失败。'], + ['code' => 'iot.device.InvokeVirtualThingServiceFailed', 'message' => 'Failed to call the service of the virtual device.', 'http_code' => 400, 'description' => '调用虚拟设备服务失败。'], + ['code' => 'iot.device.LongDevicePropertiesString', 'message' => 'The device property exceeds the maximum length.', 'http_code' => 400, 'description' => '入参设备属性长度超过最大值。'], + ['code' => 'iot.device.NoneDeviceNameElement', 'message' => 'The DeviceName list is empty.', 'http_code' => 400, 'description' => '设备名称列表为空。'], + ['code' => 'iot.device.NoneDeviceProperties', 'message' => 'No valid device properties exist.', 'http_code' => 400, 'description' => '没有有效的设备属性。'], + ['code' => 'iot.device.NoPermission', 'message' => 'The Operation has not permission to the device.', 'http_code' => 400, 'description' => '无权限操作该设备,请核实。'], + ['code' => 'Iot.Device.NotDeviceOwner', 'message' => 'You are not the device owner.', 'http_code' => 403, 'description' => '当前操作者不是设备的拥有者。'], + ['code' => 'iot.device.NotEqualPkAndDn', 'message' => 'The specified device pk and dn do not match.', 'http_code' => 400, 'description' => '设备pk和dn数量不匹配。'], + ['code' => 'Iot.Device.NotExistedDevice', 'message' => 'The device does not exist.', 'http_code' => 400, 'description' => '设备不存在或未激活。'], + ['code' => 'iot.Device.NotExistedDevice', 'message' => 'This device does not exist.', 'http_code' => 400, 'description' => '设备不存在或未激活。'], + ['code' => 'iot.device.NotExistedDevice', 'message' => 'other error.', 'http_code' => 429, 'description' => '其他错误。'], + ['code' => 'iot.device.NotExistedDevice', 'message' => 'no such redis value.', 'http_code' => 403, 'description' => 'redis value不存在。'], + ['code' => 'iot.device.NotExistedDevice', 'message' => 'ILLEGAL INPUTS.', 'http_code' => 429, 'description' => '非法输入。'], + ['code' => 'iot.device.NotExistedDevice', 'message' => 'no value exist for this redis key.', 'http_code' => 403, 'description' => '没有对应的redis的value。'], + ['code' => 'iot.device.NotExistedDevice', 'message' => 'no such redis key.', 'http_code' => 400, 'description' => 'redis的key找不到。'], + ['code' => 'iot.device.NotExistedDeviceInNameArray', 'message' => 'The specified device does not exist.', 'http_code' => 400, 'description' => '设备名称列表中有不存在的设备。'], + ['code' => 'iot.device.NotExistedDeviceInNameArray', 'message' => 'The specified device in device name list does not exist.', 'http_code' => 400, 'description' => '设备名称列表中有不存在的设备。'], + ['code' => 'iot.device.NotExistedThingConfig', 'message' => 'The specified device has not been configured.', 'http_code' => 400, 'description' => '当前产品没有配置。'], + ['code' => 'iot.Device.NotExstedDevice', 'message' => 'This device does not exist.', 'http_code' => 400, 'description' => '设备不存在或未激活。'], + ['code' => 'iot.device.NotFoundChannel', 'message' => 'The specified sub-device channel does not exist.', 'http_code' => 400, 'description' => '子设备通道不存在。'], + ['code' => 'iot.device.NotFoundDeviceConnectionConfigCode', 'message' => 'The specified code for sub-device connection configuration does not exist.', 'http_code' => 400, 'description' => '不存在的子设备连接配置Code。'], + ['code' => 'iot.device.NotFoundVirtualDevice', 'message' => 'The specified virtual device does not exist.', 'http_code' => 400, 'description' => '虚拟设备不存在。'], + ['code' => 'iot.device.NotSupportExemptionValidateType', 'message' => 'The feature does not support the specified verification type.', 'http_code' => 400, 'description' => '该功能不支持物模型免校验类型。'], + ['code' => 'Iot.Device.NoVehicleProtocolDevice', 'message' => 'The data must be IoV device data.', 'http_code' => 400, 'description' => '非车联网设备数据,请核实。'], + ['code' => 'iot.device.NullApplyId', 'message' => 'The ApplyId parameter cannot be empty.', 'http_code' => 400, 'description' => '创建设备的申请ID(ApplyId)不能为空。'], + ['code' => 'iot.device.NullApplyId', 'message' => 'create application equipment id malformed.', 'http_code' => 400, 'description' => '创建设备的申请ID格式错误。'], + ['code' => 'iot.device.NullAuthParameters', 'message' => 'You must specify an authentication parameter.', 'http_code' => 400, 'description' => '认证参数不能为空。'], + ['code' => 'iot.device.NullAuthType', 'message' => 'You must specify an authentication type.', 'http_code' => 400, 'description' => '认证类型不能为空。'], + ['code' => 'iot.device.NullCertBindList', 'message' => 'The certificate binding information is not specified.', 'http_code' => 400, 'description' => '入参证书绑定信息没有赋值。'], + ['code' => 'iot.device.NullDestFirmwareName', 'message' => 'You must specify a target firmware name.', 'http_code' => 400, 'description' => '目标固件名称不能为空。'], + ['code' => 'iot.device.NullDevEui', 'message' => 'You must specify a DevEui.', 'http_code' => 400, 'description' => 'DevEui为空。'], + ['code' => 'iot.device.NullDeviceName', 'message' => 'The DeviceName parameter cannot be empty.', 'http_code' => 400, 'description' => '设备名称不能为空。'], + ['code' => 'iot.device.NullDeviceName', 'message' => 'The deviceName is empty.', 'http_code' => 400, 'description' => '空的设备名称。'], + ['code' => 'iot.device.NullDeviceName', 'message' => 'The device name s empty.', 'http_code' => 400, 'description' => '设备名称不能为空,请修改后重试。'], + ['code' => 'iot.device.NullDeviceName', 'message' => 'The ProductKey or DeviceName parameter cannot be empty.', 'http_code' => 400, 'description' => '产品标识或设备名不能为空。'], + ['code' => 'iot.device.NullDeviceNameInNameArray', 'message' => 'The DeviceName list contains empty device names.', 'http_code' => 400, 'description' => '设备名称列表中存在空的设备名称。'], + ['code' => 'iot.device.NullDevicePropertiesString', 'message' => 'The device property is empty.', 'http_code' => 400, 'description' => '入参设备属性不能为空。'], + ['code' => 'iot.device.NullDevicePropertyKey', 'message' => 'The device property name is empty.', 'http_code' => 400, 'description' => '设备属性名称不能为空。'], + ['code' => 'iot.device.NullDevicePropertyValue', 'message' => 'The device property value is empty.', 'http_code' => 400, 'description' => '设备属性值为空'], + ['code' => 'iot.device.NullFileId', 'message' => 'The FileId parameter cannot be empty.', 'http_code' => 400, 'description' => '参数FileId不能为空。'], + ['code' => 'iot.device.NullFromTime', 'message' => 'You must specify a start time.', 'http_code' => 400, 'description' => '空的起始时间。'], + ['code' => 'iot.device.NullIoTId', 'message' => 'The device ID cannot be empty.', 'http_code' => 400, 'description' => '设备id不能为null。'], + ['code' => 'iot.device.NullIoTIdAndPkDn', 'message' => 'The deviceId, productKey and deviceName parameters cannot be empty at the same time.', 'http_code' => 400, 'description' => '设备id和productKey及deviceName不能同时为null。'], + ['code' => 'iot.device.NullLoraNodeType', 'message' => 'You must specify the loraNodeType parameter.', 'http_code' => 400, 'description' => 'loraNodeType为空。'], + ['code' => 'iot.device.NullPinCode', 'message' => 'You must specify a PinCode.', 'http_code' => 400, 'description' => 'PinCode为空。'], + ['code' => 'iot.device.NullPropertyLabel', 'message' => 'You must specify a device property.', 'http_code' => 400, 'description' => '设备属性不能为空。'], + ['code' => 'iot.device.NullTaskId', 'message' => 'You must specify a task ID.', 'http_code' => 400, 'description' => 'TaskId为空。'], + ['code' => 'iot.device.NullTaskId', 'message' => 'The productKey is empty.', 'http_code' => 400, 'description' => '请求参数中TaskID不能为空,请添加后重试。'], + ['code' => 'iot.device.NullToTime', 'message' => 'You must specify an end time.', 'http_code' => 400, 'description' => '空的结束时间。'], + ['code' => 'iot.device.OfflineDevice', 'message' => 'The device is offline.', 'http_code' => 400, 'description' => '设备离线。'], + ['code' => 'iot.device.PageTokenIsIllegal', 'message' => 'The paging token is invalid.', 'http_code' => 400, 'description' => '分页token非法。'], + ['code' => 'iot.device.PageTokenIsIllegal', 'message' => 'The page token is illegal.', 'http_code' => 400, 'description' => '分页token非法,请修改后重试'], + ['code' => 'iot.device.PartialDeviceIsNotExisted', 'message' => 'Some of the queried devices do not exist.', 'http_code' => 400, 'description' => '查询的设备部分不存在。'], + ['code' => 'iot.device.PostEventsFailed', 'message' => 'An error occurred while pushing events from the virtual device.', 'http_code' => 400, 'description' => '虚拟设备推送事件失败。'], + ['code' => 'iot.device.PostPropertiesFailed', 'message' => 'An error occurred while pushing properties from the virtual device.', 'http_code' => 400, 'description' => '虚拟设备推送属性失败。'], + ['code' => 'iot.device.ProductHasDeviceAuthorizations', 'message' => 'The product contains devices that have been assigned to other tenants. Cancel the device authorization first.', 'http_code' => 400, 'description' => '产品下存在已被授权给其他租户的设备,请先取消设备的授权'], + ['code' => 'iot.device.PropertyInVersionsNotFoundInItems', 'message' => 'Property in Versions parameter is not found in Items parameter.', 'http_code' => 400, 'description' => 'Versions参数中的属性未在Items参数中指定。'], + ['code' => 'iot.device.PropertyLabelCountExceed', 'message' => 'The number of property tags exceeds 100.', 'http_code' => 400, 'description' => '设备属性标签数量超过100限制。'], + ['code' => 'iot.device.PropertyLabelNotJsonFormat', 'message' => 'The property tag is not in the JSON format.', 'http_code' => 400, 'description' => '设备属性标签不是json格式。'], + ['code' => 'iot.device.PropertyLabelStringSizeExceed', 'message' => 'The device property tag exceeds the length limit.', 'http_code' => 400, 'description' => '设备属性标签字符串大小超过限制。'], + ['code' => 'iot.device.PropertyLabelUpdateFailed', 'message' => 'The device property tag is not in the JSON format.', 'http_code' => 400, 'description' => '设备属性标签更新失败。'], + ['code' => 'iot.device.PushThingConfigFailed', 'message' => 'An error occurred while pushing the device configuration.', 'http_code' => 400, 'description' => '推送物配置失败。'], + ['code' => 'iot.device.PushThingConfigFrequently', 'message' => 'The TSL configurations are pushed too frequently.', 'http_code' => 400, 'description' => '配置下发过于频繁,请在{}后重试'], + ['code' => 'iot.device.PushThingSwitchClosed', 'message' => 'The specified pushing feature has not been enabled.', 'http_code' => 400, 'description' => '推送物开关未打开。'], + ['code' => 'iot.device.PushThingTooFrequently', 'message' => 'Wait for the changes to take effect before you configure the device pushing settings again.', 'http_code' => 400, 'description' => '推送物配置过于频繁。'], + ['code' => 'iot.device.QueryAppliedDeviceActionError', 'message' => 'An error occurred while querying the devices by using multiple pages.', 'http_code' => 400, 'description' => '分页获取申请的设备列表失败。'], + ['code' => 'iot.device.QueryApplyInfoFailed', 'message' => 'An error occurred while querying the batch information.', 'http_code' => 400, 'description' => '查询批次信息失败'], + ['code' => 'iot.device.QueryBatchApplyDeviceListActionError', 'message' => 'An error occurred while retrieving the certificates for multiple devices.', 'http_code' => 400, 'description' => '获取批次设备列表失败。'], + ['code' => 'iot.device.QueryBatchRegisterDeviceCertStatusFailed', 'message' => 'An error occurred while querying the certificates of registered devices.', 'http_code' => 400, 'description' => '查看批量注册设备证书状态失败。'], + ['code' => 'iot.device.QueryBatchRegisterDeviceStatusFailed', 'message' => 'An error occurred while querying the status of registered devices.', 'http_code' => 400, 'description' => '查看批量注册设备状态失败。'], + ['code' => 'iot.device.QueryChannelConfigError', 'message' => 'An error occurred while querying the sub-device channel.', 'http_code' => 400, 'description' => '查询子设备通道失败。'], + ['code' => 'iot.device.QueryDeviceApplyActionError', 'message' => 'An error occurred while querying the device application.', 'http_code' => 400, 'description' => '查询设备申请单信息出错。'], + ['code' => 'iot.device.QueryDeviceAttrDataHistoryFailed', 'message' => 'An error occurred while querying the historical properties.', 'http_code' => 400, 'description' => '获取设备属性数据历史记录失败。'], + ['code' => 'iot.device.QueryDeviceAttrStatusFailed', 'message' => 'An error occurred while querying the status of the device property.', 'http_code' => 400, 'description' => '获取设备属性状态信息失败。'], + ['code' => 'iot.device.QueryDeviceBatchInfoActionError', 'message' => 'An error occurred while querying batch information.', 'http_code' => 400, 'description' => '获取批次详情失败。'], + ['code' => 'iot.device.QueryDeviceBatchListActionError', 'message' => 'An error occurred while querying the batches.', 'http_code' => 400, 'description' => '分页获取批次列表失败。'], + ['code' => 'iot.device.QueryDeviceConnectionConfigError', 'message' => 'An error occurred while querying the connection configuration information of the sub-device.', 'http_code' => 400, 'description' => '查询子设备的连接配置信息失败。'], + ['code' => 'iot.device.QueryDeviceDesiredPropertyFailed', 'message' => 'Failed to query device desired property.', 'http_code' => 400, 'description' => '获取设备期望值属性失败。'], + ['code' => 'iot.device.QueryDeviceEventHistoryFailed', 'message' => 'An error occurred while querying the device events.', 'http_code' => 400, 'description' => '获取设备事件调用记录失败。'], + ['code' => 'iot.device.QueryDeviceFileFailed', 'message' => 'Failed to obtain the uploaded device file.', 'http_code' => 400, 'description' => '获取设备上传的某一文件失败'], + ['code' => 'iot.device.QueryDeviceFileFailed', 'message' => 'Query device file information failed.', 'http_code' => 400, 'description' => '获取设备文件失败,请稍后重试。'], + ['code' => 'iot.device.QueryDeviceFileFailed', 'message' => 'Query device file information failed', 'http_code' => 400, 'description' => '获取设备文件失败,请稍后重试。'], + ['code' => 'iot.device.QueryDeviceFileStorageFailed', 'message' => 'Failed to query the storage information of the device file.', 'http_code' => 400, 'description' => '获取设备文件空间失败'], + ['code' => 'iot.device.QueryDeviceIpAndStatusActionError', 'message' => 'An error occurred while querying the device IP address and status.', 'http_code' => 400, 'description' => '获取设备ip和状态信息出错。'], + ['code' => 'iot.device.QueryDeviceListActionError', 'message' => 'An error occurred while querying the devices.', 'http_code' => 400, 'description' => '查询设备列表失败。'], + ['code' => 'iot.device.QueryDeviceListActionInvalidToken', 'message' => 'The nextToken parameter is invalid.', 'http_code' => 400, 'description' => '入参nextToken不合法。'], + ['code' => 'iot.device.QueryDeviceListOffsetLimit', 'message' => 'The offset exceeds the limit while querying devices. Set nextToken.', 'http_code' => 400, 'description' => '查询设备列表翻页过深,请使用深度翻页。'], + ['code' => 'iot.device.QueryDeviceListRateLimit', 'message' => 'The server is busy when you query devices. Try again.', 'http_code' => 400, 'description' => '查询设备列表繁忙,请重试。'], + ['code' => 'iot.device.QueryDeviceLogError', 'message' => 'An error occurred while querying the device logs.', 'http_code' => 400, 'description' => '查询设备日志失败。'], + ['code' => 'iot.device.QueryDeviceServiceHistoryFailed', 'message' => 'An error occurred while querying the calling records of the device service.', 'http_code' => 400, 'description' => '获取设备服务调用记录失败。'], + ['code' => 'iot.device.QueryDeviceSnapshotFailed', 'message' => 'An error occurred while querying the device snapshot.', 'http_code' => 400, 'description' => '获取设备数据快照失败。'], + ['code' => 'iot.device.QueryDeviceStatisticsFailed', 'message' => 'An error occurred while querying the device statistics.', 'http_code' => 400, 'description' => '查询设备统计信息失败。'], + ['code' => 'iot.device.QueryDeviceStatusFailed', 'message' => 'An error occurred while querying the device status.', 'http_code' => 400, 'description' => '查询设备状态信息失败。'], + ['code' => 'iot.device.QueryDeviceX509CertInfoError', 'message' => 'Failed to query the X.509 certificate of the device.', 'http_code' => 400, 'description' => '查询设备的X.509证书失败。'], + ['code' => 'iot.device.QueryDeviceX509CertInfoError', 'message' => 'Query ingress device X.509 certificate failed', 'http_code' => 400, 'description' => '查询设备的X.509证书失败。'], + ['code' => 'iot.device.QueryDeviceX509CertUrlError', 'message' => 'Failed to query the download URL of the X.509 certificate.', 'http_code' => 400, 'description' => '查询X.509证书下载链接失败。'], + ['code' => 'iot.device.QueryDeviceX509CertUrlError', 'message' => 'Query Ingx.509 certificate download link failed', 'http_code' => 400, 'description' => '查询X.509证书下载链接失败。'], + ['code' => 'iot.device.QueryFileStoreUsedCapacityFailed', 'message' => 'Failed to get the size of files uploaded by the device.', 'http_code' => 400, 'description' => '获取设备已上传文件空间大小失败'], + ['code' => 'iot.device.QueryProductDeviceNumFailed', 'message' => 'An error occurred while querying the number of devices under a product.', 'http_code' => 400, 'description' => '查询产品下设备数量失败。'], + ['code' => 'iot.device.QueryServerConfigError', 'message' => 'An error occurred while querying the sub-device channel.', 'http_code' => 400, 'description' => '查询通道配置失败。'], + ['code' => 'iot.device.QueryServerSubDeviceCountError', 'message' => 'An error occurred while obtaining the number of sub-devices associated with the channel.', 'http_code' => 400, 'description' => '获取通道的子设备数量失败'], + ['code' => 'iot.device.QuerySubDevicePageActionError', 'message' => 'An error occurred while querying the sub-devices by using multiple pages.', 'http_code' => 400, 'description' => '分页获取网关设备子设备列表失败。'], + ['code' => 'iot.device.QueryThingConfigFailed', 'message' => 'An error occurred while querying the device configuration.', 'http_code' => 400, 'description' => '查询物的配置失败。'], + ['code' => 'iot.device.QueryTopoRelationFailed', 'message' => 'An error occurred while querying topological relationships.', 'http_code' => 400, 'description' => '查询拓扑关系失败。'], + ['code' => 'iot.device.QueryVirtualDeviceError', 'message' => 'An error occurred while querying virtual device information.', 'http_code' => 400, 'description' => '获取虚拟设备在线状态失败。'], + ['code' => 'iot.device.RegionNotSupportDynamicGroup', 'message' => 'The region does not currently support the dynamic group feature.', 'http_code' => 400, 'description' => '该region目前不支持动态分组功能。'], + ['code' => 'iot.device.RegionNotSupportX509', 'message' => 'The X.509 certificates are unavailable in this region.', 'http_code' => 400, 'description' => '该region目前不支持X.509功能。'], + ['code' => 'iot.device.RegionNotSupportX509', 'message' => 'The region does not currently support the x509 feature', 'http_code' => 400, 'description' => '该region目前不支持x509功能'], + ['code' => 'iot.device.RegionNotSupportX509.', 'message' => 'The X.509 certificates are unavailable in this region.', 'http_code' => 400, 'description' => '该region目前不支持X.509功能。'], + ['code' => 'iot.device.RemoveNodeFailed', 'message' => 'Failed to delete the LoRa device.', 'http_code' => 400, 'description' => '删除lora设备失败。'], + ['code' => 'iot.device.RemoveTopoRelationFailed', 'message' => 'An error occurred while removing the topological relationship.', 'http_code' => 400, 'description' => '移除拓扑关系失败。'], + ['code' => 'iot.device.ResetDeviceFailed', 'message' => 'An error occurred while resetting the device.', 'http_code' => 400, 'description' => '重置设备失败。'], + ['code' => 'iot.device.SaveOrUpdateDevicePropertiesFailed', 'message' => 'An error occurred while adding or modifying the device property.', 'http_code' => 400, 'description' => '新增或者修改设备属性失败。'], + ['code' => 'iot.device.ServerConfigBindSubDevice', 'message' => 'The channel is bound to the sub-device.', 'http_code' => 400, 'description' => '通道绑定了子设备'], + ['code' => 'iot.device.SetDeviceDesiredPropertyFailed', 'message' => 'Failed to set the desired property value.', 'http_code' => 400, 'description' => '设置期望属性值失败'], + ['code' => 'iot.device.SetDevicePropertyFailed', 'message' => 'An error occurred while setting the device properties.', 'http_code' => 400, 'description' => '设置设备属性失败。'], + ['code' => 'iot.device.SetVirtualDevicePropertyFailed', 'message' => 'Failed to set the property for the virtual device.', 'http_code' => 400, 'description' => '设置虚拟设备属性失败。'], + ['code' => 'iot.device.SomeDeviceInvalid', 'message' => 'One or more devices are invalid.', 'http_code' => 400, 'description' => '存在非法的设备。'], + ['code' => 'iot.device.SubmitNodesAddingTaskFailed', 'message' => 'Failed to add multiple LoRa devices at the same time.', 'http_code' => 400, 'description' => '批量添加LoRa设备失败。'], + ['code' => 'iot.device.ThingIdListSizeExceed', 'message' => 'The size of the ThingId list exceeds the limit.', 'http_code' => 400, 'description' => 'ThingId列表大小超过限制。'], + ['code' => 'iot.device.ToBeforeForm', 'message' => 'The end time cannot be earlier than the start time.', 'http_code' => 400, 'description' => '结束时间小于起始时间。'], + ['code' => 'iot.device.TooManyDeviceIotIdPerRequest', 'message' => 'The number of devices you query exceeds the limit.', 'http_code' => 400, 'description' => '请求查询的设备ID数量超过最大限制。'], + ['code' => 'iot.device.TooManyDeviceNamesPerRequest', 'message' => 'The devices you query exceed the maximum number.', 'http_code' => 400, 'description' => '请求查询的设备名称数量超过最大限制。'], + ['code' => 'iot.device.TooManyDevicePropertiesPerTime', 'message' => 'The number of device properties exceeds the limit.', 'http_code' => 400, 'description' => '传入的属性个数超过限定值。'], + ['code' => 'iot.device.TooManyElementInArray', 'message' => 'The list contains too much data.', 'http_code' => 400, 'description' => '数组中的元素超过最大值'], + ['code' => 'iot.device.TooManyElementInArray', 'message' => 'The list size exceed the max number.', 'http_code' => 400, 'description' => '数组中的元素超出最大值,请修正后重试。'], + ['code' => 'iot.device.TopoRelationCountExceeded', 'message' => 'The number of topological relationships exceeds the limit.', 'http_code' => 400, 'description' => '拓扑关系数量过多。'], + ['code' => 'iot.device.TopoRelationNotFound', 'message' => 'The topological relationship does not exist.', 'http_code' => 400, 'description' => '拓扑关系不存在。'], + ['code' => 'iot.device.TopoRelationNotMatch', 'message' => 'The topological relationships does not match.', 'http_code' => 400, 'description' => '拓扑关系不匹配。'], + ['code' => 'iot.device.UnsupportedThingAuthentication', 'message' => 'The IoT authentication method is unsupported.', 'http_code' => 400, 'description' => '不支持的物认证方式。'], + ['code' => 'iot.device.UpdateChildDeviceConfigFailed', 'message' => 'An error occurred while updating the sub-device connection configuration.', 'http_code' => 400, 'description' => '更新子设备连接配置失败。'], + ['code' => 'iot.device.UpdateDeviceNicknameFailed', 'message' => 'Failed to modify the device alias.', 'http_code' => 400, 'description' => '修改设备别名失败。'], + ['code' => 'iot.device.UpdateProductDataForwardStatusFailed', 'message' => 'Failed to update the data forwarding status.', 'http_code' => 400, 'description' => '更新产品维度数据流转状态失败'], + ['code' => 'iot.device.UpdateThingConfigFailed', 'message' => 'Failed to update the device or product configurations.', 'http_code' => 400, 'description' => '更新物的配置失败。'], + ['code' => 'iot.device.VerifyDeviceFailed', 'message' => 'An error occurred while verifying the device.', 'http_code' => 400, 'description' => '验证设备失败。'], + ['code' => 'iot.device.VerifySignFailed', 'message' => 'Failed to verify the signature.', 'http_code' => 400, 'description' => '签名校验失败。'], + ['code' => 'iot.device.VerifyThingAuthenticationFailed', 'message' => 'An error occurred while verifying the device authentication type.', 'http_code' => 400, 'description' => '验证设备认证类型失败。'], + ['code' => 'iot.device.VirtualDeviceIsNotConnected', 'message' => 'The specified virtual device has not been started.', 'http_code' => 400, 'description' => '虚拟设备未启动。'], + ['code' => 'iot.deviceops.NoMessage', 'message' => 'No message.', 'http_code' => 400, 'description' => '没有消息。'], + ['code' => 'iot.deviceops.ParamCheckError', 'message' => 'Param check error.', 'http_code' => 400, 'description' => '参数校验错误。'], + ['code' => 'iot.deviceops.ReplayTaskIsFinished', 'message' => 'Replay task is finished.', 'http_code' => 400, 'description' => '回放任务已完成。'], + ['code' => 'iot.deviceops.ReplayTaskIsStopped', 'message' => 'Replay task is stopped.', 'http_code' => 400, 'description' => '回放任务已停止。'], + ['code' => 'iot.deviceops.ReplayTaskNotExist', 'message' => 'Replay task not exist.', 'http_code' => 400, 'description' => '回放任务不存在。'], + ['code' => 'iot.deviceops.RunningTaskExceedLimit', 'message' => 'Running task exceed limit.', 'http_code' => 400, 'description' => '运行的任务数超限。'], + ['code' => 'iot.deviceops.SystemError', 'message' => 'System error.', 'http_code' => 400, 'description' => '系统异常。'], + ['code' => 'iot.deviceprint.DeviceNotActived', 'message' => 'device not actived.', 'http_code' => 400, 'description' => '设备未激活。'], + ['code' => 'iot.deviceprint.DeviceNotActived', 'message' => 'device not actived', 'http_code' => 400, 'description' => '设备未激活'], + ['code' => 'iot.deviceprint.DeviceOffline', 'message' => 'device is offline.', 'http_code' => 400, 'description' => '设备离线。'], + ['code' => 'iot.deviceprint.DeviceOffline', 'message' => 'device is offline', 'http_code' => 400, 'description' => '设备离线'], + ['code' => 'iot.deviceprint.InvalidDevice', 'message' => 'invalid device to print.', 'http_code' => 400, 'description' => '无效的打印设备。'], + ['code' => 'iot.deviceprint.InvalidDevice', 'message' => 'invalid device to print', 'http_code' => 400, 'description' => '无效的打印设备'], + ['code' => 'iot.deviceprint.MismatchingPrintId', 'message' => 'mismatching device print id.', 'http_code' => 400, 'description' => '打印id不匹配。'], + ['code' => 'iot.deviceprint.MismatchingPrintId', 'message' => 'mismatching device print id', 'http_code' => 400, 'description' => '打印id不匹配'], + ['code' => 'iot.deviceprint.PrintingParamsError', 'message' => 'printing params error.', 'http_code' => 400, 'description' => '打印参数错误。'], + ['code' => 'iot.deviceprint.PrintingParamsError', 'message' => 'printing params error', 'http_code' => 400, 'description' => '打印参数错误'], + ['code' => 'iot.deviceprint.PrintingParamsRequired', 'message' => 'printing param required.', 'http_code' => 400, 'description' => '打印参数缺失。'], + ['code' => 'iot.deviceprint.PrintingParamsRequired', 'message' => 'printing param required', 'http_code' => 400, 'description' => '打印参数缺失'], + ['code' => 'iot.deviceprint.PrintingTemplateNotExists', 'message' => 'printing template not exists.', 'http_code' => 400, 'description' => '打印模版不存在。'], + ['code' => 'iot.deviceprint.PrintingTemplateNotExists', 'message' => 'printing template not exists', 'http_code' => 400, 'description' => '打印模版不存在'], + ['code' => 'iot.deviceprint.ProjectHasStopped', 'message' => 'project has stopped.', 'http_code' => 400, 'description' => '项目已停用。'], + ['code' => 'iot.deviceprint.ProjectHasStopped', 'message' => 'project has stopped', 'http_code' => 400, 'description' => '项目已停用'], + ['code' => 'iot.deviceprint.ProjectNotFound', 'message' => 'project not found.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.deviceprint.ProjectNotFound', 'message' => 'project not found', 'http_code' => 400, 'description' => '设备不存在'], + ['code' => 'iot.deviceprint.RequestLimit', 'message' => 'too much request.', 'http_code' => 400, 'description' => '请求被限流。'], + ['code' => 'iot.deviceprint.RequestLimit', 'message' => 'too much request', 'http_code' => 400, 'description' => '请求被限流'], + ['code' => 'iot.deviceprint.UnknownResponse', 'message' => 'unknown device print response.', 'http_code' => 400, 'description' => '未知的设备打印响应。'], + ['code' => 'iot.deviceprint.UnknownResponse', 'message' => 'unknown device print response', 'http_code' => 400, 'description' => '未知的设备打印响应'], + ['code' => 'iot.devicesearch.InvalidDeviceExportBySQLTaskId', 'message' => 'The task ID is invalid.', 'http_code' => 400, 'description' => 'taskId非法'], + ['code' => 'iot.devicesearch.InvalidSQLConditionError', 'message' => 'The SQL statement contains too many conditions.', 'http_code' => 400, 'description' => 'SQL的连接词个数超过限制。'], + ['code' => 'iot.devicesearch.InvalidSQLError', 'message' => 'The SQL statement is invalid.', 'http_code' => 400, 'description' => '不合法的SQL语句。'], + ['code' => 'iot.devicesearch.InvalidSQLFieldError', 'message' => 'The SQL statement contains invalid field names.', 'http_code' => 400, 'description' => 'SQL包含不合法的字段名。'], + ['code' => 'iot.devicesearch.InvalidSQLIdentfierError', 'message' => 'The TSL identifier is not configured.', 'http_code' => 400, 'description' => '物模型Identifier未配置。'], + ['code' => 'iot.devicesearch.InvalidSQLOffsetError', 'message' => 'The SQL offset is invalid.', 'http_code' => 400, 'description' => '不合法的SQL偏移量。'], + ['code' => 'iot.devicesearch.InvalidSQLOperatorTypeError', 'message' => 'The operator and data type in the SQL statement do not match.', 'http_code' => 400, 'description' => 'SQL运算符和数据类型不匹配。'], + ['code' => 'iot.devicesearch.InvalidSQLOrderError', 'message' => 'The SQL statement contains invalid ORDER BY conditions.', 'http_code' => 400, 'description' => 'SQL的排序规则错误。'], + ['code' => 'iot.devicesearch.InvalidSQLParamError', 'message' => 'The SQL syntax is unsupported.', 'http_code' => 400, 'description' => '不支持的SQL语法。'], + ['code' => 'iot.devicesearch.NoResultToExportError', 'message' => 'No devices are available.', 'http_code' => 400, 'description' => '没有符合要求的设备可供导出'], + ['code' => 'iot.devicespeech.DeviceNotActived', 'message' => 'device not actived.', 'http_code' => 400, 'description' => '设备未激活。'], + ['code' => 'iot.devicespeech.DeviceOffline', 'message' => 'device is offline.', 'http_code' => 400, 'description' => '设备离线。'], + ['code' => 'iot.devicespeech.InvalidAudioFormat', 'message' => 'invalid audio format.', 'http_code' => 400, 'description' => '无效的音频格式。'], + ['code' => 'iot.devicespeech.InvalidDevice', 'message' => 'invalid device to speech.', 'http_code' => 400, 'description' => '无效的播报设备。'], + ['code' => 'iot.devicespeech.InvalidDeviceId', 'message' => 'invalid iot device id.', 'http_code' => 400, 'description' => '无效的设备ID。'], + ['code' => 'iot.devicespeech.InvalidDeviceId', 'message' => 'invalid iot device id', 'http_code' => 400, 'description' => '无效的设备ID'], + ['code' => 'iot.devicespeech.InvalidLicenseDevice', 'message' => 'invalid speech license device.', 'http_code' => 400, 'description' => '无效的设备。'], + ['code' => 'iot.devicespeech.InvalidProductKeyAndDeviceName', 'message' => 'invalid productKey and deviceName.', 'http_code' => 400, 'description' => '无效的设备KEY以及名称。'], + ['code' => 'iot.devicespeech.InvalidProductKeyAndDeviceName', 'message' => 'invalid productKey and deviceName', 'http_code' => 400, 'description' => '无效的设备KEY以及名称'], + ['code' => 'iot.devicespeech.InvalidSpeechId', 'message' => 'invalid device speech id.', 'http_code' => 400, 'description' => '无效的设备播报ID。'], + ['code' => 'iot.devicespeech.ProjectNotFound', 'message' => 'project not found.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.devicespeech.RequestLimit', 'message' => 'too much request.', 'http_code' => 400, 'description' => '请求被限流。'], + ['code' => 'iot.devicespeech.SpeechModelNotExist', 'message' => 'speech model not exist.', 'http_code' => 400, 'description' => '语料不存在。'], + ['code' => 'iot.devicespeech.ThingModelNotDefine', 'message' => 'thing model not define.', 'http_code' => 400, 'description' => '物模型未定义。'], + ['code' => 'iot.devicespeech.UnknownError', 'message' => 'unknown device speech error.', 'http_code' => 400, 'description' => '未知设备播报错误。'], + ['code' => 'Iot.digitaltwin.ancestorNodeNotExist', 'message' => 'The ancestor node does not exist.', 'http_code' => 400, 'description' => '该节点祖先节点不存在,请核实。'], + ['code' => 'Iot.digitaltwin.commandExecuteTimeout', 'message' => 'Execution timed out.', 'http_code' => 400, 'description' => '请求执行超时,请稍后重试。'], + ['code' => 'Iot.digitaltwin.commandRequestReject', 'message' => 'The request was rejected.', 'http_code' => 400, 'description' => '该请求不被允许。'], + ['code' => 'iot.digitaltwin.commandShortCircuited', 'message' => 'Short circuited', 'http_code' => 400, 'description' => '短路'], + ['code' => 'Iot.digitaltwin.componentFormatError', 'message' => 'Component format error.', 'http_code' => 400, 'description' => '格式错误,非json。'], + ['code' => 'Iot.digitaltwin.componentNumberOverLimit', 'message' => 'The number of components has exceeded the limit.', 'http_code' => 400, 'description' => '组件数量超过限制。'], + ['code' => 'Iot.digitaltwin.componentParamsError', 'message' => 'Component params error: %s.', 'http_code' => 400, 'description' => '不符合组件规范:%s'], + ['code' => 'Iot.digitaltwin.createDeviceFailed', 'message' => 'Failed to create the device.', 'http_code' => 400, 'description' => '创建孪生体节点失败,请重试。'], + ['code' => 'Iot.digitaltwin.createDeviceNodeFailed', 'message' => 'Create device failed. Try again.', 'http_code' => 400, 'description' => '创建设备失败,请重试。'], + ['code' => 'Iot.digitaltwin.createNodeFailed', 'message' => 'Failed to create GDB node.', 'http_code' => 400, 'description' => '创建孪生体节点失败,请重试。'], + ['code' => 'Iot.digitaltwin.DataSourceItemNotExists', 'message' => 'The data source item does not exist.', 'http_code' => 400, 'description' => '数据源子项不存在。'], + ['code' => 'Iot.digitaltwin.DataSourceNotExists', 'message' => 'The data source does not exist.', 'http_code' => 400, 'description' => '数据源不存在。'], + ['code' => 'Iot.digitaltwin.DataSourceOverLimit', 'message' => 'The number of data sources has exceeded the limit.', 'http_code' => 400, 'description' => '数据目的下的数据源数量超出限制。'], + ['code' => 'Iot.digitaltwin.dataTableConfigError', 'message' => 'A data table can only be related with one mapping configuration.', 'http_code' => 400, 'description' => '数据表只能关联一个孪生映射配置。'], + ['code' => 'Iot.digitaltwin.decryptError', 'message' => 'Decrypt error.', 'http_code' => 400, 'description' => '解密失败。'], + ['code' => 'Iot.digitaltwin.defaultProductError', 'message' => 'The default product is incorrect.', 'http_code' => 400, 'description' => '请求处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.deletedNodeNumberOverMax', 'message' => 'The deleted sub node exceeds the maximum number.', 'http_code' => 400, 'description' => '删除节点个数超出最大值。'], + ['code' => 'Iot.digitaltwin.destConfigCanNotNull', 'message' => 'Dest config cannot be null.', 'http_code' => 400, 'description' => '目标节点配置不能为空,请核实。'], + ['code' => 'Iot.digitaltwin.DeviceNotActivated', 'message' => 'Device is not activated.', 'http_code' => 400, 'description' => '设备未激活。'], + ['code' => 'Iot.digitaltwin.DeviceNotFound', 'message' => 'Device is not found.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'Iot.digitaltwin.DeviceOffline', 'message' => 'Device is offline.', 'http_code' => 400, 'description' => '设备不在线。'], + ['code' => 'Iot.digitaltwin.digestImageNotExist', 'message' => 'the digest image file is not exist in the oss bucket.', 'http_code' => 400, 'description' => '摘要图片未上传,请稍后重试。'], + ['code' => 'Iot.digitaltwin.DTInstanceInvalidThingType', 'message' => 'The digital twin operation is not supported.', 'http_code' => 400, 'description' => '孪生数据类型不支持使用此接口访问。'], + ['code' => 'Iot.digitaltwin.dtInstanceNumberOverLimit', 'message' => 'The number of digital twin instances is over the limit.', 'http_code' => 400, 'description' => '孪生空间数量超出限制。'], + ['code' => 'Iot.digitaltwin.DTModelInvalidName', 'message' => 'The digital twin model name is invalid.', 'http_code' => 400, 'description' => '模型名称不合法,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelInvalidPath', 'message' => 'The digital twin model path is invalid.', 'http_code' => 400, 'description' => '创建模型path字段不合法,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelModelIdExisted', 'message' => 'The digital twin model ID already exists.', 'http_code' => 400, 'description' => '模型ID已存在,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelModelIdNotFound', 'message' => 'The digital twin model ID is not found.', 'http_code' => 400, 'description' => '物模不存在,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelNameDuplicated', 'message' => 'The digital twin model name is duplicated.', 'http_code' => 400, 'description' => '模型名称重复,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelRelationExisted', 'message' => 'The digital twin model relation already exists.', 'http_code' => 400, 'description' => '物模关系已存在,不能重复添加。'], + ['code' => 'Iot.digitaltwin.DTModelRuleCountOverLimited', 'message' => 'The maximum number of digital twin model rule is exceeded.', 'http_code' => 400, 'description' => '物模型规则总数超过限制,请检查限制文档。'], + ['code' => 'Iot.digitalTwin.DTModelRuleDependencyExisted', 'message' => 'The digital twin model function contains dependency rules.', 'http_code' => 400, 'description' => 'DTModel中的功能定义存在依赖的规则,清先删除规则。'], + ['code' => 'iot.digitaltwin.DTModelRuleDependencyExisted', 'message' => 'This digital twin model function contains dependency rules.', 'http_code' => 400, 'description' => 'DTModel中的功能定义存在依赖的规则,清先删除规则。'], + ['code' => 'Iot.digitaltwin.DTModelRuleDuplicatedIdentifiers', 'message' => 'The input and output identifier of the digital twin model rule is duplicated.', 'http_code' => 400, 'description' => '物模型规则中的输入输出参数功能定义标识符存在重复。'], + ['code' => 'Iot.digitaltwin.DTModelRuleDuplicatedModelName', 'message' => 'The digital twin model rule name is duplicated.', 'http_code' => 400, 'description' => '运算规则名称重复,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelRuleDuplicatedVariables', 'message' => 'The digital twin model rule variable is duplicated.', 'http_code' => 400, 'description' => '物模型规则中的输入输出参数标识存在重复。'], + ['code' => 'Iot.digitaltwin.DTModelRuleIdNotExisted', 'message' => 'The digital twin model rule ID does not exist.', 'http_code' => 400, 'description' => '运算规则不存在,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelRuleInputCountOverLimit', 'message' => 'The maximum number of input thing model rules is exceeded.', 'http_code' => 400, 'description' => '规则入参总数超过限制'], + ['code' => 'Iot.digitaltwin.DTModelRuleInputIdentifierNotExisted', 'message' => 'The digital twin model rule input identifier does not exist.', 'http_code' => 400, 'description' => '物模型规则中入参标识符不存在。'], + ['code' => 'Iot.digitaltwin.DTModelRuleInputReferCountOverLimit', 'message' => 'The thing model rule input parameter reference count exceeds the limit.', 'http_code' => 400, 'description' => '规则入参功能定义被引用次数超过限制'], + ['code' => 'Iot.digitaltwin.DTModelRuleInvalidDataType', 'message' => 'The digital twin model rule is data type is invalid.', 'http_code' => 400, 'description' => '物模型规则中的输入输出参数数据类型不合法。'], + ['code' => 'Iot.digitaltwin.DTModelRuleInvalidInputModelId', 'message' => 'The input parameter model ID in the digital twin model rule is invalid.', 'http_code' => 400, 'description' => '运算规则中的输入参数模型Id不合法,请核实。'], + ['code' => 'Iot.digitaltwin.DTModelRuleParamError', 'message' => 'The thing model rule parameter is invalid. Details: %s', 'http_code' => 400, 'description' => '规则存在不合法参数'], + ['code' => 'Iot.digitaltwin.DTModelRuleSyntaxError', 'message' => 'A rule expression syntax error occurred: %s.', 'http_code' => 400, 'description' => '规则表达式语法错误:%s'], + ['code' => 'iot.digitaltwin.DTTemplatedIdNotExisted', 'message' => 'The digital twin template ID does not exist.', 'http_code' => 400, 'description' => '孪生模板不存在,请核实。'], + ['code' => 'Iot.digitaltwin.DTTemplatedInvalidName', 'message' => 'The digital twin template name is invalid.', 'http_code' => 400, 'description' => '孪生模板名称不合法,请核实。'], + ['code' => 'Iot.digitaltwin.DTTemplatedNameDuplicated', 'message' => 'The digital twin template name is duplicated.', 'http_code' => 400, 'description' => '孪生模板名称重复,请核实。'], + ['code' => 'Iot.digitaltwin.DTTemplateNodesCountOverLimit', 'message' => 'The maximum number of digital twin template node is exceeded.', 'http_code' => 400, 'description' => '孪生模板节点数量超过限制'], + ['code' => 'Iot.digitaltwin.duplicateFileName', 'message' => 'there are the same file name in the digital instance.', 'http_code' => 400, 'description' => '存在同名文件,请核对重试。'], + ['code' => 'Iot.digitaltwin.existSceneInDtInstance', 'message' => 'Exist scene, can not delete.', 'http_code' => 400, 'description' => '存在场景,无法删除。'], + ['code' => 'Iot.digitaltwin.existSceneInDtInstance', 'message' => 'Exist scene can not delete.', 'http_code' => 400, 'description' => '存在场景,无法删除。'], + ['code' => 'Iot.digitaltwin.expressionError', 'message' => 'Expression error: %s', 'http_code' => 400, 'description' => '表达式错误:%s'], + ['code' => 'Iot.digitaltwin.expressionParamDataTypeError', 'message' => 'The data type of the expression parameter is invalid.', 'http_code' => 400, 'description' => '运算规则表达式参数数据类型错误,请核实。'], + ['code' => 'Iot.digitaltwin.expressionParseError', 'message' => 'An expression parsing error occurred.', 'http_code' => 400, 'description' => '运算规则表达式解析失败,请核实。'], + ['code' => 'Iot.digitaltwin.expressionResultDataTypeError', 'message' => 'The expression result data type is invalid.', 'http_code' => 400, 'description' => '运算规则表达式结果数据类型错误。'], + ['code' => 'Iot.digitaltwin.expressionResultNotBool', 'message' => 'Expression result is not bool', 'http_code' => 400, 'description' => '表达式结果应为布尔类型'], + ['code' => 'Iot.digitaltwin.expressionReturnInfinity', 'message' => 'The expression result is infinite.', 'http_code' => 400, 'description' => '表达式结果返回Infinity'], + ['code' => 'Iot.digitaltwin.expressionReturnNaN', 'message' => 'The expression result returned NaN.', 'http_code' => 400, 'description' => '表达式结果返回NaN'], + ['code' => 'Iot.digitaltwin.expressionReturnNull', 'message' => 'The expression result is null.', 'http_code' => 400, 'description' => '运算规则表达式结果不能为空。'], + ['code' => 'Iot.digitaltwin.generateMappingIdFailed', 'message' => 'Generating mappingId failed.', 'http_code' => 400, 'description' => '创建数据映射错误,请重试。'], + ['code' => 'Iot.digitaltwin.generateSceneIdFailed', 'message' => 'Generate sceneId failed.', 'http_code' => 400, 'description' => '生成场景id失败'], + ['code' => 'Iot.digitaltwin.getLockFailed', 'message' => 'Failed to get the lock.', 'http_code' => 400, 'description' => '存在并发任务,请稍后重试。'], + ['code' => 'Iot.digitaltwin.innerServiceError', 'message' => 'Querying remote service failed.', 'http_code' => 400, 'description' => '请求处理失败,请稍后重试。'], + ['code' => 'Iot.digitaltwin.instanceAuthenError', 'message' => 'A digital twin instance authentication error occurred.', 'http_code' => 400, 'description' => '该孪生体无访问权限,请核实。'], + ['code' => 'Iot.digitaltwin.instanceCreateFailed', 'message' => 'The create operation failed.', 'http_code' => 400, 'description' => '请求处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.instanceHasNoTheNode', 'message' => 'The nodeId does not belong to the instance.', 'http_code' => 400, 'description' => '请求节点不属于该实例体,请核实。'], + ['code' => 'Iot.digitaltwin.instanceIsProcessing', 'message' => 'The instance has concurrent tasks.', 'http_code' => 400, 'description' => '该孪生体存在处理中任务,请稍后重试。'], + ['code' => 'Iot.digitaltwin.instanceIsProcessing', 'message' => 'get the instance lock failed', 'http_code' => 400, 'description' => '存在并行任务,请稍后重试。'], + ['code' => 'Iot.digitaltwin.instanceNameExist', 'message' => 'The instance name already exists.', 'http_code' => 400, 'description' => '名称已存在'], + ['code' => 'Iot.digitaltwin.instanceNameRepeat', 'message' => 'The digital twin instance name is duplicated.', 'http_code' => 400, 'description' => '孪生体名称重复'], + ['code' => 'Iot.digitaltwin.instanceNameRepeat', 'message' => 'The instance name is duplicated.', 'http_code' => 400, 'description' => '孪生实例名称重复'], + ['code' => 'Iot.digitaltwin.instanceNodeAuthenError', 'message' => 'A digital twin node authentication error occurred.', 'http_code' => 400, 'description' => '该孪生体节点无访问权限,请核实。'], + ['code' => 'Iot.digitaltwin.instanceNodeNotExist', 'message' => 'The node iotId does not exist.', 'http_code' => 400, 'description' => '实例体节点不存在。'], + ['code' => 'Iot.digitaltwin.instanceNodeNotExist', 'message' => 'The nodeId is not exist.', 'http_code' => 400, 'description' => '节点不存在。'], + ['code' => 'Iot.digitaltwin.instanceNodeNotInInstance', 'message' => 'Digital twin iotId is not in the digital twin intance.', 'http_code' => 400, 'description' => '请求节点不属于该孪生体,请核实。'], + ['code' => 'Iot.digitaltwin.instanceNodeNumberOverMax', 'message' => 'The node number exceeds the maximum number.', 'http_code' => 400, 'description' => '孪生体节点个数超出最大值。'], + ['code' => 'Iot.digitaltwin.instanceNodesIsolated', 'message' => 'The nodeId added to the template is isolated.', 'http_code' => 400, 'description' => '孪生体节点存在孤立节点,请核实。'], + ['code' => 'Iot.digitaltwin.instanceNotFound', 'message' => 'The instance does not exist.', 'http_code' => 400, 'description' => '孪生体不存在,请核实。'], + ['code' => 'Iot.digitaltwin.instanceNumberOverMax', 'message' => 'The node number exceeds the maximum value.', 'http_code' => 400, 'description' => '孪生体节点个数超出最大值。'], + ['code' => 'Iot.digitaltwin.instanceOverMaxDepth', 'message' => 'The instance depth exceeds the maximum value.', 'http_code' => 400, 'description' => '孪生体层级超出最大值。'], + ['code' => 'Iot.digitaltwin.instanceProcessingTaskNotExist', 'message' => 'The instance task does not exist.', 'http_code' => 400, 'description' => '孪生体任务不存在,请核实。'], + ['code' => 'Iot.digitaltwin.latitudeError', 'message' => 'Latitude error.', 'http_code' => 400, 'description' => '纬度错误'], + ['code' => 'Iot.digitaltwin.longitudeError', 'message' => 'Longitude error.', 'http_code' => 400, 'description' => '经度错误'], + ['code' => 'Iot.digitaltwin.longitudeError', 'message' => 'Longitude error', 'http_code' => 400, 'description' => '经度错误'], + ['code' => 'Iot.digitaltwin.mappingConfigAuthenError', 'message' => 'An error occurred while verifying mapping config.', 'http_code' => 400, 'description' => '该映射配置无访问权限,请核实。'], + ['code' => 'Iot.digitaltwin.mappingConfigExceedAmountLimit', 'message' => 'The number of mapping config exceeds the limit.', 'http_code' => 400, 'description' => '映射配置超出数量限制。'], + ['code' => 'Iot.digitaltwin.mappingConfigIsLocked', 'message' => 'The mapping config is locked.', 'http_code' => 400, 'description' => '映射配置已锁定,请稍后重试。'], + ['code' => 'Iot.digitaltwin.mappingConfigNotFound', 'message' => 'Mapping config is not found.', 'http_code' => 400, 'description' => '数据映射配置不存在,请核实。'], + ['code' => 'Iot.digitaltwin.mappingConfigParseError', 'message' => 'A mapping config parsing exception occurred.', 'http_code' => 400, 'description' => '映射配置解析失败,请核实。'], + ['code' => 'Iot.digitaltwin.mappingDestConfigFormatError', 'message' => 'Mapping dest config format is invalid.', 'http_code' => 400, 'description' => '映射配置格式错误,请核实。'], + ['code' => 'Iot.digitaltwin.mappingDestConfigParseError', 'message' => 'An error occurred while parsing mapping dest config.', 'http_code' => 400, 'description' => '目标数据映射解析失败,请核实。'], + ['code' => 'Iot.digitaltwin.mappingDestConfigSizeOverLimit', 'message' => 'Mapping dest config size exceeds the limit.', 'http_code' => 400, 'description' => '目标数据映射配置超出最大值。'], + ['code' => 'IoT.digitaltwin.mappingFileIsParsing', 'message' => 'The mapping file is being parsed.', 'http_code' => 400, 'description' => '映射文件正在解析。'], + ['code' => 'Iot.digitaltwin.mappingIdAlreadyExist', 'message' => 'The MappingId already exists.', 'http_code' => 400, 'description' => '数据映射配置处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.mappingIdError', 'message' => 'The MappingId is invalid.', 'http_code' => 400, 'description' => '创建数据映射失败,请重试。'], + ['code' => 'Iot.digitaltwin.mappingNameAlreadyExist', 'message' => 'The mapping name already exists.', 'http_code' => 400, 'description' => '数据映射名称重复,请核实。'], + ['code' => 'Iot.digitaltwin.mappingNameOverLength', 'message' => 'Mapping name length exceeds the limit.', 'http_code' => 400, 'description' => '映射名称超长,请核实。'], + ['code' => 'Iot.digitaltwin.mappingSourceTypeError', 'message' => 'The mapping source type is invalid.', 'http_code' => 400, 'description' => '映射源类型错误,请核实。'], + ['code' => 'Iot.digitaltwin.mappingSourceTypeError', 'message' => 'Mapping source type error.', 'http_code' => 400, 'description' => '数据映射源类型错误'], + ['code' => 'Iot.digitaltwin.modelDepthOverLimit', 'message' => 'The model depth has exceeded the limit.', 'http_code' => 400, 'description' => '模型深度超出限制。'], + ['code' => 'Iot.digitaltwin.modelNodeNumberOverLimit', 'message' => 'The number of digital twin nodes has exceeded the limit.', 'http_code' => 400, 'description' => '模型节点总数超出限制。'], + ['code' => 'Iot.digitaltwin.nameAlreadyExist', 'message' => 'Name already exists.', 'http_code' => 400, 'description' => '名称已存在。'], + ['code' => 'Iot.digitaltwin.nodeIdIsBlank', 'message' => 'The nodeId is blank.', 'http_code' => 400, 'description' => '孪生节点ID不能为空,请核实。'], + ['code' => 'Iot.digitaltwin.nodeIdRefInScene', 'message' => 'Node or subNode is referenced in scene.', 'http_code' => 400, 'description' => '当前节点或子节点在场景组件中被引用,无法删除。'], + ['code' => 'Iot.digitaltwin.nodeNameRepeat', 'message' => 'The node name is the same as another sibling node.', 'http_code' => 400, 'description' => '节点名称与其兄弟节点名称重复,请核实。'], + ['code' => 'Iot.digitaltwin.nodeRelationNotExist', 'message' => 'The node relation does not exist.', 'http_code' => 400, 'description' => '孪生体父子节点关系错误,请核实。'], + ['code' => 'Iot.digitaltwin.nodeRelationParameterError', 'message' => 'The node relation parameter is invalid.', 'http_code' => 400, 'description' => '孪生体节点关系错误,请核实。'], + ['code' => 'Iot.digitaltwin.nodeRuleInputParameterError', 'message' => 'The node rule input parameter is not sub node.', 'http_code' => 400, 'description' => '运算规则中输入参数错误,请核实。'], + ['code' => 'Iot.digitaltwin.nodeRuleOutputParameterError', 'message' => 'The node rule output parameter is invalid.', 'http_code' => 400, 'description' => '运算规则中输出参数错误,请核实。'], + ['code' => 'Iot.digitaltwin.nodeTypeError', 'message' => 'Node type must be digital twin.', 'http_code' => 400, 'description' => '节点类型应为数字孪生'], + ['code' => 'Iot.digitaltwin.notSupportApiDataSource', 'message' => 'APIs cannot be used as data sources.', 'http_code' => 400, 'description' => '该版本不支持api数据源。'], + ['code' => 'Iot.digitaltwin.notSupportApiDataSource', 'message' => 'API data sources are not supported.', 'http_code' => 400, 'description' => '该版本不支持api数据源。'], + ['code' => 'Iot.digitaltwin.notSupportDataPipelineDataSource', 'message' => 'Data pipelines cannot be used as data sources.', 'http_code' => 400, 'description' => '该版本不支持数据管道数据源。'], + ['code' => 'Iot.digitaltwin.notSupportDataTableDataSource', 'message' => 'Data tables cannot be used as data sources.', 'http_code' => 400, 'description' => '该版本不支持数据表数据源。'], + ['code' => 'Iot.digitaltwin.notSupportResourceFormat', 'message' => 'Resources in the current format is not supported.', 'http_code' => 400, 'description' => '不支持当前格式的资源。'], + ['code' => 'Iot.digitaltwin.notSupportRuleCalculation', 'message' => 'Rule-based calculation is not supported.', 'http_code' => 400, 'description' => '该版本不支持规则计算。'], + ['code' => 'Iot.digitaltwin.notSupportSceneShare', 'message' => 'Scene sharing is not supported.', 'http_code' => 400, 'description' => '该规格不支持场景分享。'], + ['code' => 'Iot.digitaltwin.notSupportSystemResource', 'message' => 'System resources are not supported.', 'http_code' => 400, 'description' => '该规格不支持官方资源库。'], + ['code' => 'Iot.digitaltwin.notSupportUserDefinedTopicDataSource', 'message' => 'Custom topics cannot be used as data sources.', 'http_code' => 400, 'description' => '该版本不支持用户自定义topic数据源。'], + ['code' => 'Iot.digitaltwin.numberOverLimit', 'message' => 'number over limit', 'http_code' => 400, 'description' => '数量超过规格限制'], + ['code' => 'Iot.digitaltwin.overFileNumberLimit', 'message' => 'the number of the resource file is over the limit.', 'http_code' => 400, 'description' => '资源文件个数超限,请核实。'], + ['code' => 'Iot.digitaltwin.passwordError', 'message' => 'Password error.', 'http_code' => 400, 'description' => '密码错误。'], + ['code' => 'Iot.digitaltwin.productAuthticFailed', 'message' => 'Product authentic failed.', 'http_code' => 400, 'description' => '产品鉴权失败。'], + ['code' => 'Iot.digitaltwin.ProductInformationError', 'message' => 'The request parameter is invalid.', 'http_code' => 400, 'description' => '请求参数错误,请重试。'], + ['code' => 'Iot.digitaltwin.RequestParamError', 'message' => 'Request parameter error.', 'http_code' => 400, 'description' => '请求参数错误,请重试。'], + ['code' => 'Iot.digitaltwin.resourceFileNotExist', 'message' => 'the resource file is not exist in the oss bucket.', 'http_code' => 400, 'description' => '资源文件未上传OSS,请核对后重试.'], + ['code' => 'Iot.digitaltwin.resourceNumberOverLimit', 'message' => 'The number of resources has exceeded the limit.', 'http_code' => 400, 'description' => '资源数量超出规格限制。'], + ['code' => 'Iot.digitaltwin.rootNodeNotAllowDelete', 'message' => 'The root node cannot be deleted.', 'http_code' => 400, 'description' => '不能删除根节点。'], + ['code' => 'Iot.digitaltwin.rootNodeNotAllowRename', 'message' => 'The root node cannot be renamed.', 'http_code' => 400, 'description' => '根节点不能重命名。'], + ['code' => 'Iot.digitalTwin.rpcInvokeFailed', 'message' => 'An RPC invoking error occurred.', 'http_code' => 400, 'description' => '请求处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.rpcInvokeTimeout', 'message' => 'Invoking RPC timed out.', 'http_code' => 400, 'description' => '请求处理超时,请稍后重试。'], + ['code' => 'Iot.digitaltwin.ruleConfigCreateError', 'message' => 'An exception occurred when creating a rule config.', 'http_code' => 400, 'description' => '创建运算规则失败,请重试。'], + ['code' => 'Iot.digitaltwin.ruleConfigFileFormatError', 'message' => 'The CSV file format is invalid.', 'http_code' => 400, 'description' => '文件格式无效,请核实。'], + ['code' => 'Iot.digitaltwin.RuleConfigIsLocked', 'message' => 'The rule config is locked.', 'http_code' => 400, 'description' => '运算规则配置被锁定。'], + ['code' => 'Iot.digitaltwin.RuleConfigIsRunning', 'message' => 'The rule import task is running. Try again later.', 'http_code' => 400, 'description' => '规则导入任务正在运行,请稍后重试。'], + ['code' => 'Iot.digitaltwin.ruleConfigNotFound', 'message' => 'The rule config is not found.', 'http_code' => 400, 'description' => '运算规则配置不存在,请核实。'], + ['code' => 'Iot.digitaltwin.ruleConfigParseError', 'message' => 'An exception occurred when parsing the rule config.', 'http_code' => 400, 'description' => '运算规则解析失败,请重试。'], + ['code' => 'Iot.digitaltwin.rulengInvokeError', 'message' => 'An error occurred while invoking Ruleng.', 'http_code' => 400, 'description' => '业务请求处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.sceneConfigAuthenError', 'message' => 'Scene config authentication error.', 'http_code' => 400, 'description' => '场景鉴权失败'], + ['code' => 'Iot.digitaltwin.sceneIdShouldNull', 'message' => 'SceneId should be null.', 'http_code' => 400, 'description' => '场景id应为空'], + ['code' => 'Iot.digitaltwin.sceneNameAlreadyExist', 'message' => 'Scene name already exist.', 'http_code' => 400, 'description' => '场景名称已存在'], + ['code' => 'Iot.digitaltwin.sceneNameRepeat', 'message' => 'Scene name repeat.', 'http_code' => 400, 'description' => '场景名称重复'], + ['code' => 'Iot.digitaltwin.sceneNotFound', 'message' => 'Scene not found.', 'http_code' => 400, 'description' => '场景不存在'], + ['code' => 'Iot.digitaltwin.sceneNumberLimit', 'message' => 'Scene number limit.', 'http_code' => 400, 'description' => '场景超过数量限制'], + ['code' => 'Iot.digitaltwin.sceneNumberOverLimit', 'message' => 'The number of scenes is over limit.', 'http_code' => 400, 'description' => '场景数量超出限制。'], + ['code' => 'Iot.digitaltwin.sceneSharingNotFound', 'message' => 'Scene sharing not found.', 'http_code' => 400, 'description' => '场景未分享。'], + ['code' => 'Iot.digitaltwin.SignatureError', 'message' => 'Signature error.', 'http_code' => 400, 'description' => '签名错误。'], + ['code' => 'Iot.digitaltwin.subModelIdRepeat', 'message' => 'The parent node has the same property as the sub node.', 'http_code' => 400, 'description' => '父节点具有相同的属性子节点'], + ['code' => 'Iot.digitaltwin.subNodeRepeat', 'message' => 'The sub nodeId is duplicated.', 'http_code' => 400, 'description' => '孪生体节点存在重复,请核实。'], + ['code' => 'Iot.digitaltwin.templateHasRefer', 'message' => 'The template has an instance referenced.', 'http_code' => 400, 'description' => '模板被孪生体引用,该操作不允许'], + ['code' => 'Iot.digitaltwin.templateNodeHasRefer', 'message' => 'The template node has a reference.', 'http_code' => 400, 'description' => '模板节点被孪生体引用,该操作不允许。'], + ['code' => 'Iot.digitaltwin.templateNotExist', 'message' => 'The template does not exist.', 'http_code' => 400, 'description' => '孪生模板不存在,请核实。'], + ['code' => 'Iot.digitaltwin.templateServiceError', 'message' => 'Failed to invoke template service.', 'http_code' => 400, 'description' => '孪生模板处理失败,请重试。'], + ['code' => 'Iot.digitaltwin.TemplateUseModeError', 'message' => 'The template mode is invalid.', 'http_code' => 400, 'description' => '请求参数中模板使用模式错误。'], + ['code' => 'Iot.digitaltwin.theTaskNotExist', 'message' => 'The instance task does not exist.', 'http_code' => 400, 'description' => '孪生体任务不存在。'], + ['code' => 'Iot.digitaltwin.tooManyRequest', 'message' => 'Too many requests.', 'http_code' => 400, 'description' => '请求被限流。'], + ['code' => 'iot.edge.InstanceNotExist', 'message' => 'The edge instance does not exist.', 'http_code' => 400, 'description' => '边缘实例不存在。'], + ['code' => 'iot.fileupload.ConfigAmountReachLimit', 'message' => 'config amount within this product has reached the limit.', 'http_code' => 400, 'description' => '上传文件配置数量已经达到上限。'], + ['code' => 'iot.fileupload.ConfigExists', 'message' => 'the config with same service id exists.', 'http_code' => 400, 'description' => '已存在相同业务类型的配置'], + ['code' => 'iot.fileupload.InvalidOssBucket', 'message' => 'oss bucket invalid.', 'http_code' => 400, 'description' => '指定的oss bucket非法。'], + ['code' => 'iot.fileupload.NoRightToCreateSLR', 'message' => 'No right to create this role.', 'http_code' => 400, 'description' => '无权限创建文件上传的服务关联角色'], + ['code' => 'iot.fileupload.SLRExist', 'message' => 'this role for device file uploading exists', 'http_code' => 400, 'description' => '设备文件上传的角色已经存在。'], + ['code' => 'iot.firmware.AllDeviceInUpgrading', 'message' => 'All the devices are updating.', 'http_code' => 400, 'description' => '全部设备正在升级中。'], + ['code' => 'iot.firmware.AlreadyDeletedFirmware', 'message' => 'The firmware has been deleted.', 'http_code' => 400, 'description' => '固件已经被删除。'], + ['code' => 'iot.firmware.AlreadyDestVersion', 'message' => 'The current device version is the same as the version of the firmware.', 'http_code' => 400, 'description' => '设备当前的版本与固件版本一致。'], + ['code' => 'iot.firmware.AlreadyExistedFirmwareName', 'message' => 'The OTA update package already exists.', 'http_code' => 400, 'description' => '同名的OTA升级包已经存在。'], + ['code' => 'iot.firmware.AlreadyExistedFirmwareVersion', 'message' => 'The OTA update package already exists.', 'http_code' => 400, 'description' => '产品下已存在该OTA升级包版本。'], + ['code' => 'iot.firmware.BadGrayPercent', 'message' => 'The phased update percentage cannot be empty.', 'http_code' => 400, 'description' => '灰度升级的灰度设定不能为空'], + ['code' => 'iot.firmware.BadlyFormattedGrayPercent', 'message' => 'The format of the phased update percent is invalid.', 'http_code' => 400, 'description' => '灰度比例的格式不正确。'], + ['code' => 'iot.firmware.BatchCancelDeviceUpgradeFailed', 'message' => 'Failed to cancel the device update task.', 'http_code' => 400, 'description' => '取消设备升级失败。'], + ['code' => 'iot.firmware.BatchDeviceUpgradeFailure', 'message' => 'The batch update failed.', 'http_code' => 400, 'description' => '批量升级失败。'], + ['code' => 'iot.firmware.BatchSpecificUpgradeDeviceFailed', 'message' => 'Failed to update specified devices.', 'http_code' => 400, 'description' => '批量定向升级失败。'], + ['code' => 'iot.firmware.BatchUpgradeFailedFirmwareNotVerified', 'message' => 'Failed to initiate the update batch because the firmware verification is not completed.', 'http_code' => 400, 'description' => '未完成固件验证,无法发起批量升级'], + ['code' => 'iot.firmware.BlankFirmwareName', 'message' => 'The OTA update package name is invalid.', 'http_code' => 400, 'description' => 'OTA升级包名称只包含空格。'], + ['code' => 'iot.firmware.BlankFirmwareName', 'message' => 'Firmware name is blank.', 'http_code' => 400, 'description' => '固件名称只包含空格。'], + ['code' => 'iot.firmware.CancelDeviceListSizeExceedMax', 'message' => 'The size of the device list exceeds the limit.', 'http_code' => 400, 'description' => '待取消的设备列表个数超过最大数量200。'], + ['code' => 'iot.firmware.CancelOptionIsMandatory', 'message' => 'The canceled option must be specified.', 'http_code' => 400, 'description' => '未指定取消参数。'], + ['code' => 'iot.firmware.CancelOTAStrategyByJobFailed', 'message' => 'Failed to cancel the dynamic update policy.', 'http_code' => 400, 'description' => '取消动态批次所关联的动态升级策略失败。'], + ['code' => 'iot.firmware.CancelOTATaskByJobFailed', 'message' => 'Failed to cancel OTA update tasks in a batch.', 'http_code' => 400, 'description' => '取消批次下设备升级失败。'], + ['code' => 'iot.firmware.CancelUpgradeTaskFailed', 'message' => 'Failed to cancel the update batch.', 'http_code' => 400, 'description' => '取消升级批次失败'], + ['code' => 'iot.firmware.CreateFirmwareFailure', 'message' => 'Failed to create the OTA update package.', 'http_code' => 400, 'description' => '创建OTA升级包失败。'], + ['code' => 'iot.firmware.CreateOTAUpgradeJobFailure', 'message' => 'Failed to create OTA update task.', 'http_code' => 400, 'description' => '创建批量升级任务失败。'], + ['code' => 'iot.firmware.DeleteFirmwareFailure', 'message' => 'Failed to delete the OTA update package.', 'http_code' => 400, 'description' => '删除OTA升级包失败。'], + ['code' => 'iot.firmware.DeviceIsUpgrading', 'message' => 'The device is updating.', 'http_code' => 400, 'description' => '设备正在升级中。'], + ['code' => 'iot.firmware.DeviceUpgradeCountFailure', 'message' => 'Failed to obtain device update details.', 'http_code' => 400, 'description' => '获取设备升级详情数失败。'], + ['code' => 'iot.firmware.DeviceUpgradeRecordNotFound', 'message' => 'The device is not updating.', 'http_code' => 400, 'description' => '设备没有处在升级过程中。'], + ['code' => 'iot.firmware.DeviceWithDestinationVersionInArray', 'message' => 'The device version is the same as the destination version.', 'http_code' => 400, 'description' => '设备版本号与目标版本号相同'], + ['code' => 'iot.firmware.DiffFirmareNotVerified', 'message' => 'The specified differential firmware is not verified.', 'http_code' => 400, 'description' => '待差分固件尚未验证通过,不能开始差分。'], + ['code' => 'iot.firmware.DiffFirmareSizeExceeded', 'message' => 'The size of the specified differential firmware exceeds the limit.', 'http_code' => 400, 'description' => '差分固件大小不能超过10M。'], + ['code' => 'iot.firmware.DiffTaskCreateFailed', 'message' => 'An error occurred while creating the differential update task.', 'http_code' => 400, 'description' => '创建差分任务失败。'], + ['code' => 'iot.firmware.DuplicateFirmwareVersionIsUnderOneProductKey', 'message' => 'The firmware with the specified version already exists in the product.', 'http_code' => 400, 'description' => '同名的固件已经存在。'], + ['code' => 'iot.firmware.DynamicAuthorizedProductNotSupported', 'message' => 'Dynamic update is not supported by authorized products.', 'http_code' => 400, 'description' => '不支持对被授权产品的设备进行动态升级。'], + ['code' => 'iot.firmware.DynamicGrayNotSupported', 'message' => 'The dynamic phased update is not supported.', 'http_code' => 400, 'description' => '不支持动态灰度升级。'], + ['code' => 'iot.firmware.DynamicSpecificNotSupported', 'message' => 'Dynamic specific update is not supported.', 'http_code' => 400, 'description' => '不支持动态定向升级。'], + ['code' => 'iot.firmware.EmptyDiffSrcFirmwares', 'message' => 'In a differential update, you must specify the firmware to be updated.', 'http_code' => 400, 'description' => '差分升级时,待升级固件名称列表不能为空'], + ['code' => 'iot.firmware.EmptyDiffTask', 'message' => 'No differential update tasks exist.', 'http_code' => 400, 'description' => '差分任务数量为空。'], + ['code' => 'iot.firmware.EmptyFirmwareFile', 'message' => 'The file of the OTA update package is empty.', 'http_code' => 400, 'description' => 'OTA升级包文件大小为0。'], + ['code' => 'iot.firmware.EmptyFirmwareFile', 'message' => 'Empty firmware file.', 'http_code' => 400, 'description' => '固件文件长度为0。'], + ['code' => 'iot.firmware.EmptyFirmwareList', 'message' => 'The firmware list is empty.', 'http_code' => 400, 'description' => '固件列表为空'], + ['code' => 'iot.firmware.EmptyTargetDeviceFirmwareVersionList', 'message' => 'The firmware list used to filter the target devices is empty.', 'http_code' => 400, 'description' => '用于筛选目标设备的固件版本号列表为空。'], + ['code' => 'iot.firmware.EmptyTargetDeviceList', 'message' => 'No device is specified for the static update.', 'http_code' => 400, 'description' => '静态定向升级的设备范围为空。'], + ['code' => 'iot.firmware.FinishVerifyTaskFailure', 'message' => 'Failed to stop the firmware verification task.', 'http_code' => 400, 'description' => '结束验证固件升级任务失败。'], + ['code' => 'iot.firmware.FireTimeMustLargeThanCurrentTime', 'message' => 'The update time must be later than current time.', 'http_code' => 400, 'description' => '定时升级时间必须大于当前时间。'], + ['code' => 'iot.firmware.FireTimeMustLargeThanCurrentTime', 'message' => 'The scheduled update time must be later than current time.', 'http_code' => 400, 'description' => '定时升级时间必须大于当前时间。'], + ['code' => 'iot.firmware.FireTimeTooLate', 'message' => 'The scheduled update time cannot be later than 7 days from the current time.', 'http_code' => 400, 'description' => '定时升级时间距当前时间不能大于7天。'], + ['code' => 'iot.firmware.FireTimeTooShort', 'message' => 'The scheduled update time cannot be earlier than 5 minutes from now.', 'http_code' => 400, 'description' => '定时升级时间距当前时间不能小于5分钟。'], + ['code' => 'iot.firmware.FirmareDescriptionIsTooLong', 'message' => 'The firmware description exceeds the maximum number of characters.', 'http_code' => 400, 'description' => '固件描述字符个数超过100。'], + ['code' => 'iot.firmware.FirmwareAndProductKeyMismatch', 'message' => 'The OTA update package is not consistent with the ProductKey.', 'http_code' => 400, 'description' => 'OTA升级包与产品ProductKey不匹配'], + ['code' => 'iot.firmware.FirmwareCountExceedMax', 'message' => 'The number of update packages exceeds the limit.', 'http_code' => 400, 'description' => 'OTA升级包数量超过最大值500。'], + ['code' => 'iot.firmware.FirmwareDescExceedLimit', 'message' => 'The description of the firmware is longer than the limit.', 'http_code' => 400, 'description' => '升级包描述的长度超过限制。'], + ['code' => 'iot.firmware.FirmwareDescriptionExceedMaxLength', 'message' => 'The description of the OTA update package exceeds the limit.', 'http_code' => 400, 'description' => 'OTA升级包描述字符个数超过100。'], + ['code' => 'iot.firmware.FirmwareDownloadFailed', 'message' => 'An error occurred while downloading the firmware.', 'http_code' => 400, 'description' => '。差分固件下载失败'], + ['code' => 'iot.firmware.FirmwareIsNotRelatedWithProductKey', 'message' => 'The firmware is not associated with the product.', 'http_code' => 400, 'description' => '固件没有与产品进行关联'], + ['code' => 'iot.firmware.FirmwareNotFound', 'message' => 'The specified firmware does not exist.', 'http_code' => 400, 'description' => 'OTA升级包不存在。'], + ['code' => 'iot.firmware.FirmwareNotSecurity', 'message' => 'The uploaded update package is a malicious file.', 'http_code' => 400, 'description' => '固件文件为恶意文件。'], + ['code' => 'iot.firmware.FirmwareNotSecurity', 'message' => 'Firmware file does not pass the security check.', 'http_code' => 400, 'description' => '固件文件为恶意文件。'], + ['code' => 'iot.firmware.FirmwareNotVerified', 'message' => 'The OTA update package is not verified.', 'http_code' => 400, 'description' => '未完成OTA升级包验证,无法发起升级。'], + ['code' => 'iot.firmware.FirmwareUdiExceedLimit', 'message' => 'The UDI of the firmware is longer than the limit.', 'http_code' => 400, 'description' => '升级包的自定义信息长度超过限制。'], + ['code' => 'iot.firmware.FirmwareUdiLengthExceed', 'message' => 'The custom information of the update package exceeds the length limit.', 'http_code' => 400, 'description' => '升级包用户自定义信息超长。'], + ['code' => 'iot.firmware.FirmwareVersionMismatch', 'message' => 'The firmware versions do not match.', 'http_code' => 400, 'description' => '固件版本不匹配'], + ['code' => 'iot.firmware.FirmwareVersionMismatch', 'message' => 'Firmware version mismatch.', 'http_code' => 400, 'description' => '固件版本不匹配。'], + ['code' => 'iot.firmware.GenerateOTAUploadURLFailure', 'message' => 'Failed to generate the upload URL of the update package.', 'http_code' => 400, 'description' => '生成升级包上传URL失败。'], + ['code' => 'iot.firmware.GetDeviceFailure', 'message' => 'Failed to query the device.', 'http_code' => 400, 'description' => '查询设备失败。'], + ['code' => 'iot.firmware.GetFirmwareFailure', 'message' => 'Failed to get firmware information.', 'http_code' => 400, 'description' => '获取固件信息失败。'], + ['code' => 'iot.firmware.GetFirmwareVerifyFailure', 'message' => 'Failed to query the firmware verification result.', 'http_code' => 400, 'description' => '获取固件验证结果失败。'], + ['code' => 'iot.firmware.GetUpgradeTaskByIdFailed', 'message' => 'Failed to query the update batch details.', 'http_code' => 400, 'description' => '获取升级批次详情失败'], + ['code' => 'iot.firmware.GrayAppliesToStaticOnly', 'message' => 'Only static updates support phased updates.', 'http_code' => 400, 'description' => '只有静态升级才允许灰度升级。'], + ['code' => 'iot.firmware.HasNotFinishedJob', 'message' => 'Some devices are not updated.', 'http_code' => 400, 'description' => '升级任务下有设备没有升级完成。'], + ['code' => 'iot.firmware.HasNotFinishVerificationTask', 'message' => 'Some firmware is still pending verification.', 'http_code' => 400, 'description' => '存在未完成的验证固件任务。'], + ['code' => 'iot.firmware.IllegalFirmwareOperationPermission', 'message' => 'You are not authorized to perform operations on firmware.', 'http_code' => 400, 'description' => '不具有固件操作权限。'], + ['code' => 'iot.firmware.IncorrectDeviceUpgradeJobStatus', 'message' => 'You can cancel only the update tasks of the devices that are being updated.', 'http_code' => 400, 'description' => '待取消的设备升级记录状态错误。'], + ['code' => 'iot.firmware.IncorrectFormattedFirmwareName', 'message' => 'The format of the OTA update package name is invalid.', 'http_code' => 400, 'description' => 'OTA升级包名称格式错误。'], + ['code' => 'iot.firmware.IncorrectFormattedFirmwareVersion', 'message' => 'The version format of the update package is invalid.', 'http_code' => 400, 'description' => 'OTA升级包版本格式非法。'], + ['code' => 'iot.firmware.IncorrectFormattedModuleName', 'message' => 'The format of the module name is invalid.', 'http_code' => 400, 'description' => '模块名格式错误。'], + ['code' => 'iot.firmware.IncorrectFormattedSrcVersion', 'message' => 'The format of the source version is invalid.', 'http_code' => 400, 'description' => '起始版本格式非法。'], + ['code' => 'iot.firmware.IncorrectTaskStatus', 'message' => 'The update task is not running.', 'http_code' => 400, 'description' => '升级任务状态不是执行中。'], + ['code' => 'iot.firmware.IncorrectTaskType', 'message' => 'The type of the update task is not firmware verification.', 'http_code' => 400, 'description' => '升级任务类型不是验证固件。'], + ['code' => 'iot.firmware.IncrementalFirmwareNotSupported', 'message' => 'The differential firmware is not supported by the API operation.', 'http_code' => 400, 'description' => '当前接口不支持差分固件'], + ['code' => 'iot.firmware.InProgressDynamicJobExisted', 'message' => 'The dynamic task that is running exists.', 'http_code' => 400, 'description' => '已存在执行中的动态批次。'], + ['code' => 'iot.firmware.InProgressVerifyJobExisted', 'message' => 'The uncompleted task to verify the OTA update package exists.', 'http_code' => 400, 'description' => '存在未完成的验证OTA升级包任务。'], + ['code' => 'iot.firmware.InvalidDiffTaskId', 'message' => 'The specified ID of the differential update task is invalid.', 'http_code' => 400, 'description' => '差分任务id不正确。'], + ['code' => 'iot.firmware.InvalidDiffTaskState', 'message' => 'The specified differential update task cannot be canceled.', 'http_code' => 400, 'description' => '当前差分任务不能取消。'], + ['code' => 'iot.firmware.InvalidDynamicMode', 'message' => 'The DynamicMode parameter is invalid.', 'http_code' => 400, 'description' => '动态升级模式不正确。'], + ['code' => 'iot.firmware.InvalidFirmware', 'message' => 'The OTA update package is invalid.', 'http_code' => 400, 'description' => '无效的OTA升级包。'], + ['code' => 'iot.firmware.InvalidFirmwareId', 'message' => 'The ID of the OTA update package is invalid.', 'http_code' => 400, 'description' => 'OTA升级包ID不正确。'], + ['code' => 'iot.firmware.InvalidFirmwareName', 'message' => 'The firmware name is invalid.', 'http_code' => 400, 'description' => '固件名称不正确。'], + ['code' => 'iot.firmware.InvalidFirmwareSign', 'message' => 'The signature of the OTA update package is invalid.', 'http_code' => 400, 'description' => '无效的OTA升级包签名值。'], + ['code' => 'iot.firmware.InvalidFirmwareSignMethod', 'message' => 'The signature method of the OTA update package is invalid.', 'http_code' => 400, 'description' => '无效的OTA升级包签名方法。'], + ['code' => 'iot.firmware.InvalidFirmwareSize', 'message' => 'The size of the OTA update package is invalid.', 'http_code' => 400, 'description' => '无效的OTA升级包大小。'], + ['code' => 'iot.firmware.InvalidFirmwareSize', 'message' => 'Invalid firmware size.', 'http_code' => 400, 'description' => '无效的升级包大小'], + ['code' => 'iot.firmware.InvalidFirmwareType', 'message' => 'The type of the OTA update package is invalid.', 'http_code' => 400, 'description' => '无效的OTA升级包类型。'], + ['code' => 'iot.firmware.InvalidFirmwareType', 'message' => 'Invalid firmware type.', 'http_code' => 400, 'description' => '无效的固件类型。'], + ['code' => 'iot.firmware.InvalidFirmwareUrl', 'message' => 'The URL of the OTA update package is invalid.', 'http_code' => 400, 'description' => 'OTA升级包资源链接地址不是合法的物联网平台OTA升级包地址。'], + ['code' => 'iot.firmware.InvalidGenerateOTAUploadURLParam', 'message' => 'The parameter used to generate upload URL of the update package is invalid.', 'http_code' => 400, 'description' => '生成升级包上传URL的参数非法。'], + ['code' => 'iot.firmware.InvalidGrayPercent', 'message' => 'The phased update percentage is invalid.', 'http_code' => 400, 'description' => '无效的灰度比例。'], + ['code' => 'iot.firmware.InvalidMaximumPerMinute', 'message' => 'The MaximumPerMinute parameter is invalid.', 'http_code' => 400, 'description' => '无效的推出速率。'], + ['code' => 'iot.firmware.InvalidOTAJobId', 'message' => 'The batch ID is invalid.', 'http_code' => 400, 'description' => '批次ID不正确。'], + ['code' => 'iot.firmware.InvalidOTATaskId', 'message' => 'The task ID is invalid.', 'http_code' => 400, 'description' => '请求参数中的TaskId不存在。'], + ['code' => 'iot.firmware.InvalidOTATaskUid', 'message' => 'The taskUid is invalid.', 'http_code' => 400, 'description' => '无效的批次uid。'], + ['code' => 'iot.firmware.InvalidOverwriteMode', 'message' => 'The OverwriteMode parameter is invalid.', 'http_code' => 400, 'description' => '覆盖模式不正确。'], + ['code' => 'iot.firmware.InvalidProductKey', 'message' => 'The ProductKey is invalid.', 'http_code' => 400, 'description' => '无效的产品ProductKey。'], + ['code' => 'iot.firmware.InvalidProductKey', 'message' => 'Invalid Product Key.', 'http_code' => 400, 'description' => '无效的产品ID。'], + ['code' => 'iot.firmware.InvalidRetryCount', 'message' => 'The number of retries is invalid.', 'http_code' => 400, 'description' => '自动重试次数不正确。'], + ['code' => 'iot.firmware.InvalidRetryInterval', 'message' => 'The retry interval is invalid.', 'http_code' => 400, 'description' => '自动重试时间间隔不正确。'], + ['code' => 'iot.firmware.InvalidSelectionType', 'message' => 'The SelectionType parameter is invalid.', 'http_code' => 400, 'description' => '选择类型不正确。'], + ['code' => 'iot.firmware.InvalidSpeedLimit', 'message' => 'The push rate is invalid.', 'http_code' => 400, 'description' => '无效的推出速率'], + ['code' => 'iot.firmware.InvalidTargetSelection', 'message' => 'The TargetSelection parameter is invalid.', 'http_code' => 400, 'description' => '目标选择不正确。'], + ['code' => 'iot.firmware.InvalidTaskStatus', 'message' => 'The TaskStatus parameter is invalid.', 'http_code' => 400, 'description' => 'TaskId对应的设备升级作业,不处于未确认状态。'], + ['code' => 'iot.firmware.InvalidTaskStatus', 'message' => 'Invalid TaskStatus.', 'http_code' => 400, 'description' => '无效的批次状态。'], + ['code' => 'iot.firmware.InvalidTimeoutSetting', 'message' => 'The timeout setting is invalid.', 'http_code' => 400, 'description' => '无效的超时设置'], + ['code' => 'iot.firmware.InvalidUpgradeType', 'message' => 'The update policy is invalid.', 'http_code' => 400, 'description' => '无效的升级策略类型'], + ['code' => 'iot.firmware.JobAlreadyCanceled', 'message' => 'The batch has been canceled.', 'http_code' => 400, 'description' => '批次已经取消。'], + ['code' => 'iot.firmware.JobHasNoScheduleTime', 'message' => 'The batch is not scheduled.', 'http_code' => 400, 'description' => '批次不是定时批次。'], + ['code' => 'iot.firmware.jobTagIsTooLong', 'message' => 'The batch tags exceeds the length limit.', 'http_code' => 400, 'description' => '批次标签总长度超过限制。'], + ['code' => 'iot.firmware.ListDeviceUpgradeInfoFailure', 'message' => 'An error occurred while querying the update tasks.', 'http_code' => 400, 'description' => '获取设备升级列表失败。'], + ['code' => 'iot.firmware.ListOTAFirmwareFailed', 'message' => 'Failed to query OTA update packages.', 'http_code' => 400, 'description' => '获取OTA升级包列表失败。'], + ['code' => 'iot.firmware.ListOTAJobFailed', 'message' => 'Failed to query the update batches.', 'http_code' => 400, 'description' => '查询升级批次列表失败。'], + ['code' => 'iot.firmware.ListOTAModuleFailed', 'message' => 'Failed to query modules.', 'http_code' => 400, 'description' => '查询模块列表失败。'], + ['code' => 'iot.firmware.ListOTAModuleNameByProductFailed', 'message' => 'Failed to query OTA modules by product.', 'http_code' => 400, 'description' => '查询产品下模块列表失败。'], + ['code' => 'iot.firmware.ListOTATaskByDeviceFailed', 'message' => 'Failed to list OTA tasks by device.', 'http_code' => 400, 'description' => '查询设备下的升级记录失败。'], + ['code' => 'iot.firmware.ListOTATaskByJobFailed', 'message' => 'Failed to query update records by batch.', 'http_code' => 400, 'description' => '查询批次下的升级记录失败。'], + ['code' => 'iot.firmware.LocationSizeExceedMax', 'message' => 'The number of device regions exceeds the limit.', 'http_code' => 400, 'description' => '设备区域列表的个数超过最大数量20。'], + ['code' => 'iot.firmware.MalformedFirmwareUrl', 'message' => 'The firmware URL is invalid.', 'http_code' => 400, 'description' => 'OTA升级包资源链接地址不是合法的URL。'], + ['code' => 'iot.firmware.ModuleCountLimitExceeded', 'message' => 'The number of modules exceeds the limit.', 'http_code' => 400, 'description' => '模块数量超过了最大限制。'], + ['code' => 'iot.firmware.ModuleCountLimitExceeded', 'message' => 'Module count exceeds limit.', 'http_code' => 400, 'description' => '模块数量超过了最大限制。'], + ['code' => 'iot.firmware.ModuleNameReserved', 'message' => 'The module name is reserved.', 'http_code' => 400, 'description' => '使用了被保留的模块名,请选择其它模块名。'], + ['code' => 'iot.firmware.ModuleNameReserved', 'message' => 'Module name is reserved.', 'http_code' => 400, 'description' => '使用了被保留的模块名,请选择其它模块名。'], + ['code' => 'iot.firmware.MoreThanOneSrcVersion', 'message' => 'Only one source version can be specified for a differential update.', 'http_code' => 400, 'description' => '差分OTA升级包批量升级只允许指定一个源版本。'], + ['code' => 'iot.firmware.NoDeviceCanUpgrade', 'message' => 'No devices are available.', 'http_code' => 400, 'description' => '未找到可升级的设备。'], + ['code' => 'iot.firmware.NonVersionedDeviceInArray', 'message' => 'The device list contains devices that have no versions or have invalid versions.', 'http_code' => 400, 'description' => '设备数组参数中存在未上报或上报非法版本号的设备。'], + ['code' => 'iot.firmware.NotDynamicJob', 'message' => 'No dynamic update batches are available.', 'http_code' => 400, 'description' => '只允许取消动态批次所关联的动态升级策略。'], + ['code' => 'iot.firmware.NotEqualDiffSrcFirmwaresAndSrcVersions', 'message' => 'In a differential update, the number of firmware names must be the same as the number of firmware versions.', 'http_code' => 400, 'description' => '差分升级时,待升级固件名称列表必须和待升级版本号列表数量相同'], + ['code' => 'iot.firmware.NotFailedUpgradeJob', 'message' => 'Only the devices that failed in previous updates can perform the specified task again.', 'http_code' => 400, 'description' => '只有失败的设备升级操作记录才可进行操作。'], + ['code' => 'iot.firmware.NullFirmwareId', 'message' => 'You must specify an OTA update package ID.', 'http_code' => 400, 'description' => 'OTA升级包ID为空。'], + ['code' => 'iot.firmware.NullFirmwareName', 'message' => 'The OTA update package name is empty.', 'http_code' => 400, 'description' => 'OTA升级包名称为空。'], + ['code' => 'iot.firmware.NullFirmwareName', 'message' => 'The firmware name is empty.', 'http_code' => 400, 'description' => '固件名称为空。'], + ['code' => 'iot.firmware.NullFirmwareProductKey', 'message' => 'The firmware ProductKey is empty.', 'http_code' => 400, 'description' => '固件的产品ID为空。'], + ['code' => 'iot.firmware.NullFirmwareSign', 'message' => 'The firmware signature is empty.', 'http_code' => 400, 'description' => '固件签名值为空。'], + ['code' => 'iot.firmware.NullFirmwareSignMethod', 'message' => 'The signature method of the firmware is empty.', 'http_code' => 400, 'description' => '固件签名方法为空。'], + ['code' => 'iot.firmware.NullFirmwareUrl', 'message' => 'The URL of the OTA update package is empty.', 'http_code' => 400, 'description' => 'OTA升级包资源链接地址为空。'], + ['code' => 'iot.firmware.NullFirmwareVersion', 'message' => 'The update package version is empty.', 'http_code' => 400, 'description' => 'OTA升级包版本为空。'], + ['code' => 'iot.firmware.NullGrayPercent', 'message' => 'The phased update percentage cannot be empty.', 'http_code' => 400, 'description' => '灰度升级的灰度比例为空。'], + ['code' => 'iot.firmware.NullOTAJobId', 'message' => 'You must specify a batch ID.', 'http_code' => 400, 'description' => '批次ID为空。'], + ['code' => 'iot.firmware.NullOTATaskId', 'message' => 'You must specify a task ID.', 'http_code' => 400, 'description' => '升级记录Id不能为空。'], + ['code' => 'iot.firmware.NullSelectionType', 'message' => 'You must specify SelectionType.', 'http_code' => 400, 'description' => '选择类型为空。'], + ['code' => 'iot.firmware.NullSrcVersions', 'message' => 'You must specify SrcVersions.', 'http_code' => 400, 'description' => '待升级版本号列表为空。'], + ['code' => 'iot.firmware.NullStrategyType', 'message' => 'The update scope cannot be empty.', 'http_code' => 400, 'description' => '升级范围不能为空。'], + ['code' => 'iot.firmware.NullTargetDeviceNames', 'message' => 'The TargetDeviceNames parameter is empty.', 'http_code' => 400, 'description' => '静态定向升级的设备范围为空。'], + ['code' => 'iot.firmware.NullTargetSelection', 'message' => 'You must specify TargetSelection.', 'http_code' => 400, 'description' => '目标选择为空。'], + ['code' => 'iot.firmware.NullTaskId', 'message' => 'The batch ID cannot be empty.', 'http_code' => 400, 'description' => '批次ID为空。'], + ['code' => 'iot.firmware.NullUpgradeType', 'message' => 'The update policy cannot be empty.', 'http_code' => 400, 'description' => '升级策略类型不能为空。'], + ['code' => 'iot.firmware.QueryBatchDeviceUpgradeInfoFailure', 'message' => 'Failed to query the batch update information.', 'http_code' => 400, 'description' => '获取批量升级信息失败。'], + ['code' => 'iot.firmware.QueryDeviceFirmwareVersionActionError', 'message' => 'An error occurred while querying the firmware version of the device under the specified product.', 'http_code' => 400, 'description' => '获取某一产品下的设备固件版本号失败。'], + ['code' => 'iot.firmware.QueryDeviceUpgradeInfoFailure', 'message' => 'Failed to query the device update tasks.', 'http_code' => 400, 'description' => '获取设备升级列表失败。'], + ['code' => 'iot.firmware.QueryDeviceUpgradeRecordActionError', 'message' => 'An error occurred while querying the firmware update records.', 'http_code' => 400, 'description' => '分页获取某一固件下的设备升级操作记录失败。'], + ['code' => 'iot.firmware.QueryFirmwareLatestStrategyActionError', 'message' => 'An error occurred while retrieving the firmware update policy.', 'http_code' => 400, 'description' => '获取固件最新的升级策略失败。'], + ['code' => 'iot.firmware.QueryFirmwaresFailure', 'message' => 'Failed to get the firmware list.', 'http_code' => 400, 'description' => '获取固件列表失败。'], + ['code' => 'iot.firmware.QueryOTAJobListFailed', 'message' => 'Failed to query update batches.', 'http_code' => 400, 'description' => '查询升级批次失败'], + ['code' => 'iot.firmware.QueryStrategyFailure', 'message' => 'Failed to obtain the update policy.', 'http_code' => 400, 'description' => '获取升级策略失败。'], + ['code' => 'iot.firmware.QueryUpgradeCountInfoActionError', 'message' => 'An error occurred while querying the firmware update statistics.', 'http_code' => 400, 'description' => '获取固件下的升级数量统计信息失败。'], + ['code' => 'iot.firmware.QueryUpgradeStatusFailure', 'message' => 'Failed to query the device update status.', 'http_code' => 400, 'description' => '查询设备升级状态失败。'], + ['code' => 'iot.firmware.QueryUpgradeTaskFailed', 'message' => 'Failed to query the update batches.', 'http_code' => 400, 'description' => '查询升级批次失败'], + ['code' => 'iot.firmware.QueryUpgradeTaskFailed', 'message' => 'Failed to query task list.', 'http_code' => 400, 'description' => '查询升级包下批次信息失败。'], + ['code' => 'iot.firmware.QueryUpgradeTaskJobFailed', 'message' => 'Failed to query the update records.', 'http_code' => 400, 'description' => '查询升级记录失败'], + ['code' => 'iot.firmware.ResetDeviceUpgradeFailure', 'message' => 'Failed to reset the update.', 'http_code' => 400, 'description' => '重置升级操作失败。'], + ['code' => 'iot.firmware.ResetDeviceUpgradeJobFailed', 'message' => 'An error occurred while resetting the update records for the device.', 'http_code' => 400, 'description' => '重置设备升级操作记录失败。'], + ['code' => 'iot.firmware.ReUpgradeDeviceFailure', 'message' => 'Failed to re-update the device.', 'http_code' => 400, 'description' => '重新升级失败。'], + ['code' => 'iot.firmware.ReUpgradeFailedFirmwareNotVerified', 'message' => 'The firmware verification is not completed and the update cannot be reinitiated.', 'http_code' => 400, 'description' => '未完成OTA升级包验证,无法发起重升级。'], + ['code' => 'iot.firmware.ScheduleFinishTimeEarlierThanStartTime', 'message' => 'The scheduled end time cannot be earlier than the scheduled start time.', 'http_code' => 400, 'description' => '指定定时结束时间必须晚于定时开始时间。'], + ['code' => 'iot.firmware.ScheduleFinishTimeTooEarly', 'message' => 'The scheduled end time cannot be 60 minutes later than the scheduled start time.', 'http_code' => 400, 'description' => '定时升级结束时间距开始时间不能小于60分钟。'], + ['code' => 'iot.firmware.ScheduleFinishTimeTooLate', 'message' => 'The scheduled end time cannot be later than 30 days from scheduled start time.', 'http_code' => 400, 'description' => '定时升级结束时间距开始时间不能大于30天。'], + ['code' => 'iot.firmware.ScheduleFinishTimeWithoutStartTime', 'message' => 'The scheduled end time must be specified with scheduled start time.', 'http_code' => 400, 'description' => '指定定时结束时间必须同时指定定时开始时间。'], + ['code' => 'iot.firmware.SrcDestVersionMatched', 'message' => 'The source version and destination version must be different.', 'http_code' => 400, 'description' => '起始版本与目标版本相同。'], + ['code' => 'iot.firmware.SrcVersionIsMandatory', 'message' => 'You must specify a source version for differential update package.', 'http_code' => 400, 'description' => '差分包未指定起始版本。'], + ['code' => 'iot.firmware.SrcVersionMismatch', 'message' => 'The current firmware version of the device does not match the source version of the OTA update package.', 'http_code' => 400, 'description' => '设备当前的版本与OTA升级包待升级版本不一致。'], + ['code' => 'iot.firmware.SrcVersionsNotAllowed', 'message' => 'The source versions cannot be specified.', 'http_code' => 400, 'description' => '不允许指定源版本列表。'], + ['code' => 'iot.firmware.SrcVersionsSizeExceedMax', 'message' => 'The size of the source version list exceeds the limit.', 'http_code' => 400, 'description' => '源版本列表大小超过最大数量。'], + ['code' => 'iot.firmware.SystemBusy', 'message' => 'The system is busy. Try again later.', 'http_code' => 400, 'description' => '系统繁忙,请稍后重试。'], + ['code' => 'iot.firmware.SystemBusyForScheduleTime', 'message' => 'The system is busy. Modify the scheduled update time.', 'http_code' => 400, 'description' => '系统繁忙,请修改定时升级时间。'], + ['code' => 'iot.firmware.TargetDeviceNamesNotAllowed', 'message' => 'The TargetDeviceNames parameter is not allowed.', 'http_code' => 400, 'description' => '不允许指定静态定向升级的设备。'], + ['code' => 'iot.firmware.TooManyDeviceUpgrade', 'message' => 'Too many devices are updated. Try again later.', 'http_code' => 400, 'description' => '发起升级的设备数量过多,请稍后重试。'], + ['code' => 'iot.firmware.TooManyDeviceUpgradeForScheduleTime', 'message' => 'Too many devices are scheduled at the specified time.', 'http_code' => 400, 'description' => '指定的定时升级时间发起升级的设备数量过多,请修改定时升级时间。'], + ['code' => 'iot.firmware.UpdateFirmwareFailure', 'message' => 'Failed to update the firmware information.', 'http_code' => 400, 'description' => '更新固件信息失败。'], + ['code' => 'iot.firmware.UpgradeDeviceFailure', 'message' => 'The device update failed.', 'http_code' => 400, 'description' => '设备升级失败。'], + ['code' => 'iot.firmware.UpgradeDeviceListSizeExceedMax', 'message' => 'The number of devices to be updated exceeds the limit.', 'http_code' => 400, 'description' => '待升级的设备列表个数超过最大数量200。'], + ['code' => 'iot.firmware.UpgradeSrcVersionMismatch', 'message' => 'The source version to be updated is not the same as the source version of the OTA update package.', 'http_code' => 400, 'description' => '升级源版本与差分OTA升级包源版本不一致。'], + ['code' => 'iot.firmware.UpgradeTaskConflict', 'message' => 'The task conflicts with another update task.', 'http_code' => 400, 'description' => '与其他升级任务冲突。'], + ['code' => 'iot.firmware.VerifiedDeviceTotalExceedMax', 'message' => 'The total verified devices exceeds the maximum number.', 'http_code' => 400, 'description' => '验证的设备总数超过最大数量10。'], + ['code' => 'iot.firmware.VerifyFirmwareFailed', 'message' => 'An error occurred while verifying the update package.', 'http_code' => 400, 'description' => '验证OTA升级包失败。'], + ['code' => 'iot.gateway.BackEndServiceInvalid', 'message' => 'Request has failed due to invalid backend server.', 'http_code' => 400, 'description' => '无效的后端服务。'], + ['code' => 'iot.gateway.unkownAccess', 'message' => 'Your access do not passed.', 'http_code' => 400, 'description' => '测试'], + ['code' => 'iot.gateway.unkownAccesskey', 'message' => 'Your accessKey do not passed.', 'http_code' => 400, 'description' => '测试错误码'], + ['code' => 'iot.gis.InvalidParamSize', 'message' => 'Invalid param size.', 'http_code' => 400, 'description' => '存在长度非法的参数。'], + ['code' => 'iot.gis.InvalidParamSize', 'message' => 'iot.gis.InvalidParamSize', 'http_code' => 400, 'description' => '存在长度非法的参数.'], + ['code' => 'iot.gis.InvalidParamSize', 'message' => 'Invalid Param Size', 'http_code' => 400, 'description' => '存在长度非法的参数.'], + ['code' => 'iot.gis.InvalidRequestParam', 'message' => 'Invalid Request Params.', 'http_code' => 400, 'description' => '请求参数无效。'], + ['code' => 'iot.gis.InvalidRequestParam', 'message' => 'Invalid request param', 'http_code' => 400, 'description' => '请求参数无效。'], + ['code' => 'iot.gis.InvalidRequestParam', 'message' => 'iot.gis.InvalidRequestParam', 'http_code' => 400, 'description' => '请求参数无效.'], + ['code' => 'iot.gis.InvalidRequestParam', 'message' => 'Invalid Request Param.', 'http_code' => 400, 'description' => '请求参数无效.'], + ['code' => 'iot.gis.lbsBasicFalse', 'message' => 'lbs service has not open yet .', 'http_code' => 400, 'description' => '位置服务未开通。'], + ['code' => 'iot.gis.lbsBasicFalse', 'message' => 'lbs service has not open yet.', 'http_code' => 400, 'description' => '位置服务未开通.'], + ['code' => 'iot.group.BatchAddDeviceGroupRelationFailed', 'message' => 'An error occurred while adding devices to the group.', 'http_code' => 400, 'description' => '添加多个设备到分组失败。'], + ['code' => 'iot.group.BatchQueryGroupError', 'message' => 'An error occurred while obtaining the list of groups to which the device belongs.', 'http_code' => 400, 'description' => '获取设备关联的分组列表失败。'], + ['code' => 'iot.group.BatchRemoveDeviceGroupRelationFailed', 'message' => 'An error occurred while removing devices from the group.', 'http_code' => 400, 'description' => '删除分组中的设备失败。'], + ['code' => 'iot.group.BindGroupRelationFailed', 'message' => 'An error occurred while grouping the devices.', 'http_code' => 400, 'description' => '绑定分组关系失败。'], + ['code' => 'iot.group.CreateGroupFailed', 'message' => 'An error occurred while creating a device group.', 'http_code' => 400, 'description' => '创建分组失败。'], + ['code' => 'iot.group.DeleteGroupFailed', 'message' => 'An error occurred while deleting the device group.', 'http_code' => 400, 'description' => '删除分组失败。'], + ['code' => 'iot.group.DynamicGroupMatchedDeviceCountExceedMax', 'message' => 'The maximum number of device matched by dynamic group condition is exceeded.', 'http_code' => 400, 'description' => '动态分组规则匹配设备数量过多。'], + ['code' => 'iot.group.GroupCountExceedMax', 'message' => 'The number of device groups exceeds the limit.', 'http_code' => 400, 'description' => '分组数量超过最大值。'], + ['code' => 'iot.group.GroupDeviceCountExceedMax', 'message' => 'The number of devices in this group has exceeded the threshold.', 'http_code' => 400, 'description' => '分组下的设备数量总数已经超过限定值.'], + ['code' => 'iot.group.GroupLevelExceedingLimitError', 'message' => 'The number of grouping levels exceeds the limit.', 'http_code' => 400, 'description' => '分组层级超过限制。'], + ['code' => 'iot.group.GroupNameExisted', 'message' => 'The specified device group name already exists.', 'http_code' => 400, 'description' => '分组名称已存在。'], + ['code' => 'iot.group.InstanceIdNonConformity', 'message' => 'The operation cannot be used to manage resources cross instances.', 'http_code' => 400, 'description' => '该操作不允许跨实例操作。'], + ['code' => 'iot.group.InvalidAddDevicesToGroupTaskId', 'message' => 'Failed to add devices to the group.', 'http_code' => 400, 'description' => '提交设备绑定分组关系任务失败。'], + ['code' => 'iot.group.InvalidFormattedTagKey', 'message' => 'The specified tag key format is invalid.', 'http_code' => 400, 'description' => '标签key格式不合法。'], + ['code' => 'iot.group.InvalidFormattedTagString', 'message' => 'The specified tag format is invalid.', 'http_code' => 400, 'description' => '标签格式不合法。'], + ['code' => 'iot.group.InvalidFormattedTagValue', 'message' => 'The specified tag value format is invalid.', 'http_code' => 400, 'description' => '标签value格式不合法。'], + ['code' => 'iot.group.InvalidGroupName', 'message' => 'The specified device group name is invalid.', 'http_code' => 400, 'description' => '分组名称不合法。'], + ['code' => 'iot.group.LongGroupDescError', 'message' => 'The group description exceeds the length limit.', 'http_code' => 400, 'description' => '分组描述字段过长。'], + ['code' => 'iot.group.NoneValidDevice', 'message' => 'The specified device name is invalid.', 'http_code' => 400, 'description' => '没有有效的设备名称。'], + ['code' => 'iot.group.NoneValidProductKey', 'message' => 'The specified product ID is invalid.', 'http_code' => 400, 'description' => '没有有效的产品ID。'], + ['code' => 'iot.group.NotExistedGroup', 'message' => 'The specified device group does not exist.', 'http_code' => 400, 'description' => '分组不存在。'], + ['code' => 'iot.group.NotExistedSuperGroup', 'message' => 'The parent group does not exist.', 'http_code' => 400, 'description' => '父分组不存在。'], + ['code' => 'iot.group.NullGroupId', 'message' => 'You must specify the device group ID.', 'http_code' => 400, 'description' => '入参分组ID没有赋值。'], + ['code' => 'iot.group.NullTagKey', 'message' => 'You must specify the tag key.', 'http_code' => 400, 'description' => '标签key不能为空。'], + ['code' => 'iot.group.NullTags', 'message' => 'You must specify a tag.', 'http_code' => 400, 'description' => '标签不能为空。'], + ['code' => 'iot.group.QueryAddDevicesToGroupTaskFailed', 'message' => 'Failed to query the device grouping tasks.', 'http_code' => 400, 'description' => '查询设备绑定分组关系任务失败。'], + ['code' => 'iot.group.QueryDeviceGroupByTagsFailed', 'message' => 'An error occurred while searching for device groups by tag.', 'http_code' => 400, 'description' => '根据标签查询分组失败。'], + ['code' => 'iot.group.QueryGroupCountFailed', 'message' => 'An error occurred while querying the number of device groups.', 'http_code' => 400, 'description' => '查询分组数量失败。'], + ['code' => 'iot.group.QueryGroupInfoFailed', 'message' => 'An error occurred while querying the device group details.', 'http_code' => 400, 'description' => '查询分组详情失败。'], + ['code' => 'iot.group.QueryGroupListFailed', 'message' => 'An error occurred while obtaining the device group list.', 'http_code' => 400, 'description' => '查询分组列表失败。'], + ['code' => 'iot.group.QueryGroupRelationFailed', 'message' => 'An error occurred while querying the grouping relationship.', 'http_code' => 400, 'description' => '查询分组关系失败。'], + ['code' => 'iot.group.QueryGroupTagFailed', 'message' => 'An error occurred while querying the device group tag information.', 'http_code' => 400, 'description' => '查询分组标签信息失败。'], + ['code' => 'iot.group.QueryGroupTreeFailed', 'message' => 'An error occurred while querying the grouping topology.', 'http_code' => 400, 'description' => '获取分组关系结构失败。'], + ['code' => 'iot.group.RunAddDevicesToGroupTaskFailed', 'message' => 'An error occurred while running the device grouping task.', 'http_code' => 400, 'description' => '设备绑定分组关系任务执行失败。'], + ['code' => 'iot.group.SetGroupTagFailed', 'message' => 'An error occurred while setting the device group tag information.', 'http_code' => 400, 'description' => '设置分组标签信息失败。'], + ['code' => 'iot.group.SubGroupNotNull', 'message' => 'You must specify the subgroup.', 'http_code' => 400, 'description' => '分组下有子分组。'], + ['code' => 'iot.group.SubmitAddDevicesToGroupTaskFailed', 'message' => 'An error occurred while submitting the device grouping task.', 'http_code' => 400, 'description' => '提交设备绑定分组关系任务失败。'], + ['code' => 'iot.group.SubmitAddDevicesToGroupTaskTooMany', 'message' => 'Submit the devices group task too many', 'http_code' => 400, 'description' => '提交设备绑定分组关系任务过多。'], + ['code' => 'iot.group.SuperGroupUnsupport', 'message' => 'The super groups do not support subGroups.', 'http_code' => 400, 'description' => '子分组不支持添加到该父分组。'], + ['code' => 'iot.group.TagCountExceedMax', 'message' => 'You cannot create any more tags.', 'http_code' => 400, 'description' => '标签数量超过最大值。'], + ['code' => 'iot.group.TagValueExceedMaxLength', 'message' => 'The specified tag value is too long.', 'http_code' => 400, 'description' => '标签value超过最大长度限制。'], + ['code' => 'iot.group.UpdateGroupFailed', 'message' => 'An error occurred while modifying the device group information.', 'http_code' => 400, 'description' => '修改分组信息失败。'], + ['code' => 'iot.hosting.QueryISVInfoFailed', 'message' => 'Failed to obtain the ISV information.', 'http_code' => 400, 'description' => '获取ISV信息失败'], + ['code' => 'iot.igw.AuthType', 'message' => 'Invalid authType.', 'http_code' => 400, 'description' => '无效的认证类型。'], + ['code' => 'iot.igw.certExpired', 'message' => 'The Certificate is expired.', 'http_code' => 400, 'description' => '证书已过期。'], + ['code' => 'iot.igw.CreateProductFail', 'message' => 'Create product is failed.', 'http_code' => 400, 'description' => '创建产品失败。'], + ['code' => 'iot.igw.ExceedMaxCertLenLimit', 'message' => 'The length of certificate exceed the max length limit.', 'http_code' => 400, 'description' => '证书长度超限。'], + ['code' => 'iot.igw.ExceedMaxIgwNum', 'message' => 'The number of gateway exceed the number limit.', 'http_code' => 400, 'description' => '网关数量超限。'], + ['code' => 'iot.igw.GatewayNotExist', 'message' => 'Gateway does not exist.', 'http_code' => 400, 'description' => '网关不存在。'], + ['code' => 'iot.igw.InvalidCertParams', 'message' => 'Invalid certificate.', 'http_code' => 400, 'description' => '无效的证书格式。'], + ['code' => 'iot.igw.InvalidIgwConfig', 'message' => 'Invalid gateway config.', 'http_code' => 400, 'description' => '无效的网关配置。'], + ['code' => 'iot.igw.InvalidIgwName', 'message' => 'Invalid gateway name.', 'http_code' => 400, 'description' => '无效的网关名称。'], + ['code' => 'iot.igw.InvalidOcspType', 'message' => 'Invalid ocsp type.', 'http_code' => 400, 'description' => '无效的ocsp类型。'], + ['code' => 'iot.igw.InvalidProtocol', 'message' => 'Invalid protocol.', 'http_code' => 400, 'description' => '无效的协议。'], + ['code' => 'iot.igw.InvalidUid', 'message' => 'Invalid uid.', 'http_code' => 400, 'description' => '无效的用户id。'], + ['code' => 'iot.igw.ParamsError', 'message' => 'Invalid parameter.', 'http_code' => 400, 'description' => '无效的参数。'], + ['code' => 'iot.igw.RestartGatewayFailed', 'message' => 'Restart gateway is failed.', 'http_code' => 400, 'description' => '重启网关失败。'], + ['code' => 'iot.igw.SystemError', 'message' => 'System error.', 'http_code' => 400, 'description' => '系统异常。'], + ['code' => 'iot.instance.UnknownSystemException', 'message' => 'System Error.', 'http_code' => 400, 'description' => '未知系统异常。'], + ['code' => 'IoT.Instance.User.NoPermission', 'message' => 'The user has no permission to purchase IoT instances.', 'http_code' => 200, 'description' => '该用户没有权限购买iot实例'], + ['code' => 'IoT.Instance.User.RealName.NoAuthentication', 'message' => 'Your account has not passed the real-name authentication yet.', 'http_code' => 200, 'description' => '您的帐户尚未通过实名认证,请先实名认证后再操作'."\n"], + ['code' => 'iot.job.CancelJobFailed', 'message' => 'Failed to cancel the task.', 'http_code' => 400, 'description' => '取消任务失败。'], + ['code' => 'iot.job.DeleteJobFailed', 'message' => 'Failed to delete the task.', 'http_code' => 400, 'description' => '删除任务失败。'], + ['code' => 'iot.job.DescriptionOverSize', 'message' => 'The number of character in description must be less than 128.', 'http_code' => 400, 'description' => 'description字符串长度需要小于128。'], + ['code' => 'iot.job.DescriptionOverSize', 'message' => 'The number of character in description must be less than 128', 'http_code' => 400, 'description' => 'description字符串长度需要小于128'], + ['code' => 'iot.job.FileKeyIsBlank', 'message' => 'fileKey is blank.', 'http_code' => 400, 'description' => 'fileKey为空。'], + ['code' => 'iot.job.FileKeyIsBlank', 'message' => 'fileKey is blank', 'http_code' => 400, 'description' => 'fileKey为空'], + ['code' => 'iot.job.GenerateFileUploadUrlFailed', 'message' => 'Failed to generate the file upload URL.', 'http_code' => 400, 'description' => '生成文件上传URL失败。'], + ['code' => 'iot.job.IllegalTargetDevices', 'message' => 'The targetDevices parameter contains invalid devices.', 'http_code' => 400, 'description' => '请求参数TargetConfig中的TargetDevices包含不合法的设备。'], + ['code' => 'iot.job.InProgressTimeoutInMinutesIsNull', 'message' => 'inProgressTimeoutInMinutes is null.', 'http_code' => 400, 'description' => 'inProgressTimeoutInMinutes为空。'], + ['code' => 'iot.job.InProgressTimeoutInMinutesIsNull', 'message' => 'inProgressTimeoutInMinutes is null', 'http_code' => 400, 'description' => 'inProgressTimeoutInMinutes为空'], + ['code' => 'iot.job.InProgressTimeoutInMinutesOverSize', 'message' => 'inProgressTimeoutInMinutes should between 5 and 1440.', 'http_code' => 400, 'description' => '5 <=inProgressTimeoutInMinutes<= 1440。'], + ['code' => 'iot.job.InProgressTimeoutInMinutesOverSize', 'message' => 'inProgressTimeoutInMinutes should between 5 and 1440', 'http_code' => 400, 'description' => '5 <=inProgressTimeoutInMinutes<= 1440'], + ['code' => 'iot.job.JobActionForbidden', 'message' => 'This type of operation is forbidden when the task is in the current status.', 'http_code' => 400, 'description' => '任务当前状态,禁止该类型的操作。'], + ['code' => 'iot.job.JobCountExceedLimit', 'message' => 'The number of tasks exceeds the limit.', 'http_code' => 400, 'description' => '任务数量超出限制。'], + ['code' => 'iot.job.JobDocumentIsBlank', 'message' => 'jobDocument is blank.', 'http_code' => 400, 'description' => 'jobDocument为空。'], + ['code' => 'iot.job.JobDocumentIsBlank', 'message' => 'jobDocument is blank', 'http_code' => 400, 'description' => 'jobDocument为空'], + ['code' => 'iot.job.JobDocumentIsNotJson', 'message' => 'jobDocument is not json.', 'http_code' => 400, 'description' => 'jobDocument不是json格式。'], + ['code' => 'iot.job.JobDocumentIsNotJson', 'message' => 'jobDocument is not json', 'http_code' => 400, 'description' => 'jobDocument不是json格式'], + ['code' => 'iot.job.JobDocumentOverSize', 'message' => 'jobDocument should less 64KB.', 'http_code' => 400, 'description' => 'jobDocument要小于64KB。'], + ['code' => 'iot.job.JobDocumentOverSize', 'message' => 'jobDocument should less 64KB', 'http_code' => 400, 'description' => 'jobDocument要小于64KB'], + ['code' => 'iot.job.JobFileInSecure', 'message' => 'The file contains non-compliant content.', 'http_code' => 400, 'description' => '创建任务中上传的文件内容不合法。'], + ['code' => 'iot.job.JobInvokeServiceSidError', 'message' => 'The serviceIdentifier parameter is invalid when you initiate a task to call a service.', 'http_code' => 400, 'description' => '设备批量服务调用任务中,JobDocument中serviceIdentifier参数错误。'], + ['code' => 'iot.job.JobInvokeServiceSidError', 'message' => 'iot.job.JobInvokeServiceSidError.', 'http_code' => 400, 'description' => '任务执行规则中serviceIdentifier必须是不为空的字符串,且为TSL中定义的服务。'], + ['code' => 'iot.job.JobNameIllegal', 'message' => 'jobName contains illegal character.', 'http_code' => 400, 'description' => 'jobName包含非法字符。'], + ['code' => 'iot.job.JobNameIllegal', 'message' => 'jobName contains illegal character', 'http_code' => 400, 'description' => 'jobName包含非法字符'], + ['code' => 'iot.job.JobNameIsBlank', 'message' => 'jobName is blank.', 'http_code' => 400, 'description' => 'job名称为空。'], + ['code' => 'iot.job.JobNotExist', 'message' => 'The task does not exist.', 'http_code' => 400, 'description' => '任务不存在。'], + ['code' => 'iot.job.JobSetPropertyParamsError', 'message' => 'The params parameter is invalid when you initiate a task to set properties.', 'http_code' => 400, 'description' => '设备批量属性设置任务中,JobDocument中params参数错误。'], + ['code' => 'iot.job.JobTypeIllegal', 'message' => 'jobType is illegal.', 'http_code' => 400, 'description' => 'jobType数据不合法。'], + ['code' => 'iot.job.JobTypeIllegal', 'message' => 'jobType is illegal', 'http_code' => 400, 'description' => 'jobType数据不合法'], + ['code' => 'iot.job.JobTypeIsBlank', 'message' => 'jobType is blank.', 'http_code' => 400, 'description' => 'job类型为空。'], + ['code' => 'iot.job.JobTypeIsBlank', 'message' => 'jobType is blank', 'http_code' => 400, 'description' => 'job类型为空'], + ['code' => 'iot.job.ListTaskParamDeviceInfoInvalid', 'message' => 'The device parameters in the request is invalid. The productKey and deviceName parameters cannot be left empty at the same time.', 'http_code' => 400, 'description' => '请求参数Device中设备信息不合法。'], + ['code' => 'iot.job.ListTaskParamJobIdAndDeviceNull', 'message' => 'The JobId and Device parameters cannot be empty at the same time.', 'http_code' => 400, 'description' => '请求参数JobId和Device不能同时为空。'], + ['code' => 'iot.job.MaximumPerMinuteIsNull', 'message' => 'maximumPerMinute is null.', 'http_code' => 400, 'description' => 'maximumPerMinute为空。'], + ['code' => 'iot.job.MaximumPerMinuteIsNull', 'message' => 'maximumPerMinute is null', 'http_code' => 400, 'description' => 'maximumPerMinute为空'], + ['code' => 'iot.job.MaximumPerMinuteOverSize', 'message' => 'maximumPerMinute should between 50 and 1000.', 'http_code' => 400, 'description' => '50<=maximumPerMinute<=1000。'], + ['code' => 'iot.job.MaximumPerMinuteOverSize', 'message' => 'maximumPerMinute should between 50 and 1000', 'http_code' => 400, 'description' => '50<=maximumPerMinute<=1000'], + ['code' => 'iot.job.MessageContentDecodeError', 'message' => 'messageContent format is invalid. not base64.', 'http_code' => 400, 'description' => 'messageContent解码错误,非base64格式。'], + ['code' => 'iot.job.MessageContentDecodeError', 'message' => 'messageContent format is invalid. not base64', 'http_code' => 400, 'description' => 'messageContent解码错误,非base64格式'], + ['code' => 'iot.job.MessageContentIsBlank', 'message' => 'messageContent is blank.', 'http_code' => 400, 'description' => 'messageContent为空。'], + ['code' => 'iot.job.MessageContentIsBlank', 'message' => 'messageContent is blank', 'http_code' => 400, 'description' => 'messageContent为空'], + ['code' => 'iot.job.MessageContentIsNotString', 'message' => 'messageContent is not string.', 'http_code' => 400, 'description' => 'messageContent不是string类型。'], + ['code' => 'iot.job.MessageContentIsNotString', 'message' => 'messageContent is not string', 'http_code' => 400, 'description' => 'messageContent不是string类型'], + ['code' => 'iot.job.MessageQoSIllegal', 'message' => 'messageQoS is invalid.', 'http_code' => 400, 'description' => 'messageQoS数据不合法。'], + ['code' => 'iot.job.MessageQoSIllegal', 'message' => 'messageQoS is invalid', 'http_code' => 400, 'description' => 'messageQoS数据不合法'], + ['code' => 'iot.job.NotJobOwner', 'message' => 'You are not the owner of the task.', 'http_code' => 400, 'description' => '您不是该任务的拥有者。'], + ['code' => 'iot.job.NotTaskOwner', 'message' => 'You are not the owner of the task.', 'http_code' => 400, 'description' => '当前租户不是task的owner'], + ['code' => 'iot.job.ParamsError', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '参数异常。'], + ['code' => 'iot.job.QueryJobFailed', 'message' => 'Failed to query the task information.', 'http_code' => 400, 'description' => '查询任务信息失败。'], + ['code' => 'iot.job.QueryJobStaticsFailed', 'message' => 'Failed to query the task statistics.', 'http_code' => 400, 'description' => '查询任务信息失败。'], + ['code' => 'iot.job.QueryTaskFailed', 'message' => 'Failed to query the task.', 'http_code' => 400, 'description' => '查询指定任务下作业失败。'], + ['code' => 'iot.job.ReRunJobFailed', 'message' => 'Failed to implement the task.', 'http_code' => 400, 'description' => '任务重试失败。'], + ['code' => 'iot.job.ReRunJobFailed', 'message' => 'retry run job failed.', 'http_code' => 400, 'description' => '任务重试失败,请重试。'], + ['code' => 'iot.job.ScheduledTimeOverSize', 'message' => 'scheduledTime should between 10min and 7day.', 'http_code' => 400, 'description' => 'scheduledTime 范围 [10min, 7day]。'], + ['code' => 'iot.job.ScheduledTimeOverSize', 'message' => 'scheduledTime should between 10min and 7day', 'http_code' => 400, 'description' => 'scheduledTime 范围 [10min, 7day]'], + ['code' => 'iot.job.SignIsBlank', 'message' => 'sign is blank.', 'http_code' => 400, 'description' => 'sign为空。'], + ['code' => 'iot.job.SignIsBlank', 'message' => 'sign is blank', 'http_code' => 400, 'description' => 'sign为空'], + ['code' => 'iot.job.SignMethodIllegal', 'message' => 'signMethod is illegal.', 'http_code' => 400, 'description' => 'signMethod不合法。'], + ['code' => 'iot.job.SignMethodIllegal', 'message' => 'signMethod is illegal', 'http_code' => 400, 'description' => 'signMethod不合法'], + ['code' => 'iot.job.SignMethodIsBlank', 'message' => 'signMethod is blank.', 'http_code' => 400, 'description' => 'signMethod为空。'], + ['code' => 'iot.job.SignMethodIsBlank', 'message' => 'signMethod is blank', 'http_code' => 400, 'description' => 'signMethod为空'], + ['code' => 'iot.job.TargetConfigIsNull', 'message' => 'targetConfig is null.', 'http_code' => 400, 'description' => 'targetConfig为空。'], + ['code' => 'iot.job.TargetConfigIsNull', 'message' => 'targetConfig is null', 'http_code' => 400, 'description' => 'targetConfig为空'], + ['code' => 'iot.job.TargetDeviceIllegal', 'message' => 'targetDevice is illegal.', 'http_code' => 400, 'description' => 'targetType数据不合法。'], + ['code' => 'iot.job.TargetDeviceIllegal', 'message' => 'targetDevice is illegal', 'http_code' => 400, 'description' => 'targetType数据不合法'], + ['code' => 'iot.job.TargetDeviceIsEmpty', 'message' => 'targetDevice is empty.', 'http_code' => 400, 'description' => 'targetDevice为空。'], + ['code' => 'iot.job.TargetDeviceIsEmpty', 'message' => 'targetDevice is empty', 'http_code' => 400, 'description' => 'targetDevice为空'], + ['code' => 'iot.job.TargetDeviceOverSize', 'message' => 'targetDevice size must be less than 200.', 'http_code' => 400, 'description' => 'targetDevice数量需要小于200。'], + ['code' => 'iot.job.TargetDeviceOverSize', 'message' => 'targetDevice size must be less than 200', 'http_code' => 400, 'description' => 'targetDevice数量需要小于200'], + ['code' => 'iot.job.TargetDevicesContainsNull', 'message' => 'targetDevices contains null value.', 'http_code' => 400, 'description' => 'targetDevices包含空值。'], + ['code' => 'iot.job.TargetDevicesContainsNull', 'message' => 'targetDevices contains null value', 'http_code' => 400, 'description' => 'targetDevices包含空值'], + ['code' => 'iot.job.TargetGroupIdIsBlank', 'message' => 'targetGroupId is blank.', 'http_code' => 400, 'description' => 'targetGroupId为空。'], + ['code' => 'iot.job.TargetGroupIdIsBlank', 'message' => 'targetGroupId is blank', 'http_code' => 400, 'description' => 'targetGroupId为空'], + ['code' => 'iot.job.TargetProductKeyIsBlank', 'message' => 'targetProductKey is blank.', 'http_code' => 400, 'description' => 'targetProductKey为空。'], + ['code' => 'iot.job.TargetProductKeyIsBlank', 'message' => 'targetProductKey is blank', 'http_code' => 400, 'description' => 'targetProductKey为空'], + ['code' => 'iot.job.TargetTypeIllegal', 'message' => 'targetType is illegal.', 'http_code' => 400, 'description' => 'targetType数据不合法。'], + ['code' => 'iot.job.TargetTypeIllegal', 'message' => 'targetType is illegal', 'http_code' => 400, 'description' => 'targetType数据不合法'], + ['code' => 'iot.job.TargetTypeIsBlank', 'message' => 'targetType is blank.', 'http_code' => 400, 'description' => 'targetType为空。'], + ['code' => 'iot.job.TargetTypeIsBlank', 'message' => 'targetType is blank', 'http_code' => 400, 'description' => 'targetType为空'], + ['code' => 'iot.job.TaskIdIsNull', 'message' => 'The taskId parameter cannot be empty.', 'http_code' => 400, 'description' => '请求参数TaskId不能为空。'], + ['code' => 'iot.job.TaskIdIsNUll', 'message' => 'The value of the taskId parameter cannot be null.', 'http_code' => 400, 'description' => 'taskId不能为null。'], + ['code' => 'iot.job.TaskNotExist', 'message' => 'The task does not exist or has been deleted.', 'http_code' => 400, 'description' => '查询的任务下作业不存在。'], + ['code' => 'iot.job.TaskNotExist', 'message' => 'The task is not exist.', 'http_code' => 400, 'description' => '任务不存在或已经被删除。'], + ['code' => 'iot.job.TopicShortNameIsBlank', 'message' => 'topicShortName is blank.', 'http_code' => 400, 'description' => 'topicShortName为空。'], + ['code' => 'iot.job.TopicShortNameIsBlank', 'message' => 'topicShortName is blank', 'http_code' => 400, 'description' => 'topicShortName为空'], + ['code' => 'iot.job.TopicShortNameIsNotString', 'message' => 'topicShortName is not string.', 'http_code' => 400, 'description' => 'topicShortName不是string类型。'], + ['code' => 'iot.job.TopicShortNameIsNotString', 'message' => 'topicShortName is not string', 'http_code' => 400, 'description' => 'topicShortName不是string类型'], + ['code' => 'iot.job.UpdateJobFailed', 'message' => 'Failed to update the task.', 'http_code' => 400, 'description' => '更新任务下作业配置失败。'], + ['code' => 'iot.job.UpdateJobFailed', 'message' => 'update job config failed.', 'http_code' => 400, 'description' => '更新任务失败,请重试。'], + ['code' => 'Iot.lab.createDeviceFailed', 'message' => 'Failed to create the device.', 'http_code' => 400, 'description' => '创建设备操作失败,请稍后重试。'], + ['code' => 'Iot.lab.executeFailed', 'message' => 'Phase execution failed.', 'http_code' => 400, 'description' => '阶段执行失败,请稍后重试。'], + ['code' => 'Iot.lab.invokeServiceFailed', 'message' => 'Failed to invoke the service.', 'http_code' => 400, 'description' => '调用服务失败,请稍后重试。'], + ['code' => 'Iot.lab.labNameIsSame', 'message' => 'The labName of the lab is duplicated.', 'http_code' => 400, 'description' => '实验室名称重复。'], + ['code' => 'Iot.lab.labNameTooLong', 'message' => 'The maximum length of the labName is exceeded.', 'http_code' => 400, 'description' => '实验室名称超长。'], + ['code' => 'Iot.lab.labNameWrong', 'message' => 'The labName is invalid.', 'http_code' => 400, 'description' => '实验室名称错误。'], + ['code' => 'Iot.lab.labNotFound', 'message' => 'The lab is not found.', 'http_code' => 400, 'description' => '仿真实验室不存在。'], + ['code' => 'Iot.lab.noPermission', 'message' => 'No permission to create lab.', 'http_code' => 400, 'description' => '创建实验室无访问权限。'], + ['code' => 'Iot.lab.numberOverLimit', 'message' => 'The lab number exceeds the limit.', 'http_code' => 400, 'description' => '实验室的数量超出限制。'], + ['code' => 'Iot.lab.parameterNotTemplateConfig', 'message' => 'The request parameter does not match the template configuration.', 'http_code' => 400, 'description' => '请求参数与模板配置不匹配。'], + ['code' => 'Iot.lab.productFailed', 'message' => 'Failed to create a product.', 'http_code' => 400, 'description' => '创建产品操作失败,请稍后重试。'], + ['code' => 'Iot.lab.statusLabWrong', 'message' => 'The status of lab does not permit the operation.', 'http_code' => 400, 'description' => '当前实验室状态不允许该操作。'], + ['code' => 'Iot.lab.templateWrong', 'message' => 'The template of simulation lab is invalid.', 'http_code' => 400, 'description' => '仿真实验室的模板错误。'], + ['code' => 'Iot.lab.tenantIdIsWrong', 'message' => 'The tenantId of the product is invalid.', 'http_code' => 400, 'description' => '租户ID错误的,请核实。'], + ['code' => 'Iot.lab.thingModelEmpty', 'message' => 'The thing model is empty.', 'http_code' => 400, 'description' => '创建物模型操作失败,请稍后重试。'], + ['code' => 'Iot.lab.updateLabStatusFailed', 'message' => 'Failed to update the lab status.', 'http_code' => 400, 'description' => '更新实验室状态失败。'], + ['code' => 'Iot.lab.virtualDeviceJobFaile', 'message' => 'Failed to create a virtual device job.', 'http_code' => 400, 'description' => '创建虚拟设备任务操作失败,请稍后重试。'], + ['code' => 'Iot.lab.virtualDeviceJobWrong', 'message' => 'The configuration of virtual device job is invalid.', 'http_code' => 400, 'description' => '虚拟设备任务配置错误。'], + ['code' => 'iot.linkwan.Abandoned', 'message' => 'The LinkWAN API is deprecated.', 'http_code' => 400, 'description' => 'LinkWAN接口已弃用。'], + ['code' => 'iot.linkwan.CloudProductNotActivated', 'message' => 'The LinkWAN cloud service is not activated.', 'http_code' => 400, 'description' => '未开通LinkWAN云产品。'], + ['code' => 'iot.linkwan.DevEuiDuplicated', 'message' => 'The DevEui is duplicated. The node has been added to the current product.', 'http_code' => 400, 'description' => 'DevEui重复,当前产品下已经添加了该节点。'], + ['code' => 'iot.linkwan.ExceedMaxOperationCount', 'message' => 'The maximum number of devices for a single batch has been exceeded.', 'http_code' => 400, 'description' => '超过了单次批量任务的最大设备数。'], + ['code' => 'iot.linkwan.ExceedNodeLimit', 'message' => 'The number of devices in the user contract exceeds the limit.', 'http_code' => 400, 'description' => '超过了用户合约中的设备数限额,无法继续绑定。'], + ['code' => 'iot.linkwan.FeatureNotActivated', 'message' => 'The feature is not activated.', 'http_code' => 400, 'description' => '功能未开通。'], + ['code' => 'iot.linkwan.ForbiddenByRam', 'message' => 'You do not have the required RAM permissions to perform LinkWAN operations.', 'http_code' => 400, 'description' => '没有执行LinkWAN操作所需的RAM权限。'], + ['code' => 'iot.linkwan.InternalError', 'message' => 'A LinkWAN system error occurred.', 'http_code' => 400, 'description' => 'LinkWAN系统内部错误。'], + ['code' => 'iot.linkwan.InvalidParameter', 'message' => 'The input parameter is invalid.', 'http_code' => 400, 'description' => '传入的参数不合法。'], + ['code' => 'iot.linkwan.InvalidPinCode', 'message' => 'The PinCode is invalid.', 'http_code' => 400, 'description' => '无效的PinCode。'], + ['code' => 'iot.linkwan.JoinPermissionAlreadyBoundNodeGroup', 'message' => 'The access certificate has been bound to another product.', 'http_code' => 400, 'description' => '入网凭证已经绑定其他产品。'], + ['code' => 'iot.linkwan.JoinPermissionDoesNotExist', 'message' => 'The access certificate does not exist.', 'http_code' => 400, 'description' => '入网凭证不存在。'], + ['code' => 'iot.linkwan.LinkWanRequestFail', 'message' => 'An error occurred while calling the LinkWAN service.', 'http_code' => 400, 'description' => 'LinkWAN请求失败。'], + ['code' => 'iot.linkwan.LinkWanUnknownException', 'message' => 'An unknown error occurred whiling processing the LinkWAN request.', 'http_code' => 400, 'description' => 'LinkWAN请求未知异常。'], + ['code' => 'iot.linkwan.NodeAlreadyAdded', 'message' => 'The device has been added to other products.', 'http_code' => 400, 'description' => '该设备已经被添加到其他产品下。'], + ['code' => 'iot.linkwan.NodeDoesNotExist', 'message' => 'The DevEui is invalid.', 'http_code' => 400, 'description' => '无效的DevEui。'], + ['code' => 'iot.linkwan.NonExistent', 'message' => 'The resource does not exist.', 'http_code' => 400, 'description' => '要操作的资源不存在。'], + ['code' => 'iot.linkwan.NotResourceOwner', 'message' => 'You cannot manage the resource because you are not the owner of the resource.', 'http_code' => 400, 'description' => '不是资源的所有者,无法操作该资源。'], + ['code' => 'iot.linkwan.ProductAlreadyExisted', 'message' => 'The product already exists.', 'http_code' => 400, 'description' => '产品已经存在。'], + ['code' => 'iot.linkwan.ProductDoesNotExist', 'message' => 'The specified product does not exist.', 'http_code' => 400, 'description' => '产品不存在。'], + ['code' => 'iot.linkwan.ResourceLocked', 'message' => 'Resources are locked by other cloud services.', 'http_code' => 400, 'description' => '资源被其他云产品锁定。'], + ['code' => 'iot.lora.ActivateLoRaDeviceFailed', 'message' => 'Failed to activate the LoRa device.', 'http_code' => 400, 'description' => '激活LoRa设备失败'], + ['code' => 'iot.lora.IllegalFport', 'message' => 'The specified multicast port number is invalid.', 'http_code' => 400, 'description' => '入参组播协议端口号非法。'], + ['code' => 'iot.lora.inActivateLoRaDeviceFailed', 'message' => 'Failed to delete the LoRa device.', 'http_code' => 400, 'description' => '删除LoRa设备失败'], + ['code' => 'iot.lora.NullMcAddress', 'message' => 'You must specify the multicast address.', 'http_code' => 400, 'description' => '入参组播地址没有赋值。'], + ['code' => 'iot.lora.NullMulticastMessage', 'message' => 'You must specify the multicast message.', 'http_code' => 400, 'description' => '入参组播消息没有赋值。'], + ['code' => 'iot.lv.canNotFindFace', 'message' => 'can not find this face', 'http_code' => 403, 'description' => '没有找到该人脸'], + ['code' => 'iot.lv.gbServiceNotEnabled', 'message' => 'Gb28181 service not enabled.', 'http_code' => 400, 'description' => '国标服务未开启。'], + ['code' => 'iot.lv.requestAuthError', 'message' => 'request auth error.', 'http_code' => 403, '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.message.broker.ParamCheckError', 'message' => 'Param check error.', 'http_code' => 400, 'description' => '参数校验错误。'], + ['code' => 'iot.message.broker.ProductCheckError', 'message' => 'Product check error.', 'http_code' => 400, 'description' => '产品鉴权失败。'], + ['code' => 'iot.message.broker.SystemError', 'message' => 'System error.', 'http_code' => 400, 'description' => '系统异常。'], + ['code' => 'iot.message.broker.TopicConfigNumExceed', 'message' => 'Topic config num exceed.', 'http_code' => 400, 'description' => 'Topic数量超限。'], + ['code' => 'iot.messageborker.QueryTopicReverseRouteTableListActionError', 'message' => 'An error occurred while querying the reverse routing table.', 'http_code' => 400, 'description' => '获取消息反向路由列表(即消息源Topic列表)失败。'], + ['code' => 'iot.messageborker.QueryTopicRouteTableListActionError', 'message' => 'An error occurred while querying the routing table.', 'http_code' => 400, 'description' => '获取消息路由列表失败。'], + ['code' => 'iot.messagebroker.BatchPublishMessageException', 'message' => 'An error occurred while publishing multiple messages.', 'http_code' => 400, 'description' => '批量发送消息过程出现异常。'], + ['code' => 'Iot.MessageBroker.BatchSubTopicFailed', 'message' => 'An error occurred while batch subscribing to the topic.', 'http_code' => 500, 'description' => '批量订阅主题失败。'], + ['code' => 'iot.messagebroker.BatchSubTopicFailed', 'message' => 'An error occurred while subscribing multiple topics at the same time.', 'http_code' => 400, 'description' => '批量订阅主题失败。'], + ['code' => 'iot.messagebroker.CorrelationDataExceedMaxLength', 'message' => 'The correlation data exceeds the length limit.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,相关数据长度超过最大限制(128个字符)。'], + ['code' => 'iot.messagebroker.CorrelationDataNotBase64Encode', 'message' => 'The correlation data in the MQTT 5.0 protocol is not base64 encoded.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,相关数据(Correlation Data)未进行Base64编码转换。'], + ['code' => 'iot.messagebroker.CreateTopicRouteFailed', 'message' => 'An error occurred while creating the topic route.', 'http_code' => 400, 'description' => '创建Topic之间消息路由失败。'], + ['code' => 'iot.messagebroker.CreateTopicTemplateException', 'message' => 'An error occurred while creating the topic category.', 'http_code' => 400, 'description' => '创建Topic类过程发生异常。'], + ['code' => 'iot.messagebroker.CreateTopicTemplateFailed', 'message' => 'An error occurred while creating the topic category.', 'http_code' => 400, 'description' => '创建Topic类失败。'], + ['code' => 'iot.messagebroker.DeleteTopicRouteFailed', 'message' => 'An error occurred while deleting the topic route.', 'http_code' => 400, 'description' => '删除指定Topic间的路由失败。'], + ['code' => 'iot.messagebroker.DeleteTopicTemplateException', 'message' => 'An exception occurred while deleting the topic category.', 'http_code' => 400, 'description' => '删除Topic类过程发生异常。'], + ['code' => 'iot.messagebroker.DeleteTopicTemplateFailed', 'message' => 'An error occurred while deleting the topic category.', 'http_code' => 400, 'description' => '删除Topic类失败。'], + ['code' => 'iot.messagebroker.DesireInfoInShadowMessageIsNotJson', 'message' => 'The desire parameter of the device shadow is not in the JSON format.', 'http_code' => 400, 'description' => '设备影子中的desire信息不是JSON格式。'], + ['code' => 'iot.messagebroker.DesireValueIsNullInShadowMessage', 'message' => 'The desire parameter of the device shadow is empty.', 'http_code' => 400, 'description' => '设备影子中的desire信息值为空。'], + ['code' => 'iot.messagebroker.DestTopicNameArraySizeIsLarge', 'message' => 'The number of destination topics set for a source topic exceeds the limit.', 'http_code' => 400, 'description' => '同一消息源Topic配置的路由目标Topic数量超过最大限制数。'], + ['code' => 'iot.messagebroker.ElementKeyOrValueIsNullInDesire', 'message' => 'The desire parameter contains an empty property identifier or value.', 'http_code' => 400, 'description' => 'desire信息包含有空的属性标识符或者属性值。'], + ['code' => 'iot.messagebroker.ElementKeyOrValueIsNullInReport', 'message' => 'The report parameter contains an empty property identifier or value.', 'http_code' => 400, 'description' => 'report信息包含有空的属性标识符或者属性值。'], + ['code' => 'Iot.MessageBroker.EmptySubTopicList', 'message' => 'The subscription topic list is empty.', 'http_code' => 400, 'description' => '订阅的主题列表为空。'], + ['code' => 'iot.messagebroker.EmptySubTopicList', 'message' => 'The list of subscribed topics is empty.', 'http_code' => 400, 'description' => '订阅的主题列表为空。'], + ['code' => 'Iot.MessageBroker.EmptyUnSubTopicList', 'message' => 'The unsub topic list is empty.', 'http_code' => 400, 'description' => '取消订阅的主题列表为空。'], + ['code' => 'iot.messagebroker.HALFCONN', 'message' => 'The specified operation has failed. The device is inactive.', 'http_code' => 400, 'description' => '由于设备为半连接状态导致失败。'], + ['code' => 'iot.messagebroker.HALFCONN', 'message' => 'The specified operation has failed. The device is in an inactive status.', 'http_code' => 400, 'description' => '设备处于非活跃可能心跳失败。'], + ['code' => 'iot.messagebroker.IllegalArgument', 'message' => 'The argument is invalid.', 'http_code' => 400, 'description' => '参数非法。'], + ['code' => 'iot.messagebroker.IncorrectRuleSql', 'message' => 'The specified rule is invalid.', 'http_code' => 400, 'description' => '规则的SQL配置错误。'], + ['code' => 'iot.messagebroker.InvalidFormattedSrcTopicName', 'message' => 'The topic name format is invalid.', 'http_code' => 400, 'description' => '消息源Topic名称格式错误。'], + ['code' => 'iot.messagebroker.InvalidFormattedTopicName', 'message' => 'The topic format is invalid.', 'http_code' => 400, 'description' => 'Topic格式错误。'], + ['code' => 'Iot.MessageBroker.InvalidFormattedTopicName', 'message' => 'The topic format specified while publishing the message is incorrect.', 'http_code' => 400, 'description' => '发送消息的主题格式错误。'], + ['code' => 'iot.messagebroker.InvalidFormattedTopicTemplateId', 'message' => 'The format of the topic category ID is invalid.', 'http_code' => 400, 'description' => 'Topic类ID格式错误。'], + ['code' => 'iot.messagebroker.InvalidInstanceWithCodec', 'message' => 'Only Exclusive Enterprise Edition instances support compression and decompression.', 'http_code' => 400, 'description' => '只有尊享型实例支持压缩/解压缩。'], + ['code' => 'iot.messagebroker.InvalidInstanceWithCodec', 'message' => 'Only Exclusive instances support compression and decompression.', 'http_code' => 400, 'description' => '只有尊享型实例支持压缩/解压缩。'], + ['code' => 'iot.messagebroker.InvalidMqttResponseTopic', 'message' => 'The response topic in the MQTT 5.0 protocol is invalid.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,响应主题(Response Topic)不合法。'], + ['code' => 'iot.messagebroker.InvalidOperationWithBroadcast', 'message' => 'The operation must be sub for enabling broadcast.', 'http_code' => 400, 'description' => '开启广播时操作只能是订阅。'], + ['code' => 'iot.messagebroker.InvalidOperationWithBroadcast', 'message' => 'Only subscription is allowed for broadcast topics.', 'http_code' => 400, 'description' => '开启广播时操作只能是订阅。'], + ['code' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', 'message' => 'The operation must be sub or all for enabling proxy subscription.', 'http_code' => 400, 'description' => '开启代理订阅的操作只能是订阅或所有。'], + ['code' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', 'message' => 'The operation must be subscription or all for topics with proxy subscription.', 'http_code' => 400, 'description' => '开启代理订阅的操作只能是订阅或所有。'], + ['code' => 'iot.messagebroker.InvalidPubTopicFormat', 'message' => 'The pub topic cannot contain wildcard characters.', 'http_code' => 400, 'description' => '发送主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidPubTopicFormat', 'message' => 'The topic cannot contain wildcard characters.', 'http_code' => 400, 'description' => '发送主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTimeoutValue', 'message' => 'The timeout parameter is invalid.', 'http_code' => 400, 'description' => '超时时间参数设置有误。'], + ['code' => 'iot.messagebroker.InvalidTopicTemplateOperationValue', 'message' => 'The permission of the topic category is invalid.', 'http_code' => 400, 'description' => 'Topic类的操作权限值错误。操作权限取值。'], + ['code' => 'iot.messagebroker.InvalidTopicWithBroadcast', 'message' => 'Topics for which broadcast is enabled cannot contain wildcard characters.', 'http_code' => 400, 'description' => '开启广播的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTopicWithBroadcast', 'message' => 'Broadcast topics cannot contain wildcard characters.', 'http_code' => 400, 'description' => '开启广播的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTopicWithCodec', 'message' => 'Topics for which compression and decompression are enabled cannot contain wildcard characters.', 'http_code' => 400, 'description' => '压缩/解压缩的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTopicWithCodec', 'message' => 'Compressed or decompressed topics cannot contain wildcard characters.', 'http_code' => 400, 'description' => '压缩/解压缩的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', 'message' => 'Topics for which proxy subscription is enabled cannot contain wildcard characters.', 'http_code' => 400, 'description' => '开启代理订阅的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', 'message' => 'Topics with proxy subscription cannot contain wildcard characters.', 'http_code' => 400, 'description' => '开启代理订阅的主题不能包含通配符。'], + ['code' => 'iot.messagebroker.InvalidUserProperty', 'message' => 'The custom property format is invalid.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,用户自定义属性格式不合法。'], + ['code' => 'iot.messagebroker.InvalidVersionValueInShadowMessage', 'message' => 'The version of the device shadow is invalid.', 'http_code' => 400, 'description' => '设备影子中的version值错误。'], + ['code' => 'iot.messagebroker.MessageContentIsNotBase64Encode', 'message' => 'The message content is not Base64-encoded.', 'http_code' => 400, 'description' => '消息内容没有经过base64编码。'], + ['code' => 'iot.messagebroker.MessageNotExist', 'message' => 'The message does not exist.', 'http_code' => 400, 'description' => '消息不存在'], + ['code' => 'iot.messagebroker.MessageSizeExceedLimit', 'message' => 'The size of the message exceeds the limit.', 'http_code' => 400, 'description' => '发送消息的内容大小超过限制'], + ['code' => 'iot.messagebroker.MethodValueIsNotUpdate', 'message' => 'The value of the method parameter in the device shadow is not update.', 'http_code' => 400, 'description' => '设备影子中的method信息值不是update。'], + ['code' => 'iot.messagebroker.NoneElementDestTopicNameInArray', 'message' => 'The topics that you subscribe to have no messages.', 'http_code' => 400, 'description' => '目标Topic列表中没有元素。'], + ['code' => 'iot.messagebroker.NoneElementInDesire', 'message' => 'The desire parameter does not contain properties.', 'http_code' => 400, 'description' => 'desire信息中没有属性。'], + ['code' => 'iot.messagebroker.NoneElementInReport', 'message' => 'No properties are submitted.', 'http_code' => 400, 'description' => 'report信息中没有属性。'], + ['code' => 'iot.messagebroker.NotFoundDesireInShadowMessage', 'message' => 'The desire parameter included in the state parameter of the device shadow is empty.', 'http_code' => 400, 'description' => '设备影子的state信息中没有desire信息。'], + ['code' => 'iot.messagebroker.NotFoundMethodInShadowMessage', 'message' => 'No methods are defined for the device shadow.', 'http_code' => 400, 'description' => '设备影子没有method信息。'], + ['code' => 'iot.messagebroker.NotFoundReportInShadowMessage', 'message' => 'No submitted data is defined in the device shadow.', 'http_code' => 400, 'description' => '设备影子中没有report信息。'], + ['code' => 'iot.messagebroker.NotFoundStateInShadowMessage', 'message' => 'No states are defined in the device shadow.', 'http_code' => 400, 'description' => '设备影子中没有state信息。'], + ['code' => 'iot.messagebroker.NotFoundVersionOrNullVersionValue', 'message' => 'The specified Version parameter is empty or invalid.', 'http_code' => 400, 'description' => '缺少version信息或者version值为空。'], + ['code' => 'iot.messagebroker.NotMatchedProductKeyWithSrcTopicOwner', 'message' => 'The ProductKey that corresponds to the subscribed topic does not belong to the current user.', 'http_code' => 400, 'description' => '消息源Topic对应的产品ProductKey不属于当前用户。'], + ['code' => 'iot.messagebroker.NullCorrelationData', 'message' => 'The correlation data is empty', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,相关数据(Correlation Data)为空。'], + ['code' => 'iot.messagebroker.NullMessageContent', 'message' => 'The content of the message cannot be empty.', 'http_code' => 400, 'description' => '消息内容不能为空。'], + ['code' => 'iot.messagebroker.NullShadowMessage', 'message' => 'The message content in the device shadow is empty.', 'http_code' => 400, 'description' => '设备影子内容不能为空。'], + ['code' => 'iot.messagebroker.NullSrcTopicName', 'message' => 'The topic name is empty.', 'http_code' => 400, 'description' => '消息源Topic名称不能为空。'], + ['code' => 'iot.messagebroker.NullTopicName', 'message' => 'The topic specified while publishing the message is empty.', 'http_code' => 400, 'description' => '消息队列中接收消息的Topic不能为空。'], + ['code' => 'iot.messagebroker.NullTopicShortName', 'message' => 'The custom topic name is empty.', 'http_code' => 400, 'description' => '发送消息的自定义主题后缀为空。'], + ['code' => 'iot.messagebroker.NullTopicTemplateId', 'message' => 'The topic category ID cannot empty.', 'http_code' => 400, 'description' => 'Topic类ID不能为空。'], + ['code' => 'iot.messagebroker.NullTopicTemplateOperation', 'message' => 'The permission of the topic category is empty.', 'http_code' => 400, 'description' => 'Topic类的操作权限不能为空。'], + ['code' => 'iot.messagebroker.OFFLINE', 'message' => 'The specified operation has failed. The device is offline.', 'http_code' => 400, 'description' => '由于设备离线导致失败。'], + ['code' => 'iot.messagebroker.ProductTopicNotFound', 'message' => 'The product topic template does not exist.', 'http_code' => 400, 'description' => '产品主题模板不存在。'], + ['code' => 'iot.messagebroker.PublishMessageException', 'message' => 'An error occurred while publishing the message.', 'http_code' => 400, 'description' => '发送消息过程出现异常。'], + ['code' => 'iot.messagebroker.PublishMessageFailed', 'message' => 'An error occurred while publishing the messages.', 'http_code' => 400, 'description' => '发送消息失败。'], + ['code' => 'iot.messagebroker.QueryDeviceShadowActionError', 'message' => 'An error occurred while querying the device shadow.', 'http_code' => 400, 'description' => '查询设备影子失败。'], + ['code' => 'iot.messagebroker.QueryDeviceTopicActionError', 'message' => 'An error occurred while querying the device topics.', 'http_code' => 400, 'description' => '查询设备主题失败。'], + ['code' => 'iot.messagebroker.QueryDeviceTopicException', 'message' => 'An exception occurred while querying the device topics.', 'http_code' => 400, 'description' => '查询设备主题过程发生异常。'], + ['code' => 'iot.messagebroker.QueryMessageFailed', 'message' => 'Failed to query the messages.', 'http_code' => 400, 'description' => '查询消息失败'], + ['code' => 'iot.messagebroker.QueryProductTopicListActionError', 'message' => 'An error occurred while querying the topic categories.', 'http_code' => 400, 'description' => '获取Topic类列表失败。'], + ['code' => 'iot.messagebroker.QueryRuleConfigActionException', 'message' => 'An error occurred while querying the rule configurations.', 'http_code' => 400, 'description' => '获取规则配置信息过程出现异常。'], + ['code' => 'iot.messagebroker.QueryRuleConfigActionException', 'message' => 'An exception occurred while querying the rule configuration.', 'http_code' => 400, 'description' => '获取规则出现异常。'], + ['code' => 'iot.messagebroker.QueryTopicTemplateActionError', 'message' => 'An error occurred while querying topic categories.', 'http_code' => 400, 'description' => '查询Topic类失败。'], + ['code' => 'iot.messagebroker.QueryTopicTemplateException', 'message' => 'An exception occurred while querying the topic category.', 'http_code' => 400, 'description' => '获取Topic类过程发生异常。'], + ['code' => 'iot.messagebroker.RateLimit', 'message' => 'The specified operation has failed due to throttling.', 'http_code' => 400, 'description' => '由于限流导致失败。'], + ['code' => 'iot.messagebroker.ReportInShadowMessageIsNotJson', 'message' => 'The submitted device shadow data in the state parameter is not in the JSON format.', 'http_code' => 400, 'description' => '设备影子中的state信息中的report信息不是JSON格式。'], + ['code' => 'iot.messagebroker.RrpcException', 'message' => 'An error occurred while sending the RRPC message.', 'http_code' => 400, 'description' => 'RRPC发送消息过程出现异常。'], + ['code' => 'iot.messagebroker.RrpcFailed', 'message' => 'An error occurred while sending the Revert-PRC message.', 'http_code' => 400, 'description' => 'RRPC发送消息失败。'], + ['code' => 'iot.messagebroker.ShadowMessageIsNotJson', 'message' => 'The device shadow is not in the JSON format.', 'http_code' => 400, 'description' => '设备影子不是JSON格式。'], + ['code' => 'iot.messagebroker.ShadowMessageLengthIsLarge', 'message' => 'The length of the string exceeds the limit set on the device shadow.', 'http_code' => 400, 'description' => '设备影子的长度超过最大限制。'], + ['code' => 'iot.messagebroker.ShortNameExceedMaxLength', 'message' => 'The custom topic name exceeds the length limit.', 'http_code' => 400, 'description' => '自定义主题后缀超过最大长度限制。'], + ['code' => 'iot.messagebroker.SubscribeFailed', 'message' => 'The subscription failed.', 'http_code' => 400, 'description' => '订阅topic失败'], + ['code' => 'iot.messagebroker.TIMEOUT', 'message' => 'A timeout error occurred.', 'http_code' => 400, 'description' => '由于超时导致失败。'], + ['code' => 'iot.messagebroker.TooManyElementInDesire', 'message' => 'The number of properties exceeds the limit.', 'http_code' => 400, 'description' => 'desire信息中包含的属性总数超过最大限定数。'], + ['code' => 'iot.messagebroker.TooManyElementInReport', 'message' => 'The number of submitted properties exceeds the limit.', 'http_code' => 400, 'description' => 'report信息包含的属性总数超过限定最大数。'], + ['code' => 'iot.messagebroker.TooManyUserProperties', 'message' => 'Too many custom properties are specified.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,用户自定义属性个数超过最大限制(20个)。'], + ['code' => 'iot.messagebroker.TopicAlreadyFound', 'message' => 'The topic category name already exists under the product.', 'http_code' => 400, 'description' => '同一产品下Topic类名称重复。'], + ['code' => 'iot.messagebroker.TopicConfigDuplicated', 'message' => 'The topic configuration already exists.', 'http_code' => 400, 'description' => '主题配置已存在。'], + ['code' => 'iot.messagebroker.TopicConfigNumExceedLimit', 'message' => 'Topic config number exceed limit.', 'http_code' => 400, 'description' => '主题配置数量超限。'], + ['code' => 'iot.messagebroker.TopicTemplateCountExceedMax', 'message' => 'The number of topic categories exceeds the limit.', 'http_code' => 400, 'description' => '产品的Topic类数量超过最大值。'], + ['code' => 'Iot.MessageBroker.TopicTemplateIsNotFound', 'message' => 'The topic template does not exist.', 'http_code' => 400, 'description' => '主题模板不存在。'], + ['code' => 'iot.messagebroker.TopicTemplateIsNotFound', 'message' => 'The topic category does not exist.', 'http_code' => 400, 'description' => 'Topic类不存在。'], + ['code' => 'iot.messagebroker.UnSubscribeFailed', 'message' => 'Failed to unsubscribe the topic.', 'http_code' => 400, 'description' => '取消订阅topic失败'], + ['code' => 'iot.messagebroker.UpdateDeviceShadowMessageFailed', 'message' => 'Failed to update the device shadow.', 'http_code' => 400, 'description' => '更新设备影子失败。'], + ['code' => 'iot.messagebroker.UpdateTopicTemplateException', 'message' => 'An error occurred while updating the topic category.', 'http_code' => 400, 'description' => '更新Topic类过程发生异常。'], + ['code' => 'iot.messagebroker.UpdateTopicTemplateFailed', 'message' => 'An error occurred while updating the topic category.', 'http_code' => 400, 'description' => '更新Topic类失败。'], + ['code' => 'iot.messagebroker.UserPropertyListExceedMaxLength', 'message' => 'The custom properties exceeds the length limit.', 'http_code' => 400, 'description' => 'MQTT 5.0协议中,用户自定义属性总长度超过最大限制(8192个字符)。'], + ['code' => 'iot.ota.CancelDeviceTaskFailed', 'message' => 'The device task cannot be canceled.', 'http_code' => 400, 'description' => '设备正在升级或升级任务已结束,取消升级任务失败。'], + ['code' => 'iot.ota.ConfirmNotAllowedNow', 'message' => 'You cannot confirm the device update tasks at the current time.', 'http_code' => 400, 'description' => '当前时间,设备不可升级,不能对待确认状态的设备升级作业,进行确认。'], + ['code' => 'iot.ota.ConfirmNotAllowedNow', 'message' => 'It is not allowed to confirm taskIds than not in allowed interval.', 'http_code' => 400, 'description' => '升级作业在当前时间不能被确认。'], + ['code' => 'iot.ota.CreateOTAModuleExceedLimit', 'message' => 'The number of OTA modules under the product exceeds the limit.', 'http_code' => 400, 'description' => '产品下的OTA模块数超过了限制。'], + ['code' => 'iot.ota.CreateOTAModuleExceedLimit', 'message' => 'The amount of ota module under product has exceed limit.', 'http_code' => 400, 'description' => 'product下的ota模块梳理超过了限制。'], + ['code' => 'iot.ota.CreateOTAModuleFailure', 'message' => 'The parameter in the CreateOTAModule request is invalid.', 'http_code' => 400, 'description' => '创建OTA模块的过程中产生异常。'], + ['code' => 'iot.ota.CreateOTAModuleFailure', 'message' => 'There is an error occurred for CreateOTAModule request.', 'http_code' => 400, 'description' => '创建ota模块的过程中产生异常。'], + ['code' => 'iot.ota.CreateOTAModuleNameExist', 'message' => 'The OTA module name already exists.', 'http_code' => 400, 'description' => '创建OTA模块的名称重复。'], + ['code' => 'iot.ota.CreateOTAModuleNameFailure', 'message' => 'the name of module is reserved.', 'http_code' => 400, 'description' => '该ota模块名称是保留字段,不允许被创建。'], + ['code' => 'iot.ota.CreateOTAModuleParamError', 'message' => 'The parameter in the CreateOTAModule request is invalid.', 'http_code' => 400, 'description' => '创建OTA模块的请求中参数错误。'], + ['code' => 'iot.ota.CreateOTAUpgradeJobFailure', 'message' => 'Failed to create job.', 'http_code' => 400, 'description' => '创建批量升级任务失败。'], + ['code' => 'iot.ota.DeleteDefaultModuleFailure', 'message' => 'The default module can not be deleted.', 'http_code' => 400, 'description' => 'ota默认模块不能被删除。'], + ['code' => 'iot.ota.DeleteOtaDefaultModule', 'message' => 'The default module cannot be deleted.', 'http_code' => 400, 'description' => '默认模块不能被删除。'], + ['code' => 'iot.ota.DeleteOtaDefaultModule', 'message' => 'the default module can not be deleted.', 'http_code' => 400, 'description' => 'ota默认模块不能被删除。'], + ['code' => 'iot.ota.DeleteOTAModuleFailure', 'message' => 'An error occurred while deleting the OTA module.', 'http_code' => 400, 'description' => '删除OTA模块的过程中产生异常。'], + ['code' => 'iot.ota.DeleteOTAModuleFailure', 'message' => 'There is an error occurred for DeleteOTAModule request.', 'http_code' => 400, 'description' => '删除ota模块的过程中产生异常。'], + ['code' => 'iot.ota.DeleteOTAModulePackageExist', 'message' => 'The OTA module that has update packages cannot be deleted.', 'http_code' => 400, 'description' => '有升级包的OTA模块不能被删除。'], + ['code' => 'iot.ota.DeleteOTAModuleParamError', 'message' => 'An error occurred while processing the DeleteOTAModule request.', 'http_code' => 400, 'description' => '删除OTA模块的请求中参数错误。'], + ['code' => 'iot.ota.DeleteOTAModuleParamError', 'message' => 'There is an error param for DeleteOTAModule request.', 'http_code' => 400, 'description' => '删除ota模块的请求中参数错误。'], + ['code' => 'iot.ota.DeviceNotExist', 'message' => 'The device does not exist.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.ota.DeviceNotReUpgraded', 'message' => 'There is no device can upgrade.', 'http_code' => 400, 'description' => '没有可以重升级的设备。'], + ['code' => 'iot.ota.DeviceTaskNotExist', 'message' => 'The device task does not exist.', 'http_code' => 400, 'description' => '设备当前没有对应的升级任务。'], + ['code' => 'iot.ota.DeviceTaskNotFound', 'message' => 'There is no device task.', 'http_code' => 400, 'description' => '当前没有设备升级任务。'], + ['code' => 'iot.ota.DynamicGroupConflict', 'message' => 'The conflict between multiModuleMode and overwriteMode in dynamic group.', 'http_code' => 400, 'description' => '覆盖设备之前的升级任务和设备支持多模块同时升级,这两个值与动态分组发起的存量动态批次的值不一致'], + ['code' => 'iot.ota.DynamicGroupExpressionInvalid', 'message' => 'The moduleName and moduleVersion of dynamic group expression mismatch.', 'http_code' => 400, 'description' => '动态分组对应的规则中模块名称和模块版本必须同时存在。'], + ['code' => 'iot.ota.dynamicGroupForbiddenInDefaultInstance', 'message' => 'The dynamicGroup is forbidden in default instance.', 'http_code' => 400, 'description' => '动态分组在公共实例下不支持'], + ['code' => 'iot.ota.DynamicGroupTaskCountExceedLimit', 'message' => 'The task count of dynamic group has exceeded the limit.', 'http_code' => 400, 'description' => '动态分组对应的批次数超过限制。'], + ['code' => 'iot.ota.EmptyDeviceInfoParams', 'message' => 'The device information cannot be empty.', 'http_code' => 400, 'description' => '请求参数中,设备信息不能为空。'], + ['code' => 'iot.ota.EmptyJobId', 'message' => 'Parameter JobId is empty.', 'http_code' => 400, 'description' => '升级批次ID不能为null。'], + ['code' => 'iot.ota.EmptyMaximumPerMinute', 'message' => 'You must specify a MaximumPerMinute.', 'http_code' => 400, 'description' => '每分钟最大推送速率不能为空。'], + ['code' => 'iot.ota.EmptyNumberOfNotifiedDevicesAndNumberOfSucceedDevices', 'message' => 'Both of NumberOfNotifiedDevices and NumberOfSucceedDevices are empty.', 'http_code' => 400, 'description' => '参数NumberOfNotifiedDevices和NumberOfSucceedDevices不能都为空。'], + ['code' => 'iot.ota.EmptySrcVersionList', 'message' => 'Parameter SrcVersionList is empty.', 'http_code' => 400, 'description' => '参数SrcVersionList不能为空。'], + ['code' => 'iot.ota.exponentialRateForbiddenInDefaultInstance', 'message' => 'The exponential rate is forbidden in default instance.', 'http_code' => 400, 'description' => '可变速率在公共实例下不支持。'], + ['code' => 'iot.ota.FailedTaskNotFound', 'message' => 'There are no failed tasks.', 'http_code' => 400, 'description' => '升级批次下没有升级失败或取消的升级作业。'], + ['code' => 'iot.ota.FirmwareAndProductKeyMismatch', 'message' => 'The OTA update package is not consistent with the ProductKey.', 'http_code' => 400, 'description' => 'OTA升级包与产品ProductKey不匹配。'], + ['code' => 'iot.ota.FirmwareNotFound', 'message' => 'The Firmware not exist.', 'http_code' => 400, 'description' => '升级包不存在。'], + ['code' => 'iot.ota.FirmwareNotFound', 'message' => 'The specified firmware does not exist.', 'http_code' => 400, 'description' => '指定的升级包不存在。'], + ['code' => 'iot.ota.FirmwareNotVerified', 'message' => 'The firmware validation is not completed.', 'http_code' => 400, 'description' => '升级包未验证完成,无法发起重升级。'], + ['code' => 'iot.ota.FirmwareNotVerified', 'message' => 'The firmware validation not completed.', 'http_code' => 400, 'description' => '升级包未验证完成,无法发起重升级。'], + ['code' => 'iot.ota.GenerateOTAUploadURLFailure', 'message' => 'Failed to generate OTA upload URL.', 'http_code' => 400, 'description' => '生成OTA上传URL失败。'], + ['code' => 'iot.ota.GroupNotExist', 'message' => 'The group does not exist.', 'http_code' => 400, 'description' => '设备分组不存在。'], + ['code' => 'iot.ota.IncorrectFormattedFirmwareVersion', 'message' => 'The format of the OTA firmware version is invalid.', 'http_code' => 400, 'description' => 'OTA模块版本号格式不符合要求。'], + ['code' => 'iot.ota.IncorrectFormattedVersion', 'message' => 'The firmware version format is invalid.', 'http_code' => 400, 'description' => '固件版本格式非法。'], + ['code' => 'iot.ota.InstanceIdMisMatch', 'message' => 'The instanceId is invalid.', 'http_code' => 400, 'description' => '实例ID不匹配。'], + ['code' => 'iot.ota.InsufficientQuota', 'message' => 'Insufficient quota for device upgrading.', 'http_code' => 400, 'description' => '企业实例下的设备升级额度不足。'], + ['code' => 'iot.ota.InvalidBaseRatePerMinute', 'message' => 'Parameter BaseRatePerMinute is invalid.', 'http_code' => 400, 'description' => '参数BaseRatePerMinute的值不正确。'], + ['code' => 'iot.ota.InvalidBaseSpeedPerMinute', 'message' => 'Invalid baseSpeedPerMinute.', 'http_code' => 400, 'description' => '无效的基础推送速率。'], + ['code' => 'iot.ota.InvalidConstantSpeedParameter', 'message' => 'The parameter of constant speed is invalid.', 'http_code' => 400, 'description' => '恒定速率的参数无效。'], + ['code' => 'iot.ota.InvalidExponentialRateParameter', 'message' => 'Invalid exponential rate parameter.', 'http_code' => 400, 'description' => '无效的可变速率参数。'], + ['code' => 'iot.ota.InvalidFirmwareId', 'message' => 'The ID of the OTA update package is invalid.', 'http_code' => 400, 'description' => 'OTA升级包ID不正确。'], + ['code' => 'iot.ota.InvalidFirmwareId', 'message' => 'The firmware is not exist.', 'http_code' => 400, 'description' => '升级包不存在。'], + ['code' => 'iot.ota.InvalidFirmwareUid', 'message' => 'The firmware is not exist.', 'http_code' => 400, 'description' => '升级包不存在。'], + ['code' => 'iot.ota.InvalidIncrementFactor', 'message' => 'Parameter IncrementFactor is invalid.', 'http_code' => 400, 'description' => '参数IncrementFactor的值不正确。'], + ['code' => 'iot.ota.InvalidIncrementFactor', 'message' => 'Invalid incrementFactor.', 'http_code' => 400, 'description' => '无效的增量因子。'], + ['code' => 'iot.ota.InvalidJobId', 'message' => 'The job is not existed.', 'http_code' => 400, 'description' => '升级批次不存在。'], + ['code' => 'iot.ota.InvalidMaximumPerMinute', 'message' => 'Parameter MaximumPerMinute is invalid.', 'http_code' => 400, 'description' => '参数MaxSpeedLimit的值不正确。'], + ['code' => 'iot.ota.InvalidMaximumPerMinute', 'message' => 'Invalid MaximumPerMinute.', 'http_code' => 400, 'description' => '无效的推送速率。'], + ['code' => 'iot.ota.InvalidNumberOfNotifiedDevicesOrNumberOfSucceedDevices', 'message' => 'One of NumberOfNotifiedDevices and NumberOfSucceedDevices is invalid.', 'http_code' => 400, 'description' => '参数NumberOfNotifiedDevices或NumberOfSucceedDevices的值是无效。'], + ['code' => 'iot.ota.InvalidOtaModuleName', 'message' => 'The format of the module name is invalid.', 'http_code' => 400, 'description' => '请求参数中,OTA模块名称的格式不合法。'], + ['code' => 'iot.ota.InvalidOtaModuleName', 'message' => 'the format of module name is invalid.', 'http_code' => 400, 'description' => '无效的模块名称。'], + ['code' => 'iot.ota.InvalidOtaModuleName', 'message' => 'The module name is invalid.', 'http_code' => 400, 'description' => '无效的模块名称。'], + ['code' => 'iot.ota.InvalidSrcVersionList', 'message' => 'Parameter SrcVersionList does not support by group upgrade.', 'http_code' => 400, 'description' => '分组升级不需要传SrcVersionList参数。'], + ['code' => 'iot.ota.InvalidSrcVersionList', 'message' => 'Parameter SrcVersionList is invalid.', 'http_code' => 400, 'description' => '参数SrcVersionList不合法。'], + ['code' => 'iot.ota.InvalidSrcVersionListParameter', 'message' => 'Parameter SrcVersionList does not support by group upgrade.', 'http_code' => 400, 'description' => '分组升级不需要传SrcVersionList参数。'], + ['code' => 'iot.ota.InvalidStrategyType', 'message' => 'Invalid strategy type.', 'http_code' => 400, 'description' => '无效的升级范围值。'], + ['code' => 'iot.ota.InvalidTaskExist', 'message' => 'The taskId list contains at least an invalid task.', 'http_code' => 400, 'description' => '升级作业列表中至少包含有一个不是升级失败或升级取消的作业。'], + ['code' => 'iot.ota.InvalidTaskId', 'message' => 'The tasks are not existed.', 'http_code' => 400, 'description' => '升级作业不存在。'], + ['code' => 'iot.ota.InvalidTaskStatus', 'message' => 'The parameter taskStatus is invalid.', 'http_code' => 400, 'description' => '入参TaskStatus的值不合法。'], + ['code' => 'iot.ota.InvalidTaskUid', 'message' => 'The taskUid is invalid.', 'http_code' => 400, 'description' => '无效的批次uid。'], + ['code' => 'iot.ota.InvalidTimeout', 'message' => 'Parameter TimeoutInMinutes is invalid.', 'http_code' => 400, 'description' => '参数TimeoutInMinutes不合法。'], + ['code' => 'iot.ota.InvalidUpgradeType', 'message' => 'Invalid upgrade type.', 'http_code' => 400, 'description' => '无效的升级类型。'], + ['code' => 'iot.ota.InvalidUser', 'message' => 'The user is invalid.', 'http_code' => 400, 'description' => '该用户不合法。'], + ['code' => 'iot.ota.JobAlreadyCanceled', 'message' => 'The job has already been canceled.', 'http_code' => 400, 'description' => '升级批次已经被取消。'], + ['code' => 'iot.ota.JobCanceled', 'message' => 'The job has already been canceled.', 'http_code' => 400, 'description' => '升级批次已被取消。'], + ['code' => 'iot.ota.JobFinished', 'message' => 'The job has already finished.', 'http_code' => 400, 'description' => '批次作业已经结束'], + ['code' => 'iot.ota.JobHasCanceled', 'message' => 'The job has canceled.', 'http_code' => 400, 'description' => '升级批次已取消。'], + ['code' => 'iot.ota.JobHasFinished', 'message' => 'The job has finished.', 'http_code' => 400, 'description' => '升级批次已完成。'], + ['code' => 'iot.ota.JobHasNoScheduleTime', 'message' => 'The job has no ScheduleTime.', 'http_code' => 400, 'description' => '批次不是定时批次。'], + ['code' => 'iot.ota.JobTagIsTooLong', 'message' => 'The tags of job exceed the maximum number of characters.', 'http_code' => 400, 'description' => '批次标签总长度超过限制'], + ['code' => 'iot.ota.JobTagKeyInvalid', 'message' => 'The key of tag is invalid.', 'http_code' => 400, 'description' => '批次任务的标签key非法。'], + ['code' => 'iot.ota.JobTagTooMany', 'message' => 'The amount of tags exceeds the limit.', 'http_code' => 400, 'description' => '批次任务的标签数量超过限制。'], + ['code' => 'iot.ota.JobTagValueInvalid', 'message' => 'The value of tag is invalid.', 'http_code' => 400, 'description' => '批次任务的标签value非法。'], + ['code' => 'iot.ota.ListDeviceUpgradeInfoFailure', 'message' => 'Failed to list upgrade record.', 'http_code' => 400, 'description' => '获取设备升级列表失败。'], + ['code' => 'iot.ota.ListOTAJobFailed', 'message' => 'Failed to list OTA jobs.', 'http_code' => 400, 'description' => '查询升级批次列表失败。'], + ['code' => 'iot.ota.ListOTAModuleFailure', 'message' => 'An error occurred while processing the ListOTAModuleByProduct request.', 'http_code' => 400, 'description' => '查询OTA模块列表的过程中产生异常。'], + ['code' => 'iot.ota.ListOTAModuleFailure', 'message' => 'There is an error occurred for ListOTAModuleByProduct request.', 'http_code' => 400, 'description' => '查询ota模块列表的过程中产生异常。'], + ['code' => 'iot.ota.ListOTAModuleParamError', 'message' => 'The parameter in the ListOTAModuleByProduct request is invalid.', 'http_code' => 400, 'description' => '查询OTA模块列表的请求中参数错误。'], + ['code' => 'iot.ota.ListOTAModuleParamError', 'message' => 'There is an error param for ListOTAModuleByProduct request.', 'http_code' => 400, 'description' => '查询ota模块列表的请求中参数错误。'], + ['code' => 'iot.ota.multiModuleModeForbiddenInDefaultInstance', 'message' => 'The multiModuleMode is forbidden in default instance.', 'http_code' => 400, 'description' => '设备支持多模块同时升级在公共实例下不支持'], + ['code' => 'iot.ota.NoDeviceCanUpgrade', 'message' => 'No devices are available.', 'http_code' => 400, 'description' => '未找到可升级的设备。'], + ['code' => 'iot.ota.noDynamicJob', 'message' => 'Task is not dynamic.', 'http_code' => 400, 'description' => '非动态升级任务,无法进行此操作。'], + ['code' => 'iot.ota.noDynamicJob', 'message' => 'Task is not dynamic', 'http_code' => 400, 'description' => '非动态升级任务,无法进行此操作'], + ['code' => 'iot.ota.NotDeviceOwner', 'message' => 'The user is not owner of device.', 'http_code' => 400, 'description' => '该用户不是设备拥有者。'], + ['code' => 'iot.ota.NotExistedDevice', 'message' => 'The device does not exist.', 'http_code' => 400, 'description' => '设备不存在或未激活。'], + ['code' => 'iot.ota.NotFirmwareOwner', 'message' => 'The user is not owner of firmware.', 'http_code' => 400, 'description' => '该用户不是升级包拥有者。'], + ['code' => 'iot.ota.NullOTAJobId', 'message' => 'Parameter JobId is empty.', 'http_code' => 400, 'description' => '升级批次ID不能为null。'], + ['code' => 'iot.ota.NullOtaModuleName', 'message' => 'The OTA module name cannot be empty.', 'http_code' => 400, 'description' => 'ota的module名称不能为空'], + ['code' => 'iot.ota.NullOtaModuleName', 'message' => 'the module name can not be empty.', 'http_code' => 400, 'description' => '模块名称为空。'], + ['code' => 'iot.ota.NullOtaModuleName', 'message' => 'The module name must be specified.', 'http_code' => 400, 'description' => '模块名称不能为空。'], + ['code' => 'iot.ota.NullSrcVersions', 'message' => 'You must specify SrcVersions.', 'http_code' => 400, 'description' => '待升级版本号列表不能为空。'], + ['code' => 'iot.ota.OperationForbidden', 'message' => 'This operation is forbidden by the tenantId.', 'http_code' => 400, 'description' => '租户没有权限执行该操作。'], + ['code' => 'iot.ota.OTAModuleNotExist', 'message' => 'The OTA module does not exist.', 'http_code' => 400, 'description' => '删除或更新OTA模块时报错:产品下的OTA模块不存在。'], + ['code' => 'iot.ota.OverWriteAndMultiModuleConflict', 'message' => 'Both of multiModuleMode and overwriteMode can not take effect at the same time.', 'http_code' => 400, 'description' => '覆盖之前的升级任务和支持多模块同时升级不能同时生效。'], + ['code' => 'iot.ota.PackageFileNameDuplicated', 'message' => 'The file name of multi files are duplicated.', 'http_code' => 400, 'description' => '升级包的多文件参数中文件名称重复。'], + ['code' => 'iot.ota.paramError', 'message' => 'SrcVersion invalid', 'http_code' => 400, 'description' => 'SrcVersion参数无效,包括目标版本'], + ['code' => 'iot.ota.paramError', 'message' => 'Srcversion format is invalid', 'http_code' => 400, 'description' => 'Srcversion参数值不符合要求'], + ['code' => 'iot.ota.paramError', 'message' => 'SrcVersion is null', 'http_code' => 400, 'description' => 'SrcVersion参数不能为空'], + ['code' => 'iot.ota.paramError', 'message' => 'Bad timeout setting', 'http_code' => 400, 'description' => 'timeout参数无效'], + ['code' => 'iot.ota.paramError', 'message' => 'TaskUid is not empty', 'http_code' => 400, 'description' => 'TaskUid不能为空'], + ['code' => 'iot.ota.ParameterCurrentPageInvalid', 'message' => 'The parameter currentPage is invalid.', 'http_code' => 400, 'description' => '入参CurrentPage的值不合法。'], + ['code' => 'iot.ota.ParameterNextTokenNotExist', 'message' => 'The parameter nextToken is not exist.', 'http_code' => 400, 'description' => '入参NextToken的值不存在,请传入该参数。'], + ['code' => 'iot.ota.ParameterPageSizeInvalid', 'message' => 'The parameter pageSize is invalid.', 'http_code' => 400, 'description' => '入参PageSize的值不合法。'], + ['code' => 'iot.ota.ParamInvalid', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '参数错误'], + ['code' => 'iot.ota.queryDeviceFailure', 'message' => 'The query device failed.', 'http_code' => 400, 'description' => '查询设备失败。'], + ['code' => 'iot.ota.QueryUpgradeTaskFailed', 'message' => 'Failed to query upgrade record.', 'http_code' => 400, 'description' => '查询升级记录失败。'], + ['code' => 'iot.ota.ReupgradeFailedAfterScheduleFinishTime', 'message' => 'Reupgrade could not be initiated after the schedule finish time has been reached.', 'http_code' => 400, 'description' => '批次定时结束时间到达之后无法发起重升级'], + ['code' => 'iot.ota.SrcVersionsSizeExceedMax', 'message' => 'Size of source versions exceeds limit.', 'http_code' => 400, 'description' => '源版本列表大小超过最大数量。'], + ['code' => 'iot.ota.StrategyNotFound', 'message' => 'The specified strategy does not exist.', 'http_code' => 400, 'description' => '批次对应的升级策略不存在。'], + ['code' => 'iot.ota.tag.KeyDuplicated', 'message' => 'The tags must be unique.', 'http_code' => 400, 'description' => '标签列表的key重复。'], + ['code' => 'iot.ota.tag.KeyDuplicated', 'message' => 'The tag key is duplicated.', 'http_code' => 400, 'description' => '标签key重复'], + ['code' => 'iot.ota.tag.KeyDuplicated', 'message' => 'Invalid Tags.', 'http_code' => 400, 'description' => '标签列表的key重复。'], + ['code' => 'iot.ota.TagsTooMany', 'message' => 'The maximum number of tags is exceeded.', 'http_code' => 400, 'description' => '标签数量超过限制'], + ['code' => 'iot.ota.TagTotalLengthExceed', 'message' => 'The tags of job exceed the maximum number of characters.', 'http_code' => 400, 'description' => '标签字符总长度超过限制'."\n"], + ['code' => 'iot.ota.TagValueInvalid', 'message' => 'The tag value is invalid.', 'http_code' => 400, 'description' => '标签value格式错误'], + ['code' => 'iot.ota.TaskIdIsNull', 'message' => 'The task ID cannot be empty.', 'http_code' => 400, 'description' => '请求参数TaskId.N不能为空。'], + ['code' => 'iot.ota.TaskIdIsNull', 'message' => 'There is no taskId in parameters.', 'http_code' => 400, 'description' => '入参TaskId不存在。'], + ['code' => 'iot.ota.taskNotExist', 'message' => 'Task is not existed.', 'http_code' => 400, 'description' => '批次信息不存在。'], + ['code' => 'iot.ota.taskNotExist', 'message' => 'Task is not existed', 'http_code' => 400, 'description' => '批次信息不存在'], + ['code' => 'iot.ota.TaskNotFound', 'message' => 'The task is not existed.', 'http_code' => 400, 'description' => '升级批次不存在。'], + ['code' => 'iot.ota.TenantIdMisMatch', 'message' => 'The tenantId is invalid.', 'http_code' => 400, 'description' => '租户非法操作。'], + ['code' => 'iot.ota.TooManyDeviceNames', 'message' => 'There are too many deviceNames in parameters.', 'http_code' => 400, 'description' => '参数DeviceName个数超出限制。'], + ['code' => 'iot.ota.TooManyOtaTask', 'message' => 'Too many tasks are specified.', 'http_code' => 400, 'description' => '请求参数TaskId.N的TaskId个数,已超出最大限制。'], + ['code' => 'iot.ota.TooManyOtaTask', 'message' => 'There are too many tasks in parameters.', 'http_code' => 400, 'description' => '参数TaskId个数超出限制。'], + ['code' => 'iot.ota.TooManyOtaTaska', 'message' => 'dfdsfdsf', 'http_code' => 400, 'description' => '我都'], + ['code' => 'iot.ota.UnmatchedJob', 'message' => 'The jobId and taskId do not match.', 'http_code' => 400, 'description' => '升级批次Id和升级作业Id不匹配。'], + ['code' => 'iot.ota.UpdateOTAModuleFailure', 'message' => 'An error occurred while processing the UpdateOTAModule request.', 'http_code' => 400, 'description' => '更新OTA模块的过程中产生异常。'], + ['code' => 'iot.ota.UpdateOTAModuleFailure', 'message' => 'There is an error occurred for UpdateOTAModule request.', 'http_code' => 400, 'description' => '更新ota模块的过程中产生异常。'], + ['code' => 'iot.ota.UpdateOTAModuleNameFailure', 'message' => 'the name of module is reserved.', 'http_code' => 400, 'description' => '该ota模块名称是保留字段,不允许被更新。'], + ['code' => 'iot.ota.UpdateOTAModuleParamError', 'message' => 'The parameter in the UpdateOTAModule request is invalid.', 'http_code' => 400, 'description' => '更新OTA模块的请求中参数错误。'], + ['code' => 'iot.ota.UpdateOTAModuleParamError', 'message' => 'There is an error param for UpdateOTAModule request.', 'http_code' => 400, 'description' => '更新ota模块的请求中参数错误。'], + ['code' => 'iot.ota.UpgradeDeviceCountExceedLimit', 'message' => 'The upgrade device count has exceeded the limit.', 'http_code' => 400, 'description' => '发起的待升级设备数超过最大值限制。'], + ['code' => 'iot.printingtemplate.BizCodeHasExisted', 'message' => 'biz code has existed', 'http_code' => 400, 'description' => '打印模版业务标识已存在'], + ['code' => 'iot.printingtemplate.TotalExceeded', 'message' => 'printing template total exceeded', 'http_code' => 400, 'description' => '打印模版数量已达上限'], + ['code' => 'iot.printservice.NotSigned', 'message' => 'pring service not open.', 'http_code' => 400, 'description' => '寄雁传书服务未开通。'], + ['code' => 'iot.printservice.NotSigned', 'message' => 'print service not open.', 'http_code' => 400, 'description' => '寄雁传书服务未开通。'], + ['code' => 'iot.printservice.NotSigned', 'message' => 'pring service not open', 'http_code' => 400, 'description' => '寄雁传书服务未开通'], + ['code' => 'iot.printservice.ProjectHasStopped', 'message' => 'project has stopped', 'http_code' => 400, 'description' => '项目已停用'], + ['code' => 'iot.prod.AbilityIdentifierIsAlreadyExisted', 'message' => 'The specified feature identifier already exists.', 'http_code' => 400, 'description' => '功能标识符已存在。'], + ['code' => 'iot.prod.AbilityNameRepeated', 'message' => 'The feature names must be unique.', 'http_code' => 400, 'description' => '存在重复的功能名称。'], + ['code' => 'iot.prod.AbilityRepeated', 'message' => 'The identifiers must be unique.', 'http_code' => 400, 'description' => '存在重复的功能标识符。'], + ['code' => 'iot.prod.AlreadyExistedProductName', 'message' => 'The specified name has already been used for another product.', 'http_code' => 400, 'description' => '已经存在相同的产品名称。一个阿里云账号下的产品名称不能重复。'], + ['code' => 'iot.prod.AlreadyExistedProductTag', 'message' => 'You cannot perform this operation. Some of the specified product tags already exist.', 'http_code' => 400, 'description' => '部分产品标签已经存在,不能操作。'], + ['code' => 'iot.prod.AuthorizeProductFailed', 'message' => 'Failed to authorize the product.', 'http_code' => 400, 'description' => '授权产品失败'], + ['code' => 'iot.prod.AuthorizeProductToPoolFailed', 'message' => 'An error occurred while authorizing the public pool to use the product.', 'http_code' => 400, 'description' => '授权产品到公共池失败'], + ['code' => 'iot.prod.AuthorizeProductToTenantFailed', 'message' => 'An error occurred while authorizing the tenant to use the product.', 'http_code' => 400, 'description' => '授权产品到租户失败。'], + ['code' => 'iot.prod.AuthProductToISVFailed', 'message' => 'Failed to authorize the ISV to manage the product.', 'http_code' => 400, 'description' => '为ISV授予产品权限失败'], + ['code' => 'iot.prod.BatchCreateModelConfigFailed', 'message' => 'Failed to create the TSL models.', 'http_code' => 400, 'description' => '批量创建模型配置信息失败。'], + ['code' => 'iot.prod.BatchCreateThingModelFailed', 'message' => 'Failed to create the TSL model.', 'http_code' => 400, 'description' => '创建物模型失败。'], + ['code' => 'iot.prod.BatchDeleteModelConfigFailed', 'message' => 'Failed to delete the TSL models.', 'http_code' => 400, 'description' => '批量删除模型配置信息失败。'], + ['code' => 'iot.prod.BatchUpdateModelConfigFailed', 'message' => 'Failed to update the TSL models.', 'http_code' => 400, 'description' => '批量更新模型配置信息失败。'], + ['code' => 'iot.prod.CaIssueModelNotPrivate', 'message' => 'Private CA certificates are not supported for this product.', 'http_code' => 400, 'description' => '该产品不支持私有CA证书。'], + ['code' => 'iot.prod.CancelProductAuthFailed', 'message' => 'An error occurred while canceling the product authorization.', 'http_code' => 400, 'description' => '撤销产品授权失败'], + ['code' => 'iot.prod.CancelReleaseProductError', 'message' => 'An error occurred while unpublishing the product.', 'http_code' => 400, 'description' => '取消产品发布失败。'], + ['code' => 'iot.prod.CategoryAlreadyExist', 'message' => 'The category already exist.', 'http_code' => 400, 'description' => '相同品类已存在'], + ['code' => 'iot.prod.CategoryNotExist', 'message' => 'The category does not exist.', 'http_code' => 400, 'description' => '品类不存在'], + ['code' => 'iot.prod.CheckAlinkProtocolFailed', 'message' => 'An error occurred while checking the Alink protocol.', 'http_code' => 400, 'description' => '检查alink协议失败。'], + ['code' => 'iot.prod.ConcurrentScriptOperation', 'message' => 'The concurrent operations on the same script are not allowed.', 'http_code' => 400, 'description' => '操作数据解析脚本失败。'], + ['code' => 'iot.prod.CopyProductAbilityError', 'message' => 'An error occurred while copying the product features.', 'http_code' => 400, 'description' => '拷贝产品功能失败。'], + ['code' => 'iot.prod.CopyThingModelFailed', 'message' => 'Failed to copy the TSL model.', 'http_code' => 400, 'description' => '拷贝物模型失败。'], + ['code' => 'iot.prod.CopyThingModelFailed', 'message' => 'failed to copy the thing model.', 'http_code' => 400, 'description' => '拷贝物模型失败。'], + ['code' => 'iot.prod.CreateCategoryFailed', 'message' => 'Failed to create the category.', 'http_code' => 400, 'description' => '创建品类失败'], + ['code' => 'iot.prod.CreateCategoryTagFailed', 'message' => 'Failed to create a category tag.', 'http_code' => 400, 'description' => '创建品类标签失败'], + ['code' => 'iot.prod.CreateDeviceForbidden', 'message' => 'The product has been associated with other platforms.The device cannot be created under the product.', 'http_code' => 400, 'description' => '产品已经关联其他平台,禁止添加设备。'], + ['code' => 'iot.prod.CreateEventFailed', 'message' => 'Failed to create the event.', 'http_code' => 400, 'description' => '创建事件失败'], + ['code' => 'iot.prod.CreateEventTagFailed', 'message' => 'Failed to create the event tag.', 'http_code' => 400, 'description' => '创建事件标签失败'], + ['code' => 'iot.prod.CreateExtendPropertyFailed', 'message' => 'An error occurred while creating the extended property.', 'http_code' => 400, 'description' => '创建扩展属性失败。'], + ['code' => 'iot.prod.CreateID2ProductFailed', 'message' => 'An error occurred while creating the ID² product.', 'http_code' => 400, 'description' => '创建ID2产品失败。'], + ['code' => 'iot.prod.CreateLoRaProductFailed', 'message' => 'An error occurred while creating the LoRa product.', 'http_code' => 400, 'description' => '创建LoRa产品失败。'], + ['code' => 'iot.prod.CreateLoRaProductFailed', 'message' => 'An error occurred while creating LoRa product.', 'http_code' => 400, 'description' => '创建LoRa产品失败,请核对后重试。'], + ['code' => 'iot.prod.CreateProductAbilityFailed', 'message' => 'An error occurred while creating the product feature.', 'http_code' => 400, 'description' => '创建产品功能失败。'], + ['code' => 'iot.prod.CreateProductFailed', 'message' => 'An error occurred while creating the product.', 'http_code' => 400, 'description' => '创建产品失败。'], + ['code' => 'iot.prod.CreateProductTagFailed', 'message' => 'An error occurred while creating a product tag.', 'http_code' => 400, 'description' => '添加产品标签失败'], + ['code' => 'iot.prod.CreateProductTopicFailed', 'message' => 'An error occurred while creating the topic category of the product.', 'http_code' => 400, 'description' => '创建产品的Topic类失败。'], + ['code' => 'iot.prod.CreatePropertyFailed', 'message' => 'Failed to create the property.', 'http_code' => 400, 'description' => '创建属性失败'], + ['code' => 'iot.prod.CreatePropertyTagFailed', 'message' => 'Failed to create the property tag.', 'http_code' => 400, 'description' => '创建属性标签失败'], + ['code' => 'iot.prod.CreateScriptDraftFailed', 'message' => 'An error occurred while creating the script draft.', 'http_code' => 400, 'description' => '创建脚本草稿失败。'], + ['code' => 'iot.prod.CreateScriptFailed', 'message' => 'An error occurred while creating the script.', 'http_code' => 400, 'description' => '创建脚本失败。'], + ['code' => 'iot.prod.CreateServiceFailed', 'message' => 'Failed to create the service.', 'http_code' => 400, 'description' => '创建服务失败'], + ['code' => 'iot.prod.CreateServiceTagFailed', 'message' => 'Failed to add the service tag.', 'http_code' => 400, 'description' => '创建服务标签失败'], + ['code' => 'iot.prod.CustomPropertiesExceedLimit', 'message' => 'The number of custom properties exceeds the limit.', 'http_code' => 400, 'description' => '批量请求自定义功能数量超过最大限制20'], + ['code' => 'iot.prod.delete.ProductHasDevice', 'message' => 'The product cannot be deleted because one or more devices still exist under it.', 'http_code' => 400, 'description' => '产品下还存在没有删除的设备。'], + ['code' => 'iot.prod.delete.ProductHasDeviceAlready', 'message' => 'A device already exists under the product.', 'http_code' => 400, 'description' => '产品下已存在设备。'], + ['code' => 'iot.prod.DeleteCategoryFailed', 'message' => 'Failed to delete the category.', 'http_code' => 400, 'description' => '删除品类失败'], + ['code' => 'iot.prod.DeleteCategoryTagFailed', 'message' => 'Failed to delete the category.', 'http_code' => 400, 'description' => '删除品类标签失败'], + ['code' => 'iot.prod.DeleteEventFailed', 'message' => 'Failed to delete the event.', 'http_code' => 400, 'description' => '删除事件失败'], + ['code' => 'iot.prod.DeleteExtendPropertyFailed', 'message' => 'An error occurred while deleting the extended property.', 'http_code' => 400, 'description' => '删除扩展属性失败。'], + ['code' => 'iot.prod.DeleteLoRaProductFailed', 'message' => 'An error occurred while deleting the LoRa product.', 'http_code' => 400, 'description' => '删除LoRa产品失败。'], + ['code' => 'iot.prod.DeleteProductAbilityFailed', 'message' => 'An error occurred while deleting the product feature.', 'http_code' => 400, 'description' => '删除产品功能失败。'], + ['code' => 'iot.prod.DeleteProductAbilityFailed', 'message' => 'The DevEui format is invalid.', 'http_code' => 400, 'description' => '删除产品功能定义失败,请稍后重试。'], + ['code' => 'iot.prod.DeleteProductFailed', 'message' => 'An error occurred while deleting the product.', 'http_code' => 400, 'description' => '删除产品操作失败。'], + ['code' => 'iot.prod.DeleteProductTagFailed', 'message' => 'An error occurred while deleting the product tags.', 'http_code' => 400, 'description' => '删除产品标签失败'], + ['code' => 'iot.prod.DeletePropertyFailed', 'message' => 'Failed to delete the property.', 'http_code' => 400, 'description' => '删除属性失败'], + ['code' => 'iot.prod.DeleteScriptDraftFailed', 'message' => 'An error occurred while deleting the script draft.', 'http_code' => 400, 'description' => '删除脚本草稿失败。'], + ['code' => 'iot.prod.DeleteServiceFailed', 'message' => 'Failed to delete the service.', 'http_code' => 400, 'description' => '删除服务失败'], + ['code' => 'iot.prod.DifferentTypeOfSrcProAndTargetProError', 'message' => 'The device type of the source product and the destination product must be the same.', 'http_code' => 400, 'description' => '拷贝的源产品和目标产品的品类不一致。'], + ['code' => 'iot.prod.DisableTSLValidationFailed', 'message' => 'An error occurred while disabling TSL verification.', 'http_code' => 400, 'description' => '关闭TSL降级失败'], + ['code' => 'iot.prod.DistributedProdOperationDeny', 'message' => 'The operation is prohibited for the distributed product.', 'http_code' => 400, 'description' => '被分发的产品禁止操作。'], + ['code' => 'iot.prod.DistributedProdOperationDeny', 'message' => 'Prohibited operation of distributed products.', 'http_code' => 400, 'description' => '被分发的产品禁止操作。'], + ['code' => 'iot.prod.DownloadScriptFailed', 'message' => 'An error occurred while downloading the script.', 'http_code' => 400, 'description' => '下载脚本失败。'], + ['code' => 'iot.prod.DSLGenerateFailed', 'message' => 'An error occurred while generating the TSL model.', 'http_code' => 400, 'description' => 'dsl生成失败。'], + ['code' => 'iot.prod.DSLGenerateFailed', 'message' => 'An error occurred while generating the TSL.', 'http_code' => 400, 'description' => 'dsl生成失败。'], + ['code' => 'iot.prod.DuplicatedIdentifierInModelConfig', 'message' => 'The identifiers must be unique.', 'http_code' => 400, 'description' => '批量请求中包含重复的标识符'], + ['code' => 'iot.prod.DuplicateTagKeyInArray', 'message' => 'The tag keys of the product must be unique.', 'http_code' => 400, 'description' => '产品标签列表中存在相同的tagKey。'], + ['code' => 'iot.prod.DuplicateTagKeyInArray', 'message' => 'The keys of all listed product tags must be different.', 'http_code' => 400, 'description' => '产品标签列表中存在相同的tagKey'], + ['code' => 'iot.prod.EmptyProductList', 'message' => 'You must specify a product.', 'http_code' => 400, 'description' => '产品列表不能为空。'], + ['code' => 'iot.prod.EnableTSLValidationFailed', 'message' => 'An error occurred while enabling TSL validation.', 'http_code' => 400, 'description' => '打开TSL降级失败'], + ['code' => 'Iot.prod.EventNotFound', 'message' => 'Event not found.', 'http_code' => 400, 'description' => '事件不存在。'], + ['code' => 'iot.prod.EventSizeOutOfBounds', 'message' => 'The number of standard events exceeds the limit.', 'http_code' => 400, 'description' => '标准事件数量超出最大范围。'], + ['code' => 'iot.prod.FailedCreateMergeOrder', 'message' => 'Failed to create the order.', 'http_code' => 400, 'description' => '创建激活码购买订单失败'], + ['code' => 'iot.prod.FailTurnOnOrOffSecureUpgrade', 'message' => 'An error occurred while enabling or disabling secure update for the product.', 'http_code' => 400, 'description' => '开启/关闭产品的安全升级开关失败。'], + ['code' => 'iot.prod.GetCategoryFailed', 'message' => 'Failed to query categories.', 'http_code' => 400, 'description' => '查询品类失败'], + ['code' => 'iot.prod.HasDevicesInTransferError', 'message' => 'The device is being transferred.', 'http_code' => 400, 'description' => '设备在转移中。'], + ['code' => 'iot.prod.HasDevicesTransferredError', 'message' => 'An error occurred. Some devices under this product have been transferred.', 'http_code' => 400, 'description' => '有设备被转移。。'], + ['code' => 'iot.prod.HasProductAuthorizationRelations', 'message' => 'The specified product has been authorized.', 'http_code' => 400, 'description' => '当前产品中存在授权关系。'], + ['code' => 'iot.prod.ID2ProductCreateFailed', 'message' => 'An error occurred while creating the ID² product.', 'http_code' => 400, 'description' => '创建ID2产品失败。'], + ['code' => 'iot.prod.IdentifierNotExisted', 'message' => 'The identifier does not exist.', 'http_code' => 400, 'description' => '标识符不存在。'], + ['code' => 'iot.prod.ILopProductHasNoIsoId', 'message' => 'The living IoT Platform products have no related projects.', 'http_code' => 400, 'description' => '飞燕平台产品没有关联项目'], + ['code' => 'iot.prod.ImportThingModelTslFailed', 'message' => 'Failed to import the TSL model.', 'http_code' => 400, 'description' => '导入物模型TSL失败。'], + ['code' => 'iot.prod.InvalidAliyunCommodityCode', 'message' => 'The specified AliyunCommodityCode parameter is invalid.', 'http_code' => 400, 'description' => '入参AliyunCommodityCode值错误。'], + ['code' => 'iot.prod.InvalidBuiltInIdentifier', 'message' => 'The built-in identifier is invalid.', 'http_code' => 400, 'description' => '不合法的內建标识符。'], + ['code' => 'iot.prod.InvalidCategoryOrNamespace', 'message' => 'The category key or namespace is invalid.', 'http_code' => 400, 'description' => '品类key或者命名空间不合法。'], + ['code' => 'iot.prod.InvalidCheckAlinkType', 'message' => 'The type parameter in the Alink protocol is invalid.', 'http_code' => 400, 'description' => '检查alink协议type参数不合法。'], + ['code' => 'iot.prod.InvalidDynamicRegister', 'message' => 'The parameter to enable or disable dynamic registration is invalid.', 'http_code' => 400, 'description' => '无效的动态注册开关标记。'], + ['code' => 'iot.prod.InvalidedAccountStructureError', 'message' => 'The specified account is not supported. Only Alibaba Cloud accounts are supported.', 'http_code' => 400, 'description' => '不支持的账号体系,只能是阿里云主账号。'], + ['code' => 'iot.prod.InvalidedAliyunAccountError', 'message' => 'The specified Alibaba Cloud account does not exist.', 'http_code' => 400, 'description' => '输入的阿里云账号不存在。'], + ['code' => 'iot.prod.InvalidedParamDeviceNameList', 'message' => 'The device list is empty, the specified devices are invalid, or the number of devices in the list exceeds the limit.', 'http_code' => 400, 'description' => '入参设备列表非法,为空或者超过数量限制。'], + ['code' => 'iot.prod.InvalidEventCodeWhenQueryEvent', 'message' => 'The specified event type is invalid.', 'http_code' => 400, 'description' => '错误的事件类型。'], + ['code' => 'iot.prod.InvalidFormatArgsParams', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '参数格式不合法。'], + ['code' => 'iot.prod.InvalidFormatSetPropertyParams', 'message' => 'The specified property parameter is invalid.', 'http_code' => 400, 'description' => '设置属性时,参数格式不合法。'], + ['code' => 'iot.prod.InvalidFormattedCatId', 'message' => 'The product category format is invalid.', 'http_code' => 400, 'description' => '入参CategoryId(产品的设备类型)错误。'], + ['code' => 'iot.prod.InvalidFormattedExtendConfig', 'message' => 'The extended feature information format is invalid.', 'http_code' => 400, 'description' => '功能扩展配置信息格式错误。'], + ['code' => 'iot.prod.InvalidFormattedProductkey', 'message' => 'The ProductKey format is invalid.', 'http_code' => 400, 'description' => '入参产品ProductKey格式错误。'], + ['code' => 'iot.prod.InvalidFormattedProductkey', 'message' => 'ProductKey is invalid', 'http_code' => 400, 'description' => 'Productkey非法。'], + ['code' => 'iot.prod.InvalidFormattedProductkey', 'message' => 'The ProductKey format is incorrect.', 'http_code' => 400, 'description' => '请求参数ProductKey错误,请修改后重试。'], + ['code' => 'iot.prod.InvalidFormattedProductkey', 'message' => 'The productKey format error.', 'http_code' => 400, 'description' => '产品id格式错误。'], + ['code' => 'iot.prod.InvalidFormattedProductName', 'message' => 'The format of the product name is invalid.', 'http_code' => 400, 'description' => '入参产品名称格式错误。'], + ['code' => 'iot.prod.InvalidFormattedProductTag', 'message' => 'The product tag format is invalid.', 'http_code' => 400, 'description' => '不合法的产品标签格式。'], + ['code' => 'iot.prod.InvalidFormattedTagSearchCondition', 'message' => 'The specified tag key or value is invalid.', 'http_code' => 400, 'description' => 'tag查询条件设置错误。'], + ['code' => 'iot.prod.InvalidFormattedThingModel', 'message' => 'The format of the TSL model is not valid.', 'http_code' => 400, 'description' => '物模型格式不合法,请参考ThingModelJson的格式说明。'], + ['code' => 'iot.prod.InvalidFormattedThingModelVersion', 'message' => 'The format of the TSL model version is invalid.', 'http_code' => 400, 'description' => '物模型版本格式不合法'], + ['code' => 'iot.prod.InvalidFormattedThingModelVersion', 'message' => 'the format of the thing model version is not valid.', 'http_code' => 400, 'description' => '物模型版本格式不合法。'], + ['code' => 'iot.prod.InvalidFuctionType', 'message' => 'The feature type is invalid.', 'http_code' => 400, 'description' => '错误的功能类型。'], + ['code' => 'iot.prod.InvalidIdentifierInModelConfig', 'message' => 'The request parameters contain an invalid identifier.', 'http_code' => 400, 'description' => '批量请求中包含无效的标识符。'], + ['code' => 'iot.prod.InvalidInputParamsOrOutputParams', 'message' => 'The format of the InputParams or OutputParams parameter is invalid.', 'http_code' => 400, 'description' => 'InputParams或OutputParams格式不正确。'], + ['code' => 'iot.prod.InvalidIssueModel', 'message' => 'The IssueModel parameter is invalid.', 'http_code' => 400, 'description' => '入参证书颁发模式不合法。'], + ['code' => 'iot.prod.InvalidIssueModel', 'message' => 'Entry certificate issuance mode is not legal.', 'http_code' => 400, 'description' => '入参证书颁发模式不合法。'], + ['code' => 'iot.prod.InvalidJoinPermissionId', 'message' => 'The access certificate is invalid.', 'http_code' => 400, 'description' => '无效的入网凭证。'], + ['code' => 'iot.prod.InvalidModelStatusType', 'message' => 'The TSL model status is invalid.', 'http_code' => 400, 'description' => '物模型状态不正确。'], + ['code' => 'iot.prod.InvalidModelStatusType', 'message' => 'the format of ModelStatusType is not valid.', 'http_code' => 400, 'description' => '物模型状态不正确。'], + ['code' => 'iot.prod.InvalidNamespace', 'message' => 'The namespace is invalid.', 'http_code' => 400, 'description' => '无效的namespace'], + ['code' => 'iot.prod.InvalidNetType', 'message' => 'The networking method is invalid.', 'http_code' => 400, 'description' => '无效的连网方式。'], + ['code' => 'iot.prod.InvalidNodeType', 'message' => 'The node type is invalid.', 'http_code' => 400, 'description' => '产品的节点类型错误。'], + ['code' => 'iot.prod.InvalidOutputData', 'message' => 'The output data format is invalid.', 'http_code' => 400, 'description' => 'OutputData格式不正确。'], + ['code' => 'iot.prod.InvalidParamDataSpecsOrDataSpecsList', 'message' => 'The specified DataSpecs or DataSpecsList parameter is invalid.', 'http_code' => 400, 'description' => 'DataSpecs或DataSpecsList格式不正确。'], + ['code' => 'iot.prod.InvalidProductAuthType', 'message' => 'The product authentication type is invalid.', 'http_code' => 400, 'description' => '不合法的产品认证类型。'], + ['code' => 'iot.prod.InvalidProductDataType', 'message' => 'The product data type is invalid.', 'http_code' => 400, 'description' => '不合法的产品数据类型。'], + ['code' => 'iot.prod.InvalidProductDegradationConfig', 'message' => 'The specified product degradation configuration is invalid.', 'http_code' => 400, 'description' => '产品降级规则参数不正确'], + ['code' => 'iot.prod.InvalidProductFilter', 'message' => 'The specified product filtering rule cannot be empty.', 'http_code' => 400, 'description' => '过滤规则不能为空'], + ['code' => 'iot.prod.InvalidProductNodeType', 'message' => 'The product node type is invalid.', 'http_code' => 400, 'description' => '不合法的产品节点类型。'], + ['code' => 'iot.prod.InvalidProductStatus', 'message' => 'The product status is invalid.', 'http_code' => 400, 'description' => '产品状态错误。'], + ['code' => 'iot.prod.InvalidProductTagCount', 'message' => 'The number of tags is invalid.', 'http_code' => 400, 'description' => '标签数量不合法。'], + ['code' => 'iot.prod.InvalidProductTagCount', 'message' => 'The tag number is invalid.', 'http_code' => 400, 'description' => '标签数量不合法。'], + ['code' => 'iot.prod.InvalidProductTagInfo', 'message' => 'The tag information is invalid.', 'http_code' => 400, 'description' => '标签信息不合法。'], + ['code' => 'iot.prod.InvalidProtocolType', 'message' => 'The specified device protocol is invalid.', 'http_code' => 400, 'description' => '不合法的设备协议类型。'], + ['code' => 'iot.prod.InvalidScriptContent', 'message' => 'The script content is invalid.', 'http_code' => 400, 'description' => '脚本内容不合法。'], + ['code' => 'iot.prod.InvalidScriptType', 'message' => 'The script type is invalid.', 'http_code' => 400, 'description' => '无效的脚本类型。'], + ['code' => 'iot.prod.InvalidServeCode', 'message' => 'Failed to obtain the platform information.', 'http_code' => 400, 'description' => '服务平台信息获取失败。'], + ['code' => 'iot.prod.InvalidSetPropertyParams', 'message' => 'You must specify a parameter.', 'http_code' => 400, 'description' => '设置属性时,参数不能为空。'], + ['code' => 'iot.prod.InvalidStandardAbility', 'message' => 'The specified standard feature is invalid.', 'http_code' => 400, 'description' => '标准功能不合法。'], + ['code' => 'iot.prod.InvalidTreeCode', 'message' => 'The treeCode parameter is invalid.', 'http_code' => 400, 'description' => 'treeCode不合法'], + ['code' => 'iot.prod.InvalidTSLParams', 'message' => 'The TSL parameters are invalid.', 'http_code' => 400, 'description' => '产品升级物模版缺少物模版参数。'], + ['code' => 'iot.prod.InvokeServeConsumerFailed', 'message' => 'Failed to call the consuming service.', 'http_code' => 400, 'description' => '调用消费关系服务失败。'], + ['code' => 'iot.prod.IsProductAuthorizedError', 'message' => 'An error occurred while checking whether the product has been authorized.', 'http_code' => 400, 'description' => '检查产品是否有授权关系失败。'], + ['code' => 'iot.prod.ListCategoryFailed', 'message' => 'An error occurred while querying the product categories.', 'http_code' => 400, 'description' => '获取品类列表失败。'], + ['code' => 'iot.prod.LongProductDesc', 'message' => 'The product description exceeds the maximum number of characters.', 'http_code' => 400, 'description' => '产品描述字符数超出限定值。'], + ['code' => 'iot.prod.NetTypeNotRelatedNodeType', 'message' => 'You cannot specify this networking method for this node type.', 'http_code' => 400, 'description' => '该节点类型下不支持此种入网方式。'], + ['code' => 'iot.prod.NetTypeNotRelatedProductAuthType', 'message' => 'The networking method is not consistent with the product verification type.', 'http_code' => 400, 'description' => '该入网方式不支持此种产品认证方式。'], + ['code' => 'iot.prod.NetTypeNotRelatedProductAuthType', 'message' => 'NetType not supported for the ProductAuthType.', 'http_code' => 400, 'description' => '该入网方式不支持此种产品认证方式,请核对后重试。'], + ['code' => 'iot.prod.NotAllowedToConcurrentCreateProduct', 'message' => 'Concurrent creation of products is not allowed.', 'http_code' => 400, 'description' => '不允许并发创建产品,请稍后重试。'], + ['code' => 'iot.prod.NotDeviceProduct', 'message' => 'The node type of the specified product must be device.', 'http_code' => 400, 'description' => '产品不是设备类型。'], + ['code' => 'iot.prod.NotExistedAliyunAccountError', 'message' => 'The specified Alibaba Cloud account does not exist.', 'http_code' => 400, 'description' => '输入的阿里云账号不存在。'], + ['code' => 'iot.prod.NotExistedProduct', 'message' => 'The specified product does not exist.', 'http_code' => 400, 'description' => '指定的产品不存在。'], + ['code' => 'iot.prod.NotExistedProduct', 'message' => 'iot.prod.NotExistedProduct.', 'http_code' => 400, 'description' => '产品不存在。'], + ['code' => 'iot.prod.NotExistScript', 'message' => 'The script does not exist.', 'http_code' => 400, 'description' => '脚本不存在。'], + ['code' => 'iot.prod.NotFoundProductTag', 'message' => 'You cannot perform this operation. Some of the specified product tags do not exist.', 'http_code' => 400, 'description' => '部分产品标签不存在,不能操作。'], + ['code' => 'iot.prod.NotGatewayProduct', 'message' => 'The node type of the specified product must be gateway.', 'http_code' => 400, 'description' => '产品不是网关类型。'], + ['code' => 'iot.prod.NotOpenID2Service', 'message' => 'You have not activated the ID² service.', 'http_code' => 400, 'description' => '没有开通ID²服务。'], + ['code' => 'iot.prod.NotOpenIoTError', 'message' => 'The specified Alibaba Cloud account has not activated the IoT Platform service.', 'http_code' => 400, 'description' => '输入的阿里云账号没有开通IoT服务。'], + ['code' => 'iot.Prod.NotProductOwner', 'message' => 'You are not the product owner.', 'http_code' => 400, 'description' => '当前操作者不是产品的拥有者。'], + ['code' => 'iot.Prod.NotProductOwner', 'message' => 'You are not product owner.', 'http_code' => 400, 'description' => '当前操作者不是产品的拥有者。'], + ['code' => 'iot.prod.NotProtocolProduct', 'message' => 'The product does not contain any protocol information.', 'http_code' => 400, 'description' => '产品没有协议信息。'], + ['code' => 'iot.prod.NotSeniorProduct', 'message' => 'The product does not support the TSL feature.', 'http_code' => 400, 'description' => '产品不支持物模型。您创建产品时,定义为不使用物模型版的产品。'], + ['code' => 'iot.prod.NotSupportForModbusProtocol', 'message' => 'The standard feature cannot be added to the Modbus product.', 'http_code' => 400, 'description' => 'modbus协议产品不支持添加标准功能。'], + ['code' => 'iot.prod.NotTurnOnSecureUpgrade', 'message' => 'Secure update has not been activated for the product.', 'http_code' => 400, 'description' => '产品的安全升级开关未打开。'], + ['code' => 'iot.prod.NotX509AuthenticationType', 'message' => 'The device certification is not an X.509 certificate.', 'http_code' => 400, 'description' => '设备认证类型不是X.509。'], + ['code' => 'iot.prod.NotX509AuthenticationType', 'message' => 'Device certification type is not X.509', 'http_code' => 400, 'description' => '设备认证类型不是X.509。'], + ['code' => 'iot.prod.NullAbilityIdentifier', 'message' => 'You must specify a feature identifier.', 'http_code' => 400, 'description' => '功能标识符不能为空。'], + ['code' => 'iot.prod.NullAbilityList', 'message' => 'The feature list cannot be empty.', 'http_code' => 400, 'description' => '功能列表不能为空。'], + ['code' => 'iot.prod.NullCategoryType', 'message' => 'The category type cannot be empty', 'http_code' => 400, 'description' => '品类名称为空。'], + ['code' => 'iot.prod.NullIssueModel', 'message' => 'The IssueModel parameter cannot be empty.', 'http_code' => 400, 'description' => '入参证书颁发模式没有赋值。'], + ['code' => 'iot.prod.NullIssueModel', 'message' => 'No assignment in the entry certificate issuance mode', 'http_code' => 400, 'description' => '入参证书颁发模式没有赋值。'], + ['code' => 'iot.prod.NullJoinPermissionId', 'message' => 'You must specify the JoinPermissionId parameter.', 'http_code' => 400, 'description' => '入网凭证为空。'], + ['code' => 'iot.prod.NullProductKey', 'message' => 'The ProductKey parameter cannot be empty.', 'http_code' => 400, 'description' => '入参产品ProductKey不能为空。'], + ['code' => 'iot.prod.NullProductKey', 'message' => 'The ProductKey is empty.', 'http_code' => 400, 'description' => '入参产品ID没有赋值。'], + ['code' => 'iot.prod.NullProductName', 'message' => 'The product name cannot be empty.', 'http_code' => 400, 'description' => '入参产品名称不能为空。'], + ['code' => 'iot.prod.NullScriptCode', 'message' => 'The script code cannot be empty.', 'http_code' => 400, 'description' => '脚本code不能为空。'], + ['code' => 'iot.prod.NullScriptId', 'message' => 'The script ID cannot be empty.', 'http_code' => 400, 'description' => '脚本id不能为空。'], + ['code' => 'iot.prod.NullScriptName', 'message' => 'The script name cannot be empty.', 'http_code' => 400, 'description' => '脚本名称不能为空。'], + ['code' => 'iot.prod.NullScriptType', 'message' => 'The script type cannot be empty.', 'http_code' => 400, 'description' => '脚本类型不能为空。'], + ['code' => 'iot.prod.OpenProductExternalServiceFailed', 'message' => 'An error occurred while activating the service.', 'http_code' => 400, 'description' => '产品开通平台服务失败'], + ['code' => 'iot.prod.OpenServeFailed', 'message' => 'An error occurred while activating the living IoT Platform service.', 'http_code' => 400, 'description' => '飞燕平台服务开通失败'], + ['code' => 'iot.prod.OpenUserServeFail', 'message' => 'An error occurred while activating the service.', 'http_code' => 400, 'description' => '用户开通平台服务失败'], + ['code' => 'Iot.Prod.OssGenerateUrlFailed', 'message' => 'Oss generate url failed.', 'http_code' => 400, 'description' => 'Oss上传路径生成失败。'], + ['code' => 'iot.prod.OverMqttInstanceProductNumber', 'message' => 'the product number is over mqtt instance limit.', 'http_code' => 400, 'description' => '每个Mqtt实例只允许创建一个产品。'], + ['code' => 'iot.prod.PermissionTypeError', 'message' => 'The permission type of the product is invalid.', 'http_code' => 400, 'description' => '产品权限类型错误'], + ['code' => 'iot.prod.ProductCountExceedMax', 'message' => 'The number of products exceeds the limit.', 'http_code' => 400, 'description' => '产品总数已超过最大限制数量。'], + ['code' => 'iot.prod.ProductDataFormatIsNull', 'message' => 'The dataFormat field of the product is empty.', 'http_code' => 400, 'description' => '数据解析脚本提交失败。您创建产品时,请求参数DataFormat值为空。'], + ['code' => 'iot.prod.ProductInDevStatus', 'message' => 'product is already in development status. do not need to reset', 'http_code' => 400, 'description' => '产品已处于开发态,不需要重置。'], + ['code' => 'iot.prod.ProductIsInCommonPool', 'message' => 'You cannot perform this operation because this product is in the public pool.', 'http_code' => 400, 'description' => '产品在公共池中,不能操作。'], + ['code' => 'iot.prod.ProductIsInCommonPool', 'message' => 'You cannot perform this operation, because this product is in the public pool.', 'http_code' => 400, 'description' => '该产品已授权公共池,请取消授权后重试。'], + ['code' => 'iot.prod.ProductIsNotReleased', 'message' => 'An error occurred. The product has not been published.', 'http_code' => 400, 'description' => '产品未发布,不能操作'], + ['code' => 'iot.prod.ProductIsReleasedError', 'message' => 'An error occurred. The product has been published.', 'http_code' => 400, 'description' => '产品已发布,不能操作。'], + ['code' => 'iot.prod.ProductIsReleasedError.', 'message' => 'An error occurred. The product has been published.', 'http_code' => 400, 'description' => '产品已发布,不能操作。'], + ['code' => 'iot.prod.ProductNotConsumeServe', 'message' => 'No other platform services are enabled for the product.', 'http_code' => 400, 'description' => '产品没有开通其他平台服务'], + ['code' => 'iot.prod.ProductNotMatchedWithOwner', 'message' => 'The specified product is not available for the current user.', 'http_code' => 400, 'description' => '产品不属于当前用户。'], + ['code' => 'iot.prod.ProductTagCountExceedMax', 'message' => 'The maximum number of product tags is exceeded.', 'http_code' => 400, 'description' => '产品标签的总数不能超过限定值。'], + ['code' => 'iot.prod.PropertySizeOutOfBounds', 'message' => 'The number of properties exceeds the limit.', 'http_code' => 400, 'description' => '标准属性数量超出最大范围。'], + ['code' => 'iot.prod.PublishThingModelFailed', 'message' => 'Failed to publish the TSL model.', 'http_code' => 400, 'description' => '发布物模型失败。'], + ['code' => 'iot.prod.QueryAuthorizedProductListError', 'message' => 'An error occurred while querying the authorized products.', 'http_code' => 400, 'description' => '查询授权产品列表失败。'], + ['code' => 'iot.prod.QueryCategoryTagFailed', 'message' => 'Failed to query category tags.', 'http_code' => 400, 'description' => '查询品类标签列表失败'], + ['code' => 'iot.prod.QueryDeviceCountActionError', 'message' => 'An error occurred while querying the number of devices under a product.', 'http_code' => 400, 'description' => '查询产品下的设备总数失败。'], + ['code' => 'iot.prod.QueryDynamicRegisterSwitchFailed', 'message' => 'An error occurred while querying dynamic device registration.', 'http_code' => 400, 'description' => '查询设备动态注册开关失败。'], + ['code' => 'iot.prod.QueryEventFailed', 'message' => 'Failed to query the event.', 'http_code' => 400, 'description' => '查询事件失败'], + ['code' => 'iot.prod.QueryEventNotFound', 'message' => 'Query event not found.', 'http_code' => 400, 'description' => '查询事件不存在。'], + ['code' => 'iot.prod.QueryExtendPropertyFailed', 'message' => 'An error occurred while querying the product tags.', 'http_code' => 400, 'description' => '查询产品标签失败。'], + ['code' => 'iot.prod.QueryModelConfigError', 'message' => 'An error occurred while querying the TSL configuration information.', 'http_code' => 400, 'description' => '查询物模型配置信息失败。'], + ['code' => 'iot.prod.QueryProductAbilitiesFailed', 'message' => 'An error occurred while querying the product features.', 'http_code' => 400, 'description' => '获取产品功能失败。'], + ['code' => 'iot.prod.QueryProductAbilitiesNotFound', 'message' => 'Query product abilities not found.', 'http_code' => 400, 'description' => '获取产品功能不存在。'], + ['code' => 'iot.prod.QueryProductAbilityFailed', 'message' => 'An error occurred while querying the product feature.', 'http_code' => 400, 'description' => '查询产品功能失败。'], + ['code' => 'iot.prod.QueryProductCertInfoError', 'message' => 'Failed to query the product certificate information.', 'http_code' => 400, 'description' => '查询产品证书信息失败。'], + ['code' => 'iot.prod.QueryProductCertInfoError', 'message' => 'Failed to query product certificate information', 'http_code' => 400, 'description' => '查询产品证书信息失败。'], + ['code' => 'iot.prod.QueryProductEventFailed', 'message' => 'An error occurred while querying the product events.', 'http_code' => 400, 'description' => '查询产品事件失败。'], + ['code' => 'iot.prod.QueryProductExternalServiceFailed', 'message' => 'Failed to query the services that are enabled for the product.', 'http_code' => 400, 'description' => '查询产品开通的服务失败。'], + ['code' => 'iot.prod.QueryProductListActionError', 'message' => 'An error occurred while querying the products.', 'http_code' => 400, 'description' => '获取产品列表数据失败。'], + ['code' => 'iot.prod.QueryProductListByTagFailed', 'message' => 'An error occurred while searching for products by tag.', 'http_code' => 400, 'description' => '根据标签获取产品列表失败'], + ['code' => 'iot.prod.QueryProductListConsoleFailed', 'message' => 'An error occurred while searching for products by tag.', 'http_code' => 400, 'description' => '根据标签获取产品列表失败'], + ['code' => 'iot.prod.QueryProductNumFailed', 'message' => 'An error occurred while querying the number of products.', 'http_code' => 400, 'description' => '查询产品数量失败。'], + ['code' => 'iot.prod.QueryProductPropertyFailed', 'message' => 'An error occurred while querying the product property.', 'http_code' => 400, 'description' => '查询产品属性失败。'], + ['code' => 'iot.prod.QueryProductServeQuotaFail', 'message' => 'An error occurred while querying the number of product activation codes that can be used on related platforms.', 'http_code' => 400, 'description' => '查询产品在关联平台的激活码数量失败。'], + ['code' => 'iot.prod.QueryProductServiceFailed', 'message' => 'An error occurred while querying product services.', 'http_code' => 400, 'description' => '查询产品服务失败。'], + ['code' => 'iot.prod.QueryProductTagFailed', 'message' => 'An error occurred while obtaining the product tags.', 'http_code' => 400, 'description' => '获取产品标签失败。'], + ['code' => 'iot.prod.QueryPropertyFailed', 'message' => 'Failed to query the property.', 'http_code' => 400, 'description' => '查询属性失败'], + ['code' => 'iot.prod.QueryPropertyNotFound', 'message' => 'Query property not found.', 'http_code' => 400, 'description' => '查询属性不存在。'], + ['code' => 'iot.prod.QueryRegionListFailed', 'message' => 'An error occurred while querying the regions.', 'http_code' => 400, 'description' => '查询区域列表失败。'], + ['code' => 'iot.prod.QueryScriptDraftFailed', 'message' => 'An error occurred while querying the script draft.', 'http_code' => 400, 'description' => '查询脚本草稿失败。'], + ['code' => 'iot.prod.QueryScriptFailed', 'message' => 'Failed to query the script.', 'http_code' => 400, 'description' => '查询脚本失败。'], + ['code' => 'iot.prod.QueryServiceFailed', 'message' => 'Failed to query the service.', 'http_code' => 400, 'description' => '查询服务失败'], + ['code' => 'iot.prod.QueryServiceNotFound', 'message' => 'Query service not found.', 'http_code' => 400, 'description' => '查询服务不存在。'], + ['code' => 'iot.prod.QueryStandardAbilityFailed', 'message' => 'An error occurred while querying the standard feature.', 'http_code' => 400, 'description' => '查询标准功能失败。'], + ['code' => 'iot.prod.QueryStandardAbilityOfCategoryFailed', 'message' => 'An error occurred while querying standard features of the category.', 'http_code' => 400, 'description' => '查询品类的标准功能失败。'], + ['code' => 'iot.prod.QueryStandardAbilityOfEventFailed', 'message' => 'Failed to query standard events.', 'http_code' => 400, 'description' => '查询标准事件失败。'], + ['code' => 'iot.prod.QueryStandardAbilityOfPropertyFailed', 'message' => 'Failed to query standard properties.', 'http_code' => 400, 'description' => '查询标准属性失败。'], + ['code' => 'iot.prod.QueryStandardAbilityOfServiceFailed', 'message' => 'Failed to query the standard services.', 'http_code' => 400, 'description' => '查询标准服务失败。'], + ['code' => 'iot.prod.QueryStandardEventOfCategoryFailed', 'message' => 'An error occurred while querying the standard events of the category.', 'http_code' => 400, 'description' => '查询品类的标准事件失败。'], + ['code' => 'iot.prod.QueryStandardPropertyOfCategoryFailed', 'message' => 'An error occurred while querying the standard properties of the category.', 'http_code' => 400, 'description' => '查询品类的标准属性失败。'], + ['code' => 'iot.prod.QueryStandardServiceOfCategoryFailed', 'message' => 'An error occurred while querying standard services of the category.', 'http_code' => 400, 'description' => '查询品类的标准服务失败。'], + ['code' => 'iot.prod.QuerystandardUnitFailed', 'message' => 'An error occurred while obtaining the unit.', 'http_code' => 400, 'description' => '单位获取失败'], + ['code' => 'iot.prod.QueryUserServeFailed', 'message' => 'Failed to obtain the user information.', 'http_code' => 400, 'description' => '平台获取用户信息失败'], + ['code' => 'iot.prod.ReleaseAbilityError', 'message' => 'An error occurred while publishing the product feature.', 'http_code' => 400, 'description' => '发布功能失败。'], + ['code' => 'iot.prod.ReleaseProductError', 'message' => 'An error occurred while publishing the product.', 'http_code' => 400, 'description' => '发布产品失败。'], + ['code' => 'iot.prod.RemoveThingModelFailed', 'message' => 'Failed to delete the TSL model.', 'http_code' => 400, 'description' => '删除物模型失败。'], + ['code' => 'iot.prod.RequiredStandardAbilityCanNotDelete', 'message' => 'The standard features not be deleted.', 'http_code' => 400, 'description' => '必选标准功能无法被删除。'], + ['code' => 'iot.prod.RequiredStandardAbilityCanNotDelete', 'message' => 'The standard ability must not be deleted', 'http_code' => 400, 'description' => '标准功能定义不能被删除,请核对后重试。'], + ['code' => 'iot.prod.ResetProductSecretFailed', 'message' => 'An error occurred while resetting the ProductSecret.', 'http_code' => 400, 'description' => '重置产品秘钥失败。'], + ['code' => 'iot.prod.RunScriptFailed', 'message' => 'An error occurred while running the script.', 'http_code' => 400, 'description' => '运行脚本失败。'], + ['code' => 'iot.prod.SameSrcPKAndTargetPKError', 'message' => 'The source product must be different from the destination product.', 'http_code' => 400, 'description' => '拷贝的源产品和目标产品一致。'], + ['code' => 'iot.prod.ScriptSizeExceedLimit', 'message' => 'The size of the script exceeds the limit.', 'http_code' => 400, 'description' => '脚本大小超过限制。'], + ['code' => 'iot.prod.ScriptSizeExceedLimit', 'message' => 'The script exceeds the size limit.', 'http_code' => 400, 'description' => '脚本大小超过限制。'], + ['code' => 'iot.prod.SecureUpgradeAlreadyOnOrOff', 'message' => 'Secure update has been enabled or disabled for the product.', 'http_code' => 400, 'description' => '产品的安全升级开关已经打开/关闭。'], + ['code' => 'iot.prod.SeniorProductOnly', 'message' => 'Only senior products can be created in the platform.', 'http_code' => 400, 'description' => '服务平台只允许创建高级版的产品。'], + ['code' => 'iot.prod.ServeCodeIsNotMatchedWithProduct', 'message' => 'The platform service is not enabled for the product.', 'http_code' => 400, 'description' => '产品没有开通对应平台服务'], + ['code' => 'iot.prod.ServiceSizeOutOfBounds', 'message' => 'The number of standard services exceed the limit.', 'http_code' => 400, 'description' => '标准服务数量超出最大范围。'], + ['code' => 'iot.prod.SetDynamicRegisterSwitchFailed', 'message' => 'An error occurred while enabling dynamic registration.', 'http_code' => 400, 'description' => '设置设备动态注册开关失败。'], + ['code' => 'iot.prod.SetProductCertInfoError', 'message' => 'Failed to specify the product certificate information.', 'http_code' => 400, 'description' => '设置产品证书信息失败。'], + ['code' => 'iot.prod.SetProductCertInfoError', 'message' => 'Failed to set up product certificate information.', 'http_code' => 400, 'description' => '设置产品证书信息失败。'], + ['code' => 'iot.prod.SrcThingModelNotExisted', 'message' => 'The TSL model of the source product does not exist.', 'http_code' => 400, 'description' => '源产品运行时物模型不存在'], + ['code' => 'iot.prod.SrcThingModelNotExisted', 'message' => 'the thing model of the source product is not existed.', 'http_code' => 400, 'description' => '源产品运行时物模型不存在。'], + ['code' => 'iot.prod.StandardAbilityDataTypeNotSupportCustomEdit', 'message' => 'The data type of the standard feature cannot not be modified.', 'http_code' => 400, 'description' => '标准功能数据类型不支持编辑。'], + ['code' => 'iot.prod.StandardAbilityNotSupportCustomEdit', 'message' => 'The standard feature cannot be modified.', 'http_code' => 400, 'description' => '标准功能不支持自定义编辑。'], + ['code' => 'iot.prod.StandardAbilityRwTypeNotSupportCustomEdit', 'message' => 'The read/write type of the standard feature cannot be modified.', 'http_code' => 400, 'description' => '标准功能读写类型不支持编辑。'], + ['code' => 'iot.prod.TemplateNameLengthExceeded', 'message' => 'The TSL model name exceeds the length limit.', 'http_code' => 400, 'description' => '物模版名称太长'], + ['code' => 'iot.prod.ThingModelIdentifierDuplicated', 'message' => 'The identifiers must be unique.', 'http_code' => 400, 'description' => '存在重复的功能标识符。'], + ['code' => 'iot.prod.ThingModelJsonItemCountExceedLimit', 'message' => 'The number of defined TSL features exceeds the limit.', 'http_code' => 400, 'description' => '物模型ThingModelJson中功能定义项数量超限。'], + ['code' => 'iot.prod.ThingModelJsonItemCountExceedLimit', 'message' => 'the count of the functions in thing model is over limited.', 'http_code' => 400, 'description' => '物模型ThingModelJson中功能定义项数量超限。'], + ['code' => 'iot.prod.ThingModelNameDuplicated', 'message' => 'The feature names in the TSL model must be unique.', 'http_code' => 400, 'description' => '物模型中存在重复的功能定义名称。'], + ['code' => 'iot.prod.ThingModelNotExisted', 'message' => 'The TSL model of the product does not exist.', 'http_code' => 400, 'description' => '产品运行时物模型不存在'], + ['code' => 'iot.prod.ThingModelVersionExisted', 'message' => 'The TSL model version already exists.', 'http_code' => 400, 'description' => '物模型版本号已经存在。'], + ['code' => 'iot.prod.ThingModelVersionNotExisted', 'message' => 'The TSL model version of the product does not exist.', 'http_code' => 400, 'description' => '物模型版本号不存在'], + ['code' => 'iot.prod.ThingScriptDataFormatError', 'message' => 'The format of the data parsing script is invalid.', 'http_code' => 400, 'description' => '产品的数据解析脚本类型错误。'], + ['code' => 'iot.prod.ThingScriptExisted', 'message' => 'The script already exists.', 'http_code' => 400, 'description' => '产品下已存在创建或更新的数据解析脚本。'], + ['code' => 'iot.prod.TslSizeOverLimit', 'message' => 'The data size of the TSL model exceeds the limit.', 'http_code' => 400, 'description' => '物模型TSL文件字符总数超过限制。'], + ['code' => 'iot.prod.UpdateExtendPropertyFailed', 'message' => 'An error occurred while updating the extended property.', 'http_code' => 400, 'description' => '更新扩展属性失败。'], + ['code' => 'iot.prod.UpdateProductAbilityFailed', 'message' => 'An error occurred while updating the product features.', 'http_code' => 400, 'description' => '更新产品功能失败。'], + ['code' => 'iot.prod.UpdateProductDegradationFailed', 'message' => 'An error occurred while updating the product degradation policy.', 'http_code' => 400, 'description' => '更新产品降级规则失败'], + ['code' => 'iot.prod.UpdateProductFailed', 'message' => 'An error occurred while updating the product information.', 'http_code' => 400, 'description' => '更新产品信息失败。'], + ['code' => 'iot.prod.UpdateProductFilterFailed', 'message' => 'An error occurred while updating the product filtering policy.', 'http_code' => 400, 'description' => '更新产品过滤规则失败'], + ['code' => 'iot.prod.UpdateProductTagFailed', 'message' => 'An error occurred while updating the product tags.', 'http_code' => 400, 'description' => '更新产品标签失败'], + ['code' => 'iot.prod.UpdateScriptDraftFailed', 'message' => 'An error occurred while updating the script draft.', 'http_code' => 400, 'description' => '更新脚本草稿失败。'], + ['code' => 'iot.prod.UpdateScriptFailed', 'message' => 'An error occurred while updating the script.', 'http_code' => 400, 'description' => '更新脚本失败。'], + ['code' => 'iot.prod.UpdateThingModelExtendConfigFailed', 'message' => 'Failed to update the extended information of the TSL model.', 'http_code' => 400, 'description' => '更新扩展物模型失败'], + ['code' => 'iot.prod.UpdateThingModelExtendConfigFailed', 'message' => 'failed to update thing model extend config.', 'http_code' => 400, 'description' => '更新扩展物模型失败。'], + ['code' => 'iot.prod.UpdateThingModelFailed', 'message' => 'Failed to update the TSL model.', 'http_code' => 400, 'description' => '更新物模型失败。'], + ['code' => 'iot.prod.UpsertThingModelFailed', 'message' => 'Failed to update the TSL model.', 'http_code' => 400, 'description' => '更新物模型失败'], + ['code' => 'iot.product.EntityAlreadyExistsResource', 'message' => 'The resource already exists.', 'http_code' => 400, 'description' => '资源已存在'], + ['code' => 'iot.product.EntityNotExistsResource', 'message' => 'The resource does not exist.', 'http_code' => 400, 'description' => '资源不存在'], + ['code' => 'Iot.product.ExtendPropertyExist', 'message' => 'Extend property exists.', 'http_code' => 400, 'description' => '将创建的属性已存在。'], + ['code' => 'iot.product.NotExist', 'message' => 'Product does not exist.', 'http_code' => 400, 'description' => '产品不存在'], + ['code' => 'Iot.product.ProductNotFound', 'message' => 'Product not found.', 'http_code' => 400, 'description' => '产品找不到。'], + ['code' => 'iot.product.ProductNotInRg', 'message' => 'The product is not in the resource group.', 'http_code' => 400, 'description' => '产品不在该资源组'], + ['code' => 'iot.product.ProductNotInRg', 'message' => 'product not in resource group', 'http_code' => 400, 'description' => '产品不在该资源组。'], + ['code' => 'iot.product.ResourceCreateExp', 'message' => 'An error occurred while creating the resource.', 'http_code' => 400, 'description' => '资源创建异常异常'], + ['code' => 'iot.product.ResourceDeleteExp', 'message' => 'An error occurred while deleting the resource.', 'http_code' => 400, 'description' => '资源删除异常'], + ['code' => 'iot.product.ResourceGroupNotExists', 'message' => 'The resource group does not exist.', 'http_code' => 400, 'description' => '资源组不存在'], + ['code' => 'iot.product.ResourceGroupPreCheckExp', 'message' => 'An error occurred while prechecking the resource group.', 'http_code' => 400, 'description' => '资源组预检查异常。'], + ['code' => 'iot.product.ResourceGroupPreCheckFail', 'message' => 'Failed to pre-check the resource group.', 'http_code' => 400, 'description' => '资源组预检查失败'], + ['code' => 'iot.product.ResourceUpdateExp', 'message' => 'An error occurred while updating the resource.', 'http_code' => 400, 'description' => '资源更新异常'], + ['code' => 'iot.product.UpdateRgParamsError', 'message' => 'An error occurred while updating the resource group.', 'http_code' => 400, 'description' => '更新资源组参数错误'], + ['code' => 'iot.product.UpdateRgUnknowType', 'message' => 'The resource type is invalid.', 'http_code' => 400, 'description' => '未知资源类型'], + ['code' => 'Iot.ProductKey.NotExisted', 'message' => 'The product key does not exist.', 'http_code' => 200, 'description' => '产品不存在'], + ['code' => 'iot.provisioning.AccountNotFound', 'message' => 'The Alibaba Cloud account does not exist.', 'http_code' => 400, 'description' => '输入的阿里云账号不存在。'], + ['code' => 'iot.provisioning.CaptchaNotFound', 'message' => 'The authorization code is invalid.', 'http_code' => 400, 'description' => '授权码错误。'], + ['code' => 'iot.provisioning.CaptchaNotNull', 'message' => 'The authorization code cannot be empty.', 'http_code' => 400, 'description' => '该操作需要填写授权码。'], + ['code' => 'iot.provisioning.ConcurrentOperations', 'message' => 'The concurrent operation does not permitted.', 'http_code' => 400, 'description' => '并发操作,请稍后重试。'], + ['code' => 'iot.provisioning.CrmServiceError', 'message' => 'The service of the Alibaba Cloud account is abnormal.', 'http_code' => 400, 'description' => '阿里云账号服务异常。'], + ['code' => 'iot.provisioning.DeviceIsDistributing', 'message' => 'The device is being distributed.', 'http_code' => 400, 'description' => '设备分发中。'], + ['code' => 'iot.provisioning.DeviceIsInAnotherTask', 'message' => 'the device is in another distribution task.', 'http_code' => 400, 'description' => '当前设备在其它分发任务中。'], + ['code' => 'iot.provisioning.DuplicatedJob', 'message' => 'Duplicated Job.', 'http_code' => 400, 'description' => '重复创建相同产品迁移任务。'], + ['code' => 'iot.provisioning.ErrorStrategy', 'message' => 'The distribution policy is not supported.', 'http_code' => 400, 'description' => '不支持该分发策略。'], + ['code' => 'iot.provisioning.FailGetLogLat', 'message' => 'Failed to obtain the location information.', 'http_code' => 400, 'description' => '获取经纬度信息失败。'], + ['code' => 'iot.provisioning.InstanceOperationDeny', 'message' => 'The destination instance not belongs to the destination Alibaba Cloud account.', 'http_code' => 400, 'description' => '目标实例不属于目标阿里云账号。'], + ['code' => 'iot.provisioning.InstanceRegionConflict', 'message' => 'You can specify only one instance in each region.', 'http_code' => 400, 'description' => '每个地域只能选择一个实例ID。'], + ['code' => 'iot.provisioning.InvalidDistributionStatus', 'message' => 'The distribution status is invalid.', 'http_code' => 400, 'description' => '该任务状态下,禁止操作。'], + ['code' => 'iot.provisioning.InvalidRuntimeDataMigrationStatus', 'message' => 'The runtime data migration status is invalid.', 'http_code' => 400, 'description' => '运行时数据迁移状态无效。'], + ['code' => 'iot.provisioning.LimitExceeded', 'message' => 'The number of devices for the distribution task exceed the limit.', 'http_code' => 400, 'description' => '分发设备数超出限制。'], + ['code' => 'iot.provisioning.NextTokenNotNull', 'message' => 'The NextToken parameter cannot be empty.', 'http_code' => 400, 'description' => '请求参数NextToken不能为空。详细说明,请参见ListDeviceDistributeJob。'], + ['code' => 'iot.provisioning.NotCrossTenantId', 'message' => 'The operation cannot be performed across accounts.', 'http_code' => 400, 'description' => '该操作不支持跨阿里云账号。'], + ['code' => 'iot.provisioning.NotDeviceOwner', 'message' => 'The current account is not the device owner.', 'http_code' => 400, 'description' => '当前操作者不是设备的拥有者。'], + ['code' => 'iot.provisioning.ProductIsDistributing', 'message' => 'The product is being distributed.', 'http_code' => 400, 'description' => '产品分发中。'], + ['code' => 'iot.provisioning.RunningTaskExcceedLimit', 'message' => 'The number of distribution tasks exceeds the limit.', 'http_code' => 400, 'description' => '当前阿里云账号的并行分发任务已超出限制。'], + ['code' => 'iot.provisioning.RuntimeDataMigrationNotExist', 'message' => 'The runtime data migration does not exist.', 'http_code' => 400, 'description' => '运行时数据迁移不存在。'], + ['code' => 'iot.provisioning.SameProductName', 'message' => 'Duplicated product name.', 'http_code' => 400, 'description' => '目标实例存在相同相同名称的产品'], + ['code' => 'iot.provisioning.SendCaptchaFlowControl', 'message' => 'An error occurred due to throttling. Try again l minute later.', 'http_code' => 400, 'description' => '操作频繁,1分钟后重试。'], + ['code' => 'iot.provisioning.SourceInstanceNotFound', 'message' => 'The source instance does not exist.', 'http_code' => 400, 'description' => '源实例ID不存在。'], + ['code' => 'iot.provisioning.TargetAccountParamsError', 'message' => 'The account cannot be empty.', 'http_code' => 400, 'description' => '账号信息不能为空。'], + ['code' => 'iot.provisioning.TargetInstanceNotFound', 'message' => 'The destination instance ID does not exist.', 'http_code' => 400, 'description' => '目标实例ID不存在。'], + ['code' => 'iot.provisioning.TaskAlreadyFinish', 'message' => 'The distribution task is completed.', 'http_code' => 400, 'description' => '分发任务已完成。'], + ['code' => 'iot.provisioning.TaskIdSizeError', 'message' => 'Error taskId.', 'http_code' => 400, 'description' => '任务id长度错误。'], + ['code' => 'iot.provisioning.TaskIsProcessing', 'message' => 'The distribution task is in progress.', 'http_code' => 400, 'description' => '分发任务还在进行中。'], + ['code' => 'iot.provisioning.TaskIsProcessing', 'message' => 'Task is processing.', 'http_code' => 400, 'description' => '分发任务进行中。'], + ['code' => 'iot.provisioning.TaskNotExist', 'message' => 'The distribution does not exist.', 'http_code' => 400, 'description' => '分发任务不存在。'], + ['code' => 'iot.provisioning.TaskNotExist', 'message' => 'The specific task does not exist.', 'http_code' => 400, 'description' => '任务不存在。'], + ['code' => 'iot.provisioning.TaskNotExist', 'message' => 'Task not exists.', 'http_code' => 400, 'description' => '任务不存在。'], + ['code' => 'iot.provisioning.TaskNotFinish', 'message' => 'The distribution task is not completed.', 'http_code' => 400, 'description' => '分发任务未完成。'], + ['code' => 'iot.provisioning.UidAndTaskNotMatch', 'message' => 'The current Alibaba Cloud account is not the owner of this distribution task.', 'http_code' => 400, 'description' => '当前阿里云账号ID不是任务创建者的账号ID。'], + ['code' => 'iot.provisioning.UidAndTaskNotMatch', 'message' => 'Invalid tenant.', 'http_code' => 400, 'description' => '您不是该Task的所有者。'], + ['code' => 'iot.rbac.QueryTenantIdFailed', 'message' => 'Failed to obtain the tenant ID.', 'http_code' => 400, 'description' => '获取租户ID失败'], + ['code' => 'iot.rbac.QueryTenantIdFailed', 'message' => 'Invalid tenant.', 'http_code' => 400, 'description' => '不合法的租户或者创建租户失败。'], + ['code' => 'iot.rbac.QueryTenantIdFailed', 'message' => 'Query tenantId failed.', 'http_code' => 400, 'description' => '获取租户ID失败。'], + ['code' => 'iot.rtc.invalid.license.code', 'message' => 'Invalid license code.', 'http_code' => 400, 'description' => '无效的License编码。'], + ['code' => 'iot.rtc.invalid.product.key', 'message' => 'Invalid product key.', 'http_code' => 400, 'description' => '无效的产品KEY。'], + ['code' => 'iot.rtc.invalid.product.key', 'message' => 'invalid product key', 'http_code' => 400, 'description' => '无效的产品KEY'], + ['code' => 'iot.rtc.license.device.authorization.executing', 'message' => 'Authorization for this license device is in progress.', 'http_code' => 400, 'description' => '此实例和License类型的设备授权在运行中,请等待。'], + ['code' => 'iot.rtc.license.product.relation.exist', 'message' => 'License product relation has exist.', 'http_code' => 400, 'description' => '产品已经授权。'], + ['code' => 'iot.rtc.license.product.relation.exist', 'message' => 'license product relation has exist', 'http_code' => 400, 'description' => '产品已经授权'], + ['code' => 'iot.rtc.license.product.relation.nonexist', 'message' => 'License product relation non existent.', 'http_code' => 400, 'description' => '产品未授权。'], + ['code' => 'iot.rtc.license.quota.lack', 'message' => 'License quota is not enough.', 'http_code' => 400, 'description' => 'License额度不够,请购买。'], + ['code' => 'iot.rtc.license.quota.lack', 'message' => 'license_quota is not enough', 'http_code' => 400, 'description' => 'license额度不够,请购买'], + ['code' => 'iot.rtc.service.notSigned', 'message' => 'The RTC service is not activated.', 'http_code' => 400, 'description' => '音视频通信服务未开通。'], + ['code' => 'iot.rtc.service.notSigned', 'message' => 'rtc service sign does not exist', 'http_code' => 400, 'description' => '音视频通信服务未开通'], + ['code' => 'iot.rule.ConnectorCountExceed', 'message' => 'The count of parser exceeds the maximum number.', 'http_code' => 400, 'description' => '解析器数量超过限制。'], + ['code' => 'iot.rule.ConnectorIsAlreadyExisted', 'message' => 'The parser name already exists.', 'http_code' => 400, 'description' => '解析器名称已经存在。'], + ['code' => 'iot.rule.CreateRuleException', 'message' => 'An exception occurred while creating the rule.', 'http_code' => 400, 'description' => '创建规则过程发生异常。'], + ['code' => 'iot.rule.DataSourceBounded', 'message' => 'data source has been bounded. unbound it first.', 'http_code' => 400, 'description' => '数据源已绑定规则,请先解除。'], + ['code' => 'iot.rule.DataSourceCountExceed', 'message' => 'The count of data source exceeds the maximum number.', 'http_code' => 400, 'description' => '数据源数量超过限制。'], + ['code' => 'iot.rule.DataSourceExists', 'message' => 'Same datasource is existed.', 'http_code' => 400, 'description' => '数据源已存在。'], + ['code' => 'iot.rule.DataSourceItemExists', 'message' => 'data source item exist.', 'http_code' => 400, 'description' => '数据源下item topic已存在。'], + ['code' => 'iot.rule.DataSourceItemNotExists', 'message' => 'datasource item not existed.', 'http_code' => 400, 'description' => '数据源条目不存在。'], + ['code' => 'iot.rule.DataSourceNotExists', 'message' => 'data source not exist.', 'http_code' => 400, 'description' => '数据源不存在。'], + ['code' => 'iot.rule.DataSourceNotExists', 'message' => 'Datasource not existed.', 'http_code' => 400, 'description' => '数据源不存在。'], + ['code' => 'iot.rule.DebugSqlError', 'message' => 'An error occurred while debugging the SQL expression.', 'http_code' => 400, 'description' => '调试sql失败。'], + ['code' => 'iot.rule.DeleteRuleFailed', 'message' => 'An error occurred while deleting the rule.', 'http_code' => 400, 'description' => '删除规则失败。'], + ['code' => 'iot.rule.DestinationCountExceed', 'message' => 'The count of destination exceeds the maximum number.', 'http_code' => 400, 'description' => '流转目的地数量超过限制。'], + ['code' => 'iot.rule.DestinationCountExceed', 'message' => 'The count of destination exceeds the maximum number', 'http_code' => 400, 'description' => '流转目的地数量超过限制'], + ['code' => 'iot.rule.DestinationInUsing', 'message' => 'Destination has been attached to parser.', 'http_code' => 400, 'description' => '流转目的地已关联解析器。'], + ['code' => 'iot.rule.DestinationNameExisted', 'message' => 'The destination name is existed.', 'http_code' => 400, 'description' => '同名数据目的地已存在。'], + ['code' => 'iot.rule.DestinationNameExisted', 'message' => 'The destination name is existed', 'http_code' => 400, 'description' => '同名数据目的地已存在'], + ['code' => 'iot.rule.DestinationNotAvailable', 'message' => 'destination not available', 'http_code' => 400, 'description' => '云产品数据目的配置暂不可用,请稍后重试'], + ['code' => 'iot.rule.DestinationNotBound', 'message' => 'The connector has not destination.', 'http_code' => 400, 'description' => '数据目的地未绑定。'], + ['code' => 'iot.rule.destinationNotExists', 'message' => 'Destination not found.', 'http_code' => 400, 'description' => '流转目的地不存在。'], + ['code' => 'iot.rule.EmptyScript', 'message' => 'The script is empty.', 'http_code' => 400, 'description' => '脚本配置为空。'], + ['code' => 'iot.rule.EmptyScriptDraft', 'message' => 'The script draft is empty.', 'http_code' => 400, 'description' => '脚本草稿为空。'], + ['code' => 'iot.rule.IncorrectCallbackType', 'message' => 'The specified subscription type is invalid.', 'http_code' => 400, 'description' => '服务器消息订阅类型错误。'], + ['code' => 'iot.rule.IncorrentRuleActionId', 'message' => 'The rule action ID is invalid.', 'http_code' => 400, 'description' => '规则动作ID错误。'], + ['code' => 'iot.rule.IncorrentRuleActionType', 'message' => 'The rule action type is invalid.', 'http_code' => 400, 'description' => '规则动作类型错误。'], + ['code' => 'iot.rule.IncorrentRuleId', 'message' => 'The rule ID is invalid.', 'http_code' => 400, 'description' => '规则ID错误。'], + ['code' => 'iot.rule.InstanceMigrateFailed', 'message' => 'Failed to migrate the instance.', 'http_code' => 400, 'description' => '规则引擎实例迁移失败。'], + ['code' => 'iot.rule.InvalidDataSourceName', 'message' => 'The data source name is invalid.', 'http_code' => 400, 'description' => '数据名称不合法。'], + ['code' => 'iot.rule.InvalidDestinationName', 'message' => 'The destination name is invalid.', 'http_code' => 400, 'description' => '数据目的名称无效。'], + ['code' => 'iot.rule.InvalidDestinationName', 'message' => 'The destination name is invalid', 'http_code' => 400, 'description' => '数据目的名称无效'], + ['code' => 'iot.rule.InvalidRuleName', 'message' => 'The rule name is invalid.', 'http_code' => 400, 'description' => '规则名称不合法。'], + ['code' => 'iot.rule.InvalidRuleName', 'message' => 'The rule name is invalid', 'http_code' => 400, 'description' => '规则名称不合法。'], + ['code' => 'iot.rule.ItemExceedsLimit', 'message' => 'item exceeds limit.', 'http_code' => 400, 'description' => '数据源下item超过限制。'], + ['code' => 'iot.rule.ListDestinationFailed', 'message' => 'An error occurred while querying destinations.', 'http_code' => 400, 'description' => '获取数据目的列表失败。'], + ['code' => 'iot.rule.NoDataSourceBound', 'message' => 'no datasource bound.', 'http_code' => 400, 'description' => '没有绑定数据源。'], + ['code' => 'iot.rule.NotFoundRule', 'message' => 'there are no rules.', 'http_code' => 400, 'description' => '规则不存在。'], + ['code' => 'iot.rule.NotFoundRuleAction', 'message' => 'The rule action does not exist.', 'http_code' => 400, 'description' => '规则动作不存在。'], + ['code' => 'iot.rule.NullForwardDestForRule', 'message' => 'The message publishing destination is empty.', 'http_code' => 400, 'description' => '转发数据目的地不能为空。'], + ['code' => 'iot.rule.NullRuleName', 'message' => 'The rule name is empty.', 'http_code' => 400, 'description' => '规则名称为空。'], + ['code' => 'iot.rule.NullSql', 'message' => 'The SQL expression is empty.', 'http_code' => 400, 'description' => '入参sql内容为空。'], + ['code' => 'iot.rule.NullSqlForRule', 'message' => 'The SQL expression for the rule does not exist.', 'http_code' => 400, 'description' => '规则的SQL语句不能为空。'], + ['code' => 'iot.rule.ParserNotStarted', 'message' => 'Parser is not started.', 'http_code' => 400, 'description' => '解析器未启动。'], + ['code' => 'iot.rule.ParseRuleActionConfigError', 'message' => 'An error occurred while parsing the rule action configuration.', 'http_code' => 400, 'description' => '无法正常解析规则动作的配置。'], + ['code' => 'iot.rule.ParseRuleSqlError', 'message' => 'An error occurred while parsing the SQL statement.', 'http_code' => 400, 'description' => '解析sql失败。'], + ['code' => 'iot.rule.QueryRuleActionListError', 'message' => 'An error occurred while querying the rule actions.', 'http_code' => 400, 'description' => '查询规则动作列表失败。'], + ['code' => 'iot.rule.QueryRuleActionListError', 'message' => 'Querying rule action list is failed.', 'http_code' => 400, 'description' => '查询规则动作列表失败。'], + ['code' => 'iot.rule.QueryRuleFailed', 'message' => 'An error occurred while querying the rule.', 'http_code' => 400, 'description' => '查询规则失败。'], + ['code' => 'iot.rule.QueryRulePageActionError', 'message' => 'An error occurred while querying the rule actions.', 'http_code' => 400, 'description' => '分页获取规则列表失败。'], + ['code' => 'iot.rule.QueryRulePageActionError', 'message' => 'An error occurred while querying the rule action list across multiple pages.', 'http_code' => 400, 'description' => '查询规则列表失败。'], + ['code' => 'iot.rule.RuleActionIsAlreadyCreated', 'message' => 'The rule action already exists.', 'http_code' => 400, 'description' => '已存在相同的规则动作。'], + ['code' => 'iot.rule.RuleActionRdsConfigError', 'message' => 'The RDS parameters of the rule action is invalid.', 'http_code' => 400, 'description' => '规则动作使用的RDS参数配置错误。'], + ['code' => 'iot.rule.RuleCountExceedMax', 'message' => 'The number of rules exceeds the limit.', 'http_code' => 400, 'description' => '规则总数超过最大限制数。'], + ['code' => 'iot.rule.RuleDataTypeNotMatchRuleActionType', 'message' => 'The data type of the rule does not match the type of the rule action.', 'http_code' => 400, 'description' => '规则的数据类型不匹配规则动作类型。'], + ['code' => 'iot.rule.RuleNameIsAlreadyExisted', 'message' => 'The rule name already exists.', 'http_code' => 400, 'description' => '规则名称已经存在。'], + ['code' => 'iot.rule.RuleNotStarted', 'message' => 'Rule is not started.', 'http_code' => 400, 'description' => '规则未启动。'], + ['code' => 'iot.rule.SameDestinationExisted', 'message' => 'The destination has been attached.', 'http_code' => 400, 'description' => '相同数据源已关联。'], + ['code' => 'iot.rule.SameInstanceId', 'message' => 'The instance IDs must be unique.', 'http_code' => 400, 'description' => 'instanceId相同'], + ['code' => 'iot.rule.SaveServiceCallbackConfigFailed', 'message' => 'An error occurred while configuring the topic subscription.', 'http_code' => 400, 'description' => '保存服务器消息订阅回调配置失败。'], + ['code' => 'iot.rule.SaveServiceCallbackConfigFailed', 'message' => 'To save server callback config is failed.', 'http_code' => 400, 'description' => '保存服务器消息订阅回调配置失败。'], + ['code' => 'iot.rule.ScriptLengthExceeds', 'message' => 'The length of script is exceeded.', 'http_code' => 400, 'description' => '脚本长度超过限制。'], + ['code' => 'iot.rule.scriptSyntaxError', 'message' => 'Script Syntax Error.', 'http_code' => 400, 'description' => '脚本存在语法错误。'], + ['code' => 'iot.rule.StartRuleFailed', 'message' => 'An error occurred while starting the rule.', 'http_code' => 400, 'description' => '启动规则失败。'], + ['code' => 'iot.rule.StopRuleFailed', 'message' => 'An error occurred while stopping the rule.', 'http_code' => 400, 'description' => '停止规则失败。'], + ['code' => 'iot.rule.SuffixIllegal', 'message' => 'The suffix is empty or exceeds the length limit.', 'http_code' => 400, 'description' => '后缀为空或者长度超过限制'], + ['code' => 'iot.rule.TenantVpcNotSupport', 'message' => 'The multi-tenant VPC is not supported.', 'http_code' => 400, 'description' => '不支持多租户vpc'], + ['code' => 'iot.rule.TooManyRuleAction', 'message' => 'The number of rule actions exceeds the limit.', 'http_code' => 400, 'description' => '规则动作数量超过最大限制。'], + ['code' => 'iot.rule.TooManyRuleAction', 'message' => 'The rule action exceeds the maximum number.', 'http_code' => 400, 'description' => '规则数据目的数量超过最大限制。'], + ['code' => 'iot.rule.UpdateRuleFailed', 'message' => 'An error occurred while updating the rule.', 'http_code' => 400, 'description' => '更新规则失败。'], + ['code' => 'iot.rule.UpdateRuleFailed', 'message' => 'An error occurred while upgrading the rule.', 'http_code' => 400, 'description' => '更新规则失败。'], + ['code' => 'iot.ruleng.AccessDenied', 'message' => 'the caller is not authorized', 'http_code' => 400, 'description' => '无权限访问'], + ['code' => 'iot.ruleng.AttributeIllegal', 'message' => 'The attributeInfo parameter is invalid.', 'http_code' => 400, 'description' => '参数attributeInfo非法'], + ['code' => 'iot.ruleng.BinaryRuleNotSupportDeviceStatusChangeTopic', 'message' => 'The topic type is not supported by the binary rule.', 'http_code' => 400, 'description' => '二进制规则不支持设备状态变化主题。'], + ['code' => 'iot.ruleng.BinaryRuleNotSupportTopicType', 'message' => 'The topic type is not supported by the binary rule.', 'http_code' => 400, 'description' => '二进制规则不支持此种类型主题。'], + ['code' => 'iot.ruleng.CreateRuleActionFailed', 'message' => 'An error occurred while creating the rule action.', 'http_code' => 400, 'description' => '创建规则动作失败。'], + ['code' => 'iot.ruleng.DeleteAllActionNotSupport', 'message' => 'You cannot delete all actions under a rule.', 'http_code' => 400, 'description' => '不支持删除规则下所有action。'], + ['code' => 'iot.ruleng.DeleteRuleActionFailed', 'message' => 'An error occurred while deleting the rule action.', 'http_code' => 400, 'description' => '删除规则动作失败。'], + ['code' => 'iot.ruleng.EmptySchemaNameOfTopic', 'message' => 'The topic schema name is empty.', 'http_code' => 400, 'description' => '目标DataHub Topic的Schema的名称name值不能为空。'], + ['code' => 'iot.ruleng.EmptySchemaTypeOfTopic', 'message' => 'The schema type of the DataHub topic cannot be empty.', 'http_code' => 400, 'description' => '目标DataHub Topic的Schema的类型type值不能为空。'], + ['code' => 'iot.ruleng.EmptySchemaValueOfTopic', 'message' => 'The topic schema value is empty.', 'http_code' => 400, 'description' => '目标DataHub Topic的Schema值value不能为空。'], + ['code' => 'iot.ruleng.GrantVpcInstanceFailed', 'message' => 'An error occurred while authorizing the VPC instance.', 'http_code' => 400, 'description' => 'VPC实例授权失败。'], + ['code' => 'iot.ruleng.IncorrectActionTypeForError', 'message' => 'The data forwarding rule does not support the specified cloud service.', 'http_code' => 400, 'description' => '错误流转的规则不支持此云产品。'], + ['code' => 'iot.ruleng.IncorrectPrimaryKeyValueInOtsTable', 'message' => 'The primary key value of the Tablestore instance is invalid.', 'http_code' => 400, 'description' => '表格存储中主键值错误。'], + ['code' => 'iot.ruleng.IncorrectRegionName', 'message' => 'The regionName parameter is invalid.', 'http_code' => 400, 'description' => 'regionName值错误。'], + ['code' => 'iot.ruleng.IncorrectRegionName', 'message' => 'The regionName value is incorrect.', 'http_code' => 400, 'description' => 'regionName值错误。'], + ['code' => 'iot.ruleng.IncorrectRegionName', 'message' => 'The regionName value is incorrect', 'http_code' => 400, 'description' => 'regionName值错误'], + ['code' => 'iot.ruleng.IncorrectSchemaValueOfTopic', 'message' => 'The specified schema of the DataHub topic is invalid.', 'http_code' => 400, 'description' => '目标DataHub Topic的Schema值错误。'], + ['code' => 'iot.ruleng.IncorrectSchemaValueOfTopic', 'message' => 'The specified Topic schema value is invalid', 'http_code' => 400, 'description' => 'Topic的schema值错误'], + ['code' => 'iot.ruleng.IncorrectSysTopic', 'message' => 'The specified system topic is invalid.', 'http_code' => 400, 'description' => '错误的基础通信Topic或物模型通信Topic。'], + ['code' => 'iot.ruleng.IncorrectType', 'message' => 'The specified topic type is invalid.', 'http_code' => 400, 'description' => '应用规则的Topic类型错误。'], + ['code' => 'iot.ruleng.InstanceNotFound', 'message' => 'The instance does not exist.', 'http_code' => 400, 'description' => '实例不存在。'], + ['code' => 'iot.ruleng.InstanceNotFound', 'message' => 'The instance not exists', 'http_code' => 400, 'description' => '实例不存在'], + ['code' => 'iot.ruleng.InvalidEndpoint', 'message' => 'The endpoint is invalid.', 'http_code' => 400, 'description' => '非法的接入点。'], + ['code' => 'iot.ruleng.InvalidFormattedConnectionIp', 'message' => 'The IP address format is invalid.', 'http_code' => 400, 'description' => '连接IP格式错误。'], + ['code' => 'iot.ruleng.InvalidFormattedConnectionIp', 'message' => 'The IP format is incorrect', 'http_code' => 400, 'description' => '连接IP格式错误'], + ['code' => 'iot.ruleng.InvalidFormattedConnectionPort', 'message' => 'The port format is invalid.', 'http_code' => 400, 'description' => '连接端口格式错误。'], + ['code' => 'iot.ruleng.InvalidFormattedConnectionPort', 'message' => 'The port format is incorrect', 'http_code' => 400, 'description' => '连接端口格式错误'], + ['code' => 'iot.ruleng.InvalidFormattedRdsDatabaseName', 'message' => 'The database name contains invalid characters.', 'http_code' => 400, 'description' => 'RDS数据库名称包含非法字符。'], + ['code' => 'iot.ruleng.InvalidFormattedRdsDatabaseName', 'message' => 'The database name contains invalid characters in the RDS instanc', 'http_code' => 400, 'description' => 'Rds数据库名称包含非法字符'], + ['code' => 'iot.ruleng.InvalidFormattedRdsTableName', 'message' => 'The table name contains invalid characters in the RDS instance.', 'http_code' => 400, 'description' => 'RDS表名称包含非法字符。'], + ['code' => 'iot.ruleng.InvalidFormattedRdsTableName', 'message' => 'The table name contains invalid characters in the RDS instance', 'http_code' => 400, 'description' => 'Rds表名称包含非法字符'], + ['code' => 'iot.ruleng.InvalidFormattedShardingKeyInConfiguration', 'message' => 'The shardingKey parameter that is included in the configuration parameter exceeds the limit in length.', 'http_code' => 400, 'description' => '配置信息参数configuration中的shardingKey过长。'], + ['code' => 'iot.ruleng.InvalidFormattedShardingKeyInConfiguration', 'message' => 'The shardingKey in configuration is too long', 'http_code' => 400, 'description' => '配置信息参数configuration中的shardingKey过长'], + ['code' => 'iot.ruleng.InvalidFormattedTagInConfiguration', 'message' => 'The tag in the Configuration parameter exceeds the length limit.', 'http_code' => 400, 'description' => '参数Configuration中的tag过长。'], + ['code' => 'iot.ruleng.InvalidFormattedTagInConfiguration', 'message' => 'The tag in configuration is too long.', 'http_code' => 400, 'description' => '配置信息参数configuration中的tag过长。'], + ['code' => 'iot.ruleng.InvalidFormattedTagNameInHitsdb', 'message' => 'The TSDB instance tag format is invalid.', 'http_code' => 400, 'description' => 'TSDB标签格式非法。'], + ['code' => 'iot.ruleng.InvalidFormattedTimestampInHitsdb', 'message' => 'The timestamp format is invalid.', 'http_code' => 400, 'description' => '时间戳格式非法。'], + ['code' => 'iot.ruleng.InvalidRamRole', 'message' => 'The RAM role is invalid.', 'http_code' => 400, 'description' => '非法的RAM角色。'], + ['code' => 'iot.ruleng.InvalidRamRole', 'message' => 'The RAM role is invalid', 'http_code' => 400, 'description' => '无效的RAM角色'], + ['code' => 'iot.ruleng.JsonInfoIsNotJson', 'message' => 'The specified jsoninfo parameter is not in JSON format.', 'http_code' => 400, 'description' => '参数jsonInfo不是JSON格式。'], + ['code' => 'iot.ruleng.JsonInfoMissPayload', 'message' => 'The specified jsoninfo parameter does not contain the payload information.', 'http_code' => 400, 'description' => '参数jsonInfo缺少payload信息。'], + ['code' => 'iot.ruleng.ListFcAliasFail', 'message' => 'List Fc alias fail.', 'http_code' => 400, 'description' => '查询Fc服务版本别名失败'], + ['code' => 'iot.ruleng.ListFcVersionsFail', 'message' => 'List Fc versions fail.', 'http_code' => 400, 'description' => '查询Fc服务版本失败'], + ['code' => 'iot.ruleng.ListInstancesError', 'message' => 'An error occurred while retrieving the instances.', 'http_code' => 400, 'description' => '获取实例列表失败。'], + ['code' => 'iot.ruleng.ListLindormInstanceFail', 'message' => 'List Lindorm instance fail.', 'http_code' => 400, 'description' => '查询Lindorm实例列表失败'], + ['code' => 'iot.ruleng.ListMqTopicsError', 'message' => 'An error occurred while retrieving the MQ topic.', 'http_code' => 400, 'description' => '获取消息队列Topic失败。'], + ['code' => 'iot.ruleng.ListPolardbAccountFail', 'message' => 'List PolarDB account fail.', 'http_code' => 400, 'description' => '查询PolarDB账号列表失败。'], + ['code' => 'iot.ruleng.ListPolardbDatabaseFail', 'message' => 'List PolarDB database fail.', 'http_code' => 400, 'description' => '查询PolarDB数据库列表失败。'], + ['code' => 'iot.ruleng.ListPolardbInstanceFail', 'message' => 'List PolarDB instance fail.', 'http_code' => 400, 'description' => '查询PolarDB实例列表失败。'], + ['code' => 'iot.ruleng.ListRdsAccountError', 'message' => 'An error occurred while retrieving the RDS database account.', 'http_code' => 400, 'description' => '获取RDS数据库帐号失败。'], + ['code' => 'iot.ruleng.ListSecurityIpsError', 'message' => 'An error occurred while retrieving the network whitelist.', 'http_code' => 400, 'description' => '获取网络白名单失败。'], + ['code' => 'iot.ruleng.MnsConfigIsNotJson', 'message' => 'The MNS configuration information is not in the JSON format.', 'http_code' => 400, 'description' => 'MNS配置不是JSON格式。'], + ['code' => 'iot.ruleng.MnsConfigIsNull', 'message' => 'The MNS settings are empty.', 'http_code' => 400, 'description' => 'MNS配置为空。'], + ['code' => 'iot.ruleng.ModifySecurityIpFailed', 'message' => 'An error occurred while modifying the network whitelist.', 'http_code' => 400, 'description' => '修改白名单失败。'], + ['code' => 'iot.ruleng.NotBindCustomerVpc', 'message' => 'The current instance is not bound to a VPC.', 'http_code' => 400, 'description' => '当前实例未绑定用户的VPC。'], + ['code' => 'iot.ruleng.NotFoundFunctionInFc', 'message' => 'The Function Compute function does not exist.', 'http_code' => 400, 'description' => 'FC函数不存在。'], + ['code' => 'iot.ruleng.NotFoundFunctionInFc', 'message' => 'The Function Compute function does not exist', 'http_code' => 400, 'description' => 'Fc函数不存在'], + ['code' => 'iot.ruleng.NotFoundProjectInDataHub', 'message' => 'The specified project does not exist in DataHub.', 'http_code' => 400, 'description' => 'DataHub中不存在此项目(project)。'], + ['code' => 'iot.ruleng.NotFoundQueueNameInMns', 'message' => 'The specified queue does not exist in the MNS service.', 'http_code' => 400, 'description' => 'MNS中不存在此队列名称。'], + ['code' => 'iot.ruleng.NotFoundServiceInFc', 'message' => 'The Function Compute service does not exist.', 'http_code' => 400, 'description' => '函数计算服务不存在。'], + ['code' => 'iot.ruleng.NotFoundTable', 'message' => 'The specified RDS table does not exist.', 'http_code' => 400, 'description' => 'RDS数据库表不存在。'], + ['code' => 'iot.ruleng.NotFoundTableInOtsInstance', 'message' => 'The specified table does not exist in the Tablestore instance.', 'http_code' => 400, 'description' => 'OTS不存在此表。'], + ['code' => 'iot.ruleng.NotFoundTableInOtsInstance', 'message' => 'The specified table does not exist in the Table Store instance', 'http_code' => 400, 'description' => 'Ots不存在此表'], + ['code' => 'iot.ruleng.NotFoundTopicInDataHubProject', 'message' => 'This specified topic does not exist in the DataHub project.', 'http_code' => 400, 'description' => 'Datahub的project中不存在此topic。'], + ['code' => 'iot.ruleng.NotFoundTopicInDataHubProject', 'message' => 'This specified topic does not exist in the project in DataHub.', 'http_code' => 400, 'description' => 'Datahub的project中不存在此topic。'], + ['code' => 'iot.ruleng.NotFoundTopicInDataHubProject', 'message' => 'This specified topic does not exist in the project in DataHub', 'http_code' => 400, 'description' => 'Datahub的project中不存在此topic'], + ['code' => 'iot.ruleng.NotFoundTopicInMns', 'message' => 'The specified topic does not exist in the MNS service.', 'http_code' => 400, 'description' => '消息服务中不存在此Topic。'], + ['code' => 'iot.ruleng.NotFoundTopicInMns', 'message' => 'The specified topic does not exist in the MNS service', 'http_code' => 400, 'description' => '主题在MNS中不存在'], + ['code' => 'iot.ruleng.NotFoundVpcInstance', 'message' => 'The specified VPC does not exist.', 'http_code' => 400, 'description' => 'VPC实例不存在。'], + ['code' => 'iot.ruleng.NotFoundVpcInstance', 'message' => 'The specified VPC instance does not exist.', 'http_code' => 400, 'description' => 'vpc实例不存在'], + ['code' => 'iot.ruleng.NotFoundVpcInstance', 'message' => 'The specified VPC instance does not exist', 'http_code' => 400, 'description' => 'vpc实例不存在'], + ['code' => 'iot.ruleng.NotFoundVpcInstanceConnection', 'message' => 'The specified VPC does not exist. Check that your RDS instance has been configured with a VPC and VPC vSwitch.', 'http_code' => 400, 'description' => '找不到rds的VPC路径,请确保您的rds实例配置好了VPC网络及VPC网络交换机。'], + ['code' => 'iot.ruleng.NotFoundVpcInstanceConnection', 'message' => 'The specified VPC path does not exist. Check that your instance has been configured with a VPC and VPC VSwitch', 'http_code' => 400, 'description' => '找不到实例的VPC路径,请确保您的实例配置好了VPC网络及VPC网络交换机'], + ['code' => 'iot.ruleng.NotMatchedField', 'message' => 'The specified RDS table fields do not match.', 'http_code' => 400, 'description' => 'RDS数据库表字段不匹配。'], + ['code' => 'iot.ruleng.NotSeniorProduct', 'message' => 'The product is a senior product.', 'http_code' => 400, 'description' => '非高级版产品。'], + ['code' => 'iot.ruleng.NotSupportedProductCode', 'message' => 'The specified cloud service code is invalid.', 'http_code' => 400, 'description' => '不支持的云产品代码。'], + ['code' => 'iot.ruleng.NotSupportedRegion', 'message' => 'The specified node is not supported.', 'http_code' => 400, 'description' => '不支持的节点。'], + ['code' => 'iot.ruleng.NotSupportTransmitTopicConfig', 'message' => 'not support transmit topic config.', 'http_code' => 400, 'description' => '暂不支持查询流转topic配置。'], + ['code' => 'iot.ruleng.NullConnectionIp', 'message' => 'The IP address is empty.', 'http_code' => 400, 'description' => '连接IP为空。'], + ['code' => 'iot.ruleng.NullConnectionPort', 'message' => 'The port is empty.', 'http_code' => 400, 'description' => '连接端口为空。'], + ['code' => 'iot.ruleng.NullEndpoint', 'message' => 'The endpoint cannot be empty.', 'http_code' => 400, 'description' => '接入点为空。'], + ['code' => 'iot.ruleng.NullFunctionNameInFc', 'message' => 'The Function Compute function name is empty.', 'http_code' => 400, 'description' => '函数计算函数名称为空。'], + ['code' => 'iot.ruleng.NullFunctionNameInFc', 'message' => 'The Function Compute function name is empty', 'http_code' => 400, 'description' => 'FC函数名称为空'], + ['code' => 'iot.ruleng.NullInstanceId', 'message' => 'You must specify an instance ID.', 'http_code' => 400, 'description' => '实例ID为空。'], + ['code' => 'iot.ruleng.NullInstanceName', 'message' => 'The name of instance is empty.', 'http_code' => 400, 'description' => '实例名称为空。'], + ['code' => 'iot.ruleng.NullInstanceNameInHitsdb', 'message' => 'The TSDB instance name is empty.', 'http_code' => 400, 'description' => 'TSDB实例名称为空。'], + ['code' => 'iot.ruleng.NullJsonInfo', 'message' => 'You must specify the jsoninfo parameter.', 'http_code' => 400, 'description' => '参数jsonInfo为空。'], + ['code' => 'iot.ruleng.NullMappingEndpoint', 'message' => 'The endpoint is empty.', 'http_code' => 400, 'description' => '接入点为空。'], + ['code' => 'iot.ruleng.NullOrEmptySchemaOfTopic', 'message' => 'The topic schema is empty.', 'http_code' => 400, 'description' => '目标DataHub Topic的Schema不能为空。'], + ['code' => 'iot.ruleng.NullOrEmptySchemaOfTopic', 'message' => 'The topic schema is empty', 'http_code' => 400, 'description' => 'Topic的schema信息为空'], + ['code' => 'iot.ruleng.NullOtsInstanceName', 'message' => 'The Tablestore instance name cannot be empty.', 'http_code' => 400, 'description' => '表格存储的实例名称不能为空。'], + ['code' => 'iot.ruleng.NullOtsInstanceName', 'message' => 'The Table Store instance name is empty', 'http_code' => 400, 'description' => 'OTS实例名称为空'], + ['code' => 'iot.ruleng.NullParameterType', 'message' => 'You must specify a type.', 'http_code' => 400, 'description' => '类型为空。'], + ['code' => 'iot.ruleng.NullPassword', 'message' => 'The password cannot be empty.', 'http_code' => 400, 'description' => '密码不能为空。'], + ['code' => 'iot.ruleng.NullPrimaryKeyInOtsTable', 'message' => 'The primary key of the Tablestore instance is empty.', 'http_code' => 400, 'description' => '表格存储中表的主键不能为空。'], + ['code' => 'iot.ruleng.NullPrimaryKeyNameInOts', 'message' => 'The primary key of the table in the Tablestore instance cannot be empty.', 'http_code' => 400, 'description' => '主键的名称不能为空。'], + ['code' => 'iot.ruleng.NullPrimaryKeyTypeInOts', 'message' => 'The primary key type of the table in the Tablestore instance cannot be empty.', 'http_code' => 400, 'description' => '主键的类型不能为空。'], + ['code' => 'iot.ruleng.NullPrimaryKeyValueInOts', 'message' => 'The primary key value of the table in the Tablestore instance cannot be empty.', 'http_code' => 400, 'description' => '主键的值不能为空。'], + ['code' => 'iot.ruleng.NullProductCode', 'message' => 'You must specify a cloud service code.', 'http_code' => 400, 'description' => '云产品代码为空。'], + ['code' => 'iot.ruleng.NullProjectOfDatahub', 'message' => 'The project in DataHub is empty.', 'http_code' => 400, 'description' => 'DataHub的projectName不能为空。'], + ['code' => 'iot.ruleng.NullProjectOfDatahub', 'message' => 'The project in DataHub is empty', 'http_code' => 400, 'description' => 'DATAHUB的project为空'], + ['code' => 'iot.ruleng.NullRamRoleArn', 'message' => 'You must specify a role ARN.', 'http_code' => 400, 'description' => 'roleArn不能为空。'], + ['code' => 'iot.ruleng.NullRamRoleArn', 'message' => 'You must specify a role name.', 'http_code' => 400, 'description' => 'iot.ruleng.NullRamRoleArn。'], + ['code' => 'iot.ruleng.NullRamRoleArn', 'message' => 'You must specify a roleArn', 'http_code' => 400, 'description' => 'roleArn为空'], + ['code' => 'iot.ruleng.NullRamRoleName', 'message' => 'You must specify a role name.', 'http_code' => 400, 'description' => 'roleName不能为空。'], + ['code' => 'iot.ruleng.NullRamRoleName', 'message' => 'You must specify a roleName', 'http_code' => 400, 'description' => 'roleName为空'], + ['code' => 'iot.ruleng.NullRdsAccountName', 'message' => 'The account name is empty in the RDS instance.', 'http_code' => 400, 'description' => '账号名称为空。'], + ['code' => 'iot.ruleng.NullRdsAccountName', 'message' => 'The account name is empty in the RDS instance', 'http_code' => 400, 'description' => '账号名称为空'], + ['code' => 'iot.ruleng.NullRdsDatabaseName', 'message' => 'The RDS database name is empty.', 'http_code' => 400, 'description' => 'RDS数据库名称为空。'], + ['code' => 'iot.ruleng.NullRdsDatabaseName', 'message' => 'The database name is empty in the RDS instance', 'http_code' => 400, 'description' => 'Rds数据库名称为空'], + ['code' => 'iot.ruleng.NullRdsFieldName', 'message' => 'The column name of the table is empty in the RDS instance.', 'http_code' => 400, 'description' => 'RDS字段名称为空。'], + ['code' => 'iot.ruleng.NullRdsFieldValue', 'message' => 'The column value of the table is empty in the RDS instance.', 'http_code' => 400, 'description' => 'RDS字段值为空。'], + ['code' => 'iot.ruleng.NullRdsInstanceName', 'message' => 'The RDS instance name is empty.', 'http_code' => 400, 'description' => 'RDS实例名称为空。'], + ['code' => 'iot.ruleng.NullRdsInstanceName', 'message' => 'The RDS instance name is empty', 'http_code' => 400, 'description' => 'Rds实例名称为空'], + ['code' => 'iot.ruleng.NullRdsPassword', 'message' => 'The password is empty.', 'http_code' => 400, 'description' => '账号密码为空。'], + ['code' => 'iot.ruleng.NullRdsPassword', 'message' => 'The password is empty', 'http_code' => 400, 'description' => '帐号密码为空'], + ['code' => 'iot.ruleng.NullRdsTableName', 'message' => 'The table name is empty in the RDS instance.', 'http_code' => 400, 'description' => 'RDS表名称为空。'], + ['code' => 'iot.ruleng.NullRdsTableName', 'message' => 'The table name is empty in the RDS instance', 'http_code' => 400, 'description' => 'Rds表名称为空'], + ['code' => 'iot.ruleng.NullRegionId', 'message' => 'You must specify a node ID.', 'http_code' => 400, 'description' => '节点ID为空。'], + ['code' => 'iot.ruleng.NullRegionName', 'message' => 'You must specify a node name.', 'http_code' => 400, 'description' => '节点名称为空。'], + ['code' => 'iot.ruleng.NullRuleActionConfig', 'message' => 'The rule action configurations cannot be empty.', 'http_code' => 400, 'description' => '规则动作配置(参数Configuration)不能为空。'], + ['code' => 'iot.ruleng.NullRuleActionConfig', 'message' => 'The rule action configuration is empty.', 'http_code' => 400, 'description' => '规则动作的配置为空。'], + ['code' => 'iot.ruleng.NullRuleActionType', 'message' => 'The specified rule action is invalid or the rule action type is unspecified.', 'http_code' => 400, 'description' => '规则动作类型(参数Type)不能为空。'], + ['code' => 'iot.ruleng.NullServiceNameInFc', 'message' => 'The Function Compute service name is empty.', 'http_code' => 400, 'description' => '函数计算服务名称为空。'], + ['code' => 'iot.ruleng.NullTableNameInOtsInstance', 'message' => 'The table name is empty in the Tablestore instance.', 'http_code' => 400, 'description' => '表格存储中实例的表名不能为空。'], + ['code' => 'iot.ruleng.NullTableNameInOtsInstance', 'message' => 'The table name is empty in the Table Store instance.', 'http_code' => 400, 'description' => 'OTS实例的表名为空。'], + ['code' => 'iot.ruleng.NullTagNameInHitsdb', 'message' => 'The TSDB instance tag name is empty.', 'http_code' => 400, 'description' => 'TSDB标签名称为空。'], + ['code' => 'iot.ruleng.NullTagValueInHitsdb', 'message' => 'The TSDB instance tag value is empty.', 'http_code' => 400, 'description' => 'TSDB标签值为空。'], + ['code' => 'iot.ruleng.NullTimestampInHitsdb', 'message' => 'The timestamp is empty.', 'http_code' => 400, 'description' => '时间戳标签为空。'], + ['code' => 'iot.ruleng.NullTopic', 'message' => 'The topic cannot be empty.', 'http_code' => 400, 'description' => 'Topic为空。'], + ['code' => 'iot.ruleng.NullTopic', 'message' => 'The topic is null', 'http_code' => 400, 'description' => 'Topic为空'], + ['code' => 'iot.ruleng.NullTopicInDatahubProject', 'message' => 'The project topic in DataHub is empty.', 'http_code' => 400, 'description' => 'DataHub产品下的project中topicName不能为空。'], + ['code' => 'iot.ruleng.NullTopicInDatahubProject', 'message' => 'The project topic in DataHub is empty', 'http_code' => 400, 'description' => 'DATAHUB产品下的选中project的topic为空'], + ['code' => 'iot.ruleng.NullTopicNameInMns', 'message' => 'The MNS topic is empty.', 'http_code' => 400, 'description' => '消息服务中的Topic不能为空。'], + ['code' => 'iot.ruleng.NullUsername', 'message' => 'The username cannot be empty.', 'http_code' => 400, 'description' => '用户名不能为空。'], + ['code' => 'iot.ruleng.NullVpcId', 'message' => 'The VPC ID cannot be empty.', 'http_code' => 400, 'description' => 'vpcId不能为空。'], + ['code' => 'iot.ruleng.NullVpcInstance', 'message' => 'The VPC cannot be empty.', 'http_code' => 400, 'description' => 'VPC实例不能为空。'], + ['code' => 'iot.ruleng.OnlyAllowOneErrorAction', 'message' => 'You can specify only one destination in a rule to forward error data.', 'http_code' => 400, 'description' => '一个规则只能设置一个错误转发目的地。'], + ['code' => 'iot.ruleng.OnlyAllowOneErrorAction', 'message' => 'You can specify only one destination to forward data errors in a rule.', 'http_code' => 400, 'description' => '一个规则只能设置一个错误转发目的地。'], + ['code' => 'iot.ruleng.OnlySameRegionHitsdbSupport', 'message' => 'Messages can only be published to the TSDB instances on the same node.', 'http_code' => 400, 'description' => '只支持转发到同节点的TSDB。'], + ['code' => 'iot.ruleng.OnlySameRegionSupport', 'message' => 'The destination region is not supported.', 'http_code' => 400, 'description' => '只支持同节点数据流转。'], + ['code' => 'iot.ruleng.OnlySameRegionSupport', 'message' => 'target region is not supported', 'http_code' => 400, 'description' => '只支持同节点数据流转'], + ['code' => 'iot.ruleng.OnlySupportSameRegionRds', 'message' => 'Messages can only be publish to the RDS instances on the same node.', 'http_code' => 400, 'description' => '只支持转发到同节点的RDS。'], + ['code' => 'iot.ruleng.OnlySupportSameRegionRds', 'message' => 'Messages can only be publish to the RDS instances on the same node', 'http_code' => 400, 'description' => '只支持转发到同节点的RDS'], + ['code' => 'iot.ruleng.PayloadInfoIsNotJson', 'message' => 'The payload information in the message is not in the JSON format.', 'http_code' => 400, 'description' => '输入消息中的payload信息不是JSON格式。'], + ['code' => 'iot.ruleng.QueryInstanceError', 'message' => 'An error occurred while retrieving the instance information.', 'http_code' => 400, 'description' => '获取实例信息失败。'], + ['code' => 'iot.ruleng.QueryMnsTopicListActionError', 'message' => 'An error occurred while querying the MNS topics.', 'http_code' => 400, 'description' => '获取消息服务Topic列表失败。'], + ['code' => 'iot.ruleng.QueryRuleActionFailed', 'message' => 'An error occurred while retrieving the rule action.', 'http_code' => 400, 'description' => '获取规则动作失败。'], + ['code' => 'iot.ruleng.QueryServerMappingInfoError', 'message' => 'An error occurred while retrieving the VPC mapping information.', 'http_code' => 400, 'description' => '获取VPC实例的mapping信息失败。'], + ['code' => 'iot.ruleng.QueryServiceCallbackConfigActionError', 'message' => 'An error occurred while querying the server-side subscription.', 'http_code' => 400, 'description' => '获取服务端消息订阅配置失败。'], + ['code' => 'iot.ruleng.QueryServiceCallbackConfigActionError', 'message' => 'An error occurred while querying the configuration of the device message subscription.', 'http_code' => 400, 'description' => '获取服务端消息订阅配置失败。'], + ['code' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', 'message' => 'The specified region does not support creating rules to publish messages to the specified cloud service.', 'http_code' => 400, 'description' => '此地域不支持将规则转发到该云产品。'], + ['code' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', 'message' => 'The specified region does not support creating rules to publish messages to the specified cloud product.', 'http_code' => 400, 'description' => '此region不支持将规则转发到该云产品。'], + ['code' => 'iot.ruleng.RegionNotSupportRuleForwardCloudProduct', 'message' => 'The specified region does not support creating rules to publish messages to the specified cloud product', 'http_code' => 400, 'description' => '此region不支持将规则转发到该云产品'], + ['code' => 'iot.ruleng.RuleActionConfigurationIsNotJson', 'message' => 'The rule action configurations are not in the JSON format.', 'http_code' => 400, 'description' => '规则动作配置不是JSON格式。'], + ['code' => 'iot.ruleng.RuleActionConfigurationIsNotJson', 'message' => 'The rule action configuration is not in the JSON format', 'http_code' => 400, 'description' => '规则动作配置不是JSON格式'], + ['code' => 'iot.ruleng.RuleAlreadyIsStarted', 'message' => 'The specified rule is already started.', 'http_code' => 400, 'description' => '规则是已启动状态。'], + ['code' => 'iot.ruleng.RuleAlreadyIsStarted', 'message' => 'The specified rule has already started.', 'http_code' => 400, 'description' => '规则解析器已经启动。'], + ['code' => 'iot.ruleng.ServiceNotFound', 'message' => 'service does not exist', 'http_code' => 400, 'description' => '服务不存在'], + ['code' => 'iot.ruleng.topic.invalid', 'message' => 'The topic is invalid.', 'http_code' => 400, 'description' => 'topic不合法。'], + ['code' => 'iot.ruleng.TopicIsNotUnique', 'message' => 'The topic is not unique.', 'http_code' => 400, 'description' => 'Topic不唯一。'], + ['code' => 'iot.ruleng.TopicNotFound', 'message' => 'The topic does not exists.', 'http_code' => 400, 'description' => 'Topic不存在。'], + ['code' => 'iot.ruleng.TopicNotFound', 'message' => 'The topic not exists', 'http_code' => 400, 'description' => 'Topic不存在'], + ['code' => 'iot.ruleng.TsdbMetricTypeNotSupport', 'message' => 'The TSDB metric type is not supported.', 'http_code' => 400, 'description' => 'TSDB metric类型不支持'], + ['code' => 'iot.ruleng.TsdbNotExsistInVpc', 'message' => 'The TSDB instance does not exist in the VPC.', 'http_code' => 400, 'description' => 'VPC实例内不存在TSDB。'], + ['code' => 'iot.ruleng.TsdbNotExsistInVpc', 'message' => 'The TSDB instance not exists in vpc', 'http_code' => 400, 'description' => 'vpc实例内不存在tsdb'], + ['code' => 'iot.ruleng.types.invalid', 'message' => 'The types parameter is invalid.', 'http_code' => 400, 'description' => 'types不合法'], + ['code' => 'iot.ruleng.UpdateRuleActionFailed', 'message' => 'An error occurred while updating the rule action.', 'http_code' => 400, 'description' => '更新规则动作失败。'], + ['code' => 'iot.scheduleperiod.AlreadyExists', 'message' => 'schedule period already exists.', 'http_code' => 400, 'description' => '排程已存在时间段。'], + ['code' => 'iot.scheduleperiod.ConflictTime', 'message' => 'conflict with:%s.', 'http_code' => 400, 'description' => '时间冲突。'], + ['code' => 'iot.scheduleperiod.ConflictTime', 'message' => 'conflict with %s', 'http_code' => 400, 'description' => '时间冲突'], + ['code' => 'iot.scheduleperiod.ConflictWithScheduleTime', 'message' => 'conflict with schedule time.', 'http_code' => 400, 'description' => '与排程时间冲突。'], + ['code' => 'iot.scheduleperiod.InvalidDesc', 'message' => 'Invalid period description.', 'http_code' => 400, 'description' => '无效的时间段描述。'], + ['code' => 'iot.scheduleperiod.InvalidIotInstanceId', 'message' => 'invalid IotInstanceId.', 'http_code' => 400, 'description' => '无效的实例ID。'], + ['code' => 'iot.scheduleperiod.InvalidTime', 'message' => 'invalid period time.', 'http_code' => 400, 'description' => '无效的时间。'], + ['code' => 'iot.scheduleperiod.LimitExceeded', 'message' => 'schedule period limit exceeded.', 'http_code' => 400, 'description' => '时间段超限。'], + ['code' => 'iot.scheduleperiod.NotExists', 'message' => 'schedule period not exists.', 'http_code' => 400, 'description' => '排程时间段不存在。'], + ['code' => 'iot.searchDoc.error', 'message' => 'Search error.', 'http_code' => 400, 'description' => '检索错误。'], + ['code' => 'iot.securetunnel.DescriptionTooLong', 'message' => 'The description has exceeded the maximum length.', 'http_code' => 400, 'description' => '描述过长'], + ['code' => 'iot.securetunnel.DescriptionTooLong', 'message' => 'The description of the device tunnel has exceeded the maximum length.', 'http_code' => 400, 'description' => '设备隧道的描述超长。'], + ['code' => 'iot.securetunnel.DeviceNotExist', 'message' => 'The specified device does not exist.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.securetunnel.DeviceNotExist', 'message' => 'The device does not exist.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.securetunnel.DeviceNotOnline', 'message' => 'The device must be online.', 'http_code' => 400, 'description' => '设备需要为在线状态。'], + ['code' => 'iot.securetunnel.DeviceNotOnline', 'message' => 'The device is not online.', 'http_code' => 400, 'description' => '设备不在线。'], + ['code' => 'iot.securetunnel.DeviceNotOnline', 'message' => 'the device is offline', 'http_code' => 400, 'description' => '设备需要为在线状态'], + ['code' => 'iot.securetunnel.DeviceNotSpecified', 'message' => 'The device must be specified.', 'http_code' => 400, 'description' => '未指定设备'], + ['code' => 'iot.securetunnel.DeviceNotSpecified', 'message' => 'The device is not specified.', 'http_code' => 400, 'description' => '设备未被指定。'], + ['code' => 'iot.securetunnel.IllegalState', 'message' => 'The tunnel state does not meet the requirement.', 'http_code' => 400, 'description' => '设备隧道状态不满足要求。'], + ['code' => 'iot.securetunnel.IllegalState', 'message' => 'The state of the secure tunnel is invalid.', 'http_code' => 400, 'description' => '设备隧道的状态非法。'], + ['code' => 'iot.securetunnel.InstanceIdMismatch', 'message' => 'The instanceId does not match other parameters.', 'http_code' => 400, 'description' => '实例id跟其他参数不匹配。'], + ['code' => 'iot.securetunnel.InstanceIdMismatch', 'message' => 'The instanceId does not match the parameter.', 'http_code' => 400, 'description' => '实例id跟其他参数不匹配。'], + ['code' => 'iot.securetunnel.InstanceIdMismatch', 'message' => 'The instance ID does not match the other parameters.', 'http_code' => 400, 'description' => '实例id和其他参数不匹配。'], + ['code' => 'iot.securetunnel.InvalidParam', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '参数非法。'], + ['code' => 'iot.securetunnel.ParamInvalid', 'message' => 'The parameter is invalid.', 'http_code' => 400, 'description' => '设备隧道api参数非法。'], + ['code' => 'iot.securetunnel.ParamInvalid', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '参数非法。'], + ['code' => 'iot.securetunnel.TunnelAmountExceedByDevice', 'message' => 'The tunnel amount for a single device has exceeded the limit.', 'http_code' => 400, 'description' => '设备粒度隧道数量超过限制。'], + ['code' => 'iot.securetunnel.TunnelAmountExceedByDevice', 'message' => 'The tunnel amount of the device has exceeded the limit.', 'http_code' => 400, 'description' => '设备设备的隧道数量超过限制。'], + ['code' => 'iot.securetunnel.TunnelAmountExceedByDevice', 'message' => 'The tunnel amount for single device has exceed the limit.', 'http_code' => 400, 'description' => '设备粒度隧道数量超过限制。'], + ['code' => 'iot.securetunnel.TunnelAmountExceedByInstance', 'message' => 'The tunnel amount for a single instance has exceeded the limit.', 'http_code' => 400, 'description' => '实例粒度隧道数量超过限制'], + ['code' => 'iot.securetunnel.TunnelAmountExceedByInstance', 'message' => 'The tunnel amount for the instance has exceeded the limit.', 'http_code' => 400, 'description' => '实例粒度的隧道数量超过限制。'], + ['code' => 'iot.securetunnel.TunnelNotExist', 'message' => 'The specified tunnel does not exist.', 'http_code' => 400, 'description' => '指定的隧道不存在'], + ['code' => 'iot.securetunnel.TunnelNotExist', 'message' => 'The device tunnel does not exist.', 'http_code' => 400, 'description' => '设备隧道不存在'], + ['code' => 'iot.securetunnel.TunnelQuotaExhausted', 'message' => 'The quota for secure tunnel has been exhausted.', 'http_code' => 400, 'description' => '隧道额度已经被耗尽。'], + ['code' => 'iot.securetunnel.TunnelQuotaExhausted', 'message' => 'the quota of device tunnel has been exhausted', 'http_code' => 400, 'description' => '隧道额度已经被耗尽。'], + ['code' => 'iot.securetunnel.UdiTooLong', 'message' => 'The specified Udi exceeds the maximum length.', 'http_code' => 400, 'description' => 'udi过长'], + ['code' => 'iot.securetunnel.UdiTooLong', 'message' => 'The Udi of the device tunnel has exceeded the maximum length.', 'http_code' => 400, 'description' => '设备隧道的udi超长。'], + ['code' => 'iot.server.ConsumerGroupNotOnline', 'message' => 'Consumer group is not online.', 'http_code' => 400, 'description' => '消费组不在线。'], + ['code' => 'iot.service.DeviceLocationNotConfiguredError', 'message' => 'The GeoLocation property is not configured for the device.', 'http_code' => 400, 'description' => '设备没有定义GeoLocation属性。'], + ['code' => 'iot.service.DeviceLocationUnreportedError', 'message' => 'The GeoLocation property is not submitted within 30 days.', 'http_code' => 400, 'description' => 'GeoLocation属性30天内无数据。'], + ['code' => 'iot.service.IncorrectServiceId', 'message' => 'The Service ID parameter is invalid.', 'http_code' => 400, 'description' => '参数serviceId错误。'], + ['code' => 'iot.service.IncorrectServiceStatusValue', 'message' => 'The service status is invalid.', 'http_code' => 400, 'description' => '服务状态值错误。'], + ['code' => 'iot.service.NotFoundService', 'message' => 'The service does not exist.', 'http_code' => 400, 'description' => '服务不存在。'], + ['code' => 'iot.service.QueryDeviceLocationError', 'message' => 'An error occurred while querying the device location.', 'http_code' => 400, 'description' => '查询设备位置失败。'], + ['code' => 'iot.service.QueryServiceActionError', 'message' => 'An error occurred while querying the services.', 'http_code' => 400, 'description' => '查询服务失败。'], + ['code' => 'iot.service.QueryServiceListActionError', 'message' => 'An error occurred while querying the services.', 'http_code' => 400, 'description' => '获取服务列表失败。'], + ['code' => 'iot.service.QueryUserServiceStatusActionError', 'message' => 'An error occurred while querying the extended service status.', 'http_code' => 400, 'description' => '获取用户服务状态失败。'], + ['code' => 'iot.service.ServiceNotAvailable', 'message' => 'The service is not available.', 'http_code' => 400, 'description' => '服务不可用。'], + ['code' => 'iot.service.UpdateServiceFailed', 'message' => 'An error occurred while enabling or disabling the service.', 'http_code' => 400, 'description' => '开启/关闭服务失败。'], + ['code' => 'iot.sharetask.EmptyShareDevice', 'message' => 'no device to share.', 'http_code' => 400, 'description' => '无设备分享。'], + ['code' => 'iot.sharetask.ImportDevicePartFail', 'message' => 'Failed to import some of the devices.', 'http_code' => 400, 'description' => '设备导入部分失败。'], + ['code' => 'iot.sharetask.ShareDeviceProcessing', 'message' => 'share device processing.', 'http_code' => 400, 'description' => '分享设备处理中。'], + ['code' => 'iot.sls.BatchApiNotSupportTraceId', 'message' => 'You must filter messages by message ID.', 'http_code' => 400, 'description' => '消息过多,使用messageId搜索'], + ['code' => 'iot.sls.CreateSlsEtlRuleFailed', 'message' => 'Failed to create the distribution rule of Log Service.', 'http_code' => 400, 'description' => '创建EtlRule失败'], + ['code' => 'iot.sls.CreateSlsLogStoreFailed', 'message' => 'Failed to create the Logstore.', 'http_code' => 400, 'description' => '创建SLS logstore失败'], + ['code' => 'iot.sls.CreateSlsScheduledSqlFailed', 'message' => 'Failed to create the scheduled sql.', 'http_code' => 400, 'description' => '创建SLS scheduled SQL失败。'], + ['code' => 'iot.sls.DeleteSlsEtlRuleFailed', 'message' => 'Failed to delete the distribution rule of Log Service.', 'http_code' => 400, 'description' => '删除SlsEtlRule失败'], + ['code' => 'iot.sls.DeleteSlsScheduledSqlFailed', 'message' => 'Failed to delete the scheduled sql.', 'http_code' => 400, 'description' => '删除SLS scheduled SQL失败。'], + ['code' => 'iot.sls.EmptyTraceIdOrMessageId', 'message' => 'The trace ID and message ID are empty.', 'http_code' => 400, 'description' => 'traceId和messageId均为空'], + ['code' => 'iot.sls.EtlRuleLogTypeInvalid', 'message' => 'LogType is invalid.', 'http_code' => 400, 'description' => 'LogType参数值非法。'], + ['code' => 'iot.sls.IllegalTraceIdAndMessageId', 'message' => 'The trace ID or message ID is invalid.', 'http_code' => 400, 'description' => 'traceId或messageId非法'], + ['code' => 'iot.sls.MessageTraceBusy', 'message' => 'Log Service is busy. Try again later.', 'http_code' => 400, 'description' => '日志服务繁忙,请稍后重试'], + ['code' => 'iot.sls.MessageTraceFailed', 'message' => 'Failed to query the message trace.', 'http_code' => 400, 'description' => '消息轨迹查询失败'], + ['code' => 'iot.sls.QueryMetricStoreDataFaile', 'message' => 'Failed to query the metricstore data.', 'http_code' => 400, 'description' => '查询SLS metricstore失败。'], + ['code' => 'iot.sls.QueryMetricStoreDataFailed', 'message' => 'Failed to query the metricstore data.', 'http_code' => 400, 'description' => '查询SLS metricstore失败。'], + ['code' => 'iot.sls.QueryMetricStoreDataParamError', 'message' => 'The specified paramter is invalid.', 'http_code' => 400, 'description' => '查询SLS metricstore参数异常。'], + ['code' => 'iot.sls.QuerySlsEtlRuleFailed', 'message' => 'Failed to query the distribution rule of Log Service.', 'http_code' => 400, 'description' => '查询EtlRule失败'], + ['code' => 'iot.sls.QuerySlsFailed', 'message' => 'Failed to query logs in Log Service.', 'http_code' => 400, 'description' => '查询SLS日志失败'], + ['code' => 'iot.sls.QuerySlsParamsError', 'message' => 'The parameter is invalid when you query logs.', 'http_code' => 400, 'description' => '查询日志参数异常'], + ['code' => 'iot.sls.QuerySlsScheduledSqlFailed', 'message' => 'Failed to query the scheduled sql.', 'http_code' => 400, 'description' => '查询SLS scheduled SQL失败。'], + ['code' => 'iot.sls.SlsParamsIllegalCharacter', 'message' => 'The query condition contains invalid special characters.', 'http_code' => 400, 'description' => '查询条件包含特殊字符'], + ['code' => 'iot.solution.sceneRuleNameExists', 'message' => 'The name already exists', 'http_code' => 400, 'description' => '规则名称已存在'], + ['code' => 'iot.soundcode.AlreadyExistsLabel', 'message' => 'already exists sound code label.', 'http_code' => 400, 'description' => '已存在声码标签。'], + ['code' => 'iot.soundcode.AlreadyExistsName', 'message' => 'already exists sound code name.', 'http_code' => 400, 'description' => '已存在声码名称。'], + ['code' => 'iot.soundcode.AlreadyExistsName', 'message' => 'already exists sound code name', 'http_code' => 400, 'description' => '已存在声码名称'], + ['code' => 'iot.soundcode.EncodeLimit', 'message' => 'sound code encode limit exceeded.', 'http_code' => 429, 'description' => '声码编码数已超规格限制。'], + ['code' => 'iot.soundcode.EncodeLimit', 'message' => 'sound code encode limit exceeded', 'http_code' => 429, 'description' => '声码编码数已超规格限制'], + ['code' => 'iot.soundcode.InvalidIotInstanceId', 'message' => 'invalid iot instance id.', 'http_code' => 400, 'description' => '无效的实例ID。'], + ['code' => 'iot.soundcode.InvalidIotInstanceId', 'message' => 'invalid iot instance id', 'http_code' => 400, 'description' => '无效的实例ID'], + ['code' => 'iot.soundcode.InvalidLabel', 'message' => 'invalid sound code label.', 'http_code' => 400, 'description' => '无效的声码标签。'], + ['code' => 'iot.soundcode.InvalidLabelBatchDescription', 'message' => 'invalid sound code label batch description.', 'http_code' => 400, 'description' => '无效的声码标签批次描述。'], + ['code' => 'iot.soundcode.InvalidName', 'message' => 'invalid sound code name.', 'http_code' => 400, 'description' => '无效的声码名称。'], + ['code' => 'iot.soundcode.InvalidName', 'message' => 'invalid sound code name', 'http_code' => 400, 'description' => '无效的声码名称'], + ['code' => 'iot.soundcode.InvalidParam', 'message' => 'invalid param.', 'http_code' => 400, 'description' => '无效的参数。'], + ['code' => 'iot.soundcode.InvalidParam', 'message' => 'invalid param', 'http_code' => 400, 'description' => '无效的参数'], + ['code' => 'iot.soundcode.InvalidSoundCode', 'message' => 'invalid sound code.', 'http_code' => 400, 'description' => '无效的声码。'], + ['code' => 'iot.soundcode.InvalidSoundCodeContent', 'message' => 'invalid sound code content.', 'http_code' => 400, 'description' => '无效的声码内容。'], + ['code' => 'iot.soundcode.InvalidSoundCodeDuration', 'message' => 'invalid sound code duration.', 'http_code' => 400, 'description' => '无效的声码时长。'], + ['code' => 'iot.soundcode.InvalidSoundCodeDuration', 'message' => 'invalid sound code duration', 'http_code' => 400, 'description' => '无效的声码时长'], + ['code' => 'iot.soundcode.LabelBatchCanNotBeRetried', 'message' => 'label batch can not be retried.', 'http_code' => 400, 'description' => '批次不能被重试。'], + ['code' => 'iot.soundcode.LabelBatchNotExists', 'message' => 'sound code label batch not exists.', 'http_code' => 400, 'description' => '声码标签批次不存在。'], + ['code' => 'iot.soundcode.LabelNotExists', 'message' => 'sound code label not exists.', 'http_code' => 400, 'description' => '声码标签不存在。'], + ['code' => 'iot.soundcode.NoSuccessLabel', 'message' => 'no success label.', 'http_code' => 400, 'description' => '批次无成功标签。'], + ['code' => 'iot.soundcode.NotExists', 'message' => 'sound code not exists.', 'http_code' => 400, 'description' => '声码不存在。'], + ['code' => 'iot.soundcode.SensitiveContent', 'message' => 'sensitive content.', 'http_code' => 400, 'description' => '内容包含敏感词汇。'], + ['code' => 'iot.soundcode.SensitiveContent', 'message' => 'sensitive content', 'http_code' => 400, 'description' => '内容包含敏感词汇'], + ['code' => 'iot.soundcode.ShareTaskHasBeJoined', 'message' => 'shareTask has be joined', 'http_code' => 400, 'description' => '共享任务已被其他方加入'], + ['code' => 'iot.soundcode.ShareTaskNotExist', 'message' => 'ShareTask Not Exist', 'http_code' => 400, 'description' => '共享任务不存在'], + ['code' => 'iot.soundcode.SpeechModelCheckText', 'message' => 'speech model text is not valid', 'http_code' => 400, 'description' => '无效的语料文本'], + ['code' => 'iot.soundcodelabel.InvalidBatchDescription', 'message' => 'invalid sound code label batch description', 'http_code' => 400, 'description' => '无效的声码标签批次描述'], + ['code' => 'iot.soundcodeschedule.AlreadyExistsName', 'message' => 'already exists schedule name.', 'http_code' => 400, 'description' => '已存在的排程名称。'], + ['code' => 'iot.soundcodeschedule.InvalidDate', 'message' => 'invalid sound code schedule date.', 'http_code' => 400, 'description' => '无效的排程日期。'], + ['code' => 'iot.soundcodeschedule.InvalidDesc', 'message' => 'invalid schedule description.', 'http_code' => 400, 'description' => '无效的排程描述。'], + ['code' => 'iot.soundcodeschedule.InvalidIotInstanceId', 'message' => 'invalid schedule IotInstanceId.', 'http_code' => 400, 'description' => '无效的实例ID。'], + ['code' => 'iot.soundcodeschedule.InvalidName', 'message' => 'invalid schedule name.', 'http_code' => 400, 'description' => '无效的排程名称。'], + ['code' => 'iot.soundcodeschedule.InvalidStatus', 'message' => 'invalid schedule status.', 'http_code' => 400, 'description' => '无效的排程状态。'], + ['code' => 'iot.soundcodeschedule.InvalidTime', 'message' => 'invalid schedule time.', 'http_code' => 400, 'description' => '无效的排程时间。'], + ['code' => 'iot.soundcodeschedule.LimitExceeded', 'message' => 'sound code schedule limit exceeded.', 'http_code' => 400, 'description' => '排程超限。'], + ['code' => 'iot.soundcodeschedule.NotExists', 'message' => 'schedule not exists.', 'http_code' => 400, 'description' => '排程不存在。'], + ['code' => 'iot.soundcodeservice.NotSigned', 'message' => 'sound code service has not been signed.', 'http_code' => 403, 'description' => '声码服务未开通。'], + ['code' => 'iot.speech.BizCodeHasExisted', 'message' => 'biz code has existed.', 'http_code' => 400, 'description' => '语料业务标识已存在。'], + ['code' => 'iot.speech.DeviceNotActived', 'message' => 'device not actived.', 'http_code' => 400, 'description' => '设备未激活。'], + ['code' => 'iot.speech.DeviceNotActived', 'message' => 'device not actived', 'http_code' => 400, 'description' => '设备未激活'], + ['code' => 'iot.speech.DeviceNotExists', 'message' => 'device not exists.', 'http_code' => 400, 'description' => '设备不存在。'], + ['code' => 'iot.speech.DeviceNotExists', 'message' => 'device not exists', 'http_code' => 400, 'description' => '设备不存在'], + ['code' => 'iot.speech.DeviceOffline', 'message' => 'device is offline.', 'http_code' => 400, 'description' => '设备离线。'], + ['code' => 'iot.speech.DeviceOffline', 'message' => 'device is offline', 'http_code' => 400, 'description' => '设备离线'], + ['code' => 'iot.speech.DeviceSearchIndexNotConfig', 'message' => 'device search index not config.', 'http_code' => 400, 'description' => '未配置设备搜索索引。'], + ['code' => 'iot.speech.DeviceSpeechListEmpty', 'message' => 'device speech list empty.', 'http_code' => 400, 'description' => '设备语料列表为空。'], + ['code' => 'iot.speech.DeviceSpeechListEmpty', 'message' => 'device speech list empty', 'http_code' => 400, 'description' => '设备语料列表为空'], + ['code' => 'iot.speech.DeviceTotalExceeded', 'message' => 'push device total exceeded.', 'http_code' => 400, 'description' => '推送设备数量已超上限。'], + ['code' => 'iot.speech.InvalidAudioFormat', 'message' => 'invalid audio format.', 'http_code' => 400, 'description' => '无效的音频格式。'], + ['code' => 'iot.speech.InvalidAudioFormat', 'message' => 'invalid audio format', 'http_code' => 400, 'description' => '无效的音频格式'], + ['code' => 'iot.speech.InvalidBizCode', 'message' => 'biz code has existed.', 'http_code' => 400, 'description' => '业务标识已存在。'], + ['code' => 'iot.speech.InvalidBizcode', 'message' => 'invalid speech bizCode.', 'http_code' => 400, 'description' => '无效的业务标识。'], + ['code' => 'iot.speech.InvalidCode', 'message' => 'invalid speech code.', 'http_code' => 400, 'description' => '无效的语料code。'], + ['code' => 'iot.speech.InvalidDevice', 'message' => 'invalid speech model push device.', 'http_code' => 400, 'description' => '无效的语料推送设备。'], + ['code' => 'iot.speech.InvalidDevice', 'message' => 'invalid speech device.', 'http_code' => 400, 'description' => '无效的播报设备。'], + ['code' => 'iot.speech.InvalidDevice', 'message' => 'invalid speech model push device', 'http_code' => 400, 'description' => '无效的语料推送设备'], + ['code' => 'iot.speech.InvalidDeviceId', 'message' => 'invalid iot device id.', 'http_code' => 400, 'description' => '无效的设备ID。'], + ['code' => 'iot.speech.InvalidDeviceId', 'message' => 'invalid iot device id', 'http_code' => 400, 'description' => '无效的设备ID'], + ['code' => 'iot.speech.InvalidDeviceName', 'message' => 'invalid speech model push device name.', 'http_code' => 400, 'description' => '无效的语料推送设备名称。'], + ['code' => 'iot.speech.InvalidDeviceName', 'message' => 'invalid device name.', 'http_code' => 400, 'description' => '无效的设备名称。'], + ['code' => 'iot.speech.InvalidDeviceSpaceScope', 'message' => 'invalid speech device space scope.', 'http_code' => 400, 'description' => '无效的播报设备存储空间范围。'], + ['code' => 'iot.speech.InvalidDeviceSpaceValue', 'message' => 'invalid speech device space value.', 'http_code' => 400, 'description' => '无效的播报设备存储空间值。'], + ['code' => 'iot.speech.InvalidGroupId', 'message' => 'invalid iot group id.', 'http_code' => 400, 'description' => '无效的分组ID。'], + ['code' => 'iot.speech.InvalidGroupName', 'message' => 'invalid iot group name', 'http_code' => 400, 'description' => '无效的分组名称'], + ['code' => 'iot.speech.InvalidGroupName', 'message' => 'invalid iot group name.', 'http_code' => 400, 'description' => '无效的分组名称。'], + ['code' => 'iot.speech.InvalidIotInstanceId', 'message' => 'Invalid IoT instance ID.', 'http_code' => 400, 'description' => '无效的实例ID。'], + ['code' => 'iot.speech.InvalidIotInstanceId', 'message' => 'Invalid instance ID.', 'http_code' => 400, 'description' => '无效的实例ID。'], + ['code' => 'iot.speech.InvalidIotProjectCode', 'message' => 'invalid project code.', 'http_code' => 400, 'description' => '无效的项目标识。'], + ['code' => 'iot.speech.InvalidProductKey', 'message' => 'invalid speech model push product key.', 'http_code' => 400, 'description' => '无效的语料推送产品KEY。'], + ['code' => 'iot.speech.InvalidProductKeyAndDeviceName', 'message' => 'invalid productKey and deviceName.', 'http_code' => 400, 'description' => '无效的设备KEY以及名称。'], + ['code' => 'iot.speech.InvalidProjectCode', 'message' => 'invalid iot project code.', 'http_code' => 400, 'description' => '无效的项目唯一标识。'], + ['code' => 'iot.speech.InvalidProjectCode', 'message' => 'invalid project code.', 'http_code' => 400, 'description' => '无效的项目唯一标识。'], + ['code' => 'iot.speech.InvalidProjectCode', 'message' => 'invalid iot project code', 'http_code' => 400, 'description' => '无效的项目唯一标识'], + ['code' => 'iot.speech.InvalidPushDeviceJobStatus', 'message' => 'invalid speech push device job status.', 'http_code' => 400, 'description' => '无效的语料推送设备任务状态。'], + ['code' => 'iot.speech.InvalidPushJobCode', 'message' => 'invalid speech push job code.', 'http_code' => 400, 'description' => '无效的语料推送任务唯一标识。'], + ['code' => 'iot.speech.InvalidPushJobStatus', 'message' => 'invalid speech push job status.', 'http_code' => 400, 'description' => '无效的语料推送任务状态。'], + ['code' => 'iot.speech.InvalidPushMode', 'message' => 'invalid push mode.', 'http_code' => 400, 'description' => '无效的推送模式。'], + ['code' => 'iot.speech.InvalidPushMode', 'message' => 'invalid speech push mode.', 'http_code' => 400, 'description' => '无效的语料推送模式。'], + ['code' => 'iot.speech.InvalidSoundCodeAdditionalDuration', 'message' => 'invalid sound code additional duration.', 'http_code' => 400, 'description' => '无效的追加声码时长。'], + ['code' => 'iot.speech.InvalidSoundCodeContent', 'message' => 'invalid sound code content.', 'http_code' => 400, 'description' => '无效的声码内容。'], + ['code' => 'iot.speech.InvalidSpeechBizCode', 'message' => 'invalid speech biz code.', 'http_code' => 400, 'description' => '无效的设备语料标识。'], + ['code' => 'iot.speech.InvalidSpeechBizCode', 'message' => 'invalid speech biz code', 'http_code' => 400, 'description' => '无效的设备语料标识'], + ['code' => 'iot.speech.InvalidSpeechCodeList', 'message' => 'invalid SpeechCodeList.', 'http_code' => 400, 'description' => '无效的语料code。'], + ['code' => 'iot.speech.InvalidSpeechType', 'message' => 'invalid speechModelType.', 'http_code' => 400, 'description' => '无效的语料类型。'], + ['code' => 'iot.speech.InvalidSpeechType', 'message' => 'invalid speechType.', 'http_code' => 400, 'description' => '无效的语料类型。'], + ['code' => 'iot.speech.InvalidText', 'message' => 'invalid speech text.', 'http_code' => 400, 'description' => '无效的播报文本。'], + ['code' => 'iot.speech.InvalidVoice', 'message' => 'invalid speech voice.', 'http_code' => 400, 'description' => '无效的声音场景。'], + ['code' => 'iot.speech.NoDeviceToPush', 'message' => 'no device to push in project.', 'http_code' => 400, 'description' => '项目内无设备可被推送。'], + ['code' => 'iot.speech.NoDeviceToPushInGroup', 'message' => 'no device to push in group.', 'http_code' => 400, 'description' => '分组无设备可推送。'], + ['code' => 'iot.speech.NoPermission', 'message' => 'no permission.', 'http_code' => 400, 'description' => '无权访问。'], + ['code' => 'iot.speech.NoPermission', 'message' => 'no permission', 'http_code' => 400, 'description' => '无权访问'], + ['code' => 'iot.speech.NoSpeechCode', 'message' => 'speech code does not exist.', 'http_code' => 400, 'description' => '推送任务包含的语料不存在。'], + ['code' => 'iot.speech.NotSupportDeleteSpeechDevice', 'message' => 'device not support delete speech.', 'http_code' => 400, 'description' => '设备不支持删除语料。'], + ['code' => 'iot.speech.NotSupportDeleteSpeechDevice', 'message' => 'device not support delete speech', 'http_code' => 400, 'description' => '设备不支持删除语料'], + ['code' => 'iot.speech.NotSupportSoundCode', 'message' => 'not support sound code.', 'http_code' => 400, 'description' => '不支持声码的语料类型或格式。'], + ['code' => 'iot.speech.OperationLimit', 'message' => 'speech operation too much.', 'http_code' => 400, 'description' => '语料操作被限流。'], + ['code' => 'iot.speech.ParamError', 'message' => 'speech param error.', 'http_code' => 400, 'description' => '语料参数错误。'], + ['code' => 'iot.speech.ParamError', 'message' => 'param error.', 'http_code' => 400, 'description' => '入参错误。'], + ['code' => 'iot.speech.ProjectNotExist', 'message' => 'project not exist', 'http_code' => 400, 'description' => '项目不存在'], + ['code' => 'iot.speech.PushJobNotExists', 'message' => 'speech push job not exists.', 'http_code' => 400, 'description' => '语料推送任务不存在。'], + ['code' => 'iot.speech.PushLimit', 'message' => 'push speech too much.', 'http_code' => 400, 'description' => '推送语料限流。'], + ['code' => 'iot.speech.RequestLimit', 'message' => 'too much request.', 'http_code' => 400, 'description' => '请求被限流。'], + ['code' => 'iot.speech.RequestLimit', 'message' => 'too much request', 'http_code' => 400, 'description' => '请求被限流'], + ['code' => 'iot.speech.SearchDeviceFailed', 'message' => 'failed to search speech device.', 'http_code' => 400, 'description' => '检索播报设备失败。'], + ['code' => 'iot.speech.SensitiveContent', 'message' => 'sensitive content.', 'http_code' => 400, 'description' => '内容包含敏感词汇。'], + ['code' => 'iot.speech.SpeechOperationLimitExceeded', 'message' => 'speech operation limit exceeded', 'http_code' => 400, 'description' => '语料操作数已超过限制'], + ['code' => 'iot.speech.SpeechTotalExceeded', 'message' => 'speech total exceeded.', 'http_code' => 400, 'description' => '语料数量已达上限。'], + ['code' => 'iot.speech.SystemReservedBizCode', 'message' => 'system reserved speech model biz code.', 'http_code' => 400, 'description' => '系统保留语料标识。'], + ['code' => 'iot.speechservice.NotSigned', 'message' => 'speech solution has not been signed.', 'http_code' => 400, 'description' => '千里传音服务未开通。'], + ['code' => 'iot.speechservice.NotSigned', 'message' => 'speech service has not been signed.', 'http_code' => 400, 'description' => '播报服务未开通。'], + ['code' => 'iot.speechsolution.NotSigned', 'message' => 'speech solution has not been signed.', 'http_code' => 400, 'description' => '千里传音解决方案未开通。'], + ['code' => 'iot.speechsolution.NotSigned', 'message' => 'speech solution has not been signed', 'http_code' => 400, 'description' => '千里传音解决方案未开通'], + ['code' => 'iot.speechsolution.ProjectHasStopped', 'message' => 'project has stopped.', 'http_code' => 400, 'description' => '项目已停用。'], + ['code' => 'iot.Sre.IotInstanceStatusForbidden', 'message' => 'Instance status forbidden.', 'http_code' => 400, 'description' => '实例状态不可用。'], + ['code' => 'iot.storage.HotStorageCapacityNotEnough', 'message' => 'The timeline storage capacity not enough.', 'http_code' => 400, 'description' => '时序存储容量不足。'], + ['code' => 'iot.storage.HotStorageIopsReadNotEnough', 'message' => 'The timeline storage read IOPS is not enough.', 'http_code' => 400, 'description' => '时序存储读IOPS不足。'], + ['code' => 'iot.storage.HotStorageIopsWriteNotEnough', 'message' => 'The timeline storage write IOPS is not enough.', 'http_code' => 400, 'description' => '时序存储写IOPS不足。'], + ['code' => 'iot.system.AliyunAccountServiceError', 'message' => 'The service of the Alibaba Cloud account is abnormal.', 'http_code' => 400, 'description' => '阿里云账号服务异常。'], + ['code' => 'Iot.System.BillIsOverDue', 'message' => 'Your account has overdue payments. Go to the expense center and add funds to your account.', 'http_code' => 400, 'description' => '您已欠费超期,请到账户中心充值!'], + ['code' => 'iot.system.BillIsOverDue', 'message' => 'Your account has overdue payments. Go to the user center and top up your account.', 'http_code' => 400, 'description' => '您已欠费超期,请到账户中心充值!'], + ['code' => 'iot.system.IllegalRequest', 'message' => 'The request parameter is invalid.', 'http_code' => 400, 'description' => '非法的请求参数。'], + ['code' => 'iot.system.IllegalRequest', 'message' => 'illegal request', 'http_code' => 400, 'description' => '非法的请求参数'], + ['code' => 'iot.system.IllegalRequest', 'message' => 'The request parameter is invalid.%s.', 'http_code' => 400, 'description' => '非法的请求参数,%s。'], + ['code' => 'iot.system.IllegalResponse', 'message' => 'The return value is invalid.', 'http_code' => 400, 'description' => '非法的返回值。'], + ['code' => 'iot.system.InstanceIdSame', 'message' => 'The source instance ID is the same as the destination instance ID.', 'http_code' => 400, 'description' => '源实例ID和目标实例ID相同。'], + ['code' => 'iot.system.InstanceNotFound', 'message' => 'The instance ID does not exist.', 'http_code' => 400, 'description' => '实例ID不存在。'], + ['code' => 'iot.system.InstanceNotFound', 'message' => 'Invalid instanceId.', 'http_code' => 400, 'description' => 'instanceId无效'], + ['code' => 'iot.system.SystemError', 'message' => 'System exception.', 'http_code' => 400, 'description' => '系统异常。'], + ['code' => 'iot.system.SystemError', 'message' => 'Distribution service error.', 'http_code' => 400, 'description' => '分发服务异常。'], + ['code' => 'iot.system.SystemException', 'message' => 'An internal error occurred. Try again later.', 'http_code' => 400, 'description' => '系统异常。'], + ['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.tcloud.NotSigned', 'message' => 'tcloud sign does not exist.', 'http_code' => 400, 'description' => '云端一体服务未开通。'], + ['code' => 'iot.tcloud.NotSigned', 'message' => 'tcloud sign does not exist', 'http_code' => 400, 'description' => '云端一体服务未开通'], + ['code' => 'iot.tcloud.ProjectHasStopped', 'message' => 'project has stopped.', 'http_code' => 400, 'description' => '项目已停用。'], + ['code' => 'iot.tcloud.ProjectHasStopped', 'message' => 'project has stopped', 'http_code' => 400, 'description' => '项目已停用'], + ['code' => 'iot.tcloud.ProjectNotExist', 'message' => 'project not exist.', 'http_code' => 400, 'description' => '项目不存在。'], + ['code' => 'iot.tcloud.ProjectNotFound', 'message' => 'project not found.', 'http_code' => 400, 'description' => '项目不存在。'], + ['code' => 'iot.thingmodel.InvalidFormattedModel', 'message' => 'The TSL data does not conform to the defined standards.', 'http_code' => 400, 'description' => '输入物模型数据不符合规范'], + ['code' => 'iot.tmp.DnListFileCheckInvaldiBizcode', 'message' => 'The bizcode parameter is invalid.', 'http_code' => 400, 'description' => 'bizcode值非法'], + ['code' => 'iot.tmp.DnListFileCheckInvalidFileUrl', 'message' => 'The fileUrl parameter is invalid.', 'http_code' => 400, 'description' => 'fileUrl值非法'], + ['code' => 'iot.tmp.DnListFileCheckInvalidParams', 'message' => 'The params parameter is invalid.', 'http_code' => 400, 'description' => 'params值非法'], + ['code' => 'iot.tmp.DnListFileCheckTooManyTaskInProcess', 'message' => 'Excessive device verification tasks are processed. Try again later.', 'http_code' => 400, 'description' => 'dn列表文件校验任务过多,请稍后再试。'], + ['code' => 'iot.tmp.DnListFileDeviceNameInvalid', 'message' => 'Some DeviceNames are invalid.', 'http_code' => 400, 'description' => 'dn列表中存在非法的设备名称。'], + ['code' => 'iot.tmp.DnListFileEmptyDeviceNames', 'message' => 'Th dn list file cannot be empty.', 'http_code' => 400, 'description' => 'dn列表文件不能为空文件。'], + ['code' => 'iot.tmp.DnListFileNotExist', 'message' => 'The dn list file does not exist.', 'http_code' => 400, 'description' => 'dn列表文件不存在。'], + ['code' => 'iot.tmp.DnListFileSizeExceed', 'message' => 'The size of the dn file exceeds the limit.', 'http_code' => 400, 'description' => 'dn列表文件大小超过限制。'], + ['code' => 'iot.tmp.DnListFileSomeDeviceInvalid', 'message' => 'Some DeviceNames are invalid.', 'http_code' => 400, 'description' => 'dn列表文件中有些dn非法。'], + ['code' => 'iot.tmp.DnListFileTotalDeviceExceedMax', 'message' => 'The number of devices exceeds the limit.', 'http_code' => 400, 'description' => 'dn列表文件中设备数量超过阈值。'], + ['code' => 'iot.transfer.AcceptTransferError', 'message' => 'An error occurred while accepting the transfer application.', 'http_code' => 400, 'description' => '接收方同意转移申请失败。'], + ['code' => 'iot.transfer.CancelTransferApplyError', 'message' => 'An error occurred while canceling the transfer application.', 'http_code' => 400, 'description' => '撤销转移申请失败。'], + ['code' => 'iot.transfer.NullTransferApplyId', 'message' => 'The application ID cannot be empty.', 'http_code' => 400, 'description' => '转移申请单ID为空。'], + ['code' => 'iot.transfer.QuerySingleTransferApplyError', 'message' => 'The corresponding transfer application does not exist.', 'http_code' => 400, 'description' => '未查询到对应转移申请单。'], + ['code' => 'iot.transfer.QueryTransferApplyListError', 'message' => 'An error occurred while querying the transfer application list.', 'http_code' => 400, 'description' => '查询转移申请列表失败。'], + ['code' => 'iot.transfer.QueryTransferDeviceListError', 'message' => 'An error occurred while querying the transferred devices.', 'http_code' => 400, 'description' => '查询转移设备列表失败。'], + ['code' => 'iot.transfer.RejectTransferApplyError', 'message' => 'An error occurred while rejecting the transfer application.', 'http_code' => 400, 'description' => '接收方拒绝转移申请失败。'], + ['code' => 'iot.transfer.SubmitTransferApplyError', 'message' => 'An error occurred while submitting the transfer application.', 'http_code' => 400, 'description' => '提交转移申请失败。'], + ['code' => 'iot.tsl.GetTslError', 'message' => 'An error occurred while retrieving the TSL model.', 'http_code' => 400, 'description' => '获取物模型TSL异常。'], + ['code' => 'iot.tsl.GetTslError', 'message' => 'An error occurred while retrieving thing model TSL.', 'http_code' => 400, 'description' => '获取物模型TSL异常。'], + ['code' => 'iot.tsl.ImportTslError', 'message' => 'An error occurred while importing the TSL model.', 'http_code' => 400, 'description' => '导入物模型失败。'], + ['code' => 'iot.tsl.ImportTslIsForbiddenError', 'message' => 'You cannot import TSL models to an OPC UA or Modbus product.', 'http_code' => 400, 'description' => 'OPC UA、Modbus产品不允许导入物模型。'], + ['code' => 'iot.tsl.InvalidAccessModeInPropertyError', 'message' => 'The specified accessMode parameter in the property is invalid.', 'http_code' => 400, 'description' => 'property中accessMode非法。'], + ['code' => 'iot.tsl.InvalidArgsError', 'message' => 'The specified args parameter is invalid.', 'http_code' => 400, 'description' => 'args非法。'], + ['code' => 'iot.tsl.InvalidArrayError', 'message' => 'The array parameter is invalid.', 'http_code' => 400, 'description' => 'array非法。'], + ['code' => 'iot.tsl.InvalidBooleanError', 'message' => 'The boolean parameter is invalid.', 'http_code' => 400, 'description' => 'boolean非法。'], + ['code' => 'iot.tsl.InvalidBooleanError', 'message' => 'The boolean type parameter is invalid.', 'http_code' => 400, 'description' => 'boolean非法。'], + ['code' => 'iot.tsl.InvalidCallTypeInServiceError', 'message' => 'The specified callType parameter in the service is invalid.', 'http_code' => 400, 'description' => 'service中callType非法。'], + ['code' => 'iot.tsl.InvalidDataTypeError', 'message' => 'The specified dataType parameter is invalid.', 'http_code' => 400, 'description' => 'dataType非法。'], + ['code' => 'iot.tsl.InvalidDataTypeInPropertyError', 'message' => 'The specified dataType parameter in the property is invalid.', 'http_code' => 400, 'description' => 'property中dataType非法。'], + ['code' => 'iot.tsl.InvalidDateError', 'message' => 'The date parameter is invalid.', 'http_code' => 400, 'description' => 'date非法。'], + ['code' => 'iot.tsl.InvalidDoubleError', 'message' => 'The double parameter is invalid.', 'http_code' => 400, 'description' => 'double非法。'], + ['code' => 'iot.tsl.InvalidEnumError', 'message' => 'The enum parameter is invalid.', 'http_code' => 400, 'description' => 'enum非法。'], + ['code' => 'iot.tsl.InvalidEnumError', 'message' => 'The enum type parameter is invalid.', 'http_code' => 400, 'description' => 'enum非法。'], + ['code' => 'iot.tsl.InvalidFloatError', 'message' => 'The float parameter is invalid.', 'http_code' => 400, 'description' => 'float非法。'], + ['code' => 'iot.tsl.InvalidFormattedTslError', 'message' => 'The TSL format is invalid.', 'http_code' => 400, 'description' => 'TSL格式错误。'], + ['code' => 'iot.tsl.InvalidHistoryTimestampError', 'message' => 'The history timestamp is invalid.', 'http_code' => 400, 'description' => '无效的历史时间戳。'], + ['code' => 'iot.tsl.InvalidIdentifierInEventError', 'message' => 'The specified identifier in the event is invalid.', 'http_code' => 400, 'description' => 'event中identifier非法。'], + ['code' => 'iot.tsl.InvalidIdentifierInEventError', 'message' => 'The specified identifier in events is invalid.', 'http_code' => 400, 'description' => 'event中identifier非法。'], + ['code' => 'iot.tsl.InvalidIdentifierInPropertyError', 'message' => 'The specified identifier in the property is invalid.', 'http_code' => 400, 'description' => 'property中identifier非法。'], + ['code' => 'iot.tsl.InvalidIdentifierInPropertyError', 'message' => 'The specified identifier in properties is invalid.', 'http_code' => 400, 'description' => 'property中identifier非法。'], + ['code' => 'iot.tsl.InvalidIdentifierInServiceError', 'message' => 'The specified identifier in the service is invalid.', 'http_code' => 400, 'description' => 'service中identifier非法。'], + ['code' => 'iot.tsl.InvalidIdentifierInServiceError', 'message' => 'The specified identifier in services is invalid.', 'http_code' => 400, 'description' => 'service中identifier非法。'], + ['code' => 'iot.tsl.InvalidIntegerError', 'message' => 'The integer parameter is invalid.', 'http_code' => 400, 'description' => 'integer非法。'], + ['code' => 'iot.tsl.InvalidMethodInEventError', 'message' => 'The specified method parameter in the event is invalid.', 'http_code' => 400, 'description' => 'event中method非法。'], + ['code' => 'iot.tsl.InvalidMethodInServiceError', 'message' => 'The specified method parameter in the service is invalid.', 'http_code' => 400, 'description' => 'service中method非法。'], + ['code' => 'iot.tsl.InvalidNameInEventError', 'message' => 'The specified name in the event is invalid.', 'http_code' => 400, 'description' => 'event中name非法。'], + ['code' => 'iot.tsl.InvalidNameInPropertyError', 'message' => 'The specified name of the property is invalid.', 'http_code' => 400, 'description' => 'property中name非法。'], + ['code' => 'iot.tsl.InvalidNameInServiceError', 'message' => 'The specified name in the service is invalid.', 'http_code' => 400, 'description' => 'service中name非法。'], + ['code' => 'iot.tsl.InvalidPKInProfileError', 'message' => 'The ProductKey in the profile is inconsistent with the required product.', 'http_code' => 400, 'description' => 'profile中产品key非法。'], + ['code' => 'iot.tsl.InvalidRequiredInEventError', 'message' => 'The required parameter in the event is invalid.', 'http_code' => 400, 'description' => 'event中required非法。'], + ['code' => 'iot.tsl.InvalidRequiredInPropertyError', 'message' => 'The required parameter in the property is invalid.', 'http_code' => 400, 'description' => 'property中required非法。'], + ['code' => 'iot.tsl.InvalidRequiredInServiceError', 'message' => 'The required parameter in the service is invalid.', 'http_code' => 400, 'description' => 'service中required非法。'], + ['code' => 'iot.tsl.InvalidSpecsInDataTypeError', 'message' => 'The specified specs parameter in dataType is invalid.', 'http_code' => 400, 'description' => 'dataType中specs非法。'], + ['code' => 'iot.tsl.InvalidStructError', 'message' => 'The struct parameter is invalid.', 'http_code' => 400, 'description' => 'struct非法。'], + ['code' => 'iot.tsl.InvalidStructError', 'message' => 'The struct type parameter is invalid.', 'http_code' => 400, 'description' => 'struct非法。'], + ['code' => 'iot.tsl.InvalidTextError', 'message' => 'The text parameter is invalid.', 'http_code' => 400, 'description' => 'text非法。'], + ['code' => 'iot.tsl.InvalidTslProfileError', 'message' => 'The specified profile parameter in the TSL model is invalid.', 'http_code' => 400, 'description' => 'tsl中profile非法。'], + ['code' => 'iot.tsl.InvalidTslSchemaError', 'message' => 'The specified schema in the TSL model is invalid.', 'http_code' => 400, 'description' => 'tsl中schema非法。'], + ['code' => 'iot.tsl.InvalidTslSchemaError', 'message' => 'The specified schema in the TSL is invalid.', 'http_code' => 400, 'description' => 'tsl中schema非法。'], + ['code' => 'iot.tsl.InvalidTypeInDataTypeError', 'message' => 'The specified type in dataType is invalid.', 'http_code' => 400, 'description' => 'dataType中type非法。'], + ['code' => 'iot.tsl.InvalidTypeInEventError', 'message' => 'The specified callType parameter in the event is invalid.', 'http_code' => 400, 'description' => 'event中callType非法。'], + ['code' => 'iot.tsl.ThingModelNotFound', 'message' => 'The TSL model not exist.', 'http_code' => 400, 'description' => '物模型模块不存在。'], + ['code' => 'iot.tsl.ThingModelNotFound', 'message' => 'the thing model not exist.', 'http_code' => 400, 'description' => '物模型模块不存在'], + ['code' => 'iot.tsl.TSLParamNotExist', 'message' => 'TSL parse. params not exist.', 'http_code' => 400, 'description' => 'TSL解析错误:参数不存在。'], + ['code' => 'iot.tsl.TSLParamNotExist', 'message' => 'tsl parse. params not exist', 'http_code' => 400, 'description' => 'tsl解析错误:参数不存在'], + ['code' => 'iot.tsl.TslParseError', 'message' => 'TSLlParseError: %s.', 'http_code' => 400, 'description' => 'TSL解析错误: %s。'], + ['code' => 'Iot.User.UnknowError', 'message' => 'UnknowError.', 'http_code' => 400, 'description' => '未知错误。'], + ['code' => 'Iot.User.UserNotExsit', 'message' => 'User Not Exsit.', 'http_code' => 400, 'description' => '用户不存在。'], + ['code' => 'Iot.User.UserSpecNotExsit', 'message' => 'UserSpecNotExsit.', 'http_code' => 400, 'description' => '用户规格不存在。'], + ['code' => 'iot.vas.EmptyLicenseDeviceList', 'message' => 'Empty license device list.', 'http_code' => 400, 'description' => 'License设备列表为空。'], + ['code' => 'iot.vas.InvalidParam', 'message' => 'invalid param', 'http_code' => 400, 'description' => '无效参数'], + ['code' => 'iot.vision.ConcurrencyExceedLimit', 'message' => 'Concurrency exceed the limit.', 'http_code' => 400, 'description' => '并发数超过限额。'], + ['code' => 'iot.vision.DeviceNameDuplicate', 'message' => 'Device name duplicate.', 'http_code' => 400, 'description' => '设备名已存在。'], + ['code' => 'iot.vision.DeviceNotStreaming', 'message' => 'Device is not streaming.', 'http_code' => 400, 'description' => '设备未推流。'], + ['code' => 'iot.vision.DeviceOffline', 'message' => 'Device is offline.', 'http_code' => 400, 'description' => '设备不在线。'], + ['code' => 'iot.vision.DeviceOffline', 'message' => 'The device is offline.', '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.JobNotExist', 'message' => 'Job not exist or expired.', 'http_code' => 400, 'description' => '任务不存在或已过期。'], + ['code' => 'iot.vision.NoStorageQuota', 'message' => 'No storage quota.', '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.RequestForbidden', 'message' => 'Request forbidden.', 'http_code' => 403, 'description' => '请求被禁止。'], + ['code' => 'iot.vision.RequestParamError', 'message' => 'Request parameter error:%s', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iot.vision.RequestParamError', 'message' => 'Request parameter error.', '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.RtmpKeyNotSet', 'message' => 'Rtmp key not set.', '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.VoiceStreamExisted', 'message' => 'Voice stream existed.', 'http_code' => 400, 'description' => '语音对讲中。'], + ['code' => 'iotx.common.ParamError', 'message' => 'Request parameter error: %s.', 'http_code' => 400, 'description' => '请求参数错误: %s。'], + ['code' => 'iotx.dc.pop.iotx.exception', 'message' => 'Biz exception.', 'http_code' => 400, 'description' => 'DPS系统业务异常'], + ['code' => 'iotx.dc.pop.system.exception', 'message' => 'System exception.', 'http_code' => 400, 'description' => '系统异常。'], + ['code' => 'iotx.dop.ModelNotFoundError', 'message' => 'The specified model is not found.', 'http_code' => 400, 'description' => '指定模型未找到'], + ['code' => 'iotx.dop.modelNotFoundError', 'message' => 'model not found error', 'http_code' => 400, 'description' => '指定模型未找到'], + ['code' => 'iotx.dop.permission.not.allowed.error', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 400, 'description' => '无访问权限'], + ['code' => 'iotx.dop.PermissionNotAllowedError', 'message' => 'You are not authorized to perform this operation.', 'http_code' => 400, 'description' => '无访问权限'], + ['code' => 'iotx.dop.PermissionNotAllowedError', 'message' => 'permission not allowed error', 'http_code' => 400, 'description' => '无访问权限'], + ['code' => 'iotx.dop.permissionNotPermitError', 'message' => 'permission not permit error', 'http_code' => 400, 'description' => '无访问权限'], + ['code' => 'iotx.dop.requestParamError', 'message' => 'request parameter error.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'iotx.dop.StoreNotFoundError', 'message' => 'The specified data storage is not found.', 'http_code' => 400, 'description' => '找不到数据存储目标'], + ['code' => 'iotx.dop.storeNotFoundError', 'message' => 'model store not found error', 'http_code' => 400, 'description' => '模型存储未找到错误'], + ['code' => 'iotx.dop.StoreNotFoundError', 'message' => 'data store not found error', 'http_code' => 400, 'description' => '找不到数据存储目标'], + ['code' => 'iotx.vision.DeviceNameDuplicate', 'message' => 'Device name duplicate.', 'http_code' => 400, 'description' => '设备名已存在。'], + ['code' => 'iotx.watchtower.addedServiceResourceOpenRecordNotExist', 'message' => 'iotx.watchtower.addedServiceResourceOpenRecordNotExist', 'http_code' => 400, 'description' => '增值服务资源开通记录不存在'], + ['code' => 'iotx.watchtower.runnerNotExists', 'message' => 'iotx.watchtower.runnerNotExists', 'http_code' => 400, 'description' => '主机不存在'], + ['code' => 'LossOfUserInformation', 'message' => 'User information is lost.', 'http_code' => 400, 'description' => '用户信息丢失'], + ['code' => 'ls.code.InvalidParam', 'message' => 'The specified parameter is invalid.', 'http_code' => 400, 'description' => '参数错误'], + ['code' => 'ls.code.SystemError', 'message' => 'A system error occurred.', 'http_code' => 200, 'description' => '系统错误'], + ['code' => 'ls.code.UnknownError', 'message' => 'An error occurred due to unknown reasons.', 'http_code' => 400, 'description' => '未知错误'], + ['code' => 'MissingDynamicGroupExpression', 'message' => 'DynamicGroupExpression is mandatory for this action.', 'http_code' => 400, 'description' => '动态分组规则必填。'], + ['code' => 'NoValueFoundForThisRedisKey', 'message' => 'no value exist for this redis key.', 'http_code' => 403, 'description' => '没有对应的redis的value。'], + ['code' => 'OrderOpend', 'message' => 'You have already purchased the Iot service. Go to the Iot console to start using it.', 'http_code' => 400, 'description' => '您已开通物联网平台服务,请前往控制台使用。'], + ['code' => 'PermissionDenied', 'message' => 'The current sub account without permission, to authorize the Sub - Account, please.', 'http_code' => 400, 'description' => '当前RAM用户无权限,请为RAM用户授权。'."\n"], + ['code' => 'pre.test.precent.%', 'message' => 'test input precent % and colon :', 'http_code' => 400, 'description' => '预发环境测试错误码录入百分号冒号'], + ['code' => 'PriceWanHuaTongSys', 'message' => 'Inquiry call kaleidoscope error', 'http_code' => 400, 'description' => '询价错误。'], + ['code' => 'Product.authright.illegal', 'message' => 'Product authRight illegal.', 'http_code' => 400, 'description' => '产品权限非法。'], + ['code' => 'Product.has.published', 'message' => 'Product has published.', 'http_code' => 400, 'description' => '产品已发布。'], + ['code' => 'Product.Key.Invalid', 'message' => 'Product key is invalid.', 'http_code' => 400, 'description' => '产品key无效。'], + ['code' => 'Product.not.found', 'message' => 'Product.not.found.', 'http_code' => 400, 'description' => '产品找不到。'], + ['code' => 'RedisKeyNotExist', 'message' => 'no such redis key.', 'http_code' => 400, 'description' => 'redis的key找不到。'], + ['code' => 'Request.high.frequent', 'message' => 'Too many requests.', 'http_code' => 400, 'description' => '请求被限流。'], + ['code' => 'Request.param.error', 'message' => 'Request parameter error.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'Request.param.error', 'message' => 'Request.param.error. %d.', 'http_code' => 400, 'description' => '请求参数错误。%d。'], + ['code' => 'Request.param.error', 'message' => 'Request.param.error. %s.', 'http_code' => 400, 'description' => '请求参数错误。%s。'], + ['code' => 'Request.parameter.error', 'message' => 'Request parameter error: %s.', 'http_code' => 400, 'description' => '请求参数错误。'], + ['code' => 'RequestFailed', 'message' => 'Request failed.', 'http_code' => 400, 'description' => '请求失败'], + ['code' => 'Serve.not.found', 'message' => 'Serve.not.found.', 'http_code' => 400, 'description' => '服务找不到。'], + ['code' => 'Server.error', 'message' => 'server error', 'http_code' => 200, 'description' => '服务器错误'], + ['code' => 'Server.error', 'message' => 'Server error.', 'http_code' => 400, 'description' => '服务器错误。'], + ['code' => 'slr.auth.failed', 'message' => 'slr auth failed.', 'http_code' => 400, 'description' => 'slr鉴权失败。'], + ['code' => 'Studio.App.Domain.DomainAlreadyExist', 'message' => 'The domain already exists.', 'http_code' => 200, 'description' => '域名已绑定'], + ['code' => 'Studio.App.Domain.DomainAuthFail', 'message' => 'You are not authorized to manage the domain.', 'http_code' => 200, 'description' => '无域名操作权限'], + ['code' => 'Studio.App.Domain.DomainMaxNumLimit', 'message' => 'The maximum number of domain is exceeded.', 'http_code' => 200, 'description' => '超过域名数量限制'], + ['code' => 'Studio.App.Domain.DomainNotExist', 'message' => 'The domain does not exist.', 'http_code' => 200, 'description' => '域名不存在'], + ['code' => 'Studio.App.Domain.DomainNotValid', 'message' => 'The domain is invalid.', 'http_code' => 200, 'description' => '域名不合法'], + ['code' => 'Studio.App.Domain.ProtocolNotValid', 'message' => 'The protocol is invalid.', 'http_code' => 200, 'description' => '协议不支持'], + ['code' => 'Studio.App.NotExist', 'message' => 'The application does not exist.', 'http_code' => 200, 'description' => '应用不存在'], + ['code' => 'Studio.App.Token.AppHaveNoToken', 'message' => 'The application does not have any token.', 'http_code' => 200, 'description' => '应用无token'], + ['code' => 'Studio.App.Token.AppTokenNotActive', 'message' => 'The application token is not active.', 'http_code' => 200, 'description' => '应用无激活token'], + ['code' => 'Studio.Device.BatchAddDevicesToProjectFailed', 'message' => 'Failed to batch add devices to the project.', 'http_code' => 400, 'description' => '批量绑定设备到项目失败'], + ['code' => 'Studio.Device.BatchRemoveDevicesFromProjectFailed', 'message' => 'Failed to batch remove devices from the project.', 'http_code' => 400, 'description' => '批量从项目解绑设备失败'], + ['code' => 'Studio.Device.BatchRemoveDevicesFromProjectFailed', 'message' => 'Failed to batch add devices to the project.', 'http_code' => 400, 'description' => '批量绑定设备到项目失败'], + ['code' => 'Studio.Group.NotExist', 'message' => 'The group is not exist.', 'http_code' => 400, 'description' => '分组不存在。'], + ['code' => 'Studio.GroupCount.ExceedLimit', 'message' => 'The group count of tenant is exceed limit.', 'http_code' => 400, 'description' => '用户下已创建的分组数超过限制。'], + ['code' => 'Studio.GroupName.Exist', 'message' => 'The group name is exist.', 'http_code' => 400, 'description' => '分组名称已存在。'], + ['code' => 'Studio.GroupName.Invalid', 'message' => 'The group name is invalid.', 'http_code' => 400, 'description' => ' 分组名称不合法'], + ['code' => 'Studio.Materia.UnknownType', 'message' => 'The type is invalid.', 'http_code' => 400, 'description' => '未知素材类型。'], + ['code' => 'Studio.Product.BindFailed', 'message' => 'Failed to bind the product.', 'http_code' => 400, 'description' => '绑定产品失败'], + ['code' => 'Studio.Product.ErrorInvalidProjectOrProduct', 'message' => 'invalid project or product.', 'http_code' => 400, 'description' => '无效的项目或产品。'], + ['code' => 'Studio.Product.ErrorProjectNotExisted', 'message' => 'project not existed.', 'http_code' => 400, 'description' => '项目不存在。'], + ['code' => 'Studio.Product.UnbindDevicesFailed', 'message' => 'unbind devices failed.', 'http_code' => 400, 'description' => '批量解绑设备失败。'], + ['code' => 'Studio.Product.UnbindFailed', 'message' => 'Failed to unbind the product.', 'http_code' => 400, 'description' => '解绑产品失败'], + ['code' => 'Studio.Project.FeatureNotSupport', 'message' => 'The feature is not supported by the current account.', 'http_code' => 200, 'description' => '该功能当前账户不支持'], + ['code' => 'TargetUserCheckFailed', 'message' => 'The target user must not be the current user.', 'http_code' => 200, 'description' => '目标用户不能是当前登录用户'], + ['code' => 'TargetUserNotFound', 'message' => 'The target user is not found.', 'http_code' => 200, 'description' => '目标账号不存在,请重新输入'], + ['code' => 'test.code', 'message' => 'English message.', 'http_code' => 400, 'description' => '中文描述。'], + ['code' => 'test.code', 'message' => 'English mesage.', 'http_code' => 400, 'description' => '中文描述。'], + ['code' => 'The.thing.model.of.distribute.product.not.allow.to.edit', 'message' => 'Distribute.thing.model.no.edit.', 'http_code' => 400, 'description' => '分发产品的东西模型不允许编辑。'], + ['code' => 'Thing.Model.Get.Lock.Failed', 'message' => 'The thing model get lock failed. Please try again later.', 'http_code' => 400, 'description' => '物模型锁获取失败,请稍后重试。'], + ['code' => 'Thing.model.not.found', 'message' => 'The thing model is not existed.', 'http_code' => 400, 'description' => '物模型不存在。'], + ['code' => 'Thing.Model.Status.Not.Final', 'message' => 'The thing model status is not final. Please wait for the final status.', 'http_code' => 400, 'description' => '物模型非终态,请稍等。'], + ['code' => 'Thing.Model.Status.Not.Final', 'message' => 'The thing model may be importing or copying or publishing. Please wait for the final status.', 'http_code' => 400, 'description' => '物模型可能在导入/拷贝/发布中,请稍后再试。'], + ['code' => 'Thing.model.verison.invalid', 'message' => 'The thing model version is not valid.', 'http_code' => 400, 'description' => '物模型版本非法。'], + ['code' => 'Thing.Model.Version.Invalid', 'message' => 'The thing model version is not valid.', 'http_code' => 400, 'description' => '物模型版本非法。'], + ], + 'changeSet' => [], + 'flowControl' => [ + 'flowControlList' => [ + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProductDistributeJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySummarySceneRuleLog'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishThingModelAsyncInner'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSpeech'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchUnbindDeviceFromEdgeInstance'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingScript'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceEventData'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddDataForApiSource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListParser'], + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RRpc'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProductTags'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAFirmware'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDesiredProperty'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySoundCodeLabelList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryPageByApplyId'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReleaseProduct'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechPushJobSpeech'], + ['threshold' => '40', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetShareTaskByDeviceOpen'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSoundCodeLabel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicePropertyData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSubscribeRelation'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeDriver'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetShareSpeechModelAudio'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishScript'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDataForApiSource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchImportDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteStudioAppDomainOpen'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDataAPIServiceDetail'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopRule'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSpeechLicenseDeviceStatistics'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCheckDeviceNames'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceGroupByTags'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceSpeech'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDeviceProperty'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySuperDeviceGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListParserDestination'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDeviceDistributeJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InvokeThingsService'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceDriver'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableSceneRule'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchBindDeviceToEdgeInstanceWithDriver'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateOTAJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSoundCodeLabel'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProduct'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProductTopic'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteUserDefineTableDataByPrimaryKey'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelOTATaskByJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CopyThingModel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReleaseEdgeDriverVersion'], + ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ImportDTData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeInstanceDeployment'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetDeviceState'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRuleAction'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDataSourceItem'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCheckImportDevice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryLoRaJoinPermissions'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateThingModel'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryJobStatistics'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryImportedDeviceByApplyId'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryProjectShareDeviceList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetParserDataSource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateThingScript'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeletePowerStation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchQueryDeviceDetail'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceByTags'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableThing'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateConsumerGroup'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListProductByTags'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListParserDataSource'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryConsumerGroupList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchBindProductsIntoProject'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCertUrlByApplyId'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDeviceTunnelSharePassword'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryThingModelPublished'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReBindLicenseDevice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDeviceGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceProp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateParserDataSource'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CloseEdgeInstanceDeployment'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceFile'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListThingModelVersion'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceOriginalPropertyStatus'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryProductCertInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateTopicConfig'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListPowerStation'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetupStudioAppAuthModeOpen'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateParserDataSource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeInstance'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReupgradeOTATask'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStudioAppDomainListOpen'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicePropertiesData'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSoundCode'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeInstanceDeviceDriver'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListRule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteClientIds'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDestination'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceListByDeviceGroup'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSchedulePeriod'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAModuleByProduct'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySceneRule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryProductList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateConsumerGroupSubscribeRelation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachDestination'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceServiceData'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchRegisterDeviceWithApplyId'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateOTADynamicUpgradeJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CloseDeviceTunnel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProductTopic'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateConsumerGroup'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySolutionDeviceGroupPage'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AttachParserDataSource'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSoundCode'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceShadow'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListAnalyticsData'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchUnbindProjectDevices'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeInstanceChannel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartParser'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GisQueryDeviceLocation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishThingModel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceProvisioning'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateProductTags'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelJob'], + ['threshold' => '-1', 'countWindow' => 1, 'regionId' => '*'], + ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AsyncRRpc'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddDeviceToSharePromotion'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDistributeJob'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicesHotStorageDataStatus'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetEdgeInstanceDriverConfigs'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSoundCode'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSoundCodeSchedule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListRuleActions'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindLicenseProduct'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceChannel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSceneRule'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeInstanceDeviceConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySchedulePeriodList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SpeechBySynthesis'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDeviceShadow'], + ['threshold' => '80', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CountSpeechBroadcastHour'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ReplaceEdgeInstanceGateway'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddPowerStation'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PushSpeech'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstance'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySubscribeRelation'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceByStatus'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveScript'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableThing'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryConsumerGroupByGroupId'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDeviceDynamicGroup'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryShareTaskDeviceList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceCert'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeInstanceDeviceChannel'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteProductTags'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDevicesProperty'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TransformClientId'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryShareProductNameByProductKey'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSubscribeRelation'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDistributeDetail'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachDestination'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateOTAFirmware'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceTunnelShareStatus'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PubBroadcast'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTopicRouteTable'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteTopicConfig'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDeviceGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateOTAModule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceOriginalServiceData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingModelTslPublished'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSchedulePeriod'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteThingModel'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceGroup'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateFileUploadURL'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableDeviceTunnel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeDriverVersion'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InvokeThingService'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeDriver'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TestSpeech'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateThingScript'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PageQuerySharedSpeechOpen'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeInstanceChannel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableSceneRule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateOTAUploadURL'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechPushJobDevice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceOriginalPropertyData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindLicenseProduct'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryBatchRegisterDeviceStatus'], + ['threshold' => '3', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechLicenseDeviceList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAJobByFirmware'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteDeviceGroupRelations'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteShareTaskDevice'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceGroupTagList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteOTAFirmware'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingModelStatusInner'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CopyThingModelAsync'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'EnableDeviceTunnelShare'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddThingTopo'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceDistributeJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateOTAStaticUpgradeJob'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResetDeviceTimeline'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRule'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateTopicConfig'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryTask'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCreateSoundCodeLabelWithLabels'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelOTATaskByDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStudioProjectList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteOTAModule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteRuleAction'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDataAPIService'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateParser'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InvokeDataAPIService'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSoundCodeSchedule'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDownloadDataJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeInstanceDriverConfigs'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDevice'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceStatus'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetDeviceBindStatus'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetEdgeInstanceDeviceChannel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryMessageInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDestination'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSoundCodeLabel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceOriginalEventData'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateOTAModule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDestination'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryOTAFirmware'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceTunnelStatus'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ClearDeviceDesiredProperty'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCheckVehicleDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchUnbindProjectProducts'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceGroupByDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAModuleVersionsByDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySoundCodeLabelBatchList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeInstanceChannel'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteConsumerGroup'], + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PageQuerySpeechBroadcastHour'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAJobByDevice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryProduct'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDataSourceItem'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDataSourceItem'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDeviceDesiredProperty'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeInstanceMessageRouting'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryTopicRouteTable'], + ['threshold' => '4000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'WriteDevicesHotStorageData'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRule'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PackageSoundCodeLabelBatchAudio'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ImportThingModelTsl'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSceneRule'], + ['threshold' => '200', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicePropertyStatus'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryOTAJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSpeechDeviceDetail'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SaveDeviceProp'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSoundCodeSchedule'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyPowerStation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechPushJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListThingTemplates'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySharePromotionActivityAuditResult'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableDeviceTunnel'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchAddDeviceGroupRelations'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeOssPreSignedAddress'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetGatewayBySubDevice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateRuleAction'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeInstanceDeployment'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeInstanceMessageRouting'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnsubscribeTopic'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeDriverVersion'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchSetEdgeInstanceDeviceConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetStudioAppTokenOpen'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceTunnel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDynamicGroupDevices'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceFileList'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeDriverVersion'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSharePromotionActivity'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateOTAVerifyJob'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GisSearchDeviceTrace'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingTopo'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSchedulePeriod'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindSceneRuleFromEdgeInstance'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateTopicRouteTable'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DetachParserDataSource'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateRule'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSpeech'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetStudioProjectCooperation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeInstanceMessageRouting'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceProp'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ShareSpeechByCombination'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchDeleteEdgeInstanceChannel'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceFile'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteSpeech'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishThingModelAsync'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceDetail'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResetThing'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateProductTopic'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceTunnel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryVehicleDevice'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryThingModelExtendConfigPublished'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindDriverFromEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceHistoricDeployment'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySoundCodeScheduleList'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartRule'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceStatistics'], + ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'Pub'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StartPTDetection'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SyncSpeechByCombination'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TriggerSceneRule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'StopParser'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSoundCodeAudio'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchImportVehicleDevice'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ConfirmOTATask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceSceneRule'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshStudioAppTokenOpen'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchBindDevicesIntoProject'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindRoleToEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateEdgeInstanceMessageRouting'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDetailSceneRuleLog'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListProductTags'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateDestination'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGrayMigrationDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceSpeech'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetDeviceGroupTags'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ClearEdgeInstanceDriverConfigs'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDeviceDistributeJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSoundCodeSchedule'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSpeechVoice'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SpeechByCombination'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindApplicationFromEdgeInstance'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateProduct'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySoundCodeLabelBatchFailedResult'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchUpdateDeviceNickname'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateLoRaNodesTask'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetLoraNodesTask'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateThingModel'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchCreateSoundCodeLabel'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceSubTopic'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SubscribeTopic'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindSceneRuleToEdgeInstance'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PrintByTemplate'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTAUnfinishedTaskByDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ModifyOTAFirmware'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ImportDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStudioAppList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateProductFilterConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelOTAStrategyByJob'], + ['threshold' => '2', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingTemplate'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSharePromotionSpeechModel'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetSceneRule'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryLicenseDeviceList'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchPub'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CancelReleaseProduct'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeechLicenseAvailableQuota'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceBySQL'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisableDeviceTunnelShare'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RemoveThingTopo'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RerunJob'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddShareTaskDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTask'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateParser'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindLicenseDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDeviceTunnel'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TestSwitch'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchRegisterDevice'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryClientIds'], + ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceGroupList'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDevicesHotStorageData'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceMessageRouting'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryTopicConfig'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ResetConsumerGroupPosition'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteParser'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RetrySoundCodeLabelBatch'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceDeviceByDriver'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchClearEdgeInstanceDeviceConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteParserDataSource'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySpeech'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindDriverToEdgeInstance'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateStudioAppDomainOpen'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceGateway'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryEdgeInstanceDevice'], + ['threshold' => '15', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryThingModel'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeDriver'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryStudioAppPageListOpen'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'NotifyAddThingTopo'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'PublishStudioApp'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindApplicationToEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateSceneRule'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryConsumerGroupStatus'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetParser'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryThingModelExtendConfig'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateProduct'], + ['threshold' => '1', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceDynamicGroup'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GenerateDeviceNameListURL'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchGetEdgeDriver'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateSubscribeRelation'], + ['threshold' => '20', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetThingModelTsl'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CheckBindLicenseDeviceProgress'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySoundCodeList'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomTimelineTableStatus'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceInfo'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteJob'], + ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDownloadFile'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDistributedDevice'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDistributedProduct'], + ['threshold' => '50', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryTopicReverseRouteTable'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteEdgeDriverVersion'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetProductCertInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListOTATaskByJob'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnbindRoleFromEdgeInstance'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BindGatewayToEdgeInstance'], + ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteConsumerGroupSubscribeRelation'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetEdgeDriverVersion'], + ['threshold' => '30', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryDeviceGroupInfo'], + ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateDestination'], + ], + 'product' => ['code' => 'iot', 'title' => '物联网平台'], + ], + 'ram' => [ + 'productCode' => 'Iot', + 'productName' => '物联网平台', + 'ramCodes' => ['iot'], + 'ramLevel' => '资源级', + 'ramConditions' => [], + 'ramActions' => [ + [ + 'apiName' => 'QueryEdgeInstanceSceneRule', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'delete', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - .'- 企业版实例:必须传入此参数。您可在物联网平台控制台的**实例概览**页面,查看您的企业版实例ID。'."\n" - .'- 公共实例:无需传入此参数。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'ListDeviceDistributeJob', + 'description' => 'ListDeviceDistributeJob', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123********', + ], + [ + 'apiName' => 'QueryStudioAppDomainListOpen', + 'description' => 'QueryStudioAppDomainListOpen', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryStudioAppDomainListOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKeys', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要解除项目中关联产品的ProductKey列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => 'a1BwAGV****', - 'maxItems' => 10, + ], + [ + 'apiName' => 'GisQueryDeviceLocation', + 'description' => 'GisQueryDeviceLocation', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GisQueryDeviceLocation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- true:调用成功。'."\n" - .'- false:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'CreateEdgeDriver', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'BatchPub', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchPub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 400 => [ - [ - 'errorCode' => 'Studio.Product.UnbindFailed', - 'errorMessage' => 'unbind failed', + ], + [ + 'apiName' => 'UnbindApplicationFromEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindApplicationFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tE0600442-A846-4D15-92B8-8B0B9FF7A801\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n\\r\\n","errorExample":""}]', - 'title' => '批量解绑项目产品', - 'summary' => '解绑指定项目下的指定产品。支持批量。', - 'description' => '## 限制说明'."\n" - .'- 如果在企业版实例中调用该接口,请求参数**IotInstanceId**必须填写。否则,调用接口会失败。'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - .'- 单次调用该接口最多可解除10个关联产品。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchBindDevicesIntoProject' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryProductList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'BindGatewayToEdgeInstance', + 'description' => '', 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindGatewayToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'QueryDeviceProp', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'GetEdgeInstanceDeployment', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Devices', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '关联到项目的设备所隶属的产品ProductKey列表。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '需要关联到项目的设备DeviceName列表。', - 'type' => 'string', - 'required' => true, - 'example' => 'Ee2******', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10, + ], + [ + 'apiName' => 'OpenIotService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:OpenIotService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'InvokeThingsService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:InvokeThingsService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'QueryDevicePropertyData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertyData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 400 => [ - [ - 'errorCode' => 'Studio.Device.BatchAddDevicesToProjectFailed', - 'errorMessage' => 'batch add devices to project failed', + ], + [ + 'apiName' => 'QueryDeviceServiceData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceServiceData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\t3737EE71-7FB9-418E-9B29-929F32CFF314\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n\\t\\r\\n","errorExample":""}]', - 'title' => 'BatchBindDevicesIntoProject', - 'summary' => '调用该接口批量关联设备到项目中。', - 'description' => '## 限制说明'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n" - .'- 单次调用该接口最多可关联10个设备。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'BatchUnbindProjectDevices' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateDownloadDataJob', + 'description' => 'CreateDownloadDataJob', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDownloadDataJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListProductByTags', + 'description' => 'ListProductByTags', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListProductByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'UpdateThingScript', + 'description' => '', 'operationType' => 'update', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'ramAction' => [ + 'action' => 'iot:UpdateThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'DeleteEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Devices', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '需要解除关联的设备列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'ProductKey' => [ - 'description' => '解除项目中关联设备所隶属的产品ProductKey列表。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', - ], - 'DeviceName' => [ - 'description' => '需要解除项目中关联设备的DeviceName列表。', - 'type' => 'string', - 'required' => true, - 'example' => 'Ee2******', - ], - ], - 'required' => false, - ], - 'required' => true, - 'maxItems' => 10, + ], + [ + 'apiName' => 'QueryProductCertInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductCertInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - ."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'CreateSoundCodeLabel', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'BatchAddDataForApiSource', + 'description' => 'BatchAddDataForApiSource', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddDataForApiSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 400 => [ - [ - 'errorCode' => 'Studio.Device.BatchRemoveDevicesFromProjectFailed', - 'errorMessage' => 'batch remove devices from project failed', + ], + [ + 'apiName' => 'QuerySpeechPushJobSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJobSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\r\\n\\tD87124B4-8567-4E86-9F39-35F9C3668A3B\\r\\n\\ttrue\\r\\n\\ttrue\\r\\n","errorExample":""}]', - 'title' => 'BatchUnbindProjectDevices', - 'summary' => '调用该接口批量解除项目中关联的设备。', - 'description' => '## 限制说明'."\n" - .'- 单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - .'- 单次调用该接口最多可解除10个关联设备。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](https://help.aliyun.com/document_detail/30561.html?spm=a2c4g.11186623.2.11.cd0fc4793w9Hmy)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryStudioProjectList' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', - ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'StopRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:StopRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'GetParser', + 'description' => 'GetParser', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'Name', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目名称。'."\n" - .'- 支持中文、英文字母、数字、下划线(_)、短划线(-)、英文圆括号(())。'."\n" - .'- 必须以中文、英文字母或数字开头。'."\n" - .'- 长度不超过30个字符(一个中文算一个字符)。', - 'type' => 'string', - 'required' => false, - 'example' => 'test1', + 'ramAction' => [ + 'action' => 'iot:GetParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'minimum' => '1', - 'example' => '1', - 'default' => '1', + ], + [ + 'apiName' => 'CreateSharePromotionActivity', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSharePromotionActivity', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '返回结果中每页显示的条数。最小值1,最大值50,默认值20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'maximum' => '50', - 'minimum' => '1', - 'example' => '20', - 'default' => '20', + ], + [ + 'apiName' => 'CreateDestination', + 'description' => '创建解析器流转数据目的', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'PublishScript', + 'description' => 'PublishScript', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PublishScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '项目列表详情。', - 'type' => 'object', - 'properties' => [ - 'PageNo' => [ - 'description' => '指定从返回结果中的第几页开始显示。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '分页总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '项目总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'ProjectInfo' => [ - 'description' => '项目列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreate' => [ - 'description' => '项目的创建时间。毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1611819839000', - ], - 'Description' => [ - 'description' => '项目描述。', - 'type' => 'string', - 'example' => 'This is a test project.', - ], - 'Name' => [ - 'description' => '项目名称。', - 'type' => 'string', - 'example' => 'test1', - ], - 'GmtModified' => [ - 'description' => '项目的修改时间。毫秒值时间戳。', - 'type' => 'integer', - 'format' => 'int64', - 'example' => '1611819860000', - ], - 'ProjectId' => [ - 'description' => '项目ID。', - 'type' => 'string', - 'example' => 'a123********', - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'QueryTask', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'QueryEdgeInstanceGateway', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"List\\": {\\n \\"ProjectInfo\\": [\\n {\\n \\"GmtCreate\\": 1611819839000,\\n \\"Description\\": \\"This is a test project.\\",\\n \\"Name\\": \\"test1\\",\\n \\"GmtModified\\": 1611819860000,\\n \\"ProjectId\\": \\"a123********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 10\\n 20\\n 200\\n 1\\n \\n \\n 1611819839000\\n This is a test project.\\n a123********\\n 1611819860000\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', - 'title' => 'QueryStudioProjectList', - 'summary' => '调用该接口获取项目列表。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。'."\n" - ."\n", - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetStudioProjectCooperation' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteProductTopic', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateSceneRule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'GenerateFileUploadURL', + 'description' => '', 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateFileUploadURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'CreateThingModel', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Status', - 'in' => 'formData', - 'schema' => [ - 'description' => '设置项目协作状态。'."\n" - .'- **0**(默认): 关闭。'."\n" - .'- **1**: 开通。', - 'type' => 'string', - 'required' => true, - 'example' => '1', - 'enum' => [ - '1', - '0', - ], + ], + [ + 'apiName' => 'QueryShareProductNameByProductKey', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryShareProductNameByProductKey', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'request parameter error', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'DeleteRule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'QueryDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Studio.Project.FeatureNotSupport', - 'errorMessage' => 'The feature is not supported by the current account.', + ], + ], + [ + 'apiName' => 'CreateThingScript', + 'description' => 'CreateThingScript', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"request parameter error\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n","errorExample":""}]', - 'title' => 'SetStudioProjectCooperation', - 'summary' => '调用该接口设置项目协作,即阿里云账号可以给不同的RAM用户授权不同的项目。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryStudioAppList' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'GetSoundCodeSchedule', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ClearEdgeInstanceDriverConfigs', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ClearEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryDeviceSubTopic', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceSubTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'QueryMessageInfo', + 'description' => '', 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryMessageInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.15b03118ooIo9y),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123********', + [ + 'apiName' => 'UnbindLicenseProduct', + 'description' => '取消指定产品的License授权', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UnbindLicenseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + ], + [ + 'apiName' => 'DeleteSchedulePeriod', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定返回结果中每页显示的产品数量,最大值是200。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '2', - 'default' => '15', + ], + [ + 'apiName' => 'BatchRegisterDeviceWithApplyId', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchRegisterDeviceWithApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'FuzzyName', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用名称。'."\n" - .'- 支持中文、英文字母、数字、下划线(_)、短划线(-)和英文圆括号(())。'."\n" - .'- 必须以中文、英文字母或数字开头。'."\n" - .'- 长度不超过30个字符(一个中文算一个字符)。', - 'type' => 'string', - 'required' => false, - 'example' => 'test1', + ], + [ + 'apiName' => 'BatchGetEdgeDriver', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'PublishThingModel', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PublishThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Types', - 'in' => 'formData', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '应用类型列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - 'required' => false, - ], - 'required' => true, - 'example' => '["webApp", "mobileApp"]', - 'maxItems' => 9, + ], + [ + 'apiName' => 'QueryDevicesHotStorageDataStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicesHotStorageDataStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '应用列表详情。', - 'type' => 'object', - 'properties' => [ - 'PageNo' => [ - 'description' => '指定从返回结果中的第几页开始显示。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '分页总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '20', - ], - 'Total' => [ - 'description' => '应用总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '200', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'AppInfo' => [ - 'description' => '应用列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => '应用类型。', - 'type' => 'string', - 'example' => 'webApp', - ], - 'AppSecret' => [ - 'description' => '应用密钥。', - 'type' => 'string', - 'example' => 'a605*******', - ], - 'AppKey' => [ - 'description' => '应用**AppKey**。', - 'type' => 'string', - 'example' => '322******', - ], - 'Description' => [ - 'description' => '应用描述。', - 'type' => 'string', - 'example' => 'This is a test.', - ], - 'AppId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a123********', - ], - 'ProjectId' => [ - 'description' => '应用所属项目ID。', - 'type' => 'string', - 'example' => 'a123********', - ], - 'GmtCreate' => [ - 'description' => '应用的创建时间。', - 'type' => 'string', - 'example' => '2020-12-25 16:20:53', - ], - 'GmtRelease' => [ - 'description' => '应用的发布时间。', - 'type' => 'string', - 'example' => '2021-04-15 19:11:32', - ], - 'GmtModified' => [ - 'description' => '应用的修改时间。', - 'type' => 'string', - 'example' => '2021-04-10 15:06:23', - ], - 'Name' => [ - 'description' => '应用名称。', - 'type' => 'string', - 'example' => 'test1', - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'QuerySpeech', + 'description' => 'QuerySpeech', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'GetSpeechLicenseDeviceStatistics', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechLicenseDeviceStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'IoT.Common.ParamterError', - 'errorMessage' => 'The request parameter is invalid.', + ], + ], + [ + 'apiName' => 'UnbindDriverFromEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindDriverFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 10,\\n \\"PageSize\\": 20,\\n \\"Total\\": 200,\\n \\"List\\": {\\n \\"AppInfo\\": [\\n {\\n \\"Type\\": \\"webApp\\",\\n \\"AppSecret\\": \\"a605*******\\",\\n \\"AppKey\\": \\"322******\\",\\n \\"Description\\": \\"This is a test.\\",\\n \\"AppId\\": \\"a123********\\",\\n \\"ProjectId\\": \\"a123********\\",\\n \\"GmtCreate\\": \\"2020-12-25 16:20:53\\",\\n \\"GmtRelease\\": \\"2021-04-15 19:11:32\\",\\n \\"GmtModified\\": \\"2021-04-10 15:06:23\\",\\n \\"Name\\": \\"test1\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 10\\n 20\\n 200\\n 1\\n \\n \\n 2020-12-25 16:20:53\\n webApp\\n This is a test.\\n a123********\\n 322******\\n 2021-04-10 15:06:23\\n a123********\\n 2021-04-15 19:11:32\\n a605*******\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', - 'title' => 'QueryStudioAppList', - 'summary' => '调用该接口获取应用列表。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryStudioAppPageListOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'QueryDeviceFile', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteShareTaskDevice', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteShareTaskDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetSpeechDeviceDetail', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'ListRule', + 'description' => '', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a12*******', + 'ramAction' => [ + 'action' => 'iot:ListRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'QueryThingModelExtendConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelExtendConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IsRelease', - 'in' => 'formData', - 'schema' => [ - 'description' => '获取应用页面。'."\n" - .'- **true**:获取已发布的应用页面。'."\n" - .'- **false(默认)**:获取未发布的应用页面。', - 'type' => 'boolean', - 'required' => false, - 'example' => 'false', - 'default' => 'false', + ], + [ + 'apiName' => 'ListOTAUnfinishedTaskByDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAUnfinishedTaskByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'formData', - 'schema' => [ - 'description' => '指定从返回结果中的第几页开始显示。默认为1。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '1', - 'default' => '1', + ], + [ + 'apiName' => 'ListRuleActions', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListRuleActions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'formData', - 'schema' => [ - 'description' => '返回结果中每页显示的条数。最小值1,最大值50,默认值20。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, - 'example' => '20', - 'default' => '50', + ], + [ + 'apiName' => 'UpdateProduct', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1.您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'UpdateConsumerGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '应用页面列表信息。', - 'type' => 'object', - 'properties' => [ - 'PageNo' => [ - 'description' => '指定从返回结果中的第几页开始显示。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '分页总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '页面总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'PageInfo' => [ - 'description' => '应用页面列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'GmtCreate' => [ - 'description' => '页面的创建时间。', - 'type' => 'string', - 'example' => '2020-12-25T16:21Z', - ], - 'IsLoginPage' => [ - 'description' => '表示页面是否为登录页。'."\n" - .'- **0**:否。'."\n" - .'- **1**:是。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Path' => [ - 'description' => '页面路径。', - 'type' => 'string', - 'example' => '/page/44920', - ], - 'IsHidden' => [ - 'description' => '表示页面是否隐藏。'."\n" - .'- **0**:否。'."\n" - .'- **1**:是。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'GmtModified' => [ - 'description' => '页面的修改时间。', - 'type' => 'string', - 'example' => '2021-05-08T17:18Z', - ], - 'Name' => [ - 'description' => '页面名称。', - 'type' => 'string', - 'example' => 'test1', - ], - 'PageId' => [ - 'description' => '页面ID。', - 'type' => 'string', - 'example' => '44920', - ], - 'IsHome' => [ - 'description' => '表示页面是否为主页。'."\n" - .'- **0**:否。'."\n" - .'- **1**:是。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'Id' => [ - 'description' => '标记每条记录的唯一标识。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '49739', - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'QuerySceneRule', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'SaveDeviceProp', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SaveDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"PageInfo\\": [\\n {\\n \\"GmtCreate\\": \\"2020-12-25T16:21Z\\",\\n \\"IsLoginPage\\": 1,\\n \\"Path\\": \\"/page/44920\\",\\n \\"IsHidden\\": 1,\\n \\"GmtModified\\": \\"2021-05-08T17:18Z\\",\\n \\"Name\\": \\"test1\\",\\n \\"PageId\\": \\"44920\\",\\n \\"IsHome\\": 1,\\n \\"Id\\": 49739\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n 10\\n 10\\n 1\\n \\n \\n /page/44920\\n 44920\\n 1\\n 1\\n 2020-12-25T16:21Z\\n 1\\n 2021-05-08T17:18Z\\n 49739\\n test1\\n \\n \\n \\n true\\n","errorExample":""}]', - 'title' => 'QueryStudioAppPageListOpen', - 'summary' => '调用该接口获取应用页面列表。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'QueryStudioAppDomainListOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'UpdateRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QueryThingModel', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'TriggerSceneRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:TriggerSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'QueryEdgeInstance', + 'description' => '', 'operationType' => 'get', - ], - 'parameters' => [ - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。'."\n", - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'QuerySuperDeviceGroup', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySuperDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'QuerySpeechPushJobDevice', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJobDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '应用绑定域名列表信息。', - 'type' => 'object', - 'properties' => [ - 'PageNo' => [ - 'description' => '指定从返回结果中的第几页开始显示。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TotalPage' => [ - 'description' => '分页总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'PageSize' => [ - 'description' => '每页显示的条数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '10', - ], - 'Total' => [ - 'description' => '域名总数。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'List' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'DomainInfo' => [ - 'description' => '应用绑定域名列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'example.com', - ], - 'Protocol' => [ - 'description' => '请求协议。', - 'type' => 'string', - 'example' => 'https', - ], - 'AppId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a12*******', - ], - 'ProjectId' => [ - 'description' => '项目ID。', - 'type' => 'string', - 'example' => 'a123********', - ], - 'GmtCreate' => [ - 'description' => '应用绑定域名的时间。', - 'type' => 'string', - 'example' => '1619598445000', - ], - 'IsBeian' => [ - 'description' => '域名是否已备案。'."\n" - .'- **YES**:是。'."\n" - .'- **NO**:否。', - 'type' => 'string', - 'example' => 'YES', - ], - 'GmtModified' => [ - 'description' => '应用修改域名的时间。', - 'type' => 'string', - 'example' => '1619598445000', - ], - 'Id' => [ - 'description' => '域名ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1548', - ], - 'TenantId' => [ - 'description' => '租户ID。', - 'type' => 'string', - 'example' => 'C70B541046F64EAAB*********', - ], - ], - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'SetEdgeInstanceDriverConfigs', + 'description' => 'SetEdgeInstanceDriverConfigs', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'QueryDeviceEventData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceEventData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"PageNo\\": 1,\\n \\"TotalPage\\": 1,\\n \\"PageSize\\": 10,\\n \\"Total\\": 1,\\n \\"List\\": {\\n \\"DomainInfo\\": [\\n {\\n \\"Host\\": \\"example.com\\",\\n \\"Protocol\\": \\"https\\",\\n \\"AppId\\": \\"a12*******\\",\\n \\"ProjectId\\": \\"a123********\\",\\n \\"GmtCreate\\": \\"1619598445000\\",\\n \\"IsBeian\\": \\"YES\\",\\n \\"GmtModified\\": \\"1619598445000\\",\\n \\"Id\\": 1548,\\n \\"TenantId\\": \\"C70B541046F64EAAB*********\\"\\n }\\n ]\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n 10\\n 1\\n 1\\n \\n \\n 1619598445000\\n C70B541046F64EAAB*********\\n a12*******\\n 1619598445000\\n a123********\\n example.com\\n 1548\\n https\\n YES\\n \\n \\n \\n true\\n","errorExample":""}]', - 'title' => 'QueryStudioAppDomainListOpen', - 'summary' => '调用该接口获取应用绑定域名列表。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'DeleteStudioAppDomainOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'QueryDeviceByStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceByStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateOTAModule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'EnableDeviceTunnel', + 'description' => 'EnableDeviceTunnel', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:EnableDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'delete', + [ + 'apiName' => 'CreateDataSourceItem', + 'description' => 'CreateDataSourceItem', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + [ + 'apiName' => 'BatchAddDeviceGroupRelations', + 'description' => 'BatchAddDeviceGroupRelations', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddDeviceGroupRelations', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DomainId', - 'in' => 'formData', - 'schema' => [ - 'description' => '域名ID。可调用[QueryStudioAppDomainListOpen](~~216814~~)查看。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'minimum' => '1', - 'example' => '1', + ], + [ + 'apiName' => 'CopyThingModelAsync', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CopyThingModelAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://studio.iot.aliyun.com/?spm=a2c4g.11186623.2.8.15b03118ooIo9y),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123*******', + ], + [ + 'apiName' => 'BatchUnbindProjectProducts', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchUnbindProjectProducts', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'DeleteRuleAction', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'CreateRule', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'Studio.App.NotExist', - 'errorMessage' => 'The application does not exist.', + [ + 'apiName' => 'DeleteEdgeDriverVersion', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Studio.App.Domain.DomainNotExist', - 'errorMessage' => 'The domain does not exist.', + ], + ], + [ + 'apiName' => 'BatchDeleteDeviceGroupRelations', + 'description' => 'BatchDeleteDeviceGroupRelations', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchDeleteDeviceGroupRelations', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Studio.App.Domain.DomainAuthFail', - 'errorMessage' => 'You are not authorized to manage the domain.', + ], + ], + [ + 'apiName' => 'GetDeviceTunnelStatus', + 'description' => 'GetDeviceTunnelStatus', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceTunnelStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n ","errorExample":""}]', - 'title' => 'DeleteStudioAppDomainOpen', - 'summary' => '调用该接口删除应该绑定的域名。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'CreateStudioAppDomainOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'BatchClearEdgeInstanceDeviceConfig', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchClearEdgeInstanceDeviceConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateProduct', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'BatchQueryDeviceDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchQueryDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'CreateJob', + 'description' => '', 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12*******', + [ + 'apiName' => 'ListOTAJobByDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAJobByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Host', - 'in' => 'formData', - 'schema' => [ - 'description' => '域名。', - 'type' => 'string', - 'required' => true, - 'example' => 'www.aliyun.test.com', + ], + [ + 'apiName' => 'QueryProduct', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Protocol', - 'in' => 'formData', - 'schema' => [ - 'description' => '请求协议。'."\n" - .'- **https**'."\n" - .'- **http**', - 'type' => 'string', - 'required' => true, - 'example' => 'https', - 'enum' => [ - 'https', - 'http', - ], + ], + [ + 'apiName' => 'QueryDeviceGroupInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123******', + ], + [ + 'apiName' => 'QueryDeviceTunnel', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + ], + [ + 'apiName' => 'QueryClientIds', + 'description' => 'QueryClientIds', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryClientIds', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- ** false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '应用添加域名的详情。', - 'type' => 'object', - 'properties' => [ - 'Host' => [ - 'description' => '域名。', - 'type' => 'string', - 'example' => 'www.aliyun.test.com', - ], - 'Protocol' => [ - 'description' => '请求协议。', - 'type' => 'string', - 'example' => 'https', - ], - 'AppId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a12******', - ], - 'ProjectId' => [ - 'description' => '项目ID。', - 'type' => 'string', - 'example' => 'a12*******', - ], - 'IsBeian' => [ - 'description' => '域名是否已备案。'."\n" - .'- **YES**:是。'."\n" - .'- **NO**:否。', - 'type' => 'string', - 'example' => 'YES', - ], - 'Id' => [ - 'description' => '域名ID。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1573', - ], - 'TenantId' => [ - 'description' => '租户ID。', - 'type' => 'string', - 'example' => 'C70B541046F64EAABE3*******', - ], - ], - ], - ], + [ + 'apiName' => 'QueryEdgeInstanceHistoricDeployment', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceHistoricDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'Studio.App.Domain.DomainMaxNumLimit', - 'errorMessage' => 'The maximum number of domain is exceeded.', + [ + 'apiName' => 'GenerateOTAUploadURL', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateOTAUploadURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Studio.App.Domain.DomainAlreadyExist', - 'errorMessage' => 'The domain already exists.', + ], + ], + [ + 'apiName' => 'QueryShareTaskDeviceList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryShareTaskDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Host\\": \\"www.aliyun.test.com\\",\\n \\"Protocol\\": \\"https\\",\\n \\"AppId\\": \\"a12******\\",\\n \\"ProjectId\\": \\"a12*******\\",\\n \\"IsBeian\\": \\"YES\\",\\n \\"Id\\": 1573,\\n \\"TenantId\\": \\"C70B541046F64EAABE3*******\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n C70B541046F64EAABE3*******\\n a12******\\n a12*******\\n www.aliyun.test.com\\n 1573\\n https\\n YES\\n \\n true\\n ","errorExample":""}]', - 'title' => 'CreateStudioAppDomainOpen', - 'summary' => '调用该接口为应用添加域名。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'SetupStudioAppAuthModeOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'QueryLoRaJoinPermissions', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryLoRaJoinPermissions', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QuerySoundCodeLabelBatchList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelBatchList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateSoundCodeSchedule', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'CreateDeviceDynamicGroup', + 'description' => '', 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceDynamicGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'DeleteTopicRouteTable', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteTopicRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12*****', + ], + [ + 'apiName' => 'BatchSetEdgeInstanceDeviceChannel', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchSetEdgeInstanceDeviceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AuthMode', - 'in' => 'formData', - 'schema' => [ - 'description' => '鉴权模式。取值:'."\n" - .'- **0**:不鉴权。'."\n" - .'- **1**:Token。'."\n" - .'- **2**:账号。', - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'example' => '1', - 'enum' => [ - '0', - '1', - '2', - ], + ], + [ + 'apiName' => 'UpdateSoundCodeLabel', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123********', + ], + [ + 'apiName' => 'QueryProductTopic', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => '应用数据。', - 'type' => 'object', - 'properties' => [ - 'AuthMode' => [ - 'description' => '鉴权模式。', - 'type' => 'integer', - 'format' => 'int32', - 'example' => '1', - ], - 'TokenInfo' => [ - 'description' => 'Token信息。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'Token类型。', - 'type' => 'string', - 'example' => 'custom', - ], - 'IsEnable' => [ - 'description' => '是否启用Token。'."\n" - .'- **YES**:是。'."\n" - .'- **NO**:否。', - 'type' => 'string', - 'example' => 'YES', - ], - 'BizId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a12********', - ], - 'Token' => [ - 'description' => 'Token值。', - 'type' => 'string', - 'example' => '25bf576a6c6f**********', - ], - 'BizType' => [ - 'description' => '应用类型。', - 'type' => 'string', - 'example' => 'webApp', - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'QuerySpeechList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"AuthMode\\": 1,\\n \\"TokenInfo\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12********\\",\\n \\"Token\\": \\"25bf576a6c6f**********\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n 1\\n \\n YES\\n custom\\n 25bf576a6c6f**********\\n webApp\\n a12********\\n \\n \\n true\\n","errorExample":""}]', - 'title' => 'SetupStudioAppAuthModeOpen', - 'summary' => '调用该接口设置应用鉴权模式。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'GetStudioAppTokenOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'QueryJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'GetRuleAction', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'BatchCreateSoundCodeLabelWithLabels', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchCreateSoundCodeLabelWithLabels', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'get', + [ + 'apiName' => 'ListPowerStation', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ListPowerStation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'DeleteProduct', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'CreateOTAFirmware', + 'description' => 'CreateOTAFirmware', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123*******', + ], + [ + 'apiName' => 'DeleteDestination', + 'description' => 'DeleteDestination', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => 'Token数据。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'Token类型。', - 'type' => 'string', - 'example' => 'custom', - ], - 'IsEnable' => [ - 'description' => '是否启用Token。'."\n" - .'- **YES**:是。'."\n" - .'- **NO**:否。', - 'type' => 'string', - 'example' => 'YES', - ], - 'BizId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a12*******', - ], - 'Token' => [ - 'description' => 'Token值。', - 'type' => 'string', - 'example' => '25bf576a6c*******', - ], - 'BizType' => [ - 'description' => '应用类型。', - 'type' => 'string', - 'example' => 'webApp', - ], - ], - ], - ], + [ + 'apiName' => 'QueryDeviceListByDeviceGroup', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceListByDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'IoT.Common.NullParameter', - 'errorMessage' => 'Parameter cannot be empty.', + [ + 'apiName' => 'QueryCertUrlByApplyId', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryCertUrlByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12*******\\",\\n \\"Token\\": \\"25bf576a6c*******\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n YES\\n custom\\n 25bf576a6c*******\\n webApp\\n a12*******\\n \\n true\\n ","errorExample":""}]', - 'title' => 'GetStudioAppTokenOpen', - 'summary' => '调用该接口查询应用鉴权Token。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'RefreshStudioAppTokenOpen' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateConsumerGroupSubscribeRelation', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateConsumerGroupSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ListThingTemplates', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListThingTemplates', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'BatchBindDeviceToEdgeInstanceWithDriver', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchBindDeviceToEdgeInstanceWithDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ - 'operationType' => 'update', + [ + 'apiName' => 'BatchRegisterDevice', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchRegisterDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + [ + 'apiName' => 'QueryEdgeDriver', + 'description' => 'QueryEdgeDriver', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12******', + ], + [ + 'apiName' => 'BindSceneRuleToEdgeInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindSceneRuleToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123*******', + ], + [ + 'apiName' => 'GetThingModelTslPublished', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingModelTslPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'Data' => [ - 'description' => 'Token数据。', - 'type' => 'object', - 'properties' => [ - 'Type' => [ - 'description' => 'Token类型。', - 'type' => 'string', - 'example' => 'custom', - ], - 'IsEnable' => [ - 'description' => '是否启用Token。'."\n" - .'- **YES**:是。'."\n" - .'- **NO**:否。', - 'type' => 'string', - 'example' => 'YES', - ], - 'BizId' => [ - 'description' => '应用ID。', - 'type' => 'string', - 'example' => 'a12*******', - ], - 'Token' => [ - 'description' => 'Token值。', - 'type' => 'string', - 'example' => 'cf245ddebd******', - ], - 'BizType' => [ - 'description' => '应用类型。', - 'type' => 'string', - 'example' => 'webApp', - ], - ], - ], - ], + [ + 'apiName' => 'GetSceneRule', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateEdgeDriverVersion', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 200 => [ - [ - 'errorCode' => 'Studio.App.Token.AppHaveNoToken', - 'errorMessage' => 'The application does not have any token.', + [ + 'apiName' => 'CheckBindLicenseDeviceProgress', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CheckBindLicenseDeviceProgress', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Studio.App.Token.AppTokenNotActive', - 'errorMessage' => 'The application token is not active.', + ], + ], + [ + 'apiName' => 'DisableDeviceTunnel', + 'description' => 'DisableDeviceTunnel', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DisableDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true,\\n \\"Data\\": {\\n \\"Type\\": \\"custom\\",\\n \\"IsEnable\\": \\"YES\\",\\n \\"BizId\\": \\"a12*******\\",\\n \\"Token\\": \\"cf245ddebd******\\",\\n \\"BizType\\": \\"webApp\\"\\n }\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n \\n YES\\n custom\\n cf245ddebd******\\n webApp\\n a12*******\\n \\n true\\n ","errorExample":""}]', - 'title' => 'RefreshStudioAppTokenOpen', - 'summary' => '调用该接口刷新应用鉴权Token。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为5。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => ' 调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'PublishStudioApp' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'UpdateOTAModule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QuerySoundCodeLabelList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetDeviceTunnelShareStatus', + 'description' => 'GetDeviceTunnelShareStatus', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceTunnelShareStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [ + [ + 'apiName' => 'EnableDeviceTunnelShare', + 'description' => 'EnableDeviceTunnelShare', 'operationType' => 'create', - ], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'formData', - 'schema' => [ - 'description' => '实例ID。'."\n" - ."\n" - .'您可在物联网平台控制台的**实例概览**页面,查看当前实例的**ID**。若有ID值,必须传入该ID值,否则调用会失败。'."\n" - ."\n" - .''."\n" - .'> 如果公共实例没有ID值,请参见[如何获取实例ID](~~267533~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot_instc_pu****_c*-v64********', + 'ramAction' => [ + 'action' => 'iot:EnableDeviceTunnelShare', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AppId', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用ID。可调用[QueryStudioAppList](~~216816~~)查询。', - 'type' => 'string', - 'required' => true, - 'example' => 'a12*******', + ], + [ + 'apiName' => 'BatchCheckImportDevice', + 'description' => '批量校验导入的设备', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchCheckImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'formData', - 'schema' => [ - 'description' => '应用发布描述。', - 'type' => 'string', - 'required' => false, - 'example' => '第一次发布', + ], + [ + 'apiName' => 'GetThingTemplate', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProjectId', - 'in' => 'formData', - 'schema' => [ - 'description' => '项目ID。'."\n" - .'1. 您可登录[物联网应用开发控制台](https://account.aliyun.com/login/login.htm?qrCodeFirst=false&oauth_callback=https%3A%2F%2Fstudio.iot.aliyun.com%2F%3Fspm%3Da2c4g.11186623.2.8.1e7830fagdybMb),在页面左上角选择对应实例后,在左侧导航栏单击项目管理。'."\n" - .'2. 在普通项目列表中,找到目标项目,单击项目卡片,在地址栏中查看。', - 'type' => 'string', - 'required' => true, - 'example' => 'a123******', + ], + [ + 'apiName' => 'GetEdgeInstance', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用失败时,返回的错误码。错误码详情,请参见[错误码](~~202245~~)。', - 'type' => 'string', - 'example' => 'iot.system.SystemException', - ], - 'Data' => [ - 'description' => '调用成功时,返回该参数,值为true。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => '系统异常', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - ], + [ + 'apiName' => 'DisableDeviceTunnelShare', + 'description' => 'DisableDeviceTunnelShare', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DisableDeviceTunnelShare', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"iot.system.SystemException\\",\\n \\"Data\\": true,\\n \\"ErrorMessage\\": \\"系统异常\\",\\n \\"RequestId\\": \\"E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\",\\n \\"Success\\": true\\n}","errorExample":""},{"type":"xml","example":" \\n E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565\\n true\\n true\\n ","errorExample":""}]', - 'title' => 'PublishStudioApp', - 'summary' => '调用该接口发布应用。', - 'description' => '## 限制说明'."\n" - .'单阿里云账号调用该接口的每秒请求数(QPS)最大限制为1。'."\n" - .'> RAM用户共享阿里云账号配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数文档](~~203277~~)。 ', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - 'TestSwitch' => [ - 'methods' => [ - 'post', - 'get', - ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'RetrySoundCodeLabelBatch', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:RetrySoundCodeLabelBatch', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'DeleteJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + [ + 'apiName' => 'QueryImportedDeviceByApplyId', + 'description' => '查询批量导入的设备列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryImportedDeviceByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'DeleteDeviceTunnel', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'UpdateTopicConfig', + 'description' => 'UpdateTopicConfig', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'IotId' => [ - 'type' => 'string', - ], - ], + [ + 'apiName' => 'DeleteDeviceDistributeJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.check.InvalidFormattedParameter', - 'errorMessage' => 'The parameter format is invalid.', + [ + 'apiName' => 'BatchGrayMigrationDevice', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchGrayMigrationDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.prod.NullProductKey', - 'errorMessage' => 'The ProductKey parameter cannot be empty.', + ], + ], + [ + 'apiName' => 'CreateProductTags', + 'description' => 'CreateProductTags', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.device.NullDeviceName', - 'errorMessage' => 'The DeviceName parameter cannot be empty.', + ], + ], + [ + 'apiName' => 'BatchGetDeviceBindStatus', + 'description' => '批量获取网关或设备绑定到边缘实例的状态', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetDeviceBindStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'CreateTopicConfig' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'GenerateDeviceNameListURL', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:GenerateDeviceNameListURL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateStudioAppDomainOpen', + 'description' => 'CreateStudioAppDomainOpen', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateStudioAppDomainOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'BindApplicationToEdgeInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindApplicationToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + [ + 'apiName' => 'BatchGetEdgeInstanceDeviceDriver', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'DeleteConsumerGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryTopicReverseRouteTable', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTopicReverseRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EnableBroadcast', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, + ], + [ + 'apiName' => 'DeleteStudioAppDomainOpen', + 'description' => 'DeleteStudioAppDomainOpen', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteStudioAppDomainOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'EnableProxySubscribe', - 'in' => 'query', - 'schema' => [ - 'type' => 'boolean', - 'required' => false, + ], + [ + 'apiName' => 'BatchAddThingTopo', + 'description' => 'BatchAddThingTopo', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchAddThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Codec', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'ListParserDestination', + 'description' => 'ListParserDestination', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParserDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Operation', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'CreateProductDistributeJob', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TopicFullName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'BatchGetEdgeInstanceDeviceChannel', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'DeleteDataSourceItem', + 'description' => 'DeleteDataSourceItem', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.message.broker.ParamCheckError', - 'errorMessage' => 'Param check error.', + [ + 'apiName' => 'ListDistributedProduct', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDistributedProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.ProductCheckError', - 'errorMessage' => 'Product check error.', + ], + ], + [ + 'apiName' => 'BindDriverToEdgeInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindDriverToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.SystemError', - 'errorMessage' => 'System error.', + ], + ], + [ + 'apiName' => 'SetDeviceProperty', + 'description' => '为指定设备设置属性值', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidPubTopicFormat', - 'errorMessage' => 'The pub topic cannot contain wildcard character.', + ], + ], + [ + 'apiName' => 'BatchGetDeviceState', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetDeviceState', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidOperationWithBroadcast', - 'errorMessage' => 'The operation must be sub when enable broadcast.', + ], + ], + [ + 'apiName' => 'DeleteDeviceFile', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithBroadcast', - 'errorMessage' => 'The topic cannot contain wildcard character when enable broadcast.', + ], + ], + [ + 'apiName' => 'GetGatewayBySubDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetGatewayBySubDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidOperationWithProxySubscribe', - 'errorMessage' => 'Operation must be sub or all when enable proxy subscribe.', + ], + ], + [ + 'apiName' => 'DeleteSubscribeRelation', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithProxySubscribe', - 'errorMessage' => 'Topic cannot contain wildcard character when enable proxy subscribe.', + ], + ], + [ + 'apiName' => 'ListDataSourceItem', + 'description' => 'ListDataSourceItem', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDataSourceItem', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidTopicWithCodec', - 'errorMessage' => 'Topic cannot contain wildcard when enable codec.', + ], + ], + [ + 'apiName' => 'UpdateSceneRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.messagebroker.InvalidInstanceWithCodec', - 'errorMessage' => 'Only connect instance support codec.', + ], + ], + [ + 'apiName' => 'QueryDeviceDistributeDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDistributeDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'DeleteTopicConfig' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'InvokeThingService', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:InvokeThingService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteDevice', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QuerySummarySceneRuleLog', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySummarySceneRuleLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + [ + 'apiName' => 'GetSpeechVoice', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetSpeechVoice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'PrintByTemplate', + 'description' => 'PrintByTemplate', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PrintByTemplate', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TopicFullName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryDeviceInfo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'CreateSharePromotionSpeechModel', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSharePromotionSpeechModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.message.broker.ParamCheckError', - 'errorMessage' => 'Param check error.', + [ + 'apiName' => 'QueryDeviceGroupList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.ProductCheckError', - 'errorMessage' => 'Product check error.', + ], + ], + [ + 'apiName' => 'DisableSceneRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:DisableSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.SystemError', - 'errorMessage' => 'System error.', + ], + ], + [ + 'apiName' => 'UpdateSoundCode', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'QueryTopicConfig' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'BatchCheckDeviceNames', + 'description' => 'BatchCheckDeviceNames', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchCheckDeviceNames', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QueryOTAJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryOTAJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AddDataForApiSource', + 'description' => 'AddDataForApiSource', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:AddDataForApiSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + [ + 'apiName' => 'QuerySpeechDevice', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryThingModelExtendConfigPublished', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelExtendConfigPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Data' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'TopicConfigInfo' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'TopicFullName' => [ - 'type' => 'string', - ], - 'Operation' => [ - 'type' => 'string', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'Description' => [ - 'type' => 'string', - ], - 'Codec' => [ - 'type' => 'string', - ], - 'EnableBroadcast' => [ - 'type' => 'boolean', - ], - 'EnableProxySubscribe' => [ - 'type' => 'boolean', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'ImportDTData', + 'description' => 'ImportDTData', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ImportDTData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.message.broker.ParamCheckError', - 'errorMessage' => 'Param check error.', + [ + 'apiName' => 'CopyThingModel', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CopyThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.ProductCheckError', - 'errorMessage' => 'Product check error.', + ], + ], + [ + 'apiName' => 'BatchUnbindDeviceFromEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:BatchUnbindDeviceFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.message.broker.SystemError', - 'errorMessage' => 'System error.', + ], + ], + [ + 'apiName' => 'DeleteSoundCodeSchedule', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'DeleteUserDefineTableDataByPrimaryKey' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CancelOTATaskByDevice', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelOTATaskByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'CreateParser', + 'description' => 'CreateParser', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CreateSchedulePeriod', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'UpdateDeviceGroup', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TableIdentifier', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'CancelJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Conditions', - 'in' => 'query', - 'style' => 'json', - 'schema' => [ - 'type' => 'object', - 'required' => true, + ], + [ + 'apiName' => 'StartParser', + 'description' => 'StartParser', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:StartParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'CreateOTAStaticUpgradeJob', + 'description' => 'CreateOTAStaticUpgradeJob', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAStaticUpgradeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'ReleaseProduct', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ReleaseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'PubBroadcast', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:PubBroadcast', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.dataStoreTableHasNotBeenInit', - 'errorMessage' => 'data store table has not been init.', + ], + ], + [ + 'apiName' => 'DeleteClientIds', + 'description' => 'DeleteClientIds', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteClientIds', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.mustSetAtLeastOnePrimaryKey', - 'errorMessage' => 'Set at least one primary key.', + ], + ], + [ + 'apiName' => 'QueryThingModelPublished', + 'description' => 'QueryThingModelPublished', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryThingModelPublished', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'CreateOTAVerifyJob', + 'description' => 'CreateOTAVerifyJob', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTAVerifyJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'AddPowerStation' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateSoundCode', + 'description' => 'CreateSoundCode', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteDeviceProp', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceProp', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListOTAModuleByProduct', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAModuleByProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'DeleteSoundCode', + 'description' => 'DeleteSoundCode', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCode', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AlgorithmInstanceUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryDetailSceneRuleLog', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDetailSceneRuleLog', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'GetDeviceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'ResetDeviceTimeline', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ResetDeviceTimeline', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RatedPower', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, + ], + [ + 'apiName' => 'ListOTAJobByFirmware', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAJobByFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'QueryDeviceFileList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceFileList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'UpdateEdgeInstanceMessageRouting', + 'description' => 'UpdateEdgeInstanceMessageRouting', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'TestSpeech', + 'description' => 'TestSpeech', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:TestSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.exceedSubscribeNumber', - 'errorMessage' => 'Exceed subscribe number.', + ], + ], + [ + 'apiName' => 'CountSpeechBroadcastHour', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CountSpeechBroadcastHour', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'QueryDeviceDesiredProperty', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'DeletePowerStation' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'PushSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PushSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QueryDeviceStatistics', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryDynamicGroupDevices', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDynamicGroupDevices', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'UnbindSceneRuleFromEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindSceneRuleFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AlgorithmInstanceUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryTopicConfig', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'CreateDataAPIService', + 'description' => 'CreateDataAPIService', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDataAPIService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'RemoveThingTopo', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RemoveThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'UpdateThingModel', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'QueryEdgeInstanceChannel', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'BatchGetEdgeInstanceDeviceConfig', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDeviceConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'ListPowerStation' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateParserDataSource', + 'description' => 'CreateParserDataSource', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'RRpc', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:RRpc', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'UpdateSchedulePeriod', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSchedulePeriod', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'ReleaseEdgeDriverVersion', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ReleaseEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AlgorithmInstanceUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'GetLoraNodesTask', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetLoraNodesTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'QueryDeviceOriginalPropertyStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceOriginalPropertyStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageNo', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '999999999999', - 'minimum' => '1', + ], + [ + 'apiName' => 'DeleteParserDataSource', + 'description' => 'DeleteParserDataSource', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PageSize', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '100', - 'minimum' => '1', + ], + [ + 'apiName' => 'UpdateSubscribeRelation', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - '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', - ], - 'DataList' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'PowerStationUid' => [ - 'type' => 'string', - ], - 'RatedPower' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'AlgoInstanceUid' => [ - 'type' => 'string', - ], - 'Description' => [ - 'type' => 'string', - ], - 'Name' => [ - 'type' => 'string', - ], - ], - ], - ], - ], - ], - ], + [ + 'apiName' => 'SetDeviceGroupTags', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceGroupTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'SaveScript', + 'description' => 'SaveScript', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SaveScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'DeleteSceneRule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'DeleteProductTags', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'ModifyPowerStation' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'DeleteSoundCodeLabel', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UpdateDestination', + 'description' => 'UpdateDestination', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CloseDeviceTunnel', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CloseDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'GetDeviceShadow', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDeviceShadow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AlgorithmInstanceUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'UpdateSoundCodeSchedule', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSoundCodeSchedule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'InvokeDataAPIService', + 'description' => 'InvokeDataAPIService', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:InvokeDataAPIService', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'QuerySpeechLicenseAvailableQuota', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechLicenseAvailableQuota', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'CreateRuleAction', + 'description' => 'CreateRuleAction', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'RatedPower', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, + ], + [ + 'apiName' => 'ResetThing', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ResetThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'TestSwitch', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:TestSwitch', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'DeleteEdgeDriver', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'GetDataAPIServiceDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDataAPIServiceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'CreateDeviceTunnel', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceTunnel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'StartPTDetection' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QueryDeviceProvisioning', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceProvisioning', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'CloseEdgeInstanceDeployment', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CloseEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'StartPTDetection', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:StartPTDetection', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerStationUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'UpdateParser', + 'description' => 'UpdateParser', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'FileName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'ListOTAModuleVersionsByDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAModuleVersionsByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'PowerPlantsNumber', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, + ], + [ + 'apiName' => 'AttachDestination', + 'description' => 'AttachDestination', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:AttachDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Data', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'GetEdgeInstanceMessageRouting', + 'description' => '查询边缘实例中消息路由的详细信息', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DataCollectionTime', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int64', - 'required' => true, + ], + [ + 'apiName' => 'QueryEdgeInstanceMessageRouting', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'AlgorithmInstanceUid', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryEdgeInstanceDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Sensitivity', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, + ], + [ + 'apiName' => 'QueryLicenseDeviceList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryLicenseDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'Status' => [ - 'type' => 'string', - ], - 'InputData' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'string', - ], - 'ErrMsg' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], - ], - ], + [ + 'apiName' => 'QueryDeviceGroupTagList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupTagList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'unknown exception.', + [ + 'apiName' => 'QuerySoundCodeLabelBatchFailedResult', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeLabelBatchFailedResult', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'GetThingTopo', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.datetimeNotMatch', - 'errorMessage' => 'The acquisition time does not match the data time.', + ], + ], + [ + 'apiName' => 'DeleteConsumerGroupSubscribeRelation', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteConsumerGroupSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.needDetectionData', - 'errorMessage' => 'Detection data is required.', + ], + ], + [ + 'apiName' => 'SetStudioProjectCooperation', + 'description' => 'SetStudioProjectCooperation', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SetStudioProjectCooperation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.parsedDataError', - 'errorMessage' => 'Failed to parse data.', + ], + ], + [ + 'apiName' => 'CreateSubscribeRelation', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateSubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.frozen', - 'errorMessage' => 'The algorithm instance has been frozen. please renew.', + ], + ], + [ + 'apiName' => 'GetParserDataSource', + 'description' => 'GetParserDataSource', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 500 => [ - [ - 'errorCode' => 'iot.dap.insight.bizExceptionNotSpecified', - 'errorMessage' => 'biz exception not specified.', + ], + [ + 'apiName' => 'DeleteParser', + 'description' => 'DeleteParser', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'UpdateOTAJob' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'GetShareTaskByDeviceOpen', + 'description' => 'GetShareTaskByDeviceOpen', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetShareTaskByDeviceOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'DeleteThingModel', + 'description' => '删除指定产品下物模型中的指定功能', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteThingModel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'GetThingModelTsl', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingModelTsl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'MaximumPerMinute', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => true, - 'maximum' => '10000', - 'minimum' => '10', + [ + 'apiName' => 'DetachDestination', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DetachDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'JobId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'AddPowerStation', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:AddPowerStation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'UpgradeType', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'UpdateRuleAction', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateRuleAction', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TimeoutInMinutes', - 'in' => 'query', - 'schema' => [ - 'type' => 'integer', - 'format' => 'int32', - 'required' => false, + ], + [ + 'apiName' => 'CreateDeviceDistributeJob', + 'description' => 'CreateDeviceDistributeJob', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TargetSelection', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QuerySoundCodeList', + 'description' => 'QuerySoundCodeList', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'StartRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:StartRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SrcVersionList', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => false, - 'maxItems' => 30, + ], + [ + 'apiName' => 'UpdateSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Tags', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'type' => 'array', - 'items' => [ - 'type' => 'object', - 'properties' => [ - 'Key' => [ - 'type' => 'string', - 'required' => true, - ], - 'Value' => [ - 'type' => 'string', - 'required' => true, - ], - ], - ], - 'required' => false, - 'maxItems' => 10, + ], + [ + 'apiName' => 'QuerySolutionDeviceGroupPage', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySolutionDeviceGroupPage', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'RerunJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RerunJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.ota.FirmwareNotFound', - 'errorMessage' => 'The specified firmware does not exist.', + [ + 'apiName' => 'DeleteEdgeInstanceMessageRouting', + 'description' => 'DeleteEdgeInstanceMessageRouting', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'CreateConsumerGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateConsumerGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'SetProductCertInfo', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetProductCertInfo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.StrategyNotFound', - 'errorMessage' => 'The specified strategy does not exist.', + ], + ], + [ + 'apiName' => 'QueryOTAFirmware', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.noDynamicJob', - 'errorMessage' => 'Task is not dynamic.', + ], + ], + [ + 'apiName' => 'QueryPageByApplyId', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryPageByApplyId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidBaseSpeedPerMinute', - 'errorMessage' => 'Invalid baseSpeedPerMinute.', + ], + ], + [ + 'apiName' => 'BindRoleToEdgeInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BindRoleToEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidIncrementFactor', - 'errorMessage' => 'Invalid incrementFactor.', + ], + ], + [ + 'apiName' => 'QueryConsumerGroupList', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidExponentialRateParameter', - 'errorMessage' => 'Invalid exponential rate parameter.', + ], + ], + [ + 'apiName' => 'ListProductTags', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidMaximumPerMinute', - 'errorMessage' => 'Invalid MaximumPerMinute.', + ], + ], + [ + 'apiName' => 'QueryConsumerGroupStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidUpgradeType', - 'errorMessage' => 'Invalid upgrade type.', + ], + ], + [ + 'apiName' => 'GetEdgeDriverVersion', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.OperationForbidden', - 'errorMessage' => 'This operation is forbidden by the tenantId.', + ], + ], + [ + 'apiName' => 'PublishThingModelAsync', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PublishThingModelAsync', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidTimeout', - 'errorMessage' => 'Parameter TimeoutInMinutes is invalid.', + ], + ], + [ + 'apiName' => 'GetDownloadFile', + 'description' => 'GetDownloadFile', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDownloadFile', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidStrategyType', - 'errorMessage' => 'Invalid strategy type.', + ], + ], + [ + 'apiName' => 'ModifyPowerStation', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:ModifyPowerStation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.JobHasFinished', - 'errorMessage' => 'The job has finished.', + ], + ], + [ + 'apiName' => 'ResetConsumerGroupPosition', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ResetConsumerGroupPosition', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.JobHasCanceled', - 'errorMessage' => 'The job has canceled.', + ], + ], + [ + 'apiName' => 'ListParser', + 'description' => 'ListParser', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.taskNotExist', - 'errorMessage' => 'Task is not existed.', + ], + ], + [ + 'apiName' => 'UpdateProductTopic', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.JobTagIsTooLong', - 'errorMessage' => 'The tags of job exceed the maximum number of characters.', + ], + ], + [ + 'apiName' => 'SubscribeTopic', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:SubscribeTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InstanceIdMisMatch', - 'errorMessage' => 'The instanceId is invalid.', + ], + ], + [ + 'apiName' => 'CreateEdgeInstanceChannel', + 'description' => 'CreateEdgeInstanceChannel', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidBaseRatePerMinute', - 'errorMessage' => 'Parameter BaseRatePerMinute is invalid.', + ], + ], + [ + 'apiName' => 'ReplaceEdgeInstanceGateway', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ReplaceEdgeInstanceGateway', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidSrcVersionList', - 'errorMessage' => 'Parameter SrcVersionList does not support by group upgrade.', + ], + ], + [ + 'apiName' => 'CreateProductTopic', + 'description' => 'CreateProductTopic', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateProductTopic', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.EmptySrcVersionList', - 'errorMessage' => 'Parameter SrcVersionList is empty.', + ], + ], + [ + 'apiName' => 'CancelReleaseProduct', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CancelReleaseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidConstantSpeedParameter', - 'errorMessage' => 'The parameter of constant speed is invalid.', + ], + ], + [ + 'apiName' => 'BatchBindProductsIntoProject', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchBindProductsIntoProject', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.EmptyNumberOfNotifiedDevicesAndNumberOfSucceedDevices', - 'errorMessage' => 'Both of NumberOfNotifiedDevices and NumberOfSucceedDevices are empty.', + ], + ], + [ + 'apiName' => 'ListDistributedDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDistributedDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.ota.InvalidNumberOfNotifiedDevicesOrNumberOfSucceedDevices', - 'errorMessage' => 'One of NumberOfNotifiedDevices and NumberOfSucceedDevices is invalid.', + ], + ], + [ + 'apiName' => 'DisableThing', + 'description' => '禁用指定设备', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:DisableThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'QueryCustomTimelineTableStatus' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'ModifyOTAFirmware', + 'description' => 'ModifyOTAFirmware', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:ModifyOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'UpdateDeviceShadow', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateDeviceShadow', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QuerySubscribeRelation', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QuerySubscribeRelation', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'CreateEdgeInstanceDeployment', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceDeployment', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'TableName', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryJobStatistics', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryJobStatistics', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'ResultJson' => [ - 'type' => 'string', - ], - 'PageNum' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'PageSize' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Count' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'HasNext' => [ - 'type' => 'boolean', - ], - ], - ], - ], + [ + 'apiName' => 'UpdateParserDataSource', + 'description' => '更新解析器的数据源', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'iot.dap.insight.noAuthorization', - 'errorMessage' => 'no authorization.', + [ + 'apiName' => 'DeleteSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.requestParamError', - 'errorMessage' => 'request param error.', + ], + ], + [ + 'apiName' => 'UpdateEdgeInstanceChannel', + 'description' => 'UpdateEdgeInstanceChannel', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.dap.insight.unknownException', - 'errorMessage' => 'System error. Please submit a ticket.', + ], + ], + [ + 'apiName' => 'GetDestination', + 'description' => 'GetDestination', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'CopyThingModelAsync' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'TransformClientId', + 'description' => 'TransformClientId', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:TransformClientId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'BatchCreateSoundCodeLabel', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BatchCreateSoundCodeLabel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'AttachParserDataSource', + 'description' => 'AttachParserDataSource', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:AttachParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'TargetProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'BatchGetEdgeInstanceChannel', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceChannel', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'CreateEdgeDriverVersion', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SourceModelVersion', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'SetDevicesProperty', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDevicesProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'SourceProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QuerySoundCodeScheduleList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySoundCodeScheduleList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'string', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'SetDeviceDesiredProperty', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:SetDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'UpdateOTAJob', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:UpdateOTAJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'QueryCustomTimelineTableStatus', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryCustomTimelineTableStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GetThingModelStatusInner', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GetThingModelStatusInner', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'QuerySchedulePeriodList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySchedulePeriodList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'GisSearchDeviceTrace', + 'description' => '查询设备轨迹详情', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:GisSearchDeviceTrace', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], + ], + [ + 'apiName' => 'QueryDeviceCert', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceCert', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Request.param.error', - 'errorMessage' => 'Request.param.error. %s.', + [ + 'apiName' => 'CreateDeviceGroup', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.Key.Invalid', - 'errorMessage' => 'Product key is invalid.', + ], + ], + [ + 'apiName' => 'QueryDeviceGroupByTags', + 'description' => 'QueryDeviceGroupByTags', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.not.found', - 'errorMessage' => 'Product.not.found.', + ], + ], + [ + 'apiName' => 'ListAnalyticsData', + 'description' => 'ListAnalyticsData', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListAnalyticsData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Distribute.thing.module.no.edit', - 'errorMessage' => 'Distribute.thing.module.no.edit.', + ], + ], + [ + 'apiName' => 'UnbindRoleFromEdgeInstance', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:UnbindRoleFromEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Get.Lock.Failed', - 'errorMessage' => 'The thing model get lock failed. Please try again later.', + ], + ], + [ + 'apiName' => 'QueryDevicesHotStorageData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicesHotStorageData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.authright.illegal', - 'errorMessage' => 'Product authRight illegal.', + ], + ], + [ + 'apiName' => 'DeleteDeviceDynamicGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceDynamicGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.model.not.found', - 'errorMessage' => 'The thing model is not existed.', + ], + ], + [ + 'apiName' => 'QueryVehicleDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryVehicleDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Server.error', - 'errorMessage' => 'Server error.', + ], + ], + [ + 'apiName' => 'UpdateProductFilterConfig', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductFilterConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Status.Not.Final', - 'errorMessage' => 'The thing model may be importing or copying or publishing. Please wait for the final status.', + ], + ], + [ + 'apiName' => 'RefreshDeviceTunnelSharePassword', + 'description' => 'RefreshDeviceTunnelSharePassword', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:RefreshDeviceTunnelSharePassword', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.has.published', - 'errorMessage' => 'Product has published.', + ], + ], + [ + 'apiName' => 'UpdateEdgeInstance', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Category.not.same', - 'errorMessage' => 'Category must be the same.', + ], + ], + [ + 'apiName' => 'CancelOTAStrategyByJob', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:CancelOTAStrategyByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'GetThingModelStatusInner' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'EnableThing', + 'description' => '启用指定设备', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:EnableThing', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'QueryDeviceSpeech', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryEdgeInstanceDriver', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeInstanceDriver', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'InsId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'CreateOTADynamicUpgradeJob', + 'description' => 'CreateOTADynamicUpgradeJob', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateOTADynamicUpgradeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'QueryDevicePropertyStatus', + 'description' => '查询指定设备的属性快照', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertyStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'ClearDeviceDesiredProperty', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:ClearDeviceDesiredProperty', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'LocalizedMsg' => [ - 'type' => 'string', - ], - 'Data' => [ - 'type' => 'object', - 'properties' => [ - 'RbacTenantId' => [ - 'type' => 'string', - ], - 'Status' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ProductKey' => [ - 'type' => 'string', - ], - 'ModifiedTime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'OutTime' => [ - 'type' => 'integer', - 'format' => 'int64', - ], - 'InstanceId' => [ - 'type' => 'string', - ], - 'Info' => [ - 'type' => 'string', - ], - ], - ], - ], + [ + 'apiName' => 'Pub', + 'description' => 'Pub', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:Pub', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Request.param.error', - 'errorMessage' => 'Request.param.error. %d.', + [ + 'apiName' => 'QueryBatchRegisterDeviceStatus', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryBatchRegisterDeviceStatus', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.not.found', - 'errorMessage' => 'Product.not.found.', + ], + ], + [ + 'apiName' => 'ListTask', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListTask', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.Key.Invalid', - 'errorMessage' => 'Product key is invalid.', + ], + ], + [ + 'apiName' => 'ListOTATaskByJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTATaskByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'PublishThingModelAsync' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'StopParser', + 'description' => 'StopParser', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:StopParser', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'ListThingModelVersion', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListThingModelVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryDevicePropertiesData', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDevicePropertiesData', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + [ + 'apiName' => 'ListDestination', + 'description' => 'ListDestination', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListDestination', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Description', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'QueryTopicRouteTable', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryTopicRouteTable', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'PageQuerySharedSpeechOpen', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PageQuerySharedSpeechOpen', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ThingModelVersion', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'BatchUpdateDeviceNickname', + 'description' => 'BatchUpdateDeviceNickname', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:BatchUpdateDeviceNickname', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'ErrorMessage' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'Success' => [ - 'type' => 'boolean', - ], - ], + [ + 'apiName' => 'DetachParserDataSource', + 'description' => 'DetachParserDataSource', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DetachParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Product.Key.Invalid', - 'errorMessage' => 'Product key is invalid.', + [ + 'apiName' => 'DeleteDeviceGroup', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceGroup', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.not.found', - 'errorMessage' => 'Product.not.found.', + ], + ], + [ + 'apiName' => 'BindLicenseProduct', + 'description' => '为指定产品授权License', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BindLicenseProduct', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Distribute.thing.module.no.edit', - 'errorMessage' => 'Distribute.thing.module.no.edit.', + ], + ], + [ + 'apiName' => 'ImportThingModelTsl', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ImportThingModelTsl', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Get.Lock.Failed', - 'errorMessage' => 'The thing model get lock failed. Please try again later.', + ], + ], + [ + 'apiName' => 'BatchGetEdgeInstanceDriverConfigs', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:BatchGetEdgeInstanceDriverConfigs', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Server.error', - 'errorMessage' => 'Server error.', + ], + ], + [ + 'apiName' => 'ListJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Request.param.error', - 'errorMessage' => 'Request.param.error. %s.', + ], + ], + [ + 'apiName' => 'QueryStudioProjectList', + 'description' => 'QueryStudioProjectList', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryStudioProjectList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Version.Invalid', - 'errorMessage' => 'The thing model version is not valid.', + ], + ], + [ + 'apiName' => 'ImportDevice', + 'description' => 'MQTT云网关产品下单个导入设备', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:ImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Status.Not.Final', - 'errorMessage' => 'The thing model may be importing or copying or publishing. Please wait for the final status.', + ], + ], + [ + 'apiName' => 'GetThingScript', + 'description' => '查询指定产品的数据解析脚本', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetThingScript', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.has.published', - 'errorMessage' => 'Product has published.', + ], + ], + [ + 'apiName' => 'ListParserDataSource', + 'description' => '查询解析器数据源列表', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListParserDataSource', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'PublishThingModelAsyncInner' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'UpdateJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'BatchImportDevice', + 'description' => '在MQTT云网关产品下批量导入设备', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:BatchImportDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'ListOTAFirmware', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:ListOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'parameters' => [ - [ - 'name' => 'InsId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + [ + 'apiName' => 'QueryDeviceGroupByDevice', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceGroupByDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => true, + ], + [ + 'apiName' => 'BindLicenseDevice', + 'description' => '为指定产品下设备授权License', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:BindLicenseDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'type' => 'string', - 'required' => false, + ], + [ + 'apiName' => 'GetRule', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:GetRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'type' => 'integer', - 'format' => 'int32', - ], - 'Message' => [ - 'type' => 'string', - ], - 'RequestId' => [ - 'type' => 'string', - ], - 'LocalizedMsg' => [ - 'type' => 'string', - ], - ], + [ + 'apiName' => 'CreateEdgeInstanceMessageRouting', + 'description' => 'CreateEdgeInstanceMessageRouting', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstanceMessageRouting', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Request.param.error', - 'errorMessage' => 'Request.param.error. %d.', + [ + 'apiName' => 'QueryEdgeDriverVersion', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryEdgeDriverVersion', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.Key.Invalid', - 'errorMessage' => 'Product key is invalid.', + ], + ], + [ + 'apiName' => 'PackageSoundCodeLabelBatchAudio', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:PackageSoundCodeLabelBatchAudio', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.not.found', - 'errorMessage' => 'Product.not.found.', + ], + ], + [ + 'apiName' => 'BatchSetEdgeInstanceDeviceConfig', + 'description' => 'BatchSetEdgeInstanceDeviceConfig', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:BatchSetEdgeInstanceDeviceConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Product.has.published', - 'errorMessage' => 'Product has published.', + ], + ], + [ + 'apiName' => 'QueryDeviceByTags', + 'description' => 'QueryDeviceByTags', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceByTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Version.Invalid', - 'errorMessage' => 'The thing model version is not valid.', + ], + ], + [ + 'apiName' => 'QuerySpeechLicenseDeviceList', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechLicenseDeviceList', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Thing.Model.Get.Lock.Failed', - 'errorMessage' => 'The thing model get lock failed. Please try again later.', + ], + ], + [ + 'apiName' => 'DeleteDeviceSpeech', + 'description' => 'DeleteDeviceSpeech', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:DeleteDeviceSpeech', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - ], - 'UnsubscribeTopic' => [ - 'methods' => [ - 'post', - 'get', + [ + 'apiName' => 'CreateTopicConfig', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:CreateTopicConfig', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'schemes' => [ - 'http', - 'https', + [ + 'apiName' => 'RegisterDevice', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:RegisterDevice', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], + ], ], - 'security' => [ - [ - 'AK' => [], + [ + 'apiName' => 'QueryDeviceBySQL', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceBySQL', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], + ], ], ], - 'systemTags' => [], - 'parameters' => [ - [ - 'name' => 'IotInstanceId', - 'in' => 'query', - 'schema' => [ - 'description' => '实例ID。您可在物联网平台控制台的**实例概览**页签,查看当前实例的ID。'."\n" - ."\n" - .'>'."\n" - .'- 若有ID值,必须传入该**ID**值,否则调用会失败。'."\n" - .'- 若无ID值,则无需传入。'."\n" - ."\n" - .'>'."\n" - ."\n" - .'实例的更多信息,请参见[实例概述](~~356505~~)。', - 'type' => 'string', - 'required' => false, - 'example' => 'iot-cn-n6w1y59****', + [ + 'apiName' => 'UpdateProductTags', + 'description' => 'UpdateProductTags', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:UpdateProductTags', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'ProductKey', - 'in' => 'query', - 'schema' => [ - 'description' => '设备所属产品的**ProductKey**。', - 'type' => 'string', - 'required' => true, - 'example' => 'a1BwAGV****', + ], + [ + 'apiName' => 'CancelOTATaskByJob', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:CancelOTATaskByJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'DeviceName', - 'in' => 'query', - 'schema' => [ - 'description' => '设备的名称。', - 'type' => 'string', - 'required' => true, - 'example' => 'device1', + ], + [ + 'apiName' => 'NotifyAddThingTopo', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:NotifyAddThingTopo', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - [ - 'name' => 'Topic', - 'in' => 'query', - 'style' => 'repeatList', - 'schema' => [ - 'description' => '要取消订阅的Topic列表。', - 'type' => 'array', - 'items' => [ - 'type' => 'string', - ], - 'required' => true, - 'example' => '/a1BwAGV****/device1/user/get', - 'maxItems' => 10, + ], + [ + 'apiName' => 'QueryDeviceDetail', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDetail', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responses' => [ - 200 => [ - 'schema' => [ - 'type' => 'object', - 'properties' => [ - 'Code' => [ - 'description' => '调用结果状态码:'."\n" - .'- 调用成功,返回空值。'."\n" - .'- 调用失败,返回错误码。详细信息,请参见下文**错误码**。', - 'type' => 'string', - 'example' => '400', - ], - 'ErrorMessage' => [ - 'description' => '调用失败时,返回的出错信息。', - 'type' => 'string', - 'example' => 'The unsub topic list is empty.', - ], - 'RequestId' => [ - 'description' => '阿里云为该请求生成的唯一标识符。', - 'type' => 'string', - 'example' => 'E55***B7-4***-4***-8***-D3******F565', - ], - 'Success' => [ - 'description' => '表示是否调用成功。'."\n" - .'- **true**:调用成功。'."\n" - .'- **false**:调用失败。', - 'type' => 'boolean', - 'example' => 'true', - ], - 'FailureTopics' => [ - 'type' => 'object', - 'itemNode' => true, - 'properties' => [ - 'topic' => [ - 'type' => 'array', - 'items' => [ - 'description' => '取消订阅失败的Topic列表。', - 'type' => 'object', - 'example' => '/a1BwAGV****/device1/user/get', - ], - ], - ], - ], - ], + [ + 'apiName' => 'QueryConsumerGroupByGroupId', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryConsumerGroupByGroupId', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'errorCodes' => [ - 400 => [ - [ - 'errorCode' => 'Iot.System.BillIsOverDue', - 'errorMessage' => 'Your account has overdue payments. Go to the expense center and add funds to your account.', + [ + 'apiName' => 'CreateEdgeInstance', + 'description' => '', + 'operationType' => 'create', + 'ramAction' => [ + 'action' => 'iot:CreateEdgeInstance', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Iot.MessageBroker.EmptyUnSubTopicList', - 'errorMessage' => 'The unsub topic list is empty.', + ], + ], + [ + 'apiName' => 'DeleteOTAModule', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteOTAModule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Iot.MessageBroker.InvalidFormattedTopicName', - 'errorMessage' => 'The topic format specified while publishing the message is incorrect.', + ], + ], + [ + 'apiName' => 'DeleteOTAFirmware', + 'description' => '', + 'operationType' => 'delete', + 'ramAction' => [ + 'action' => 'iot:DeleteOTAFirmware', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'iot.prod.NotExistedProduct', - 'errorMessage' => 'The specified product does not exist.', + ], + ], + [ + 'apiName' => 'EnableSceneRule', + 'description' => '', + 'operationType' => 'update', + 'ramAction' => [ + 'action' => 'iot:EnableSceneRule', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], - [ - 'errorCode' => 'Iot.Device.NotExistedDevice', - 'errorMessage' => 'The device does not exist.', + ], + ], + [ + 'apiName' => 'QueryDeviceDistributeJob', + 'description' => '', + 'operationType' => 'get', + 'ramAction' => [ + 'action' => 'iot:QueryDeviceDistributeJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], - 403 => [ - [ - 'errorCode' => 'Iot.Device.NotDeviceOwner', - 'errorMessage' => 'You are not the device owner.', + ], + [ + 'apiName' => 'QuerySpeechPushJob', + 'description' => '', + 'operationType' => '', + 'ramAction' => [ + 'action' => 'iot:QuerySpeechPushJob', + 'authLevel' => 'operate', + 'actionConditions' => [], + 'resources' => [ + ['validationType' => 'always', 'product' => 'Iot', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], - 'responseDemo' => '[{"type":"json","example":"{\\n \\"Code\\": \\"400\\",\\n \\"ErrorMessage\\": \\"The unsub topic list is empty.\\",\\n \\"RequestId\\": \\"E55***B7-4***-4***-8***-D3******F565\\",\\n \\"Success\\": true,\\n \\"FailureTopics\\": {\\n \\"topic\\": [\\n \\"/a1BwAGV****/device1/user/get\\"\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\nE55***B7-4***-4***-8***-D3******F565\\n\\n /a1BwAGV****/device1/user/get\\n\\n\\ntrue\\n","errorExample":""}]', - 'title' => 'UnsubscribeTopic', - 'summary' => '调用接口UnsubscribeTopic为指定设备取消已订阅的指定Topic。', - 'description' => '## QPS限制'."\n" - ."\n" - .'单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为50。'."\n" - ."\n" - .'> 单个阿里云账号下的所有RAM用户共享该阿里云账号的配额。', - 'requestParamsDescription' => '调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见[公共参数](~~87387~~)文档。', - 'responseParamsDescription' => ' ', - 'extraInfo' => ' ', - ], - ], - 'endpoints' => [ - [ - 'regionId' => 'cn-beijing', - 'endpoint' => 'iot.cn-beijing.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shanghai', - 'endpoint' => 'iot.cn-shanghai.aliyuncs.com', - ], - [ - 'regionId' => 'cn-shenzhen', - 'endpoint' => 'iot.cn-shenzhen.aliyuncs.com', - ], - [ - 'regionId' => 'ap-northeast-1', - 'endpoint' => 'iot.ap-northeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'ap-southeast-1', - 'endpoint' => 'iot.ap-southeast-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-east-1', - 'endpoint' => 'iot.us-east-1.aliyuncs.com', - ], - [ - 'regionId' => 'us-west-1', - 'endpoint' => 'iot.us-west-1.aliyuncs.com', - ], - [ - 'regionId' => 'eu-central-1', - 'endpoint' => 'iot.eu-central-1.aliyuncs.com', ], + 'resourceTypes' => [], ], ]; -- cgit v1.2.3