dyvmsapi-20170525/alibabacloud_dyvmsapi20170525/models.py (6,893 lines of code) (raw):
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
from Tea.model import TeaModel
class AddVirtualNumberRelationRequest(TeaModel):
def __init__(self, corp_name_list=None, number_list=None, owner_id=None, phone_num=None, prod_code=None,
resource_owner_account=None, resource_owner_id=None, route_type=None):
# The company names. Separate multiple company names with commas (,).
self.corp_name_list = corp_name_list # type: str
# The real numbers. Separate multiple real numbers with commas (,).
self.number_list = number_list # type: str
self.owner_id = owner_id # type: long
# The virtual number.
self.phone_num = phone_num # type: str
# The service name. Default value: **dyvms**.
self.prod_code = prod_code # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The route type. Valid values:
#
# * **0**: number location first.
# * **1**: random.
self.route_type = route_type # type: int
def validate(self):
pass
def to_map(self):
_map = super(AddVirtualNumberRelationRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.corp_name_list is not None:
result['CorpNameList'] = self.corp_name_list
if self.number_list is not None:
result['NumberList'] = self.number_list
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.phone_num is not None:
result['PhoneNum'] = self.phone_num
if self.prod_code is not None:
result['ProdCode'] = self.prod_code
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.route_type is not None:
result['RouteType'] = self.route_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CorpNameList') is not None:
self.corp_name_list = m.get('CorpNameList')
if m.get('NumberList') is not None:
self.number_list = m.get('NumberList')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PhoneNum') is not None:
self.phone_num = m.get('PhoneNum')
if m.get('ProdCode') is not None:
self.prod_code = m.get('ProdCode')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('RouteType') is not None:
self.route_type = m.get('RouteType')
return self
class AddVirtualNumberRelationResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value 200 indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The numbers that failed to be associated.
#
# > If all numbers are associated, no value is returned for this parameter.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(AddVirtualNumberRelationResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class AddVirtualNumberRelationResponse(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: AddVirtualNumberRelationResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(AddVirtualNumberRelationResponse, 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 = AddVirtualNumberRelationResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class BatchRobotSmartCallRequest(TeaModel):
def __init__(self, called_number=None, called_show_number=None, corp_name=None, dialog_id=None,
early_media_asr=None, is_self_line=None, owner_id=None, resource_owner_account=None, resource_owner_id=None,
schedule_call=None, schedule_time=None, task_name=None, tts_param=None, tts_param_head=None):
# The called number. Only mobile phone numbers in the Chinese mainland are supported.
#
# You can set up to 1,000 called numbers and separate the numbers with commas (,).
self.called_number = called_number # type: str
# The number displayed to called parties, which must be a number you purchased. You can view the numbers you purchased in the [Voice Messaging Service console](https://dyvms.console.aliyun.com/dyvms.htm#/number/normal).
#
# You can set up to 100 numbers and separate the numbers with commas (,).
self.called_show_number = called_show_number # type: str
# The company name, which must be the same as the **company name** specified on the [qualification management page](https://dyvms.console.aliyun.com/dyvms.htm#/corp/normal).
#
# > This parameter is optional if **isSelfLine** is set to **true**.
self.corp_name = corp_name # type: str
# The ID of the robot or communication script that is used to initiate a call.
#
# You can obtain the **communication script ID** from the [Communication script management](https://dyvms.console.aliyun.com/dyvms.htm#/smart-call/saas/robot/list) page.
self.dialog_id = dialog_id # type: str
# The speech recognition identifier of early media. The default value is **false**, which means that the speech recognition identifier of early media is not enabled.
#
# Set the parameter to **true** if you want to enable the speech recognition identifier of early media.
self.early_media_asr = early_media_asr # type: bool
# Specifies whether to call the self-managed line. Default value: **false**.
self.is_self_line = is_self_line # type: bool
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# Specifies whether the call is scheduled. If you set this parameter to **true**, the **ScheduleTime** parameter is required.
self.schedule_call = schedule_call # type: bool
# The preset call time. This value is a UNIX timestamp. Unit: milliseconds.
#
# > This parameter is required only when **ScheduleCall** is set to **true**.
self.schedule_time = schedule_time # type: long
# The task name. The task name can be up to 30 characters in length.
self.task_name = task_name # type: str
# The variable value of the TTS template, in the JSON format.
#
# The variable value must correspond to a number. The TtsParam parameter must be used together with the TtsParamHead parameter.
self.tts_param = tts_param # type: str
# The call tasks with variables, in the JSON format.
#
# The parameter value is a list of variable names. The TtsParamHead parameter must be used together with the TtsParam parameter.
self.tts_param_head = tts_param_head # type: str
def validate(self):
pass
def to_map(self):
_map = super(BatchRobotSmartCallRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
if self.corp_name is not None:
result['CorpName'] = self.corp_name
if self.dialog_id is not None:
result['DialogId'] = self.dialog_id
if self.early_media_asr is not None:
result['EarlyMediaAsr'] = self.early_media_asr
if self.is_self_line is not None:
result['IsSelfLine'] = self.is_self_line
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.schedule_call is not None:
result['ScheduleCall'] = self.schedule_call
if self.schedule_time is not None:
result['ScheduleTime'] = self.schedule_time
if self.task_name is not None:
result['TaskName'] = self.task_name
if self.tts_param is not None:
result['TtsParam'] = self.tts_param
if self.tts_param_head is not None:
result['TtsParamHead'] = self.tts_param_head
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
if m.get('CorpName') is not None:
self.corp_name = m.get('CorpName')
if m.get('DialogId') is not None:
self.dialog_id = m.get('DialogId')
if m.get('EarlyMediaAsr') is not None:
self.early_media_asr = m.get('EarlyMediaAsr')
if m.get('IsSelfLine') is not None:
self.is_self_line = m.get('IsSelfLine')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('ScheduleCall') is not None:
self.schedule_call = m.get('ScheduleCall')
if m.get('ScheduleTime') is not None:
self.schedule_time = m.get('ScheduleTime')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
if m.get('TtsParam') is not None:
self.tts_param = m.get('TtsParam')
if m.get('TtsParamHead') is not None:
self.tts_param_head = m.get('TtsParamHead')
return self
class BatchRobotSmartCallResponseBody(TeaModel):
def __init__(self, code=None, message=None, request_id=None, task_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
# The unique ID of the robocall task. You can call the [QueryCallDetailByTaskId](~~393537~~) operation to query the details of the task based on the task ID.
self.task_id = task_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(BatchRobotSmartCallResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class BatchRobotSmartCallResponse(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: BatchRobotSmartCallResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(BatchRobotSmartCallResponse, 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 = BatchRobotSmartCallResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CancelOrderRobotTaskRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, task_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~393531~~) operation to obtain the ID of the robocall task.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(CancelOrderRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class CancelOrderRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(CancelOrderRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CancelOrderRobotTaskResponse(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: CancelOrderRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(CancelOrderRobotTaskResponse, 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 = CancelOrderRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CancelRobotTaskRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, task_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~393531~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(CancelRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class CancelRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(CancelRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CancelRobotTaskResponse(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: CancelRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(CancelRobotTaskResponse, 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 = CancelRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ChangeMediaTypeRequest(TeaModel):
def __init__(self, call_id=None, called_num=None, media_type=None, out_id=None, owner_id=None,
resource_owner_account=None, resource_owner_id=None):
self.call_id = call_id # type: str
self.called_num = called_num # type: str
self.media_type = media_type # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ChangeMediaTypeRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_num is not None:
result['CalledNum'] = self.called_num
if self.media_type is not None:
result['MediaType'] = self.media_type
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNum') is not None:
self.called_num = m.get('CalledNum')
if m.get('MediaType') is not None:
self.media_type = m.get('MediaType')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ChangeMediaTypeResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, message=None, model=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.message = message # type: str
self.model = model # type: bool
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(ChangeMediaTypeResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.model is not None:
result['Model'] = self.model
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Model') is not None:
self.model = m.get('Model')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class ChangeMediaTypeResponse(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: ChangeMediaTypeResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ChangeMediaTypeResponse, 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 = ChangeMediaTypeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateCallTaskRequest(TeaModel):
def __init__(self, biz_type=None, data=None, data_type=None, fire_time=None, owner_id=None, resource=None,
resource_owner_account=None, resource_owner_id=None, resource_type=None, schedule_type=None, stop_time=None,
task_name=None, template_code=None, template_name=None):
# The type of the task template. Valid values:
#
# * **VMS_VOICE_TTS**: the text-to-speech (TTS) notification template.
# * **VMS_VOICE_CODE**: the voice notification template.
# * **VMS_TTS**: the voice verification code template.
self.biz_type = biz_type # type: str
# The called numbers.
#
# * If you set DataType to LIST, the value of Data is in the LIST format.
# * If you set DataType to JSON, the value of Data is in the JSON format.
self.data = data # type: str
# The type of called numbers. Valid values:
#
# * **LIST**: the called numbers that are separated by commas (,).
# * **JSON**: a JSON-formatted list of called numbers with template parameters.
self.data_type = data_type # type: str
# This parameter is unavailable.
self.fire_time = fire_time # type: str
self.owner_id = owner_id # type: long
# The calling number. Only virtual numbers are supported.
self.resource = resource # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The type of the calling number. Set the value to **LIST**.
self.resource_type = resource_type # type: str
# This parameter is unavailable.
self.schedule_type = schedule_type # type: str
# This parameter is unavailable.
self.stop_time = stop_time # type: str
# The task name.
self.task_name = task_name # type: str
# The template ID.
self.template_code = template_code # type: str
# The template name.
self.template_name = template_name # type: str
def validate(self):
pass
def to_map(self):
_map = super(CreateCallTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.data is not None:
result['Data'] = self.data
if self.data_type is not None:
result['DataType'] = self.data_type
if self.fire_time is not None:
result['FireTime'] = self.fire_time
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource is not None:
result['Resource'] = self.resource
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.resource_type is not None:
result['ResourceType'] = self.resource_type
if self.schedule_type is not None:
result['ScheduleType'] = self.schedule_type
if self.stop_time is not None:
result['StopTime'] = self.stop_time
if self.task_name is not None:
result['TaskName'] = self.task_name
if self.template_code is not None:
result['TemplateCode'] = self.template_code
if self.template_name is not None:
result['TemplateName'] = self.template_name
return result
def from_map(self, m=None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('DataType') is not None:
self.data_type = m.get('DataType')
if m.get('FireTime') is not None:
self.fire_time = m.get('FireTime')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Resource') is not None:
self.resource = m.get('Resource')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('ResourceType') is not None:
self.resource_type = m.get('ResourceType')
if m.get('ScheduleType') is not None:
self.schedule_type = m.get('ScheduleType')
if m.get('StopTime') is not None:
self.stop_time = m.get('StopTime')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
if m.get('TemplateCode') is not None:
self.template_code = m.get('TemplateCode')
if m.get('TemplateName') is not None:
self.template_name = m.get('TemplateName')
return self
class CreateCallTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, request_id=None):
# The response code.
self.code = code # type: str
# The task ID.
self.data = data # type: long
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(CreateCallTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.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('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateCallTaskResponse(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: CreateCallTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(CreateCallTaskResponse, 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 = CreateCallTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class CreateRobotTaskRequest(TeaModel):
def __init__(self, caller=None, corp_name=None, dialog_id=None, is_self_line=None, number_status_ident=None,
owner_id=None, recall_interval=None, recall_state_codes=None, recall_times=None,
resource_owner_account=None, resource_owner_id=None, retry_type=None, task_name=None):
# The calling number.
#
# You must use the phone numbers that you have purchased and separate multiple numbers with commas (,). You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Real Number Service** > **Real Number Management** to view the numbers you purchased.
self.caller = caller # type: str
# The company name, which must be the same as the **enterprise name** on the qualification management page.
self.corp_name = corp_name # type: str
# The ID of the robot or communication script that is used to initiate the call.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Intelligent Voice Robot** > **Communication Script Management** to view the communication script ID.
self.dialog_id = dialog_id # type: long
# Specifies whether to call the self-managed line. Valid values:
#
# * **false** (default)
# * **true**\
#
# > If you set this parameter to **true**, calling numbers are not verified.
self.is_self_line = is_self_line # type: bool
# Specifies whether to enable number status identification. Valid values:
#
# * **false** (default)
# * **true**\
#
# > If you set this parameter to **true**, the reason why a call is not answered is recorded.
self.number_status_ident = number_status_ident # type: bool
self.owner_id = owner_id # type: long
# The redial interval. Unit: minutes. The value must be greater than 1.
#
# > The maximum redial interval is 30 minutes.
self.recall_interval = recall_interval # type: int
# The call state in which redial is required. Separate multiple call states with commas (,). Valid values:
#
# * **200010**: The phone of the called party is powered off.
# * **200011**: The number of the called party is out of service.
# * **200002**: The line is busy.
# * **200012**: The call is lost.
# * **200005**: The called party cannot be connected.
# * **200003**: The called party does not respond to the call.
self.recall_state_codes = recall_state_codes # type: str
# The number of redial times.
self.recall_times = recall_times # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# Specifies whether to enable auto-redial. Valid values:
#
# * **1**: enables auto-redial.
# * **0**: disables auto-redial.
self.retry_type = retry_type # type: int
# The task name. The task name can be up to 30 characters in length.
self.task_name = task_name # type: str
def validate(self):
pass
def to_map(self):
_map = super(CreateRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.caller is not None:
result['Caller'] = self.caller
if self.corp_name is not None:
result['CorpName'] = self.corp_name
if self.dialog_id is not None:
result['DialogId'] = self.dialog_id
if self.is_self_line is not None:
result['IsSelfLine'] = self.is_self_line
if self.number_status_ident is not None:
result['NumberStatusIdent'] = self.number_status_ident
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.recall_interval is not None:
result['RecallInterval'] = self.recall_interval
if self.recall_state_codes is not None:
result['RecallStateCodes'] = self.recall_state_codes
if self.recall_times is not None:
result['RecallTimes'] = self.recall_times
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.retry_type is not None:
result['RetryType'] = self.retry_type
if self.task_name is not None:
result['TaskName'] = self.task_name
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Caller') is not None:
self.caller = m.get('Caller')
if m.get('CorpName') is not None:
self.corp_name = m.get('CorpName')
if m.get('DialogId') is not None:
self.dialog_id = m.get('DialogId')
if m.get('IsSelfLine') is not None:
self.is_self_line = m.get('IsSelfLine')
if m.get('NumberStatusIdent') is not None:
self.number_status_ident = m.get('NumberStatusIdent')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('RecallInterval') is not None:
self.recall_interval = m.get('RecallInterval')
if m.get('RecallStateCodes') is not None:
self.recall_state_codes = m.get('RecallStateCodes')
if m.get('RecallTimes') is not None:
self.recall_times = m.get('RecallTimes')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('RetryType') is not None:
self.retry_type = m.get('RetryType')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
return self
class CreateRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The unique ID of the robocall task.
#
# You can call the [QueryRobotTaskDetail](~~393538~~) operation to query the details of the task based on the task ID.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(CreateRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class CreateRobotTaskResponse(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: CreateRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(CreateRobotTaskResponse, 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 = CreateRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DegradeVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, media_type=None, out_id=None, owner_id=None,
resource_owner_account=None, resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.media_type = media_type # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(DegradeVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.media_type is not None:
result['MediaType'] = self.media_type
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('MediaType') is not None:
self.media_type = m.get('MediaType')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class DegradeVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(DegradeVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class DegradeVideoFileResponse(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: DegradeVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DegradeVideoFileResponse, 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 = DegradeVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class DeleteRobotTaskRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, task_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~CreateRobotTask~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(DeleteRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class DeleteRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(DeleteRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class DeleteRobotTaskResponse(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: DeleteRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(DeleteRobotTaskResponse, 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 = DeleteRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ExecuteCallTaskRequest(TeaModel):
def __init__(self, fire_time=None, owner_id=None, resource_owner_account=None, resource_owner_id=None,
status=None, task_id=None):
# The time when the call task is executed, in the yyyy-MM-dd HH:mm:ss format.
#
# > You can leave this parameter empty.
self.fire_time = fire_time # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The task state. Valid values:
#
# * **RUNNING**\
# * **STOP**\
# * **CANCEL**\
self.status = status # type: str
# The task ID. You can call the [CreateCallTask](~~CreateCallTask~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ExecuteCallTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.fire_time is not None:
result['FireTime'] = self.fire_time
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.status is not None:
result['Status'] = self.status
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('FireTime') is not None:
self.fire_time = m.get('FireTime')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class ExecuteCallTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, request_id=None):
# The response code.
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: bool
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(ExecuteCallTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.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('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ExecuteCallTaskResponse(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: ExecuteCallTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ExecuteCallTaskResponse, 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 = ExecuteCallTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetCallMediaTypeRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(GetCallMediaTypeRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class GetCallMediaTypeResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(GetCallMediaTypeResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class GetCallMediaTypeResponse(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: GetCallMediaTypeResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetCallMediaTypeResponse, 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 = GetCallMediaTypeResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetCallProgressRequest(TeaModel):
def __init__(self, call_id=None, called_num=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None):
self.call_id = call_id # type: str
self.called_num = called_num # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(GetCallProgressRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_num is not None:
result['CalledNum'] = self.called_num
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNum') is not None:
self.called_num = m.get('CalledNum')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class GetCallProgressResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, message=None, model=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.message = message # type: str
self.model = model # type: dict[str, any]
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(GetCallProgressResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.model is not None:
result['Model'] = self.model
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Model') is not None:
self.model = m.get('Model')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class GetCallProgressResponse(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: GetCallProgressResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetCallProgressResponse, 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 = GetCallProgressResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetHotlineQualificationByOrderRequest(TeaModel):
def __init__(self, order_id=None, owner_id=None, resource_owner_account=None, resource_owner_id=None):
# The ticket ID.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Qualification\&Communication Script Management** > **Qualification Management**, and then click the **400 Qualifications** tab to view the ticket ID.
self.order_id = order_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(GetHotlineQualificationByOrderRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.order_id is not None:
result['OrderId'] = self.order_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OrderId') is not None:
self.order_id = m.get('OrderId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class GetHotlineQualificationByOrderResponseBodyData(TeaModel):
def __init__(self, order_id=None, qualification_id=None, status=None):
# The ID of the qualification application ticket.
self.order_id = order_id # type: str
# The qualification ID.
self.qualification_id = qualification_id # type: str
# The qualification state. Valid values:
#
# * **NORMAL**\
# * **OTHER**\
self.status = status # type: str
def validate(self):
pass
def to_map(self):
_map = super(GetHotlineQualificationByOrderResponseBodyData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.order_id is not None:
result['OrderId'] = self.order_id
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.status is not None:
result['Status'] = self.status
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OrderId') is not None:
self.order_id = m.get('OrderId')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class GetHotlineQualificationByOrderResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The response parameters.
self.data = data # type: GetHotlineQualificationByOrderResponseBodyData
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super(GetHotlineQualificationByOrderResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = GetHotlineQualificationByOrderResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class GetHotlineQualificationByOrderResponse(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: GetHotlineQualificationByOrderResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetHotlineQualificationByOrderResponse, 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 = GetHotlineQualificationByOrderResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetTemporaryFileUrlRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, video_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
self.video_id = video_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(GetTemporaryFileUrlRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.video_id is not None:
result['VideoId'] = self.video_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('VideoId') is not None:
self.video_id = m.get('VideoId')
return self
class GetTemporaryFileUrlResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, request_id=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.request_id = request_id # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(GetTemporaryFileUrlResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class GetTemporaryFileUrlResponse(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: GetTemporaryFileUrlResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetTemporaryFileUrlResponse, 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 = GetTemporaryFileUrlResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetTokenRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, token_type=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The token type.
self.token_type = token_type # type: str
def validate(self):
pass
def to_map(self):
_map = super(GetTokenRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.token_type is not None:
result['TokenType'] = self.token_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TokenType') is not None:
self.token_type = m.get('TokenType')
return self
class GetTokenResponseBody(TeaModel):
def __init__(self, code=None, message=None, request_id=None, success=None, token=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
# Indicates whether the request was successful.
self.success = success # type: bool
# The token.
self.token = token # type: str
def validate(self):
pass
def to_map(self):
_map = super(GetTokenResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.success is not None:
result['Success'] = self.success
if self.token is not None:
result['Token'] = self.token
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Success') is not None:
self.success = m.get('Success')
if m.get('Token') is not None:
self.token = m.get('Token')
return self
class GetTokenResponse(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: GetTokenResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetTokenResponse, 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 = GetTokenResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class GetVideoFieldUrlRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, video_file=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
self.video_file = video_file # type: str
def validate(self):
pass
def to_map(self):
_map = super(GetVideoFieldUrlRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.video_file is not None:
result['VideoFile'] = self.video_file
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('VideoFile') is not None:
self.video_file = m.get('VideoFile')
return self
class GetVideoFieldUrlResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, message=None, model=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.message = message # type: str
self.model = model # type: dict[str, any]
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(GetVideoFieldUrlResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.model is not None:
result['Model'] = self.model
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Model') is not None:
self.model = m.get('Model')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class GetVideoFieldUrlResponse(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: GetVideoFieldUrlResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(GetVideoFieldUrlResponse, 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 = GetVideoFieldUrlResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class IvrCallRequestMenuKeyMap(TeaModel):
def __init__(self, code=None, key=None, tts_params=None):
# The voice that corresponds to the key specified by the **MenuKeyMap.N.Key** parameter.
#
# * If you use a voice notification file, this parameter specifies the voice ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications**, and then click the **Voice Notification Files** tab to view the voice ID.
# * If you use a TTS template, this parameter specifies the template ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications**, and then click the **TTS Template** tab to view the template ID.
self.code = code # type: str
# The key that can be pressed by the subscriber.
self.key = key # type: str
# The variables in the TTS template, in the JSON format.
#
# >
#
# * This parameter specifies the substitution relationship of the variables in the TTS template if the value of the **MenuKeyMap.N.Code** parameter is set to the ID of the TTS template.
#
# * This parameter is required if the value of the **MenuKeyMap.N.Code** parameter is set to the ID of a TTS template that contains variables.
self.tts_params = tts_params # type: str
def validate(self):
pass
def to_map(self):
_map = super(IvrCallRequestMenuKeyMap, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.key is not None:
result['Key'] = self.key
if self.tts_params is not None:
result['TtsParams'] = self.tts_params
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Key') is not None:
self.key = m.get('Key')
if m.get('TtsParams') is not None:
self.tts_params = m.get('TtsParams')
return self
class IvrCallRequest(TeaModel):
def __init__(self, bye_code=None, bye_tts_params=None, called_number=None, called_show_number=None,
menu_key_map=None, out_id=None, owner_id=None, play_times=None, resource_owner_account=None,
resource_owner_id=None, start_code=None, start_tts_params=None, timeout=None):
# The end voice.
#
# * If you use a voice notification file, this parameter specifies the voice ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications**, and then click the **Voice Notification Files** tab to view the voice ID.
# * If you use a TTS template, this parameter specifies the template ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications**, and then click the **TTS Template** tab to view the template ID.
#
# > The value of the ByeCode parameter must be of the same type as the value of the StartCode parameter. This means that both parameters must specify voice IDs or TTS template IDs.
self.bye_code = bye_code # type: str
# The variables in the TTS template, in the JSON format.
#
# > This parameter is required when the ByeCode parameter is set to the ID of a TTS template that contains variables.
self.bye_tts_params = bye_tts_params # type: str
# The called number.
#
# Only phone numbers in the Chinese mainland are supported. Each request supports only one called number.
self.called_number = called_number # type: str
# The calling number.
#
# The value must be a number you purchased. Each request supports only one calling number. In most cases, a calling number is configured with the maximum number of concurrent requests. New requests fail if the maximum number of concurrent requests is reached. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Real Number Service > Real Number Management** to view the number you purchased.
self.called_show_number = called_show_number # type: str
# The information about the key pressed by the subscriber.
self.menu_key_map = menu_key_map # type: list[IvrCallRequestMenuKeyMap]
# The ID that is reserved for the caller of the operation. This ID is returned to the caller in a receipt message.
#
# The value is of the STRING type and must be 1 to 15 bytes in length.
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
# The number of replay times. Valid values: 1 to 3.
self.play_times = play_times # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The voice that is played when the call begins.
#
# * If you use a voice notification file, this parameter specifies the voice ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > Voice Notifications, and then click the **Voice Notification Files** tab to view the voice ID.
# * If you use a text-to-speech (TTS) template, this parameter specifies the template ID. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications**, and then click the **TTS Template** tab to view the template ID.
self.start_code = start_code # type: str
# The variables in the TTS template, in the JSON format.
#
# > This parameter is required when the StartCode parameter is set to the ID of a TTS template that contains variables.
self.start_tts_params = start_tts_params # type: str
# The timeout period for the subscriber to press a key. Unit: milliseconds.
self.timeout = timeout # type: int
def validate(self):
if self.menu_key_map:
for k in self.menu_key_map:
if k:
k.validate()
def to_map(self):
_map = super(IvrCallRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.bye_code is not None:
result['ByeCode'] = self.bye_code
if self.bye_tts_params is not None:
result['ByeTtsParams'] = self.bye_tts_params
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
result['MenuKeyMap'] = []
if self.menu_key_map is not None:
for k in self.menu_key_map:
result['MenuKeyMap'].append(k.to_map() if k else None)
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.play_times is not None:
result['PlayTimes'] = self.play_times
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.start_code is not None:
result['StartCode'] = self.start_code
if self.start_tts_params is not None:
result['StartTtsParams'] = self.start_tts_params
if self.timeout is not None:
result['Timeout'] = self.timeout
return result
def from_map(self, m=None):
m = m or dict()
if m.get('ByeCode') is not None:
self.bye_code = m.get('ByeCode')
if m.get('ByeTtsParams') is not None:
self.bye_tts_params = m.get('ByeTtsParams')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
self.menu_key_map = []
if m.get('MenuKeyMap') is not None:
for k in m.get('MenuKeyMap'):
temp_model = IvrCallRequestMenuKeyMap()
self.menu_key_map.append(temp_model.from_map(k))
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PlayTimes') is not None:
self.play_times = m.get('PlayTimes')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('StartCode') is not None:
self.start_code = m.get('StartCode')
if m.get('StartTtsParams') is not None:
self.start_tts_params = m.get('StartTtsParams')
if m.get('Timeout') is not None:
self.timeout = m.get('Timeout')
return self
class IvrCallResponseBody(TeaModel):
def __init__(self, call_id=None, code=None, message=None, request_id=None):
# The unique receipt ID of the call.
#
# You can call the [QueryCallDetailByCallId](~~393529~~) operation to query the details of the call based on the receipt ID.
self.call_id = call_id # type: str
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(IvrCallResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class IvrCallResponse(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: IvrCallResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(IvrCallResponse, 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 = IvrCallResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListCallTaskRequest(TeaModel):
def __init__(self, biz_type=None, owner_id=None, page_number=None, page_size=None, resource_owner_account=None,
resource_owner_id=None, status=None, task_id=None, task_name=None, template_name=None):
# The type of the task template. Valid values:
#
# * **VMS_VOICE_TTS**: the text-to-speech (TTS) notification template.
# * **VMS_VOICE_CODE**: the voice notification template.
# * **VMS_TTS**: the voice verification code template.
self.biz_type = biz_type # type: str
self.owner_id = owner_id # type: long
# The page number. Default value: **1**.
self.page_number = page_number # type: int
# The number of entries per page. Default value: **10**.
self.page_size = page_size # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The task state. Valid values:
#
# * **INIT**: The task is in the initial state.
# * **RELEASE**: The task is being parsed.
# * **RUNNING**: The task is running.
# * **STOP**: The task is suspended.
# * **SYSTEM_STOP**: The task is suspended by the system.
# * **CANCEL**: The task is canceled.
# * **SYSTEM_CANCEL**: The task is canceled by the system.
# * **DONE**: The task is complete.
self.status = status # type: str
# The task ID.
self.task_id = task_id # type: str
# The task name.
self.task_name = task_name # type: str
# The template name.
self.template_name = template_name # type: str
def validate(self):
pass
def to_map(self):
_map = super(ListCallTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_number is not None:
result['PageNumber'] = self.page_number
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.status is not None:
result['Status'] = self.status
if self.task_id is not None:
result['TaskId'] = self.task_id
if self.task_name is not None:
result['TaskName'] = self.task_name
if self.template_name is not None:
result['TemplateName'] = self.template_name
return result
def from_map(self, m=None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PageNumber') is not None:
self.page_number = m.get('PageNumber')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
if m.get('TemplateName') is not None:
self.template_name = m.get('TemplateName')
return self
class ListCallTaskResponseBodyData(TeaModel):
def __init__(self, biz_type=None, complete_time=None, completed_count=None, completed_rate=None, data=None,
data_type=None, fire_time=None, id=None, resource=None, status=None, stop_time=None, task_name=None,
template_code=None, template_name=None, total_count=None):
# The type of the task template. Valid values:
#
# * **VMS_VOICE_TTS**: the TTS notification template.
# * **VMS_VOICE_CODE**: the voice notification template.
# * **VMS_TTS**: the voice verification code template.
self.biz_type = biz_type # type: str
# The time when the task was completed. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.
self.complete_time = complete_time # type: str
# The number of tasks that were complete.
self.completed_count = completed_count # type: long
# The task progress.
self.completed_rate = completed_rate # type: int
# This parameter is unavailable.
self.data = data # type: str
# The type of the called number.
self.data_type = data_type # type: str
# The time when the scheduled task was started. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.
self.fire_time = fire_time # type: str
# The task ID.
self.id = id # type: long
# The calling number.
self.resource = resource # type: str
# The task state. Valid values:
#
# * **INIT**: The task was in the initial state.
# * **RELEASE**: The task was being parsed.
# * **RUNNING**: The task was running.
# * **STOP**: The task was manually suspended.
# * **SYSTEM_STOP**: The task was suspended by the system.
# * **CANCEL**: The task was manually canceled.
# * **SYSTEM_CANCEL**: The task was canceled by the system.
# * **DONE**: The task was complete.
self.status = status # type: str
# This parameter is unavailable.
self.stop_time = stop_time # type: str
# The task name.
self.task_name = task_name # type: str
# The ID of the voice template.
self.template_code = template_code # type: str
# The template name.
self.template_name = template_name # type: str
# The total number of called numbers.
self.total_count = total_count # type: long
def validate(self):
pass
def to_map(self):
_map = super(ListCallTaskResponseBodyData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.complete_time is not None:
result['CompleteTime'] = self.complete_time
if self.completed_count is not None:
result['CompletedCount'] = self.completed_count
if self.completed_rate is not None:
result['CompletedRate'] = self.completed_rate
if self.data is not None:
result['Data'] = self.data
if self.data_type is not None:
result['DataType'] = self.data_type
if self.fire_time is not None:
result['FireTime'] = self.fire_time
if self.id is not None:
result['Id'] = self.id
if self.resource is not None:
result['Resource'] = self.resource
if self.status is not None:
result['Status'] = self.status
if self.stop_time is not None:
result['StopTime'] = self.stop_time
if self.task_name is not None:
result['TaskName'] = self.task_name
if self.template_code is not None:
result['TemplateCode'] = self.template_code
if self.template_name is not None:
result['TemplateName'] = self.template_name
if self.total_count is not None:
result['TotalCount'] = self.total_count
return result
def from_map(self, m=None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('CompleteTime') is not None:
self.complete_time = m.get('CompleteTime')
if m.get('CompletedCount') is not None:
self.completed_count = m.get('CompletedCount')
if m.get('CompletedRate') is not None:
self.completed_rate = m.get('CompletedRate')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('DataType') is not None:
self.data_type = m.get('DataType')
if m.get('FireTime') is not None:
self.fire_time = m.get('FireTime')
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('Resource') is not None:
self.resource = m.get('Resource')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('StopTime') is not None:
self.stop_time = m.get('StopTime')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
if m.get('TemplateCode') is not None:
self.template_code = m.get('TemplateCode')
if m.get('TemplateName') is not None:
self.template_name = m.get('TemplateName')
if m.get('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class ListCallTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, page_number=None, page_size=None, request_id=None, total=None):
# The response code.
self.code = code # type: str
# The task information.
self.data = data # type: list[ListCallTaskResponseBodyData]
# The page number.
self.page_number = page_number # type: long
# The number of entries per page.
self.page_size = page_size # type: long
# The request ID.
self.request_id = request_id # type: str
# The total number of tasks.
self.total = total # type: long
def validate(self):
if self.data:
for k in self.data:
if k:
k.validate()
def to_map(self):
_map = super(ListCallTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
result['Data'] = []
if self.data is not None:
for k in self.data:
result['Data'].append(k.to_map() if k else None)
if self.page_number is not None:
result['PageNumber'] = self.page_number
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.total is not None:
result['Total'] = self.total
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
self.data = []
if m.get('Data') is not None:
for k in m.get('Data'):
temp_model = ListCallTaskResponseBodyData()
self.data.append(temp_model.from_map(k))
if m.get('PageNumber') is not None:
self.page_number = m.get('PageNumber')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Total') is not None:
self.total = m.get('Total')
return self
class ListCallTaskResponse(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: ListCallTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ListCallTaskResponse, 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 = ListCallTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListCallTaskDetailRequest(TeaModel):
def __init__(self, called_num=None, owner_id=None, page_number=None, page_size=None,
resource_owner_account=None, resource_owner_id=None, status=None, task_id=None):
# The called number.
self.called_num = called_num # type: str
self.owner_id = owner_id # type: long
# The page number. Default value: **1**.
self.page_number = page_number # type: int
# The number of entries per page. Default value: **10**.
self.page_size = page_size # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The task state. Valid values:
#
# * **SUCCESS**: The task is successful.
# * **FAIL**: The task fails.
# * **INIT**: The task is not started.
self.status = status # type: str
# The task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ListCallTaskDetailRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_num is not None:
result['CalledNum'] = self.called_num
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_number is not None:
result['PageNumber'] = self.page_number
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.status is not None:
result['Status'] = self.status
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNum') is not None:
self.called_num = m.get('CalledNum')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PageNumber') is not None:
self.page_number = m.get('PageNumber')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class ListCallTaskDetailResponseBodyData(TeaModel):
def __init__(self, called_num=None, caller=None, duration=None, id=None, status=None):
# The called number.
self.called_num = called_num # type: str
# The calling number.
self.caller = caller # type: str
# The call duration. Unit: seconds.
self.duration = duration # type: long
# This parameter is unavailable.
self.id = id # type: long
# The task state. Valid values:
#
# * **SUCCESS**: The task was successful.
# * **FAIL**: The task failed.
# * **INIT**: The task was not started.
self.status = status # type: str
def validate(self):
pass
def to_map(self):
_map = super(ListCallTaskDetailResponseBodyData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_num is not None:
result['CalledNum'] = self.called_num
if self.caller is not None:
result['Caller'] = self.caller
if self.duration is not None:
result['Duration'] = self.duration
if self.id is not None:
result['Id'] = self.id
if self.status is not None:
result['Status'] = self.status
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNum') is not None:
self.called_num = m.get('CalledNum')
if m.get('Caller') is not None:
self.caller = m.get('Caller')
if m.get('Duration') is not None:
self.duration = m.get('Duration')
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class ListCallTaskDetailResponseBody(TeaModel):
def __init__(self, code=None, data=None, page_number=None, page_size=None, request_id=None, total=None,
total_page=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The information about the task.
self.data = data # type: list[ListCallTaskDetailResponseBodyData]
# The page number.
self.page_number = page_number # type: long
# The number of entries per page.
self.page_size = page_size # type: long
# The request ID.
self.request_id = request_id # type: str
# The total number of called numbers.
self.total = total # type: long
# The total number of pages.
self.total_page = total_page # type: long
def validate(self):
if self.data:
for k in self.data:
if k:
k.validate()
def to_map(self):
_map = super(ListCallTaskDetailResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
result['Data'] = []
if self.data is not None:
for k in self.data:
result['Data'].append(k.to_map() if k else None)
if self.page_number is not None:
result['PageNumber'] = self.page_number
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.total is not None:
result['Total'] = self.total
if self.total_page is not None:
result['TotalPage'] = self.total_page
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
self.data = []
if m.get('Data') is not None:
for k in m.get('Data'):
temp_model = ListCallTaskDetailResponseBodyData()
self.data.append(temp_model.from_map(k))
if m.get('PageNumber') is not None:
self.page_number = m.get('PageNumber')
if m.get('PageSize') is not None:
self.page_size = m.get('PageSize')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Total') is not None:
self.total = m.get('Total')
if m.get('TotalPage') is not None:
self.total_page = m.get('TotalPage')
return self
class ListCallTaskDetailResponse(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: ListCallTaskDetailResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ListCallTaskDetailResponse, 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 = ListCallTaskDetailResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListHotlineTransferNumberRequest(TeaModel):
def __init__(self, hotline_number=None, owner_id=None, page_no=None, page_size=None, qualification_id=None,
resource_owner_account=None, resource_owner_id=None):
# The China 400 number.
self.hotline_number = hotline_number # type: str
self.owner_id = owner_id # type: long
# The page number. Default value: **1**.
self.page_no = page_no # type: int
# The number of entries per page. Valid values: 1 to 10.
self.page_size = page_size # type: int
# The qualification ID. You can call the [GetHotlineQualificationByOrder](~~393548~~) operation to obtain the qualification ID.
self.qualification_id = qualification_id # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ListHotlineTransferNumberRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.hotline_number is not None:
result['HotlineNumber'] = self.hotline_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('HotlineNumber') is not None:
self.hotline_number = m.get('HotlineNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListHotlineTransferNumberResponseBodyDataValues(TeaModel):
def __init__(self, hotline_number=None, identity_card=None, number_owner_name=None, phone_number=None,
qualification_id=None, res_unique_code=None):
# The China 400 number.
self.hotline_number = hotline_number # type: str
# The ID card number of the number owner.
self.identity_card = identity_card # type: str
# The real name of the number owner or the company name.
self.number_owner_name = number_owner_name # type: str
# The registered phone number.
self.phone_number = phone_number # type: str
# The qualification ID.
self.qualification_id = qualification_id # type: str
# The resource code.
self.res_unique_code = res_unique_code # type: str
def validate(self):
pass
def to_map(self):
_map = super(ListHotlineTransferNumberResponseBodyDataValues, self).to_map()
if _map is not None:
return _map
result = dict()
if self.hotline_number is not None:
result['HotlineNumber'] = self.hotline_number
if self.identity_card is not None:
result['IdentityCard'] = self.identity_card
if self.number_owner_name is not None:
result['NumberOwnerName'] = self.number_owner_name
if self.phone_number is not None:
result['PhoneNumber'] = self.phone_number
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.res_unique_code is not None:
result['ResUniqueCode'] = self.res_unique_code
return result
def from_map(self, m=None):
m = m or dict()
if m.get('HotlineNumber') is not None:
self.hotline_number = m.get('HotlineNumber')
if m.get('IdentityCard') is not None:
self.identity_card = m.get('IdentityCard')
if m.get('NumberOwnerName') is not None:
self.number_owner_name = m.get('NumberOwnerName')
if m.get('PhoneNumber') is not None:
self.phone_number = m.get('PhoneNumber')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResUniqueCode') is not None:
self.res_unique_code = m.get('ResUniqueCode')
return self
class ListHotlineTransferNumberResponseBodyData(TeaModel):
def __init__(self, page_no=None, page_size=None, total=None, values=None):
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
# The total number of entries returned.
self.total = total # type: long
# The phone numbers.
self.values = values # type: list[ListHotlineTransferNumberResponseBodyDataValues]
def validate(self):
if self.values:
for k in self.values:
if k:
k.validate()
def to_map(self):
_map = super(ListHotlineTransferNumberResponseBodyData, 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.total is not None:
result['Total'] = self.total
result['Values'] = []
if self.values is not None:
for k in self.values:
result['Values'].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('Total') is not None:
self.total = m.get('Total')
self.values = []
if m.get('Values') is not None:
for k in m.get('Values'):
temp_model = ListHotlineTransferNumberResponseBodyDataValues()
self.values.append(temp_model.from_map(k))
return self
class ListHotlineTransferNumberResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The information about the registered phone number.
self.data = data # type: ListHotlineTransferNumberResponseBodyData
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super(ListHotlineTransferNumberResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = ListHotlineTransferNumberResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListHotlineTransferNumberResponse(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: ListHotlineTransferNumberResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ListHotlineTransferNumberResponse, 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 = ListHotlineTransferNumberResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ListHotlineTransferRegisterFileRequest(TeaModel):
def __init__(self, hotline_number=None, owner_id=None, page_no=None, page_size=None, qualification_id=None,
resource_owner_account=None, resource_owner_id=None):
# The China 400 number.
self.hotline_number = hotline_number # type: str
self.owner_id = owner_id # type: long
# The page number. Default value: **1**.
self.page_no = page_no # type: int
# The number of entries per page. Valid values: 1 to 10.
self.page_size = page_size # type: int
# The qualification ID. You can call the [GetHotlineQualificationByOrder](~~393548~~) operation to obtain the qualification ID.
self.qualification_id = qualification_id # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ListHotlineTransferRegisterFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.hotline_number is not None:
result['HotlineNumber'] = self.hotline_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('HotlineNumber') is not None:
self.hotline_number = m.get('HotlineNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ListHotlineTransferRegisterFileResponseBodyDataValues(TeaModel):
def __init__(self, agree=None, corp_name=None, hotline_number=None, mng_op_identity_card=None, mng_op_mail=None,
mng_op_mobile=None, mng_op_name=None, qualification_id=None, res_unique_code=None):
# The authenticity of the commitment.
self.agree = agree # type: str
# The enterprise name.
self.corp_name = corp_name # type: str
# The China 400 number.
self.hotline_number = hotline_number # type: str
# The ID card number of the handler.
self.mng_op_identity_card = mng_op_identity_card # type: str
# The email address of the handler.
self.mng_op_mail = mng_op_mail # type: str
# The mobile phone number of the handler.
self.mng_op_mobile = mng_op_mobile # type: str
# The name of the handler.
self.mng_op_name = mng_op_name # type: str
# The qualification ID.
self.qualification_id = qualification_id # type: str
# The unique code of the query operation.
self.res_unique_code = res_unique_code # type: long
def validate(self):
pass
def to_map(self):
_map = super(ListHotlineTransferRegisterFileResponseBodyDataValues, self).to_map()
if _map is not None:
return _map
result = dict()
if self.agree is not None:
result['Agree'] = self.agree
if self.corp_name is not None:
result['CorpName'] = self.corp_name
if self.hotline_number is not None:
result['HotlineNumber'] = self.hotline_number
if self.mng_op_identity_card is not None:
result['MngOpIdentityCard'] = self.mng_op_identity_card
if self.mng_op_mail is not None:
result['MngOpMail'] = self.mng_op_mail
if self.mng_op_mobile is not None:
result['MngOpMobile'] = self.mng_op_mobile
if self.mng_op_name is not None:
result['MngOpName'] = self.mng_op_name
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.res_unique_code is not None:
result['ResUniqueCode'] = self.res_unique_code
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Agree') is not None:
self.agree = m.get('Agree')
if m.get('CorpName') is not None:
self.corp_name = m.get('CorpName')
if m.get('HotlineNumber') is not None:
self.hotline_number = m.get('HotlineNumber')
if m.get('MngOpIdentityCard') is not None:
self.mng_op_identity_card = m.get('MngOpIdentityCard')
if m.get('MngOpMail') is not None:
self.mng_op_mail = m.get('MngOpMail')
if m.get('MngOpMobile') is not None:
self.mng_op_mobile = m.get('MngOpMobile')
if m.get('MngOpName') is not None:
self.mng_op_name = m.get('MngOpName')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResUniqueCode') is not None:
self.res_unique_code = m.get('ResUniqueCode')
return self
class ListHotlineTransferRegisterFileResponseBodyData(TeaModel):
def __init__(self, page_no=None, page_size=None, total=None, values=None):
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
# The total number of entries returned.
self.total = total # type: long
# The registration file.
self.values = values # type: list[ListHotlineTransferRegisterFileResponseBodyDataValues]
def validate(self):
if self.values:
for k in self.values:
if k:
k.validate()
def to_map(self):
_map = super(ListHotlineTransferRegisterFileResponseBodyData, 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.total is not None:
result['Total'] = self.total
result['Values'] = []
if self.values is not None:
for k in self.values:
result['Values'].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('Total') is not None:
self.total = m.get('Total')
self.values = []
if m.get('Values') is not None:
for k in m.get('Values'):
temp_model = ListHotlineTransferRegisterFileResponseBodyDataValues()
self.values.append(temp_model.from_map(k))
return self
class ListHotlineTransferRegisterFileResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The response parameters.
self.data = data # type: ListHotlineTransferRegisterFileResponseBodyData
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super(ListHotlineTransferRegisterFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = ListHotlineTransferRegisterFileResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class ListHotlineTransferRegisterFileResponse(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: ListHotlineTransferRegisterFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ListHotlineTransferRegisterFileResponse, 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 = ListHotlineTransferRegisterFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class PauseVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(PauseVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class PauseVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(PauseVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class PauseVideoFileResponse(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: PauseVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(PauseVideoFileResponse, 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 = PauseVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class PlayVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, out_id=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None, video_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
self.video_id = video_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(PlayVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.video_id is not None:
result['VideoId'] = self.video_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('VideoId') is not None:
self.video_id = m.get('VideoId')
return self
class PlayVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, message=None, model=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.message = message # type: str
self.model = model # type: bool
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(PlayVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.model is not None:
result['Model'] = self.model
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Model') is not None:
self.model = m.get('Model')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class PlayVideoFileResponse(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: PlayVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(PlayVideoFileResponse, 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 = PlayVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCallDetailByCallIdRequest(TeaModel):
def __init__(self, call_id=None, owner_id=None, prod_id=None, query_date=None, resource_owner_account=None,
resource_owner_id=None):
# The unique ID of the call.
#
# >
#
# * The CallId parameter is included in the response parameters of the outbound call operation that you call to initiate a call.
#
# * The date when the call specified by CallId is started must be the same as the date specified by QueryDate.
#
# * The value of CallId must match the value of ProdId.
self.call_id = call_id # type: str
self.owner_id = owner_id # type: long
# The service ID. Valid values:
#
# * **11000000300006**: voice notification. You can call the [SingleCallByVoice](https://help.aliyun.com/document_detail/393517.html) operation to send a voice notification of the voice notification file type to the specified number.
# * **11010000138001**: voice verification code. You can call the [SingleCallByTts](https://help.aliyun.com/document_detail/393519.html) operation to send a voice verification code or a text-to-speech (TTS) voice notification to the specified number.
# * **11000000300005**: IVR. You can call the [IvrCall](https://help.aliyun.com/document_detail/393521.html) operation to initiate an interactive voice call to the specified number.
# * **11000000300009**: Session Initiation Protocol (SIP) call.
# * **11030000180001**: intelligent outbound call.
self.prod_id = prod_id # type: long
# The time at which call details are queried. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.
#
# > The system queries the call records that are generated within 24 hours after the specified point in time. For example, if you specify the time 20:00:01 on November 21, 2022, the system queries the call records that are generated for the specified call ID from 20:00:01 on November 21, 2022, to 20:00:01 on November 22, 2022.
self.query_date = query_date # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryCallDetailByCallIdRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.prod_id is not None:
result['ProdId'] = self.prod_id
if self.query_date is not None:
result['QueryDate'] = self.query_date
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ProdId') is not None:
self.prod_id = m.get('ProdId')
if m.get('QueryDate') is not None:
self.query_date = m.get('QueryDate')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryCallDetailByCallIdResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The details of the call, in the JSON format.
#
# * **caller**: the calling number.
# * **startDate**: the time when the call was started.
# * **stateDesc**: the description of the call state.
# * **duration**: the call duration. Unit: seconds. The value **0** indicates that the user was not connected.
# * **callerShowNumber**: the calling number displayed to the called party.
# * **gmtCreate**: the time when the call request was received.
# * **state**: the call state. The call state is returned by the Internet service provider (ISP) in real time. For more information about call states, see [ISP-returned error codes](~~55085~~).
# * **endDate**: the time when the call was ended.
# * **calleeShowNumber**: the number displayed to the called party.
# * **callee**: the called number.
# * **aRingTime**: the time when Line A started to ring, in the yyyy-MM-dd HH:mm:ss format.
# * **aEndTime**: the time when ringing on Line A ended, in the yyyy-MM-dd HH:mm:ss format.
# * **bRingTime**: the time when Line B started to ring, in the yyyy-MM-dd HH:mm:ss format.
# * **bEndTime**: the time when ringing on Line B ended, in the yyyy-MM-dd HH:mm:ss format.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryCallDetailByCallIdResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryCallDetailByCallIdResponse(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: QueryCallDetailByCallIdResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryCallDetailByCallIdResponse, 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 = QueryCallDetailByCallIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCallDetailByTaskIdRequest(TeaModel):
def __init__(self, callee=None, owner_id=None, query_date=None, resource_owner_account=None,
resource_owner_id=None, task_id=None):
# The called number. You can view the outbound call records of only one called number.
self.callee = callee # type: str
self.owner_id = owner_id # type: long
# The start time of the outbound robocall task. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.
self.query_date = query_date # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the outbound robocall task. The task ID is returned after the outbound robocall task is successfully delivered. You can view the task ID on the [Task Management](https://dyvms.console.aliyun.com/job/list) page of the Voice Messaging Service console, or call the **BatchRobotSmartCall** operation to obtain the **task ID**.
self.task_id = task_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryCallDetailByTaskIdRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.callee is not None:
result['Callee'] = self.callee
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.query_date is not None:
result['QueryDate'] = self.query_date
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Callee') is not None:
self.callee = m.get('Callee')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('QueryDate') is not None:
self.query_date = m.get('QueryDate')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class QueryCallDetailByTaskIdResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The call details of the outbound robocall task, in the JSON format.
#
# * **startDate**: the time when the call was answered.
#
# * **stateDesc**: the reason why the call was hung up. If the status code of early media was returned, this parameter indicates the reason why the status code of early media was used.
#
# * **statusCode**: the status code.
#
# * **EndDate**: the time when the call was ended.
#
# * **calleeShowNumber**: the calling number displayed to the called party.
#
# * **callee**: the called number.
#
# * **duration**: the billing duration.
#
# * **gmtCreate**: the time when the outbound robocall task was created.
#
# * **hangupDirection**: the party who hung up.
#
# * **tags**: the call tags.
#
# * **dialogCount**: the number of conversation rounds in the call.
#
# * **sureCount**: the number of times that the robocall task was acknowledged.
#
# * **denyCount**: the number of times that the robocall task was denied.
#
# * **rejectCount**: the number of times that the robocall task was rejected.
#
# * **customCount**: the number of times that the robocall task was customized.
#
# * **knowledgeCount**: the number of times that the knowledge base was queried.
#
# * **recordFile**: the download URL of the recording file. The URL is valid only for 48 hours. The recording file must be downloaded in time.
#
# * **callId**: the call ID.
#
# * **recordStatus**: indicates whether a recording file was available. Valid values:
#
# * 1: A recording file was available.
# * 2: No recording file was available.
#
# * **knowledgeCommonCount**: the number of call failures caused by the common issues in the knowledge base.
#
# * **knowledgeBusinessCount**: the number of call failures caused by the business issues in the knowledge base.
#
# * **callee**: the called number.
#
# * **dialogDetail**: the conversation details. The value is a JSON array that contains the following parameters:
#
# * **role**: the role who spoke.
# * **content**: the content of the speech.
# * **time**: the start time of the speech.
#
# > The preceding parameters are for reference only. The actually returned parameters prevail.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryCallDetailByTaskIdResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryCallDetailByTaskIdResponse(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: QueryCallDetailByTaskIdResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryCallDetailByTaskIdResponse, 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 = QueryCallDetailByTaskIdResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCallInPoolTransferConfigRequest(TeaModel):
def __init__(self, owner_id=None, phone_number=None, resource_owner_account=None, resource_owner_id=None):
self.owner_id = owner_id # type: long
# The China 400 number used to transfer the call.
self.phone_number = phone_number # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryCallInPoolTransferConfigRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.phone_number is not None:
result['PhoneNumber'] = self.phone_number
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PhoneNumber') is not None:
self.phone_number = m.get('PhoneNumber')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryCallInPoolTransferConfigResponseBodyDataDetails(TeaModel):
def __init__(self, called=None):
# The number used to transfer the call.
self.called = called # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryCallInPoolTransferConfigResponseBodyDataDetails, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called is not None:
result['Called'] = self.called
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Called') is not None:
self.called = m.get('Called')
return self
class QueryCallInPoolTransferConfigResponseBodyData(TeaModel):
def __init__(self, called_route_mode=None, details=None, gmt_create=None, transfer_timeout=None):
# The call mode. Valid values:
#
# * **roundRobin**\
# * **random**\
self.called_route_mode = called_route_mode # type: str
# The details of the response parameters.
self.details = details # type: list[QueryCallInPoolTransferConfigResponseBodyDataDetails]
# The time when the call transfer task was created.
self.gmt_create = gmt_create # type: long
# The timeout period for transferring the call.
self.transfer_timeout = transfer_timeout # type: str
def validate(self):
if self.details:
for k in self.details:
if k:
k.validate()
def to_map(self):
_map = super(QueryCallInPoolTransferConfigResponseBodyData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_route_mode is not None:
result['CalledRouteMode'] = self.called_route_mode
result['Details'] = []
if self.details is not None:
for k in self.details:
result['Details'].append(k.to_map() if k else None)
if self.gmt_create is not None:
result['GmtCreate'] = self.gmt_create
if self.transfer_timeout is not None:
result['TransferTimeout'] = self.transfer_timeout
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledRouteMode') is not None:
self.called_route_mode = m.get('CalledRouteMode')
self.details = []
if m.get('Details') is not None:
for k in m.get('Details'):
temp_model = QueryCallInPoolTransferConfigResponseBodyDataDetails()
self.details.append(temp_model.from_map(k))
if m.get('GmtCreate') is not None:
self.gmt_create = m.get('GmtCreate')
if m.get('TransferTimeout') is not None:
self.transfer_timeout = m.get('TransferTimeout')
return self
class QueryCallInPoolTransferConfigResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The response parameters.
self.data = data # type: QueryCallInPoolTransferConfigResponseBodyData
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super(QueryCallInPoolTransferConfigResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = QueryCallInPoolTransferConfigResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryCallInPoolTransferConfigResponse(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: QueryCallInPoolTransferConfigResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryCallInPoolTransferConfigResponse, 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 = QueryCallInPoolTransferConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryCallInTransferRecordRequest(TeaModel):
def __init__(self, call_in_caller=None, owner_id=None, page_no=None, page_size=None, phone_number=None,
query_date=None, resource_owner_account=None, resource_owner_id=None):
# The calling number of the inbound call.
self.call_in_caller = call_in_caller # type: str
self.owner_id = owner_id # type: long
# The page number. Default value: **1**.
self.page_no = page_no # type: long
# The number of entries per page. Valid values: 1 to 10.
self.page_size = page_size # type: long
# The phone number to which a call is transferred.
self.phone_number = phone_number # type: str
# The time at which call transfer records are queried, in the YYYY-MM-DD hh:mm:ss format.
#
# > The query result is all the call transfer records of the specified day.
self.query_date = query_date # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryCallInTransferRecordRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_in_caller is not None:
result['CallInCaller'] = self.call_in_caller
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.phone_number is not None:
result['PhoneNumber'] = self.phone_number
if self.query_date is not None:
result['QueryDate'] = self.query_date
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInCaller') is not None:
self.call_in_caller = m.get('CallInCaller')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('PhoneNumber') is not None:
self.phone_number = m.get('PhoneNumber')
if m.get('QueryDate') is not None:
self.query_date = m.get('QueryDate')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryCallInTransferRecordResponseBodyDataValues(TeaModel):
def __init__(self, call_in_called=None, call_in_caller=None, gmt_create=None, record_url=None,
transfer_called=None, transfer_caller=None):
# The called number of the inbound call.
self.call_in_called = call_in_called # type: str
# The calling number of the inbound call.
self.call_in_caller = call_in_caller # type: str
# The time when the call was initiated.
self.gmt_create = gmt_create # type: long
# The recording URL.
self.record_url = record_url # type: str
# The phone number to which the call was transferred.
self.transfer_called = transfer_called # type: str
# The calling number that transferred the call.
self.transfer_caller = transfer_caller # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryCallInTransferRecordResponseBodyDataValues, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_in_called is not None:
result['CallInCalled'] = self.call_in_called
if self.call_in_caller is not None:
result['CallInCaller'] = self.call_in_caller
if self.gmt_create is not None:
result['GmtCreate'] = self.gmt_create
if self.record_url is not None:
result['RecordUrl'] = self.record_url
if self.transfer_called is not None:
result['TransferCalled'] = self.transfer_called
if self.transfer_caller is not None:
result['TransferCaller'] = self.transfer_caller
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallInCalled') is not None:
self.call_in_called = m.get('CallInCalled')
if m.get('CallInCaller') is not None:
self.call_in_caller = m.get('CallInCaller')
if m.get('GmtCreate') is not None:
self.gmt_create = m.get('GmtCreate')
if m.get('RecordUrl') is not None:
self.record_url = m.get('RecordUrl')
if m.get('TransferCalled') is not None:
self.transfer_called = m.get('TransferCalled')
if m.get('TransferCaller') is not None:
self.transfer_caller = m.get('TransferCaller')
return self
class QueryCallInTransferRecordResponseBodyData(TeaModel):
def __init__(self, page_no=None, page_size=None, total=None, values=None):
# The page number.
self.page_no = page_no # type: long
# The number of entries per page.
self.page_size = page_size # type: long
# The total number of entries returned.
self.total = total # type: long
# The call transfer records.
self.values = values # type: list[QueryCallInTransferRecordResponseBodyDataValues]
def validate(self):
if self.values:
for k in self.values:
if k:
k.validate()
def to_map(self):
_map = super(QueryCallInTransferRecordResponseBodyData, 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.total is not None:
result['Total'] = self.total
result['Values'] = []
if self.values is not None:
for k in self.values:
result['Values'].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('Total') is not None:
self.total = m.get('Total')
self.values = []
if m.get('Values') is not None:
for k in m.get('Values'):
temp_model = QueryCallInTransferRecordResponseBodyDataValues()
self.values.append(temp_model.from_map(k))
return self
class QueryCallInTransferRecordResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The response parameters.
self.data = data # type: QueryCallInTransferRecordResponseBodyData
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
self.data.validate()
def to_map(self):
_map = super(QueryCallInTransferRecordResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data.to_map()
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
temp_model = QueryCallInTransferRecordResponseBodyData()
self.data = temp_model.from_map(m['Data'])
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryCallInTransferRecordResponse(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: QueryCallInTransferRecordResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryCallInTransferRecordResponse, 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 = QueryCallInTransferRecordResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotInfoListRequest(TeaModel):
def __init__(self, audit_status=None, owner_id=None, resource_owner_account=None, resource_owner_id=None):
# The review state. Valid values:
#
# * **CONFIGURABLE**\
# * **AUDITING**\
# * **AUDITPASS**\
# * **AUDITFAIL**\
self.audit_status = audit_status # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotInfoListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audit_status is not None:
result['AuditStatus'] = self.audit_status
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AuditStatus') is not None:
self.audit_status = m.get('AuditStatus')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryRobotInfoListResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The basic information about the robot, in the JSON format. The basic information contains the following parameters:
#
# * **id**: the robot ID.
# * **robotName**: the robot name.
# * **robotType**: the robot type.
# * **auditStatus**: the review state.
# * **gmtCreate**: the time when the task was created.
# * **gmtModified**: the time when the task was modified.
# * **partnerId**: the partner ID.
# * **asrId**: the ID of the automatic speech recognition (ASR) model.
# * **asrType**: the ASR type. Valid values: **Public** and **Private**.
# * **remark**: the additional information.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotInfoListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryRobotInfoListResponse(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: QueryRobotInfoListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotInfoListResponse, 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 = QueryRobotInfoListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotTaskCallDetailRequest(TeaModel):
def __init__(self, callee=None, owner_id=None, query_date=None, resource_owner_account=None,
resource_owner_id=None, task_id=None):
# The called number.
self.callee = callee # type: str
self.owner_id = owner_id # type: long
# The timestamp of the time at which the call details you want to query.
self.query_date = query_date # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~393531~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskCallDetailRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.callee is not None:
result['Callee'] = self.callee
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.query_date is not None:
result['QueryDate'] = self.query_date
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Callee') is not None:
self.callee = m.get('Callee')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('QueryDate') is not None:
self.query_date = m.get('QueryDate')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class QueryRobotTaskCallDetailResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The call details of a robocall task, in the JSON format.
#
# * **taskId**: the unique ID of the robocall task.
# * **caller**: the calling number.
# * **called**: the called number.
# * **duration**: the call duration. Unit: seconds.
# * **label**: the label of the called party.
# * **dialogCount**: the number of conversation rounds in the call.
# * **callResult**: the call result.
# * **hangupDirection**: the party who hung up. Valid values: **0**: the robot. **1**: the called party.
# * **transferResult**: the result of transferring the call to an agent. Valid values: **1**, **0**, and **3**. The value 1 indicates that the call was transferred to the agent. The value 0 indicates that the call failed to be transferred to the agent. The value 3 indicates that the call was not transferred to the agent.
# * **transferNumber**: the phone number of the agent to whom the call was transferred.
# * **transferFailReason**: the reason why the call failed to be transferred to the agent.
# * **callId**: the unique receipt ID of the call, in the `taskId^bizId` format.
# * **recallCurTimes**: the number of recalls.
# * **callStartTime**: the start time of the call.
# * **callEndTime**: the end time of the call.
# * **sureCount**: the number of times that the robocall task was affirmed.
# * **denyCount**: the number of times that the robocall task was denied.
# * **rejectCount**: the number of times that the robocall task was rejected.
# * **customCount**: the number of times that the robocall task was customized.
# * **knowledgeCount**: the number of times that the knowledge base was queried.
# * **defaultCount**: the default number of calls.
# * **knowledgeBusinessCount**: the number of call failures caused by the business issues in the knowledge base.
# * **knowledgeCommonCount**: the number of call failures caused by the common issues in the knowledge base.
# * **recordStatus**: Indicates whether the call has a recording file. Valid values: **1**: The call has a recording file. **2**: The call does not have a recording file.
# * **recordFile**: the download URL of the recording file.
# * **dialogDetail**: the dialog details, in a JSON-formatted array. **role**: the object of the speech. **content**: the content of the speech. **speakTime**: the time of the speech.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskCallDetailResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryRobotTaskCallDetailResponse(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: QueryRobotTaskCallDetailResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotTaskCallDetailResponse, 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 = QueryRobotTaskCallDetailResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotTaskCallListRequest(TeaModel):
def __init__(self, call_result=None, called=None, dialog_count_from=None, dialog_count_to=None,
duration_from=None, duration_to=None, hangup_direction=None, owner_id=None, page_no=None, page_size=None,
resource_owner_account=None, resource_owner_id=None, task_id=None):
# The call result. Valid values:
#
# * **200002**: The line is busy.
# * **200005**: The called party cannot be connected.
# * **200010**: The phone of the called party is powered off.
# * **200011**: The called party is out of service.
# * **200012**: The call is lost.
self.call_result = call_result # type: str
# The called number.
self.called = called # type: str
# The minimum number of conversation rounds in the call.
self.dialog_count_from = dialog_count_from # type: str
# The maximum number of conversation rounds in the call.
self.dialog_count_to = dialog_count_to # type: str
# The minimum call duration.
self.duration_from = duration_from # type: str
# The maximum call duration.
self.duration_to = duration_to # type: str
# The party who hangs up. Valid values:
#
# * **0**: the called party.
# * **1**: the robot.
self.hangup_direction = hangup_direction # type: str
self.owner_id = owner_id # type: long
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~393531~~) operation to obtain the task ID.
self.task_id = task_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskCallListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_result is not None:
result['CallResult'] = self.call_result
if self.called is not None:
result['Called'] = self.called
if self.dialog_count_from is not None:
result['DialogCountFrom'] = self.dialog_count_from
if self.dialog_count_to is not None:
result['DialogCountTo'] = self.dialog_count_to
if self.duration_from is not None:
result['DurationFrom'] = self.duration_from
if self.duration_to is not None:
result['DurationTo'] = self.duration_to
if self.hangup_direction is not None:
result['HangupDirection'] = self.hangup_direction
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallResult') is not None:
self.call_result = m.get('CallResult')
if m.get('Called') is not None:
self.called = m.get('Called')
if m.get('DialogCountFrom') is not None:
self.dialog_count_from = m.get('DialogCountFrom')
if m.get('DialogCountTo') is not None:
self.dialog_count_to = m.get('DialogCountTo')
if m.get('DurationFrom') is not None:
self.duration_from = m.get('DurationFrom')
if m.get('DurationTo') is not None:
self.duration_to = m.get('DurationTo')
if m.get('HangupDirection') is not None:
self.hangup_direction = m.get('HangupDirection')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class QueryRobotTaskCallListResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The information about the robocall task, which is a JSON-formatted array.
#
# * **taskId**: the unique ID of the robocall task.
# * **caller**: the calling number.
# * **called**: the called number.
# * **duration**: the call duration. Unit: seconds.
# * **label**: the label of the called party.
# * **dialogCount**: the number of conversation rounds in the call.
# * **callResult**: the call result.
# * **hangupDirection**: the party who hung up. Valid values: **1** and **0**. The value 1 indicates the called party, and the value 0 indicates the robot.
# * **transferResult**: the result of transferring the call to an agent. Valid values: **1**, **0**, and **3**. The value 1 indicates that the call was transferred to an agent. The value 0 indicates that the call failed to be transferred to an agent. The value 3 indicates that the call was not transferred to an agent.
# * **transferNumber**: the phone number of the agent to whom the call was transferred.
# * **transferFailReason**: the reason why the call failed to be transferred to an agent.
# * **callId**: the unique receipt ID of the call.
# * **recallCurTimes**: the number of recalls.
# * **callStartTime**: the start time of the call.
# * **callEndTime**: the end time of the call.
# * **sureCount**: the number of times that the robocall task was acknowledged.
# * **denyCount**: the number of times that the robocall task was denied.
# * **rejectCount**: the number of times that the robocall task was rejected.
# * **customCount**: the number of times that the robocall task was customized.
# * **knowledgeCount**: the number of times that the knowledge base was queried.
# * **defaultCount**: the default number of calls.
# * **knowledgeBusinessCount**: the number of call failures caused by the business issues in the knowledge base.
# * **knowledgeCommonCount**: the number of call failures caused by the common issues in the knowledge base.
# * ****\
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskCallListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryRobotTaskCallListResponse(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: QueryRobotTaskCallListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotTaskCallListResponse, 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 = QueryRobotTaskCallListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotTaskDetailRequest(TeaModel):
def __init__(self, id=None, owner_id=None, resource_owner_account=None, resource_owner_id=None):
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~CreateRobotTask~~) operation to obtain the task ID.
self.id = id # type: long
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskDetailRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.id is not None:
result['Id'] = self.id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryRobotTaskDetailResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The details of the robocall task, in the JSON format.
#
# * **Id**: the unique ID of the robocall task.
# * **taskName**: the task name.
# * **robotId**: the robot ID.
# * **robotName**: the robot name.
# * **corpName**: the company name.
# * **caller**: the number displayed to the called party.
# * **numberStatusIdent**: indicates whether number status identification was enabled. Valid values: **true** and **false**. The value true indicates that number status identification was enabled. The value false indicates that number status identification was not enabled.
# * **status**: the task state. You can call the [QueryRobotTaskList](~~QueryRobotTaskList~~) operation to obtain the task state from the `status` parameter.
# * **scheduleType**: the scheduling type. Valid values: **SINGLE** and **ORDER**. The value SINGLE indicates that the task was started immediately after it was created. The value ORDER indicates that the task was started at a scheduled time.
# * **retryType**: indicates whether auto-redial was enabled. Valid values: **1** and **0**. The value 1 indicates that auto-redial was enabled. The value 0 indicates that auto-redial was not enabled.
# * **recallStateCodes**: the call state in which redial is required. Valid values: **200010**, **200011**, **200002**, **200012**, and **200005**. The value 200010 indicates that the phone of the called party was powered off. The value 200011 indicates that the number of the called party was out of service. The value 200002 indicates that the line was busy. The value 200012 indicates that the call was lost. The value 200005 indicates that the called party could not be connected.
# * **recallTimes**: the number of redial times.
# * **recallInterval**: the redial interval. Unit: minutes.
# * **createTime**: the time when the task was created, in the yyyy-MM-dd HH:mm:ss format.
# * **fireTime**: the time when the task was started, in the yyyy-MM-dd HH:mm:ss format.
# * **completeTime**: the time when the task was completed, in the yyyy-MM-dd HH:mm:ss format.
# * **filename**: the name of the called number file.
# * **ossFilePath**: the path of the called number file.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskDetailResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryRobotTaskDetailResponse(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: QueryRobotTaskDetailResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotTaskDetailResponse, 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 = QueryRobotTaskDetailResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotTaskListRequest(TeaModel):
def __init__(self, owner_id=None, page_no=None, page_size=None, resource_owner_account=None,
resource_owner_id=None, status=None, task_name=None, time=None):
self.owner_id = owner_id # type: long
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The task state. Valid values:
#
# * **INIT**: The task is not started.
# * **READY**: The task is ready to start.
# * **DISPATCH**: The task is being parsed.
# * **EXCUTING**: The task is being executed.
# * **MANUAL_STOP**: The task is manually suspended.
# * **SYSTEM_STOP**: The task is suspended by the system.
# * **ARREARS_STOP**: The task is suspended due to overdue payments.
# * **CANCEL**: The task is manually canceled.
# * **SYSTEM_CANCEL**: The task is canceled by the system.
# * **FINISH**: The task is complete.
self.status = status # type: str
# The task name.
self.task_name = task_name # type: str
# The date when the task is created, in the yyyy-MM-dd format.
self.time = time # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.status is not None:
result['Status'] = self.status
if self.task_name is not None:
result['TaskName'] = self.task_name
if self.time is not None:
result['Time'] = self.time
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Status') is not None:
self.status = m.get('Status')
if m.get('TaskName') is not None:
self.task_name = m.get('TaskName')
if m.get('Time') is not None:
self.time = m.get('Time')
return self
class QueryRobotTaskListResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, page_no=None, page_size=None, request_id=None,
total_count=None):
# The response code.
self.code = code # type: str
# The robocall tasks, in the JSON format.
#
# * **id**: the unique ID of the robocall task.
# * **taskName**: the task name.
# * **robotId**: the robot ID.
# * **robotName**: the robot name.
# * **status**: the task state.
# * **scheduleType**: the scheduling type. Valid values: **SINGLE** and **ORDER**. The value SINGLE indicates that the task was started immediately after it was created. The value ORDER indicates that the task was started at a scheduled time.
# * **createTime**: the time when the task was created, in the yyyy.MM.dd HH:mm:ss format.
# * **completeTime**: the time when the task was completed, in the yyyy.MM.dd HH:mm:ss format.
# * **fireTime**: the time when the task was started, in the yyyy.MM.dd HH:mm:ss format.
# * **totalCount**: the total number of calls processed.
# * **finishCount**: the number of calls completed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The page number.
self.page_no = page_no # type: str
# The number of entries per page.
self.page_size = page_size # type: str
# The request ID.
self.request_id = request_id # type: str
# The total number of tasks.
self.total_count = total_count # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotTaskListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.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_count is not None:
result['TotalCount'] = self.total_count
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('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('TotalCount') is not None:
self.total_count = m.get('TotalCount')
return self
class QueryRobotTaskListResponse(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: QueryRobotTaskListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotTaskListResponse, 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 = QueryRobotTaskListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryRobotv2AllListRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotv2AllListRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryRobotv2AllListResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The information about the robot communication script, in the JSON format.
#
# * **id**: the ID of the robot communication script.
# * **robotName**: the name of the robot communication script.
# * **robotType**: the type of the robot communication script.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryRobotv2AllListResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryRobotv2AllListResponse(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: QueryRobotv2AllListResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryRobotv2AllListResponse, 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 = QueryRobotv2AllListResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryVideoPlayProgressRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryVideoPlayProgressRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class QueryVideoPlayProgressResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(QueryVideoPlayProgressResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class QueryVideoPlayProgressResponse(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: QueryVideoPlayProgressResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryVideoPlayProgressResponse, 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 = QueryVideoPlayProgressResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryVirtualNumberRequest(TeaModel):
def __init__(self, owner_id=None, page_no=None, page_size=None, prod_code=None, resource_owner_account=None,
resource_owner_id=None, route_type=None):
self.owner_id = owner_id # type: long
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
# The service name. Default value: **dyvms**.
self.prod_code = prod_code # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The route type. Valid values:
#
# * **0**: number location first.
# * **1**: random.
self.route_type = route_type # type: int
def validate(self):
pass
def to_map(self):
_map = super(QueryVirtualNumberRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.prod_code is not None:
result['ProdCode'] = self.prod_code
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.route_type is not None:
result['RouteType'] = self.route_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('ProdCode') is not None:
self.prod_code = m.get('ProdCode')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('RouteType') is not None:
self.route_type = m.get('RouteType')
return self
class QueryVirtualNumberResponseBody(TeaModel):
def __init__(self, code=None, data=None, request_id=None):
# The response code. The value 200 indicates that the request was successful.
self.code = code # type: str
# The details of the numbers associated with the virtual numbers. The following fields are returned:
#
# * createTime: the time when the number was activated.
# * qualificationCount: the number of qualifications.
# * cityCount: the number of cities.
# * phoneNumCount: the number of virtual numbers.
# * remark: the additional information.
# * phoneNum: the virtual number.
# * routeType: the route type.
# * canCancel: indicates whether the number can be deactivated.
# * specCount: the number of Internet service providers (ISPs).
# * status: the number state. Valid values: **1**, **0**, and **-1**. The value 1 indicates that the number is valid. The value 0 indicates that the number is invalid. The value -1 indicates that the number was deactivated.
# * pageNo: the page number.
# * pageSize: the number of entries per page.
# * total: the total number of virtual numbers.
self.data = data # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryVirtualNumberResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.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('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryVirtualNumberResponse(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: QueryVirtualNumberResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryVirtualNumberResponse, 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 = QueryVirtualNumberResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryVirtualNumberRelationRequest(TeaModel):
def __init__(self, owner_id=None, page_no=None, page_size=None, phone_num=None, prod_code=None,
qualification_id=None, region_name_city=None, related_num=None, resource_owner_account=None,
resource_owner_id=None, route_type=None, spec_id=None):
self.owner_id = owner_id # type: long
# The page number.
self.page_no = page_no # type: int
# The number of entries per page.
self.page_size = page_size # type: int
# The virtual number.
self.phone_num = phone_num # type: str
# The service name. Default value: **dyvms**.
self.prod_code = prod_code # type: str
# The qualification ID.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Qualifications\&Communication Scripts > Qualification Management**, and then click **Details** in the Actions column to view the qualification ID.
self.qualification_id = qualification_id # type: long
# The city to which the virtual number belongs.
self.region_name_city = region_name_city # type: str
# The real number.
self.related_num = related_num # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The route type. Valid values:
#
# **0**: number location first. **1**: random.
self.route_type = route_type # type: int
# The number type. Valid values:
#
# * **1**: the number provided by a virtual network operator, in the 05710000\*\*\*\* format.
# * **2**: the number provided by an Internet service provider (ISP).
# * **3**: a 5-digit phone number that starts with 95.
self.spec_id = spec_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(QueryVirtualNumberRelationRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.page_no is not None:
result['PageNo'] = self.page_no
if self.page_size is not None:
result['PageSize'] = self.page_size
if self.phone_num is not None:
result['PhoneNum'] = self.phone_num
if self.prod_code is not None:
result['ProdCode'] = self.prod_code
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.region_name_city is not None:
result['RegionNameCity'] = self.region_name_city
if self.related_num is not None:
result['RelatedNum'] = self.related_num
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.route_type is not None:
result['RouteType'] = self.route_type
if self.spec_id is not None:
result['SpecId'] = self.spec_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
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('PhoneNum') is not None:
self.phone_num = m.get('PhoneNum')
if m.get('ProdCode') is not None:
self.prod_code = m.get('ProdCode')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('RegionNameCity') is not None:
self.region_name_city = m.get('RegionNameCity')
if m.get('RelatedNum') is not None:
self.related_num = m.get('RelatedNum')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('RouteType') is not None:
self.route_type = m.get('RouteType')
if m.get('SpecId') is not None:
self.spec_id = m.get('SpecId')
return self
class QueryVirtualNumberRelationResponseBody(TeaModel):
def __init__(self, code=None, data=None, request_id=None):
# The response code.
#
# * The value 200 indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The list of associations between virtual numbers and real numbers. The following fields are returned:
#
# * **relatedNum**: the real number.
# * **createTime**: the time when the number was activated.
# * **pageNo**: the page number.
# * **pageSize**: the number of entries per page.
# * **total**: the total number of entries returned.
self.data = data # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryVirtualNumberRelationResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.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('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryVirtualNumberRelationResponse(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: QueryVirtualNumberRelationResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryVirtualNumberRelationResponse, 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 = QueryVirtualNumberRelationResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class QueryVoiceFileAuditInfoRequest(TeaModel):
def __init__(self, business_type=None, owner_id=None, resource_owner_account=None, resource_owner_id=None,
voice_codes=None):
# The type of the voice file. Valid values:
#
# * **0** (default): the voice notification file.
# * **2**: the recording file.
self.business_type = business_type # type: int
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The ID of the voice file. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications** or **Voice File Management**, and then click the **Voice Notification Files** tab to view the **voice ID**.
#
# > You can query up to 10 voice files each time. Separate the voice file names with commas (,).
self.voice_codes = voice_codes # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryVoiceFileAuditInfoRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.business_type is not None:
result['BusinessType'] = self.business_type
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.voice_codes is not None:
result['VoiceCodes'] = self.voice_codes
return result
def from_map(self, m=None):
m = m or dict()
if m.get('BusinessType') is not None:
self.business_type = m.get('BusinessType')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('VoiceCodes') is not None:
self.voice_codes = m.get('VoiceCodes')
return self
class QueryVoiceFileAuditInfoResponseBodyData(TeaModel):
def __init__(self, audit_state=None, reject_info=None, voice_code=None):
# The review state of the voice file. Valid values:
#
# * **AUDIT_STATE_INIT**: The voice file was under review.
# * **AUDIT_STATE_PASS**: The voice file was approved.
# * **AUDIT_STATE_NOT_PASS**: The voice file was rejected.
# * **AUDIT_STATE_UPLOADING**: The voice file was approved and is being uploaded.
# * **AUDIT_STATE_REDOING**: The voice file was being reprocessed.
# * **AUDIT_SATE_CANCEL**: The review of the voice file was canceled.
# * **AUDIT_PAUSE**: The review of the voice file was suspended.
# * **AUDIT_ORDER_FINISHED**: The voice file was approved by the ticket system and was waiting for the review of the Internet service provider (ISP).
self.audit_state = audit_state # type: str
# The reason why the voice file was rejected.
self.reject_info = reject_info # type: str
# The code of the voice file.
self.voice_code = voice_code # type: str
def validate(self):
pass
def to_map(self):
_map = super(QueryVoiceFileAuditInfoResponseBodyData, self).to_map()
if _map is not None:
return _map
result = dict()
if self.audit_state is not None:
result['AuditState'] = self.audit_state
if self.reject_info is not None:
result['RejectInfo'] = self.reject_info
if self.voice_code is not None:
result['VoiceCode'] = self.voice_code
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AuditState') is not None:
self.audit_state = m.get('AuditState')
if m.get('RejectInfo') is not None:
self.reject_info = m.get('RejectInfo')
if m.get('VoiceCode') is not None:
self.voice_code = m.get('VoiceCode')
return self
class QueryVoiceFileAuditInfoResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# The value OK indicates that the request was successful. For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The response parameters.
self.data = data # type: list[QueryVoiceFileAuditInfoResponseBodyData]
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
if self.data:
for k in self.data:
if k:
k.validate()
def to_map(self):
_map = super(QueryVoiceFileAuditInfoResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
result['Data'] = []
if self.data is not None:
for k in self.data:
result['Data'].append(k.to_map() if k else None)
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
self.data = []
if m.get('Data') is not None:
for k in m.get('Data'):
temp_model = QueryVoiceFileAuditInfoResponseBodyData()
self.data.append(temp_model.from_map(k))
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class QueryVoiceFileAuditInfoResponse(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: QueryVoiceFileAuditInfoResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(QueryVoiceFileAuditInfoResponse, 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 = QueryVoiceFileAuditInfoResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class RecoverCallInConfigRequest(TeaModel):
def __init__(self, number=None, owner_id=None, resource_owner_account=None, resource_owner_id=None):
# The China 400 number that is used to transfer the inbound call.
self.number = number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(RecoverCallInConfigRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.number is not None:
result['Number'] = self.number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Number') is not None:
self.number = m.get('Number')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class RecoverCallInConfigResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
self.code = code # type: str
# Indicates whether the inbound call was resumed. Valid values:
#
# * true: The inbound call was resumed.
# * false: The inbound call failed to be resumed.
self.data = data # type: bool
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(RecoverCallInConfigResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class RecoverCallInConfigResponse(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: RecoverCallInConfigResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(RecoverCallInConfigResponse, 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 = RecoverCallInConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class ResumeVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(ResumeVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class ResumeVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(ResumeVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class ResumeVideoFileResponse(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: ResumeVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(ResumeVideoFileResponse, 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 = ResumeVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SeekVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None, seek_times=None):
# 呼叫唯一ID
self.call_id = call_id # type: str
# 被叫号码
self.called_number = called_number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# 快进或快退值,负数为快退,单位秒
self.seek_times = seek_times # type: long
def validate(self):
pass
def to_map(self):
_map = super(SeekVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.seek_times is not None:
result['SeekTimes'] = self.seek_times
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('SeekTimes') is not None:
self.seek_times = m.get('SeekTimes')
return self
class SeekVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(SeekVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class SeekVideoFileResponse(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: SeekVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SeekVideoFileResponse, 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 = SeekVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SendVerificationRequest(TeaModel):
def __init__(self, biz_type=None, owner_id=None, resource_owner_account=None, resource_owner_id=None,
target=None, verify_type=None):
# The business type. Set the value to **CONTACT**.
self.biz_type = biz_type # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The mobile phone number that receives the SMS verification code.
self.target = target # type: str
# The mode of sending the SMS verification code. Set the value to **SMS**.
self.verify_type = verify_type # type: str
def validate(self):
pass
def to_map(self):
_map = super(SendVerificationRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.biz_type is not None:
result['BizType'] = self.biz_type
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.target is not None:
result['Target'] = self.target
if self.verify_type is not None:
result['VerifyType'] = self.verify_type
return result
def from_map(self, m=None):
m = m or dict()
if m.get('BizType') is not None:
self.biz_type = m.get('BizType')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Target') is not None:
self.target = m.get('Target')
if m.get('VerifyType') is not None:
self.verify_type = m.get('VerifyType')
return self
class SendVerificationResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the verification code was sent successfully.
self.data = data # type: bool
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SendVerificationResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SendVerificationResponse(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: SendVerificationResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SendVerificationResponse, 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 = SendVerificationResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SetTransferCalleePoolConfigRequestDetails(TeaModel):
def __init__(self, called=None, caller=None):
# The called number.
self.called = called # type: str
# The calling number.
self.caller = caller # type: str
def validate(self):
pass
def to_map(self):
_map = super(SetTransferCalleePoolConfigRequestDetails, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called is not None:
result['Called'] = self.called
if self.caller is not None:
result['Caller'] = self.caller
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Called') is not None:
self.called = m.get('Called')
if m.get('Caller') is not None:
self.caller = m.get('Caller')
return self
class SetTransferCalleePoolConfigRequest(TeaModel):
def __init__(self, called_route_mode=None, details=None, owner_id=None, phone_number=None,
qualification_id=None, resource_owner_account=None, resource_owner_id=None):
# The call mode. Valid values:
#
# * **roundRobin**\
# * **random**\
self.called_route_mode = called_route_mode # type: str
# The information about the phone numbers for transferring the call.
self.details = details # type: list[SetTransferCalleePoolConfigRequestDetails]
self.owner_id = owner_id # type: long
# The phone number used for transferring the call.
self.phone_number = phone_number # type: str
# The qualification ID. You can call the [GetHotlineQualificationByOrder](~~393548~~) operation to obtain the qualification ID.
self.qualification_id = qualification_id # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
if self.details:
for k in self.details:
if k:
k.validate()
def to_map(self):
_map = super(SetTransferCalleePoolConfigRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_route_mode is not None:
result['CalledRouteMode'] = self.called_route_mode
result['Details'] = []
if self.details is not None:
for k in self.details:
result['Details'].append(k.to_map() if k else None)
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.phone_number is not None:
result['PhoneNumber'] = self.phone_number
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledRouteMode') is not None:
self.called_route_mode = m.get('CalledRouteMode')
self.details = []
if m.get('Details') is not None:
for k in m.get('Details'):
temp_model = SetTransferCalleePoolConfigRequestDetails()
self.details.append(temp_model.from_map(k))
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PhoneNumber') is not None:
self.phone_number = m.get('PhoneNumber')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class SetTransferCalleePoolConfigResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the phone numbers for transferring the call were configured.
self.data = data # type: bool
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SetTransferCalleePoolConfigResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SetTransferCalleePoolConfigResponse(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: SetTransferCalleePoolConfigResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SetTransferCalleePoolConfigResponse, 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 = SetTransferCalleePoolConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SingleCallByTtsRequest(TeaModel):
def __init__(self, called_number=None, called_show_number=None, out_id=None, owner_id=None, play_times=None,
resource_owner_account=None, resource_owner_id=None, speed=None, tts_code=None, tts_param=None, volume=None):
# The mobile phone number that receives voice notifications.
#
# * Number format in the Chinese mainland:
#
# * Mobile phone number, for example, 159\*\*\*\*0000.
# * Landline number, for example, 0571\*\*\*\*5678.
#
# * Number format outside the Chinese mainland: country code + phone number, for example, 85200\*\*\*\*00.
#
# >
#
# * Each request supports only one called number. For more information, see [How to use voice notifications in the Chinese mainland](~~150016~~) or [How to use voice verification codes in regions outside the Chinese mainland](~~270044~~).
#
# * Voice verification codes are sent to a called number at the following frequency: one time per minute, five times per hour, and 20 times per 24 hours.
self.called_number = called_number # type: str
# The number displayed to the called party.
#
# * You do not need to specify this parameter if you use the text-to-speech (TTS) notification template or voice verification code template for outbound calls in the common mode. For more information, see [FAQ about the common outbound call mode](~~172104~~).
# * If you use the TTS notification template or voice verification code template for outbound calls in the dedicated mode, you must specify a number you purchased and only one number can be specified. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Voice Numbers** > **Real Number Management** to view the number you purchased.
self.called_show_number = called_show_number # type: str
# The custom ID that is reserved for the caller of the operation when the request is initiated. This ID is returned to the caller in a receipt message.
#
# The value is of the STRING type and must be 1 to 15 bytes in length.
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
# The number of times a voice notification is played back in a call. Valid values: 1 to 3. Default value: 3.
self.play_times = play_times # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The playback speed. Valid value: -500 to 500.
self.speed = speed # type: int
# The ID of the approved TTS notification template or voice verification code template.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), and choose **Voice Messages** > **Voice Verification Codes** or choose **Voice Messages** > **Voice Notifications** to view the **template ID**.
#
# > The account to which the TTS template belongs must be the same as the account that is used to call the SingleCallByTts operation.
self.tts_code = tts_code # type: str
# The variables in the template, in the JSON format.
#
# > The variables in the template must be less than 250 characters in length. The length of each single variable is not limited. These variables do not support URLs. The variables in the verification code template support only digits and letters.
self.tts_param = tts_param # type: str
# The playback volume of the voice notification. Valid values: 0 to 100. Default value: 100.
self.volume = volume # type: int
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByTtsRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.play_times is not None:
result['PlayTimes'] = self.play_times
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.speed is not None:
result['Speed'] = self.speed
if self.tts_code is not None:
result['TtsCode'] = self.tts_code
if self.tts_param is not None:
result['TtsParam'] = self.tts_param
if self.volume is not None:
result['Volume'] = self.volume
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PlayTimes') is not None:
self.play_times = m.get('PlayTimes')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Speed') is not None:
self.speed = m.get('Speed')
if m.get('TtsCode') is not None:
self.tts_code = m.get('TtsCode')
if m.get('TtsParam') is not None:
self.tts_param = m.get('TtsParam')
if m.get('Volume') is not None:
self.volume = m.get('Volume')
return self
class SingleCallByTtsResponseBody(TeaModel):
def __init__(self, call_id=None, code=None, message=None, request_id=None):
# The unique receipt ID of the call.
#
# You can call the [QueryCallDetailByCallId](~~393529~~) operation to query the details of the call based on the receipt ID.
self.call_id = call_id # type: str
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByTtsResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SingleCallByTtsResponse(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: SingleCallByTtsResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SingleCallByTtsResponse, 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 = SingleCallByTtsResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SingleCallByVideoRequest(TeaModel):
def __init__(self, called_number=None, called_show_number=None, out_id=None, owner_id=None, play_times=None,
resource_owner_account=None, resource_owner_id=None, speed=None, video_code=None, voice_code=None, volume=None):
self.called_number = called_number # type: str
self.called_show_number = called_show_number # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.play_times = play_times # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
self.speed = speed # type: int
self.video_code = video_code # type: str
self.voice_code = voice_code # type: str
self.volume = volume # type: int
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByVideoRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.play_times is not None:
result['PlayTimes'] = self.play_times
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.speed is not None:
result['Speed'] = self.speed
if self.video_code is not None:
result['VideoCode'] = self.video_code
if self.voice_code is not None:
result['VoiceCode'] = self.voice_code
if self.volume is not None:
result['Volume'] = self.volume
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PlayTimes') is not None:
self.play_times = m.get('PlayTimes')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Speed') is not None:
self.speed = m.get('Speed')
if m.get('VideoCode') is not None:
self.video_code = m.get('VideoCode')
if m.get('VoiceCode') is not None:
self.voice_code = m.get('VoiceCode')
if m.get('Volume') is not None:
self.volume = m.get('Volume')
return self
class SingleCallByVideoResponseBody(TeaModel):
def __init__(self, call_id=None, code=None, message=None, request_id=None):
self.call_id = call_id # type: str
self.code = code # type: str
self.message = message # type: str
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByVideoResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SingleCallByVideoResponse(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: SingleCallByVideoResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SingleCallByVideoResponse, 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 = SingleCallByVideoResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SingleCallByVoiceRequest(TeaModel):
def __init__(self, called_number=None, called_show_number=None, out_id=None, owner_id=None, play_times=None,
resource_owner_account=None, resource_owner_id=None, speed=None, voice_code=None, volume=None):
# The number for receiving voice notifications.
#
# Number format:
#
# * In the Chinese mainland:
#
# * Mobile phone number, for example, 159\*\*\*\*0000.
# * Landline number, for example, 0571\*\*\*\*5678.
#
# * Outside the Chinese mainland: country code + phone number, for example, 85200\*\*\*\*00.
#
# >
#
# * You can specify only one called number for a request. For more information, see [How to use voice notifications in the Chinese mainland](~~150016~~) or [How to use voice notifications in regions outside the Chinese mainland](~~268810~~).
#
# * Voice notifications are sent to a called number at the following frequency: one time per minute, five times per hour, and 20 times per 24 hours.
self.called_number = called_number # type: str
# The number displayed to the called party.
#
# * You do not need to specify this parameter if you use a voice notification file that uses the common outbound call mode. For more information, see [FAQ about the common outbound call mode](~~172104~~).
# * If you use a voice notification file that uses the dedicated outbound call mode, you must specify a number that you purchased. You can specify only one number. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Real Number Service** > **Real Number Management** to view the number that you purchased.
self.called_show_number = called_show_number # type: str
# The ID reserved for the caller. This ID is returned to the caller in a receipt message.
#
# The value must be of the STRING type and 1 to 15 bytes in length.
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
# The number of times the voice notification file is played. Valid values: 1 to 3.
self.play_times = play_times # type: int
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The playback speed of the voice notification file. Valid values: -500 to 500.
self.speed = speed # type: int
# The voice ID of the voice notification file.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice Messages** > **Voice Notifications** or **Voice File Management**, and then click the **Voice Notification Files** tab to view the **voice ID**.
self.voice_code = voice_code # type: str
# The playback volume of the voice notification file. Valid values: 0 to 100. Default value: 100.
self.volume = volume # type: int
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByVoiceRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.play_times is not None:
result['PlayTimes'] = self.play_times
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.speed is not None:
result['Speed'] = self.speed
if self.voice_code is not None:
result['VoiceCode'] = self.voice_code
if self.volume is not None:
result['Volume'] = self.volume
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PlayTimes') is not None:
self.play_times = m.get('PlayTimes')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('Speed') is not None:
self.speed = m.get('Speed')
if m.get('VoiceCode') is not None:
self.voice_code = m.get('VoiceCode')
if m.get('Volume') is not None:
self.volume = m.get('Volume')
return self
class SingleCallByVoiceResponseBody(TeaModel):
def __init__(self, call_id=None, code=None, message=None, request_id=None):
# The unique receipt ID for the call.
#
# You can call the [QueryCallDetailByCallId](~~393529~~) operation to query the details of the call.
self.call_id = call_id # type: str
# The response code.
#
# * The value OK indicates that the request was successful.****\
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SingleCallByVoiceResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SingleCallByVoiceResponse(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: SingleCallByVoiceResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SingleCallByVoiceResponse, 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 = SingleCallByVoiceResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SkipVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, out_id=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None, skip_times=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
self.skip_times = skip_times # type: long
def validate(self):
pass
def to_map(self):
_map = super(SkipVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.skip_times is not None:
result['SkipTimes'] = self.skip_times
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('SkipTimes') is not None:
self.skip_times = m.get('SkipTimes')
return self
class SkipVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: bool
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(SkipVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class SkipVideoFileResponse(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: SkipVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SkipVideoFileResponse, 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 = SkipVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SmartCallRequest(TeaModel):
def __init__(self, action_code_break=None, action_code_time_break=None, asr_base_id=None, asr_model_id=None,
background_file_code=None, background_speed=None, background_volume=None, called_number=None, called_show_number=None,
dynamic_id=None, early_media_asr=None, enable_itn=None, mute_time=None, noise_threshold=None, out_id=None,
owner_id=None, pause_time=None, record_flag=None, resource_owner_account=None, resource_owner_id=None,
session_timeout=None, speed=None, stream_asr=None, tts_conf=None, tts_speed=None, tts_style=None, tts_volume=None,
voice_code=None, voice_code_param=None, volume=None):
# Specifies whether the playback of the recording file can be interrupted. Default value: **true**. The default value indicates that the playback of the recording file can be interrupted.
#
# If you set the value of this parameter to false, the playback of the recording file cannot be interrupted even if the value of action_break is set to true.
#
# > The value of action_code_break takes precedence over the value of action_break.
self.action_code_break = action_code_break # type: bool
# The duration that the user keeps speaking. The playback of the recording file is interrupted when this duration is reached. Unit: milliseconds.
#
# If the value of ActionCodeBreak is set to **true** for the recording file and the duration that the user keeps speaking reaches the specified duration, the playback of the recording file is interrupted. If you do not specify ActionCodeTimeBreak or set the value of ActionCodeTimeBreak to 0, the setting of ActionCodeBreak does not take effect.
self.action_code_time_break = action_code_time_break # type: int
# The ASR base model. Valid values:
#
# * **customer_service\_8k** (default): Chinese Mandarin.
# * **dialect_customer_service\_8k**: a heavy accent.
#
# > You must specify the ASR model when you call the SmartCall operation. We recommend that you specify either of the AsrModelId and AsrBaseId parameters.
#
# * If you specify only the AsrModelId parameter, the specified ASR model is used.
#
# * If you specify only the AsrBaseId parameter, the ASR base model is used.
#
# * If you specify neither of the two parameters, the default ASR base model is used, that is, the default value customer_service\_8k is used for the AsrBaseId parameter.
#
# * If you specify both parameters, make sure that their values do not conflict with each other.
self.asr_base_id = asr_base_id # type: str
# The ID of the Automatic Speech Recognition (ASR) model.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and view the ID of the ASR model on the **ASR Model Management** page.
#
# > You must specify the ASR model when you call the SmartCall operation. We recommend that you specify either of the AsrModelId and AsrBaseId parameters.
#
# * If you specify only the AsrModelId parameter, the specified ASR model is used.
#
# * If you specify only the AsrBaseId parameter, the specified ASR base model is used.
#
# * If you specify neither of the two parameters, the default value customer_service\_8k is used for the AsrBaseId parameter. This means that the default Mandarin ASR base model is used.
#
# * If you specify both parameters, make sure that their values do not conflict with each other.
self.asr_model_id = asr_model_id # type: str
# The ID of the background voice file that is played back when the user talks with the robot.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice File Management**, click the **Intelligent Speech Interaction Recording File** tab, and then click **Details** in the Actions column to view the voice ID.
self.background_file_code = background_file_code # type: str
# This parameter is unavailable.
self.background_speed = background_speed # type: int
# This parameter is unavailable.
self.background_volume = background_volume # type: int
# The called number. Only phone numbers in the Chinese mainland are supported.
self.called_number = called_number # type: str
# The number displayed to the called party. The value must be the number you purchased.
#
# You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home) and choose **Voice Numbers** > **Real Number Management** to view the number you purchased.
self.called_show_number = called_show_number # type: str
# The dynamic extension ID that is reserved for the caller of the operation. This ID is returned in the callback URL and is used as the development identifier of the customer.
self.dynamic_id = dynamic_id # type: str
# Specifies whether to enable speech recognition of early media. Valid values:
#
# * **false** (default): Speech recognition of early media is disabled.
# * **true**: Speech recognition of early media is enabled.
#
# > If you set the value of this parameter to **true**, the reason why the call is not answered is recorded.
self.early_media_asr = early_media_asr # type: bool
# Specifies whether to enable Inverse Text Normalization (ITN) during post-processing. Default value: **false**. If you set the value to false, ITN is not enabled during post-processing.
#
# If you set the value to **true**, Chinese numerals are converted into Arabic numerals for output.
self.enable_itn = enable_itn # type: bool
# The silence duration. The system determines the end of the conversation based on the silence duration of the user. Unit: milliseconds. Valid values: 1000 to 20000.****\
#
# >
#
# * If you specify a value out of the valid range, the default value **10000** is used.
#
# * The parameter value can be adjusted during the conversation. The last setting prevails.
self.mute_time = mute_time # type: int
self.noise_threshold = noise_threshold # type: float
# The ID that is reserved for the caller of the operation. This ID is returned to the caller in a receipt message.
#
# The value is of the STRING type and must be 1 to 15 bytes in length.
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
# The pause duration. The system determines the end of a sentence based on the pause duration of the user in the conversation. Unit: milliseconds. Valid values: 300 to 1200.****\
#
# >
#
# * If you specify a value out of the valid range, the default value **800** is used.
#
# * You cannot change the parameter value after specifying it.
self.pause_time = pause_time # type: int
# Specifies whether to record the conversation. Valid values:
#
# * **true**: The conversation is recorded.
# * **false**: The conversation is not recorded.
self.record_flag = record_flag # type: bool
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The maximum call duration. The call is automatically hung up when the maximum call duration is reached. Unit: seconds.
#
# > The maximum call duration is 3,600 seconds.
self.session_timeout = session_timeout # type: int
# This parameter is unavailable.
self.speed = speed # type: int
# Specifies whether to enable streaming ASR, which intelligently judges what the user wants to express based on the first few words spoken by the user. Valid values:
#
# * **0**: Streaming ASR is disabled.
# * **1**: Streaming ASR is enabled.
self.stream_asr = stream_asr # type: int
# Specifies whether to set TTS sound parameters. Valid values:
#
# * **true**: TTS sound parameters must be set. You must set the **TtsStyle**, **TtsColume**, and **TtsSpeed** parameters to specify a sound style.
# * **false**: TTS sound parameters do not need to be set. The values of TTS sound parameters do not take effect even if you set them.
self.tts_conf = tts_conf # type: bool
# The speed of TTS variable playback. Valid values: -200 to 200. Default value: 0.
self.tts_speed = tts_speed # type: int
# The sound style for TTS variable playback. Default value: **xiaoyun**. For more information about the sound styles, see the **Sound styles** table below.
self.tts_style = tts_style # type: str
# The volume of TTS variable playback. Valid values: 0 to 100. Default value: 0.
self.tts_volume = tts_volume # type: int
# The recording file that is played back in the intelligent outbound call.
#
# The file can be an online file, a voice file uploaded from the Voice Messaging Service console, or a text-to-speech (TTS) template that contains variables. You can specify multiple files and a TTS variable together. Separate them with commas (,). The values of the variables in the TTS template are specified by the **VoiceCodeParam** parameter.
#
# * If you use an online file as the recording file, set the value of **VoiceCode** to the URL of the file that can be accessed over the Internet.
# * If you use a voice file uploaded from the Voice Messaging Service console as the recording file, set the value of **VoiceCode** to the voice ID of the file. You can log on to the [Voice Messaging Service console](https://dyvms.console.aliyun.com/overview/home), choose **Voice File Management**, click the **Intelligent Speech Interaction Recording File** tab, and then click **Details** in the Actions column to view the voice ID.
# * If you use a TTS template that contains variables as the recording file, set the value of **VoiceCode** to a variable name such as $name$, and also set a value for the variable in the **VoiceCodeParam** parameter.
self.voice_code = voice_code # type: str
# The value of the TTS variable, in the JSON format. This value must match the TTS variable specified by the **VoiceCode** parameter.
self.voice_code_param = voice_code_param # type: str
# The volume at which the recording file is played. Valid values: -4 to 4. We recommend that you set the value of this parameter to **1**.
self.volume = volume # type: int
def validate(self):
pass
def to_map(self):
_map = super(SmartCallRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.action_code_break is not None:
result['ActionCodeBreak'] = self.action_code_break
if self.action_code_time_break is not None:
result['ActionCodeTimeBreak'] = self.action_code_time_break
if self.asr_base_id is not None:
result['AsrBaseId'] = self.asr_base_id
if self.asr_model_id is not None:
result['AsrModelId'] = self.asr_model_id
if self.background_file_code is not None:
result['BackgroundFileCode'] = self.background_file_code
if self.background_speed is not None:
result['BackgroundSpeed'] = self.background_speed
if self.background_volume is not None:
result['BackgroundVolume'] = self.background_volume
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.called_show_number is not None:
result['CalledShowNumber'] = self.called_show_number
if self.dynamic_id is not None:
result['DynamicId'] = self.dynamic_id
if self.early_media_asr is not None:
result['EarlyMediaAsr'] = self.early_media_asr
if self.enable_itn is not None:
result['EnableITN'] = self.enable_itn
if self.mute_time is not None:
result['MuteTime'] = self.mute_time
if self.noise_threshold is not None:
result['NoiseThreshold'] = self.noise_threshold
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.pause_time is not None:
result['PauseTime'] = self.pause_time
if self.record_flag is not None:
result['RecordFlag'] = self.record_flag
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.session_timeout is not None:
result['SessionTimeout'] = self.session_timeout
if self.speed is not None:
result['Speed'] = self.speed
if self.stream_asr is not None:
result['StreamAsr'] = self.stream_asr
if self.tts_conf is not None:
result['TtsConf'] = self.tts_conf
if self.tts_speed is not None:
result['TtsSpeed'] = self.tts_speed
if self.tts_style is not None:
result['TtsStyle'] = self.tts_style
if self.tts_volume is not None:
result['TtsVolume'] = self.tts_volume
if self.voice_code is not None:
result['VoiceCode'] = self.voice_code
if self.voice_code_param is not None:
result['VoiceCodeParam'] = self.voice_code_param
if self.volume is not None:
result['Volume'] = self.volume
return result
def from_map(self, m=None):
m = m or dict()
if m.get('ActionCodeBreak') is not None:
self.action_code_break = m.get('ActionCodeBreak')
if m.get('ActionCodeTimeBreak') is not None:
self.action_code_time_break = m.get('ActionCodeTimeBreak')
if m.get('AsrBaseId') is not None:
self.asr_base_id = m.get('AsrBaseId')
if m.get('AsrModelId') is not None:
self.asr_model_id = m.get('AsrModelId')
if m.get('BackgroundFileCode') is not None:
self.background_file_code = m.get('BackgroundFileCode')
if m.get('BackgroundSpeed') is not None:
self.background_speed = m.get('BackgroundSpeed')
if m.get('BackgroundVolume') is not None:
self.background_volume = m.get('BackgroundVolume')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('CalledShowNumber') is not None:
self.called_show_number = m.get('CalledShowNumber')
if m.get('DynamicId') is not None:
self.dynamic_id = m.get('DynamicId')
if m.get('EarlyMediaAsr') is not None:
self.early_media_asr = m.get('EarlyMediaAsr')
if m.get('EnableITN') is not None:
self.enable_itn = m.get('EnableITN')
if m.get('MuteTime') is not None:
self.mute_time = m.get('MuteTime')
if m.get('NoiseThreshold') is not None:
self.noise_threshold = m.get('NoiseThreshold')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('PauseTime') is not None:
self.pause_time = m.get('PauseTime')
if m.get('RecordFlag') is not None:
self.record_flag = m.get('RecordFlag')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('SessionTimeout') is not None:
self.session_timeout = m.get('SessionTimeout')
if m.get('Speed') is not None:
self.speed = m.get('Speed')
if m.get('StreamAsr') is not None:
self.stream_asr = m.get('StreamAsr')
if m.get('TtsConf') is not None:
self.tts_conf = m.get('TtsConf')
if m.get('TtsSpeed') is not None:
self.tts_speed = m.get('TtsSpeed')
if m.get('TtsStyle') is not None:
self.tts_style = m.get('TtsStyle')
if m.get('TtsVolume') is not None:
self.tts_volume = m.get('TtsVolume')
if m.get('VoiceCode') is not None:
self.voice_code = m.get('VoiceCode')
if m.get('VoiceCodeParam') is not None:
self.voice_code_param = m.get('VoiceCodeParam')
if m.get('Volume') is not None:
self.volume = m.get('Volume')
return self
class SmartCallResponseBody(TeaModel):
def __init__(self, call_id=None, code=None, message=None, request_id=None):
# The unique receipt ID for this call.
#
# You can call the [QueryCallDetailByCallId](~~QueryCallDetailByCallId~~) operation to query the details of the call based on the receipt ID.
self.call_id = call_id # type: str
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SmartCallResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SmartCallResponse(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: SmartCallResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SmartCallResponse, 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 = SmartCallResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SmartCallOperateRequest(TeaModel):
def __init__(self, call_id=None, command=None, owner_id=None, param=None, resource_owner_account=None,
resource_owner_id=None):
# The unique receipt ID of the call. You can call the [SmartCall](~~393526~~) operation to obtain the receipt ID.
self.call_id = call_id # type: str
# The action that is initiated to the called number of an outbound robocall.
#
# > Only the value **parallelBridge** is supported. This value indicates that a bridge action is initiated between a called number and an agent of the call center.
self.command = command # type: str
self.owner_id = owner_id # type: long
# The extended field.
self.param = param # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(SmartCallOperateRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.command is not None:
result['Command'] = self.command
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.param is not None:
result['Param'] = self.param
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('Command') is not None:
self.command = m.get('Command')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('Param') is not None:
self.param = m.get('Param')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class SmartCallOperateResponseBody(TeaModel):
def __init__(self, code=None, message=None, request_id=None, status=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
# The action result. Valid values:
#
# * **true**: The action was successful.
# * **false**: The action failed.
self.status = status # type: bool
def validate(self):
pass
def to_map(self):
_map = super(SmartCallOperateResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
if self.status is not None:
result['Status'] = self.status
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
if m.get('Status') is not None:
self.status = m.get('Status')
return self
class SmartCallOperateResponse(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: SmartCallOperateResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SmartCallOperateResponse, 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 = SmartCallOperateResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class StartRobotTaskRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, schedule_time=None,
task_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The time scheduled for starting the robocall task, in the yyyy-MM-dd HH:mm:ss format.
self.schedule_time = schedule_time # type: str
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~CreateRobotTask~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(StartRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.schedule_time is not None:
result['ScheduleTime'] = self.schedule_time
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('ScheduleTime') is not None:
self.schedule_time = m.get('ScheduleTime')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class StartRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(StartRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class StartRobotTaskResponse(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: StartRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(StartRobotTaskResponse, 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 = StartRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class StopCallInConfigRequest(TeaModel):
def __init__(self, number=None, owner_id=None, resource_owner_account=None, resource_owner_id=None):
# The China 400 number from which the inbound call to be stopped is transferred.
self.number = number # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(StopCallInConfigRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.number is not None:
result['Number'] = self.number
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Number') is not None:
self.number = m.get('Number')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class StopCallInConfigResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
self.code = code # type: str
# Indicates whether the inbound call was stopped. Valid values:
#
# * true: The inbound call was stopped.
# * false: The inbound call failed to be stopped.
self.data = data # type: bool
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(StopCallInConfigResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class StopCallInConfigResponse(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: StopCallInConfigResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(StopCallInConfigResponse, 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 = StopCallInConfigResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class StopRobotTaskRequest(TeaModel):
def __init__(self, owner_id=None, resource_owner_account=None, resource_owner_id=None, task_id=None):
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~CreateRobotTask~~) operation to obtain the task ID.
self.task_id = task_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(StopRobotTaskRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.task_id is not None:
result['TaskId'] = self.task_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TaskId') is not None:
self.task_id = m.get('TaskId')
return self
class StopRobotTaskResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# Indicates whether the request was successful. Valid values:
#
# * **true**: The request was successful.
# * **false**: The request failed.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(StopRobotTaskResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class StopRobotTaskResponse(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: StopRobotTaskResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(StopRobotTaskResponse, 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 = StopRobotTaskResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class SubmitHotlineTransferRegisterRequestTransferPhoneNumberInfos(TeaModel):
def __init__(self, identity_card=None, phone_number=None, phone_number_owner_name=None):
# The ID card number of the number owner.
self.identity_card = identity_card # type: str
# The China 400 number that you want to submit for registration.
self.phone_number = phone_number # type: str
# The real name or company name of the number owner.
self.phone_number_owner_name = phone_number_owner_name # type: str
def validate(self):
pass
def to_map(self):
_map = super(SubmitHotlineTransferRegisterRequestTransferPhoneNumberInfos, self).to_map()
if _map is not None:
return _map
result = dict()
if self.identity_card is not None:
result['IdentityCard'] = self.identity_card
if self.phone_number is not None:
result['PhoneNumber'] = self.phone_number
if self.phone_number_owner_name is not None:
result['PhoneNumberOwnerName'] = self.phone_number_owner_name
return result
def from_map(self, m=None):
m = m or dict()
if m.get('IdentityCard') is not None:
self.identity_card = m.get('IdentityCard')
if m.get('PhoneNumber') is not None:
self.phone_number = m.get('PhoneNumber')
if m.get('PhoneNumberOwnerName') is not None:
self.phone_number_owner_name = m.get('PhoneNumberOwnerName')
return self
class SubmitHotlineTransferRegisterRequest(TeaModel):
def __init__(self, agreement=None, hotline_number=None, operator_identity_card=None, operator_mail=None,
operator_mail_verify_code=None, operator_mobile=None, operator_mobile_verify_code=None, operator_name=None, owner_id=None,
qualification_id=None, resource_owner_account=None, resource_owner_id=None, transfer_phone_number_infos=None):
# The authenticity of the commitment. Valid values:
#
# * **true**: The commitment is authentic.
# * **false**: The commitment is not authentic.
self.agreement = agreement # type: str
# The China 400 number.
self.hotline_number = hotline_number # type: str
# The ID card number of the handler.
self.operator_identity_card = operator_identity_card # type: str
# The email address of the handler.
self.operator_mail = operator_mail # type: str
# The verification code that is received by the mailbox of the handler.
self.operator_mail_verify_code = operator_mail_verify_code # type: str
# The mobile phone number of the handler.
self.operator_mobile = operator_mobile # type: str
# The verification code that is received by the mobile phone of the handler.
self.operator_mobile_verify_code = operator_mobile_verify_code # type: str
# The name of the handler.
self.operator_name = operator_name # type: str
self.owner_id = owner_id # type: long
# The qualification ID. You can call the [GetHotlineQualificationByOrder](~~393548~~) operation to obtain the qualification ID.
self.qualification_id = qualification_id # type: str
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The registration information about the China 400 number.
self.transfer_phone_number_infos = transfer_phone_number_infos # type: list[SubmitHotlineTransferRegisterRequestTransferPhoneNumberInfos]
def validate(self):
if self.transfer_phone_number_infos:
for k in self.transfer_phone_number_infos:
if k:
k.validate()
def to_map(self):
_map = super(SubmitHotlineTransferRegisterRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.agreement is not None:
result['Agreement'] = self.agreement
if self.hotline_number is not None:
result['HotlineNumber'] = self.hotline_number
if self.operator_identity_card is not None:
result['OperatorIdentityCard'] = self.operator_identity_card
if self.operator_mail is not None:
result['OperatorMail'] = self.operator_mail
if self.operator_mail_verify_code is not None:
result['OperatorMailVerifyCode'] = self.operator_mail_verify_code
if self.operator_mobile is not None:
result['OperatorMobile'] = self.operator_mobile
if self.operator_mobile_verify_code is not None:
result['OperatorMobileVerifyCode'] = self.operator_mobile_verify_code
if self.operator_name is not None:
result['OperatorName'] = self.operator_name
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.qualification_id is not None:
result['QualificationId'] = self.qualification_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
result['TransferPhoneNumberInfos'] = []
if self.transfer_phone_number_infos is not None:
for k in self.transfer_phone_number_infos:
result['TransferPhoneNumberInfos'].append(k.to_map() if k else None)
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Agreement') is not None:
self.agreement = m.get('Agreement')
if m.get('HotlineNumber') is not None:
self.hotline_number = m.get('HotlineNumber')
if m.get('OperatorIdentityCard') is not None:
self.operator_identity_card = m.get('OperatorIdentityCard')
if m.get('OperatorMail') is not None:
self.operator_mail = m.get('OperatorMail')
if m.get('OperatorMailVerifyCode') is not None:
self.operator_mail_verify_code = m.get('OperatorMailVerifyCode')
if m.get('OperatorMobile') is not None:
self.operator_mobile = m.get('OperatorMobile')
if m.get('OperatorMobileVerifyCode') is not None:
self.operator_mobile_verify_code = m.get('OperatorMobileVerifyCode')
if m.get('OperatorName') is not None:
self.operator_name = m.get('OperatorName')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('QualificationId') is not None:
self.qualification_id = m.get('QualificationId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
self.transfer_phone_number_infos = []
if m.get('TransferPhoneNumberInfos') is not None:
for k in m.get('TransferPhoneNumberInfos'):
temp_model = SubmitHotlineTransferRegisterRequestTransferPhoneNumberInfos()
self.transfer_phone_number_infos.append(temp_model.from_map(k))
return self
class SubmitHotlineTransferRegisterResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The registration ID.
self.data = data # type: long
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(SubmitHotlineTransferRegisterResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class SubmitHotlineTransferRegisterResponse(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: SubmitHotlineTransferRegisterResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(SubmitHotlineTransferRegisterResponse, 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 = SubmitHotlineTransferRegisterResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UpgradeVideoFileRequest(TeaModel):
def __init__(self, call_id=None, called_number=None, media_type=None, out_id=None, owner_id=None,
resource_owner_account=None, resource_owner_id=None):
self.call_id = call_id # type: str
self.called_number = called_number # type: str
self.media_type = media_type # type: str
self.out_id = out_id # type: str
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
def validate(self):
pass
def to_map(self):
_map = super(UpgradeVideoFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.call_id is not None:
result['CallId'] = self.call_id
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.media_type is not None:
result['MediaType'] = self.media_type
if self.out_id is not None:
result['OutId'] = self.out_id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CallId') is not None:
self.call_id = m.get('CallId')
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('MediaType') is not None:
self.media_type = m.get('MediaType')
if m.get('OutId') is not None:
self.out_id = m.get('OutId')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
return self
class UpgradeVideoFileResponseBody(TeaModel):
def __init__(self, access_denied_detail=None, code=None, data=None, message=None, success=None):
self.access_denied_detail = access_denied_detail # type: str
self.code = code # type: str
self.data = data # type: dict[str, any]
self.message = message # type: str
self.success = success # type: bool
def validate(self):
pass
def to_map(self):
_map = super(UpgradeVideoFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.access_denied_detail is not None:
result['AccessDeniedDetail'] = self.access_denied_detail
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.success is not None:
result['Success'] = self.success
return result
def from_map(self, m=None):
m = m or dict()
if m.get('AccessDeniedDetail') is not None:
self.access_denied_detail = m.get('AccessDeniedDetail')
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('Success') is not None:
self.success = m.get('Success')
return self
class UpgradeVideoFileResponse(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: UpgradeVideoFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(UpgradeVideoFileResponse, 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 = UpgradeVideoFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self
class UploadRobotTaskCalledFileRequest(TeaModel):
def __init__(self, called_number=None, id=None, owner_id=None, resource_owner_account=None,
resource_owner_id=None, tts_param=None, tts_param_head=None):
# The called numbers. Separate multiple called numbers with commas (,).
#
# > After you create a robocall task, you must upload called numbers in batches. You can upload up to 300,000 called numbers for each task.
self.called_number = called_number # type: str
# The unique ID of the robocall task. You can call the [CreateRobotTask](~~CreateRobotTask~~) operation to obtain the ID of the robocall task.
self.id = id # type: long
self.owner_id = owner_id # type: long
self.resource_owner_account = resource_owner_account # type: str
self.resource_owner_id = resource_owner_id # type: long
# The values of the variable in the text-to-speech (TTS) template, in the JSON format. The variable values specified by the TtsParam parameter must match the variable names specified by the TtsParamHead parameter.
#
# * If all the called numbers carry the same variable values, you can set the value of the number field to **all** and upload only one copy of the variable values.
# * If only some of the called numbers carry the same variable values, you can set the value of the number field to **all** for these called numbers and set the value of the number field and variable values for other called numbers based on your business requirements. The system preferentially selects the values that you set for the called numbers.
self.tts_param = tts_param # type: str
# The list of variable names carried in the robocall task, in the JSON format. The TtsParamHead parameter must be used together with the TtsParam parameter.
self.tts_param_head = tts_param_head # type: str
def validate(self):
pass
def to_map(self):
_map = super(UploadRobotTaskCalledFileRequest, self).to_map()
if _map is not None:
return _map
result = dict()
if self.called_number is not None:
result['CalledNumber'] = self.called_number
if self.id is not None:
result['Id'] = self.id
if self.owner_id is not None:
result['OwnerId'] = self.owner_id
if self.resource_owner_account is not None:
result['ResourceOwnerAccount'] = self.resource_owner_account
if self.resource_owner_id is not None:
result['ResourceOwnerId'] = self.resource_owner_id
if self.tts_param is not None:
result['TtsParam'] = self.tts_param
if self.tts_param_head is not None:
result['TtsParamHead'] = self.tts_param_head
return result
def from_map(self, m=None):
m = m or dict()
if m.get('CalledNumber') is not None:
self.called_number = m.get('CalledNumber')
if m.get('Id') is not None:
self.id = m.get('Id')
if m.get('OwnerId') is not None:
self.owner_id = m.get('OwnerId')
if m.get('ResourceOwnerAccount') is not None:
self.resource_owner_account = m.get('ResourceOwnerAccount')
if m.get('ResourceOwnerId') is not None:
self.resource_owner_id = m.get('ResourceOwnerId')
if m.get('TtsParam') is not None:
self.tts_param = m.get('TtsParam')
if m.get('TtsParamHead') is not None:
self.tts_param_head = m.get('TtsParamHead')
return self
class UploadRobotTaskCalledFileResponseBody(TeaModel):
def __init__(self, code=None, data=None, message=None, request_id=None):
# The response code.
#
# * The value OK indicates that the request was successful.
# * For more information about other response codes, see [API error codes](~~112502~~).
self.code = code # type: str
# The unique ID of the robocall task.
#
# You can call the [QueryRobotTaskDetail](~~QueryRobotTaskDetail~~) operation to query the details of the robocall task based on the task ID.
self.data = data # type: str
# The returned message.
self.message = message # type: str
# The request ID.
self.request_id = request_id # type: str
def validate(self):
pass
def to_map(self):
_map = super(UploadRobotTaskCalledFileResponseBody, self).to_map()
if _map is not None:
return _map
result = dict()
if self.code is not None:
result['Code'] = self.code
if self.data is not None:
result['Data'] = self.data
if self.message is not None:
result['Message'] = self.message
if self.request_id is not None:
result['RequestId'] = self.request_id
return result
def from_map(self, m=None):
m = m or dict()
if m.get('Code') is not None:
self.code = m.get('Code')
if m.get('Data') is not None:
self.data = m.get('Data')
if m.get('Message') is not None:
self.message = m.get('Message')
if m.get('RequestId') is not None:
self.request_id = m.get('RequestId')
return self
class UploadRobotTaskCalledFileResponse(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: UploadRobotTaskCalledFileResponseBody
def validate(self):
if self.body:
self.body.validate()
def to_map(self):
_map = super(UploadRobotTaskCalledFileResponse, 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 = UploadRobotTaskCalledFileResponseBody()
self.body = temp_model.from_map(m['body'])
return self