'1.0', 'info' => ['style' => 'RPC', 'product' => 'OnsMqtt', 'version' => '2020-04-20'], 'directories' => [ [ 'children' => ['CreateGroupId', 'DeleteGroupId', 'ListGroupId'], 'type' => 'directory', 'title' => 'Group ID', ], [ 'children' => ['QuerySessionByClientId', 'BatchQuerySessionByClientIds'], 'type' => 'directory', 'title' => 'Clients', ], [ 'children' => ['GetDeviceCredential', 'RefreshDeviceCredential', 'RegisterDeviceCredential', 'UnRegisterDeviceCredential', 'ListDeviceCredentialClientId'], 'type' => 'directory', 'title' => 'Unique-certificate-per-device', ], [ 'children' => ['QueryMqttTraceMessageSubscribe'], 'type' => 'directory', 'title' => 'Traces', ], [ 'children' => ['RegisterCaCertificate', 'ActiveCaCertificate', 'InactivateCaCertificate'], 'type' => 'directory', 'title' => 'CA certificates', ], [ 'children' => ['ActiveDeviceCertificate', 'InactivateDeviceCertificate'], 'type' => 'directory', 'title' => 'Device certificates', ], [ 'children' => ['QueryCustomAuthIdentity'], 'type' => 'directory', 'title' => 'Custom permissions', ], [ 'children' => [ 'SetSniConfig', 'DisasterRecovery', 'AddCustomAuthConnectBlack', 'AddCustomAuthIdentity', 'AddCustomAuthPermission', 'ApplyToken', 'CloseConnection', 'DeleteCaCertificate', 'DeleteCustomAuthConnectBlack', 'DeleteCustomAuthIdentity', 'DeleteCustomAuthPermission', 'DeleteDeviceCertificate', 'DisasterDowngrade', 'GetCaCertificate', 'GetDeviceCertificate', 'GetRegisterCode', 'ListCaCertificate', 'ListDeviceCertificate', 'ListDeviceCertificateByCaSn', 'ListInstances', 'ListTagResources', 'QueryCustomAuthConnectBlack', 'QueryCustomAuthPermission', 'QueryMqttTraceDevice', 'QueryMqttTraceMessageOfClient', 'QueryMqttTraceMessagePublish', 'QueryToken', 'RevokeToken', 'SendMessage', 'TagResources', 'UntagResources', 'UpdateCustomAuthIdentity', 'UpdateCustomAuthPermission', ], 'type' => 'directory', 'title' => 'Others', ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ 'ActiveCaCertificate' => [ 'summary' => 'ApsaraMQ for MQTT supports device verification using X.509 certificates. A certificate authority (CA) certificate is required to issue and validate these device certificates, and it must be active to be used. While CA certificates are active by default upon registration, this operation allows you to reactivate any certificate that has become inactive.', 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the CA certificate is bound.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'Sn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the CA certificate that you want to reactivate. The serial number is the unique identifier of a CA certificate.'."\n" ."\n" .'The serial number of a CA certificate cannot exceed 128 bytes in size.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => '', 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => '', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Sn' => ['description' => 'The serial number of the activated CA certificate, used to uniquely identify a CA certificate.', 'type' => 'string', 'example' => '007269004887******', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttApplyCluster4InstanceFailed', 'errorMessage' => 'the instance can not find cluster.', 'description' => 'The instance failed to obtain cluster information.'], ['errorCode' => 'FindCaBySnError', 'errorMessage' => 'Failed to find the CA by the SN. Please check sn is valid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ['errorCode' => 'SystemError', 'errorMessage' => 'system error.', 'description' => 'System error, please try again'], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'ActiveCaCertificate', 'description' => '- Only ApsaraMQ for MQTT Enterprise Platinum Edition and Professional Edition instances support this operation.'."\n" ."\n" .'- You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n" ."\n" .'- You can call this operation to reactivate only CA certificates that are registered with ApsaraMQ for MQTT brokers. You can call the [ListCaCertificate](~~2604958~~) operation to query CA certificates that are registered with an ApsaraMQ for MQTT instance.', 'extraInfo' => '### 控制台操作'."\n" .'除了调用ActiveCaCertificate接口,您还可以通过微消息队列MQTT版控制台激活CA证书。具体操作,请参见[CA证书管理](~~436873~~)。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ActiveCaCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:ActiveCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Sn\\": \\"007269004887******\\"\\n}","type":"json"}]', ], 'ActiveDeviceCertificate' => [ 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons0PHGX2'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the device certificate is bound.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'DeviceSn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the device certificate that you want to reactivate. The serial number is the unique identifier of a device certificate.', 'type' => 'string', 'required' => true, 'example' => '356217374433******', 'title' => ''], ], [ 'name' => 'CaSn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the CA certificate that issued the device certificate. The serial number is the unique identifier of a CA certificate.'."\n" ."\n" .'The serial number of a CA certificate cannot exceed 128 bytes in size.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request. This is a common parameter. Each request has a unique ID that you can use to troubleshoot issues.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'DeviceSn' => ['description' => 'The serial number of the activated device certificate. The SN is the unique identifier of a device certificate.', 'type' => 'string', 'example' => '356217374433******', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'ActiveDeviceCertificate', 'summary' => 'Device certificates, issued by certificate authority (CA) certificates, are used by the ApsaraMQ for MQTT broker to authenticate clients. The broker validates a device certificate against the registered CA certificate; upon successful authentication, the certificate is automatically registered with the broker and activated. Should a device certificate become inactive, you can call this operation to reactivate it.', 'description' => '- Only ApsaraMQ for MQTT Enterprise Platinum Edition and Professional Edition instances support this operation.'."\n" ."\n" .'- You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.', 'extraInfo' => '### 控制台操作'."\n" .'除了调用ActiveDeviceCertificate接口,您还可以通过微消息队列MQTT版控制台激活设备证书。具体操作,请参见[设备证书管理](~~449435~~) 。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ActiveDeviceCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:ActiveDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"DeviceSn\\": \\"356217374433******\\"\\n}","type":"json"}]', ], 'AddCustomAuthConnectBlack' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-i7m26mf****', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => 'The client ID of the device whose connections you want to disable.'."\n", 'type' => 'string', 'required' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The schema object.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '82B9E503-F4A1-4F30-976F-C6999FF9****'], 'Code' => ['description' => 'The HTTP status code. The value 200 indicates that the request is successful.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the operation is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The message returned.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'Customauth.over.capacity', 'errorMessage' => 'Over custom auth capacity.', 'description' => 'User-defined permission quantity capacity exceeds the limit'], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"82B9E503-F4A1-4F30-976F-C6999FF9****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'AddCustomAuthConnectBlack', 'summary' => 'Adds a device to the connection blacklist to disable connections from the device.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomAuthConnectBlack'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'AddCustomAuthIdentity' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '207003', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the Message Queue for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-xxxx', 'title' => ''], ], [ 'name' => 'Username', 'in' => 'formData', 'schema' => ['description' => 'The username.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'Secret', 'in' => 'formData', 'schema' => ['description' => 'The AccessKey secret.'."\n", 'type' => 'string', 'required' => true, 'example' => 'xxxxx', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => 'The client ID if you set IdentityType to CLIENT.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'SignMode', 'in' => 'formData', 'schema' => [ 'description' => 'The signature verification mode. ORIGIN: compares the password and the AccessKey secret. SIGNED: uses the HMAC_SHA1 algorithm to sign the client ID to obtain a password and then compares the password.'."\n", 'type' => 'string', 'required' => true, 'example' => 'SIGNED', 'enum' => ['ORIGIN', 'SIGNED'], 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The schema object.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Code' => ['description' => 'The HTTP status code. The status code 200 indicates that the request is successful.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the operation is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The message returned.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'Customauth.over.capacity', 'errorMessage' => 'Over custom auth capacity.', 'description' => 'User-defined permission quantity capacity exceeds the limit'], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'AddCustomAuthIdentity', 'summary' => 'Adds the information about identity authentication. The identity can be accurate to a client.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomAuthIdentity'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'AddCustomAuthPermission' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values: USER and CLIENT.'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'Identity', 'in' => 'formData', 'schema' => ['description' => 'The username or client ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'PermitAction', 'in' => 'formData', 'schema' => [ 'description' => 'The permissions that you want to grant.'."\n", 'type' => 'string', 'required' => true, 'example' => 'PUB_SUB', 'enum' => ['PUB', 'SUB', 'PUB_SUB'], 'title' => '', ], ], [ 'name' => 'Effect', 'in' => 'formData', 'schema' => [ 'description' => 'Specifies whether to allow or deny access.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ALLOW', 'enum' => ['ALLOW', 'DENY'], 'title' => '', ], ], [ 'name' => 'Topic', 'in' => 'formData', 'schema' => ['description' => 'The topics on which you want to grant permissions. Multi-level topics and wildcard characters are supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test/t1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The schema object.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '82B9E503-F4A1-4F30-976F-C6999FF9****'], 'Code' => ['description' => 'The HTTP status code. The status code 200 indicates that the request is successful.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The error message returned.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'Customauth.over.capacity', 'errorMessage' => 'Over custom auth capacity.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"82B9E503-F4A1-4F30-976F-C6999FF9****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'AddCustomAuthPermission', 'summary' => 'Grants permissions on topics. You must create a parent topic in the console before you call this API operation.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'ApplyToken' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => ['operationType' => 'create'], 'parameters' => [ [ 'name' => 'Resources', 'in' => 'query', 'schema' => ['description' => 'The topics on the ApsaraMQ for MQTT instance. Separate multiple topics with commas (,). Each token can be used to access up to 100 topics. Multiple topics are sorted in alphabetic order. MQTT wildcards, including single-level wildcards represented by plus signs (+) and multi-level wildcards represented by number signs (#), can be used for the Resources parameter that you register to apply for a token.'."\n" ."\n" .'For example, if you set the **Resources** parameter to Topic1/+ when you apply for a token, the ApsaraMQ for MQTT client can manage the topics in Topic1/xxx. If you set the **Resources** parameter to Topic1/# when you apply for a token, the ApsaraMQ for MQTT client can manage topics of any level in Topic1/xxx/xxx/xxx.'."\n" ."\n" .'> ApsaraMQ for MQTT supports subtopics. You can specify subtopics in the code for messaging instead of configuring them in the ApsaraMQ for MQTT console. Forward slashes (/) are used to separate topics of different levels. For more information, see [Terms](~~42420~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'TopicA/+', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the [ApsaraMQ for MQTT console](https://mqtt.console.aliyun.com/).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'ExpireTime', 'in' => 'query', 'schema' => ['description' => 'The timestamp that indicates the point in time when the token expires. Unit: milliseconds. The minimum validity period of a token is 60 seconds, and the maximum validity period of a token is 30 days. If you specify a validity period of more than 30 days for a token, no errors are returned. However, the token is valid only for 30 days.'."\n" ."\n" .'For example, you want to specify a validity period of 60 seconds for a token. If the current system timestamp is 1609434061000, you must set this parameter to **1609434121000**. The value is calculated by using the following formula: 1609434061000 + 60 x 1000 = 1609434121000.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'example' => '1609434121000', 'title' => ''], ], [ 'name' => 'Actions', 'in' => 'query', 'schema' => ['description' => 'The permission type of the token. Valid values:'."\n" ."\n" .'* **R**: read-only. You can only subscribe to the specified topics.'."\n" .'* **W**: write-only. You can only send messages to the specified topics.'."\n" .'* **R,W**: read and write. You can send messages to and subscribe to the specified topics. Separate **R** and **W** with a comma (,).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'R', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'Token' => ['description' => 'The token that is returned by the ApsaraMQ for MQTT broker.'."\n" ."\n" .'> Do not assume the length, format, or rule of the token to return. The actual returned token shall prevail.'."\n", 'type' => 'string', 'example' => 'LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==', 'title' => ''], 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '31782AAF-D0CC-44C3-ABFD-1B500276****', 'title' => ''], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"Token\\": \\"LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==\\",\\n \\"RequestId\\": \\"31782AAF-D0CC-44C3-ABFD-1B500276****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 31782AAF-D0CC-44C3-ABFD-1B500276****\\n LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==\\n","errorExample":""}]', 'title' => 'ApplyToken', 'summary' => 'Applies for a token from ApsaraMQ for MQTT. If token-based authentication is used for permission authentication on an ApsaraMQ for MQTT broker, a token that is issued by the broker is required for authentication each time a client is connected to the broker.', 'description' => '* You can call this operation up to 100 times per second per account. If you want to increase the limit, join the DingTalk group 35228338 to contact ApsaraMQ for MQTT technical support.'."\n" .'* Each successful call to the **ApplyToken** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n", 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ApplyToken'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:ApplyToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'BatchQuerySessionByClientIds' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREonsICR0M4'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID of ApsaraMQ for MQTT. Must match the instance ID used by the client. Find it on the **Instance Details** page in the [console](https://mqtt.console.aliyun.com).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'ClientIdList', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'The client IDs to query.', 'type' => 'array', 'items' => ['description' => 'The Nth client ID to query.'."\n" ."\n" .'> You can query up to 10 client IDs per call. N ranges from 1 to 10.', 'type' => 'string', 'required' => false, 'example' => 'ClientIdList.1', 'title' => ''], 'required' => true, 'example' => 'ClientIdList.1', 'maxItems' => 10, 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'A unique request identifier.', 'type' => 'string', 'example' => '63309FDB-ED6C-46AE-B31C-A172FBA0****', 'title' => ''], 'OnlineStatusList' => [ 'description' => 'The online status of each queried client.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'OnlineStatus' => ['description' => 'Whether the client is online. Valid values:'."\n" ."\n" .'- **true**: The client is online.'."\n" ."\n" .'- **false**: The client is offline.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'ClientId' => ['description' => 'The client ID, as defined in [Terms](~~42420~~).', 'type' => 'string', 'example' => 'GID_test@0001', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 403 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 417 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'BatchQuerySessionByClientIds', 'summary' => 'Queries the online status of multiple clients by client ID.', 'description' => '- The **BatchQuerySessionByClientIds** operation supports up to 100 QPS. [QPS limits](~~163047~~).'."\n" ."\n" .'- Each call queries the online status of up to 10 clients.'."\n" ."\n" .'- Each successful call counts as one billable transaction. [Billing](~~52819~~).'."\n" ."\n" .'- This operation queries data from the internal cache and may return stale results. For real-time queries, use [QuerySessionByClientId](~~2603924~~).', 'requestParamsDescription' => '> Other parameters are described in [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchQuerySessionByClientIds'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:BatchQuerySessionByClientIds', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"63309FDB-ED6C-46AE-B31C-A172FBA0****\\",\\n \\"OnlineStatusList\\": [\\n {\\n \\"OnlineStatus\\": true,\\n \\"ClientId\\": \\"GID_test@0001\\"\\n }\\n ]\\n}","type":"json"}]', ], 'CloseConnection' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'none', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'ID of the Micro Message Queue MQTT version instance.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'Client ID of the device', 'type' => 'string', 'required' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '82B9E503-F4A1-4F30-976F-C6999FF9****'], 'Code' => ['description' => 'Return code of the interface: 200 indicates success. Other values indicate error codes. For details about the error codes, see Error Codes.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Message' => ['description' => 'Call result information', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Success' => ['description' => 'Indicates whether the operation was successful. true means success, false means failure.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"82B9E503-F4A1-4F30-976F-C6999FF9****\\",\\n \\"Code\\": 200,\\n \\"Message\\": \\"operation success.\\",\\n \\"Success\\": true\\n}","type":"json"}]', 'title' => 'CloseConnection', 'summary' => 'Proactively closes an online connection. After you call this API operation, the device may reconnect to the broker based on the client reconnection mechanism.', 'description' => 'This API is still in the testing phase and is only available for Professional Edition instances in the Shanghai region. Legacy instances are not supported at this time.', 'translator' => 'machine', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:CloseConnection', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'CreateGroupId' => [ 'summary' => 'Message producers and consumers must specify a unique Client ID when they connect to ApsaraMQ for MQTT to send and receive messages. A Client ID consists of two parts in the format @@@. The DeviceID is defined by the client, and the GroupID must be created on the ApsaraMQ for MQTT server beforehand.', 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '84611', 'abilityTreeNodes' => ['FEATUREons4L127M'], ], 'parameters' => [ [ 'name' => 'GroupId', 'in' => 'query', 'schema' => ['description' => 'The ID of the group to create. This ID must meet the following requirements:'."\n" ."\n" .'- The ID must be 7 to 64 characters in length, start with `GID_` or `GID-`, and contain only letters, digits, hyphens, and underscores.'."\n" ."\n" .'- Group IDs cannot be modified after creation. For more information, see [glossary](~~42420~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the instance to which the group ID belongs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-0pp1ldu****', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], 'required' => false, 'description' => 'A list of resource tags. A resource can have a maximum of 20 tags. You can specify up to 20 tags in a single request.', 'title' => '', 'example' => '', ], 'required' => false, 'maxItems' => 100, 'description' => 'An array of tag key-value pairs.', 'title' => '', 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The unique ID of the request.', 'type' => 'string', 'example' => '2C7D722D-0F3D-4415-A9CD-A464D82C****', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'GroupIdAlreadyExsited', 'errorMessage' => 'The specified GroupId already exists.', 'description' => ''], ['errorCode' => 'GroupIdAlreadyUsedByOtherUsers', 'errorMessage' => 'The current GroupId is used by another user. Please change to a different GroupId.', 'description' => ''], ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InstanceNotFound', 'errorMessage' => 'Failed to find the instance. The instanceId may be invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ], 500 => [ ['errorCode' => 'CreateGroupIdError', 'errorMessage' => 'Failed to create GroupId. Try again later.', 'description' => ''], ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"2C7D722D-0F3D-4415-A9CD-A464D82C****\\"\\n}","type":"json"}]', 'title' => 'CreateGroupId', 'description' => 'Each successful call to the **CreateGroupId** operation counts as one message TPS and affects your billing. For more information, see [billing](~~52819~~).', 'requestParamsDescription' => '> For more information about common parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateGroupId'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:CreateMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'DeleteCaCertificate' => [ 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '142200', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the CA certificate is bound.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'Sn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the CA certificate that you want to delete. The serial number is the unique identifier of a CA certificate.'."\n" ."\n" .'The serial number of a CA certificate cannot exceed 128 bytes in size.'."\n", 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Sn' => ['description' => 'The serial number of the CA certificate that you deleted. The serial number is the unique identifier of a CA certificate.'."\n", 'type' => 'string', 'example' => '007269004887******', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindCaBySnError', 'errorMessage' => 'Failed to find the CA by the SN. Please check sn is valid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Sn\\": \\"007269004887******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n 007269004887******\\n","errorExample":""}]', 'title' => 'DeleteCaCertificate', 'summary' => 'Deletes a certificate authority (CA) certificate from an ApsaraMQ for MQTT broker. ApsaraMQ for MQTT allows you to use X.509 certificates for authentication. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, you can use the device certificate to implement authentication. CA certificates are used to issue device certificates to clients and validate the device certificates. Before you can use a CA certificate, you must register the certificate with an ApsaraMQ for MQTT broker. If you no longer require a CA certificate, you can call this operation to delete the certificate from the ApsaraMQ for MQTT broker.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n" .'* You can call this operation to delete only CA certificates that are registered with ApsaraMQ for MQTT brokers. You can call the [ListCaCertificate](~~2604958~~) operation to query CA certificates that are registered with an ApsaraMQ for MQTT instance.'."\n" .'* If you delete a specific CA certificate from an ApsaraMQ for MQTT broker, all device certificates that are issued by the CA certificate and are registered with the ApsaraMQ for MQTT broker are automatically deleted.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'DeleteCustomAuthConnectBlack' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT client.'."\n", 'type' => 'string', 'required' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '317076B7-F946-46BC-A98F-4CF9777C****'], 'Code' => ['description' => 'The response code. The status code 200 indicates that the request was successful.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the operation was successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The error message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"317076B7-F946-46BC-A98F-4CF9777C****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'DeleteCustomAuthConnectBlack', 'summary' => 'Deletes a connection blacklist.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'DeleteCustomAuthIdentity' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'Username', 'in' => 'formData', 'schema' => ['description' => 'The username.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => 'The client ID if you set IdentityType to CLIENT.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GID_test@@@test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response schema.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '11568B5B-13A8-4E72-9DBA-3A14F7D3****'], 'Code' => ['description' => 'The HTTP status code. The status code 200 indicates that the request is successful. Other status codes indicate that the request failed.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the operation is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"11568B5B-13A8-4E72-9DBA-3A14F7D3****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'DeleteCustomAuthIdentity', 'summary' => 'Deletes an identity for custom authorization.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'DeleteCustomAuthPermission' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-0pp1ldu****', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'Identity', 'in' => 'formData', 'schema' => ['description' => 'The username or client ID.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'Topic', 'in' => 'formData', 'schema' => ['description' => 'The topic on which you want to grant permissions. Multi-level topics and Wildcard characters are supported.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test/t1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response schema.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '34063BCA-0946-49C1-B824-2ED2C905****'], 'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The message returned.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"34063BCA-0946-49C1-B824-2ED2C905****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'DeleteCustomAuthPermission', 'summary' => 'Deletes permissions on a topic.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCustomAuthPermission'], ], ], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'DeleteDeviceCertificate' => [ 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '145869', 'abilityTreeNodes' => ['FEATUREons0PHGX2'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the device certificate is bound.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'DeviceSn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the device certificate whose registration information you want to delete. The serial number is the unique identifier of a device.'."\n" ."\n" .'The serial number of a device certificate cannot exceed 128 bytes in size.'."\n", 'type' => 'string', 'required' => true, 'example' => '356217374433****', 'title' => ''], ], [ 'name' => 'CaSn', 'in' => 'query', 'schema' => ['description' => 'The serial number of the CA certificate to which the device certificate belongs. The serial number is the unique identifier of a CA certificate. CA certificates are used to validate device certificates.'."\n" ."\n" .'The serial number of a CA certificate cannot exceed 128 bytes in size.'."\n", 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'DeviceSn' => ['description' => 'The serial number of the device certificate whose registration information is deleted. The serial number is the unique identifier of a device certificate.'."\n", 'type' => 'string', 'example' => '356217374433******', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"DeviceSn\\": \\"356217374433******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n 356217374433******\\n","errorExample":""}]', 'title' => 'DeleteDeviceCertificate', 'summary' => 'Deletes the registration information about a specific device certificate from an ApsaraMQ for MQTT broker. Device certificates are digital certificates issued to clients by certificate authority (CA) root certificates. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, the broker uses the device certificate to authenticate the client. If the client passes the authentication, the client and the broker can communicate with each other based on the encrypted private key in the device certificate. If the client fails the authentication, access requests from the client are denied by the client. If you no longer require a device certificate, you can call this operation to delete the registration information about the certificate from an ApsaraMQ for MQTT broker.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'DeleteGroupId' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREonsICR0M4'], ], 'parameters' => [ [ 'name' => 'GroupId', 'in' => 'query', 'schema' => ['description' => 'The Group ID to delete.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ApsaraMQ for MQTT instance ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-0pp1ldu****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => '0621DDD7-F0E9-4D35-8900-518116D6****', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InstanceNotFound', 'errorMessage' => 'Failed to find the instance. The instanceId may be invalid.', 'description' => ''], ['errorCode' => 'ResourcePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'SystemError', 'errorMessage' => 'system error.', 'description' => 'System error, please try again'], ], 417 => [ ['errorCode' => 'DeleteGroupIdError', 'errorMessage' => 'Failed to delete GroupId. Try again later.', 'description' => ''], ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'DeleteGroupId', 'summary' => 'Deletes a Group ID from an ApsaraMQ for MQTT instance.', 'description' => 'Each successful call to the **DeleteGroupId** operation counts as one messaging TPS and affects your billing. [Billing rules](~~52819~~).', 'requestParamsDescription' => '> Additional parameters are described in [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteGroupId'], ], ], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"0621DDD7-F0E9-4D35-8900-518116D6****\\"\\n}","type":"json"}]', ], 'DisasterDowngrade' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'high', 'abilityTreeCode' => '263645', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-xxx', 'title' => ''], ], [ 'name' => 'DowngradeInstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance for which you want to downgrade the VIP access.'."\n", 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-xxxx', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '82B9E503-F4A1-4F30-976F-C6999FF9****'], 'Code' => ['description' => 'The response code. The status code 200 indicates that the request was successful. Other status codes indicate that the request failed. For information about error codes, see Error codes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request was successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'AccessDeniedDetail' => ['description' => 'The details about the access denial. This parameter is returned only if Resource Access Management (RAM) permission verification failed.'."\n", 'type' => 'string', 'example' => 'None', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"82B9E503-F4A1-4F30-976F-C6999FF9****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\",\\n \\"AccessDeniedDetail\\": \\"None\\"\\n}","type":"json"}]', 'title' => 'DisasterDowngrade', 'summary' => 'Downgrades the virtual IP address (VIP) access of a specific instance during the disaster recovery of multiple instances. Only Enterprise Platinum Edition instances support this operation. To call the operation, you must submit a ticket.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:DisasterDowngrade', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [], ], ], ], 'DisasterRecovery' => [ 'summary' => 'Restores Internet access for an instance using its virtual IP address (VIP) for graceful recovery in a multi-instance disaster recovery architecture. This operation is available only for Platinum Edition instances. To use this operation, submit a ticket.', 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'high', 'abilityTreeCode' => '263654', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-xxx', 'title' => ''], ], [ 'name' => 'RecoveryInstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the instance to recover.', 'type' => 'string', 'required' => true, 'example' => 'mqtt-cn-xxx', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '135F8639-F262-4417-98D1-4DE4595C****'], 'Code' => ['description' => 'The return code. A value of 200 indicates that the call is successful. Other values indicate error codes. For more information about error codes, see Error codes.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the call was successful. A value of true indicates that the call was successful. A value of false indicates that the call failed.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'AccessDeniedDetail' => ['description' => 'The details that are returned when the access is denied. This field is returned only when the RAM authentication fails.', 'type' => 'string', 'example' => '{}', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"135F8639-F262-4417-98D1-4DE4595C****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\",\\n \\"AccessDeniedDetail\\": \\"{}\\"\\n}","type":"json"}]', 'title' => 'DisasterRecovery', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisasterRecovery'], ], ], 'ramActions' => [ [ 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:DisasterRecovery', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [], ], ], ], 'GetCaCertificate' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '141174', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID bound to the CA certificate, which is the instance ID of the MQTT version of the cloud message queue.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'Sn', 'in' => 'query', 'schema' => ['description' => 'The SN serial number of the CA certificate to be queried, used to uniquely identify a CA certificate.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Data' => [ 'description' => 'Certificate details.', 'type' => 'object', 'properties' => [ 'RegistrationCode' => ['description' => 'Registration code of the CA certificate', 'type' => 'string', 'example' => '13274673-8f90-4630-bea1-9cccb25756ad2089******', 'title' => ''], 'CaName' => ['description' => 'Name of the CA certificate', 'type' => 'string', 'example' => 'mqtt_ca', 'title' => ''], 'Sn' => ['description' => 'The SN serial number of the CA certificate, used to uniquely identify a CA certificate. Value range: no more than 128 bytes.', 'type' => 'string', 'example' => '00f26900ba87******', 'title' => ''], 'CaContent' => ['description' => 'Content of the CA certificate.'."\n" .'> \\n represents a new line.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END CERTIFICATE-----', 'title' => ''], 'VerificationContent' => ['description' => 'Content of the Verification certificate.'."\n" .'> \\n represents a new line.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\n-----END CERTIFICATE-----', 'title' => ''], 'ValidBegin' => ['description' => 'The start time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1654137303000', 'title' => ''], 'ValidEnd' => ['description' => 'The end time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1969497303000', 'title' => ''], 'Status' => ['description' => 'The status of the CA certificate. The values are as follows:'."\n" .'- **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.'."\n" .'> After the CA certificate is registered, it is in an active state by default.', 'type' => 'string', 'example' => '1', 'title' => ''], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindCaBySnError', 'errorMessage' => 'Failed to find the CA by the SN. Please check sn is valid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Data\\": {\\n \\"RegistrationCode\\": \\"13274673-8f90-4630-bea1-9cccb25756ad2089******\\",\\n \\"CaName\\": \\"mqtt_ca\\",\\n \\"Sn\\": \\"00f26900ba87******\\",\\n \\"CaContent\\": \\"-----BEGIN CERTIFICATE-----\\\\\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\\\\\n-----END CERTIFICATE-----\\",\\n \\"VerificationContent\\": \\"-----BEGIN CERTIFICATE-----\\\\\\\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\\\\\\\n-----END CERTIFICATE-----\\",\\n \\"ValidBegin\\": \\"1654137303000\\",\\n \\"ValidEnd\\": \\"1969497303000\\",\\n \\"Status\\": \\"1\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n \\n 13274673-8f90-4630-bea1-9cccb25756ad2089******\\n mqtt_ca\\n 00f26900ba87******\\n -----BEGIN CERTIFICATE-----\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\n-----END CERTIFICATE-----\\n -----BEGIN CERTIFICATE-----\\\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\\\n-----END CERTIFICATE-----\\n 1654137303000\\n 1969497303000\\n 1\\n \\n","errorExample":""}]', 'title' => 'GetCaCertificate', 'summary' => 'Queries the details of a certificate authority (CA) certificate, such as the content and status of the certificate. ApsaraMQ for MQTT allows you to use X.509 certificates for authentication. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, you can use the device certificate to implement authentication. CA certificates are used to issue device certificates to clients and validate the device certificates.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:GetCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'GetDeviceCertificate' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '145870', 'abilityTreeNodes' => ['FEATUREons0PHGX2'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID to which the device certificate is bound, i.e., the instance ID of the Cloud Message Queue MQTT version.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'DeviceSn', 'in' => 'query', 'schema' => ['description' => 'The SN serial number of the device certificate to be queried, used to uniquely identify a device certificate. Value range: no more than 128 bytes.', 'type' => 'string', 'required' => true, 'example' => '356217374433******', 'title' => ''], ], [ 'name' => 'CaSn', 'in' => 'query', 'schema' => ['description' => 'The SN serial number of the CA certificate to which the device certificate to be queried belongs, used to uniquely identify a CA certificate. Value range: no more than 128 bytes.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Data' => [ 'description' => 'Certificate details.', 'type' => 'object', 'properties' => [ 'ValidBegin' => ['description' => 'The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1654137303000', 'title' => ''], 'ValidEnd' => ['description' => 'The end time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1969497303000', 'title' => ''], 'DeviceSn' => ['description' => 'The SN serial number of the device certificate, used to uniquely identify a device certificate.', 'type' => 'string', 'example' => '356217374433******', 'title' => ''], 'DeviceName' => ['description' => 'Name of the device certificate.', 'type' => 'string', 'example' => 'mqtt_device', 'title' => ''], 'DeviceContent' => ['description' => 'Content of the device certificate.'."\n" ."\n" .' represents a new line.', 'type' => 'string', 'example' => '-----BEGIN DEVICECERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END DEVICECERTIFICATE-----', 'title' => ''], 'CaSn' => ['description' => 'The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.', 'type' => 'string', 'example' => '00f26900ba87******', 'title' => ''], 'Status' => ['description' => 'The status of the device certificate. The values are as follows:'."\n" .'- **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.'."\n" .'> After the device certificate is registered, it is in an active state by default.', 'type' => 'string', 'example' => '1', 'title' => ''], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Data\\": {\\n \\"ValidBegin\\": \\"1654137303000\\",\\n \\"ValidEnd\\": \\"1969497303000\\",\\n \\"DeviceSn\\": \\"356217374433******\\",\\n \\"DeviceName\\": \\"mqtt_device\\",\\n \\"DeviceContent\\": \\"-----BEGIN DEVICECERTIFICATE-----\\\\\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\\\\\n-----END DEVICECERTIFICATE-----\\",\\n \\"CaSn\\": \\"00f26900ba87******\\",\\n \\"Status\\": \\"1\\"\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n \\n 1654137303000\\n 1969497303000\\n 356217374433******\\n mqtt_device\\n -----BEGIN DEVICECERTIFICATE-----\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\n-----END DEVICECERTIFICATE-----\\n 00f26900ba87******\\n 1\\n \\n","errorExample":""}]', 'title' => 'GetDeviceCertificate', 'summary' => 'Queries the details of a device certificate. Device certificates are digital certificates issued to clients by certificate authority (CA) root certificates. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, the broker uses the device certificate to authenticate the client. If the client passes the authentication, the client and the broker can communicate with each other based on the encrypted private key in the device certificate. If the client fails the authentication, access requests from the client are denied by the client.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:GetDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'GetDeviceCredential' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device whose access credential you want to query.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.', 'type' => 'string', 'example' => 'E4581CCF-62AF-44D9-B5B4-D1DQDC0E****', 'title' => ''], 'DeviceCredential' => [ 'description' => 'The information about the access credential of the device.', 'type' => 'object', 'properties' => [ 'UpdateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was last updated. The value of this parameter is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'DeviceAccessKeyId' => ['description' => 'The AccessKey ID of the device.', 'type' => 'string', 'example' => 'DC.Z5fXh9sRRVufyLi6wo****', 'title' => ''], 'CreateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was created. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'InstanceId' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'example' => 'post-cn-0pp12gl****', 'title' => ''], 'DeviceAccessKeySecret' => ['description' => 'The AccessKey secret of the device.', 'type' => 'string', 'example' => 'DC.BJMkn4eMQJK2vaApTS****', 'title' => ''], 'ClientId' => ['description' => 'The client ID of the device.', 'type' => 'string', 'example' => 'GID_test@@@test', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'DeviceCredentialNotFound', 'errorMessage' => 'Device Credential Not Found. Check if the device certificate is registered.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'GetDeviceCredential', 'summary' => 'Queries the access credential of a device. If unique-certificate-per-device authentication is used as the authentication method on an ApsaraMQ for MQTT broker, an access credential that you apply for in advance is required for authentication when you connect your device to the broker. The connection can be established only after the authentication is passed.', 'description' => '- You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n" ."\n" .'- Each successful call to the **GetDeviceCredential** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).', 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceCredential'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:GetDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4581CCF-62AF-44D9-B5B4-D1DQDC0E****\\",\\n \\"DeviceCredential\\": {\\n \\"UpdateTime\\": 1605541382000,\\n \\"DeviceAccessKeyId\\": \\"DC.Z5fXh9sRRVufyLi6wo****\\",\\n \\"CreateTime\\": 1605541382000,\\n \\"InstanceId\\": \\"post-cn-0pp12gl****\\",\\n \\"DeviceAccessKeySecret\\": \\"DC.BJMkn4eMQJK2vaApTS****\\",\\n \\"ClientId\\": \\"GID_test@@@test\\"\\n }\\n}","type":"json"}]', ], 'GetRegisterCode' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '140814', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response parameters.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'RegisterCode' => ['title' => '', 'description' => 'The registration code of the CA certificate.'."\n", 'type' => 'string', 'example' => '13274673-8f90-4630-bea1-9cccb25756ad2089******'], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"RegisterCode\\": \\"13274673-8f90-4630-bea1-9cccb25756ad2089******\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n 13274673-8f90-4630-bea1-9cccb25756ad2089******\\n","errorExample":""}]', 'title' => 'GetRegisterCode', 'summary' => 'Obtains the registration code of a specific certificate authority (CA) certificate. When you register a CA certificate with an ApsaraMQ for MQTT broker, you must upload the validation certificate of the CA certificate to verify whether you have the private key of the CA certificate. The validation certificate of a CA certificate must be generated by using the registration code of the CA certificate.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:GetRegisterCode', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'InactivateCaCertificate' => [ 'summary' => 'ApsaraMQ for MQTT supports X.509 certificate-based device verification. Clients use device certificates for connection authentication. A Certificate Authority (CA) certificate is used to issue device certificates to clients and to verify the validity of those certificates. If you do not need to use a CA certificate for a period of time, call this operation to unregister it. This changes the status of the CA certificate to inactive. When you need to use the CA certificate again, you can call the ActiveCaCertificate operation to reactivate it.', 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the CA certificate is attached.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'Sn', 'in' => 'query', 'schema' => ['description' => 'The serial number (SN) of the CA certificate that you want to unregister. The SN uniquely identifies a CA certificate.'."\n" ."\n" .'The value can be up to 128 bytes long.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The data returned.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request. This ID is unique for each request. You can use it to troubleshoot and locate issues.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Sn' => ['description' => 'The serial number (SN) of the unregistered CA certificate. The SN uniquely identifies a CA certificate.', 'type' => 'string', 'example' => '007269004887******', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindCaBySnError', 'errorMessage' => 'Failed to find the CA by the SN. Please check sn is valid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'InactivateCaCertificate', 'description' => '- Only Platinum Edition and Professional Edition instances support the InactivateCaCertificate operation.'."\n" ."\n" .'- The request rate for a single user is limited to 500 per second. If you have special requirements, contact ApsaraMQ for MQTT technical support. The DingTalk group number is 35228338.'."\n" ."\n" .'- You can call this operation only for CA certificates that are registered with ApsaraMQ for MQTT. To query the registered CA certificates for an instance, call the [ListCaCertificate](~~2604958~~) operation.', 'extraInfo' => '### 控制台操作'."\n" .'除了调用InactivateCaCertificate接口,您还可以通过微消息队列MQTT版控制台注销指定的CA证书。具体操作,请参见[CA证书管理](~~436873~~)。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InactivateCaCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:UnregisterCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Sn\\": \\"007269004887******\\"\\n}","type":"json"}]', ], 'InactivateDeviceCertificate' => [ 'summary' => 'A device certificate is a digital certificate that a root Certificate Authority (CA) issues to a client device. The service uses this certificate to authenticate the client during connection. If authentication is successful, the service and the client can communicate securely using the encryption key in the certificate. If authentication fails, the service denies the client\'s connection. Should you need to temporarily disable a device certificate, you can call this operation to inactivate it, setting its status to inactive.', 'methods' => ['get', 'post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons0PHGX2'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which the device certificate is attached.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'DeviceSn', 'in' => 'query', 'schema' => ['description' => 'The serial number (SN) of the device certificate that you want to inactivate. The SN uniquely identifies a device certificate.', 'type' => 'string', 'required' => true, 'example' => '356217374433******', 'title' => ''], ], [ 'name' => 'CaSn', 'in' => 'query', 'schema' => ['description' => 'The SN of the CA certificate to which the device certificate belongs. The SN uniquely identifies a CA certificate.'."\n" ."\n" .'The value can be up to 128 bytes in length.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request. This common parameter is unique to each request. Use this ID to troubleshoot issues.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'DeviceSn' => ['description' => 'The SN of the inactivated device certificate. The SN uniquely identifies a device certificate.', 'type' => 'string', 'example' => '356217374433******', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'InactivateDeviceCertificate', 'description' => '- Only Platinum Editionand Professional Edition instances support the InactivateDeviceCertificate operation.'."\n" ."\n" .'- The request frequency for a single user is limited to 500 calls per second. For special requirements, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.', 'extraInfo' => '### 控制台操作'."\n" .'除了调用InactivateDeviceCertificate接口,您还可以通过微消息队列MQTT版控制台注销设备证书。具体操作,请参见[设备证书管理](~~449435~~) 。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InactivateDeviceCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:UnregisterDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess'], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"DeviceSn\\": \\"356217374433******\\"\\n}","type":"json"}]', ], 'ListCaCertificate' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '141168', 'abilityTreeNodes' => ['FEATUREonsQV6LXV'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID of the Cloud Message Queue MQTT version, indicating which instance\'s CA certificates need to be viewed.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'PageNo', 'in' => 'query', 'schema' => ['description' => 'Indicates the page number of the returned results. The starting page is counted from 1.', 'type' => 'string', 'required' => true, 'example' => '2', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The maximum number of query records to display per page. Value range: 1 to 100.', 'type' => 'string', 'required' => true, 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Data' => [ 'description' => 'Query result.', 'type' => 'object', 'properties' => [ 'Total' => ['description' => 'Maximum number of pages in the query result.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'PageNo' => ['description' => 'The current page number of the returned query records.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], 'PageSize' => ['description' => 'The maximum number of results to display per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], 'CaCertificateVOS' => [ 'description' => 'Details of the CA certificate', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'RegistrationCode' => ['description' => 'Registration code of the CA certificate', 'type' => 'string', 'example' => '13274673-8f90-4630-bea1-9cccb25756ad2089******', 'title' => ''], 'CaName' => ['description' => 'Name of the CA certificate', 'type' => 'string', 'example' => 'mqtt_ca', 'title' => ''], 'Sn' => ['description' => 'SN serial number of the CA certificate', 'type' => 'string', 'example' => '007269004887******', 'title' => ''], 'CaContent' => ['description' => 'Content of the CA certificate. '."\n" .'> \\n represents a new line.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END CERTIFICATE-----', 'title' => ''], 'VerificationContent' => ['description' => 'Verify the content of the certificate. '."\n" .'> \\n represents a new line.', 'type' => 'string', 'example' => '-----BEGIN CERTIFICATE-----\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\n-----END CERTIFICATE-----', 'title' => ''], 'ValidBegin' => ['description' => 'The start time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1654137303000', 'title' => ''], 'ValidEnd' => ['description' => 'The end time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1969497303000', 'title' => ''], 'Status' => ['description' => 'The status of the CA certificate. The values are as follows:'."\n" .'- **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.'."\n" .'> After the CA certificate is registered, it is in an active state by default.', 'type' => 'string', 'example' => '1', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 2,\\n \\"PageSize\\": 10,\\n \\"CaCertificateVOS\\": [\\n {\\n \\"RegistrationCode\\": \\"13274673-8f90-4630-bea1-9cccb25756ad2089******\\",\\n \\"CaName\\": \\"mqtt_ca\\",\\n \\"Sn\\": \\"007269004887******\\",\\n \\"CaContent\\": \\"-----BEGIN CERTIFICATE-----\\\\\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\\\\\n-----END CERTIFICATE-----\\",\\n \\"VerificationContent\\": \\"-----BEGIN CERTIFICATE-----\\\\\\\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\\\\\\\n-----END CERTIFICATE-----\\",\\n \\"ValidBegin\\": \\"1654137303000\\",\\n \\"ValidEnd\\": \\"1969497303000\\",\\n \\"Status\\": \\"1\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n \\n 1\\n 2\\n 10\\n \\n 13274673-8f90-4630-bea1-9cccb25756ad2089******\\n mqtt_ca\\n 007269004887******\\n -----BEGIN CERTIFICATE-----\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\n-----END CERTIFICATE-----\\n -----BEGIN CERTIFICATE-----\\\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\\\n-----END CERTIFICATE-----\\n 1654137303000\\n 1969497303000\\n 1\\n \\n \\n","errorExample":""}]', 'title' => 'ListCaCertificate', 'summary' => 'Queries all certificate authority (CA) certificates that are registered with an ApsaraMQ for MQTT instance. ApsaraMQ for MQTT allows you to use X.509 certificates for authentication. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, you can use the device certificate to implement authentication. CA certificates are used to issue device certificates to clients and validate the device certificates.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListCaCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'ListDeviceCertificate' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '145872', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID of the Cloud Message Queue MQTT version, indicating which instance\'s device certificates need to be viewed.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'PageNo', 'in' => 'query', 'schema' => ['description' => 'Indicates which page of the results to return. The starting page is counted from 1.', 'type' => 'string', 'required' => true, 'example' => '2', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The maximum number of query records to display per page. Value range: 1 to 100.', 'type' => 'string', 'required' => true, 'example' => '10', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Data' => [ 'description' => 'Query result.', 'type' => 'object', 'properties' => [ 'Total' => ['description' => 'Maximum number of pages in the query result.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'PageNo' => ['description' => 'The current page number of the returned query records.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], 'PageSize' => ['description' => 'The maximum number of results to display per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], 'DeviceCertificateVOS' => [ 'description' => 'Details of the device certificate.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'ValidBegin' => ['description' => 'The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1654137303000', 'title' => ''], 'ValidEnd' => ['description' => 'The end time when the device certificate becomes effective. Formatted as a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1969497303000', 'title' => ''], 'DeviceSn' => ['description' => 'The SN serial number of the device certificate, used to uniquely identify a device certificate.', 'type' => 'string', 'example' => '356217374433******', 'title' => ''], 'DeviceContent' => ['description' => 'Content of the device certificate.'."\n" ."\n" .' represents a new line.', 'type' => 'string', 'example' => '-----BEGIN DEVICECERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END DEVICECERTIFICATE-----', 'title' => ''], 'Status' => ['description' => 'The status of the device certificate. The values are as follows:'."\n" .'- 0: indicates that the certificate is in an inactive state. - 1: indicates that the certificate is in an active state.'."\n" .'After the device certificate is registered, it defaults to the active state.', 'type' => 'string', 'example' => '1', 'title' => ''], 'CaSn' => ['description' => 'The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.', 'type' => 'string', 'example' => '00f26900ba87******', 'title' => ''], 'DeviceName' => ['description' => 'Name of the device certificate.', 'type' => 'string', 'example' => 'mqtt_device', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 2,\\n \\"PageSize\\": 10,\\n \\"DeviceCertificateVOS\\": [\\n {\\n \\"ValidBegin\\": \\"1654137303000\\",\\n \\"ValidEnd\\": \\"1969497303000\\",\\n \\"DeviceSn\\": \\"356217374433******\\",\\n \\"DeviceContent\\": \\"-----BEGIN DEVICECERTIFICATE-----\\\\\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\\\\\n-----END DEVICECERTIFICATE-----\\",\\n \\"Status\\": \\"1\\",\\n \\"CaSn\\": \\"00f26900ba87******\\",\\n \\"DeviceName\\": \\"mqtt_device\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n \\n 1\\n 2\\n 10\\n \\n 1654137303000\\n 1969497303000\\n 356217374433******\\n -----BEGIN DEVICECERTIFICATE-----\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\n-----END DEVICECERTIFICATE-----\\n 1\\n 00f26900ba87******\\n mqtt_device\\n \\n \\n","errorExample":""}]', 'title' => 'ListDeviceCertificate', 'summary' => 'Queries all device certificates that are registered with an ApsaraMQ for MQTT instance. Device certificates are digital certificates issued to clients by certificate authority (CA) root certificates. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, the broker uses the device certificate to authenticate the client. If the client passes the authentication, the client and the broker can communicate with each other based on the encrypted private key in the device certificate. If the client fails the authentication, access requests from the client are denied by the client.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'ListDeviceCertificateByCaSn' => [ 'methods' => ['get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '145874', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID bound to the CA certificate, which is the instance ID of the MQTT version of the cloud message queue.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'PageNo', 'in' => 'query', 'schema' => ['description' => 'Indicates the page number of the returned results. The starting page is counted from 1.', 'type' => 'string', 'required' => true, 'example' => '2', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The maximum number of query records to display per page. Value range: 1 to 100.', 'type' => 'string', 'required' => true, 'example' => '10', 'title' => ''], ], [ 'name' => 'CaSn', 'in' => 'query', 'schema' => ['description' => 'The SN serial number of the CA certificate to be queried, indicating which CA certificate\'s registered device certificates are to be retrieved.', 'type' => 'string', 'required' => true, 'example' => '007269004887******', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Data' => [ 'description' => 'Query result.', 'type' => 'object', 'properties' => [ 'Total' => ['description' => 'Total number of query results.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'PageNo' => ['description' => 'The current page number of the returned query records.', 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], 'PageSize' => ['description' => 'The maximum number of results to display per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], 'DeviceCertificateVOS' => [ 'description' => 'Details of the device certificate.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'ValidBegin' => ['description' => 'The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1654137303000', 'title' => ''], 'ValidEnd' => ['description' => 'The end time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.', 'type' => 'string', 'example' => '1969497303000', 'title' => ''], 'DeviceSn' => ['description' => 'The SN serial number of the device certificate, used to uniquely identify a device certificate.', 'type' => 'string', 'example' => '356217374433******', 'title' => ''], 'DeviceContent' => ['description' => 'Content of the device certificate.'."\n" ."\n" .' represents a new line.', 'type' => 'string', 'example' => '-----BEGIN DEVICECERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END DEVICECERTIFICATE-----', 'title' => ''], 'Status' => ['description' => 'The status of the device certificate. The values are as follows:'."\n" .'- 0: indicates that the certificate is in an inactive state. '."\n" .'- 1: indicates that the certificate is in an active state.'."\n" ."\n" .'After the device certificate is registered, it is in an active state by default.', 'type' => 'string', 'example' => '1', 'title' => ''], 'CaSn' => ['description' => 'The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.', 'type' => 'string', 'example' => '00f26900ba87******', 'title' => ''], 'DeviceName' => ['description' => 'Name of the device certificate.', 'type' => 'string', 'example' => 'mqtt_device', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => ''], ], 500 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'FindDeviceBySnError', 'errorMessage' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Data\\": {\\n \\"Total\\": 1,\\n \\"PageNo\\": 2,\\n \\"PageSize\\": 10,\\n \\"DeviceCertificateVOS\\": [\\n {\\n \\"ValidBegin\\": \\"1654137303000\\",\\n \\"ValidEnd\\": \\"1969497303000\\",\\n \\"DeviceSn\\": \\"356217374433******\\",\\n \\"DeviceContent\\": \\"-----BEGIN DEVICECERTIFICATE-----\\\\\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\\\\\n-----END DEVICECERTIFICATE-----\\",\\n \\"Status\\": \\"1\\",\\n \\"CaSn\\": \\"00f26900ba87******\\",\\n \\"DeviceName\\": \\"mqtt_device\\"\\n }\\n ]\\n }\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n \\n 1\\n 2\\n 10\\n \\n 1654137303000\\n 1969497303000\\n 356217374433******\\n -----BEGIN DEVICECERTIFICATE-----\\\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\\\n-----END DEVICECERTIFICATE-----\\n 1\\n 00f26900ba87******\\n mqtt_device\\n \\n \\n","errorExample":""}]', 'title' => 'ListDeviceCertificateByCaSn', 'summary' => 'Queries all device certificates that are issued by a certificate authority (CA) certificate and registered with ApsaraMQ for MQTT brokers. Device certificates are digital certificates issued to clients by CA root certificates. When you connect an ApsaraMQ for MQTT client to an ApsaraMQ for MQTT broker, the broker uses the device certificate to authenticate the client. If the client passes the authentication, the client and the broker can communicate with each other based on the encrypted private key in the device certificate. If the client fails the authentication, access requests from the client are denied by the client.', 'description' => '* Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" .'* You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.'."\n", 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListDeviceCertificateByCaSn', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'ListDeviceCredentialClientId' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the Cloud Message Queue MQTT version instance, which must match the actual instance ID used by the client. You can obtain this ID from the **Instance Details** page in the console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-xxxxxxxx', 'title' => ''], ], [ 'name' => 'GroupId', 'in' => 'query', 'schema' => ['description' => 'Group ID of the MQTT version of the micro message queue.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_xxx', 'title' => ''], ], [ 'name' => 'PageNo', 'in' => 'query', 'schema' => ['description' => 'Indicates the page number of the returned results. The starting page is counted from 1.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => '1', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The maximum number of query records to display per page.'."\n" .'Value range: 1 to 100.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '100', 'title' => ''], ], [ 'name' => 'NextToken', 'in' => 'query', 'schema' => ['description' => 'Token for starting the next page query.', 'type' => 'string', 'required' => false, 'example' => 'FFdXXXXXWa', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****', 'title' => ''], 'DeviceCredentialClientIdList' => [ 'description' => 'Returns the information list.', 'type' => 'object', 'properties' => [ 'Total' => ['description' => 'Total number of query results.', 'type' => 'string', 'example' => '10', 'title' => ''], 'ClientIdList' => [ 'description' => 'Client list.', 'type' => 'array', 'items' => ['description' => 'Client ID.', 'type' => 'string', 'example' => 'GID_test@@@pub-1', 'title' => ''], 'title' => '', 'example' => '', ], 'PageNo' => ['description' => 'The current page number of the returned query records.', 'type' => 'string', 'example' => '1', 'title' => ''], 'PageSize' => ['description' => 'The maximum number of results to display per page.', 'type' => 'string', 'example' => '100', 'title' => ''], 'NextToken' => ['description' => 'Indicates whether there is a token (Token) for the next query. Values:'."\n" ."\n" .'- For the first query and when there is no next query, this field does not need to be filled.'."\n" ."\n" .'- If there is a next query, the value should be the NextToken returned from the previous API call.', 'type' => 'string', 'example' => '634dxxxxx75b5f', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'DeviceCredentialNotFound', 'errorMessage' => 'Device Credential Not Found.Check if the device certificate is registered.', 'description' => ''], ['errorCode' => 'DeviceCredentialNumExceed', 'errorMessage' => 'The number of device credentia exceeds the limit. Please revoke unused device certificates.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'ListDeviceCredentialClientId', 'summary' => 'Queries clients that have applied for access credentials in unique-certificate-per-device authentication mode in an ApsaraMQ for MQTT instance.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDeviceCredentialClientId'], ], ], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"DeviceCredentialClientIdList\\": {\\n \\"Total\\": \\"10\\",\\n \\"ClientIdList\\": [\\n \\"GID_test@@@pub-1\\"\\n ],\\n \\"PageNo\\": \\"1\\",\\n \\"PageSize\\": \\"100\\",\\n \\"NextToken\\": \\"634dxxxxx75b5f\\"\\n }\\n}","type":"json"}]', ], 'ListGroupId' => [ 'summary' => 'You can call the ListGroupId operation to query all Group IDs in an instance.', 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '84622', 'abilityTreeNodes' => ['FEATUREons4L127M'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the instance for which you want to list group IDs.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-0pp1ldu****', 'title' => ''], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], 'required' => false, 'description' => 'A list of resource tags. You can specify up to 20 tags.', 'title' => '', 'example' => '', ], 'required' => false, 'maxItems' => 100, 'description' => 'The list of tags.', 'title' => '', 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The unique ID for the request. This is a common parameter.', 'type' => 'string', 'example' => '95996EEB-D894-44FA-A87C-940F5CD9****', 'title' => ''], 'Data' => [ 'description' => 'The details of the returned group IDs.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'UpdateTime' => ['description' => 'The timestamp of the last update for the group ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '1564577317000', 'title' => ''], 'InstanceId' => ['description' => 'The ID of the instance to which the group ID belongs.', 'type' => 'string', 'example' => 'post-cn-45910tj****', 'title' => ''], 'IndependentNaming' => ['description' => 'Indicates whether the instance has an independent namespace. Valid values:'."\n" ."\n" .'- **true**: The instance has an independent namespace. In this case, resource names must be unique within the instance, but they can be the same as resource names in other instances.'."\n" ."\n" .'- **false**: The instance does not have an independent namespace. In this case, resource names must be globally unique across all instances.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'GroupId' => ['description' => 'The group ID.', 'type' => 'string', 'example' => 'GID_test1', 'title' => ''], 'CreateTime' => ['description' => 'The creation timestamp of the group ID.', 'type' => 'integer', 'format' => 'int64', 'example' => '1564577317000', 'title' => ''], 'Tags' => [ 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'key', 'title' => ''], 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'value', 'title' => ''], ], 'description' => 'The tags that are associated with the group ID.', 'title' => '', 'example' => '', ], 'description' => 'The tags attached to the group ID.', 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InstanceNotFound', 'errorMessage' => 'Failed to find the instance. The instanceId may be invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"95996EEB-D894-44FA-A87C-940F5CD9****\\",\\n \\"Data\\": [\\n {\\n \\"UpdateTime\\": 1564577317000,\\n \\"InstanceId\\": \\"post-cn-45910tj****\\",\\n \\"IndependentNaming\\": true,\\n \\"GroupId\\": \\"GID_test1\\",\\n \\"CreateTime\\": 1564577317000,\\n \\"Tags\\": [\\n {\\n \\"TagKey\\": \\"key\\",\\n \\"TagValue\\": \\"value\\"\\n }\\n ]\\n }\\n ]\\n}","type":"json"}]', 'title' => 'ListGroupId', 'description' => 'Each successful call to the **ListGroupId** operation is counted as one message transaction and is billed based on transactions per second (TPS). For more information, see [billing details](~~52819~~).', 'requestParamsDescription' => '> For more information about other parameters, see [common parameters](~~163046~~) and [endpoint](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListGroupId'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:ListMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'ListInstances' => [ 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '265380', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'Tags', 'in' => 'query', 'schema' => ['description' => 'A list of resource tags in JSON format.', 'type' => 'string', 'required' => false, 'example' => '[{"key":"test","value":"test"}]', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'description' => 'The response object.', 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The ID of the request.', 'type' => 'string', 'example' => '294F5B26-FADF-41D0-BE68-14ABE4EB****', 'title' => ''], 'Code' => ['description' => 'The response code.', 'type' => 'string', 'example' => '200', 'title' => ''], 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'string', 'example' => 'true', 'title' => ''], 'Instances' => [ 'description' => 'The list of instances.', 'type' => 'array', 'items' => [ 'description' => 'The instance object.', 'type' => 'object', 'properties' => [ 'InstanceId' => ['description' => 'The instance ID.', 'type' => 'string', 'example' => 'mqtt-cn-xxxxxxx', 'title' => ''], 'InstanceName' => ['description' => 'The instance name.', 'type' => 'string', 'example' => 'mqtt-cn-xxxxxxx', 'title' => ''], 'InstanceStatus' => ['description' => 'The instance status.'."\n" ."\n" .'- 0: Preparing'."\n" ."\n" .'- 5: In Service'."\n" ."\n" .'- 7: Upgrading'."\n" ."\n" .'- 15: Frozen'."\n" ."\n" .'- 10: Released'."\n" ."\n" .'- 1: Not Activated'."\n" ."\n" .'- 2: Overdue'."\n" ."\n" .'- 3: Expired', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], 'InstanceType' => ['description' => 'The instance type:'."\n" ."\n" .'- 0: Basic Edition'."\n" ."\n" .'- 1: Platinum Edition'."\n" ."\n" .'- 2: Pay-as-you-go'."\n" ."\n" .'- 3: Subscription Lightweight'."\n" ."\n" .'- 4: Professional Edition'."\n" ."\n" .'- 5: Serverless Edition', 'type' => 'integer', 'format' => 'int32', 'example' => '4', 'title' => ''], 'Specific' => ['description' => 'The instance type of the Professional Edition instance.', 'type' => 'string', 'example' => 'mqtt.p2.1xlarge', 'title' => ''], 'RegionId' => ['description' => 'The region ID.', 'type' => 'string', 'example' => 'cn-shenzhen', 'title' => ''], 'CreateTime' => ['description' => 'The time when the instance was created.', 'type' => 'integer', 'format' => 'int64', 'example' => '1739345768000', 'title' => ''], 'ExpireTime' => ['description' => 'The expiration time of the instance.', 'type' => 'integer', 'format' => 'int64', 'example' => '1741795200000', 'title' => ''], 'KernelVersion' => ['description' => 'The Milvus version.', 'type' => 'string', 'example' => 'V3.3.0', 'title' => ''], 'MqttTags' => [ 'description' => 'The list of tags.', 'type' => 'array', 'items' => [ 'description' => 'The tag object.', 'type' => 'object', 'properties' => [ 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'test', 'title' => ''], 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'test', 'title' => ''], ], 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], 'OrderId' => ['description' => 'The order ID.', 'type' => 'string', 'example' => '245949616640095', 'title' => ''], ], 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], ], 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ['errorCode' => 'ServiceUnable', 'errorMessage' => 'The current user has not activated the ONS service. Please activate the service first.', 'description' => 'The current user has not activated the ONS service. Please activate the ONS service first. Thank you.'], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'title' => 'ListInstances', 'summary' => 'You can call this operation to query a list of instances.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListInstances'], ], ], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListMqttInstance', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"294F5B26-FADF-41D0-BE68-14ABE4EB****\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"operation success.\\",\\n \\"Success\\": \\"true\\",\\n \\"Instances\\": [\\n {\\n \\"InstanceId\\": \\"mqtt-cn-xxxxxxx\\",\\n \\"InstanceName\\": \\"mqtt-cn-xxxxxxx\\",\\n \\"InstanceStatus\\": 5,\\n \\"InstanceType\\": 4,\\n \\"Specific\\": \\"mqtt.p2.1xlarge\\",\\n \\"RegionId\\": \\"cn-shenzhen\\",\\n \\"CreateTime\\": 1739345768000,\\n \\"ExpireTime\\": 1741795200000,\\n \\"KernelVersion\\": \\"V3.3.0\\",\\n \\"MqttTags\\": [\\n {\\n \\"TagKey\\": \\"test\\",\\n \\"TagValue\\": \\"test\\"\\n }\\n ],\\n \\"OrderId\\": \\"245949616640095\\"\\n }\\n ]\\n}","type":"json"}]', ], 'ListTagResources' => [ 'summary' => 'Lists the tags that are attached to one or more resources.', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'list', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '255352', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ResourceType', 'in' => 'query', 'schema' => ['description' => 'The resource type. The only valid value is instance.', 'type' => 'string', 'required' => true, 'example' => 'instance', 'title' => ''], ], [ 'name' => 'ResourceId', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of resource IDs.', 'type' => 'array', 'items' => ['description' => 'The ID of the resource to query. Only instances are supported. ResourceId and Tag cannot both be empty.', 'type' => 'string', 'required' => false, 'example' => 'mqtt-cn-5yd3xxx', 'title' => ''], 'required' => false, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of resource tags. ResourceId and Tag cannot both be empty.', 'type' => 'array', 'items' => [ 'description' => 'A tag object.', 'type' => 'object', 'properties' => [ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], 'required' => false, 'title' => '', 'example' => '', ], 'required' => false, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], [ 'name' => 'NextToken', 'in' => 'query', 'schema' => ['description' => 'The token to start the next query.', 'type' => 'string', 'required' => false, 'example' => 'AAAAAaFXUH1VTHnBlds7StUakOQ=', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response object.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '34063BCA-0946-49C1-B824-2ED2C905****'], 'Code' => ['description' => 'The response code.', 'type' => 'string', 'example' => '200', 'title' => ''], 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'string', 'example' => 'true', 'title' => ''], 'NextToken' => ['description' => 'The token to start the next query.', 'type' => 'string', 'example' => 'AAAAAaFXUH1VTHnBlds7StUakOQ=', 'title' => ''], 'TagResources' => [ 'description' => 'A list of resource-tag mappings.', 'type' => 'array', 'items' => [ 'description' => 'A TagResource object.', 'type' => 'object', 'properties' => [ 'ResourceType' => ['description' => 'The resource type. The only valid value is instance.', 'type' => 'string', 'example' => 'instance', 'title' => ''], 'TagValue' => ['description' => 'The tag value.', 'type' => 'string', 'example' => 'test', 'title' => ''], 'ResourceId' => ['description' => 'The resource ID.', 'type' => 'string', 'example' => 'mqtt-cn-5yd3xxx'."\n", 'title' => ''], 'TagKey' => ['description' => 'The tag key.', 'type' => 'string', 'example' => 'test', 'title' => ''], ], 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ['errorCode' => 'ResourceIdNotFound', 'errorMessage' => 'resourceId does not exist.', 'description' => 'The tag resource does not exist.'], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"34063BCA-0946-49C1-B824-2ED2C905****\\",\\n \\"Code\\": \\"200\\",\\n \\"Message\\": \\"operation success.\\",\\n \\"Success\\": \\"true\\",\\n \\"NextToken\\": \\"AAAAAaFXUH1VTHnBlds7StUakOQ=\\",\\n \\"TagResources\\": [\\n {\\n \\"ResourceType\\": \\"instance\\",\\n \\"TagValue\\": \\"test\\",\\n \\"ResourceId\\": \\"mqtt-cn-5yd3xxx\\\\n\\",\\n \\"TagKey\\": \\"test\\"\\n }\\n ]\\n}","type":"json"}]', 'title' => 'ListTagResources', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], ], ], 'ramActions' => [ [ 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListTagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'QueryCustomAuthConnectBlack' => [ 'methods' => ['get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => ['operationType' => 'get', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'required' => true, 'example' => 'post-111****', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The ID of the client to be queried.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'NextToken', 'in' => 'query', 'schema' => ['description' => 'The token that marks the end position of the previous returned page. To obtain the next batch of data, call the operation again by using the value of NextToken returned by the previous request. If you call this operation for the first time or want to query all results, set NextToken to an empty string.'."\n", 'type' => 'string', 'required' => false, 'example' => 'xOfRU60sGEwN1OlFBIL8Ew==', 'title' => ''], ], [ 'name' => 'Size', 'in' => 'query', 'schema' => ['description' => 'The number of clients to be queried. Maximum value: 100.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '100', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response schema.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Code' => ['description' => 'The HTTP status code. The status code 200 indicates that the request is successful. Other status codes indicate that the request failed. For a list of error codes, see Error codes.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Data' => [ 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ 'Results' => [ 'description' => 'The returned results.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ 'ClientId' => ['description' => 'The client ID.'."\n", 'type' => 'string', 'example' => 'GID_TEST@@@test', 'title' => ''], 'Effect' => ['description' => 'Indicates whether to allow or deny access.'."\n", 'type' => 'string', 'example' => 'ALLOW', 'title' => ''], 'PermitAction' => ['description' => 'The authorized permissions.'."\n", 'type' => 'string', 'example' => 'CONNECT', 'title' => ''], ], 'title' => '', ], 'title' => '', ], 'NextToken' => ['description' => 'The pagination token that is used in the next request to retrieve a new page of results.'."\n", 'type' => 'string', 'example' => 'AAAAAZ0cM0HTqLXvgm7oMHWXcvc=', 'title' => ''], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\",\\n \\"Data\\": {\\n \\"Results\\": [\\n {\\n \\"ClientId\\": \\"GID_TEST@@@test\\",\\n \\"Effect\\": \\"ALLOW\\",\\n \\"PermitAction\\": \\"CONNECT\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAZ0cM0HTqLXvgm7oMHWXcvc=\\"\\n }\\n}","type":"json"}]', 'title' => 'QueryCustomAuthConnectBlack', 'summary' => 'Queries a client ID in a connection blacklist.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomAuthConnectBlack'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'QueryCustomAuthIdentity' => [ 'methods' => ['get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'required' => true, 'example' => 'post-111****', 'title' => ''], ], [ 'name' => 'Username', 'in' => 'query', 'schema' => ['description' => 'The username.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'query', 'schema' => [ 'description' => 'The identity type.', 'type' => 'string', 'enum' => ['USER', 'CLIENT'], 'required' => false, 'example' => 'USER', 'title' => '', ], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device. You can specify this parameter when the identity type is CLIENT.', 'type' => 'string', 'required' => false, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'NextToken', 'in' => 'query', 'schema' => ['description' => 'The token that marks the end position of the current query. You can pass this token as a parameter in the next call to continue paginating. If this is the first call or the last page is returned, the value is an empty string.', 'type' => 'string', 'required' => false, 'example' => 'eyJhY2NvdW50IjoiMTM4MTcxODk3NDQzMjQ1OSIsImV2ZW50SWQiOiJGMkUxOUE3QS1FM0Q0LTVCOEYtQkU4OS1CNkMyM0RBM0UyRjIiLCJsb2dJZCI6IjY2LTEzODE3MTg5NzQ0MzI0NTkiLCJydyI6IlciLCJ0aW1lIjoxNjc4MzI2MTI1MDAwfQ', 'title' => ''], ], [ 'name' => 'Size', 'in' => 'query', 'schema' => ['description' => 'The number of entries to query. Maximum value: 100.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '100', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => '', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => '', 'description' => 'Id of the request', 'type' => 'string', 'example' => '11568B5B-13A8-4E72-9DBA-3A14F7D3****'], 'Code' => ['description' => 'The response code. 200: The request is successful. Other codes indicate errors. For more information about error codes, see Error codes.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. true: The request is successful. false: The request failed.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The additional information.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Data' => [ 'description' => 'The query result.', 'type' => 'object', 'properties' => [ 'Results' => [ 'description' => 'The returned data.', 'type' => 'array', 'items' => [ 'description' => 'The returned data.', 'type' => 'object', 'properties' => [ 'Username' => ['description' => 'The username.', 'type' => 'string', 'example' => 'test', 'title' => ''], 'Secret' => ['description' => 'The secret key.', 'type' => 'string', 'example' => '62a5916d71767185b48907d85c2efa****', 'title' => ''], 'IdentityType' => ['description' => 'The identity type.'."\n" ."\n" .'- USER: Username only.'."\n" ."\n" .'- CLIENT: Specific to a client.', 'type' => 'string', 'example' => 'USER', 'title' => ''], 'ClientId' => ['description' => 'The client ID of the device when the identity type is CLIENT.', 'type' => 'string', 'example' => 'GID_ICP@@@4d378084', 'title' => ''], 'SignMode' => ['description' => 'The signature verification mode. ORIGIN: Original value comparison, which compares the password with the secret. SIGNED: The HmacSHA1 signature is calculated for the clientId using the secret for verification, and then the password is compared.', 'type' => 'string', 'example' => 'SIGNED', 'title' => ''], ], 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], 'NextToken' => ['description' => 'If more results are available, a NextToken is returned.', 'type' => 'string', 'example' => 'AAAAAXA+GzVqTutYpgkFjBrchKzuvSbpuTqtt6OF9tsC9QnJ', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'Query Identity Authentication', 'summary' => 'Queries custom identity authentication.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomAuthIdentity'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"11568B5B-13A8-4E72-9DBA-3A14F7D3****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\",\\n \\"Data\\": {\\n \\"Results\\": [\\n {\\n \\"Username\\": \\"test\\",\\n \\"Secret\\": \\"62a5916d71767185b48907d85c2efa****\\",\\n \\"IdentityType\\": \\"USER\\",\\n \\"ClientId\\": \\"GID_ICP@@@4d378084\\",\\n \\"SignMode\\": \\"SIGNED\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAXA+GzVqTutYpgkFjBrchKzuvSbpuTqtt6OF9tsC9QnJ\\"\\n }\\n}","type":"json"}]', ], 'QueryCustomAuthPermission' => [ 'methods' => ['get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => ['operationType' => 'get', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'query', 'schema' => [ 'description' => 'The identity type.'."\n", 'type' => 'string', 'required' => false, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'Identity', 'in' => 'query', 'schema' => ['description' => 'The username or client ID.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ 'name' => 'Topic', 'in' => 'query', 'schema' => ['description' => 'The topic whose authorization information you want to query. Multi-level topics and wildcard characters are supported.'."\n", 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], [ 'name' => 'NextToken', 'in' => 'query', 'schema' => ['description' => 'The token that marks the end position of the previous returned page. To obtain the next batch of data, call the operation again by using the value of NextToken returned by the previous request. If you call this operation for the first time or want to query all results, set NextToken to an empty string.'."\n", 'type' => 'string', 'required' => false, 'example' => 'AAAAAThmKW2HkRgzo4G7IRRTK2fC6zZmAk6y0bwoNPFOOcSP', 'title' => ''], ], [ 'name' => 'Size', 'in' => 'query', 'schema' => ['description' => 'The number of queries to be returned. Maximum value: 100.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'maximum' => '100', 'minimum' => '1', 'example' => '100', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response schema.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '63309FDB-ED6C-46AE-B31C-A172FBA0****'], 'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], 'Data' => [ 'description' => 'The returned data.'."\n", 'type' => 'object', 'properties' => [ 'Results' => [ 'description' => 'The response results.'."\n", 'type' => 'array', 'items' => [ 'description' => '', 'type' => 'object', 'properties' => [ 'Identity' => ['description' => 'The username or client ID.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], 'PermitAction' => ['description' => 'The authorized permissions.'."\n", 'type' => 'string', 'example' => 'PUB_SUB', 'title' => ''], 'Effect' => ['description' => 'Indicates whether to allow or deny access.'."\n", 'type' => 'string', 'example' => 'ALLOW', 'title' => ''], 'IdentityType' => ['description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'example' => 'USER', 'title' => ''], 'Topic' => ['description' => 'The topic name. Multi-level topics and wildcard characters are supported.'."\n", 'type' => 'string', 'example' => 'test', 'title' => ''], ], 'title' => '', ], 'title' => '', ], 'NextToken' => ['description' => 'The token that marks the end position of the previous returned page. To obtain the next batch of data, call the operation again by using the value of NextToken returned by the previous request. If you call this operation for the first time or want to query all results, set NextToken to an empty string.'."\n", 'type' => 'string', 'example' => 'AAAAAV/vsqTyeMlX1MIk7/b6NrZLIlsSVf49O04ac7HAmlBoaYspakK7ZZkR3vRDp5Y9Nz0EmuWYrtF+1qkUwuJzPk/qEto/FGxl5Kd+qdwNt3t8', 'title' => ''], ], 'title' => '', ], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"63309FDB-ED6C-46AE-B31C-A172FBA0****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\",\\n \\"Data\\": {\\n \\"Results\\": [\\n {\\n \\"Identity\\": \\"test\\",\\n \\"PermitAction\\": \\"PUB_SUB\\",\\n \\"Effect\\": \\"ALLOW\\",\\n \\"IdentityType\\": \\"USER\\",\\n \\"Topic\\": \\"test\\"\\n }\\n ],\\n \\"NextToken\\": \\"AAAAAV/vsqTyeMlX1MIk7/b6NrZLIlsSVf49O04ac7HAmlBoaYspakK7ZZkR3vRDp5Y9Nz0EmuWYrtF+1qkUwuJzPk/qEto/FGxl5Kd+qdwNt3t8\\"\\n }\\n}","type":"json"}]', 'title' => 'QueryCustomAuthPermission', 'summary' => 'Queries the authorization information about a topic.', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'QueryMqttTraceDevice' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'abilityTreeCode' => '84626', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttRegionId', 'in' => 'query', 'schema' => ['description' => 'The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](~~181438~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can view the instance ID in the **Basic Information** section on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-i7m26mf****', 'title' => ''], ], [ 'name' => 'Reverse', 'in' => 'query', 'schema' => ['description' => 'Specifies whether the returned results are displayed in reverse chronological order. Valid values:'."\n" ."\n" .'* **true**: The returned results are displayed in reverse time order of actions on the device. This means that the information about the latest action on the device is displayed as the first entry and the information about the earliest action on the device is displayed as the last entry.'."\n" .'* **false**: The returned results are displayed in time order of actions on the device. This means that the information about the earliest action on the device is displayed as the first entry and the information about the latest action on the device is displayed as the last entry.'."\n" ."\n" .'If you do not specify this parameter, the returned results are displayed in time order of actions on the device by default.'."\n", 'type' => 'boolean', 'required' => false, 'docRequired' => true, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device whose trace you want to query.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@producer', 'title' => ''], ], [ 'name' => 'BeginTime', 'in' => 'query', 'schema' => ['description' => 'The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1621580400000', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', 'schema' => ['description' => 'The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1621584000000', 'title' => ''], ], [ 'name' => 'CurrentPage', 'in' => 'query', 'schema' => ['description' => 'The number of the page to return. Pages start from page 1. If the input parameter value is greater than the total number of pages, the returned result is empty.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '1', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The number of entries to return on each page. Valid values: 1 to 100.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '5', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'CurrentPage' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'RequestId' => ['description' => 'The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '317076B7-F946-46BC-A98F-4CF9777C****', 'title' => ''], 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '2', 'title' => ''], 'Total' => ['description' => 'The total number of returned actions on the device.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '3', 'title' => ''], 'DeviceInfoList' => [ 'description' => 'The details of the action on the device.'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'ChannelId' => ['description' => 'The connection ID.'."\n", 'type' => 'string', 'example' => 'c69fe839209547fa9d073781b9cd****', 'title' => ''], 'Time' => ['description' => 'The time when the action occurred on the device.'."\n", 'type' => 'string', 'example' => '2021-05-21 15:51:54.867', 'title' => ''], 'ActionCode' => ['description' => 'The returned code for the action on the device. Valid values:'."\n" ."\n" .'* **mqtt.trace.action.connect**: This value is returned if the value of Action is **connect**.'."\n" .'* **mqtt.trace.action.close**: This value is returned if the value of Action is **close**.'."\n" .'* **mqtt.trace.action.disconnect**: This value is returned if the value of Action is **disconnect**.'."\n", 'type' => 'string', 'example' => 'mqtt.trace.action.connect', 'title' => ''], 'Action' => ['description' => 'The action on the device. Valid values:'."\n" ."\n" .'* **connect**: The ApsaraMQ for MQTT client requests a connection to the ApsaraMQ for MQTT broker.'."\n" .'* **close**: The TCP connection is closed.'."\n" .'* **disconnect**: The ApsaraMQ for MQTT client requests a disconnection from the ApsaraMQ for MQTT broker.'."\n", 'type' => 'string', 'example' => 'connect', 'title' => ''], 'ActionInfo' => ['description' => 'The returned information for the action on the device. Valid values:'."\n" ."\n" .'* **accepted**: The ApsaraMQ for MQTT broker accepts the connection request from the ApsaraMQ for MQTT client.'."\n" .'* **not authorized**: The TCP connection is closed because the permission verification of the client to access the instance fails.'."\n" .'* **clientId conflict**: The TCP connection is closed due to a conflict in the ID of the ApsaraMQ for MQTT client.'."\n" .'* **resource auth failed**: The TCP connection is closed because the permission verification for the ApsaraMQ for MQTT client to access the topic or group fails.'."\n" .'* **no heart**: The TCP connection is closed because no heartbeat is detected on the client.'."\n" .'* **closed by client**: The TCP connection is closed because an exception occurs on the client.'."\n" .'* **disconnected by client**: The client requests a disconnection.'."\n" .'* **invalid param**: The TCP connection is closed due to invalid request parameters.'."\n" .'* **Socket IOException**: The TCP connection is closed due to network jitter or packet loss.'."\n", 'type' => 'string', 'example' => 'accept', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"317076B7-F946-46BC-A98F-4CF9777C****\\",\\n \\"PageSize\\": 2,\\n \\"Total\\": 3,\\n \\"DeviceInfoList\\": [\\n {\\n \\"ChannelId\\": \\"c69fe839209547fa9d073781b9cd****\\",\\n \\"Time\\": \\"2021-05-21 15:51:54.867\\",\\n \\"ActionCode\\": \\"mqtt.trace.action.connect\\",\\n \\"Action\\": \\"connect\\",\\n \\"ActionInfo\\": \\"accept\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n\\n connect\\n mqtt.trace.action.connect\\n accepted\\n \\n 27e1c09a1d7d4944901500db7186****\\n \\n \\n close\\n mqtt.trace.action.close\\n no heart\\n \\n 27e1c09a1d7d4944901500db7186****\\n \\n \\n connect\\n mqtt.trace.action.connect\\n accepted\\n \\n 34022074d3c1403faba6e0334121****\\n \\n 5\\n 1\\n 3\\n 317076B7-F946-46BC-A98F-4CF9777C****\\n","errorExample":""}]', 'title' => 'QueryMqttTraceDevice', 'summary' => 'Queries the trace of a device that corresponds to an ApsaraMQ for MQTT client by page. When the status of a device is abnormal, you can call this operation to query the connection history of the device. This helps you efficiently troubleshoot issues.', 'description' => '* Each successful call to the **QueryMqttTraceDevice** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n" .'* You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttDeviceTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'QueryMqttTraceMessageOfClient' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'none', 'abilityTreeCode' => '84627', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttRegionId', 'in' => 'query', 'schema' => ['description' => 'The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](~~181438~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can view the instance ID in the **Basic Information** section of the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-i7m26mf****', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device whose messages you want to query.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@producer', 'title' => ''], ], [ 'name' => 'BeginTime', 'in' => 'query', 'schema' => ['description' => 'The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1618646400000', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', 'schema' => ['description' => 'The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1621591200000', 'title' => ''], ], [ 'name' => 'CurrentPage', 'in' => 'query', 'schema' => ['description' => 'The number of the page to return. Pages start from page 1. If the input parameter value is greater than the total number of pages, the returned result is empty.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '1', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The number of entries to return on each page. Valid values: 1 to 100.'."\n", 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '5', 'title' => ''], ], [ 'name' => 'Reverse', 'in' => 'query', 'schema' => ['description' => 'Specifies whether the returned results are displayed in reverse chronological order. Valid values:'."\n" ."\n" .'* **true**: The returned results are displayed in reverse order of the time when messages are sent or received. This means that the latest sent or received message is displayed as the first entry and the earliest sent or received message is displayed as the last entry.'."\n" .'* **false**: The returned results are displayed in order of the time when messages are sent or received. This means that the earliest sent or received message is displayed as the first entry and the latest sent or received message is displayed as the last entry.'."\n" ."\n" .'If this parameter is not specified, the returned results are displayed in order of the time when messages are sent or received.'."\n", 'type' => 'boolean', 'required' => false, 'example' => 'false', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'CurrentPage' => ['description' => 'The page number of the returned page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'RequestId' => ['description' => 'The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => 'B096B9D6-62F3-4567-BB59-58D1362E****', 'title' => ''], 'PageSize' => ['description' => 'The number of entries returned per page.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '10', 'title' => ''], 'Total' => ['description' => 'The total number of messages returned.'."\n", 'type' => 'integer', 'format' => 'int64', 'example' => '5', 'title' => ''], 'MessageOfClientList' => [ 'description' => 'The returned messages.'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Time' => ['description' => 'The time when the message was sent or received.'."\n", 'type' => 'string', 'example' => '2021-05-21 15:08:19.234', 'title' => ''], 'Action' => ['description' => 'The action on the message. Valid values:'."\n" ."\n" .'* **pub_mqtt**: The ApsaraMQ for MQTT client sends the message.'."\n" .'* **sub**: The ApsaraMQ for MQTT client subscribes to the message.'."\n" .'* **push_offline**: The ApsaraMQ for MQTT broker pushes the offline message to the ApsaraMQ for MQTT client.'."\n", 'type' => 'string', 'example' => 'pub_mqtt', 'title' => ''], 'ActionCode' => ['description' => 'The returned code for the action on the message. Valid values:'."\n" ."\n" .'* **mqtt.trace.action.msg.pub.mqtt**: This value is returned if the value of Action is **pub_mqtt**.'."\n" .'* **mqtt.trace.action.msg.sub**: This value is returned if the value of Action is **sub**.'."\n" .'* **mqtt.trace.action.msg.push.offline**: This value is returned if the value of Action is **push_offline**.'."\n", 'type' => 'string', 'example' => 'mqtt.trace.action.msg.pub.mqtt', 'title' => ''], 'ActionInfo' => ['description' => 'The information returned for the action on the message. Valid values:'."\n" ."\n" .'* **Pub From Mqtt Client**: This value is returned if the value of Action is **pub_mqtt**.'."\n" .'* **Push To Mqtt Client**: This value is returned if the value of Action is **sub**.'."\n" .'* **Push Offline Msg To Mqtt Client**: This value is returned if the value of Action is **push_offline**.'."\n", 'type' => 'string', 'example' => 'Pub From Mqtt Client', 'title' => ''], 'MsgId' => ['description' => 'The message ID.'."\n", 'type' => 'string', 'example' => 'AC1EC0030EAB78308DB16A3EC773****', 'title' => ''], 'ClientId' => ['description' => 'The client ID of the device.'."\n", 'type' => 'string', 'example' => 'GID_test@@@producer', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"B096B9D6-62F3-4567-BB59-58D1362E****\\",\\n \\"PageSize\\": 10,\\n \\"Total\\": 5,\\n \\"MessageOfClientList\\": [\\n {\\n \\"Time\\": \\"2021-05-21 15:08:19.234\\",\\n \\"Action\\": \\"pub_mqtt\\",\\n \\"ActionCode\\": \\"mqtt.trace.action.msg.pub.mqtt\\",\\n \\"ActionInfo\\": \\"Pub From Mqtt Client\\",\\n \\"MsgId\\": \\"AC1EC0030EAB78308DB16A3EC773****\\",\\n \\"ClientId\\": \\"GID_test@@@producer\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n B096B9D6-62F3-4567-BB59-58D1362E****\\n 10\\n 1\\n 5\\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n Pub From Mqtt Client\\n \\n AC1EC0030EAB78308DB16A3EC773****\\n \\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n Pub From Mqtt Client\\n \\n AC1EC0030EAB78308DB16A3EC78F****\\n \\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n Pub From Mqtt Client\\n \\n AC1EC0030EAB78308DB16A3EC78F****\\n \\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n Pub From Mqtt Client\\n \\n AC1EC0030EAB78308DB16A3EC78F****\\n \\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n Pub From Mqtt Client\\n \\n AC1EC0030EAB78308DB16A3EC78F****\\n \\n","errorExample":""}]', 'title' => 'QueryMqttTraceMessageOfClient', 'summary' => 'Queries messages on a device within a specific period of time. If a message is not sent or received as expected, you can call this operation to query the messaging status of the message to efficiently troubleshoot issues.', 'description' => '* Each successful call to the **QueryMqttTraceMessageOfClient** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n" .'* You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceMessageOfClient'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttDeviceTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'QueryMqttTraceMessagePublish' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'abilityTreeCode' => '84628', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttRegionId', 'in' => 'query', 'schema' => ['description' => 'The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](~~181438~~).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can view the instance ID in the **Basic Information** section on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-i7m26mf****', 'title' => ''], ], [ 'name' => 'MsgId', 'in' => 'query', 'schema' => ['description' => 'The message ID.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'AC1EC0030EAB78308DB16A3EC773****', 'title' => ''], ], [ 'name' => 'BeginTime', 'in' => 'query', 'schema' => ['description' => 'The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1618646400000', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', 'schema' => ['description' => 'The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.'."\n", 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1621591200000', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '69AD5550-BF22-438A-9202-A6E89185****', 'title' => ''], 'MessageTraceLists' => [ 'description' => 'The message traces.'."\n", 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Time' => ['description' => 'The time when the message was sent.'."\n", 'type' => 'string', 'example' => '2021-05-21 15:08:19.210', 'title' => ''], 'Action' => ['description' => 'The action on the message. Valid values:'."\n" ."\n" .'* **pub_mqtt**: indicates that the message was sent by an ApsaraMQ for MQTT client.'."\n" .'* **pub_mq**: indicates that the message was sent by an ApsaraMQ for RocketMQ client.'."\n", 'type' => 'string', 'example' => 'pub_mqtt', 'title' => ''], 'ActionCode' => ['description' => 'The returned code for the action on the message. Valid values:'."\n" ."\n" .'* **mqtt.trace.action.msg.pub.mqtt**: This value is returned if the value of Action is **pub_mqtt**.'."\n" .'* **mqtt.trace.action.msg.pub.mq**: This value is returned if the value of Action is **pub_mq**.'."\n", 'type' => 'string', 'example' => 'mqtt.trace.action.msg.pub.mqtt', 'title' => ''], 'ActionInfo' => ['description' => 'The returned information for the action on the message. Valid values:'."\n" ."\n" .'* **Pub From Mqtt Client**: This value is returned if the value of Action is **pub_mqtt**.'."\n" .'* **Pub From MQ**: This value is returned if the value of Action is **pub_mq**.'."\n", 'type' => 'string', 'example' => 'Pub From Mqtt Client', 'title' => ''], 'MsgId' => ['description' => 'The message ID.'."\n", 'type' => 'string', 'example' => 'AC1EC0030EAB78308DB16A3EC773BD95', 'title' => ''], 'ClientId' => ['description' => 'The ID of the client that sends the message.'."\n", 'type' => 'string', 'example' => 'GID_test@@@producer', 'title' => ''], ], 'description' => '', 'title' => '', ], 'title' => '', ], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"69AD5550-BF22-438A-9202-A6E89185****\\",\\n \\"MessageTraceLists\\": [\\n {\\n \\"Time\\": \\"2021-05-21 15:08:19.210\\",\\n \\"Action\\": \\"pub_mqtt\\",\\n \\"ActionCode\\": \\"mqtt.trace.action.msg.pub.mqtt\\",\\n \\"ActionInfo\\": \\"Pub From Mqtt Client\\",\\n \\"MsgId\\": \\"AC1EC0030EAB78308DB16A3EC773BD95\\",\\n \\"ClientId\\": \\"GID_test@@@producer\\"\\n }\\n ]\\n}","errorExample":""},{"type":"xml","example":"\\n \\n pub_mqtt\\n mqtt.trace.action.msg.pub.mqtt\\n GID_test@@@producer\\n \\n Pub From Mqtt Client\\n AC1EC0030EAB78308DB16A3EC773****\\n \\n 69AD5550-BF22-438A-9202-A6E89185****\\n","errorExample":""}]', 'title' => 'QueryMqttTraceMessagePublish', 'summary' => 'Queries the trace of a message. If a message is not sent or received as expected, you can call this operation to view the message details to troubleshoot the issue. For example, you can query the time when the message is published and the client that publishes the message.', 'description' => '* Each successful call to the **QueryMqttTraceMessagePublish** operation increases the messaging transactions per second (TPS). This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n" .'* You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n", 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttPubTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'QueryMqttTraceMessageSubscribe' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeCode' => '84629', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttRegionId', 'in' => 'query', 'schema' => ['description' => 'The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](~~181438~~).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'cn-hangzhou', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can view the instance ID in the **Basic Information** section of the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'mqtt-cn-i7m26mf****', 'title' => ''], ], [ 'name' => 'Reverse', 'in' => 'query', 'schema' => ['description' => 'Specifies whether the returned results are displayed in reverse chronological order. Valid values:'."\n" ."\n" .'- **true**: The returned results are displayed in reverse order of the time when messages are delivered. This means that the latest consumed message is displayed as the first entry and the earliest consumed message is displayed as the last entry.'."\n" ."\n" .'- **false**: The returned results are displayed in order of the time when messages are delivered. This means that the earliest consumed message is displayed as the first entry and the latest consumed message is displayed as the last entry.'."\n" ."\n" .'If you do not specify this parameter, the returned results are displayed in order of time when messages are delivered.', 'type' => 'boolean', 'required' => false, 'docRequired' => true, 'example' => 'false', 'title' => ''], ], [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The ID of the client that subscribes to the message. If you do not specify this parameter, the IDs of all clients that subscribe to the message are returned.', 'type' => 'string', 'required' => false, 'docRequired' => true, 'example' => 'GID_test@@@consumer', 'title' => ''], ], [ 'name' => 'BeginTime', 'in' => 'query', 'schema' => ['description' => 'The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1621936800000', 'title' => ''], ], [ 'name' => 'EndTime', 'in' => 'query', 'schema' => ['description' => 'The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'required' => true, 'docRequired' => true, 'maximum' => '9223372036854774807', 'minimum' => '-9223372036854774808', 'example' => '1618646400000', 'title' => ''], ], [ 'name' => 'CurrentPage', 'in' => 'query', 'schema' => ['description' => 'The number of the page to return. Pages start from page 1. If the input parameter value is greater than the total number of pages, the returned result is empty.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '1', 'title' => ''], ], [ 'name' => 'PageSize', 'in' => 'query', 'schema' => ['description' => 'The number of entries to return on each page. Valid values: 1 to 100.', 'type' => 'integer', 'format' => 'int32', 'required' => true, 'docRequired' => true, 'maximum' => '2147483647', 'minimum' => '-2147483648', 'example' => '5', 'title' => ''], ], [ 'name' => 'MsgId', 'in' => 'query', 'schema' => ['description' => 'The message ID.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'maxLength' => 2147483647, 'minLength' => 0, 'example' => 'AC1EC1B33D5978308DB17F3245E4****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'CurrentPage' => ['description' => 'The page number of the returned page.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], 'RequestId' => ['description' => 'The unique ID that the system generates for the request. You can use the ID to troubleshoot issues. This parameter is a common parameter.', 'type' => 'string', 'example' => '4E685844-ADAF-4D85-9EAC-F9471E8C****', 'title' => ''], 'PageSize' => ['description' => 'The number of entries returned per page.', 'type' => 'integer', 'format' => 'int32', 'example' => '5', 'title' => ''], 'Total' => ['description' => 'The returned delivery traces.', 'type' => 'integer', 'format' => 'int64', 'example' => '2', 'title' => ''], 'MessageTraceLists' => [ 'description' => 'The delivery trace of the queried message.', 'type' => 'array', 'items' => [ 'type' => 'object', 'properties' => [ 'Time' => ['description' => 'The time when the message was delivered.', 'type' => 'string', 'example' => '2021-05-25 16:46:41.274', 'title' => ''], 'Action' => ['description' => 'The action on the message. Valid values:'."\n" ."\n" .'- **sub**: The ApsaraMQ for MQTT client subscribes to the message.'."\n" ."\n" .'- **push\\_offline**: The ApsaraMQ for MQTT broker pushes the offline message to the ApsaraMQ for MQTT client.', 'type' => 'string', 'example' => 'sub', 'title' => ''], 'ActionCode' => ['description' => 'The code returned for the action on the message. Valid values:'."\n" ."\n" .'- **mqtt.trace.action.msg.sub**: The value that is returned if the value of Action is **sub**.'."\n" ."\n" .'- **mqtt.trace.action.msg.push.offline**: The value that is returned if the value of Action is **push\\_offline**.', 'type' => 'string', 'example' => 'mqtt.trace.action.msg.sub', 'title' => ''], 'ActionInfo' => ['description' => 'The returned information for the action on the message. Valid values:'."\n" ."\n" .'- **Push To Mqtt Client**: The value that is returned if the value of Action is **sub**.'."\n" ."\n" .'- **Push Offline Msg To Mqtt Client**: The value that is returned if the value of Action is **push\\_offline**.', 'type' => 'string', 'example' => 'Push To Mqtt Client', 'title' => ''], 'MsgId' => ['description' => 'The message ID.', 'type' => 'string', 'example' => 'AC1EC1B33D5978308DB17F3245E4****', 'title' => ''], 'ClientId' => ['description' => 'The ID of the client that subscribes to the message.', 'type' => 'string', 'example' => 'GID_test@@@consumer', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], 403 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'title' => 'QueryMqttTraceMessageSubscribe', 'summary' => 'Queries the delivery trace of a message. If a message is not sent or received as expected, you can call this operation to view the details about the message. For example, you can query the clients that subscribe to the message and the time when the message is delivered. This operation helps you locate the problem and identify the cause of the problem.', 'description' => '- Each successful call to the **QueryMqttTraceMessageSubscribe** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n" ."\n" .'- You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).', 'requestParamsDescription' => ' ', 'responseParamsDescription' => ' ', 'extraInfo' => '## 控制台操作'."\n" .'除了调用**QueryMqttTraceMessageSubscribe**接口,您还可以通过微消息队列MQTT版控制台查看消息的投递轨迹。具体操作,请参见[消息轨迹查询](~~205708~~)。', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceMessageSubscribe'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttSubTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"CurrentPage\\": 1,\\n \\"RequestId\\": \\"4E685844-ADAF-4D85-9EAC-F9471E8C****\\",\\n \\"PageSize\\": 5,\\n \\"Total\\": 2,\\n \\"MessageTraceLists\\": [\\n {\\n \\"Time\\": \\"2021-05-25 16:46:41.274\\",\\n \\"Action\\": \\"sub\\",\\n \\"ActionCode\\": \\"mqtt.trace.action.msg.sub\\",\\n \\"ActionInfo\\": \\"Push To Mqtt Client\\",\\n \\"MsgId\\": \\"AC1EC1B33D5978308DB17F3245E4****\\",\\n \\"ClientId\\": \\"GID_test@@@consumer\\"\\n }\\n ]\\n}","type":"json"}]', ], 'QuerySessionByClientId' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'get', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREonsICR0M4'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT client that you want to query.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the [ApsaraMQ for MQTT console](https://mqtt.console.aliyun.com).', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'OnlineStatus' => ['description' => 'Indicates whether the ApsaraMQ for MQTT client is connected to the ApsaraMQ for MQTT broker. Valid values:'."\n" ."\n" .'- **true**'."\n" ."\n" .'- **false**', 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.', 'type' => 'string', 'example' => 'E4581CCF-62AF-44D9-B5B4-D1DBBC0E****', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 403 => [ ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 417 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'QuerySessionByClientId', 'summary' => 'Queries the running status of an ApsaraMQ for MQTT client. You can troubleshoot issues based on the queried results. You can enter the ID of an ApsaraMQ for MQTT client to check the connection status and IP address of the device.', 'description' => '- You can call this operation up to 500 times per second.\\*\\*\\*\\* For more information, see [Limits on QPS](~~163047~~).'."\n" ."\n" .'- Each successful call to the **QuerySessionByClientId** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).', 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~178121~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySessionByClientId'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"OnlineStatus\\": true,\\n \\"RequestId\\": \\"E4581CCF-62AF-44D9-B5B4-D1DBBC0E****\\"\\n}","type":"json"}]', ], 'QueryToken' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => ['operationType' => 'get'], 'parameters' => [ [ 'name' => 'Token', 'in' => 'query', 'schema' => ['description' => 'The token that you want to query.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the [ApsaraMQ for MQTT console](https://mqtt.console.aliyun.com/).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'TokenStatus' => ['description' => 'The status of the queried token. Valid values:'."\n" ."\n" .'* **true**: indicates the token is valid.'."\n" .'* **false**: indicates the token is invalid.'."\n", 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'RequestId' => ['description' => 'The unique ID that the system generates for the request. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '5C8AADD0-6A95-436D-AFA0-3405CCE3****', 'title' => ''], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'QueryTokenOverFlow', 'errorMessage' => 'You have queried tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"TokenStatus\\": true,\\n \\"RequestId\\": \\"5C8AADD0-6A95-436D-AFA0-3405CCE3****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n5C8AADD0-6A95-436D-AFA0-3405CCE3****\\r\\ntrue\\r\\n","errorExample":""}]', 'title' => 'QueryToken', 'summary' => 'Queries the status of a token. If token-based authentication is used for permission authentication on an ApsaraMQ for MQTT broker, a token that is issued by the broker is required for authentication each time a client is connected to the broker. A token is a temporary credential and is valid only within a specific period of time. You can call this operation to query whether a token expires.', 'description' => '* You can call this operation up to 100 times per second per account. If you want to increase the limit, join the DingTalk group 35228338 to contact ApsaraMQ for MQTT technical support.'."\n" .'* Each successful call to the **QueryToken** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n", 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryToken'], ], ], 'ramActions' => [ [ 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'RefreshDeviceCredential' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device whose access credential you want to update.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.', 'type' => 'string', 'example' => 'E4581CCF-62AF-44D9-B5B4-D1DBDC0F****', 'title' => ''], 'DeviceCredential' => [ 'description' => 'The access credential of the device.', 'type' => 'object', 'properties' => [ 'UpdateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was last updated. The value of this parameter is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'DeviceAccessKeyId' => ['description' => 'The AccessKey ID of the device.', 'type' => 'string', 'example' => 'DC.Z5fXh9sRRVufyLi6wo****', 'title' => ''], 'CreateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was created. The value of this parameter is a UNIX timestamp in milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'InstanceId' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'example' => 'post-cn-0pp12gl****', 'title' => ''], 'DeviceAccessKeySecret' => ['description' => 'The AccessKey secret of the device.', 'type' => 'string', 'example' => 'DC.BJMkn4eMQJK2vaApTS****', 'title' => ''], 'ClientId' => ['description' => 'The client ID of the device.', 'type' => 'string', 'example' => 'GID_test@@@test', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'DeviceCredentialNotFound', 'errorMessage' => 'Device Credential Not Found.Check if the device certificate is registered.', 'description' => ''], ['errorCode' => 'DeviceCredentialNumExceed', 'errorMessage' => 'The number of device credentia exceeds the limit. Please revoke unused device certificates.', 'description' => ''], ['errorCode' => 'DeviceCredentialExsit', 'errorMessage' => 'Device Credential Exsit.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'RefreshDeviceCredential', 'summary' => 'Updates the access credential of a device.', 'description' => '## [](#)Limits'."\n" ."\n" .'You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n" ."\n" .'> Each successful call to the **RefreshDeviceCredential** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).', 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDeviceCredential'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:RefreshDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4581CCF-62AF-44D9-B5B4-D1DBDC0F****\\",\\n \\"DeviceCredential\\": {\\n \\"UpdateTime\\": 1605541382000,\\n \\"DeviceAccessKeyId\\": \\"DC.Z5fXh9sRRVufyLi6wo****\\",\\n \\"CreateTime\\": 1605541382000,\\n \\"InstanceId\\": \\"post-cn-0pp12gl****\\",\\n \\"DeviceAccessKeySecret\\": \\"DC.BJMkn4eMQJK2vaApTS****\\",\\n \\"ClientId\\": \\"GID_test@@@test\\"\\n }\\n}","type":"json"}]', ], 'RegisterCaCertificate' => [ 'methods' => ['post', 'get'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '141175', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance to which you want to bind the CA certificate.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-7mz2d******', 'title' => ''], ], [ 'name' => 'CaName', 'in' => 'query', 'schema' => ['description' => 'The name of the CA certificate that you want to register with an ApsaraMQ for MQTT broker.', 'type' => 'string', 'required' => true, 'example' => 'mqtt_ca', 'title' => ''], ], [ 'name' => 'CaContent', 'in' => 'query', 'schema' => ['description' => 'The content of the CA certificate that you want to register with an ApsaraMQ for MQTT broker.'."\n" ."\n" .'> In the example, '."\n" .' indicates a line feed.', 'type' => 'string', 'required' => true, 'example' => '-----BEGIN CERTIFICATE-----\\nMIIDuzCCAqdGVzdC5jbi1xaW5n******\\n-----END CERTIFICATE-----', 'title' => ''], ], [ 'name' => 'VerificationContent', 'in' => 'query', 'schema' => ['description' => 'The content of the validation certificate issued by the CA certificate that you want to register with an ApsaraMQ for MQTT broker. The validation certificate must be used together with the registration code of the CA certificate to verify the private key of the CA certificate.'."\n" ."\n" .'> In the example, '."\n" .' indicates a line feed.', 'type' => 'string', 'required' => true, 'example' => '-----BEGIN CERTIFICATE-----\\nMIID/DCCAu+Y5sRMpp9tnd+4s******\\n-----END CERTIFICATE-----', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => '', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****'], 'Sn' => ['description' => 'The serial number of the registered CA certificate. The serial number is the unique identifier of a CA certificate.', 'type' => 'string', 'example' => '007269004887******', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ['errorCode' => 'RegisterCodeError', 'errorMessage' => 'Register code error in verification certificate.', 'description' => ''], ['errorCode' => 'ParameterFieldCheckFailed', 'errorMessage' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'MqttApplyCluster4InstanceFailed', 'errorMessage' => 'the instance can not find cluster.', 'description' => 'The instance failed to obtain cluster information.'], ['errorCode' => 'SystemError', 'errorMessage' => 'system error.', 'description' => 'System error, please try again'], ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ], [ ['errorCode' => 'RegisterCodeUsed', 'errorMessage' => 'Register code has been used.', 'description' => ''], ['errorCode' => 'GetCaNumError', 'errorMessage' => 'Failed to get ca num. Try again later.', 'description' => ''], ['errorCode' => 'CaNumExceed', 'errorMessage' => 'CA certificate num exceed', 'description' => ''], ['errorCode' => 'CertificateContentError', 'errorMessage' => 'Certificate content error, please check ca/verification certificate content. BasicConstraints extension should be set to true in CA certificate', 'description' => ''], ['errorCode' => 'SnNotUnique', 'errorMessage' => 'Sn is not unique in gloabal', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'title' => 'RegisterCaCertificate', 'summary' => 'RegisterCaCertificate', 'description' => '- Only ApsaraMQ for MQTT Enterprise Platinum Edition instances support this operation.'."\n" ."\n" .'- You can call this operation up to 500 times per second per Alibaba Cloud account. If you want to increase the limit, join the DingTalk group (ID: 35228338) to contact ApsaraMQ for MQTT technical support.', 'extraInfo' => '- Only Platinum and Professional instances support using the RegisterCaCertificate interface. - The request frequency limit per user is 500 times/second. For special requirements, please contact Cloud Message Queue MQTT version technical support, DingTalk group number: 35228338.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterCaCertificate'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:RegisterCa', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\",\\n \\"Sn\\": \\"007269004887******\\"\\n}","type":"json"}]', ], 'RegisterDeviceCredential' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'none', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device for which you want to create an access credential.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.', 'type' => 'string', 'example' => 'E4581CCF-62AF-44D9-B5B4-D1DBDC0E****', 'title' => ''], 'DeviceCredential' => [ 'description' => 'The access credential of the device.', 'type' => 'object', 'properties' => [ 'UpdateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was last updated. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'DeviceAccessKeyId' => ['description' => 'The AccessKey ID of the device.', 'type' => 'string', 'example' => 'DC.Z5fXh9sRRVufyLi6wo****', 'title' => ''], 'CreateTime' => ['description' => 'The timestamp that indicates when the access credential of the device was created. Unit: milliseconds.', 'type' => 'integer', 'format' => 'int64', 'example' => '1605541382000', 'title' => ''], 'InstanceId' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.', 'type' => 'string', 'example' => 'post-cn-0pp12gl****', 'title' => ''], 'DeviceAccessKeySecret' => ['description' => 'The AccessKey secret of the device.', 'type' => 'string', 'example' => 'DC.BJMkn4eMQJK2vaApTS****', 'title' => ''], 'ClientId' => ['description' => 'The client ID of the device.', 'type' => 'string', 'example' => 'GID_test@@@test', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'DeviceCredentialNumExceed', 'errorMessage' => 'The number of device credentia exceeds the limit. Please revoke unused device certificates.', 'description' => ''], ['errorCode' => 'DeviceCredentialNotFound', 'errorMessage' => 'Device Credential Not Found.Check if the device certificate is registered.', 'description' => ''], ['errorCode' => 'DeviceCredentialExsit', 'errorMessage' => 'Device Credential Exsit.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'RegisterDeviceCredential', 'summary' => 'Registers an access credential for a device. In unique-certificate-per-device authentication mode, an application server applies a unique access credential for each device from the corresponding ApsaraMQ for MQTT broker. The access credential of a device consists of the client ID, AccessKey ID, and AccessKey secret of the device. When you connect a device to ApsaraMQ for MQTT, you must configure Username and Password based on the access credential of the device for authentication. You can activate the device and transfer data between the device and ApsaraMQ for MQTT only after the authentication is passed.', 'description' => '- You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n" ."\n" .'- Each successful call to the **RegisterDeviceCredential** operation increases the messaging transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).', 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterDeviceCredential'], ], ], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:RegisterDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4581CCF-62AF-44D9-B5B4-D1DBDC0E****\\",\\n \\"DeviceCredential\\": {\\n \\"UpdateTime\\": 1605541382000,\\n \\"DeviceAccessKeyId\\": \\"DC.Z5fXh9sRRVufyLi6wo****\\",\\n \\"CreateTime\\": 1605541382000,\\n \\"InstanceId\\": \\"post-cn-0pp12gl****\\",\\n \\"DeviceAccessKeySecret\\": \\"DC.BJMkn4eMQJK2vaApTS****\\",\\n \\"ClientId\\": \\"GID_test@@@test\\"\\n }\\n}","type":"json"}]', ], 'RevokeToken' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => ['operationType' => 'delete'], 'parameters' => [ [ 'name' => 'Token', 'in' => 'query', 'schema' => ['description' => 'The token that you want to revoke.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'LzMT+XLFl5s/YWJ/MlDz4t/Lq5HC1iGU1P28HAMaxYxn8aQbALNtml7QZKl9L9kPe6LqUb95tEVo+zUqOogs9+jZwDUSzsd4X4qaD3n2TrBEuMOqKkk1Xdrvu9VBQQvIYbz7MJWZDYC3DlW7gLEr33Cuj54iIhagtBi3epStJitsssWs7otY9zhKOSZxhr49G3d0bh35mwyP18EMvDas8UlzeSozsSrujNUqZXOGK0PEBSd+rWMGDJlCt6GFmJgm2JFY7PJwf/7OOSmUYIYFs5o/PuPpoTMF+hcVXMs+0yDukIMTOzG9m3t8k36PVrghFmnK6pC3Rt3mibjW****ng==', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the [ApsaraMQ for MQTT console](https://mqtt.console.aliyun.com/).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The request ID. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '833EDFCB-C447-4CE3-B21F-3A4C2D1B****', 'title' => ''], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'RevokeTokenOverFlow', 'errorMessage' => 'You have revoked tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"RequestId\\": \\"833EDFCB-C447-4CE3-B21F-3A4C2D1B****\\"\\n}","errorExample":""},{"type":"xml","example":"\\r\\n833EDFCB-C447-4CE3-B21F-3A4C2D1B****\\r\\n","errorExample":""}]', 'title' => 'RevokeToken', 'summary' => 'Revokes a token.', 'description' => '* You can call this operation up to 5 times per second per account. If you want to increase the limit, join the DingTalk group 35228338 to contact ApsaraMQ for MQTT technical support.'."\n" .'* Each successful call to the **RevokeToken** operation increases the messaging transactions per second (TPS). This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n", 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:RevokeToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'SendMessage' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => ['operationType' => 'none'], 'parameters' => [ [ 'name' => 'MqttTopic', 'in' => 'query', 'schema' => ['description' => 'The topic to which you want to send a message on the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'TopicA', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can view the instance ID in the **Basic Information** section on the **Instance Details** page that corresponds to the instance in the [ApsaraMQ for MQTT console](https://mqtt.console.aliyun.com).'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'Payload', 'in' => 'query', 'schema' => ['description' => 'The message content, which is the payload of the message. We recommend that you encode the content in Base64 to prevent non-printable characters from being transmitted.'."\n", 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'test', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'MsgId' => ['description' => 'The unique message ID that is returned by the ApsaraMQ for MQTT broker after the message is sent.'."\n", 'type' => 'string', 'example' => '0B736D997B7F45FF54E61C1C1B58****', 'title' => ''], 'RequestId' => ['description' => 'The unique ID that the system generates for the request. This parameter is a common parameter.'."\n", 'type' => 'string', 'example' => '020F6A43-19E6-4B6E-B846-44EB31DF****', 'title' => ''], ], 'description' => '', 'title' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SendMessageFailed', 'errorMessage' => 'A storage exception occurred while sending the message. Please try again.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'responseDemo' => '[{"type":"json","example":"{\\n \\"MsgId\\": \\"0B736D997B7F45FF54E61C1C1B58****\\",\\n \\"RequestId\\": \\"020F6A43-19E6-4B6E-B846-44EB31DF****\\"\\n}","errorExample":""},{"type":"xml","example":"\\n 020F6A43-19E6-4B6E-B846-44EB31DF****\\n 0B736D997B7F45FF54E61C1C1B58****\\n","errorExample":""}]', 'title' => 'SendMessage', 'summary' => 'Sends a single message from an application on a cloud server to ApsaraMQ for MQTT.', 'description' => '* The **SendMessage** operation is called by an application on a cloud server. This operation is complementary to the operation that is called to send a message from an ApsaraMQ for MQTT client. For information about the differences between the scenarios of sending messages from applications on cloud servers and the scenarios of sending messages from ApsaraMQ for MQTT clients, see [Developer guide](~~179160~~).'."\n" .'* Messages that are sent by calling the **SendMessage** operation cannot be forwarded to ApsaraMQ for RocketMQ. If you want to use an ApsaraMQ for MQTT broker to forward messages to ApsaraMQ for RocketMQ, use [an SDK to send the messages](~~174527~~). The **SendMessage** operation supports up to 1,000 queries per second (QPS). For more information, see [QPS limits](~~163047~~).'."\n" .'* Each successful call to the **SendMessage** operation is calculated as a message transaction per second (TPS). This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).'."\n", 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).'."\n", 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessage'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:SendMessage', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], ], 'SetSniConfig' => [ 'summary' => 'Configures a multi-domain certificate.', 'methods' => ['get', 'post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '258058', 'abilityTreeNodes' => ['FEATUREonsFLJRJ5'], ], 'parameters' => [ [ 'name' => 'MqttInstanceId', 'in' => 'query', 'schema' => ['description' => 'The instance ID.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => 'mqtt-cn-5yd3xxx'], ], [ 'name' => 'DefaultCertificate', 'in' => 'query', 'schema' => ['description' => 'The default certificate. This certificate is returned if no matching domain name is found in the server certificate list.', 'type' => 'string', 'required' => true, 'title' => '', 'example' => '1533xxxx-cn-hangzhou'], ], [ 'name' => 'SniConfig', 'in' => 'query', 'schema' => ['description' => 'The Server Name Indication (SNI) configuration that maps domain names to certificates. Format: DomainName#CertificateID#Password(if any);DomainName#CertificateID#Password(if any)', 'type' => 'string', 'title' => '', 'required' => false, 'example' => '*.mqtt.aliyuncs.com#15xxxxx-cn-hangzhou;mqtt-test.mqtt.aliyuncs.com#15xxxx9-cn-hangzhou'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'description' => 'The response object.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'E4581CCF-62AF-44D9-B5B4-D1DQDC0E****'], 'Success' => ['description' => 'Indicates whether the call was successful. A value of \\`true\\` indicates that the call was successful. A value of \\`false\\` indicates that the call failed.', 'type' => 'string', 'example' => 'True', 'title' => ''], 'AccessDeniedDetail' => [ 'description' => 'The details about the access denial.', 'type' => 'object', 'properties' => [ 'AuthAction' => ['description' => 'The unauthorized operation that was attempted.', 'type' => 'string', 'example' => 'SetSniConfig', 'title' => ''], 'AuthPrincipalDisplayName' => ['description' => 'The display name of the authorization entity.', 'type' => 'string', 'example' => '2063xxxxxxxx533', 'title' => ''], 'AuthPrincipalOwnerId' => ['description' => 'The ID of the Alibaba Cloud account that owns the authorization entity.', 'type' => 'string', 'example' => '1245xxxxx34343', 'title' => ''], 'AuthPrincipalType' => ['description' => 'The type of the authorization entity.', 'type' => 'string', 'example' => 'SubUser', 'title' => ''], 'EncodedDiagnosticMessage' => ['description' => 'The encoded diagnostic information.', 'type' => 'string', 'example' => 'AQFma6gWZmuoFkMxQ0M3MUVCLTRFQzQtNTI1OS1BQ0Q0LTlBMTFGQkVDOTA3Qw==', 'title' => ''], 'NoPermissionType' => ['description' => 'The type of permission denial.', 'type' => 'string', 'example' => 'ImplicitDeny', 'title' => ''], 'PolicyType' => ['description' => 'The policy type.', 'type' => 'string', 'example' => 'AccountLevelIdentityBasedPolicy', 'title' => ''], ], 'title' => '', 'example' => '', ], ], 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttInstanceNotFound', 'errorMessage' => 'Specified instance is not found', 'description' => ''], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4581CCF-62AF-44D9-B5B4-D1DQDC0E****\\",\\n \\"Success\\": \\"True\\",\\n \\"AccessDeniedDetail\\": {\\n \\"AuthAction\\": \\"SetSniConfig\\",\\n \\"AuthPrincipalDisplayName\\": \\"2063xxxxxxxx533\\",\\n \\"AuthPrincipalOwnerId\\": \\"1245xxxxx34343\\",\\n \\"AuthPrincipalType\\": \\"SubUser\\",\\n \\"EncodedDiagnosticMessage\\": \\"AQFma6gWZmuoFkMxQ0M3MUVCLTRFQzQtNTI1OS1BQ0Q0LTlBMTFGQkVDOTA3Qw==\\",\\n \\"NoPermissionType\\": \\"ImplicitDeny\\",\\n \\"PolicyType\\": \\"AccountLevelIdentityBasedPolicy\\"\\n }\\n}","type":"json"}]', 'title' => 'SetSniConfig', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:SetSniConfig', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetSniConfig'], ], ], ], 'TagResources' => [ 'summary' => 'Adds tags to resources.', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'create', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '255118', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ResourceType', 'in' => 'query', 'schema' => ['description' => 'The resource type. The value must be instance.', 'type' => 'string', 'required' => true, 'example' => 'instance', 'title' => ''], ], [ 'name' => 'ResourceId', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of resource IDs.', 'type' => 'array', 'items' => ['description' => 'The resource ID. Currently, only instances are supported.', 'type' => 'string', 'required' => false, 'example' => 'mqtt-cn-5yd3xxx'."\n", 'title' => ''], 'required' => true, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], [ 'name' => 'Tag', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of tags. You can add up to 20 tags at a time. A resource can have a maximum of 20 tags.', 'type' => 'array', 'items' => [ 'description' => 'The tag object of the resource.', 'type' => 'object', 'properties' => [ 'Key' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], 'Value' => ['description' => 'The tag value.', 'type' => 'string', 'required' => false, 'example' => 'test', 'title' => ''], ], 'required' => false, 'title' => '', 'example' => '', ], 'required' => true, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The returned object.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => '82B9E503-F4A1-4F30-976F-C6999FF9****'], 'Code' => ['description' => 'The status code of the API call.', 'type' => 'string', 'example' => '200', 'title' => ''], 'Data' => ['description' => 'The result of the call.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ['errorCode' => 'ResourceIdNotFound', 'errorMessage' => 'resourceId does not exist.', 'description' => 'The tag resource does not exist.'], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"82B9E503-F4A1-4F30-976F-C6999FF9****\\",\\n \\"Code\\": \\"200\\",\\n \\"Data\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'TagResources', 'changeSet' => [], 'ramActions' => [ [ 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:TagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagResources'], ], ], ], 'UnRegisterDeviceCredential' => [ 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'ClientId', 'in' => 'query', 'schema' => ['description' => 'The client ID of the device whose access credential you want to deregister.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'InstanceId', 'in' => 'query', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance. The ID must be consistent with the ID of the instance that the ApsaraMQ for MQTT client uses. You can obtain the instance ID on the **Instance Details** page that corresponds to the instance in the ApsaraMQ for MQTT console.', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'RequestId' => ['description' => 'The unique ID that the system generates for the request. This parameter is a common parameter.', 'type' => 'string', 'example' => 'E4581CCD-62AF-44D9-B5B4-D1DBDC0E****', 'title' => ''], ], 'description' => '', 'title' => '', 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ApplyTokenOverFlow', 'errorMessage' => 'You have applied for tokens too many times. Please try again later.', 'description' => ''], ['errorCode' => 'CheckAccountInfoFailed', 'errorMessage' => 'An error occurred while checking the account information by the STS token.', 'description' => ''], ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'ParameterCheckFailed', 'errorMessage' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'description' => ''], ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ['errorCode' => 'DeviceCredentialNotFound', 'errorMessage' => 'Device Credential Not Found. Check if the device certificate is registered.', 'description' => ''], ['errorCode' => 'DeviceCredentialExsit', 'errorMessage' => 'Device Credential Exsit.', 'description' => ''], ['errorCode' => 'DeviceCredentialNumExceed', 'errorMessage' => 'The number of device credentia exceeds the limit. Please revoke unused device certificates.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], 500 => [ ['errorCode' => 'InternalError', 'errorMessage' => 'An error occurred while processing your request. Try again later.', 'description' => ''], ['errorCode' => 'SystemOverFlow', 'errorMessage' => 'An error occurred while processing your request. Please try again.', 'description' => ''], ], ], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'title' => 'UnRegisterDeviceCredential', 'summary' => 'Deregisters the access credential of a device. After the access credential of a device is deregistered, you can no longer use the access credential to authenticate the device on the ApsaraMQ for MQTT broker.', 'description' => '- You can call this operation up to 500 times per second per account. If the limit is exceeded, throttling is triggered. This may affect your business. We recommend that you take note of this limit when you call this operation. For more information, see [Limits on QPS](~~163047~~).'."\n" ."\n" .'- Each successful call to the **UnRegisterDeviceCredential** operation increases the number of transactions per second (TPS) by one. This affects the billing of your instance. For more information, see [Billing rules](~~52819~~).', 'requestParamsDescription' => '> For information about other parameters, see [Common parameters](~~163046~~) and [Endpoints](~~181438~~).', 'responseParamsDescription' => ' ', 'extraInfo' => ' ', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnRegisterDeviceCredential'], ], ], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"E4581CCD-62AF-44D9-B5B4-D1DBDC0E****\\"\\n}","type":"json"}]', ], 'UntagResources' => [ 'summary' => 'Removes tags from resources.', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'write', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'delete', 'riskType' => 'high', 'chargeType' => 'free', 'abilityTreeCode' => '257391', 'abilityTreeNodes' => ['FEATUREons3CYUNP'], ], 'parameters' => [ [ 'name' => 'TagKey', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of tag keys to remove.', 'type' => 'array', 'items' => ['description' => 'The tag key.', 'type' => 'string', 'required' => false, 'example' => 'tagkeyTest', 'title' => ''], 'required' => false, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], [ 'name' => 'ResourceId', 'in' => 'query', 'style' => 'repeatList', 'schema' => [ 'description' => 'A list of resource IDs.', 'type' => 'array', 'items' => ['description' => 'The ID of the resource. Only instances are supported.', 'type' => 'string', 'required' => false, 'example' => 'mqtt-cn-5yd3xxx'."\n", 'title' => ''], 'required' => true, 'maxItems' => 100, 'title' => '', 'example' => '', ], ], [ 'name' => 'ResourceType', 'in' => 'query', 'schema' => ['description' => 'The type of the resource. The value must be \\`instance\\`.', 'type' => 'string', 'required' => true, 'example' => 'instance', 'title' => ''], ], [ 'name' => 'All', 'in' => 'query', 'schema' => ['description' => 'Specifies whether to remove all tags from the resources. This parameter takes effect only when `TagKey.N` is empty. Valid values:'."\n" ."\n" .'- true'."\n" ."\n" .'- false'."\n" ."\n" .'Default: false', 'type' => 'boolean', 'required' => false, 'example' => 'False', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The returned object.', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The ID of the request.', 'type' => 'string', 'example' => 'B3C2F69B-B543-49B0-8B21-C8843AE0****'], 'Code' => ['description' => 'The status code.', 'type' => 'string', 'example' => '200', 'title' => ''], 'Data' => ['description' => 'The result of the call.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], 'Message' => ['description' => 'The returned message.', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], 'example' => '', ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'ResourceIdNotFound', 'errorMessage' => 'resourceId does not exist.', 'description' => 'The tag resource does not exist.'], ['errorCode' => 'MqttOwnerCheckError', 'errorMessage' => 'Failed to validate the instance permission', 'description' => ''], ], 403 => [ ['errorCode' => 'PermissionCheckFailed', 'errorMessage' => 'Failed to verify API permissions.', 'description' => 'ram permission check failed'], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"B3C2F69B-B543-49B0-8B21-C8843AE0****\\",\\n \\"Code\\": \\"200\\",\\n \\"Data\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'UntagResources', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagResources'], ], ], 'ramActions' => [ [ 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:UnTagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], ], ], ], 'UpdateCustomAuthIdentity' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'The ID of the ApsaraMQ for MQTT instance.'."\n", 'type' => 'string', 'required' => true, 'example' => 'post-111****', 'title' => ''], ], [ 'name' => 'Username', 'in' => 'formData', 'schema' => ['description' => 'The username. The value cannot exceed 64 characters in length.'."\n", 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'Secret', 'in' => 'formData', 'schema' => ['description' => 'The AccessKey secret.'."\n", 'type' => 'string', 'required' => true, 'example' => 'xxxx', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'ClientId', 'in' => 'formData', 'schema' => ['description' => 'The client ID if you set IdentityType to CLIENT.'."\n", 'type' => 'string', 'required' => false, 'example' => 'GID_test@@@test', 'title' => ''], ], [ 'name' => 'SignMode', 'in' => 'formData', 'schema' => [ 'description' => 'The signature verification mode. ORIGIN: compares the password and the AccessKey secret. SIGNED: uses the HMAC_SHA1 algorithm to sign the client ID to obtain a password and then compares the password.'."\n", 'type' => 'string', 'required' => true, 'example' => 'SIGNED', 'enum' => ['ORIGIN', 'SIGNED'], 'title' => '', ], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'The response schema.'."\n", 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'The request ID.'."\n", 'type' => 'string', 'example' => '3F00084A-7F07-4B15-BADA-8903A4FB****'], 'Code' => ['description' => 'The HTTP status code.'."\n", 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the request is successful. Valid values: true and false.'."\n", 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'The returned message.'."\n", 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"3F00084A-7F07-4B15-BADA-8903A4FB****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'UpdateCustomAuthIdentity', 'summary' => 'Updates the information about custom identity authentication.', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomAuthIdentity'], ], ], 'ramActions' => [ [ 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:UpdateCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], 'UpdateCustomAuthPermission' => [ 'methods' => ['post'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => ['operationType' => 'update', 'riskType' => 'high', 'chargeType' => 'free'], 'parameters' => [ [ 'name' => 'InstanceId', 'in' => 'formData', 'schema' => ['description' => 'ID of the Cloud Message Queue MQTT version instance.', 'type' => 'string', 'required' => true, 'example' => 'post-cn-0pp12gl****', 'title' => ''], ], [ 'name' => 'IdentityType', 'in' => 'formData', 'schema' => [ 'description' => 'The identity type. Valid values:'."\n" ."\n" .'* USER'."\n" .'* CLIENT'."\n", 'type' => 'string', 'required' => true, 'example' => 'USER', 'enum' => ['USER', 'CLIENT'], 'title' => '', ], ], [ 'name' => 'Identity', 'in' => 'formData', 'schema' => ['description' => 'Username or Client ID.', 'type' => 'string', 'required' => true, 'example' => 'test', 'title' => ''], ], [ 'name' => 'PermitAction', 'in' => 'formData', 'schema' => [ 'description' => 'The permissions that you want to grant.'."\n", 'type' => 'string', 'required' => true, 'example' => 'PUB_SUB', 'enum' => ['PUB', 'SUB', 'PUB_SUB'], 'title' => '', ], ], [ 'name' => 'Effect', 'in' => 'formData', 'schema' => [ 'description' => 'Specifies whether to allow or deny access.'."\n", 'type' => 'string', 'required' => true, 'example' => 'ALLOW', 'enum' => ['ALLOW', 'DENY'], 'title' => '', ], ], [ 'name' => 'Topic', 'in' => 'formData', 'schema' => ['description' => 'Authorized Topic, supporting multi-level MQTT topics and wildcards.', 'type' => 'string', 'required' => true, 'example' => 'test/t1', 'title' => ''], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => 'Id of the request', 'type' => 'string', 'example' => '8CC04203-679B-4DED-89D9-E7C2E979****'], 'Code' => ['description' => 'Error code returned upon failed invocation. For more information, see Error Codes.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], 'Success' => ['description' => 'Indicates whether the call was successful. true: Call succeeded. false: Call failed.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], 'Message' => ['description' => 'Information', 'type' => 'string', 'example' => 'operation success.', 'title' => ''], ], ], ], ], 'errorCodes' => [ 400 => [ ['errorCode' => 'InstancePermissionCheckFailed', 'errorMessage' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'description' => ''], ['errorCode' => 'InvalidParameter.%s', 'errorMessage' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'description' => ''], ], 404 => [ ['errorCode' => 'ApiNotSupport', 'errorMessage' => 'The specified API is not supported.', 'description' => ''], ], ], 'staticInfo' => ['returnType' => 'synchronous'], 'eventInfo' => [ 'enable' => false, 'eventNames' => [], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"8CC04203-679B-4DED-89D9-E7C2E979****\\",\\n \\"Code\\": 200,\\n \\"Success\\": true,\\n \\"Message\\": \\"operation success.\\"\\n}","type":"json"}]', 'title' => 'UpdateCustomAuthPermission', 'summary' => 'Updates the permissions on a topic.', 'translator' => 'machine', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomAuthPermission'], ], ], 'ramActions' => [ [ 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:UpdateCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], ], ], ], 'endpoints' => [ ['regionId' => 'mq-internet-access', 'regionName' => 'Public network', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.mq-internet-access.aliyuncs.com', 'endpoint' => 'onsmqtt.mq-internet-access.aliyuncs.com', 'vpc' => ''], ['regionId' => 'cn-wulanchabu', 'regionName' => 'China (Ulanqab)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-wulanchabu.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-wulanchabu.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-wulanchabu.aliyuncs.com'], ['regionId' => 'cn-beijing', 'regionName' => 'China (Beijing)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-beijing.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-beijing.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-beijing.aliyuncs.com'], ['regionId' => 'cn-qingdao', 'regionName' => 'China (Qingdao)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-qingdao.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-qingdao.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-qingdao.aliyuncs.com'], ['regionId' => 'cn-shanghai', 'regionName' => 'China (Shanghai)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-shanghai.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-shanghai.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-shanghai.aliyuncs.com'], ['regionId' => 'cn-hongkong', 'regionName' => 'China (Hong Kong)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-hongkong.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-hongkong.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-hongkong.aliyuncs.com'], ['regionId' => 'cn-zhangjiakou', 'regionName' => 'China (Zhangjiakou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-zhangjiakou.aliyuncs.com'], ['regionId' => 'cn-shenzhen', 'regionName' => 'China (Shenzhen)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-shenzhen.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-shenzhen.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-shenzhen.aliyuncs.com'], ['regionId' => 'ap-northeast-1', 'regionName' => 'Japan (Tokyo)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.ap-northeast-1.aliyuncs.com', 'endpoint' => 'onsmqtt.ap-northeast-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.ap-northeast-1.aliyuncs.com'], ['regionId' => 'cn-chengdu', 'regionName' => 'China (Chengdu)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-chengdu.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-chengdu.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-chengdu.aliyuncs.com'], ['regionId' => 'cn-guangzhou', 'regionName' => 'China (Guangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-guangzhou.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-guangzhou.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-guangzhou.aliyuncs.com'], ['regionId' => 'ap-southeast-1', 'regionName' => 'Singapore', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.ap-southeast-1.aliyuncs.com', 'endpoint' => 'onsmqtt.ap-southeast-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.ap-southeast-1.aliyuncs.com'], ['regionId' => 'ap-southeast-3', 'regionName' => 'Malaysia (Kuala Lumpur)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.ap-southeast-3.aliyuncs.com', 'endpoint' => 'onsmqtt.ap-southeast-3.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.ap-southeast-3.aliyuncs.com'], ['regionId' => 'cn-huhehaote', 'regionName' => 'China (Hohhot)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-huhehaote.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-huhehaote.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-huhehaote.aliyuncs.com'], ['regionId' => 'ap-southeast-5', 'regionName' => 'Indonesia (Jakarta)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.ap-southeast-5.aliyuncs.com', 'endpoint' => 'onsmqtt.ap-southeast-5.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.ap-southeast-5.aliyuncs.com'], ['regionId' => 'ap-southeast-6', 'regionName' => 'Philippines (Manila)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.ap-southeast-6.aliyuncs.com', 'endpoint' => 'onsmqtt.ap-southeast-6.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.ap-southeast-6.aliyuncs.com'], ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'onsmqtt.cn-hangzhou.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-hangzhou.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-hangzhou.aliyuncs.com'], ['regionId' => 'us-east-1', 'regionName' => 'US (Virginia)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'onsmqtt.us-east-1.aliyuncs.com', 'endpoint' => 'onsmqtt.us-east-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.us-east-1.aliyuncs.com'], ['regionId' => 'eu-west-1', 'regionName' => 'UK (London)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'onsmqtt.eu-west-1.aliyuncs.com', 'endpoint' => 'onsmqtt.eu-west-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.eu-west-1.aliyuncs.com'], ['regionId' => 'us-west-1', 'regionName' => 'US (Silicon Valley)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'onsmqtt.us-west-1.aliyuncs.com', 'endpoint' => 'onsmqtt.us-west-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.us-west-1.aliyuncs.com'], ['regionId' => 'eu-central-1', 'regionName' => 'Germany (Frankfurt)', 'areaId' => 'europeAmerica', 'areaName' => 'Europe & Americas', 'public' => 'onsmqtt.eu-central-1.aliyuncs.com', 'endpoint' => 'onsmqtt.eu-central-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.eu-central-1.aliyuncs.com'], ['regionId' => 'me-central-1', 'regionName' => 'Saudi Arabia (Riyadh)', 'areaId' => 'middleEast', 'areaName' => 'Middle East', 'public' => 'onsmqtt.me-central-1.aliyuncs.com', 'endpoint' => 'onsmqtt.me-central-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.me-central-1.aliyuncs.com'], ['regionId' => 'cn-hangzhou-finance', 'regionName' => 'China East 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'onsmqtt.cn-hangzhou-finance.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-hangzhou-finance.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-hangzhou-finance.aliyuncs.com'], ['regionId' => 'cn-heyuan-acdr-1', 'regionName' => 'Heyuan ACDR Auto', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'onsmqtt.cn-heyuan-acdr-1.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-heyuan-acdr-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-heyuan-acdr-1.aliyuncs.com'], ['regionId' => 'cn-shenzhen-finance-1', 'regionName' => 'China South 1 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'onsmqtt.cn-shenzhen-finance-1.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-shenzhen-finance-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-shenzhen-finance-1.aliyuncs.com'], ['regionId' => 'cn-shanghai-finance-1', 'regionName' => 'China East 2 Finance', 'areaId' => 'industryCloud', 'areaName' => 'Industry Cloud', 'public' => 'onsmqtt.cn-shanghai-finance-1.aliyuncs.com', 'endpoint' => 'onsmqtt.cn-shanghai-finance-1.aliyuncs.com', 'vpc' => 'onsmqtt-vpc.cn-shanghai-finance-1.aliyuncs.com'], ], 'errorCodes' => [ ['code' => 'ApiNotSupport', 'message' => 'The specified API is not supported.', 'http_code' => 404, 'description' => ''], ['code' => 'ApplyTokenOverFlow', 'message' => 'You have applied for tokens too many times. Please try again later.', 'http_code' => 400, 'description' => ''], ['code' => 'CaNumExceed', 'message' => 'CA certificate num exceed', 'http_code' => 401, 'description' => ''], ['code' => 'CertificateContentError', 'message' => 'Certificate content error, please check ca/verification certificate content. BasicConstraints extension should be set to true in CA certificate', 'http_code' => 401, 'description' => ''], ['code' => 'CheckAccountInfoFailed', 'message' => 'An error occurred while checking the account information by the STS token.', 'http_code' => 400, 'description' => ''], ['code' => 'CreateGroupIdError', 'message' => 'Failed to create GroupId. Try again later.', 'http_code' => 417, 'description' => ''], ['code' => 'CreateMqttRuleFailed', 'message' => 'An error occurred while creating the MQTT rule. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'CreateMqttTopicFailed', 'message' => 'An error occurred while creating the MQTT topic. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'Customauth.over.capacity', 'message' => 'Over custom auth capacity.', 'http_code' => 400, 'description' => 'User-defined permission quantity capacity exceeds the limit'], ['code' => 'DeleteGroupIdError', 'message' => 'Failed to delete GroupId. Try again later.', 'http_code' => 417, 'description' => ''], ['code' => 'DeleteMqttRuleFailed', 'message' => 'An error occurred while deleting the MQTT rule. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'DeleteMqttTopicFailed', 'message' => 'An error occurred while deleting the MQTT topic. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'DeviceCredentialExsit', 'message' => 'Device Credential Exsit.', 'http_code' => 400, 'description' => ''], ['code' => 'DeviceCredentialNotFound', 'message' => 'Device Credential Not Found. Check if the device certificate is registered.', 'http_code' => 400, 'description' => ''], ['code' => 'DeviceCredentialNotFound', 'message' => 'Device Credential Not Found.Check if the device certificate is registered.', 'http_code' => 400, 'description' => ''], ['code' => 'DeviceCredentialNumExceed', 'message' => 'The number of device credentia exceeds the limit. Please revoke unused device certificates.', 'http_code' => 400, 'description' => ''], ['code' => 'FindCaBySnError', 'message' => 'Failed to find the CA by the SN. Please check sn is valid.', 'http_code' => 400, 'description' => ''], ['code' => 'FindDeviceBySnError', 'message' => 'Failed to find the device certificate by the SN. Please check sn is valid', 'http_code' => 400, 'description' => ''], ['code' => 'GetCaNumError', 'message' => 'Failed to get ca num. Try again later.', 'http_code' => 401, 'description' => ''], ['code' => 'GroupIdAlreadyExsited', 'message' => 'The specified GroupId already exists.', 'http_code' => 400, 'description' => ''], ['code' => 'GroupIdAlreadyUsedByOtherUsers', 'message' => 'The current GroupId is used by another user. Please change to a different GroupId.', 'http_code' => 400, 'description' => ''], ['code' => 'InstanceNotFound', 'message' => 'Failed to find the instance. The instanceId may be invalid.', 'http_code' => 400, 'description' => ''], ['code' => 'InstancePermissionCheckFailed', 'message' => 'An error occurred while validating the permissions of the instance. Please verify the account that created the instance and its permissions settings.', 'http_code' => 400, 'description' => ''], ['code' => 'InternalError', 'message' => 'An error occurred while processing your request. Try again later.', 'http_code' => 417, 'description' => ''], ['code' => 'InvalidParameter.%s', 'message' => 'An error occurred while validating the parameter. The parameter may be missing or invalid.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttApplyCluster4InstanceFailed', 'message' => 'the instance can not find cluster.', 'http_code' => 400, 'description' => 'The instance failed to obtain cluster information.'], ['code' => 'MqttInstanceNotFound', 'message' => 'Specified instance is not found', 'http_code' => 400, 'description' => ''], ['code' => 'MqttOwnerCheckError', 'message' => 'Failed to validate the instance permission', 'http_code' => 403, 'description' => ''], ['code' => 'MqttRuleExist', 'message' => 'The specified MQTT rule already exists. Please check the parameter.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttRuleNotFound', 'message' => 'The specified rule does not exist.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttRuleNumExceeded', 'message' => 'The maximum number of rules is exceeded.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttRuleNumExceeded', 'message' => 'The number of rules has exceeded the system limit.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttTopicExist', 'message' => 'The specified topic already exists. Please check the parameter.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttTopicNotFound', 'message' => 'The specified topic does not exist.', 'http_code' => 400, 'description' => ''], ['code' => 'MqttTopicNumExceeded', 'message' => 'The maximum number of topics is exceeded.', 'http_code' => 400, 'description' => ''], ['code' => 'MQTT_INSTANCE_OWNER_CHECK_ERROR', 'message' => 'Mqtt Instance Owner Invalid.', 'http_code' => 400, 'description' => 'Instance owner does not match'], ['code' => 'ParameterCheckFailed', 'message' => 'An error occurred while validating the parameters. The parameters may be missing or invalid.', 'http_code' => 400, 'description' => ''], ['code' => 'ParameterFieldCheckFailed', 'message' => 'Failed to validate the parameters. The parameters may be missing or invalid.', 'http_code' => 400, 'description' => ''], ['code' => 'PermissionCheckFailed', 'message' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'http_code' => 400, 'description' => ''], ['code' => 'PermissionCheckFailed', 'message' => 'Failed to verify API permissions.', 'http_code' => 403, 'description' => 'ram permission check failed'], ['code' => 'QueryMqttRuleFailed', 'message' => 'An error occurred while querying the MQTT rule. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'QueryMqttTopicFailed', 'message' => 'An error occurred while querying the MQTT topic. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'QueryTokenOverFlow', 'message' => 'You have queried tokens too many times. Please try again later.', 'http_code' => 400, 'description' => ''], ['code' => 'RegisterCodeError', 'message' => 'Register code error in verification certificate.', 'http_code' => 400, 'description' => ''], ['code' => 'RegisterCodeUsed', 'message' => 'Register code has been used.', 'http_code' => 401, 'description' => ''], ['code' => 'ResourceIdNotFound', 'message' => 'resourceId does not exist.', 'http_code' => 400, 'description' => 'The tag resource does not exist.'], ['code' => 'ResourcePermissionCheckFailed', 'message' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'http_code' => 400, 'description' => ''], ['code' => 'RespurcePermissionCheckFailed', 'message' => 'An error occurred while validating the resource permissions. Please check the account that created the instance, topic, and GroupId, and check their permission settings.', 'http_code' => 400, 'description' => ''], ['code' => 'RevokeTokenOverFlow', 'message' => 'You have revoked tokens too many times. Please try again later.', 'http_code' => 400, 'description' => ''], ['code' => 'SendMessageFailed', 'message' => 'A storage exception occurred while sending the message. Please try again.', 'http_code' => 417, 'description' => ''], ['code' => 'ServiceUnable', 'message' => 'The current user has not activated the ONS service. Please activate the service first.', 'http_code' => 400, 'description' => 'The current user has not activated the ONS service. Please activate the ONS service first. Thank you.'], ['code' => 'SnNotUnique', 'message' => 'Sn is not unique in gloabal', 'http_code' => 401, 'description' => ''], ['code' => 'SystemError', 'message' => 'system error.', 'http_code' => 400, 'description' => 'System error, please try again'], ['code' => 'SystemOverFlow', 'message' => 'An error occurred while processing your request. Please try again.', 'http_code' => 403, 'description' => ''], ['code' => 'UpdateMqttRuleFailed', 'message' => 'An error occurred while updating the MQTT rule. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ['code' => 'UpdateMqttTopicFailed', 'message' => 'An error occurred while updating the MQTT topic. Please check the parameter and try again.', 'http_code' => 400, 'description' => ''], ], 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCustomAuthConnectBlack'], ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'BatchQuerySessionByClientIds'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListTagResources'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomAuthPermission'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UnRegisterDeviceCredential'], ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceMessageOfClient'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UntagResources'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomAuthConnectBlack'], ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceMessageSubscribe'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterCaCertificate'], ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceDevice'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListCaCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InactivateCaCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RefreshDeviceCredential'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListInstances'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCaCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomAuthConnectBlack'], ['threshold' => '100', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryToken'], ['threshold' => '1000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SendMessage'], ['threshold' => '5', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RevokeToken'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisasterRecovery'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'InactivateDeviceCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetCaCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QuerySessionByClientId'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomAuthIdentity'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceCredential'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'SetSniConfig'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RegisterDeviceCredential'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'AddCustomAuthIdentity'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteDeviceCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetRegisterCode'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DisasterDowngrade'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCustomAuthPermission'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ActiveDeviceCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CloseConnection'], ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'CreateGroupId'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteCustomAuthIdentity'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ApplyToken'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomAuthIdentity'], ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'DeleteGroupId'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'GetDeviceCertificate'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDeviceCredentialClientId'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'QueryCustomAuthPermission'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ActiveCaCertificate'], ['threshold' => '10', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListGroupId'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'UpdateCustomAuthPermission'], ['threshold' => '600', 'countWindow' => 60, 'regionId' => '*', 'api' => 'QueryMqttTraceMessagePublish'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDeviceCertificateByCaSn'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'TagResources'], ['threshold' => '500', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ListDeviceCertificate'], ], ], 'ram' => [ 'productCode' => 'OnsMqtt', 'productName' => 'ApsaraMQ', 'ramCodes' => ['mq'], 'ramLevel' => 'RESOURCE', 'ramConditions' => [], 'ramActions' => [ [ 'apiName' => 'QueryMqttTraceMessagePublish', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttPubTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'GetCaCertificate', 'description' => '', 'operationType' => 'get', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:GetCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryCustomAuthPermission', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryToken', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'AddCustomAuthConnectBlack', 'description' => '', 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QuerySessionByClientId', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListDeviceCredentialClientId', 'description' => '', 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'SendMessage', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:SendMessage', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'GetDeviceCertificate', 'description' => '', 'operationType' => 'get', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:GetDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListInstances', 'description' => '', 'operationType' => 'list', 'ramAction' => [ 'action' => 'mq:ListMqttInstance', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'DeleteCustomAuthIdentity', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'CreateGroupId', 'description' => '', 'operationType' => 'create', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:CreateMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'CloseConnection', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:CloseConnection', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DeleteCaCertificate', 'description' => '', 'operationType' => 'delete', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:DeleteCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'RegisterDeviceCredential', 'description' => '', 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:RegisterDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'UpdateCustomAuthIdentity', 'description' => '', 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:UpdateCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListDeviceCertificate', 'description' => '', 'operationType' => 'list', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ListDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryMqttTraceDevice', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttDeviceTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryMqttTraceMessageSubscribe', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttSubTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DisasterRecovery', 'description' => '', 'operationType' => 'update', 'additionalActions' => [], 'ramAction' => [ 'action' => 'mq:DisasterRecovery', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'ListCaCertificate', 'description' => '', 'operationType' => 'list', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ListCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DeleteCustomAuthPermission', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DeleteCustomAuthConnectBlack', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'UntagResources', 'description' => '', 'operationType' => 'delete', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:UnTagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'AddCustomAuthIdentity', 'description' => '', 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'InactivateCaCertificate', 'description' => '', 'operationType' => 'none', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:UnregisterCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'SetSniConfig', 'description' => '', 'operationType' => 'update', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:SetSniConfig', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'ActiveCaCertificate', 'description' => '', 'operationType' => 'none', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ActiveCaCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'RegisterCaCertificate', 'description' => '', 'operationType' => 'create', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:RegisterCa', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DeleteDeviceCertificate', 'description' => '', 'operationType' => 'delete', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:DeleteDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'UnRegisterDeviceCredential', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:MqttInstanceAccess', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryMqttTraceMessageOfClient', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:QueryMqttDeviceTrace', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'RevokeToken', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:RevokeToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'GetRegisterCode', 'description' => '', 'operationType' => 'get', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:GetRegisterCode', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'UpdateCustomAuthPermission', 'description' => '', 'operationType' => 'update', 'ramAction' => [ 'action' => 'mq:UpdateCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'AddCustomAuthPermission', 'description' => '', 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:AddCustomAuthPermission', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DeleteGroupId', 'description' => '', 'operationType' => 'delete', 'ramAction' => [ 'action' => 'mq:DeleteMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ActiveDeviceCertificate', 'description' => '', 'operationType' => 'none', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ActiveDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'DisasterDowngrade', 'description' => '', 'operationType' => 'update', 'additionalActions' => [], 'ramAction' => [ 'action' => 'mq:DisasterDowngrade', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'QueryCustomAuthConnectBlack', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthConnectBlack', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListTagResources', 'description' => '', 'operationType' => 'list', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ListTagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], [ 'apiName' => 'InactivateDeviceCertificate', 'description' => '', 'operationType' => 'none', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess'], ], 'ramAction' => [ 'action' => 'mq:UnregisterDeviceCertificate', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ApplyToken', 'description' => '', 'operationType' => 'create', 'ramAction' => [ 'action' => 'mq:ApplyToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'GetDeviceCredential', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:GetDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'RefreshDeviceCredential', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:RefreshDeviceCredential', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'QueryCustomAuthIdentity', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:QueryCustomAuthIdentity', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListDeviceCertificateByCaSn', 'description' => '', 'operationType' => 'list', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:ListDeviceCertificateByCaSn', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'ListGroupId', 'description' => '', 'operationType' => 'get', 'ramAction' => [ 'action' => 'mq:ListMqttGroupId', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'BatchQuerySessionByClientIds', 'description' => '', 'operationType' => 'none', 'ramAction' => [ 'action' => 'mq:BatchQuerySessionByClientIds', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ], [ 'apiName' => 'TagResources', 'description' => '', 'operationType' => 'create', 'additionalActions' => [ ['action' => 'mq:MqttInstanceAccess', 'validationType' => 'always'], ], 'ramAction' => [ 'action' => 'mq:TagResources', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'OnsMqtt', 'resourceType' => 'All Resource', 'arn' => '*'], ], ], ], ], 'resourceTypes' => [ ['validationType' => 'always', 'resourceType' => 'Instance', 'arn' => 'acs:mq:{#regionId}:{#accountId}:{#InstanceId}'], ], ], ];