# encoding: utf-8
from __future__ import absolute_import, unicode_literals
import datetime
from optionaldict import optionaldict
from .base import BaseAPI
[文档]class SubAccount(BaseAPI):
"""
子账号
"""
[文档] def get_sub_account_list(
self,
status=None,
page=1,
page_size=10,
):
"""
查询子账号列表
:param status: 账号状态 0:全部 1:使用中 2:停用或未开通的
:param page: 页码,默认第一页
:param page_size: 每页条数,默认10条
"""
return self._post(
'/openapi/sub_account/getSubAccountList',
optionaldict({
'partner_id': self.partner_id,
'status': status,
'page': page,
'page_size': page_size,
}),
)
[文档] def create_sub_account(
self,
mobile,
email,
password,
contacts,
company,
live_on,
video_on,
effect_time,
expire_time,
user_limit=None,
max_user_limit=None,
user_count=None,
max_user_count=None,
live_max_speakers=None,
storage_limit=None,
max_storage_limit=None,
flow_limit=None,
max_flow_limit=None,
):
"""
创建子账号
:param mobile: 手机号必须是未注册过的
:param email: 邮箱必须是未注册过的
:param password: 密码必须为6-18位之间
:param contacts: 联系人
:param company: 公司名
:param live_on: 是否开通直播 0:不开通 1:开通
:param video_on: 是否开通点播 0:不开通 1:开通
:param effect_time: 账号生效日期,格式如:2017-11-24
:param expire_time: 账号失效日期,格式如:2018-11-24
:param user_limit: 直播套餐并发值,如开通直播,且为并发计费,则该值为必传值。必须是正整数。
:param max_user_limit: 直播可超额使用到的并发值,如开通直播,且为并发计费,则该值为必传值。该值必须不小于user_limit。必须是正整数。
:param user_count: 直播套餐人次/时长点数值,如开通直播,且为人次/时长点数计费,则该值为必传值
:param max_user_count: 直播可超额使用到的人次/时长点数值,如开通直播,且为人次/时长点数计费,则该值为必传值,且不能小于user_count
:param live_max_speakers: 最大上麦路数
:param storage_limit: 点播存储空间容量,如开通点播播,则该值为必传值。 必须是正整数。
:param max_storage_limit: 点播可超额使用到的容量,如开通点播,则该值为必传值。该值必须不小于storage_limit。必须是正整数。
:param flow_limit: 点播套餐月流量,如开通点播,则该值为必传值。必须是正整数。
:param max_flow_limit: 点播可超额使用到的月流量,如开通点播,则该值为必传值。该值必须不小于flow_limit。必须是正整数。
"""
if isinstance(effect_time, datetime.datetime):
effect_time = effect_time.strftime('%Y-%m-%d')
if isinstance(expire_time, datetime.datetime):
expire_time = expire_time.strftime('%Y-%m-%d')
return self._post(
'/openapi/sub_account/createSubAccount',
optionaldict({
'partner_id': self.partner_id,
'mobile': mobile,
'email': email,
'password': password,
'contacts': contacts,
'company': company,
'live_on': live_on,
'video_on': video_on,
'effect_time': effect_time,
'expire_time': expire_time,
'user_limit': user_limit,
'max_user_limit': max_user_limit,
'user_count': user_count,
'max_user_count': max_user_count,
'live_max_speakers': live_max_speakers,
'storage_limit': storage_limit,
'max_storage_limit': max_storage_limit,
'flow_limit': flow_limit,
'max_flow_limit': max_flow_limit,
}),
)
[文档] def stop_sub_account(
self,
sub_partner_id,
):
"""
停用子账号
:param sub_partner_id: 要停用的子账号ID
"""
return self._post(
'/openapi/sub_account/stopSubAccount',
optionaldict({
'partner_id': self.partner_id,
'sub_partner_id': sub_partner_id,
}),
result_processor=lambda x: x['partner_id']
)
[文档] def get_sub_account_info(
self,
sub_partner_id,
):
"""
获取子账号信息
:param sub_partner_id: 子账号ID
"""
return self._post(
'/openapi/sub_account/getSubAccountInfo',
optionaldict({
'partner_id': self.partner_id,
'sub_partner_id': sub_partner_id,
}),
)
[文档] def modify_sub_account(
self,
sub_partner_id,
live_on=None,
video_on=None,
storage_limit=None,
max_storage_limit=None,
flow_limit=None,
max_flow_limit=None,
live_max_speakers=None,
effect_time=None,
expire_time=None,
user_limit=None,
max_user_limit=None,
user_count=None,
max_user_count=None,
):
"""
修改子账号配置
:param sub_partner_id: 子账号ID
:param live_on: 直播账号状态 1:服务正常 2:服务已停止
:param video_on: 点播账号状态 0:未开通 1:服务正常 2:服务已停止
:param storage_limit: 点播存储空间容量,如开通点播播,则该值为必传值。
:param max_storage_limit: 点播可超额使用到的容量,该值必须不小于storage_limit。必须是正整数。
:param flow_limit: 点播套餐月流量
:param max_flow_limit: 点播可超额使用到的月流量,该值必须不小于flow_limit。必须是正整数。
:param live_max_speakers: 最大上麦路数
:param effect_time: 生效时间
:param expire_time: 失效时间
:param user_limit: 并发人数上限,并发计费可设置
:param max_user_limit: 直播可超额使用到的并发值,直播并发计费有效。该值必须不小于user_limit。必须是正整数。
:param user_count: 人次/时长上限,人次/时长计费可设置
:param max_user_count: 直播可超额使用到的人次/时长点数值,直播人次/时长点数计费有效,且不能小于user_count
"""
if isinstance(effect_time, datetime.datetime):
effect_time = effect_time.strftime('%Y-%m-%d')
if isinstance(expire_time, datetime.datetime):
expire_time = expire_time.strftime('%Y-%m-%d')
return self._post(
'/openapi/sub_account/modifySubAccount',
optionaldict({
'partner_id': self.partner_id,
'sub_partner_id': sub_partner_id,
'live_on': live_on,
'video_on': video_on,
'storage_limit': storage_limit,
'max_storage_limit': max_storage_limit,
'flow_limit': flow_limit,
'max_flow_limit': max_flow_limit,
'live_max_speakers': live_max_speakers,
'effect_time': effect_time,
'expire_time': expire_time,
'user_limit': user_limit,
'max_user_limit': max_user_limit,
'user_count': user_count,
'max_user_count': max_user_count,
}),
)