vdc-20201214/alibabacloud_vdc20201214/models.py (5,861 lines of code) (raw):
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
from Tea.model import TeaModel
class DescribeAppConfigRequest(TeaModel):
def __init__(self, app_id=None):
self.app_id = app_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeAppConfigRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
return self
class DescribeAppConfigResponseBodyThresholdConfig(TeaModel):
def __init__(self, join_slow_time=None):
self.join_slow_time = join_slow_time # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeAppConfigResponseBodyThresholdConfig, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_slow_time is not None:
result['JoinSlowTime'] = self.join_slow_time
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinSlowTime') is not None:
self.join_slow_time = m.get('JoinSlowTime')
return self
class DescribeAppConfigResponseBody(TeaModel):
def __init__(self, request_id=None, threshold_config=None):
self.request_id = request_id # type: str
self.threshold_config = threshold_config # type: DescribeAppConfigResponseBodyThresholdConfig
def validate(self):
if self.threshold_config:
self.threshold_config.validate()
def to_map(self):
_map = super(DescribeAppConfigResponseBody, self).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.threshold_config is not None:
result['ThresholdConfig'] = self.threshold_config.to_map()
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('ThresholdConfig') is not None:
temp_model = DescribeAppConfigResponseBodyThresholdConfig()
self.threshold_config = temp_model.from_map(m['ThresholdConfig'])
return self
class DescribeAppConfigResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeAppConfigResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeAppConfigResponse, self).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=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 = DescribeAppConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeCallRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, ext_data_type=None,
query_exp_info=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.ext_data_type = ext_data_type # type: str
self.query_exp_info = query_exp_info # type: bool
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.ext_data_type is not None:
result['ExtDataType'] = self.ext_data_type
if self.query_exp_info is not None:
result['QueryExpInfo'] = self.query_exp_info
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('ExtDataType') is not None:
self.ext_data_type = m.get('ExtDataType')
if m.get('QueryExpInfo') is not None:
self.query_exp_info = m.get('QueryExpInfo')
return self
class DescribeCallResponseBodyCallInfo(TeaModel):
def __init__(self, app_id=None, call_status=None, channel_id=None, created_ts=None, destroyed_ts=None,
duration=None):
# App ID。
self.app_id = app_id # type: str
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallResponseBodyCallInfo, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
return self
class DescribeCallResponseBodyUserDetailListDurMetricStatData(TeaModel):
def __init__(self, pub_audio=None, pub_video_1080=None, pub_video_360=None, pub_video_720=None,
pub_video_screen_share=None, sub_audio=None, sub_video_1080=None, sub_video_360=None, sub_video_720=None,
sub_video_screen_share=None):
self.pub_audio = pub_audio # type: long
self.pub_video_1080 = pub_video_1080 # type: long
self.pub_video_360 = pub_video_360 # type: long
self.pub_video_720 = pub_video_720 # type: long
self.pub_video_screen_share = pub_video_screen_share # type: long
self.sub_audio = sub_audio # type: long
self.sub_video_1080 = sub_video_1080 # type: long
self.sub_video_360 = sub_video_360 # type: long
self.sub_video_720 = sub_video_720 # type: long
self.sub_video_screen_share = sub_video_screen_share # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallResponseBodyUserDetailListDurMetricStatData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.pub_audio is not None:
result['PubAudio'] = self.pub_audio
if self.pub_video_1080 is not None:
result['PubVideo1080'] = self.pub_video_1080
if self.pub_video_360 is not None:
result['PubVideo360'] = self.pub_video_360
if self.pub_video_720 is not None:
result['PubVideo720'] = self.pub_video_720
if self.pub_video_screen_share is not None:
result['PubVideoScreenShare'] = self.pub_video_screen_share
if self.sub_audio is not None:
result['SubAudio'] = self.sub_audio
if self.sub_video_1080 is not None:
result['SubVideo1080'] = self.sub_video_1080
if self.sub_video_360 is not None:
result['SubVideo360'] = self.sub_video_360
if self.sub_video_720 is not None:
result['SubVideo720'] = self.sub_video_720
if self.sub_video_screen_share is not None:
result['SubVideoScreenShare'] = self.sub_video_screen_share
return result
def from_map(self, m=None):
m = m or dict()
if m.get('PubAudio') is not None:
self.pub_audio = m.get('PubAudio')
if m.get('PubVideo1080') is not None:
self.pub_video_1080 = m.get('PubVideo1080')
if m.get('PubVideo360') is not None:
self.pub_video_360 = m.get('PubVideo360')
if m.get('PubVideo720') is not None:
self.pub_video_720 = m.get('PubVideo720')
if m.get('PubVideoScreenShare') is not None:
self.pub_video_screen_share = m.get('PubVideoScreenShare')
if m.get('SubAudio') is not None:
self.sub_audio = m.get('SubAudio')
if m.get('SubVideo1080') is not None:
self.sub_video_1080 = m.get('SubVideo1080')
if m.get('SubVideo360') is not None:
self.sub_video_360 = m.get('SubVideo360')
if m.get('SubVideo720') is not None:
self.sub_video_720 = m.get('SubVideo720')
if m.get('SubVideoScreenShare') is not None:
self.sub_video_screen_share = m.get('SubVideoScreenShare')
return self
class DescribeCallResponseBodyUserDetailListOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallResponseBodyUserDetailListOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribeCallResponseBodyUserDetailList(TeaModel):
def __init__(self, call_exp=None, created_ts=None, destroyed_ts=None, dur_metric_stat_data=None, duration=None,
location=None, network=None, network_list=None, online_duration=None, online_periods=None, os=None,
os_list=None, roles=None, sdk_version=None, sdk_version_list=None, user_id=None, user_id_alias=None):
self.call_exp = call_exp # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.dur_metric_stat_data = dur_metric_stat_data # type: DescribeCallResponseBodyUserDetailListDurMetricStatData
self.duration = duration # type: long
self.location = location # type: str
self.network = network # type: str
self.network_list = network_list # type: list[str]
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribeCallResponseBodyUserDetailListOnlinePeriods]
self.os = os # type: str
self.os_list = os_list # type: list[str]
self.roles = roles # type: list[str]
self.sdk_version = sdk_version # type: str
self.sdk_version_list = sdk_version_list # type: list[str]
self.user_id = user_id # type: str
self.user_id_alias = user_id_alias # type: str
def validate(self):
if self.dur_metric_stat_data:
self.dur_metric_stat_data.validate()
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallResponseBodyUserDetailList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_exp is not None:
result['CallExp'] = self.call_exp
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.dur_metric_stat_data is not None:
result['DurMetricStatData'] = self.dur_metric_stat_data.to_map()
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.network is not None:
result['Network'] = self.network
if self.network_list is not None:
result['NetworkList'] = self.network_list
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.os is not None:
result['Os'] = self.os
if self.os_list is not None:
result['OsList'] = self.os_list
if self.roles is not None:
result['Roles'] = self.roles
if self.sdk_version is not None:
result['SdkVersion'] = self.sdk_version
if self.sdk_version_list is not None:
result['SdkVersionList'] = self.sdk_version_list
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_id_alias is not None:
result['UserIdAlias'] = self.user_id_alias
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallExp') is not None:
self.call_exp = m.get('CallExp')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('DurMetricStatData') is not None:
temp_model = DescribeCallResponseBodyUserDetailListDurMetricStatData()
self.dur_metric_stat_data = temp_model.from_map(m['DurMetricStatData'])
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('Network') is not None:
self.network = m.get('Network')
if m.get('NetworkList') is not None:
self.network_list = m.get('NetworkList')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribeCallResponseBodyUserDetailListOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('OsList') is not None:
self.os_list = m.get('OsList')
if m.get('Roles') is not None:
self.roles = m.get('Roles')
if m.get('SdkVersion') is not None:
self.sdk_version = m.get('SdkVersion')
if m.get('SdkVersionList') is not None:
self.sdk_version_list = m.get('SdkVersionList')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserIdAlias') is not None:
self.user_id_alias = m.get('UserIdAlias')
return self
class DescribeCallResponseBody(TeaModel):
def __init__(self, call_info=None, request_id=None, user_detail_list=None):
self.call_info = call_info # type: DescribeCallResponseBodyCallInfo
self.request_id = request_id # type: str
self.user_detail_list = user_detail_list # type: list[DescribeCallResponseBodyUserDetailList]
def validate(self):
if self.call_info:
self.call_info.validate()
if self.user_detail_list:
for k in self.user_detail_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_info is not None:
result['CallInfo'] = self.call_info.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['UserDetailList'] = []
if self.user_detail_list is not None:
for k in self.user_detail_list:
result['UserDetailList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInfo') is not None:
temp_model = DescribeCallResponseBodyCallInfo()
self.call_info = temp_model.from_map(m['CallInfo'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.user_detail_list = []
if m.get('UserDetailList') is not None:
for k in m.get('UserDetailList'):
temp_model = DescribeCallResponseBodyUserDetailList()
self.user_detail_list.append(temp_model.from_map(k))
return self
class DescribeCallResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeCallResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeCallResponse, self).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=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 = DescribeCallResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeCallInfoRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallInfoRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeCallInfoResponseBodyCallInfo(TeaModel):
def __init__(self, app_id=None, call_status=None, channel_id=None, created_ts=None, destroyed_ts=None,
duration=None):
self.app_id = app_id # type: str
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallInfoResponseBodyCallInfo, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
return self
class DescribeCallInfoResponseBody(TeaModel):
def __init__(self, call_info=None, request_id=None):
self.call_info = call_info # type: DescribeCallInfoResponseBodyCallInfo
self.request_id = request_id # type: str
def validate(self):
if self.call_info:
self.call_info.validate()
def to_map(self):
_map = super(DescribeCallInfoResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_info is not None:
result['CallInfo'] = self.call_info.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInfo') is not None:
temp_model = DescribeCallInfoResponseBodyCallInfo()
self.call_info = temp_model.from_map(m['CallInfo'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeCallInfoResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeCallInfoResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeCallInfoResponse, self).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=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 = DescribeCallInfoResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeCallListRequest(TeaModel):
def __init__(self, app_id=None, call_status=None, channel_id=None, end_ts=None, order_by=None, page_no=None,
page_size=None, query_mode=None, start_ts=None, user_id=None):
self.app_id = app_id # type: str
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.end_ts = end_ts # type: long
self.order_by = order_by # type: str
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.query_mode = query_mode # type: str
self.start_ts = start_ts # type: long
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.end_ts is not None:
result['EndTs'] = self.end_ts
if self.order_by is not None:
result['OrderBy'] = self.order_by
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.query_mode is not None:
result['QueryMode'] = self.query_mode
if self.start_ts is not None:
result['StartTs'] = self.start_ts
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('EndTs') is not None:
self.end_ts = m.get('EndTs')
if m.get('OrderBy') is not None:
self.order_by = m.get('OrderBy')
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('QueryMode') is not None:
self.query_mode = m.get('QueryMode')
if m.get('StartTs') is not None:
self.start_ts = m.get('StartTs')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeCallListResponseBodyCallList(TeaModel):
def __init__(self, app_id=None, bad_exp_user_cnt=None, call_status=None, channel_id=None, created_ts=None,
destroyed_ts=None, duration=None, user_cnt=None):
# App ID。
self.app_id = app_id # type: str
self.bad_exp_user_cnt = bad_exp_user_cnt # type: int
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
self.user_cnt = user_cnt # type: int
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallListResponseBodyCallList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.bad_exp_user_cnt is not None:
result['BadExpUserCnt'] = self.bad_exp_user_cnt
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
if self.user_cnt is not None:
result['UserCnt'] = self.user_cnt
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('BadExpUserCnt') is not None:
self.bad_exp_user_cnt = m.get('BadExpUserCnt')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('UserCnt') is not None:
self.user_cnt = m.get('UserCnt')
return self
class DescribeCallListResponseBody(TeaModel):
def __init__(self, call_list=None, page_no=None, page_size=None, request_id=None, total_cnt=None):
self.call_list = call_list # type: list[DescribeCallListResponseBodyCallList]
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.request_id = request_id # type: str
self.total_cnt = total_cnt # type: int
def validate(self):
if self.call_list:
for k in self.call_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['CallList'] = []
if self.call_list is not None:
for k in self.call_list:
result['CallList'].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.request_id is not None:
result['RequestId'] = self.request_id
if self.total_cnt is not None:
result['TotalCnt'] = self.total_cnt
return result
def from_map(self, m=None):
m = m or dict()
self.call_list = []
if m.get('CallList') is not None:
for k in m.get('CallList'):
temp_model = DescribeCallListResponseBodyCallList()
self.call_list.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('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCnt') is not None:
self.total_cnt = m.get('TotalCnt')
return self
class DescribeCallListResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeCallListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeCallListResponse, self).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=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 = DescribeCallListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeCallUserExpRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallUserExpRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeCallUserExpResponseBodyExpInfoList(TeaModel):
def __init__(self, call_exp=None, user_id=None):
self.call_exp = call_exp # type: str
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallUserExpResponseBodyExpInfoList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_exp is not None:
result['CallExp'] = self.call_exp
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallExp') is not None:
self.call_exp = m.get('CallExp')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeCallUserExpResponseBody(TeaModel):
def __init__(self, exp_info_list=None, request_id=None):
self.exp_info_list = exp_info_list # type: list[DescribeCallUserExpResponseBodyExpInfoList]
self.request_id = request_id # type: str
def validate(self):
if self.exp_info_list:
for k in self.exp_info_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallUserExpResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['ExpInfoList'] = []
if self.exp_info_list is not None:
for k in self.exp_info_list:
result['ExpInfoList'].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=None):
m = m or dict()
self.exp_info_list = []
if m.get('ExpInfoList') is not None:
for k in m.get('ExpInfoList'):
temp_model = DescribeCallUserExpResponseBodyExpInfoList()
self.exp_info_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeCallUserExpResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeCallUserExpResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeCallUserExpResponse, self).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=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 = DescribeCallUserExpResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeCallUserListRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, ext_data_type=None,
page_no=None, page_size=None, query_exp_info=None, role_type=None, user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.ext_data_type = ext_data_type # type: str
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.query_exp_info = query_exp_info # type: bool
self.role_type = role_type # type: str
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallUserListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.ext_data_type is not None:
result['ExtDataType'] = self.ext_data_type
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.query_exp_info is not None:
result['QueryExpInfo'] = self.query_exp_info
if self.role_type is not None:
result['RoleType'] = self.role_type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('ExtDataType') is not None:
self.ext_data_type = m.get('ExtDataType')
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('QueryExpInfo') is not None:
self.query_exp_info = m.get('QueryExpInfo')
if m.get('RoleType') is not None:
self.role_type = m.get('RoleType')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeCallUserListResponseBodyUserDetailListDurMetricStatData(TeaModel):
def __init__(self, pub_audio=None, pub_video_360=None, pub_video_720=None, pub_video_screen_share=None,
sub_audio=None, sub_video_1080=None, sub_video_360=None, sub_video_720=None, sub_video_screen_share=None):
self.pub_audio = pub_audio # type: long
self.pub_video_360 = pub_video_360 # type: long
self.pub_video_720 = pub_video_720 # type: long
self.pub_video_screen_share = pub_video_screen_share # type: long
self.sub_audio = sub_audio # type: long
self.sub_video_1080 = sub_video_1080 # type: long
self.sub_video_360 = sub_video_360 # type: long
self.sub_video_720 = sub_video_720 # type: long
self.sub_video_screen_share = sub_video_screen_share # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallUserListResponseBodyUserDetailListDurMetricStatData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.pub_audio is not None:
result['PubAudio'] = self.pub_audio
if self.pub_video_360 is not None:
result['PubVideo360'] = self.pub_video_360
if self.pub_video_720 is not None:
result['PubVideo720'] = self.pub_video_720
if self.pub_video_screen_share is not None:
result['PubVideoScreenShare'] = self.pub_video_screen_share
if self.sub_audio is not None:
result['SubAudio'] = self.sub_audio
if self.sub_video_1080 is not None:
result['SubVideo1080'] = self.sub_video_1080
if self.sub_video_360 is not None:
result['SubVideo360'] = self.sub_video_360
if self.sub_video_720 is not None:
result['SubVideo720'] = self.sub_video_720
if self.sub_video_screen_share is not None:
result['SubVideoScreenShare'] = self.sub_video_screen_share
return result
def from_map(self, m=None):
m = m or dict()
if m.get('PubAudio') is not None:
self.pub_audio = m.get('PubAudio')
if m.get('PubVideo360') is not None:
self.pub_video_360 = m.get('PubVideo360')
if m.get('PubVideo720') is not None:
self.pub_video_720 = m.get('PubVideo720')
if m.get('PubVideoScreenShare') is not None:
self.pub_video_screen_share = m.get('PubVideoScreenShare')
if m.get('SubAudio') is not None:
self.sub_audio = m.get('SubAudio')
if m.get('SubVideo1080') is not None:
self.sub_video_1080 = m.get('SubVideo1080')
if m.get('SubVideo360') is not None:
self.sub_video_360 = m.get('SubVideo360')
if m.get('SubVideo720') is not None:
self.sub_video_720 = m.get('SubVideo720')
if m.get('SubVideoScreenShare') is not None:
self.sub_video_screen_share = m.get('SubVideoScreenShare')
return self
class DescribeCallUserListResponseBodyUserDetailListOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeCallUserListResponseBodyUserDetailListOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribeCallUserListResponseBodyUserDetailList(TeaModel):
def __init__(self, call_exp=None, created_ts=None, destroyed_ts=None, dur_metric_stat_data=None, duration=None,
location=None, location_cn=None, location_en=None, network=None, network_list=None, online_duration=None,
online_periods=None, os=None, os_list=None, roles=None, sdk_version=None, sdk_version_list=None, user_id=None,
user_id_alias=None):
self.call_exp = call_exp # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.dur_metric_stat_data = dur_metric_stat_data # type: DescribeCallUserListResponseBodyUserDetailListDurMetricStatData
self.duration = duration # type: long
self.location = location # type: str
self.location_cn = location_cn # type: str
self.location_en = location_en # type: str
self.network = network # type: str
self.network_list = network_list # type: list[str]
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribeCallUserListResponseBodyUserDetailListOnlinePeriods]
self.os = os # type: str
self.os_list = os_list # type: list[str]
self.roles = roles # type: list[str]
self.sdk_version = sdk_version # type: str
self.sdk_version_list = sdk_version_list # type: list[str]
self.user_id = user_id # type: str
self.user_id_alias = user_id_alias # type: str
def validate(self):
if self.dur_metric_stat_data:
self.dur_metric_stat_data.validate()
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallUserListResponseBodyUserDetailList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_exp is not None:
result['CallExp'] = self.call_exp
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.dur_metric_stat_data is not None:
result['DurMetricStatData'] = self.dur_metric_stat_data.to_map()
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.location_cn is not None:
result['LocationCn'] = self.location_cn
if self.location_en is not None:
result['LocationEn'] = self.location_en
if self.network is not None:
result['Network'] = self.network
if self.network_list is not None:
result['NetworkList'] = self.network_list
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.os is not None:
result['Os'] = self.os
if self.os_list is not None:
result['OsList'] = self.os_list
if self.roles is not None:
result['Roles'] = self.roles
if self.sdk_version is not None:
result['SdkVersion'] = self.sdk_version
if self.sdk_version_list is not None:
result['SdkVersionList'] = self.sdk_version_list
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_id_alias is not None:
result['UserIdAlias'] = self.user_id_alias
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallExp') is not None:
self.call_exp = m.get('CallExp')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('DurMetricStatData') is not None:
temp_model = DescribeCallUserListResponseBodyUserDetailListDurMetricStatData()
self.dur_metric_stat_data = temp_model.from_map(m['DurMetricStatData'])
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('LocationCn') is not None:
self.location_cn = m.get('LocationCn')
if m.get('LocationEn') is not None:
self.location_en = m.get('LocationEn')
if m.get('Network') is not None:
self.network = m.get('Network')
if m.get('NetworkList') is not None:
self.network_list = m.get('NetworkList')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribeCallUserListResponseBodyUserDetailListOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('OsList') is not None:
self.os_list = m.get('OsList')
if m.get('Roles') is not None:
self.roles = m.get('Roles')
if m.get('SdkVersion') is not None:
self.sdk_version = m.get('SdkVersion')
if m.get('SdkVersionList') is not None:
self.sdk_version_list = m.get('SdkVersionList')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserIdAlias') is not None:
self.user_id_alias = m.get('UserIdAlias')
return self
class DescribeCallUserListResponseBody(TeaModel):
def __init__(self, page_no=None, page_size=None, request_id=None, total_cnt=None, user_detail_list=None):
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.request_id = request_id # type: str
self.total_cnt = total_cnt # type: int
self.user_detail_list = user_detail_list # type: list[DescribeCallUserListResponseBodyUserDetailList]
def validate(self):
if self.user_detail_list:
for k in self.user_detail_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeCallUserListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
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.request_id is not None:
result['RequestId'] = self.request_id
if self.total_cnt is not None:
result['TotalCnt'] = self.total_cnt
result['UserDetailList'] = []
if self.user_detail_list is not None:
for k in self.user_detail_list:
result['UserDetailList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
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('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCnt') is not None:
self.total_cnt = m.get('TotalCnt')
self.user_detail_list = []
if m.get('UserDetailList') is not None:
for k in m.get('UserDetailList'):
temp_model = DescribeCallUserListResponseBodyUserDetailList()
self.user_detail_list.append(temp_model.from_map(k))
return self
class DescribeCallUserListResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeCallUserListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeCallUserListResponse, self).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=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 = DescribeCallUserListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelAreaDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, parent_area=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.parent_area = parent_area # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelAreaDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.parent_area is not None:
result['ParentArea'] = self.parent_area
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('ParentArea') is not None:
self.parent_area = m.get('ParentArea')
return self
class DescribeChannelAreaDistributionStatDataResponseBodyAreaStatList(TeaModel):
def __init__(self, area_name=None, call_user_count=None, high_quality_transmission_rate=None,
pub_user_count=None, sub_user_count=None):
self.area_name = area_name # type: str
self.call_user_count = call_user_count # type: int
self.high_quality_transmission_rate = high_quality_transmission_rate # type: str
self.pub_user_count = pub_user_count # type: int
self.sub_user_count = sub_user_count # type: int
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelAreaDistributionStatDataResponseBodyAreaStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.area_name is not None:
result['AreaName'] = self.area_name
if self.call_user_count is not None:
result['CallUserCount'] = self.call_user_count
if self.high_quality_transmission_rate is not None:
result['HighQualityTransmissionRate'] = self.high_quality_transmission_rate
if self.pub_user_count is not None:
result['PubUserCount'] = self.pub_user_count
if self.sub_user_count is not None:
result['SubUserCount'] = self.sub_user_count
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AreaName') is not None:
self.area_name = m.get('AreaName')
if m.get('CallUserCount') is not None:
self.call_user_count = m.get('CallUserCount')
if m.get('HighQualityTransmissionRate') is not None:
self.high_quality_transmission_rate = m.get('HighQualityTransmissionRate')
if m.get('PubUserCount') is not None:
self.pub_user_count = m.get('PubUserCount')
if m.get('SubUserCount') is not None:
self.sub_user_count = m.get('SubUserCount')
return self
class DescribeChannelAreaDistributionStatDataResponseBody(TeaModel):
def __init__(self, area_stat_list=None, request_id=None):
self.area_stat_list = area_stat_list # type: list[DescribeChannelAreaDistributionStatDataResponseBodyAreaStatList]
self.request_id = request_id # type: str
def validate(self):
if self.area_stat_list:
for k in self.area_stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelAreaDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['AreaStatList'] = []
if self.area_stat_list is not None:
for k in self.area_stat_list:
result['AreaStatList'].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=None):
m = m or dict()
self.area_stat_list = []
if m.get('AreaStatList') is not None:
for k in m.get('AreaStatList'):
temp_model = DescribeChannelAreaDistributionStatDataResponseBodyAreaStatList()
self.area_stat_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeChannelAreaDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelAreaDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelAreaDistributionStatDataResponse, self).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=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 = DescribeChannelAreaDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, stat_dim=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.stat_dim = stat_dim # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.stat_dim is not None:
result['StatDim'] = self.stat_dim
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('StatDim') is not None:
self.stat_dim = m.get('StatDim')
return self
class DescribeChannelDistributionStatDataResponseBodyStatList(TeaModel):
def __init__(self, call_user_count=None, call_user_ratio=None, name=None):
self.call_user_count = call_user_count # type: int
self.call_user_ratio = call_user_ratio # type: str
self.name = name # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelDistributionStatDataResponseBodyStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_user_count is not None:
result['CallUserCount'] = self.call_user_count
if self.call_user_ratio is not None:
result['CallUserRatio'] = self.call_user_ratio
if self.name is not None:
result['Name'] = self.name
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallUserCount') is not None:
self.call_user_count = m.get('CallUserCount')
if m.get('CallUserRatio') is not None:
self.call_user_ratio = m.get('CallUserRatio')
if m.get('Name') is not None:
self.name = m.get('Name')
return self
class DescribeChannelDistributionStatDataResponseBody(TeaModel):
def __init__(self, request_id=None, stat_list=None):
self.request_id = request_id # type: str
self.stat_list = stat_list # type: list[DescribeChannelDistributionStatDataResponseBodyStatList]
def validate(self):
if self.stat_list:
for k in self.stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['StatList'] = []
if self.stat_list is not None:
for k in self.stat_list:
result['StatList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.stat_list = []
if m.get('StatList') is not None:
for k in m.get('StatList'):
temp_model = DescribeChannelDistributionStatDataResponseBodyStatList()
self.stat_list.append(temp_model.from_map(k))
return self
class DescribeChannelDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelDistributionStatDataResponse, self).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=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 = DescribeChannelDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelJoinInfoRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelJoinInfoRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeChannelJoinInfoResponseBody(TeaModel):
def __init__(self, join_fast_success_rate=None, join_slow_threshold=None, request_id=None):
self.join_fast_success_rate = join_fast_success_rate # type: str
self.join_slow_threshold = join_slow_threshold # type: long
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelJoinInfoResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_fast_success_rate is not None:
result['JoinFastSuccessRate'] = self.join_fast_success_rate
if self.join_slow_threshold is not None:
result['JoinSlowThreshold'] = self.join_slow_threshold
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinFastSuccessRate') is not None:
self.join_fast_success_rate = m.get('JoinFastSuccessRate')
if m.get('JoinSlowThreshold') is not None:
self.join_slow_threshold = m.get('JoinSlowThreshold')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeChannelJoinInfoResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelJoinInfoResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelJoinInfoResponse, self).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=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 = DescribeChannelJoinInfoResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelOverallDataRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelOverallDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeChannelOverallDataResponseBodyCallInfo(TeaModel):
def __init__(self, app_id=None, call_status=None, channel_id=None, created_ts=None, destroyed_ts=None,
duration=None):
self.app_id = app_id # type: str
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelOverallDataResponseBodyCallInfo, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
return self
class DescribeChannelOverallDataResponseBodyMetricDatasNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelOverallDataResponseBodyMetricDatasNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeChannelOverallDataResponseBodyMetricDatas(TeaModel):
def __init__(self, nodes=None, type=None):
self.nodes = nodes # type: list[DescribeChannelOverallDataResponseBodyMetricDatasNodes]
self.type = type # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelOverallDataResponseBodyMetricDatas, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeChannelOverallDataResponseBodyMetricDatasNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
return self
class DescribeChannelOverallDataResponseBodyOverallData(TeaModel):
def __init__(self, conn_avg_time=None, five_sec_join_rate=None, total_audio_stuck_rate=None,
total_video_stuck_rate=None, total_video_vague_rate=None):
self.conn_avg_time = conn_avg_time # type: float
self.five_sec_join_rate = five_sec_join_rate # type: float
self.total_audio_stuck_rate = total_audio_stuck_rate # type: float
self.total_video_stuck_rate = total_video_stuck_rate # type: float
self.total_video_vague_rate = total_video_vague_rate # type: float
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelOverallDataResponseBodyOverallData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.conn_avg_time is not None:
result['ConnAvgTime'] = self.conn_avg_time
if self.five_sec_join_rate is not None:
result['FiveSecJoinRate'] = self.five_sec_join_rate
if self.total_audio_stuck_rate is not None:
result['TotalAudioStuckRate'] = self.total_audio_stuck_rate
if self.total_video_stuck_rate is not None:
result['TotalVideoStuckRate'] = self.total_video_stuck_rate
if self.total_video_vague_rate is not None:
result['TotalVideoVagueRate'] = self.total_video_vague_rate
return result
def from_map(self, m=None):
m = m or dict()
if m.get('ConnAvgTime') is not None:
self.conn_avg_time = m.get('ConnAvgTime')
if m.get('FiveSecJoinRate') is not None:
self.five_sec_join_rate = m.get('FiveSecJoinRate')
if m.get('TotalAudioStuckRate') is not None:
self.total_audio_stuck_rate = m.get('TotalAudioStuckRate')
if m.get('TotalVideoStuckRate') is not None:
self.total_video_stuck_rate = m.get('TotalVideoStuckRate')
if m.get('TotalVideoVagueRate') is not None:
self.total_video_vague_rate = m.get('TotalVideoVagueRate')
return self
class DescribeChannelOverallDataResponseBody(TeaModel):
def __init__(self, call_info=None, metric_datas=None, overall_data=None, request_id=None):
self.call_info = call_info # type: DescribeChannelOverallDataResponseBodyCallInfo
self.metric_datas = metric_datas # type: list[DescribeChannelOverallDataResponseBodyMetricDatas]
self.overall_data = overall_data # type: DescribeChannelOverallDataResponseBodyOverallData
self.request_id = request_id # type: str
def validate(self):
if self.call_info:
self.call_info.validate()
if self.metric_datas:
for k in self.metric_datas:
if k:
k.validate()
if self.overall_data:
self.overall_data.validate()
def to_map(self):
_map = super(DescribeChannelOverallDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_info is not None:
result['CallInfo'] = self.call_info.to_map()
result['MetricDatas'] = []
if self.metric_datas is not None:
for k in self.metric_datas:
result['MetricDatas'].append(k.to_map() if k else None)
if self.overall_data is not None:
result['OverallData'] = self.overall_data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInfo') is not None:
temp_model = DescribeChannelOverallDataResponseBodyCallInfo()
self.call_info = temp_model.from_map(m['CallInfo'])
self.metric_datas = []
if m.get('MetricDatas') is not None:
for k in m.get('MetricDatas'):
temp_model = DescribeChannelOverallDataResponseBodyMetricDatas()
self.metric_datas.append(temp_model.from_map(k))
if m.get('OverallData') is not None:
temp_model = DescribeChannelOverallDataResponseBodyOverallData()
self.overall_data = temp_model.from_map(m['OverallData'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeChannelOverallDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelOverallDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelOverallDataResponse, self).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=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 = DescribeChannelOverallDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelTopPubUserListRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelTopPubUserListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeChannelTopPubUserListResponseBodyTopPubUserDetailListOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelTopPubUserListResponseBodyTopPubUserDetailListOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribeChannelTopPubUserListResponseBodyTopPubUserDetailList(TeaModel):
def __init__(self, created_ts=None, destroyed_ts=None, duration=None, location=None, online_duration=None,
online_periods=None, user_id=None):
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
self.location = location # type: str
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribeChannelTopPubUserListResponseBodyTopPubUserDetailListOnlinePeriods]
self.user_id = user_id # type: str
def validate(self):
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelTopPubUserListResponseBodyTopPubUserDetailList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribeChannelTopPubUserListResponseBodyTopPubUserDetailListOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeChannelTopPubUserListResponseBody(TeaModel):
def __init__(self, request_id=None, top_pub_user_detail_list=None):
self.request_id = request_id # type: str
self.top_pub_user_detail_list = top_pub_user_detail_list # type: list[DescribeChannelTopPubUserListResponseBodyTopPubUserDetailList]
def validate(self):
if self.top_pub_user_detail_list:
for k in self.top_pub_user_detail_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelTopPubUserListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['TopPubUserDetailList'] = []
if self.top_pub_user_detail_list is not None:
for k in self.top_pub_user_detail_list:
result['TopPubUserDetailList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.top_pub_user_detail_list = []
if m.get('TopPubUserDetailList') is not None:
for k in m.get('TopPubUserDetailList'):
temp_model = DescribeChannelTopPubUserListResponseBodyTopPubUserDetailList()
self.top_pub_user_detail_list.append(temp_model.from_map(k))
return self
class DescribeChannelTopPubUserListResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelTopPubUserListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelTopPubUserListResponse, self).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=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 = DescribeChannelTopPubUserListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeChannelUserMetricsRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelUserMetricsRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
return self
class DescribeChannelUserMetricsResponseBodyMetricDatasNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelUserMetricsResponseBodyMetricDatasNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeChannelUserMetricsResponseBodyMetricDatas(TeaModel):
def __init__(self, nodes=None, type=None):
self.nodes = nodes # type: list[DescribeChannelUserMetricsResponseBodyMetricDatasNodes]
self.type = type # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeChannelUserMetricsResponseBodyMetricDatas, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeChannelUserMetricsResponseBodyMetricDatasNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
return self
class DescribeChannelUserMetricsResponseBodyOverallData(TeaModel):
def __init__(self, total_bad_exp_num=None, total_join_fail_num=None, total_pub_user_num=None,
total_sub_user_num=None, total_user_num=None):
self.total_bad_exp_num = total_bad_exp_num # type: long
self.total_join_fail_num = total_join_fail_num # type: long
self.total_pub_user_num = total_pub_user_num # type: long
self.total_sub_user_num = total_sub_user_num # type: long
self.total_user_num = total_user_num # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeChannelUserMetricsResponseBodyOverallData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.total_bad_exp_num is not None:
result['TotalBadExpNum'] = self.total_bad_exp_num
if self.total_join_fail_num is not None:
result['TotalJoinFailNum'] = self.total_join_fail_num
if self.total_pub_user_num is not None:
result['TotalPubUserNum'] = self.total_pub_user_num
if self.total_sub_user_num is not None:
result['TotalSubUserNum'] = self.total_sub_user_num
if self.total_user_num is not None:
result['TotalUserNum'] = self.total_user_num
return result
def from_map(self, m=None):
m = m or dict()
if m.get('TotalBadExpNum') is not None:
self.total_bad_exp_num = m.get('TotalBadExpNum')
if m.get('TotalJoinFailNum') is not None:
self.total_join_fail_num = m.get('TotalJoinFailNum')
if m.get('TotalPubUserNum') is not None:
self.total_pub_user_num = m.get('TotalPubUserNum')
if m.get('TotalSubUserNum') is not None:
self.total_sub_user_num = m.get('TotalSubUserNum')
if m.get('TotalUserNum') is not None:
self.total_user_num = m.get('TotalUserNum')
return self
class DescribeChannelUserMetricsResponseBody(TeaModel):
def __init__(self, metric_datas=None, overall_data=None, request_id=None):
self.metric_datas = metric_datas # type: list[DescribeChannelUserMetricsResponseBodyMetricDatas]
self.overall_data = overall_data # type: DescribeChannelUserMetricsResponseBodyOverallData
self.request_id = request_id # type: str
def validate(self):
if self.metric_datas:
for k in self.metric_datas:
if k:
k.validate()
if self.overall_data:
self.overall_data.validate()
def to_map(self):
_map = super(DescribeChannelUserMetricsResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['MetricDatas'] = []
if self.metric_datas is not None:
for k in self.metric_datas:
result['MetricDatas'].append(k.to_map() if k else None)
if self.overall_data is not None:
result['OverallData'] = self.overall_data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
self.metric_datas = []
if m.get('MetricDatas') is not None:
for k in m.get('MetricDatas'):
temp_model = DescribeChannelUserMetricsResponseBodyMetricDatas()
self.metric_datas.append(temp_model.from_map(k))
if m.get('OverallData') is not None:
temp_model = DescribeChannelUserMetricsResponseBodyOverallData()
self.overall_data = temp_model.from_map(m['OverallData'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeChannelUserMetricsResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeChannelUserMetricsResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeChannelUserMetricsResponse, self).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=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 = DescribeChannelUserMetricsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeEndPointEventListRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, user_id_list=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.user_id_list = user_id_list # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeEndPointEventListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.user_id_list is not None:
result['UserIdList'] = self.user_id_list
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('UserIdList') is not None:
self.user_id_list = m.get('UserIdList')
return self
class DescribeEndPointEventListResponseBodyNodesEventDataItemsEventList(TeaModel):
def __init__(self, acs=None, event_code=None, event_name=None, event_type=None, os=None, sdk=None,
stream_name=None, stream_type=None, track_code=None, track_name=None, ts=None, ts_in_ms=None, user_id=None):
self.acs = acs # type: str
self.event_code = event_code # type: str
self.event_name = event_name # type: str
self.event_type = event_type # type: str
self.os = os # type: str
self.sdk = sdk # type: str
self.stream_name = stream_name # type: str
self.stream_type = stream_type # type: str
self.track_code = track_code # type: str
self.track_name = track_name # type: str
self.ts = ts # type: long
self.ts_in_ms = ts_in_ms # type: str
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeEndPointEventListResponseBodyNodesEventDataItemsEventList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.acs is not None:
result['Acs'] = self.acs
if self.event_code is not None:
result['EventCode'] = self.event_code
if self.event_name is not None:
result['EventName'] = self.event_name
if self.event_type is not None:
result['EventType'] = self.event_type
if self.os is not None:
result['Os'] = self.os
if self.sdk is not None:
result['Sdk'] = self.sdk
if self.stream_name is not None:
result['StreamName'] = self.stream_name
if self.stream_type is not None:
result['StreamType'] = self.stream_type
if self.track_code is not None:
result['TrackCode'] = self.track_code
if self.track_name is not None:
result['TrackName'] = self.track_name
if self.ts is not None:
result['Ts'] = self.ts
if self.ts_in_ms is not None:
result['TsInMs'] = self.ts_in_ms
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Acs') is not None:
self.acs = m.get('Acs')
if m.get('EventCode') is not None:
self.event_code = m.get('EventCode')
if m.get('EventName') is not None:
self.event_name = m.get('EventName')
if m.get('EventType') is not None:
self.event_type = m.get('EventType')
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('Sdk') is not None:
self.sdk = m.get('Sdk')
if m.get('StreamName') is not None:
self.stream_name = m.get('StreamName')
if m.get('StreamType') is not None:
self.stream_type = m.get('StreamType')
if m.get('TrackCode') is not None:
self.track_code = m.get('TrackCode')
if m.get('TrackName') is not None:
self.track_name = m.get('TrackName')
if m.get('Ts') is not None:
self.ts = m.get('Ts')
if m.get('TsInMs') is not None:
self.ts_in_ms = m.get('TsInMs')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeEndPointEventListResponseBodyNodesEventDataItems(TeaModel):
def __init__(self, event_list=None, ts=None):
self.event_list = event_list # type: list[DescribeEndPointEventListResponseBodyNodesEventDataItemsEventList]
self.ts = ts # type: long
def validate(self):
if self.event_list:
for k in self.event_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointEventListResponseBodyNodesEventDataItems, self).to_map()
if _map is not None:
return _map
result = dict()
result['EventList'] = []
if self.event_list is not None:
for k in self.event_list:
result['EventList'].append(k.to_map() if k else None)
if self.ts is not None:
result['Ts'] = self.ts
return result
def from_map(self, m=None):
m = m or dict()
self.event_list = []
if m.get('EventList') is not None:
for k in m.get('EventList'):
temp_model = DescribeEndPointEventListResponseBodyNodesEventDataItemsEventList()
self.event_list.append(temp_model.from_map(k))
if m.get('Ts') is not None:
self.ts = m.get('Ts')
return self
class DescribeEndPointEventListResponseBodyNodes(TeaModel):
def __init__(self, event_data_items=None, user_id=None):
self.event_data_items = event_data_items # type: list[DescribeEndPointEventListResponseBodyNodesEventDataItems]
self.user_id = user_id # type: str
def validate(self):
if self.event_data_items:
for k in self.event_data_items:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointEventListResponseBodyNodes, self).to_map()
if _map is not None:
return _map
result = dict()
result['EventDataItems'] = []
if self.event_data_items is not None:
for k in self.event_data_items:
result['EventDataItems'].append(k.to_map() if k else None)
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.event_data_items = []
if m.get('EventDataItems') is not None:
for k in m.get('EventDataItems'):
temp_model = DescribeEndPointEventListResponseBodyNodesEventDataItems()
self.event_data_items.append(temp_model.from_map(k))
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeEndPointEventListResponseBody(TeaModel):
def __init__(self, nodes=None, request_id=None):
self.nodes = nodes # type: list[DescribeEndPointEventListResponseBodyNodes]
self.request_id = request_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointEventListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].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=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeEndPointEventListResponseBodyNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeEndPointEventListResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeEndPointEventListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeEndPointEventListResponse, self).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=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 = DescribeEndPointEventListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeEndPointMetricDataRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, metrics=None,
pub_call_id_list=None, pub_user_id=None, sub_user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.metrics = metrics # type: str
self.pub_call_id_list = pub_call_id_list # type: str
self.pub_user_id = pub_user_id # type: str
self.sub_user_id = sub_user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeEndPointMetricDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.metrics is not None:
result['Metrics'] = self.metrics
if self.pub_call_id_list is not None:
result['PubCallIdList'] = self.pub_call_id_list
if self.pub_user_id is not None:
result['PubUserId'] = self.pub_user_id
if self.sub_user_id is not None:
result['SubUserId'] = self.sub_user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Metrics') is not None:
self.metrics = m.get('Metrics')
if m.get('PubCallIdList') is not None:
self.pub_call_id_list = m.get('PubCallIdList')
if m.get('PubUserId') is not None:
self.pub_user_id = m.get('PubUserId')
if m.get('SubUserId') is not None:
self.sub_user_id = m.get('SubUserId')
return self
class DescribeEndPointMetricDataResponseBodyPubMetricsNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeEndPointMetricDataResponseBodyPubMetricsNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeEndPointMetricDataResponseBodyPubMetrics(TeaModel):
def __init__(self, nodes=None, type=None, user_id=None):
self.nodes = nodes # type: list[DescribeEndPointMetricDataResponseBodyPubMetricsNodes]
self.type = type # type: str
self.user_id = user_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointMetricDataResponseBodyPubMetrics, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeEndPointMetricDataResponseBodyPubMetricsNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeEndPointMetricDataResponseBodySubMetricsNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeEndPointMetricDataResponseBodySubMetricsNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeEndPointMetricDataResponseBodySubMetrics(TeaModel):
def __init__(self, nodes=None, type=None, user_id=None):
self.nodes = nodes # type: list[DescribeEndPointMetricDataResponseBodySubMetricsNodes]
self.type = type # type: str
self.user_id = user_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointMetricDataResponseBodySubMetrics, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeEndPointMetricDataResponseBodySubMetricsNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeEndPointMetricDataResponseBody(TeaModel):
def __init__(self, pub_metrics=None, request_id=None, sub_metrics=None):
self.pub_metrics = pub_metrics # type: list[DescribeEndPointMetricDataResponseBodyPubMetrics]
self.request_id = request_id # type: str
self.sub_metrics = sub_metrics # type: list[DescribeEndPointMetricDataResponseBodySubMetrics]
def validate(self):
if self.pub_metrics:
for k in self.pub_metrics:
if k:
k.validate()
if self.sub_metrics:
for k in self.sub_metrics:
if k:
k.validate()
def to_map(self):
_map = super(DescribeEndPointMetricDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['PubMetrics'] = []
if self.pub_metrics is not None:
for k in self.pub_metrics:
result['PubMetrics'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
result['SubMetrics'] = []
if self.sub_metrics is not None:
for k in self.sub_metrics:
result['SubMetrics'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
self.pub_metrics = []
if m.get('PubMetrics') is not None:
for k in m.get('PubMetrics'):
temp_model = DescribeEndPointMetricDataResponseBodyPubMetrics()
self.pub_metrics.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.sub_metrics = []
if m.get('SubMetrics') is not None:
for k in m.get('SubMetrics'):
temp_model = DescribeEndPointMetricDataResponseBodySubMetrics()
self.sub_metrics.append(temp_model.from_map(k))
return self
class DescribeEndPointMetricDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeEndPointMetricDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeEndPointMetricDataResponse, self).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=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 = DescribeEndPointMetricDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeFaultDiagnosisFactorDistributionStatRequest(TeaModel):
def __init__(self, app_id=None, end_ts=None, start_ts=None):
self.app_id = app_id # type: str
self.end_ts = end_ts # type: long
self.start_ts = start_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisFactorDistributionStatRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_ts is not None:
result['EndTs'] = self.end_ts
if self.start_ts is not None:
result['StartTs'] = self.start_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndTs') is not None:
self.end_ts = m.get('EndTs')
if m.get('StartTs') is not None:
self.start_ts = m.get('StartTs')
return self
class DescribeFaultDiagnosisFactorDistributionStatResponseBodyStatList(TeaModel):
def __init__(self, factor_id=None, user_count=None, user_ratio=None):
self.factor_id = factor_id # type: str
self.user_count = user_count # type: int
self.user_ratio = user_ratio # type: float
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisFactorDistributionStatResponseBodyStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.factor_id is not None:
result['FactorId'] = self.factor_id
if self.user_count is not None:
result['UserCount'] = self.user_count
if self.user_ratio is not None:
result['UserRatio'] = self.user_ratio
return result
def from_map(self, m=None):
m = m or dict()
if m.get('FactorId') is not None:
self.factor_id = m.get('FactorId')
if m.get('UserCount') is not None:
self.user_count = m.get('UserCount')
if m.get('UserRatio') is not None:
self.user_ratio = m.get('UserRatio')
return self
class DescribeFaultDiagnosisFactorDistributionStatResponseBody(TeaModel):
def __init__(self, request_id=None, stat_list=None):
self.request_id = request_id # type: str
self.stat_list = stat_list # type: list[DescribeFaultDiagnosisFactorDistributionStatResponseBodyStatList]
def validate(self):
if self.stat_list:
for k in self.stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisFactorDistributionStatResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['StatList'] = []
if self.stat_list is not None:
for k in self.stat_list:
result['StatList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.stat_list = []
if m.get('StatList') is not None:
for k in m.get('StatList'):
temp_model = DescribeFaultDiagnosisFactorDistributionStatResponseBodyStatList()
self.stat_list.append(temp_model.from_map(k))
return self
class DescribeFaultDiagnosisFactorDistributionStatResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeFaultDiagnosisFactorDistributionStatResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisFactorDistributionStatResponse, self).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=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 = DescribeFaultDiagnosisFactorDistributionStatResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeFaultDiagnosisOverallDataRequest(TeaModel):
def __init__(self, app_id=None, end_ts=None, start_ts=None, stat_dim=None):
self.app_id = app_id # type: str
self.end_ts = end_ts # type: long
self.start_ts = start_ts # type: long
self.stat_dim = stat_dim # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_ts is not None:
result['EndTs'] = self.end_ts
if self.start_ts is not None:
result['StartTs'] = self.start_ts
if self.stat_dim is not None:
result['StatDim'] = self.stat_dim
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndTs') is not None:
self.end_ts = m.get('EndTs')
if m.get('StartTs') is not None:
self.start_ts = m.get('StartTs')
if m.get('StatDim') is not None:
self.stat_dim = m.get('StatDim')
return self
class DescribeFaultDiagnosisOverallDataResponseBodyMetricDataNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataResponseBodyMetricDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeFaultDiagnosisOverallDataResponseBodyMetricData(TeaModel):
def __init__(self, nodes=None):
self.nodes = nodes # type: list[DescribeFaultDiagnosisOverallDataResponseBodyMetricDataNodes]
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataResponseBodyMetricData, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeFaultDiagnosisOverallDataResponseBodyMetricDataNodes()
self.nodes.append(temp_model.from_map(k))
return self
class DescribeFaultDiagnosisOverallDataResponseBodyOverallData(TeaModel):
def __init__(self, fault_user_count=None, fault_user_ratio=None, total_user_count=None):
self.fault_user_count = fault_user_count # type: int
self.fault_user_ratio = fault_user_ratio # type: float
self.total_user_count = total_user_count # type: int
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataResponseBodyOverallData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.fault_user_count is not None:
result['FaultUserCount'] = self.fault_user_count
if self.fault_user_ratio is not None:
result['FaultUserRatio'] = self.fault_user_ratio
if self.total_user_count is not None:
result['TotalUserCount'] = self.total_user_count
return result
def from_map(self, m=None):
m = m or dict()
if m.get('FaultUserCount') is not None:
self.fault_user_count = m.get('FaultUserCount')
if m.get('FaultUserRatio') is not None:
self.fault_user_ratio = m.get('FaultUserRatio')
if m.get('TotalUserCount') is not None:
self.total_user_count = m.get('TotalUserCount')
return self
class DescribeFaultDiagnosisOverallDataResponseBody(TeaModel):
def __init__(self, metric_data=None, overall_data=None, request_id=None):
self.metric_data = metric_data # type: DescribeFaultDiagnosisOverallDataResponseBodyMetricData
self.overall_data = overall_data # type: DescribeFaultDiagnosisOverallDataResponseBodyOverallData
self.request_id = request_id # type: str
def validate(self):
if self.metric_data:
self.metric_data.validate()
if self.overall_data:
self.overall_data.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.metric_data is not None:
result['MetricData'] = self.metric_data.to_map()
if self.overall_data is not None:
result['OverallData'] = self.overall_data.to_map()
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('MetricData') is not None:
temp_model = DescribeFaultDiagnosisOverallDataResponseBodyMetricData()
self.metric_data = temp_model.from_map(m['MetricData'])
if m.get('OverallData') is not None:
temp_model = DescribeFaultDiagnosisOverallDataResponseBodyOverallData()
self.overall_data = temp_model.from_map(m['OverallData'])
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeFaultDiagnosisOverallDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeFaultDiagnosisOverallDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisOverallDataResponse, self).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=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 = DescribeFaultDiagnosisOverallDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeFaultDiagnosisUserDetailRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, fault_type=None, query_call_user_info=None,
user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.fault_type = fault_type # type: str
self.query_call_user_info = query_call_user_info # type: bool
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.fault_type is not None:
result['FaultType'] = self.fault_type
if self.query_call_user_info is not None:
result['QueryCallUserInfo'] = self.query_call_user_info
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('FaultType') is not None:
self.fault_type = m.get('FaultType')
if m.get('QueryCallUserInfo') is not None:
self.query_call_user_info = m.get('QueryCallUserInfo')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyCallInfo(TeaModel):
def __init__(self, app_id=None, call_status=None, channel_id=None, created_ts=None, destroyed_ts=None,
duration=None):
# App ID。
self.app_id = app_id # type: str
self.call_status = call_status # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyCallInfo, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.call_status is not None:
result['CallStatus'] = self.call_status
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItemsEventList(TeaModel):
def __init__(self, acs=None, event_code=None, event_name=None, event_type=None, os=None, sdk=None,
stream_name=None, stream_type=None, track_code=None, track_name=None, ts=None, user_id=None):
self.acs = acs # type: str
self.event_code = event_code # type: str
self.event_name = event_name # type: str
self.event_type = event_type # type: str
self.os = os # type: str
self.sdk = sdk # type: str
self.stream_name = stream_name # type: str
self.stream_type = stream_type # type: str
self.track_code = track_code # type: str
self.track_name = track_name # type: str
self.ts = ts # type: long
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItemsEventList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.acs is not None:
result['Acs'] = self.acs
if self.event_code is not None:
result['EventCode'] = self.event_code
if self.event_name is not None:
result['EventName'] = self.event_name
if self.event_type is not None:
result['EventType'] = self.event_type
if self.os is not None:
result['Os'] = self.os
if self.sdk is not None:
result['Sdk'] = self.sdk
if self.stream_name is not None:
result['StreamName'] = self.stream_name
if self.stream_type is not None:
result['StreamType'] = self.stream_type
if self.track_code is not None:
result['TrackCode'] = self.track_code
if self.track_name is not None:
result['TrackName'] = self.track_name
if self.ts is not None:
result['Ts'] = self.ts
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Acs') is not None:
self.acs = m.get('Acs')
if m.get('EventCode') is not None:
self.event_code = m.get('EventCode')
if m.get('EventName') is not None:
self.event_name = m.get('EventName')
if m.get('EventType') is not None:
self.event_type = m.get('EventType')
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('Sdk') is not None:
self.sdk = m.get('Sdk')
if m.get('StreamName') is not None:
self.stream_name = m.get('StreamName')
if m.get('StreamType') is not None:
self.stream_type = m.get('StreamType')
if m.get('TrackCode') is not None:
self.track_code = m.get('TrackCode')
if m.get('TrackName') is not None:
self.track_name = m.get('TrackName')
if m.get('Ts') is not None:
self.ts = m.get('Ts')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItems(TeaModel):
def __init__(self, event_list=None, ts=None):
self.event_list = event_list # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItemsEventList]
self.ts = ts # type: long
def validate(self):
if self.event_list:
for k in self.event_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItems, self).to_map()
if _map is not None:
return _map
result = dict()
result['EventList'] = []
if self.event_list is not None:
for k in self.event_list:
result['EventList'].append(k.to_map() if k else None)
if self.ts is not None:
result['Ts'] = self.ts
return result
def from_map(self, m=None):
m = m or dict()
self.event_list = []
if m.get('EventList') is not None:
for k in m.get('EventList'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItemsEventList()
self.event_list.append(temp_model.from_map(k))
if m.get('Ts') is not None:
self.ts = m.get('Ts')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatas(TeaModel):
def __init__(self, event_data_items=None, role=None, user_id=None):
self.event_data_items = event_data_items # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItems]
self.role = role # type: str
self.user_id = user_id # type: str
def validate(self):
if self.event_data_items:
for k in self.event_data_items:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatas, self).to_map()
if _map is not None:
return _map
result = dict()
result['EventDataItems'] = []
if self.event_data_items is not None:
for k in self.event_data_items:
result['EventDataItems'].append(k.to_map() if k else None)
if self.role is not None:
result['Role'] = self.role
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.event_data_items = []
if m.get('EventDataItems') is not None:
for k in m.get('EventDataItems'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatasEventDataItems()
self.event_data_items.append(temp_model.from_map(k))
if m.get('Role') is not None:
self.role = m.get('Role')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatasNodes(TeaModel):
def __init__(self, ext=None, x=None, y=None):
self.ext = ext # type: dict[str, any]
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatasNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.ext is not None:
result['Ext'] = self.ext
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Ext') is not None:
self.ext = m.get('Ext')
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatas(TeaModel):
def __init__(self, nodes=None, role=None, type=None, user_id=None):
self.nodes = nodes # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatasNodes]
self.role = role # type: str
self.type = type # type: str
self.user_id = user_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatas, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.role is not None:
result['Role'] = self.role
if self.type is not None:
result['Type'] = self.type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatasNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Role') is not None:
self.role = m.get('Role')
if m.get('Type') is not None:
self.type = m.get('Type')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFactorList(TeaModel):
def __init__(self, factor_id=None, fault_source=None, related_event_datas=None, related_metric_datas=None):
self.factor_id = factor_id # type: str
self.fault_source = fault_source # type: str
self.related_event_datas = related_event_datas # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatas]
self.related_metric_datas = related_metric_datas # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatas]
def validate(self):
if self.related_event_datas:
for k in self.related_event_datas:
if k:
k.validate()
if self.related_metric_datas:
for k in self.related_metric_datas:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFactorList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.factor_id is not None:
result['FactorId'] = self.factor_id
if self.fault_source is not None:
result['FaultSource'] = self.fault_source
result['RelatedEventDatas'] = []
if self.related_event_datas is not None:
for k in self.related_event_datas:
result['RelatedEventDatas'].append(k.to_map() if k else None)
result['RelatedMetricDatas'] = []
if self.related_metric_datas is not None:
for k in self.related_metric_datas:
result['RelatedMetricDatas'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('FactorId') is not None:
self.factor_id = m.get('FactorId')
if m.get('FaultSource') is not None:
self.fault_source = m.get('FaultSource')
self.related_event_datas = []
if m.get('RelatedEventDatas') is not None:
for k in m.get('RelatedEventDatas'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedEventDatas()
self.related_event_datas.append(temp_model.from_map(k))
self.related_metric_datas = []
if m.get('RelatedMetricDatas') is not None:
for k in m.get('RelatedMetricDatas'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorListRelatedMetricDatas()
self.related_metric_datas.append(temp_model.from_map(k))
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricDataNodes(TeaModel):
def __init__(self, x=None, y=None):
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricData(TeaModel):
def __init__(self, nodes=None):
self.nodes = nodes # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricDataNodes]
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricData, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricDataNodes()
self.nodes.append(temp_model.from_map(k))
return self
class DescribeFaultDiagnosisUserDetailResponseBodyUserDetailOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyUserDetailOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribeFaultDiagnosisUserDetailResponseBodyUserDetail(TeaModel):
def __init__(self, created_ts=None, destroyed_ts=None, duration=None, location=None, network=None,
online_duration=None, online_periods=None, os=None, sdk_version=None, user_id=None):
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
self.location = location # type: str
self.network = network # type: str
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribeFaultDiagnosisUserDetailResponseBodyUserDetailOnlinePeriods]
self.os = os # type: str
self.sdk_version = sdk_version # type: str
self.user_id = user_id # type: str
def validate(self):
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBodyUserDetail, self).to_map()
if _map is not None:
return _map
result = dict()
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.network is not None:
result['Network'] = self.network
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.os is not None:
result['Os'] = self.os
if self.sdk_version is not None:
result['SdkVersion'] = self.sdk_version
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('Network') is not None:
self.network = m.get('Network')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyUserDetailOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('SdkVersion') is not None:
self.sdk_version = m.get('SdkVersion')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserDetailResponseBody(TeaModel):
def __init__(self, call_info=None, factor_list=None, fault_metric_data=None, network_operators=None,
request_id=None, user_detail=None):
self.call_info = call_info # type: DescribeFaultDiagnosisUserDetailResponseBodyCallInfo
self.factor_list = factor_list # type: list[DescribeFaultDiagnosisUserDetailResponseBodyFactorList]
self.fault_metric_data = fault_metric_data # type: DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricData
self.network_operators = network_operators # type: list[str]
self.request_id = request_id # type: str
self.user_detail = user_detail # type: DescribeFaultDiagnosisUserDetailResponseBodyUserDetail
def validate(self):
if self.call_info:
self.call_info.validate()
if self.factor_list:
for k in self.factor_list:
if k:
k.validate()
if self.fault_metric_data:
self.fault_metric_data.validate()
if self.user_detail:
self.user_detail.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_info is not None:
result['CallInfo'] = self.call_info.to_map()
result['FactorList'] = []
if self.factor_list is not None:
for k in self.factor_list:
result['FactorList'].append(k.to_map() if k else None)
if self.fault_metric_data is not None:
result['FaultMetricData'] = self.fault_metric_data.to_map()
if self.network_operators is not None:
result['NetworkOperators'] = self.network_operators
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.user_detail is not None:
result['UserDetail'] = self.user_detail.to_map()
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInfo') is not None:
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyCallInfo()
self.call_info = temp_model.from_map(m['CallInfo'])
self.factor_list = []
if m.get('FactorList') is not None:
for k in m.get('FactorList'):
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFactorList()
self.factor_list.append(temp_model.from_map(k))
if m.get('FaultMetricData') is not None:
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyFaultMetricData()
self.fault_metric_data = temp_model.from_map(m['FaultMetricData'])
if m.get('NetworkOperators') is not None:
self.network_operators = m.get('NetworkOperators')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('UserDetail') is not None:
temp_model = DescribeFaultDiagnosisUserDetailResponseBodyUserDetail()
self.user_detail = temp_model.from_map(m['UserDetail'])
return self
class DescribeFaultDiagnosisUserDetailResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeFaultDiagnosisUserDetailResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserDetailResponse, self).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=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 = DescribeFaultDiagnosisUserDetailResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeFaultDiagnosisUserListRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, end_ts=None, fault_types=None, page_no=None, page_size=None,
start_ts=None, user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.end_ts = end_ts # type: long
self.fault_types = fault_types # type: str
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.start_ts = start_ts # type: long
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.end_ts is not None:
result['EndTs'] = self.end_ts
if self.fault_types is not None:
result['FaultTypes'] = self.fault_types
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.start_ts is not None:
result['StartTs'] = self.start_ts
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('EndTs') is not None:
self.end_ts = m.get('EndTs')
if m.get('FaultTypes') is not None:
self.fault_types = m.get('FaultTypes')
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('StartTs') is not None:
self.start_ts = m.get('StartTs')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserListResponseBodyUserListFaultList(TeaModel):
def __init__(self, fault_type=None):
self.fault_type = fault_type # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeFaultDiagnosisUserListResponseBodyUserListFaultList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.fault_type is not None:
result['FaultType'] = self.fault_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('FaultType') is not None:
self.fault_type = m.get('FaultType')
return self
class DescribeFaultDiagnosisUserListResponseBodyUserList(TeaModel):
def __init__(self, channel_created_ts=None, channel_id=None, created_ts=None, destroyed_ts=None,
fault_list=None, user_id=None):
self.channel_created_ts = channel_created_ts # type: long
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.fault_list = fault_list # type: list[DescribeFaultDiagnosisUserListResponseBodyUserListFaultList]
self.user_id = user_id # type: str
def validate(self):
if self.fault_list:
for k in self.fault_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserListResponseBodyUserList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.channel_created_ts is not None:
result['ChannelCreatedTs'] = self.channel_created_ts
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
result['FaultList'] = []
if self.fault_list is not None:
for k in self.fault_list:
result['FaultList'].append(k.to_map() if k else None)
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('ChannelCreatedTs') is not None:
self.channel_created_ts = m.get('ChannelCreatedTs')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
self.fault_list = []
if m.get('FaultList') is not None:
for k in m.get('FaultList'):
temp_model = DescribeFaultDiagnosisUserListResponseBodyUserListFaultList()
self.fault_list.append(temp_model.from_map(k))
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeFaultDiagnosisUserListResponseBody(TeaModel):
def __init__(self, page_no=None, page_size=None, request_id=None, total_cnt=None, user_list=None):
self.page_no = page_no # type: int
self.page_size = page_size # type: int
self.request_id = request_id # type: str
self.total_cnt = total_cnt # type: int
self.user_list = user_list # type: list[DescribeFaultDiagnosisUserListResponseBodyUserList]
def validate(self):
if self.user_list:
for k in self.user_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
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.request_id is not None:
result['RequestId'] = self.request_id
if self.total_cnt is not None:
result['TotalCnt'] = self.total_cnt
result['UserList'] = []
if self.user_list is not None:
for k in self.user_list:
result['UserList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
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('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TotalCnt') is not None:
self.total_cnt = m.get('TotalCnt')
self.user_list = []
if m.get('UserList') is not None:
for k in m.get('UserList'):
temp_model = DescribeFaultDiagnosisUserListResponseBodyUserList()
self.user_list.append(temp_model.from_map(k))
return self
class DescribeFaultDiagnosisUserListResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeFaultDiagnosisUserListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeFaultDiagnosisUserListResponse, self).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=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 = DescribeFaultDiagnosisUserListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeIceDurPeriodByDaySubTypeRequest(TeaModel):
def __init__(self, end_ts=None, job_type=None, start_ts=None, time_zone=None):
self.end_ts = end_ts # type: long
self.job_type = job_type # type: str
self.start_ts = start_ts # type: long
self.time_zone = time_zone # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeIceDurPeriodByDaySubTypeRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.end_ts is not None:
result['EndTs'] = self.end_ts
if self.job_type is not None:
result['JobType'] = self.job_type
if self.start_ts is not None:
result['StartTs'] = self.start_ts
if self.time_zone is not None:
result['TimeZone'] = self.time_zone
return result
def from_map(self, m=None):
m = m or dict()
if m.get('EndTs') is not None:
self.end_ts = m.get('EndTs')
if m.get('JobType') is not None:
self.job_type = m.get('JobType')
if m.get('StartTs') is not None:
self.start_ts = m.get('StartTs')
if m.get('TimeZone') is not None:
self.time_zone = m.get('TimeZone')
return self
class DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoListSubJobInfoList(TeaModel):
def __init__(self, sub_job_duration=None, sub_job_type=None):
self.sub_job_duration = sub_job_duration # type: long
self.sub_job_type = sub_job_type # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoListSubJobInfoList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.sub_job_duration is not None:
result['SubJobDuration'] = self.sub_job_duration
if self.sub_job_type is not None:
result['SubJobType'] = self.sub_job_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('SubJobDuration') is not None:
self.sub_job_duration = m.get('SubJobDuration')
if m.get('SubJobType') is not None:
self.sub_job_type = m.get('SubJobType')
return self
class DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoList(TeaModel):
def __init__(self, date_ts=None, duration=None, sub_job_info_list=None):
self.date_ts = date_ts # type: long
self.duration = duration # type: long
self.sub_job_info_list = sub_job_info_list # type: list[DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoListSubJobInfoList]
def validate(self):
if self.sub_job_info_list:
for k in self.sub_job_info_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.date_ts is not None:
result['DateTs'] = self.date_ts
if self.duration is not None:
result['Duration'] = self.duration
result['SubJobInfoList'] = []
if self.sub_job_info_list is not None:
for k in self.sub_job_info_list:
result['SubJobInfoList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('DateTs') is not None:
self.date_ts = m.get('DateTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
self.sub_job_info_list = []
if m.get('SubJobInfoList') is not None:
for k in m.get('SubJobInfoList'):
temp_model = DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoListSubJobInfoList()
self.sub_job_info_list.append(temp_model.from_map(k))
return self
class DescribeIceDurPeriodByDaySubTypeResponseBody(TeaModel):
def __init__(self, job_info_list=None, request_id=None):
self.job_info_list = job_info_list # type: list[DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoList]
self.request_id = request_id # type: str
def validate(self):
if self.job_info_list:
for k in self.job_info_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeIceDurPeriodByDaySubTypeResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['JobInfoList'] = []
if self.job_info_list is not None:
for k in self.job_info_list:
result['JobInfoList'].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=None):
m = m or dict()
self.job_info_list = []
if m.get('JobInfoList') is not None:
for k in m.get('JobInfoList'):
temp_model = DescribeIceDurPeriodByDaySubTypeResponseBodyJobInfoList()
self.job_info_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeIceDurPeriodByDaySubTypeResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeIceDurPeriodByDaySubTypeResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeIceDurPeriodByDaySubTypeResponse, self).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=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 = DescribeIceDurPeriodByDaySubTypeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeIceDurSummaryOverviewRequest(TeaModel):
def __init__(self, cur_ts=None, time_zone=None):
self.cur_ts = cur_ts # type: long
self.time_zone = time_zone # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeIceDurSummaryOverviewRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.cur_ts is not None:
result['CurTs'] = self.cur_ts
if self.time_zone is not None:
result['TimeZone'] = self.time_zone
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CurTs') is not None:
self.cur_ts = m.get('CurTs')
if m.get('TimeZone') is not None:
self.time_zone = m.get('TimeZone')
return self
class DescribeIceDurSummaryOverviewResponseBodyJobInfoList(TeaModel):
def __init__(self, duration=None, job_type=None, time_range=None):
self.duration = duration # type: long
self.job_type = job_type # type: str
self.time_range = time_range # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeIceDurSummaryOverviewResponseBodyJobInfoList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.duration is not None:
result['Duration'] = self.duration
if self.job_type is not None:
result['JobType'] = self.job_type
if self.time_range is not None:
result['TimeRange'] = self.time_range
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('JobType') is not None:
self.job_type = m.get('JobType')
if m.get('TimeRange') is not None:
self.time_range = m.get('TimeRange')
return self
class DescribeIceDurSummaryOverviewResponseBody(TeaModel):
def __init__(self, job_info_list=None, request_id=None):
self.job_info_list = job_info_list # type: list[DescribeIceDurSummaryOverviewResponseBodyJobInfoList]
self.request_id = request_id # type: str
def validate(self):
if self.job_info_list:
for k in self.job_info_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeIceDurSummaryOverviewResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['JobInfoList'] = []
if self.job_info_list is not None:
for k in self.job_info_list:
result['JobInfoList'].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=None):
m = m or dict()
self.job_info_list = []
if m.get('JobInfoList') is not None:
for k in m.get('JobInfoList'):
temp_model = DescribeIceDurSummaryOverviewResponseBodyJobInfoList()
self.job_info_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeIceDurSummaryOverviewResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeIceDurSummaryOverviewResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeIceDurSummaryOverviewResponse, self).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=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 = DescribeIceDurSummaryOverviewResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribePubUserListBySubUserRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, sub_user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.sub_user_id = sub_user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribePubUserListBySubUserRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.sub_user_id is not None:
result['SubUserId'] = self.sub_user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('SubUserId') is not None:
self.sub_user_id = m.get('SubUserId')
return self
class DescribePubUserListBySubUserResponseBodyPubUserDetailListOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribePubUserListBySubUserResponseBodyPubUserDetailListOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribePubUserListBySubUserResponseBodyPubUserDetailList(TeaModel):
def __init__(self, call_id_list=None, client_type=None, created_ts=None, destroyed_ts=None, duration=None,
location=None, network=None, network_list=None, online_duration=None, online_periods=None, os=None,
os_list=None, roles=None, sdk_version=None, sdk_version_list=None, user_id=None, user_id_alias=None):
self.call_id_list = call_id_list # type: list[str]
self.client_type = client_type # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
self.location = location # type: str
self.network = network # type: str
self.network_list = network_list # type: list[str]
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribePubUserListBySubUserResponseBodyPubUserDetailListOnlinePeriods]
self.os = os # type: str
self.os_list = os_list # type: list[str]
self.roles = roles # type: list[str]
self.sdk_version = sdk_version # type: str
self.sdk_version_list = sdk_version_list # type: list[str]
self.user_id = user_id # type: str
self.user_id_alias = user_id_alias # type: str
def validate(self):
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribePubUserListBySubUserResponseBodyPubUserDetailList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id_list is not None:
result['CallIdList'] = self.call_id_list
if self.client_type is not None:
result['ClientType'] = self.client_type
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.network is not None:
result['Network'] = self.network
if self.network_list is not None:
result['NetworkList'] = self.network_list
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.os is not None:
result['Os'] = self.os
if self.os_list is not None:
result['OsList'] = self.os_list
if self.roles is not None:
result['Roles'] = self.roles
if self.sdk_version is not None:
result['SdkVersion'] = self.sdk_version
if self.sdk_version_list is not None:
result['SdkVersionList'] = self.sdk_version_list
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_id_alias is not None:
result['UserIdAlias'] = self.user_id_alias
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallIdList') is not None:
self.call_id_list = m.get('CallIdList')
if m.get('ClientType') is not None:
self.client_type = m.get('ClientType')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('Network') is not None:
self.network = m.get('Network')
if m.get('NetworkList') is not None:
self.network_list = m.get('NetworkList')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribePubUserListBySubUserResponseBodyPubUserDetailListOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('OsList') is not None:
self.os_list = m.get('OsList')
if m.get('Roles') is not None:
self.roles = m.get('Roles')
if m.get('SdkVersion') is not None:
self.sdk_version = m.get('SdkVersion')
if m.get('SdkVersionList') is not None:
self.sdk_version_list = m.get('SdkVersionList')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserIdAlias') is not None:
self.user_id_alias = m.get('UserIdAlias')
return self
class DescribePubUserListBySubUserResponseBodySubUserDetailOnlinePeriods(TeaModel):
def __init__(self, join_ts=None, leave_ts=None):
self.join_ts = join_ts # type: long
self.leave_ts = leave_ts # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribePubUserListBySubUserResponseBodySubUserDetailOnlinePeriods, self).to_map()
if _map is not None:
return _map
result = dict()
if self.join_ts is not None:
result['JoinTs'] = self.join_ts
if self.leave_ts is not None:
result['LeaveTs'] = self.leave_ts
return result
def from_map(self, m=None):
m = m or dict()
if m.get('JoinTs') is not None:
self.join_ts = m.get('JoinTs')
if m.get('LeaveTs') is not None:
self.leave_ts = m.get('LeaveTs')
return self
class DescribePubUserListBySubUserResponseBodySubUserDetail(TeaModel):
def __init__(self, client_type=None, created_ts=None, destroyed_ts=None, duration=None, location=None,
network=None, network_list=None, online_duration=None, online_periods=None, os=None, os_list=None,
roles=None, sdk_version=None, sdk_version_list=None, user_id=None, user_id_alias=None):
self.client_type = client_type # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.duration = duration # type: long
self.location = location # type: str
self.network = network # type: str
self.network_list = network_list # type: list[str]
self.online_duration = online_duration # type: long
self.online_periods = online_periods # type: list[DescribePubUserListBySubUserResponseBodySubUserDetailOnlinePeriods]
self.os = os # type: str
self.os_list = os_list # type: list[str]
self.roles = roles # type: list[str]
self.sdk_version = sdk_version # type: str
self.sdk_version_list = sdk_version_list # type: list[str]
self.user_id = user_id # type: str
self.user_id_alias = user_id_alias # type: str
def validate(self):
if self.online_periods:
for k in self.online_periods:
if k:
k.validate()
def to_map(self):
_map = super(DescribePubUserListBySubUserResponseBodySubUserDetail, self).to_map()
if _map is not None:
return _map
result = dict()
if self.client_type is not None:
result['ClientType'] = self.client_type
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.duration is not None:
result['Duration'] = self.duration
if self.location is not None:
result['Location'] = self.location
if self.network is not None:
result['Network'] = self.network
if self.network_list is not None:
result['NetworkList'] = self.network_list
if self.online_duration is not None:
result['OnlineDuration'] = self.online_duration
result['OnlinePeriods'] = []
if self.online_periods is not None:
for k in self.online_periods:
result['OnlinePeriods'].append(k.to_map() if k else None)
if self.os is not None:
result['Os'] = self.os
if self.os_list is not None:
result['OsList'] = self.os_list
if self.roles is not None:
result['Roles'] = self.roles
if self.sdk_version is not None:
result['SdkVersion'] = self.sdk_version
if self.sdk_version_list is not None:
result['SdkVersionList'] = self.sdk_version_list
if self.user_id is not None:
result['UserId'] = self.user_id
if self.user_id_alias is not None:
result['UserIdAlias'] = self.user_id_alias
return result
def from_map(self, m=None):
m = m or dict()
if m.get('ClientType') is not None:
self.client_type = m.get('ClientType')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Location') is not None:
self.location = m.get('Location')
if m.get('Network') is not None:
self.network = m.get('Network')
if m.get('NetworkList') is not None:
self.network_list = m.get('NetworkList')
if m.get('OnlineDuration') is not None:
self.online_duration = m.get('OnlineDuration')
self.online_periods = []
if m.get('OnlinePeriods') is not None:
for k in m.get('OnlinePeriods'):
temp_model = DescribePubUserListBySubUserResponseBodySubUserDetailOnlinePeriods()
self.online_periods.append(temp_model.from_map(k))
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('OsList') is not None:
self.os_list = m.get('OsList')
if m.get('Roles') is not None:
self.roles = m.get('Roles')
if m.get('SdkVersion') is not None:
self.sdk_version = m.get('SdkVersion')
if m.get('SdkVersionList') is not None:
self.sdk_version_list = m.get('SdkVersionList')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
if m.get('UserIdAlias') is not None:
self.user_id_alias = m.get('UserIdAlias')
return self
class DescribePubUserListBySubUserResponseBody(TeaModel):
def __init__(self, call_status=None, pub_user_detail_list=None, request_id=None, sub_user_detail=None):
self.call_status = call_status # type: str
self.pub_user_detail_list = pub_user_detail_list # type: list[DescribePubUserListBySubUserResponseBodyPubUserDetailList]
self.request_id = request_id # type: str
self.sub_user_detail = sub_user_detail # type: DescribePubUserListBySubUserResponseBodySubUserDetail
def validate(self):
if self.pub_user_detail_list:
for k in self.pub_user_detail_list:
if k:
k.validate()
if self.sub_user_detail:
self.sub_user_detail.validate()
def to_map(self):
_map = super(DescribePubUserListBySubUserResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_status is not None:
result['CallStatus'] = self.call_status
result['PubUserDetailList'] = []
if self.pub_user_detail_list is not None:
for k in self.pub_user_detail_list:
result['PubUserDetailList'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.sub_user_detail is not None:
result['SubUserDetail'] = self.sub_user_detail.to_map()
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallStatus') is not None:
self.call_status = m.get('CallStatus')
self.pub_user_detail_list = []
if m.get('PubUserDetailList') is not None:
for k in m.get('PubUserDetailList'):
temp_model = DescribePubUserListBySubUserResponseBodyPubUserDetailList()
self.pub_user_detail_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('SubUserDetail') is not None:
temp_model = DescribePubUserListBySubUserResponseBodySubUserDetail()
self.sub_user_detail = temp_model.from_map(m['SubUserDetail'])
return self
class DescribePubUserListBySubUserResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribePubUserListBySubUserResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribePubUserListBySubUserResponse, self).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=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 = DescribePubUserListBySubUserResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeQoeMetricDataRequest(TeaModel):
def __init__(self, app_id=None, channel_id=None, created_ts=None, destroyed_ts=None, user_id=None):
self.app_id = app_id # type: str
self.channel_id = channel_id # type: str
self.created_ts = created_ts # type: long
self.destroyed_ts = destroyed_ts # type: long
self.user_id = user_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQoeMetricDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.channel_id is not None:
result['ChannelId'] = self.channel_id
if self.created_ts is not None:
result['CreatedTs'] = self.created_ts
if self.destroyed_ts is not None:
result['DestroyedTs'] = self.destroyed_ts
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('ChannelId') is not None:
self.channel_id = m.get('ChannelId')
if m.get('CreatedTs') is not None:
self.created_ts = m.get('CreatedTs')
if m.get('DestroyedTs') is not None:
self.destroyed_ts = m.get('DestroyedTs')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeQoeMetricDataResponseBodyAudioDataNodes(TeaModel):
def __init__(self, x=None, y=None):
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQoeMetricDataResponseBodyAudioDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeQoeMetricDataResponseBodyAudioData(TeaModel):
def __init__(self, nodes=None, type=None, user_id=None):
self.nodes = nodes # type: list[DescribeQoeMetricDataResponseBodyAudioDataNodes]
self.type = type # type: str
self.user_id = user_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQoeMetricDataResponseBodyAudioData, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeQoeMetricDataResponseBodyAudioDataNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeQoeMetricDataResponseBodyVideoDataNodes(TeaModel):
def __init__(self, x=None, y=None):
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQoeMetricDataResponseBodyVideoDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeQoeMetricDataResponseBodyVideoData(TeaModel):
def __init__(self, nodes=None, type=None, user_id=None):
self.nodes = nodes # type: list[DescribeQoeMetricDataResponseBodyVideoDataNodes]
self.type = type # type: str
self.user_id = user_id # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQoeMetricDataResponseBodyVideoData, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
if self.user_id is not None:
result['UserId'] = self.user_id
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeQoeMetricDataResponseBodyVideoDataNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
if m.get('UserId') is not None:
self.user_id = m.get('UserId')
return self
class DescribeQoeMetricDataResponseBody(TeaModel):
def __init__(self, audio_data=None, request_id=None, video_data=None):
self.audio_data = audio_data # type: list[DescribeQoeMetricDataResponseBodyAudioData]
self.request_id = request_id # type: str
self.video_data = video_data # type: list[DescribeQoeMetricDataResponseBodyVideoData]
def validate(self):
if self.audio_data:
for k in self.audio_data:
if k:
k.validate()
if self.video_data:
for k in self.video_data:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQoeMetricDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['AudioData'] = []
if self.audio_data is not None:
for k in self.audio_data:
result['AudioData'].append(k.to_map() if k else None)
if self.request_id is not None:
result['RequestId'] = self.request_id
result['VideoData'] = []
if self.video_data is not None:
for k in self.video_data:
result['VideoData'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
self.audio_data = []
if m.get('AudioData') is not None:
for k in m.get('AudioData'):
temp_model = DescribeQoeMetricDataResponseBodyAudioData()
self.audio_data.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.video_data = []
if m.get('VideoData') is not None:
for k in m.get('VideoData'):
temp_model = DescribeQoeMetricDataResponseBodyVideoData()
self.video_data.append(temp_model.from_map(k))
return self
class DescribeQoeMetricDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeQoeMetricDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeQoeMetricDataResponse, self).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=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 = DescribeQoeMetricDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeQualityAreaDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, parent_area=None, start_date=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.parent_area = parent_area # type: str
self.start_date = start_date # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityAreaDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.parent_area is not None:
result['ParentArea'] = self.parent_area
if self.start_date is not None:
result['StartDate'] = self.start_date
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('ParentArea') is not None:
self.parent_area = m.get('ParentArea')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
return self
class DescribeQualityAreaDistributionStatDataResponseBodyQualityStatDataList(TeaModel):
def __init__(self, audio_delay=None, audio_high_quality_transmission_rate=None, audio_speak_out_duration=None,
audio_stuck_rate=None, call_duration_ratio=None, join_channel_suc_five_sec_rate=None, join_channel_suc_rate=None,
name=None, video_delay=None, video_first_pic_duration=None, video_high_quality_transmission_rate=None,
video_stuck_rate=None):
self.audio_delay = audio_delay # type: long
self.audio_high_quality_transmission_rate = audio_high_quality_transmission_rate # type: str
self.audio_speak_out_duration = audio_speak_out_duration # type: long
self.audio_stuck_rate = audio_stuck_rate # type: str
self.call_duration_ratio = call_duration_ratio # type: str
self.join_channel_suc_five_sec_rate = join_channel_suc_five_sec_rate # type: str
self.join_channel_suc_rate = join_channel_suc_rate # type: str
self.name = name # type: str
self.video_delay = video_delay # type: long
self.video_first_pic_duration = video_first_pic_duration # type: long
self.video_high_quality_transmission_rate = video_high_quality_transmission_rate # type: str
self.video_stuck_rate = video_stuck_rate # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityAreaDistributionStatDataResponseBodyQualityStatDataList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_delay is not None:
result['AudioDelay'] = self.audio_delay
if self.audio_high_quality_transmission_rate is not None:
result['AudioHighQualityTransmissionRate'] = self.audio_high_quality_transmission_rate
if self.audio_speak_out_duration is not None:
result['AudioSpeakOutDuration'] = self.audio_speak_out_duration
if self.audio_stuck_rate is not None:
result['AudioStuckRate'] = self.audio_stuck_rate
if self.call_duration_ratio is not None:
result['CallDurationRatio'] = self.call_duration_ratio
if self.join_channel_suc_five_sec_rate is not None:
result['JoinChannelSucFiveSecRate'] = self.join_channel_suc_five_sec_rate
if self.join_channel_suc_rate is not None:
result['JoinChannelSucRate'] = self.join_channel_suc_rate
if self.name is not None:
result['Name'] = self.name
if self.video_delay is not None:
result['VideoDelay'] = self.video_delay
if self.video_first_pic_duration is not None:
result['VideoFirstPicDuration'] = self.video_first_pic_duration
if self.video_high_quality_transmission_rate is not None:
result['VideoHighQualityTransmissionRate'] = self.video_high_quality_transmission_rate
if self.video_stuck_rate is not None:
result['VideoStuckRate'] = self.video_stuck_rate
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioDelay') is not None:
self.audio_delay = m.get('AudioDelay')
if m.get('AudioHighQualityTransmissionRate') is not None:
self.audio_high_quality_transmission_rate = m.get('AudioHighQualityTransmissionRate')
if m.get('AudioSpeakOutDuration') is not None:
self.audio_speak_out_duration = m.get('AudioSpeakOutDuration')
if m.get('AudioStuckRate') is not None:
self.audio_stuck_rate = m.get('AudioStuckRate')
if m.get('CallDurationRatio') is not None:
self.call_duration_ratio = m.get('CallDurationRatio')
if m.get('JoinChannelSucFiveSecRate') is not None:
self.join_channel_suc_five_sec_rate = m.get('JoinChannelSucFiveSecRate')
if m.get('JoinChannelSucRate') is not None:
self.join_channel_suc_rate = m.get('JoinChannelSucRate')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('VideoDelay') is not None:
self.video_delay = m.get('VideoDelay')
if m.get('VideoFirstPicDuration') is not None:
self.video_first_pic_duration = m.get('VideoFirstPicDuration')
if m.get('VideoHighQualityTransmissionRate') is not None:
self.video_high_quality_transmission_rate = m.get('VideoHighQualityTransmissionRate')
if m.get('VideoStuckRate') is not None:
self.video_stuck_rate = m.get('VideoStuckRate')
return self
class DescribeQualityAreaDistributionStatDataResponseBody(TeaModel):
def __init__(self, quality_stat_data_list=None, request_id=None):
self.quality_stat_data_list = quality_stat_data_list # type: list[DescribeQualityAreaDistributionStatDataResponseBodyQualityStatDataList]
self.request_id = request_id # type: str
def validate(self):
if self.quality_stat_data_list:
for k in self.quality_stat_data_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQualityAreaDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['QualityStatDataList'] = []
if self.quality_stat_data_list is not None:
for k in self.quality_stat_data_list:
result['QualityStatDataList'].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=None):
m = m or dict()
self.quality_stat_data_list = []
if m.get('QualityStatDataList') is not None:
for k in m.get('QualityStatDataList'):
temp_model = DescribeQualityAreaDistributionStatDataResponseBodyQualityStatDataList()
self.quality_stat_data_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeQualityAreaDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeQualityAreaDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeQualityAreaDistributionStatDataResponse, self).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=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 = DescribeQualityAreaDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeQualityDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None, stat_dim=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
self.stat_dim = stat_dim # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
if self.stat_dim is not None:
result['StatDim'] = self.stat_dim
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
if m.get('StatDim') is not None:
self.stat_dim = m.get('StatDim')
return self
class DescribeQualityDistributionStatDataResponseBodyQualityStatDataList(TeaModel):
def __init__(self, audio_delay=None, audio_high_quality_transmission_rate=None, audio_speak_out_duration=None,
audio_stuck_rate=None, call_duration_ratio=None, join_channel_suc_five_sec_rate=None, join_channel_suc_rate=None,
name=None, video_delay=None, video_first_pic_duration=None, video_high_quality_transmission_rate=None,
video_stuck_rate=None):
self.audio_delay = audio_delay # type: long
self.audio_high_quality_transmission_rate = audio_high_quality_transmission_rate # type: str
self.audio_speak_out_duration = audio_speak_out_duration # type: long
self.audio_stuck_rate = audio_stuck_rate # type: str
self.call_duration_ratio = call_duration_ratio # type: str
self.join_channel_suc_five_sec_rate = join_channel_suc_five_sec_rate # type: str
self.join_channel_suc_rate = join_channel_suc_rate # type: str
self.name = name # type: str
self.video_delay = video_delay # type: long
self.video_first_pic_duration = video_first_pic_duration # type: long
self.video_high_quality_transmission_rate = video_high_quality_transmission_rate # type: str
self.video_stuck_rate = video_stuck_rate # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityDistributionStatDataResponseBodyQualityStatDataList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_delay is not None:
result['AudioDelay'] = self.audio_delay
if self.audio_high_quality_transmission_rate is not None:
result['AudioHighQualityTransmissionRate'] = self.audio_high_quality_transmission_rate
if self.audio_speak_out_duration is not None:
result['AudioSpeakOutDuration'] = self.audio_speak_out_duration
if self.audio_stuck_rate is not None:
result['AudioStuckRate'] = self.audio_stuck_rate
if self.call_duration_ratio is not None:
result['CallDurationRatio'] = self.call_duration_ratio
if self.join_channel_suc_five_sec_rate is not None:
result['JoinChannelSucFiveSecRate'] = self.join_channel_suc_five_sec_rate
if self.join_channel_suc_rate is not None:
result['JoinChannelSucRate'] = self.join_channel_suc_rate
if self.name is not None:
result['Name'] = self.name
if self.video_delay is not None:
result['VideoDelay'] = self.video_delay
if self.video_first_pic_duration is not None:
result['VideoFirstPicDuration'] = self.video_first_pic_duration
if self.video_high_quality_transmission_rate is not None:
result['VideoHighQualityTransmissionRate'] = self.video_high_quality_transmission_rate
if self.video_stuck_rate is not None:
result['VideoStuckRate'] = self.video_stuck_rate
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioDelay') is not None:
self.audio_delay = m.get('AudioDelay')
if m.get('AudioHighQualityTransmissionRate') is not None:
self.audio_high_quality_transmission_rate = m.get('AudioHighQualityTransmissionRate')
if m.get('AudioSpeakOutDuration') is not None:
self.audio_speak_out_duration = m.get('AudioSpeakOutDuration')
if m.get('AudioStuckRate') is not None:
self.audio_stuck_rate = m.get('AudioStuckRate')
if m.get('CallDurationRatio') is not None:
self.call_duration_ratio = m.get('CallDurationRatio')
if m.get('JoinChannelSucFiveSecRate') is not None:
self.join_channel_suc_five_sec_rate = m.get('JoinChannelSucFiveSecRate')
if m.get('JoinChannelSucRate') is not None:
self.join_channel_suc_rate = m.get('JoinChannelSucRate')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('VideoDelay') is not None:
self.video_delay = m.get('VideoDelay')
if m.get('VideoFirstPicDuration') is not None:
self.video_first_pic_duration = m.get('VideoFirstPicDuration')
if m.get('VideoHighQualityTransmissionRate') is not None:
self.video_high_quality_transmission_rate = m.get('VideoHighQualityTransmissionRate')
if m.get('VideoStuckRate') is not None:
self.video_stuck_rate = m.get('VideoStuckRate')
return self
class DescribeQualityDistributionStatDataResponseBody(TeaModel):
def __init__(self, quality_stat_data_list=None, request_id=None):
self.quality_stat_data_list = quality_stat_data_list # type: list[DescribeQualityDistributionStatDataResponseBodyQualityStatDataList]
self.request_id = request_id # type: str
def validate(self):
if self.quality_stat_data_list:
for k in self.quality_stat_data_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQualityDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['QualityStatDataList'] = []
if self.quality_stat_data_list is not None:
for k in self.quality_stat_data_list:
result['QualityStatDataList'].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=None):
m = m or dict()
self.quality_stat_data_list = []
if m.get('QualityStatDataList') is not None:
for k in m.get('QualityStatDataList'):
temp_model = DescribeQualityDistributionStatDataResponseBodyQualityStatDataList()
self.quality_stat_data_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeQualityDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeQualityDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeQualityDistributionStatDataResponse, self).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=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 = DescribeQualityDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeQualityOsSdkVersionDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityOsSdkVersionDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
return self
class DescribeQualityOsSdkVersionDistributionStatDataResponseBodyQualityOsSdkVersionStatDataList(TeaModel):
def __init__(self, audio_delay=None, audio_high_quality_transmission_rate=None, audio_speak_out_duration=None,
audio_stuck_rate=None, call_duration_ratio=None, join_channel_suc_five_sec_rate=None, join_channel_suc_rate=None,
name=None, os=None, video_delay=None, video_first_pic_duration=None,
video_high_quality_transmission_rate=None, video_stuck_rate=None):
self.audio_delay = audio_delay # type: long
self.audio_high_quality_transmission_rate = audio_high_quality_transmission_rate # type: str
self.audio_speak_out_duration = audio_speak_out_duration # type: long
self.audio_stuck_rate = audio_stuck_rate # type: str
self.call_duration_ratio = call_duration_ratio # type: str
self.join_channel_suc_five_sec_rate = join_channel_suc_five_sec_rate # type: str
self.join_channel_suc_rate = join_channel_suc_rate # type: str
self.name = name # type: str
self.os = os # type: str
self.video_delay = video_delay # type: long
self.video_first_pic_duration = video_first_pic_duration # type: long
self.video_high_quality_transmission_rate = video_high_quality_transmission_rate # type: str
self.video_stuck_rate = video_stuck_rate # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityOsSdkVersionDistributionStatDataResponseBodyQualityOsSdkVersionStatDataList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_delay is not None:
result['AudioDelay'] = self.audio_delay
if self.audio_high_quality_transmission_rate is not None:
result['AudioHighQualityTransmissionRate'] = self.audio_high_quality_transmission_rate
if self.audio_speak_out_duration is not None:
result['AudioSpeakOutDuration'] = self.audio_speak_out_duration
if self.audio_stuck_rate is not None:
result['AudioStuckRate'] = self.audio_stuck_rate
if self.call_duration_ratio is not None:
result['CallDurationRatio'] = self.call_duration_ratio
if self.join_channel_suc_five_sec_rate is not None:
result['JoinChannelSucFiveSecRate'] = self.join_channel_suc_five_sec_rate
if self.join_channel_suc_rate is not None:
result['JoinChannelSucRate'] = self.join_channel_suc_rate
if self.name is not None:
result['Name'] = self.name
if self.os is not None:
result['Os'] = self.os
if self.video_delay is not None:
result['VideoDelay'] = self.video_delay
if self.video_first_pic_duration is not None:
result['VideoFirstPicDuration'] = self.video_first_pic_duration
if self.video_high_quality_transmission_rate is not None:
result['VideoHighQualityTransmissionRate'] = self.video_high_quality_transmission_rate
if self.video_stuck_rate is not None:
result['VideoStuckRate'] = self.video_stuck_rate
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioDelay') is not None:
self.audio_delay = m.get('AudioDelay')
if m.get('AudioHighQualityTransmissionRate') is not None:
self.audio_high_quality_transmission_rate = m.get('AudioHighQualityTransmissionRate')
if m.get('AudioSpeakOutDuration') is not None:
self.audio_speak_out_duration = m.get('AudioSpeakOutDuration')
if m.get('AudioStuckRate') is not None:
self.audio_stuck_rate = m.get('AudioStuckRate')
if m.get('CallDurationRatio') is not None:
self.call_duration_ratio = m.get('CallDurationRatio')
if m.get('JoinChannelSucFiveSecRate') is not None:
self.join_channel_suc_five_sec_rate = m.get('JoinChannelSucFiveSecRate')
if m.get('JoinChannelSucRate') is not None:
self.join_channel_suc_rate = m.get('JoinChannelSucRate')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('VideoDelay') is not None:
self.video_delay = m.get('VideoDelay')
if m.get('VideoFirstPicDuration') is not None:
self.video_first_pic_duration = m.get('VideoFirstPicDuration')
if m.get('VideoHighQualityTransmissionRate') is not None:
self.video_high_quality_transmission_rate = m.get('VideoHighQualityTransmissionRate')
if m.get('VideoStuckRate') is not None:
self.video_stuck_rate = m.get('VideoStuckRate')
return self
class DescribeQualityOsSdkVersionDistributionStatDataResponseBody(TeaModel):
def __init__(self, quality_os_sdk_version_stat_data_list=None, request_id=None):
self.quality_os_sdk_version_stat_data_list = quality_os_sdk_version_stat_data_list # type: list[DescribeQualityOsSdkVersionDistributionStatDataResponseBodyQualityOsSdkVersionStatDataList]
self.request_id = request_id # type: str
def validate(self):
if self.quality_os_sdk_version_stat_data_list:
for k in self.quality_os_sdk_version_stat_data_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQualityOsSdkVersionDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['QualityOsSdkVersionStatDataList'] = []
if self.quality_os_sdk_version_stat_data_list is not None:
for k in self.quality_os_sdk_version_stat_data_list:
result['QualityOsSdkVersionStatDataList'].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=None):
m = m or dict()
self.quality_os_sdk_version_stat_data_list = []
if m.get('QualityOsSdkVersionStatDataList') is not None:
for k in m.get('QualityOsSdkVersionStatDataList'):
temp_model = DescribeQualityOsSdkVersionDistributionStatDataResponseBodyQualityOsSdkVersionStatDataList()
self.quality_os_sdk_version_stat_data_list.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeQualityOsSdkVersionDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeQualityOsSdkVersionDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeQualityOsSdkVersionDistributionStatDataResponse, self).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=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 = DescribeQualityOsSdkVersionDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeQualityOverallDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None, types=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
self.types = types # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityOverallDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
if self.types is not None:
result['Types'] = self.types
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
if m.get('Types') is not None:
self.types = m.get('Types')
return self
class DescribeQualityOverallDataResponseBodyQualityOverallDataNodes(TeaModel):
def __init__(self, x=None, y=None):
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeQualityOverallDataResponseBodyQualityOverallDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeQualityOverallDataResponseBodyQualityOverallData(TeaModel):
def __init__(self, average=None, nodes=None, type=None):
self.average = average # type: str
self.nodes = nodes # type: list[DescribeQualityOverallDataResponseBodyQualityOverallDataNodes]
self.type = type # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQualityOverallDataResponseBodyQualityOverallData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.average is not None:
result['Average'] = self.average
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Average') is not None:
self.average = m.get('Average')
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeQualityOverallDataResponseBodyQualityOverallDataNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
return self
class DescribeQualityOverallDataResponseBody(TeaModel):
def __init__(self, quality_overall_data=None, request_id=None):
self.quality_overall_data = quality_overall_data # type: list[DescribeQualityOverallDataResponseBodyQualityOverallData]
self.request_id = request_id # type: str
def validate(self):
if self.quality_overall_data:
for k in self.quality_overall_data:
if k:
k.validate()
def to_map(self):
_map = super(DescribeQualityOverallDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
result['QualityOverallData'] = []
if self.quality_overall_data is not None:
for k in self.quality_overall_data:
result['QualityOverallData'].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=None):
m = m or dict()
self.quality_overall_data = []
if m.get('QualityOverallData') is not None:
for k in m.get('QualityOverallData'):
temp_model = DescribeQualityOverallDataResponseBodyQualityOverallData()
self.quality_overall_data.append(temp_model.from_map(k))
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DescribeQualityOverallDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeQualityOverallDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeQualityOverallDataResponse, self).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=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 = DescribeQualityOverallDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeUsageAreaDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, parent_area=None, start_date=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: str
self.parent_area = parent_area # type: str
self.start_date = start_date # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageAreaDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.parent_area is not None:
result['ParentArea'] = self.parent_area
if self.start_date is not None:
result['StartDate'] = self.start_date
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('ParentArea') is not None:
self.parent_area = m.get('ParentArea')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
return self
class DescribeUsageAreaDistributionStatDataResponseBodyUsageAreaStatList(TeaModel):
def __init__(self, audio_call_duration=None, name=None, total_call_duration=None, video_call_duration=None):
self.audio_call_duration = audio_call_duration # type: int
self.name = name # type: str
self.total_call_duration = total_call_duration # type: int
self.video_call_duration = video_call_duration # type: int
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageAreaDistributionStatDataResponseBodyUsageAreaStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_call_duration is not None:
result['AudioCallDuration'] = self.audio_call_duration
if self.name is not None:
result['Name'] = self.name
if self.total_call_duration is not None:
result['TotalCallDuration'] = self.total_call_duration
if self.video_call_duration is not None:
result['VideoCallDuration'] = self.video_call_duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioCallDuration') is not None:
self.audio_call_duration = m.get('AudioCallDuration')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('TotalCallDuration') is not None:
self.total_call_duration = m.get('TotalCallDuration')
if m.get('VideoCallDuration') is not None:
self.video_call_duration = m.get('VideoCallDuration')
return self
class DescribeUsageAreaDistributionStatDataResponseBody(TeaModel):
def __init__(self, request_id=None, usage_area_stat_list=None):
self.request_id = request_id # type: str
self.usage_area_stat_list = usage_area_stat_list # type: list[DescribeUsageAreaDistributionStatDataResponseBodyUsageAreaStatList]
def validate(self):
if self.usage_area_stat_list:
for k in self.usage_area_stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeUsageAreaDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['UsageAreaStatList'] = []
if self.usage_area_stat_list is not None:
for k in self.usage_area_stat_list:
result['UsageAreaStatList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.usage_area_stat_list = []
if m.get('UsageAreaStatList') is not None:
for k in m.get('UsageAreaStatList'):
temp_model = DescribeUsageAreaDistributionStatDataResponseBodyUsageAreaStatList()
self.usage_area_stat_list.append(temp_model.from_map(k))
return self
class DescribeUsageAreaDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeUsageAreaDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeUsageAreaDistributionStatDataResponse, self).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=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 = DescribeUsageAreaDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeUsageDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None, stat_dim=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
self.stat_dim = stat_dim # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
if self.stat_dim is not None:
result['StatDim'] = self.stat_dim
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
if m.get('StatDim') is not None:
self.stat_dim = m.get('StatDim')
return self
class DescribeUsageDistributionStatDataResponseBodyUsageStatList(TeaModel):
def __init__(self, audio_call_duration=None, call_duration_ratio=None, name=None, total_call_duration=None,
video_call_duration=None):
self.audio_call_duration = audio_call_duration # type: long
self.call_duration_ratio = call_duration_ratio # type: str
self.name = name # type: str
self.total_call_duration = total_call_duration # type: long
self.video_call_duration = video_call_duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageDistributionStatDataResponseBodyUsageStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_call_duration is not None:
result['AudioCallDuration'] = self.audio_call_duration
if self.call_duration_ratio is not None:
result['CallDurationRatio'] = self.call_duration_ratio
if self.name is not None:
result['Name'] = self.name
if self.total_call_duration is not None:
result['TotalCallDuration'] = self.total_call_duration
if self.video_call_duration is not None:
result['VideoCallDuration'] = self.video_call_duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioCallDuration') is not None:
self.audio_call_duration = m.get('AudioCallDuration')
if m.get('CallDurationRatio') is not None:
self.call_duration_ratio = m.get('CallDurationRatio')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('TotalCallDuration') is not None:
self.total_call_duration = m.get('TotalCallDuration')
if m.get('VideoCallDuration') is not None:
self.video_call_duration = m.get('VideoCallDuration')
return self
class DescribeUsageDistributionStatDataResponseBody(TeaModel):
def __init__(self, request_id=None, usage_stat_list=None):
self.request_id = request_id # type: str
self.usage_stat_list = usage_stat_list # type: list[DescribeUsageDistributionStatDataResponseBodyUsageStatList]
def validate(self):
if self.usage_stat_list:
for k in self.usage_stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeUsageDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['UsageStatList'] = []
if self.usage_stat_list is not None:
for k in self.usage_stat_list:
result['UsageStatList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.usage_stat_list = []
if m.get('UsageStatList') is not None:
for k in m.get('UsageStatList'):
temp_model = DescribeUsageDistributionStatDataResponseBodyUsageStatList()
self.usage_stat_list.append(temp_model.from_map(k))
return self
class DescribeUsageDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeUsageDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeUsageDistributionStatDataResponse, self).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=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 = DescribeUsageDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeUsageOsSdkVersionDistributionStatDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageOsSdkVersionDistributionStatDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
return self
class DescribeUsageOsSdkVersionDistributionStatDataResponseBodyUsageOsSdkVersionStatList(TeaModel):
def __init__(self, audio_call_duration=None, call_duration_ratio=None, name=None, os=None,
total_call_duration=None, video_call_duration=None):
self.audio_call_duration = audio_call_duration # type: long
self.call_duration_ratio = call_duration_ratio # type: str
self.name = name # type: str
self.os = os # type: str
self.total_call_duration = total_call_duration # type: long
self.video_call_duration = video_call_duration # type: long
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageOsSdkVersionDistributionStatDataResponseBodyUsageOsSdkVersionStatList, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audio_call_duration is not None:
result['AudioCallDuration'] = self.audio_call_duration
if self.call_duration_ratio is not None:
result['CallDurationRatio'] = self.call_duration_ratio
if self.name is not None:
result['Name'] = self.name
if self.os is not None:
result['Os'] = self.os
if self.total_call_duration is not None:
result['TotalCallDuration'] = self.total_call_duration
if self.video_call_duration is not None:
result['VideoCallDuration'] = self.video_call_duration
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AudioCallDuration') is not None:
self.audio_call_duration = m.get('AudioCallDuration')
if m.get('CallDurationRatio') is not None:
self.call_duration_ratio = m.get('CallDurationRatio')
if m.get('Name') is not None:
self.name = m.get('Name')
if m.get('Os') is not None:
self.os = m.get('Os')
if m.get('TotalCallDuration') is not None:
self.total_call_duration = m.get('TotalCallDuration')
if m.get('VideoCallDuration') is not None:
self.video_call_duration = m.get('VideoCallDuration')
return self
class DescribeUsageOsSdkVersionDistributionStatDataResponseBody(TeaModel):
def __init__(self, request_id=None, usage_os_sdk_version_stat_list=None):
self.request_id = request_id # type: str
self.usage_os_sdk_version_stat_list = usage_os_sdk_version_stat_list # type: list[DescribeUsageOsSdkVersionDistributionStatDataResponseBodyUsageOsSdkVersionStatList]
def validate(self):
if self.usage_os_sdk_version_stat_list:
for k in self.usage_os_sdk_version_stat_list:
if k:
k.validate()
def to_map(self):
_map = super(DescribeUsageOsSdkVersionDistributionStatDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['UsageOsSdkVersionStatList'] = []
if self.usage_os_sdk_version_stat_list is not None:
for k in self.usage_os_sdk_version_stat_list:
result['UsageOsSdkVersionStatList'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.usage_os_sdk_version_stat_list = []
if m.get('UsageOsSdkVersionStatList') is not None:
for k in m.get('UsageOsSdkVersionStatList'):
temp_model = DescribeUsageOsSdkVersionDistributionStatDataResponseBodyUsageOsSdkVersionStatList()
self.usage_os_sdk_version_stat_list.append(temp_model.from_map(k))
return self
class DescribeUsageOsSdkVersionDistributionStatDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeUsageOsSdkVersionDistributionStatDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeUsageOsSdkVersionDistributionStatDataResponse, self).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=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 = DescribeUsageOsSdkVersionDistributionStatDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DescribeUsageOverallDataRequest(TeaModel):
def __init__(self, app_id=None, end_date=None, start_date=None, types=None):
self.app_id = app_id # type: str
self.end_date = end_date # type: long
self.start_date = start_date # type: long
self.types = types # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageOverallDataRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.app_id is not None:
result['AppId'] = self.app_id
if self.end_date is not None:
result['EndDate'] = self.end_date
if self.start_date is not None:
result['StartDate'] = self.start_date
if self.types is not None:
result['Types'] = self.types
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AppId') is not None:
self.app_id = m.get('AppId')
if m.get('EndDate') is not None:
self.end_date = m.get('EndDate')
if m.get('StartDate') is not None:
self.start_date = m.get('StartDate')
if m.get('Types') is not None:
self.types = m.get('Types')
return self
class DescribeUsageOverallDataResponseBodyUsageOverallDataNodes(TeaModel):
def __init__(self, x=None, y=None):
self.x = x # type: str
self.y = y # type: str
def validate(self):
pass
def to_map(self):
_map = super(DescribeUsageOverallDataResponseBodyUsageOverallDataNodes, self).to_map()
if _map is not None:
return _map
result = dict()
if self.x is not None:
result['X'] = self.x
if self.y is not None:
result['Y'] = self.y
return result
def from_map(self, m=None):
m = m or dict()
if m.get('X') is not None:
self.x = m.get('X')
if m.get('Y') is not None:
self.y = m.get('Y')
return self
class DescribeUsageOverallDataResponseBodyUsageOverallData(TeaModel):
def __init__(self, nodes=None, type=None):
self.nodes = nodes # type: list[DescribeUsageOverallDataResponseBodyUsageOverallDataNodes]
self.type = type # type: str
def validate(self):
if self.nodes:
for k in self.nodes:
if k:
k.validate()
def to_map(self):
_map = super(DescribeUsageOverallDataResponseBodyUsageOverallData, self).to_map()
if _map is not None:
return _map
result = dict()
result['Nodes'] = []
if self.nodes is not None:
for k in self.nodes:
result['Nodes'].append(k.to_map() if k else None)
if self.type is not None:
result['Type'] = self.type
return result
def from_map(self, m=None):
m = m or dict()
self.nodes = []
if m.get('Nodes') is not None:
for k in m.get('Nodes'):
temp_model = DescribeUsageOverallDataResponseBodyUsageOverallDataNodes()
self.nodes.append(temp_model.from_map(k))
if m.get('Type') is not None:
self.type = m.get('Type')
return self
class DescribeUsageOverallDataResponseBody(TeaModel):
def __init__(self, request_id=None, usage_overall_data=None):
self.request_id = request_id # type: str
self.usage_overall_data = usage_overall_data # type: list[DescribeUsageOverallDataResponseBodyUsageOverallData]
def validate(self):
if self.usage_overall_data:
for k in self.usage_overall_data:
if k:
k.validate()
def to_map(self):
_map = super(DescribeUsageOverallDataResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.request_id is not None:
result['RequestId'] = self.request_id
result['UsageOverallData'] = []
if self.usage_overall_data is not None:
for k in self.usage_overall_data:
result['UsageOverallData'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
self.usage_overall_data = []
if m.get('UsageOverallData') is not None:
for k in m.get('UsageOverallData'):
temp_model = DescribeUsageOverallDataResponseBodyUsageOverallData()
self.usage_overall_data.append(temp_model.from_map(k))
return self
class DescribeUsageOverallDataResponse(TeaModel):
def __init__(self, headers=None, status_code=None, body=None):
self.headers = headers # type: dict[str, str]
self.status_code = status_code # type: int
self.body = body # type: DescribeUsageOverallDataResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DescribeUsageOverallDataResponse, self).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=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 = DescribeUsageOverallDataResponseBody()
self.body = temp_model.from_map(m['body'])
return self