package com.platform.plugs.live.handlers;

import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.live.model.v20161101.AddLivePullStreamInfoConfigResponse;
import com.aliyuncs.live.model.v20161101.DeleteLivePullStreamInfoConfigResponse;
import com.aliyuncs.live.model.v20161101.DescribeLivePullStreamConfigResponse;
import com.platform.plugs.live.config.LivePullStreamConfig;

/**
 * @Author weiyan
 * @Date 2021/1/25
 **/
public interface ILivePullStreamHandler {
	
	void configLivePullStream(LivePullStreamConfig livePullStreamConfig);
	
	/**
	 * 添加直播拉流配置
	 * @param domainName 您的拉流域名为用户的播流域名
	 * @param appName 直播流所属应用名称
	 * @param streamName 直播流名。
	 * @param sourceUrl 用户的直播流所在的源站。多个源站可以填多个地址，用英文分号（;）分隔。
	 * @param startTime 拉流开始时间。StartTime和EndTime时间间隔在7天内。格式为：yyyy-MM-ddTHH:mm:ssZ（UTC时间）。
	 * @param endTime  拉流结束时间。StartTime和EndTime时间间隔在7天内，且EndTime超过当前时间。格式为：yyyy-MM-ddTHH:mm:ssZ（UTC时间）。
	 * @param RegionId 直播流域名所在地域
	 * @return
	 */
	AddLivePullStreamInfoConfigResponse addLivePullStreamInfoConfig( String appName, String streamName,
    		String sourceUrl, String startTime, String endTime)  throws  ServerException,ClientException;
    
    /**
     * 查询直播拉流配置
     * @param domainName 播流域名。
     * @param RegionId 域名所属地域。
     * @return
     */
	DescribeLivePullStreamConfigResponse describeLivePullStreamConfig() throws  ServerException,ClientException;
    
    /**
     * 删除直播拉流配置
     * @param domainName 播流域名
     * @param appName 直播流所属应用名称
     * @param streamName 直播流名
     * @return
     */
	DeleteLivePullStreamInfoConfigResponse DeleteLivePullStreamInfoConfig(String appName, String streamName)  throws  ServerException,ClientException;
}
