onsmqtt-20200420/alibabacloud_onsmqtt20200420/models.py (6,737 lines of code) (raw):
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
from Tea.model import TeaModel
from typing import Dict, List
class ActiveCaCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
sn: str = None,
):
# The ID of the ApsaraMQ for MQTT instance to which the CA certificate is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# The serial number of the CA certificate that you want to reactivate. The serial number is the unique identifier of a CA certificate.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class ActiveCaCertificateResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
sn: str = None,
):
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
# The SN serial number of the activated CA certificate, used to uniquely identify a CA certificate.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class ActiveCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ActiveCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ActiveCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ActiveDeviceCertificateRequest(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_sn: str = None,
mqtt_instance_id: str = None,
):
# The serial number of the CA certificate to which the device certificate belongs. The serial number is the unique identifier of a CA certificate.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.ca_sn = ca_sn
# The serial number of the device certificate that you want to reactivate. The serial number is the unique identifier of a device.
#
# This parameter is required.
self.device_sn = device_sn
# The ID of the ApsaraMQ for MQTT instance to which the device certificate is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
return self
class ActiveDeviceCertificateResponseBody(TeaModel):
def __init__(
self,
device_sn: str = None,
request_id: str = None,
):
# The serial number of the device certificate that you reactivated. The serial number is the unique identifier of a device certificate.
self.device_sn = device_sn
# The request ID.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ActiveDeviceCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ActiveDeviceCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ActiveDeviceCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class AddCustomAuthConnectBlackRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The client ID of the device whose connections you want to disable.
#
# This parameter is required.
self.client_id = client_id
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class AddCustomAuthConnectBlackResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code. The value 200 indicates that the request is successful.
self.code = code
# The message returned.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the operation is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class AddCustomAuthConnectBlackResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: AddCustomAuthConnectBlackResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = AddCustomAuthConnectBlackResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class AddCustomAuthIdentityRequest(TeaModel):
def __init__(
self,
client_id: str = None,
identity_type: str = None,
instance_id: str = None,
secret: str = None,
sign_mode: str = None,
username: str = None,
):
# The client ID if you set IdentityType to CLIENT.
self.client_id = client_id
# The identity type. Valid values:
#
# * USER
# * CLIENT
#
# This parameter is required.
self.identity_type = identity_type
# The ID of the Message Queue for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# The AccessKey secret.
#
# This parameter is required.
self.secret = secret
# 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.
#
# This parameter is required.
self.sign_mode = sign_mode
# The username.
#
# This parameter is required.
self.username = username
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.secret is not None:
result['Secret'] = self.secret
if self.sign_mode is not None:
result['SignMode'] = self.sign_mode
if self.username is not None:
result['Username'] = self.username
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Secret') is not None:
self.secret = m.get('Secret')
if m.get('SignMode') is not None:
self.sign_mode = m.get('SignMode')
if m.get('Username') is not None:
self.username = m.get('Username')
return self
class AddCustomAuthIdentityResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code. The status code 200 indicates that the request is successful.
self.code = code
# The message returned.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the operation is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class AddCustomAuthIdentityResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: AddCustomAuthIdentityResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = AddCustomAuthIdentityResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class AddCustomAuthPermissionRequest(TeaModel):
def __init__(
self,
effect: str = None,
identity: str = None,
identity_type: str = None,
instance_id: str = None,
permit_action: str = None,
topic: str = None,
):
# Specifies whether to allow or deny access.
#
# This parameter is required.
self.effect = effect
# The username or client ID.
#
# This parameter is required.
self.identity = identity
# The identity type. Valid values: USER and CLIENT.
#
# This parameter is required.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# The permissions that you want to grant.
#
# This parameter is required.
self.permit_action = permit_action
# The topics on which you want to grant permissions. Multi-level topics and wildcard characters are supported.
#
# This parameter is required.
self.topic = topic
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.effect is not None:
result['Effect'] = self.effect
if self.identity is not None:
result['Identity'] = self.identity
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.permit_action is not None:
result['PermitAction'] = self.permit_action
if self.topic is not None:
result['Topic'] = self.topic
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Effect') is not None:
self.effect = m.get('Effect')
if m.get('Identity') is not None:
self.identity = m.get('Identity')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('PermitAction') is not None:
self.permit_action = m.get('PermitAction')
if m.get('Topic') is not None:
self.topic = m.get('Topic')
return self
class AddCustomAuthPermissionResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code. The status code 200 indicates that the request is successful.
self.code = code
# The error message returned.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class AddCustomAuthPermissionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: AddCustomAuthPermissionResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = AddCustomAuthPermissionResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ApplyTokenRequest(TeaModel):
def __init__(
self,
actions: str = None,
expire_time: int = None,
instance_id: str = None,
resources: str = None,
):
# The permission type of the token. Valid values:
#
# * **R**: read-only. You can only subscribe to the specified topics.
# * **W**: write-only. You can only send messages to the specified topics.
# * **R,W**: read and write. You can send messages to and subscribe to the specified topics. Separate **R** and **W** with a comma (,).
#
# This parameter is required.
self.actions = actions
# 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.
#
# 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.
#
# This parameter is required.
self.expire_time = expire_time
# 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/).
#
# This parameter is required.
self.instance_id = instance_id
# 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.
#
# 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.
#
# > 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](https://help.aliyun.com/document_detail/42420.html).
#
# This parameter is required.
self.resources = resources
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.actions is not None:
result['Actions'] = self.actions
if self.expire_time is not None:
result['ExpireTime'] = self.expire_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.resources is not None:
result['Resources'] = self.resources
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Actions') is not None:
self.actions = m.get('Actions')
if m.get('ExpireTime') is not None:
self.expire_time = m.get('ExpireTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Resources') is not None:
self.resources = m.get('Resources')
return self
class ApplyTokenResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
token: str = None,
):
# The request ID. This parameter is a common parameter.
self.request_id = request_id
# The token that is returned by the ApsaraMQ for MQTT broker.
#
# > Do not assume the length, format, or rule of the token to return. The actual returned token shall prevail.
self.token = token
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.token is not None:
result['Token'] = self.token
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Token') is not None:
self.token = m.get('Token')
return self
class ApplyTokenResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ApplyTokenResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ApplyTokenResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class BatchQuerySessionByClientIdsRequest(TeaModel):
def __init__(
self,
client_id_list: List[str] = None,
instance_id: str = None,
):
# The ApsaraMQ for MQTT clients.
#
# This parameter is required.
self.client_id_list = client_id_list
# 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).
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id_list is not None:
result['ClientIdList'] = self.client_id_list
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientIdList') is not None:
self.client_id_list = m.get('ClientIdList')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class BatchQuerySessionByClientIdsResponseBodyOnlineStatusList(TeaModel):
def __init__(
self,
client_id: str = None,
online_status: bool = None,
):
# The ID of the ApsaraMQ for MQTT client. For more information about client IDs, see [Terms](https://help.aliyun.com/document_detail/42420.html).
self.client_id = client_id
# Indicates whether the ApsaraMQ for MQTT client is online. Valid values:
#
# * **true**\
# * **false**\
self.online_status = online_status
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.online_status is not None:
result['OnlineStatus'] = self.online_status
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('OnlineStatus') is not None:
self.online_status = m.get('OnlineStatus')
return self
class BatchQuerySessionByClientIdsResponseBody(TeaModel):
def __init__(
self,
online_status_list: List[BatchQuerySessionByClientIdsResponseBodyOnlineStatusList] = None,
request_id: str = None,
):
# The status list of all queried ApsaraMQ for MQTT clients.
self.online_status_list = online_status_list
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.online_status_list:
for k in self.online_status_list:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['OnlineStatusList'] = []
if self.online_status_list is not None:
for k in self.online_status_list:
result['OnlineStatusList'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
self.online_status_list = []
if m.get('OnlineStatusList') is not None:
for k in m.get('OnlineStatusList'):
temp_model = BatchQuerySessionByClientIdsResponseBodyOnlineStatusList()
self.online_status_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class BatchQuerySessionByClientIdsResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: BatchQuerySessionByClientIdsResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = BatchQuerySessionByClientIdsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CloseConnectionRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# Client ID of the device
#
# This parameter is required.
self.client_id = client_id
# ID of the Micro Message Queue MQTT version instance.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class CloseConnectionResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# Return code of the interface: 200 indicates success. Other values indicate error codes. For details about the error codes, see Error Codes.
self.code = code
# Call result information
self.message = message
# Id of the request
self.request_id = request_id
# Indicates whether the operation was successful. true means success, false means failure.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class CloseConnectionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CloseConnectionResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = CloseConnectionResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateGroupIdRequest(TeaModel):
def __init__(
self,
group_id: str = None,
instance_id: str = None,
tags: str = None,
):
# The ID of the group that you want to create. The group ID must meet the following conventions:
#
# * The ID must be 7 to 64 characters in length. It must start with GID_ or GID- and can contain only letters, digits, hyphens (-), and underscores (_).
# * The ID cannot be changed after the group is created. For more information, see [Terms](https://help.aliyun.com/document_detail/42420.html).
#
# This parameter is required.
self.group_id = group_id
# The ID of the ApsaraMQ for MQTT instance to which the group belongs.
#
# This parameter is required.
self.instance_id = instance_id
self.tags = tags
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.tags is not None:
result['Tags'] = self.tags
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Tags') is not None:
self.tags = m.get('Tags')
return self
class CreateGroupIdResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateGroupIdResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: CreateGroupIdResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = CreateGroupIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteCaCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
sn: str = None,
):
# The ID of the ApsaraMQ for MQTT instance to which the CA certificate is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# The serial number of the CA certificate that you want to delete. The serial number is the unique identifier of a CA certificate.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class DeleteCaCertificateResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
sn: str = None,
):
# The request ID.
self.request_id = request_id
# The serial number of the CA certificate that you deleted. The serial number is the unique identifier of a CA certificate.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class DeleteCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteCustomAuthConnectBlackRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The ID of the ApsaraMQ for MQTT client.
#
# This parameter is required.
self.client_id = client_id
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class DeleteCustomAuthConnectBlackResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The response code. The status code 200 indicates that the request was successful.
self.code = code
# The error message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the operation was successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DeleteCustomAuthConnectBlackResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteCustomAuthConnectBlackResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteCustomAuthConnectBlackResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteCustomAuthIdentityRequest(TeaModel):
def __init__(
self,
client_id: str = None,
identity_type: str = None,
instance_id: str = None,
username: str = None,
):
# The client ID if you set IdentityType to CLIENT.
self.client_id = client_id
# The identity type. Valid values:
#
# * USER
# * CLIENT
#
# This parameter is required.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# The username.
#
# This parameter is required.
self.username = username
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.username is not None:
result['Username'] = self.username
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Username') is not None:
self.username = m.get('Username')
return self
class DeleteCustomAuthIdentityResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code. The status code 200 indicates that the request is successful. Other status codes indicate that the request failed.
self.code = code
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the operation is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DeleteCustomAuthIdentityResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteCustomAuthIdentityResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteCustomAuthIdentityResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteCustomAuthPermissionRequest(TeaModel):
def __init__(
self,
identity: str = None,
identity_type: str = None,
instance_id: str = None,
topic: str = None,
):
# The username or client ID.
#
# This parameter is required.
self.identity = identity
# The identity type. Valid values:
#
# * USER
# * CLIENT
#
# This parameter is required.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# The topic on which you want to grant permissions. Multi-level topics and Wildcard characters are supported.
#
# This parameter is required.
self.topic = topic
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.identity is not None:
result['Identity'] = self.identity
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.topic is not None:
result['Topic'] = self.topic
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Identity') is not None:
self.identity = m.get('Identity')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Topic') is not None:
self.topic = m.get('Topic')
return self
class DeleteCustomAuthPermissionResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code.
self.code = code
# The message returned.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DeleteCustomAuthPermissionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteCustomAuthPermissionResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteCustomAuthPermissionResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteDeviceCertificateRequest(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_sn: str = None,
mqtt_instance_id: str = None,
):
# 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.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.ca_sn = ca_sn
# The serial number of the device certificate whose registration information you want to delete. The serial number is the unique identifier of a device.
#
# The serial number of a device certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.device_sn = device_sn
# The ID of the ApsaraMQ for MQTT instance to which the device certificate is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
return self
class DeleteDeviceCertificateResponseBody(TeaModel):
def __init__(
self,
device_sn: str = None,
request_id: str = None,
):
# The serial number of the device certificate whose registration information is deleted. The serial number is the unique identifier of a device certificate.
self.device_sn = device_sn
# The request ID.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteDeviceCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteDeviceCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteDeviceCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteGroupIdRequest(TeaModel):
def __init__(
self,
group_id: str = None,
instance_id: str = None,
):
# The ID of the group that you want to delete.
#
# This parameter is required.
self.group_id = group_id
# The ID of the ApsaraMQ for MQTT instance from which you want to delete a group.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class DeleteGroupIdResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteGroupIdResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DeleteGroupIdResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DeleteGroupIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DisasterDowngradeRequest(TeaModel):
def __init__(
self,
downgrade_instance_id: str = None,
instance_id: str = None,
):
# The ID of the ApsaraMQ for MQTT instance for which you want to downgrade the VIP access.
#
# This parameter is required.
self.downgrade_instance_id = downgrade_instance_id
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.downgrade_instance_id is not None:
result['DowngradeInstanceId'] = self.downgrade_instance_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DowngradeInstanceId') is not None:
self.downgrade_instance_id = m.get('DowngradeInstanceId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class DisasterDowngradeResponseBody(TeaModel):
def __init__(
self,
access_denied_detail: str = None,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The details about the access denial. This parameter is returned only if Resource Access Management (RAM) permission verification failed.
self.access_denied_detail = access_denied_detail
# 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.
self.code = code
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request was successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DisasterDowngradeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DisasterDowngradeResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DisasterDowngradeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DisasterRecoveryRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
recovery_instance_id: str = None,
):
# This parameter is required.
self.instance_id = instance_id
# This parameter is required.
self.recovery_instance_id = recovery_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.recovery_instance_id is not None:
result['RecoveryInstanceId'] = self.recovery_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('RecoveryInstanceId') is not None:
self.recovery_instance_id = m.get('RecoveryInstanceId')
return self
class DisasterRecoveryResponseBody(TeaModel):
def __init__(
self,
access_denied_detail: str = None,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
self.access_denied_detail = access_denied_detail
self.code = code
self.message = message
# Id of the request
self.request_id = request_id
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DisasterRecoveryResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: DisasterRecoveryResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = DisasterRecoveryResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetCaCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
sn: str = None,
):
# The instance ID bound to the CA certificate, which is the instance ID of the MQTT version of the cloud message queue.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# The SN serial number of the CA certificate to be queried, used to uniquely identify a CA certificate.
#
# This parameter is required.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class GetCaCertificateResponseBodyData(TeaModel):
def __init__(
self,
ca_content: str = None,
ca_name: str = None,
registration_code: str = None,
sn: str = None,
status: str = None,
valid_begin: str = None,
valid_end: str = None,
verification_content: str = None,
):
# Content of the CA certificate.
# > \\n represents a new line.
self.ca_content = ca_content
# Name of the CA certificate
self.ca_name = ca_name
# Registration code of the CA certificate
self.registration_code = registration_code
# The SN serial number of the CA certificate, used to uniquely identify a CA certificate. Value range: no more than 128 bytes.
self.sn = sn
# The status of the CA certificate. The values are as follows:
# - **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.
# > After the CA certificate is registered, it is in an active state by default.
self.status = status
# The start time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_begin = valid_begin
# The end time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_end = valid_end
# Content of the Verification certificate.
# > \\n represents a new line.
self.verification_content = verification_content
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_content is not None:
result['CaContent'] = self.ca_content
if self.ca_name is not None:
result['CaName'] = self.ca_name
if self.registration_code is not None:
result['RegistrationCode'] = self.registration_code
if self.sn is not None:
result['Sn'] = self.sn
if self.status is not None:
result['Status'] = self.status
if self.valid_begin is not None:
result['ValidBegin'] = self.valid_begin
if self.valid_end is not None:
result['ValidEnd'] = self.valid_end
if self.verification_content is not None:
result['VerificationContent'] = self.verification_content
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaContent') is not None:
self.ca_content = m.get('CaContent')
if m.get('CaName') is not None:
self.ca_name = m.get('CaName')
if m.get('RegistrationCode') is not None:
self.registration_code = m.get('RegistrationCode')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('ValidBegin') is not None:
self.valid_begin = m.get('ValidBegin')
if m.get('ValidEnd') is not None:
self.valid_end = m.get('ValidEnd')
if m.get('VerificationContent') is not None:
self.verification_content = m.get('VerificationContent')
return self
class GetCaCertificateResponseBody(TeaModel):
def __init__(
self,
data: GetCaCertificateResponseBodyData = None,
request_id: str = None,
):
# Certificate details.
self.data = data
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.data is not None:
result['Data'] = self.data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Data') is not None:
temp_model = GetCaCertificateResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class GetCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: GetCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = GetCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetDeviceCertificateRequest(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_sn: str = None,
mqtt_instance_id: str = None,
):
# 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.
#
# This parameter is required.
self.ca_sn = ca_sn
# 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.
#
# This parameter is required.
self.device_sn = device_sn
# The instance ID to which the device certificate is bound, i.e., the instance ID of the Cloud Message Queue MQTT version.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
return self
class GetDeviceCertificateResponseBodyData(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_content: str = None,
device_name: str = None,
device_sn: str = None,
status: str = None,
valid_begin: str = None,
valid_end: str = None,
):
# The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.
self.ca_sn = ca_sn
# Content of the device certificate.
#
# represents a new line.
self.device_content = device_content
# Name of the device certificate.
self.device_name = device_name
# The SN serial number of the device certificate, used to uniquely identify a device certificate.
self.device_sn = device_sn
# The status of the device certificate. The values are as follows:
# - **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.
# > After the device certificate is registered, it is in an active state by default.
self.status = status
# The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_begin = valid_begin
# The end time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_end = valid_end
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_content is not None:
result['DeviceContent'] = self.device_content
if self.device_name is not None:
result['DeviceName'] = self.device_name
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.status is not None:
result['Status'] = self.status
if self.valid_begin is not None:
result['ValidBegin'] = self.valid_begin
if self.valid_end is not None:
result['ValidEnd'] = self.valid_end
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceContent') is not None:
self.device_content = m.get('DeviceContent')
if m.get('DeviceName') is not None:
self.device_name = m.get('DeviceName')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('ValidBegin') is not None:
self.valid_begin = m.get('ValidBegin')
if m.get('ValidEnd') is not None:
self.valid_end = m.get('ValidEnd')
return self
class GetDeviceCertificateResponseBody(TeaModel):
def __init__(
self,
data: GetDeviceCertificateResponseBodyData = None,
request_id: str = None,
):
# Certificate details.
self.data = data
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.data is not None:
result['Data'] = self.data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Data') is not None:
temp_model = GetDeviceCertificateResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class GetDeviceCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: GetDeviceCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = GetDeviceCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetDeviceCredentialRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The client ID of the device whose access credential you want to query.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class GetDeviceCredentialResponseBodyDeviceCredential(TeaModel):
def __init__(
self,
client_id: str = None,
create_time: int = None,
device_access_key_id: str = None,
device_access_key_secret: str = None,
instance_id: str = None,
update_time: int = None,
):
# The client ID of the device.
self.client_id = client_id
# The timestamp that indicates when the access credential of the device was created. Unit: milliseconds.
self.create_time = create_time
# The AccessKey ID of the device.
self.device_access_key_id = device_access_key_id
# The AccessKey secret of the device.
self.device_access_key_secret = device_access_key_secret
# The ID of the ApsaraMQ for MQTT instance.
self.instance_id = instance_id
# 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.
self.update_time = update_time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.device_access_key_id is not None:
result['DeviceAccessKeyId'] = self.device_access_key_id
if self.device_access_key_secret is not None:
result['DeviceAccessKeySecret'] = self.device_access_key_secret
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.update_time is not None:
result['UpdateTime'] = self.update_time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('DeviceAccessKeyId') is not None:
self.device_access_key_id = m.get('DeviceAccessKeyId')
if m.get('DeviceAccessKeySecret') is not None:
self.device_access_key_secret = m.get('DeviceAccessKeySecret')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('UpdateTime') is not None:
self.update_time = m.get('UpdateTime')
return self
class GetDeviceCredentialResponseBody(TeaModel):
def __init__(
self,
device_credential: GetDeviceCredentialResponseBodyDeviceCredential = None,
request_id: str = None,
):
# The information about the access credential of the device.
self.device_credential = device_credential
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.device_credential:
self.device_credential.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_credential is not None:
result['DeviceCredential'] = self.device_credential.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceCredential') is not None:
temp_model = GetDeviceCredentialResponseBodyDeviceCredential()
self.device_credential = temp_model.from_map(m['DeviceCredential'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class GetDeviceCredentialResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: GetDeviceCredentialResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = GetDeviceCredentialResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetRegisterCodeRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
):
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
return self
class GetRegisterCodeResponseBody(TeaModel):
def __init__(
self,
register_code: str = None,
request_id: str = None,
):
# The registration code of the CA certificate.
self.register_code = register_code
# The request ID.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.register_code is not None:
result['RegisterCode'] = self.register_code
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RegisterCode') is not None:
self.register_code = m.get('RegisterCode')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class GetRegisterCodeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: GetRegisterCodeResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = GetRegisterCodeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class InactivateCaCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
sn: str = None,
):
# The ID of the ApsaraMQ for MQTT instance to which the CA certificate is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# The serial number of the CA certificate that you want to deregister. The serial number is the unique identifier of a CA certificate.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class InactivateCaCertificateResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
sn: str = None,
):
# The request ID.
self.request_id = request_id
# The serial number of the CA certificate that is deregistered. The serial number is the unique identifier of a CA certificate.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class InactivateCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: InactivateCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = InactivateCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class InactivateDeviceCertificateRequest(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_sn: str = None,
mqtt_instance_id: str = None,
):
# The serial number of the CA certificate to which the device certificate that you want to deregister belongs. The serial number is the unique identifier of a CA certificate.
#
# The serial number of a CA certificate cannot exceed 128 bytes in size.
#
# This parameter is required.
self.ca_sn = ca_sn
# The serial number of the device certificate that you want to deregister. The serial number is the unique identifier of a device.
#
# This parameter is required.
self.device_sn = device_sn
# The ID of the ApsaraMQ for MQTT instance to which the device certificate that you want to deregister is bound.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
return self
class InactivateDeviceCertificateResponseBody(TeaModel):
def __init__(
self,
device_sn: str = None,
request_id: str = None,
):
# The serial number of the device certificate that is deregistered. The serial number is the unique identifier of a device certificate.
self.device_sn = device_sn
# The request ID.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class InactivateDeviceCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: InactivateDeviceCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = InactivateDeviceCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListCaCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
page_no: str = None,
page_size: str = None,
):
# The instance ID of the Cloud Message Queue MQTT version, indicating which instance\\"s CA certificates need to be viewed.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# Indicates the page number of the returned results. The starting page is counted from 1.
#
# This parameter is required.
self.page_no = page_no
# The maximum number of query records to display per page. Value range: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
return self
class ListCaCertificateResponseBodyDataCaCertificateVOS(TeaModel):
def __init__(
self,
ca_content: str = None,
ca_name: str = None,
registration_code: str = None,
sn: str = None,
status: str = None,
valid_begin: str = None,
valid_end: str = None,
verification_content: str = None,
):
# Content of the CA certificate.
# > \\n represents a new line.
self.ca_content = ca_content
# Name of the CA certificate
self.ca_name = ca_name
# Registration code of the CA certificate
self.registration_code = registration_code
# SN serial number of the CA certificate
self.sn = sn
# The status of the CA certificate. The values are as follows:
# - **0**: Indicates that the certificate is in an inactive state. - **1**: Indicates that the certificate is in an active state.
# > After the CA certificate is registered, it is in an active state by default.
self.status = status
# The start time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_begin = valid_begin
# The end time when the CA certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_end = valid_end
# Verify the content of the certificate.
# > \\n represents a new line.
self.verification_content = verification_content
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_content is not None:
result['CaContent'] = self.ca_content
if self.ca_name is not None:
result['CaName'] = self.ca_name
if self.registration_code is not None:
result['RegistrationCode'] = self.registration_code
if self.sn is not None:
result['Sn'] = self.sn
if self.status is not None:
result['Status'] = self.status
if self.valid_begin is not None:
result['ValidBegin'] = self.valid_begin
if self.valid_end is not None:
result['ValidEnd'] = self.valid_end
if self.verification_content is not None:
result['VerificationContent'] = self.verification_content
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaContent') is not None:
self.ca_content = m.get('CaContent')
if m.get('CaName') is not None:
self.ca_name = m.get('CaName')
if m.get('RegistrationCode') is not None:
self.registration_code = m.get('RegistrationCode')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('ValidBegin') is not None:
self.valid_begin = m.get('ValidBegin')
if m.get('ValidEnd') is not None:
self.valid_end = m.get('ValidEnd')
if m.get('VerificationContent') is not None:
self.verification_content = m.get('VerificationContent')
return self
class ListCaCertificateResponseBodyData(TeaModel):
def __init__(
self,
ca_certificate_vos: List[ListCaCertificateResponseBodyDataCaCertificateVOS] = None,
page_no: int = None,
page_size: int = None,
total: int = None,
):
# Details of the CA certificate
self.ca_certificate_vos = ca_certificate_vos
# The current page number of the returned query records.
self.page_no = page_no
# The maximum number of results to display per page.
self.page_size = page_size
# Maximum number of pages in the query result.
self.total = total
def validate(self):
if self.ca_certificate_vos:
for k in self.ca_certificate_vos:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['CaCertificateVOS'] = []
if self.ca_certificate_vos is not None:
for k in self.ca_certificate_vos:
result['CaCertificateVOS'].append(k.to_map() if k else None)
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
self.ca_certificate_vos = []
if m.get('CaCertificateVOS') is not None:
for k in m.get('CaCertificateVOS'):
temp_model = ListCaCertificateResponseBodyDataCaCertificateVOS()
self.ca_certificate_vos.append(temp_model.from_map(k))
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class ListCaCertificateResponseBody(TeaModel):
def __init__(
self,
data: ListCaCertificateResponseBodyData = None,
request_id: str = None,
):
# Query result.
self.data = data
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.data is not None:
result['Data'] = self.data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Data') is not None:
temp_model = ListCaCertificateResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListDeviceCertificateRequest(TeaModel):
def __init__(
self,
mqtt_instance_id: str = None,
page_no: str = None,
page_size: str = None,
):
# The instance ID of the Cloud Message Queue MQTT version, indicating which instance\\"s device certificates need to be viewed.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# Indicates which page of the results to return. The starting page is counted from 1.
#
# This parameter is required.
self.page_no = page_no
# The maximum number of query records to display per page. Value range: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
return self
class ListDeviceCertificateResponseBodyDataDeviceCertificateVOS(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_content: str = None,
device_name: str = None,
device_sn: str = None,
status: str = None,
valid_begin: str = None,
valid_end: str = None,
):
# The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.
self.ca_sn = ca_sn
# Content of the device certificate.
#
# represents a new line.
self.device_content = device_content
# Name of the device certificate.
self.device_name = device_name
# The SN serial number of the device certificate, used to uniquely identify a device certificate.
self.device_sn = device_sn
# The status of the device certificate. The values are as follows:
# - 0: indicates that the certificate is in an inactive state. - 1: indicates that the certificate is in an active state.
# After the device certificate is registered, it defaults to the active state.
self.status = status
# The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_begin = valid_begin
# The end time when the device certificate becomes effective. Formatted as a Unix timestamp in milliseconds.
self.valid_end = valid_end
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_content is not None:
result['DeviceContent'] = self.device_content
if self.device_name is not None:
result['DeviceName'] = self.device_name
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.status is not None:
result['Status'] = self.status
if self.valid_begin is not None:
result['ValidBegin'] = self.valid_begin
if self.valid_end is not None:
result['ValidEnd'] = self.valid_end
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceContent') is not None:
self.device_content = m.get('DeviceContent')
if m.get('DeviceName') is not None:
self.device_name = m.get('DeviceName')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('ValidBegin') is not None:
self.valid_begin = m.get('ValidBegin')
if m.get('ValidEnd') is not None:
self.valid_end = m.get('ValidEnd')
return self
class ListDeviceCertificateResponseBodyData(TeaModel):
def __init__(
self,
device_certificate_vos: List[ListDeviceCertificateResponseBodyDataDeviceCertificateVOS] = None,
page_no: int = None,
page_size: int = None,
total: int = None,
):
# Details of the device certificate.
self.device_certificate_vos = device_certificate_vos
# The current page number of the returned query records.
self.page_no = page_no
# The maximum number of results to display per page.
self.page_size = page_size
# Maximum number of pages in the query result.
self.total = total
def validate(self):
if self.device_certificate_vos:
for k in self.device_certificate_vos:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['DeviceCertificateVOS'] = []
if self.device_certificate_vos is not None:
for k in self.device_certificate_vos:
result['DeviceCertificateVOS'].append(k.to_map() if k else None)
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
self.device_certificate_vos = []
if m.get('DeviceCertificateVOS') is not None:
for k in m.get('DeviceCertificateVOS'):
temp_model = ListDeviceCertificateResponseBodyDataDeviceCertificateVOS()
self.device_certificate_vos.append(temp_model.from_map(k))
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class ListDeviceCertificateResponseBody(TeaModel):
def __init__(
self,
data: ListDeviceCertificateResponseBodyData = None,
request_id: str = None,
):
# Query result.
self.data = data
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.data is not None:
result['Data'] = self.data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Data') is not None:
temp_model = ListDeviceCertificateResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListDeviceCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListDeviceCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListDeviceCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListDeviceCertificateByCaSnRequest(TeaModel):
def __init__(
self,
ca_sn: str = None,
mqtt_instance_id: str = None,
page_no: str = None,
page_size: str = None,
):
# The SN serial number of the CA certificate to be queried, indicating which CA certificate\\"s registered device certificates are to be retrieved.
#
# This parameter is required.
self.ca_sn = ca_sn
# The instance ID bound to the CA certificate, which is the instance ID of the MQTT version of the cloud message queue.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# Indicates the page number of the returned results. The starting page is counted from 1.
#
# This parameter is required.
self.page_no = page_no
# The maximum number of query records to display per page. Value range: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
return self
class ListDeviceCertificateByCaSnResponseBodyDataDeviceCertificateVOS(TeaModel):
def __init__(
self,
ca_sn: str = None,
device_content: str = None,
device_name: str = None,
device_sn: str = None,
status: str = None,
valid_begin: str = None,
valid_end: str = None,
):
# The SN serial number of the CA certificate to which the device certificate belongs, used to uniquely identify a CA certificate.
self.ca_sn = ca_sn
# Content of the device certificate.
#
# represents a new line.
self.device_content = device_content
# Name of the device certificate.
self.device_name = device_name
# The SN serial number of the device certificate, used to uniquely identify a device certificate.
self.device_sn = device_sn
# The status of the device certificate. The values are as follows:
# - 0: indicates that the certificate is in an inactive state.
# - 1: indicates that the certificate is in an active state.
#
# After the device certificate is registered, it is in an active state by default.
self.status = status
# The start time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_begin = valid_begin
# The end time when the device certificate becomes effective. The format is a Unix timestamp in milliseconds.
self.valid_end = valid_end
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_sn is not None:
result['CaSn'] = self.ca_sn
if self.device_content is not None:
result['DeviceContent'] = self.device_content
if self.device_name is not None:
result['DeviceName'] = self.device_name
if self.device_sn is not None:
result['DeviceSn'] = self.device_sn
if self.status is not None:
result['Status'] = self.status
if self.valid_begin is not None:
result['ValidBegin'] = self.valid_begin
if self.valid_end is not None:
result['ValidEnd'] = self.valid_end
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaSn') is not None:
self.ca_sn = m.get('CaSn')
if m.get('DeviceContent') is not None:
self.device_content = m.get('DeviceContent')
if m.get('DeviceName') is not None:
self.device_name = m.get('DeviceName')
if m.get('DeviceSn') is not None:
self.device_sn = m.get('DeviceSn')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('ValidBegin') is not None:
self.valid_begin = m.get('ValidBegin')
if m.get('ValidEnd') is not None:
self.valid_end = m.get('ValidEnd')
return self
class ListDeviceCertificateByCaSnResponseBodyData(TeaModel):
def __init__(
self,
device_certificate_vos: List[ListDeviceCertificateByCaSnResponseBodyDataDeviceCertificateVOS] = None,
page_no: int = None,
page_size: int = None,
total: int = None,
):
# Details of the device certificate.
self.device_certificate_vos = device_certificate_vos
# The current page number of the returned query records.
self.page_no = page_no
# The maximum number of results to display per page.
self.page_size = page_size
# Total number of query results.
self.total = total
def validate(self):
if self.device_certificate_vos:
for k in self.device_certificate_vos:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['DeviceCertificateVOS'] = []
if self.device_certificate_vos is not None:
for k in self.device_certificate_vos:
result['DeviceCertificateVOS'].append(k.to_map() if k else None)
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
self.device_certificate_vos = []
if m.get('DeviceCertificateVOS') is not None:
for k in m.get('DeviceCertificateVOS'):
temp_model = ListDeviceCertificateByCaSnResponseBodyDataDeviceCertificateVOS()
self.device_certificate_vos.append(temp_model.from_map(k))
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class ListDeviceCertificateByCaSnResponseBody(TeaModel):
def __init__(
self,
data: ListDeviceCertificateByCaSnResponseBodyData = None,
request_id: str = None,
):
# Query result.
self.data = data
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.data is not None:
result['Data'] = self.data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Data') is not None:
temp_model = ListDeviceCertificateByCaSnResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListDeviceCertificateByCaSnResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListDeviceCertificateByCaSnResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListDeviceCertificateByCaSnResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListDeviceCredentialClientIdRequest(TeaModel):
def __init__(
self,
group_id: str = None,
instance_id: str = None,
next_token: str = None,
page_no: str = None,
page_size: str = None,
):
# Group ID of the MQTT version of the micro message queue.
#
# This parameter is required.
self.group_id = group_id
# 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.
#
# This parameter is required.
self.instance_id = instance_id
# Token for starting the next page query.
self.next_token = next_token
# Indicates the page number of the returned results. The starting page is counted from 1.
self.page_no = page_no
# The maximum number of query records to display per page.
# Value range: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
return self
class ListDeviceCredentialClientIdResponseBodyDeviceCredentialClientIdList(TeaModel):
def __init__(
self,
client_id_list: List[str] = None,
next_token: str = None,
page_no: str = None,
page_size: str = None,
total: str = None,
):
# Client list.
self.client_id_list = client_id_list
# Indicates whether there is a token (Token) for the next query. Values:
# - For the first query and when there is no next query, this field does not need to be filled.
# - If there is a next query, the value should be the NextToken returned from the previous API call.
self.next_token = next_token
# The current page number of the returned query records.
self.page_no = page_no
# The maximum number of results to display per page.
self.page_size = page_size
# Total number of query results.
self.total = total
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id_list is not None:
result['ClientIdList'] = self.client_id_list
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientIdList') is not None:
self.client_id_list = m.get('ClientIdList')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('PageNo') is not None:
self.page_no = m.get('PageNo')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class ListDeviceCredentialClientIdResponseBody(TeaModel):
def __init__(
self,
device_credential_client_id_list: ListDeviceCredentialClientIdResponseBodyDeviceCredentialClientIdList = None,
request_id: str = None,
):
# Returns the information list.
self.device_credential_client_id_list = device_credential_client_id_list
# Public parameters, each request ID is unique and can be used for troubleshooting and problem localization.
self.request_id = request_id
def validate(self):
if self.device_credential_client_id_list:
self.device_credential_client_id_list.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_credential_client_id_list is not None:
result['DeviceCredentialClientIdList'] = self.device_credential_client_id_list.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceCredentialClientIdList') is not None:
temp_model = ListDeviceCredentialClientIdResponseBodyDeviceCredentialClientIdList()
self.device_credential_client_id_list = temp_model.from_map(m['DeviceCredentialClientIdList'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListDeviceCredentialClientIdResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListDeviceCredentialClientIdResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListDeviceCredentialClientIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListGroupIdRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
tags: str = None,
):
# The ID of the ApsaraMQ for MQTT instance whose groups you want to query.
#
# This parameter is required.
self.instance_id = instance_id
self.tags = tags
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.tags is not None:
result['Tags'] = self.tags
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Tags') is not None:
self.tags = m.get('Tags')
return self
class ListGroupIdResponseBodyDataTags(TeaModel):
def __init__(
self,
tag_key: str = None,
tag_value: str = None,
):
self.tag_key = tag_key
self.tag_value = tag_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.tag_key is not None:
result['TagKey'] = self.tag_key
if self.tag_value is not None:
result['TagValue'] = self.tag_value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('TagKey') is not None:
self.tag_key = m.get('TagKey')
if m.get('TagValue') is not None:
self.tag_value = m.get('TagValue')
return self
class ListGroupIdResponseBodyData(TeaModel):
def __init__(
self,
create_time: int = None,
group_id: str = None,
independent_naming: bool = None,
instance_id: str = None,
tags: List[ListGroupIdResponseBodyDataTags] = None,
update_time: int = None,
):
# The time when the group was created.
self.create_time = create_time
# The queried group that belongs to the ApsaraMQ for MQTT instance.
self.group_id = group_id
# Indicates whether a separate namespace is configured for the ApsaraMQ for MQTT instance. Valid values:
#
# * **true**: A separate namespace is configured for the ApsaraMQ for MQTT instance. Resource names must be unique within an ApsaraMQ for MQTT instance but can be the same across ApsaraMQ for MQTT instances.
# * **false**: No separate namespace is configured for the ApsaraMQ for MQTT instance. Resource names must be globally unique within an ApsaraMQ for MQTT instance and across ApsaraMQ for MQTT instances.
self.independent_naming = independent_naming
# The ID of the ApsaraMQ for MQTT instance to which the group belongs.
self.instance_id = instance_id
self.tags = tags
# The time when the group was last updated.
self.update_time = update_time
def validate(self):
if self.tags:
for k in self.tags:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.group_id is not None:
result['GroupId'] = self.group_id
if self.independent_naming is not None:
result['IndependentNaming'] = self.independent_naming
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
result['Tags'] = []
if self.tags is not None:
for k in self.tags:
result['Tags'].append(k.to_map() if k else None)
if self.update_time is not None:
result['UpdateTime'] = self.update_time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('GroupId') is not None:
self.group_id = m.get('GroupId')
if m.get('IndependentNaming') is not None:
self.independent_naming = m.get('IndependentNaming')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
self.tags = []
if m.get('Tags') is not None:
for k in m.get('Tags'):
temp_model = ListGroupIdResponseBodyDataTags()
self.tags.append(temp_model.from_map(k))
if m.get('UpdateTime') is not None:
self.update_time = m.get('UpdateTime')
return self
class ListGroupIdResponseBody(TeaModel):
def __init__(
self,
data: List[ListGroupIdResponseBodyData] = None,
request_id: str = None,
):
# The details of a queried group.
self.data = data
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.data:
for k in self.data:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['Data'] = []
if self.data is not None:
for k in self.data:
result['Data'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
self.data = []
if m.get('Data') is not None:
for k in m.get('Data'):
temp_model = ListGroupIdResponseBodyData()
self.data.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListGroupIdResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListGroupIdResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListGroupIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListInstancesRequest(TeaModel):
def __init__(
self,
tags: str = None,
):
self.tags = tags
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.tags is not None:
result['Tags'] = self.tags
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Tags') is not None:
self.tags = m.get('Tags')
return self
class ListInstancesResponseBodyInstancesMqttTags(TeaModel):
def __init__(
self,
tag_key: str = None,
tag_value: str = None,
):
self.tag_key = tag_key
self.tag_value = tag_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.tag_key is not None:
result['TagKey'] = self.tag_key
if self.tag_value is not None:
result['TagValue'] = self.tag_value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('TagKey') is not None:
self.tag_key = m.get('TagKey')
if m.get('TagValue') is not None:
self.tag_value = m.get('TagValue')
return self
class ListInstancesResponseBodyInstances(TeaModel):
def __init__(
self,
create_time: int = None,
expire_time: int = None,
instance_id: str = None,
instance_name: str = None,
instance_status: int = None,
instance_type: int = None,
kernel_version: str = None,
mqtt_tags: List[ListInstancesResponseBodyInstancesMqttTags] = None,
order_id: str = None,
region_id: str = None,
specific: str = None,
):
self.create_time = create_time
self.expire_time = expire_time
self.instance_id = instance_id
self.instance_name = instance_name
self.instance_status = instance_status
self.instance_type = instance_type
self.kernel_version = kernel_version
self.mqtt_tags = mqtt_tags
self.order_id = order_id
self.region_id = region_id
self.specific = specific
def validate(self):
if self.mqtt_tags:
for k in self.mqtt_tags:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.expire_time is not None:
result['ExpireTime'] = self.expire_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.instance_name is not None:
result['InstanceName'] = self.instance_name
if self.instance_status is not None:
result['InstanceStatus'] = self.instance_status
if self.instance_type is not None:
result['InstanceType'] = self.instance_type
if self.kernel_version is not None:
result['KernelVersion'] = self.kernel_version
result['MqttTags'] = []
if self.mqtt_tags is not None:
for k in self.mqtt_tags:
result['MqttTags'].append(k.to_map() if k else None)
if self.order_id is not None:
result['OrderId'] = self.order_id
if self.region_id is not None:
result['RegionId'] = self.region_id
if self.specific is not None:
result['Specific'] = self.specific
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('ExpireTime') is not None:
self.expire_time = m.get('ExpireTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('InstanceName') is not None:
self.instance_name = m.get('InstanceName')
if m.get('InstanceStatus') is not None:
self.instance_status = m.get('InstanceStatus')
if m.get('InstanceType') is not None:
self.instance_type = m.get('InstanceType')
if m.get('KernelVersion') is not None:
self.kernel_version = m.get('KernelVersion')
self.mqtt_tags = []
if m.get('MqttTags') is not None:
for k in m.get('MqttTags'):
temp_model = ListInstancesResponseBodyInstancesMqttTags()
self.mqtt_tags.append(temp_model.from_map(k))
if m.get('OrderId') is not None:
self.order_id = m.get('OrderId')
if m.get('RegionId') is not None:
self.region_id = m.get('RegionId')
if m.get('Specific') is not None:
self.specific = m.get('Specific')
return self
class ListInstancesResponseBody(TeaModel):
def __init__(
self,
code: str = None,
instances: List[ListInstancesResponseBodyInstances] = None,
message: str = None,
request_id: str = None,
success: str = None,
):
self.code = code
self.instances = instances
self.message = message
# Id of the request
self.request_id = request_id
self.success = success
def validate(self):
if self.instances:
for k in self.instances:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
result['Instances'] = []
if self.instances is not None:
for k in self.instances:
result['Instances'].append(k.to_map() if k else None)
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
self.instances = []
if m.get('Instances') is not None:
for k in m.get('Instances'):
temp_model = ListInstancesResponseBodyInstances()
self.instances.append(temp_model.from_map(k))
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class ListInstancesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListInstancesResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListInstancesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListTagResourcesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
self.key = key
self.value = value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.key is not None:
result['Key'] = self.key
if self.value is not None:
result['Value'] = self.value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Key') is not None:
self.key = m.get('Key')
if m.get('Value') is not None:
self.value = m.get('Value')
return self
class ListTagResourcesRequest(TeaModel):
def __init__(
self,
next_token: str = None,
resource_id: List[str] = None,
resource_type: str = None,
tag: List[ListTagResourcesRequestTag] = None,
):
self.next_token = next_token
self.resource_id = resource_id
# This parameter is required.
self.resource_type = resource_type
self.tag = tag
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
result['Tag'] = []
if self.tag is not None:
for k in self.tag:
result['Tag'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = ListTagResourcesRequestTag()
self.tag.append(temp_model.from_map(k))
return self
class ListTagResourcesResponseBodyTagResources(TeaModel):
def __init__(
self,
resource_id: str = None,
resource_type: str = None,
tag_key: str = None,
tag_value: str = None,
):
self.resource_id = resource_id
self.resource_type = resource_type
self.tag_key = tag_key
self.tag_value = tag_value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
if self.tag_key is not None:
result['TagKey'] = self.tag_key
if self.tag_value is not None:
result['TagValue'] = self.tag_value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
if m.get('TagKey') is not None:
self.tag_key = m.get('TagKey')
if m.get('TagValue') is not None:
self.tag_value = m.get('TagValue')
return self
class ListTagResourcesResponseBody(TeaModel):
def __init__(
self,
code: str = None,
message: str = None,
next_token: str = None,
request_id: str = None,
success: str = None,
tag_resources: List[ListTagResourcesResponseBodyTagResources] = None,
):
self.code = code
self.message = message
self.next_token = next_token
# Id of the request
self.request_id = request_id
self.success = success
self.tag_resources = tag_resources
def validate(self):
if self.tag_resources:
for k in self.tag_resources:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
result['TagResources'] = []
if self.tag_resources is not None:
for k in self.tag_resources:
result['TagResources'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
self.tag_resources = []
if m.get('TagResources') is not None:
for k in m.get('TagResources'):
temp_model = ListTagResourcesResponseBodyTagResources()
self.tag_resources.append(temp_model.from_map(k))
return self
class ListTagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: ListTagResourcesResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = ListTagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCustomAuthConnectBlackRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
next_token: str = None,
size: int = None,
):
# The ID of the client to be queried.
self.client_id = client_id
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# 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.
self.next_token = next_token
# The number of clients to be queried. Maximum value: 100.
#
# This parameter is required.
self.size = size
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.size is not None:
result['Size'] = self.size
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('Size') is not None:
self.size = m.get('Size')
return self
class QueryCustomAuthConnectBlackResponseBodyDataResults(TeaModel):
def __init__(
self,
client_id: str = None,
effect: str = None,
permit_action: str = None,
):
# The client ID.
self.client_id = client_id
# Indicates whether to allow or deny access.
self.effect = effect
# The authorized permissions.
self.permit_action = permit_action
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.effect is not None:
result['Effect'] = self.effect
if self.permit_action is not None:
result['PermitAction'] = self.permit_action
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('Effect') is not None:
self.effect = m.get('Effect')
if m.get('PermitAction') is not None:
self.permit_action = m.get('PermitAction')
return self
class QueryCustomAuthConnectBlackResponseBodyData(TeaModel):
def __init__(
self,
next_token: str = None,
results: List[QueryCustomAuthConnectBlackResponseBodyDataResults] = None,
):
# The pagination token that is used in the next request to retrieve a new page of results.
self.next_token = next_token
# The returned results.
self.results = results
def validate(self):
if self.results:
for k in self.results:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
result['Results'] = []
if self.results is not None:
for k in self.results:
result['Results'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
self.results = []
if m.get('Results') is not None:
for k in m.get('Results'):
temp_model = QueryCustomAuthConnectBlackResponseBodyDataResults()
self.results.append(temp_model.from_map(k))
return self
class QueryCustomAuthConnectBlackResponseBody(TeaModel):
def __init__(
self,
code: int = None,
data: QueryCustomAuthConnectBlackResponseBodyData = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# 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.
self.code = code
# The returned data.
self.data = data
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = QueryCustomAuthConnectBlackResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class QueryCustomAuthConnectBlackResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryCustomAuthConnectBlackResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryCustomAuthConnectBlackResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCustomAuthIdentityRequest(TeaModel):
def __init__(
self,
client_id: str = None,
identity_type: str = None,
instance_id: str = None,
next_token: str = None,
size: int = None,
username: str = None,
):
# The client ID if you set IdentityType to CLIENT.
self.client_id = client_id
# The identity type.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# 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.
self.next_token = next_token
# The number of identities to be queried. Maximum value: 100.
#
# This parameter is required.
self.size = size
# The username.
self.username = username
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.size is not None:
result['Size'] = self.size
if self.username is not None:
result['Username'] = self.username
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('Size') is not None:
self.size = m.get('Size')
if m.get('Username') is not None:
self.username = m.get('Username')
return self
class QueryCustomAuthIdentityResponseBodyDataResults(TeaModel):
def __init__(
self,
client_id: str = None,
identity_type: str = None,
secret: str = None,
sign_mode: str = None,
username: str = None,
):
# The client ID if IdentityType is set to CLIENT.
self.client_id = client_id
# The identity type. Valid values:
#
# * USER
# * CLIENT
self.identity_type = identity_type
# The AccessKey secret.
self.secret = secret
# 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.
self.sign_mode = sign_mode
# The username.
self.username = username
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.secret is not None:
result['Secret'] = self.secret
if self.sign_mode is not None:
result['SignMode'] = self.sign_mode
if self.username is not None:
result['Username'] = self.username
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('Secret') is not None:
self.secret = m.get('Secret')
if m.get('SignMode') is not None:
self.sign_mode = m.get('SignMode')
if m.get('Username') is not None:
self.username = m.get('Username')
return self
class QueryCustomAuthIdentityResponseBodyData(TeaModel):
def __init__(
self,
next_token: str = None,
results: List[QueryCustomAuthIdentityResponseBodyDataResults] = None,
):
# If excess return values exist, this parameter is returned.
self.next_token = next_token
# The returned results.
self.results = results
def validate(self):
if self.results:
for k in self.results:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
result['Results'] = []
if self.results is not None:
for k in self.results:
result['Results'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
self.results = []
if m.get('Results') is not None:
for k in m.get('Results'):
temp_model = QueryCustomAuthIdentityResponseBodyDataResults()
self.results.append(temp_model.from_map(k))
return self
class QueryCustomAuthIdentityResponseBody(TeaModel):
def __init__(
self,
code: int = None,
data: QueryCustomAuthIdentityResponseBodyData = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# 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.
self.code = code
# The returned data.
self.data = data
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = QueryCustomAuthIdentityResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class QueryCustomAuthIdentityResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryCustomAuthIdentityResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryCustomAuthIdentityResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCustomAuthPermissionRequest(TeaModel):
def __init__(
self,
identity: str = None,
identity_type: str = None,
instance_id: str = None,
next_token: str = None,
size: int = None,
topic: str = None,
):
# The username or client ID.
self.identity = identity
# The identity type.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# 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.
self.next_token = next_token
# The number of queries to be returned. Maximum value: 100.
#
# This parameter is required.
self.size = size
# The topic whose authorization information you want to query. Multi-level topics and wildcard characters are supported.
self.topic = topic
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.identity is not None:
result['Identity'] = self.identity
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.next_token is not None:
result['NextToken'] = self.next_token
if self.size is not None:
result['Size'] = self.size
if self.topic is not None:
result['Topic'] = self.topic
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Identity') is not None:
self.identity = m.get('Identity')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
if m.get('Size') is not None:
self.size = m.get('Size')
if m.get('Topic') is not None:
self.topic = m.get('Topic')
return self
class QueryCustomAuthPermissionResponseBodyDataResults(TeaModel):
def __init__(
self,
effect: str = None,
identity: str = None,
identity_type: str = None,
permit_action: str = None,
topic: str = None,
):
# Indicates whether to allow or deny access.
self.effect = effect
# The username or client ID.
self.identity = identity
# The identity type. Valid values:
#
# * USER
# * CLIENT
self.identity_type = identity_type
# The authorized permissions.
self.permit_action = permit_action
# The topic name. Multi-level topics and wildcard characters are supported.
self.topic = topic
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.effect is not None:
result['Effect'] = self.effect
if self.identity is not None:
result['Identity'] = self.identity
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.permit_action is not None:
result['PermitAction'] = self.permit_action
if self.topic is not None:
result['Topic'] = self.topic
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Effect') is not None:
self.effect = m.get('Effect')
if m.get('Identity') is not None:
self.identity = m.get('Identity')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('PermitAction') is not None:
self.permit_action = m.get('PermitAction')
if m.get('Topic') is not None:
self.topic = m.get('Topic')
return self
class QueryCustomAuthPermissionResponseBodyData(TeaModel):
def __init__(
self,
next_token: str = None,
results: List[QueryCustomAuthPermissionResponseBodyDataResults] = None,
):
# 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.
self.next_token = next_token
# The response results.
self.results = results
def validate(self):
if self.results:
for k in self.results:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.next_token is not None:
result['NextToken'] = self.next_token
result['Results'] = []
if self.results is not None:
for k in self.results:
result['Results'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('NextToken') is not None:
self.next_token = m.get('NextToken')
self.results = []
if m.get('Results') is not None:
for k in m.get('Results'):
temp_model = QueryCustomAuthPermissionResponseBodyDataResults()
self.results.append(temp_model.from_map(k))
return self
class QueryCustomAuthPermissionResponseBody(TeaModel):
def __init__(
self,
code: int = None,
data: QueryCustomAuthPermissionResponseBodyData = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code.
self.code = code
# The returned data.
self.data = data
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = QueryCustomAuthPermissionResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class QueryCustomAuthPermissionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryCustomAuthPermissionResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryCustomAuthPermissionResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryMqttTraceDeviceRequest(TeaModel):
def __init__(
self,
begin_time: int = None,
client_id: str = None,
current_page: int = None,
end_time: int = None,
instance_id: str = None,
mqtt_region_id: str = None,
page_size: int = None,
reverse: bool = None,
):
# The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.begin_time = begin_time
# The client ID of the device whose trace you want to query.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.current_page = current_page
# The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.end_time = end_time
# 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.
#
# This parameter is required.
self.instance_id = instance_id
# The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](https://help.aliyun.com/document_detail/181438.html).
#
# This parameter is required.
self.mqtt_region_id = mqtt_region_id
# The number of entries to return on each page. Valid values: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
# Specifies whether the returned results are displayed in reverse chronological order. Valid values:
#
# * **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.
# * **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.
#
# If you do not specify this parameter, the returned results are displayed in time order of actions on the device by default.
self.reverse = reverse
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.begin_time is not None:
result['BeginTime'] = self.begin_time
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.current_page is not None:
result['CurrentPage'] = self.current_page
if self.end_time is not None:
result['EndTime'] = self.end_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.mqtt_region_id is not None:
result['MqttRegionId'] = self.mqtt_region_id
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.reverse is not None:
result['Reverse'] = self.reverse
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BeginTime') is not None:
self.begin_time = m.get('BeginTime')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
if m.get('EndTime') is not None:
self.end_time = m.get('EndTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('MqttRegionId') is not None:
self.mqtt_region_id = m.get('MqttRegionId')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Reverse') is not None:
self.reverse = m.get('Reverse')
return self
class QueryMqttTraceDeviceResponseBodyDeviceInfoList(TeaModel):
def __init__(
self,
action: str = None,
action_code: str = None,
action_info: str = None,
channel_id: str = None,
time: str = None,
):
# The action on the device. Valid values:
#
# * **connect**: The ApsaraMQ for MQTT client requests a connection to the ApsaraMQ for MQTT broker.
# * **close**: The TCP connection is closed.
# * **disconnect**: The ApsaraMQ for MQTT client requests a disconnection from the ApsaraMQ for MQTT broker.
self.action = action
# The returned code for the action on the device. Valid values:
#
# * **mqtt.trace.action.connect**: This value is returned if the value of Action is **connect**.
# * **mqtt.trace.action.close**: This value is returned if the value of Action is **close**.
# * **mqtt.trace.action.disconnect**: This value is returned if the value of Action is **disconnect**.
self.action_code = action_code
# The returned information for the action on the device. Valid values:
#
# * **accepted**: The ApsaraMQ for MQTT broker accepts the connection request from the ApsaraMQ for MQTT client.
# * **not authorized**: The TCP connection is closed because the permission verification of the client to access the instance fails.
# * **clientId conflict**: The TCP connection is closed due to a conflict in the ID of the ApsaraMQ for MQTT client.
# * **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.
# * **no heart**: The TCP connection is closed because no heartbeat is detected on the client.
# * **closed by client**: The TCP connection is closed because an exception occurs on the client.
# * **disconnected by client**: The client requests a disconnection.
# * **invalid param**: The TCP connection is closed due to invalid request parameters.
# * **Socket IOException**: The TCP connection is closed due to network jitter or packet loss.
self.action_info = action_info
# The connection ID.
self.channel_id = channel_id
# The time when the action occurred on the device.
self.time = time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.action is not None:
result['Action'] = self.action
if self.action_code is not None:
result['ActionCode'] = self.action_code
if self.action_info is not None:
result['ActionInfo'] = self.action_info
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.time is not None:
result['Time'] = self.time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Action') is not None:
self.action = m.get('Action')
if m.get('ActionCode') is not None:
self.action_code = m.get('ActionCode')
if m.get('ActionInfo') is not None:
self.action_info = m.get('ActionInfo')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('Time') is not None:
self.time = m.get('Time')
return self
class QueryMqttTraceDeviceResponseBody(TeaModel):
def __init__(
self,
current_page: int = None,
device_info_list: List[QueryMqttTraceDeviceResponseBodyDeviceInfoList] = None,
page_size: int = None,
request_id: str = None,
total: int = None,
):
# The page number of the returned page.
self.current_page = current_page
# The details of the action on the device.
self.device_info_list = device_info_list
# The number of entries returned per page.
self.page_size = page_size
# The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.
self.request_id = request_id
# The total number of returned actions on the device.
self.total = total
def validate(self):
if self.device_info_list:
for k in self.device_info_list:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.current_page is not None:
result['CurrentPage'] = self.current_page
result['DeviceInfoList'] = []
if self.device_info_list is not None:
for k in self.device_info_list:
result['DeviceInfoList'].append(k.to_map() if k else None)
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
self.device_info_list = []
if m.get('DeviceInfoList') is not None:
for k in m.get('DeviceInfoList'):
temp_model = QueryMqttTraceDeviceResponseBodyDeviceInfoList()
self.device_info_list.append(temp_model.from_map(k))
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class QueryMqttTraceDeviceResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryMqttTraceDeviceResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryMqttTraceDeviceResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryMqttTraceMessageOfClientRequest(TeaModel):
def __init__(
self,
begin_time: int = None,
client_id: str = None,
current_page: int = None,
end_time: int = None,
instance_id: str = None,
mqtt_region_id: str = None,
page_size: int = None,
reverse: bool = None,
):
# The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.begin_time = begin_time
# The client ID of the device whose messages you want to query.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.current_page = current_page
# The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.end_time = end_time
# 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.
#
# This parameter is required.
self.instance_id = instance_id
# The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](https://help.aliyun.com/document_detail/181438.html).
#
# This parameter is required.
self.mqtt_region_id = mqtt_region_id
# The number of entries to return on each page. Valid values: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
# Specifies whether the returned results are displayed in reverse chronological order. Valid values:
#
# * **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.
# * **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.
#
# If this parameter is not specified, the returned results are displayed in order of the time when messages are sent or received.
self.reverse = reverse
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.begin_time is not None:
result['BeginTime'] = self.begin_time
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.current_page is not None:
result['CurrentPage'] = self.current_page
if self.end_time is not None:
result['EndTime'] = self.end_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.mqtt_region_id is not None:
result['MqttRegionId'] = self.mqtt_region_id
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.reverse is not None:
result['Reverse'] = self.reverse
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BeginTime') is not None:
self.begin_time = m.get('BeginTime')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
if m.get('EndTime') is not None:
self.end_time = m.get('EndTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('MqttRegionId') is not None:
self.mqtt_region_id = m.get('MqttRegionId')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Reverse') is not None:
self.reverse = m.get('Reverse')
return self
class QueryMqttTraceMessageOfClientResponseBodyMessageOfClientList(TeaModel):
def __init__(
self,
action: str = None,
action_code: str = None,
action_info: str = None,
client_id: str = None,
msg_id: str = None,
time: str = None,
):
# The action on the message. Valid values:
#
# * **pub_mqtt**: The ApsaraMQ for MQTT client sends the message.
# * **sub**: The ApsaraMQ for MQTT client subscribes to the message.
# * **push_offline**: The ApsaraMQ for MQTT broker pushes the offline message to the ApsaraMQ for MQTT client.
self.action = action
# The returned code for the action on the message. Valid values:
#
# * **mqtt.trace.action.msg.pub.mqtt**: This value is returned if the value of Action is **pub_mqtt**.
# * **mqtt.trace.action.msg.sub**: This value is returned if the value of Action is **sub**.
# * **mqtt.trace.action.msg.push.offline**: This value is returned if the value of Action is **push_offline**.
self.action_code = action_code
# The information returned for the action on the message. Valid values:
#
# * **Pub From Mqtt Client**: This value is returned if the value of Action is **pub_mqtt**.
# * **Push To Mqtt Client**: This value is returned if the value of Action is **sub**.
# * **Push Offline Msg To Mqtt Client**: This value is returned if the value of Action is **push_offline**.
self.action_info = action_info
# The client ID of the device.
self.client_id = client_id
# The message ID.
self.msg_id = msg_id
# The time when the message was sent or received.
self.time = time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.action is not None:
result['Action'] = self.action
if self.action_code is not None:
result['ActionCode'] = self.action_code
if self.action_info is not None:
result['ActionInfo'] = self.action_info
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.msg_id is not None:
result['MsgId'] = self.msg_id
if self.time is not None:
result['Time'] = self.time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Action') is not None:
self.action = m.get('Action')
if m.get('ActionCode') is not None:
self.action_code = m.get('ActionCode')
if m.get('ActionInfo') is not None:
self.action_info = m.get('ActionInfo')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
if m.get('Time') is not None:
self.time = m.get('Time')
return self
class QueryMqttTraceMessageOfClientResponseBody(TeaModel):
def __init__(
self,
current_page: int = None,
message_of_client_list: List[QueryMqttTraceMessageOfClientResponseBodyMessageOfClientList] = None,
page_size: int = None,
request_id: str = None,
total: int = None,
):
# The page number of the returned page.
self.current_page = current_page
# The returned messages.
self.message_of_client_list = message_of_client_list
# The number of entries returned per page.
self.page_size = page_size
# The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.
self.request_id = request_id
# The total number of messages returned.
self.total = total
def validate(self):
if self.message_of_client_list:
for k in self.message_of_client_list:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.current_page is not None:
result['CurrentPage'] = self.current_page
result['MessageOfClientList'] = []
if self.message_of_client_list is not None:
for k in self.message_of_client_list:
result['MessageOfClientList'].append(k.to_map() if k else None)
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
self.message_of_client_list = []
if m.get('MessageOfClientList') is not None:
for k in m.get('MessageOfClientList'):
temp_model = QueryMqttTraceMessageOfClientResponseBodyMessageOfClientList()
self.message_of_client_list.append(temp_model.from_map(k))
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class QueryMqttTraceMessageOfClientResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryMqttTraceMessageOfClientResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryMqttTraceMessageOfClientResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryMqttTraceMessagePublishRequest(TeaModel):
def __init__(
self,
begin_time: int = None,
end_time: int = None,
instance_id: str = None,
mqtt_region_id: str = None,
msg_id: str = None,
):
# The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.begin_time = begin_time
# The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.end_time = end_time
# 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.
#
# This parameter is required.
self.instance_id = instance_id
# The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](https://help.aliyun.com/document_detail/181438.html).
#
# This parameter is required.
self.mqtt_region_id = mqtt_region_id
# The message ID.
#
# This parameter is required.
self.msg_id = msg_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.begin_time is not None:
result['BeginTime'] = self.begin_time
if self.end_time is not None:
result['EndTime'] = self.end_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.mqtt_region_id is not None:
result['MqttRegionId'] = self.mqtt_region_id
if self.msg_id is not None:
result['MsgId'] = self.msg_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BeginTime') is not None:
self.begin_time = m.get('BeginTime')
if m.get('EndTime') is not None:
self.end_time = m.get('EndTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('MqttRegionId') is not None:
self.mqtt_region_id = m.get('MqttRegionId')
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
return self
class QueryMqttTraceMessagePublishResponseBodyMessageTraceLists(TeaModel):
def __init__(
self,
action: str = None,
action_code: str = None,
action_info: str = None,
client_id: str = None,
msg_id: str = None,
time: str = None,
):
# The action on the message. Valid values:
#
# * **pub_mqtt**: indicates that the message was sent by an ApsaraMQ for MQTT client.
# * **pub_mq**: indicates that the message was sent by an ApsaraMQ for RocketMQ client.
self.action = action
# The returned code for the action on the message. Valid values:
#
# * **mqtt.trace.action.msg.pub.mqtt**: This value is returned if the value of Action is **pub_mqtt**.
# * **mqtt.trace.action.msg.pub.mq**: This value is returned if the value of Action is **pub_mq**.
self.action_code = action_code
# The returned information for the action on the message. Valid values:
#
# * **Pub From Mqtt Client**: This value is returned if the value of Action is **pub_mqtt**.
# * **Pub From MQ**: This value is returned if the value of Action is **pub_mq**.
self.action_info = action_info
# The ID of the client that sends the message.
self.client_id = client_id
# The message ID.
self.msg_id = msg_id
# The time when the message was sent.
self.time = time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.action is not None:
result['Action'] = self.action
if self.action_code is not None:
result['ActionCode'] = self.action_code
if self.action_info is not None:
result['ActionInfo'] = self.action_info
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.msg_id is not None:
result['MsgId'] = self.msg_id
if self.time is not None:
result['Time'] = self.time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Action') is not None:
self.action = m.get('Action')
if m.get('ActionCode') is not None:
self.action_code = m.get('ActionCode')
if m.get('ActionInfo') is not None:
self.action_info = m.get('ActionInfo')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
if m.get('Time') is not None:
self.time = m.get('Time')
return self
class QueryMqttTraceMessagePublishResponseBody(TeaModel):
def __init__(
self,
message_trace_lists: List[QueryMqttTraceMessagePublishResponseBodyMessageTraceLists] = None,
request_id: str = None,
):
# The message traces.
self.message_trace_lists = message_trace_lists
# The request ID. You can use the ID to troubleshoot issues. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.message_trace_lists:
for k in self.message_trace_lists:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
result['MessageTraceLists'] = []
if self.message_trace_lists is not None:
for k in self.message_trace_lists:
result['MessageTraceLists'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
self.message_trace_lists = []
if m.get('MessageTraceLists') is not None:
for k in m.get('MessageTraceLists'):
temp_model = QueryMqttTraceMessagePublishResponseBodyMessageTraceLists()
self.message_trace_lists.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryMqttTraceMessagePublishResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryMqttTraceMessagePublishResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryMqttTraceMessagePublishResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryMqttTraceMessageSubscribeRequest(TeaModel):
def __init__(
self,
begin_time: int = None,
client_id: str = None,
current_page: int = None,
end_time: int = None,
instance_id: str = None,
mqtt_region_id: str = None,
msg_id: str = None,
page_size: int = None,
reverse: bool = None,
):
# The beginning of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.begin_time = begin_time
# 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.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.current_page = current_page
# The end of the time range to query. The value of this parameter is a UNIX timestamp in milliseconds.
#
# This parameter is required.
self.end_time = end_time
# 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.
#
# This parameter is required.
self.instance_id = instance_id
# The ID of the region where the ApsaraMQ for MQTT instance resides. For more information, see [Endpoints](https://help.aliyun.com/document_detail/181438.html).
#
# This parameter is required.
self.mqtt_region_id = mqtt_region_id
# The message ID.
#
# This parameter is required.
self.msg_id = msg_id
# The number of entries to return on each page. Valid values: 1 to 100.
#
# This parameter is required.
self.page_size = page_size
# Specifies whether the returned results are displayed in reverse chronological order. Valid values:
#
# * **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.
# * **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.
#
# If you do not specify this parameter, the returned results are displayed in order of time when messages are delivered.
self.reverse = reverse
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.begin_time is not None:
result['BeginTime'] = self.begin_time
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.current_page is not None:
result['CurrentPage'] = self.current_page
if self.end_time is not None:
result['EndTime'] = self.end_time
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.mqtt_region_id is not None:
result['MqttRegionId'] = self.mqtt_region_id
if self.msg_id is not None:
result['MsgId'] = self.msg_id
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.reverse is not None:
result['Reverse'] = self.reverse
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('BeginTime') is not None:
self.begin_time = m.get('BeginTime')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
if m.get('EndTime') is not None:
self.end_time = m.get('EndTime')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('MqttRegionId') is not None:
self.mqtt_region_id = m.get('MqttRegionId')
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('Reverse') is not None:
self.reverse = m.get('Reverse')
return self
class QueryMqttTraceMessageSubscribeResponseBodyMessageTraceLists(TeaModel):
def __init__(
self,
action: str = None,
action_code: str = None,
action_info: str = None,
client_id: str = None,
msg_id: str = None,
time: str = None,
):
# The action on the message. Valid values:
#
# * **sub**: The ApsaraMQ for MQTT client subscribes to the message.
# * **push_offline**: The ApsaraMQ for MQTT broker pushes the offline message to the ApsaraMQ for MQTT client.
self.action = action
# The code returned for the action on the message. Valid values:
#
# * **mqtt.trace.action.msg.sub**: The value that is returned if the value of Action is **sub**.
# * **mqtt.trace.action.msg.push.offline**: The value that is returned if the value of Action is **push_offline**.
self.action_code = action_code
# The returned information for the action on the message. Valid values:
#
# * **Push To Mqtt Client**: The value that is returned if the value of Action is **sub**.
# * **Push Offline Msg To Mqtt Client**: The value that is returned if the value of Action is **push_offline**.
self.action_info = action_info
# The ID of the client that subscribes to the message.
self.client_id = client_id
# The message ID.
self.msg_id = msg_id
# The time when the message was delivered.
self.time = time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.action is not None:
result['Action'] = self.action
if self.action_code is not None:
result['ActionCode'] = self.action_code
if self.action_info is not None:
result['ActionInfo'] = self.action_info
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.msg_id is not None:
result['MsgId'] = self.msg_id
if self.time is not None:
result['Time'] = self.time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Action') is not None:
self.action = m.get('Action')
if m.get('ActionCode') is not None:
self.action_code = m.get('ActionCode')
if m.get('ActionInfo') is not None:
self.action_info = m.get('ActionInfo')
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
if m.get('Time') is not None:
self.time = m.get('Time')
return self
class QueryMqttTraceMessageSubscribeResponseBody(TeaModel):
def __init__(
self,
current_page: int = None,
message_trace_lists: List[QueryMqttTraceMessageSubscribeResponseBodyMessageTraceLists] = None,
page_size: int = None,
request_id: str = None,
total: int = None,
):
# The page number of the returned page.
self.current_page = current_page
# The delivery trace of the queried message.
self.message_trace_lists = message_trace_lists
# The number of entries returned per page.
self.page_size = page_size
# The unique ID that the system generates for the request. You can use the ID to troubleshoot issues. This parameter is a common parameter.
self.request_id = request_id
# The returned delivery traces.
self.total = total
def validate(self):
if self.message_trace_lists:
for k in self.message_trace_lists:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.current_page is not None:
result['CurrentPage'] = self.current_page
result['MessageTraceLists'] = []
if self.message_trace_lists is not None:
for k in self.message_trace_lists:
result['MessageTraceLists'].append(k.to_map() if k else None)
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CurrentPage') is not None:
self.current_page = m.get('CurrentPage')
self.message_trace_lists = []
if m.get('MessageTraceLists') is not None:
for k in m.get('MessageTraceLists'):
temp_model = QueryMqttTraceMessageSubscribeResponseBodyMessageTraceLists()
self.message_trace_lists.append(temp_model.from_map(k))
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class QueryMqttTraceMessageSubscribeResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryMqttTraceMessageSubscribeResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryMqttTraceMessageSubscribeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QuerySessionByClientIdRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The ID of the ApsaraMQ for MQTT client that you want to query.
#
# This parameter is required.
self.client_id = client_id
# 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).
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class QuerySessionByClientIdResponseBody(TeaModel):
def __init__(
self,
online_status: bool = None,
request_id: str = None,
):
# Indicates whether the ApsaraMQ for MQTT client is connected to the ApsaraMQ for MQTT broker. Valid values:
#
# * **true**\
# * **false**\
self.online_status = online_status
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.online_status is not None:
result['OnlineStatus'] = self.online_status
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('OnlineStatus') is not None:
self.online_status = m.get('OnlineStatus')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QuerySessionByClientIdResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QuerySessionByClientIdResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QuerySessionByClientIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryTokenRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
token: str = None,
):
# 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/).
#
# This parameter is required.
self.instance_id = instance_id
# The token that you want to query.
#
# This parameter is required.
self.token = token
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.token is not None:
result['Token'] = self.token
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Token') is not None:
self.token = m.get('Token')
return self
class QueryTokenResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
token_status: bool = None,
):
# The unique ID that the system generates for the request. This parameter is a common parameter.
self.request_id = request_id
# The status of the queried token. Valid values:
#
# * **true**: indicates the token is valid.
# * **false**: indicates the token is invalid.
self.token_status = token_status
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.token_status is not None:
result['TokenStatus'] = self.token_status
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TokenStatus') is not None:
self.token_status = m.get('TokenStatus')
return self
class QueryTokenResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: QueryTokenResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = QueryTokenResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RefreshDeviceCredentialRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The client ID of the device whose access credential you want to update.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class RefreshDeviceCredentialResponseBodyDeviceCredential(TeaModel):
def __init__(
self,
client_id: str = None,
create_time: int = None,
device_access_key_id: str = None,
device_access_key_secret: str = None,
instance_id: str = None,
update_time: int = None,
):
# The client ID of the device.
self.client_id = client_id
# The timestamp that indicates when the access credential of the device was created. The value of this parameter is a UNIX timestamp in milliseconds.
self.create_time = create_time
# The AccessKey ID of the device.
self.device_access_key_id = device_access_key_id
# The AccessKey secret of the device.
self.device_access_key_secret = device_access_key_secret
# The ID of the ApsaraMQ for MQTT instance.
self.instance_id = instance_id
# 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.
self.update_time = update_time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.device_access_key_id is not None:
result['DeviceAccessKeyId'] = self.device_access_key_id
if self.device_access_key_secret is not None:
result['DeviceAccessKeySecret'] = self.device_access_key_secret
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.update_time is not None:
result['UpdateTime'] = self.update_time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('DeviceAccessKeyId') is not None:
self.device_access_key_id = m.get('DeviceAccessKeyId')
if m.get('DeviceAccessKeySecret') is not None:
self.device_access_key_secret = m.get('DeviceAccessKeySecret')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('UpdateTime') is not None:
self.update_time = m.get('UpdateTime')
return self
class RefreshDeviceCredentialResponseBody(TeaModel):
def __init__(
self,
device_credential: RefreshDeviceCredentialResponseBodyDeviceCredential = None,
request_id: str = None,
):
# The access credential of the device.
self.device_credential = device_credential
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.device_credential:
self.device_credential.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_credential is not None:
result['DeviceCredential'] = self.device_credential.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceCredential') is not None:
temp_model = RefreshDeviceCredentialResponseBodyDeviceCredential()
self.device_credential = temp_model.from_map(m['DeviceCredential'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RefreshDeviceCredentialResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RefreshDeviceCredentialResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = RefreshDeviceCredentialResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RegisterCaCertificateRequest(TeaModel):
def __init__(
self,
ca_content: str = None,
ca_name: str = None,
mqtt_instance_id: str = None,
verification_content: str = None,
):
# The content of the CA certificate that you want to register with an ApsaraMQ for MQTT broker.
#
#
# > In the example, \\n indicates a line feed.
#
# This parameter is required.
self.ca_content = ca_content
# The name of the CA certificate that you want to register with an ApsaraMQ for MQTT broker.
#
# This parameter is required.
self.ca_name = ca_name
# The ID of the ApsaraMQ for MQTT instance to which you want to bind the CA certificate.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# 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.
# > In the example, \\n indicates a line feed.
#
# This parameter is required.
self.verification_content = verification_content
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.ca_content is not None:
result['CaContent'] = self.ca_content
if self.ca_name is not None:
result['CaName'] = self.ca_name
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.verification_content is not None:
result['VerificationContent'] = self.verification_content
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('CaContent') is not None:
self.ca_content = m.get('CaContent')
if m.get('CaName') is not None:
self.ca_name = m.get('CaName')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('VerificationContent') is not None:
self.verification_content = m.get('VerificationContent')
return self
class RegisterCaCertificateResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
sn: str = None,
):
# The request ID.
self.request_id = request_id
# The serial number of the registered CA certificate. The serial number is the unique identifier of a CA certificate.
self.sn = sn
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.sn is not None:
result['Sn'] = self.sn
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Sn') is not None:
self.sn = m.get('Sn')
return self
class RegisterCaCertificateResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RegisterCaCertificateResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = RegisterCaCertificateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RegisterDeviceCredentialRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The client ID of the device for which you want to create an access credential.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class RegisterDeviceCredentialResponseBodyDeviceCredential(TeaModel):
def __init__(
self,
client_id: str = None,
create_time: int = None,
device_access_key_id: str = None,
device_access_key_secret: str = None,
instance_id: str = None,
update_time: int = None,
):
# The client ID of the device.
self.client_id = client_id
# The timestamp that indicates when the access credential of the device was created. Unit: milliseconds.
self.create_time = create_time
# The AccessKey ID of the device.
self.device_access_key_id = device_access_key_id
# The AccessKey secret of the device.
self.device_access_key_secret = device_access_key_secret
# The ID of the ApsaraMQ for MQTT instance.
self.instance_id = instance_id
# The timestamp that indicates when the access credential of the device was last updated. Unit: milliseconds.
self.update_time = update_time
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.create_time is not None:
result['CreateTime'] = self.create_time
if self.device_access_key_id is not None:
result['DeviceAccessKeyId'] = self.device_access_key_id
if self.device_access_key_secret is not None:
result['DeviceAccessKeySecret'] = self.device_access_key_secret
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.update_time is not None:
result['UpdateTime'] = self.update_time
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('CreateTime') is not None:
self.create_time = m.get('CreateTime')
if m.get('DeviceAccessKeyId') is not None:
self.device_access_key_id = m.get('DeviceAccessKeyId')
if m.get('DeviceAccessKeySecret') is not None:
self.device_access_key_secret = m.get('DeviceAccessKeySecret')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('UpdateTime') is not None:
self.update_time = m.get('UpdateTime')
return self
class RegisterDeviceCredentialResponseBody(TeaModel):
def __init__(
self,
device_credential: RegisterDeviceCredentialResponseBodyDeviceCredential = None,
request_id: str = None,
):
# The access credential of the device.
self.device_credential = device_credential
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
if self.device_credential:
self.device_credential.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.device_credential is not None:
result['DeviceCredential'] = self.device_credential.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DeviceCredential') is not None:
temp_model = RegisterDeviceCredentialResponseBodyDeviceCredential()
self.device_credential = temp_model.from_map(m['DeviceCredential'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RegisterDeviceCredentialResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RegisterDeviceCredentialResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = RegisterDeviceCredentialResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RevokeTokenRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
token: str = None,
):
# 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/).
#
# This parameter is required.
self.instance_id = instance_id
# The token that you want to revoke.
#
# This parameter is required.
self.token = token
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.token is not None:
result['Token'] = self.token
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Token') is not None:
self.token = m.get('Token')
return self
class RevokeTokenResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The request ID. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RevokeTokenResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: RevokeTokenResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = RevokeTokenResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SendMessageRequest(TeaModel):
def __init__(
self,
instance_id: str = None,
mqtt_topic: str = None,
payload: str = None,
):
# 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).
#
# This parameter is required.
self.instance_id = instance_id
# The topic to which you want to send a message on the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.mqtt_topic = mqtt_topic
# 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.
#
# This parameter is required.
self.payload = payload
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.mqtt_topic is not None:
result['MqttTopic'] = self.mqtt_topic
if self.payload is not None:
result['Payload'] = self.payload
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('MqttTopic') is not None:
self.mqtt_topic = m.get('MqttTopic')
if m.get('Payload') is not None:
self.payload = m.get('Payload')
return self
class SendMessageResponseBody(TeaModel):
def __init__(
self,
msg_id: str = None,
request_id: str = None,
):
# The unique message ID that is returned by the ApsaraMQ for MQTT broker after the message is sent.
self.msg_id = msg_id
# The unique ID that the system generates for the request. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.msg_id is not None:
result['MsgId'] = self.msg_id
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('MsgId') is not None:
self.msg_id = m.get('MsgId')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SendMessageResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: SendMessageResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = SendMessageResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SetSniConfigRequest(TeaModel):
def __init__(
self,
default_certificate: str = None,
mqtt_instance_id: str = None,
sni_config: str = None,
):
# The default certificate. If the domain name that you access cannot match the certificates of the broker, the default certificate is returned.
#
# This parameter is required.
self.default_certificate = default_certificate
# The instance ID.
#
# This parameter is required.
self.mqtt_instance_id = mqtt_instance_id
# The Server Name Indication (SNI) configuration. This parameter is used to map domain names and certificates. Format: Domain name#Certificate ID#Password (if available);Domain name#Certificate ID#Password (if available).
self.sni_config = sni_config
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.default_certificate is not None:
result['DefaultCertificate'] = self.default_certificate
if self.mqtt_instance_id is not None:
result['MqttInstanceId'] = self.mqtt_instance_id
if self.sni_config is not None:
result['SniConfig'] = self.sni_config
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('DefaultCertificate') is not None:
self.default_certificate = m.get('DefaultCertificate')
if m.get('MqttInstanceId') is not None:
self.mqtt_instance_id = m.get('MqttInstanceId')
if m.get('SniConfig') is not None:
self.sni_config = m.get('SniConfig')
return self
class SetSniConfigResponseBodyAccessDeniedDetail(TeaModel):
def __init__(
self,
auth_action: str = None,
auth_principal_display_name: str = None,
auth_principal_owner_id: str = None,
auth_principal_type: str = None,
encoded_diagnostic_message: str = None,
no_permission_type: str = None,
policy_type: str = None,
):
self.auth_action = auth_action
self.auth_principal_display_name = auth_principal_display_name
self.auth_principal_owner_id = auth_principal_owner_id
self.auth_principal_type = auth_principal_type
self.encoded_diagnostic_message = encoded_diagnostic_message
self.no_permission_type = no_permission_type
self.policy_type = policy_type
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.auth_action is not None:
result['AuthAction'] = self.auth_action
if self.auth_principal_display_name is not None:
result['AuthPrincipalDisplayName'] = self.auth_principal_display_name
if self.auth_principal_owner_id is not None:
result['AuthPrincipalOwnerId'] = self.auth_principal_owner_id
if self.auth_principal_type is not None:
result['AuthPrincipalType'] = self.auth_principal_type
if self.encoded_diagnostic_message is not None:
result['EncodedDiagnosticMessage'] = self.encoded_diagnostic_message
if self.no_permission_type is not None:
result['NoPermissionType'] = self.no_permission_type
if self.policy_type is not None:
result['PolicyType'] = self.policy_type
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AuthAction') is not None:
self.auth_action = m.get('AuthAction')
if m.get('AuthPrincipalDisplayName') is not None:
self.auth_principal_display_name = m.get('AuthPrincipalDisplayName')
if m.get('AuthPrincipalOwnerId') is not None:
self.auth_principal_owner_id = m.get('AuthPrincipalOwnerId')
if m.get('AuthPrincipalType') is not None:
self.auth_principal_type = m.get('AuthPrincipalType')
if m.get('EncodedDiagnosticMessage') is not None:
self.encoded_diagnostic_message = m.get('EncodedDiagnosticMessage')
if m.get('NoPermissionType') is not None:
self.no_permission_type = m.get('NoPermissionType')
if m.get('PolicyType') is not None:
self.policy_type = m.get('PolicyType')
return self
class SetSniConfigResponseBody(TeaModel):
def __init__(
self,
access_denied_detail: SetSniConfigResponseBodyAccessDeniedDetail = None,
request_id: str = None,
success: str = None,
):
self.access_denied_detail = access_denied_detail
# The request ID.
self.request_id = request_id
self.success = success
def validate(self):
if self.access_denied_detail:
self.access_denied_detail.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
temp_model = SetSniConfigResponseBodyAccessDeniedDetail()
self.access_denied_detail = temp_model.from_map(m['AccessDeniedDetail'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class SetSniConfigResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: SetSniConfigResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = SetSniConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class TagResourcesRequestTag(TeaModel):
def __init__(
self,
key: str = None,
value: str = None,
):
self.key = key
self.value = value
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.key is not None:
result['Key'] = self.key
if self.value is not None:
result['Value'] = self.value
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Key') is not None:
self.key = m.get('Key')
if m.get('Value') is not None:
self.value = m.get('Value')
return self
class TagResourcesRequest(TeaModel):
def __init__(
self,
resource_id: List[str] = None,
resource_type: str = None,
tag: List[TagResourcesRequestTag] = None,
):
# This parameter is required.
self.resource_id = resource_id
# This parameter is required.
self.resource_type = resource_type
# This parameter is required.
self.tag = tag
def validate(self):
if self.tag:
for k in self.tag:
if k:
k.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
result['Tag'] = []
if self.tag is not None:
for k in self.tag:
result['Tag'].append(k.to_map() if k else None)
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
self.tag = []
if m.get('Tag') is not None:
for k in m.get('Tag'):
temp_model = TagResourcesRequestTag()
self.tag.append(temp_model.from_map(k))
return self
class TagResourcesResponseBody(TeaModel):
def __init__(
self,
code: str = None,
data: bool = None,
message: str = None,
request_id: str = None,
):
self.code = code
self.data = data
self.message = message
# Id of the request
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class TagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: TagResourcesResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = TagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UnRegisterDeviceCredentialRequest(TeaModel):
def __init__(
self,
client_id: str = None,
instance_id: str = None,
):
# The client ID of the device whose access credential you want to deregister.
#
# This parameter is required.
self.client_id = client_id
# 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.
#
# This parameter is required.
self.instance_id = instance_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
return self
class UnRegisterDeviceCredentialResponseBody(TeaModel):
def __init__(
self,
request_id: str = None,
):
# The unique ID that the system generates for the request. This parameter is a common parameter.
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UnRegisterDeviceCredentialResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UnRegisterDeviceCredentialResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = UnRegisterDeviceCredentialResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UntagResourcesRequest(TeaModel):
def __init__(
self,
all: bool = None,
resource_id: List[str] = None,
resource_type: str = None,
tag_key: List[str] = None,
):
self.all = all
# This parameter is required.
self.resource_id = resource_id
# This parameter is required.
self.resource_type = resource_type
self.tag_key = tag_key
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.all is not None:
result['All'] = self.all
if self.resource_id is not None:
result['ResourceId'] = self.resource_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
if self.tag_key is not None:
result['TagKey'] = self.tag_key
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('All') is not None:
self.all = m.get('All')
if m.get('ResourceId') is not None:
self.resource_id = m.get('ResourceId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
if m.get('TagKey') is not None:
self.tag_key = m.get('TagKey')
return self
class UntagResourcesResponseBody(TeaModel):
def __init__(
self,
code: str = None,
data: bool = None,
message: str = None,
request_id: str = None,
):
self.code = code
self.data = data
self.message = message
# Id of the request
self.request_id = request_id
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UntagResourcesResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UntagResourcesResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = UntagResourcesResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpdateCustomAuthIdentityRequest(TeaModel):
def __init__(
self,
client_id: str = None,
identity_type: str = None,
instance_id: str = None,
secret: str = None,
sign_mode: str = None,
username: str = None,
):
# The client ID if you set IdentityType to CLIENT.
self.client_id = client_id
# The identity type. Valid values:
#
# * USER
# * CLIENT
#
# This parameter is required.
self.identity_type = identity_type
# The ID of the ApsaraMQ for MQTT instance.
#
# This parameter is required.
self.instance_id = instance_id
# The AccessKey secret.
#
# This parameter is required.
self.secret = secret
# 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.
#
# This parameter is required.
self.sign_mode = sign_mode
# The username. The value cannot exceed 64 characters in length.
#
# This parameter is required.
self.username = username
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.client_id is not None:
result['ClientId'] = self.client_id
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.secret is not None:
result['Secret'] = self.secret
if self.sign_mode is not None:
result['SignMode'] = self.sign_mode
if self.username is not None:
result['Username'] = self.username
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('ClientId') is not None:
self.client_id = m.get('ClientId')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('Secret') is not None:
self.secret = m.get('Secret')
if m.get('SignMode') is not None:
self.sign_mode = m.get('SignMode')
if m.get('Username') is not None:
self.username = m.get('Username')
return self
class UpdateCustomAuthIdentityResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# The HTTP status code.
self.code = code
# The returned message.
self.message = message
# The request ID.
self.request_id = request_id
# Indicates whether the request is successful. Valid values: true and false.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class UpdateCustomAuthIdentityResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UpdateCustomAuthIdentityResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = UpdateCustomAuthIdentityResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpdateCustomAuthPermissionRequest(TeaModel):
def __init__(
self,
effect: str = None,
identity: str = None,
identity_type: str = None,
instance_id: str = None,
permit_action: str = None,
topic: str = None,
):
# Specifies whether to allow or deny access.
#
# This parameter is required.
self.effect = effect
# Username or Client ID.
#
# This parameter is required.
self.identity = identity
# The identity type. Valid values:
#
# * USER
# * CLIENT
#
# This parameter is required.
self.identity_type = identity_type
# ID of the Cloud Message Queue MQTT version instance.
#
# This parameter is required.
self.instance_id = instance_id
# The permissions that you want to grant.
#
# This parameter is required.
self.permit_action = permit_action
# Authorized Topic, supporting multi-level MQTT topics and wildcards.
#
# This parameter is required.
self.topic = topic
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.effect is not None:
result['Effect'] = self.effect
if self.identity is not None:
result['Identity'] = self.identity
if self.identity_type is not None:
result['IdentityType'] = self.identity_type
if self.instance_id is not None:
result['InstanceId'] = self.instance_id
if self.permit_action is not None:
result['PermitAction'] = self.permit_action
if self.topic is not None:
result['Topic'] = self.topic
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Effect') is not None:
self.effect = m.get('Effect')
if m.get('Identity') is not None:
self.identity = m.get('Identity')
if m.get('IdentityType') is not None:
self.identity_type = m.get('IdentityType')
if m.get('InstanceId') is not None:
self.instance_id = m.get('InstanceId')
if m.get('PermitAction') is not None:
self.permit_action = m.get('PermitAction')
if m.get('Topic') is not None:
self.topic = m.get('Topic')
return self
class UpdateCustomAuthPermissionResponseBody(TeaModel):
def __init__(
self,
code: int = None,
message: str = None,
request_id: str = None,
success: bool = None,
):
# Error code returned upon failed invocation. For more information, see Error Codes.
self.code = code
# Information
self.message = message
# Id of the request
self.request_id = request_id
# Indicates whether the call was successful. true: Call succeeded. false: Call failed.
self.success = success
def validate(self):
pass
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class UpdateCustomAuthPermissionResponse(TeaModel):
def __init__(
self,
headers: Dict[str, str] = None,
status_code: int = None,
body: UpdateCustomAuthPermissionResponseBody = None,
):
self.headers = headers
self.status_code = status_code
self.body = body
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super().to_map()
if _map is not None:
return _map
result = dict()
if self.headers is not None:
result['headers'] = self.headers
if self.status_code is not None:
result['statusCode'] = self.status_code
if self.body is not None:
result['body'] = self.body.to_map()
return result
def from_map(self, m: dict = None):
m = m or dict()
if m.get('headers') is not None:
self.headers = m.get('headers')
if m.get('statusCode') is not None:
self.status_code = m.get('statusCode')
if m.get('body') is not None:
temp_model = UpdateCustomAuthPermissionResponseBody()
self.body = temp_model.from_map(m['body'])
return self