package com.bocloud.ims.interfaces.resource.kubernetes;

import java.util.List;
import java.util.Map;

import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.Param;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.resource.kubernetes.KubeNamespace;

/**
 * 
 * @ClassName: KubeNamespaceService.java
 * @Description:
 *
 * @author: ymh
 * @date: 2021年4月21日 下午2:10:22
 */
public interface KubeNamespaceService {

	/**
	 * 列表
	 * 
	 * @param page   当前页
	 * @param rows   页码
	 * @param params 查询参数
	 * @param sorter 拍寻参数
	 * @return 满足条件的列表
	 */
	public BocloudResult list(Pager pager, RequestContext context);

	/**
	 * 添加
	 * 
	 * @param namespace
	 * @param userId
	 * @return
	 */
	public BocloudResult create(KubeNamespace namespace, RequestContext context);

	/**
	 * 更新
	 * 
	 * @param namespace
	 * @param userId
	 * @return 操作结果
	 */
	public BocloudResult modify(KubeNamespace namespace, RequestContext context);

	/**
	 * 移除
	 * 
	 * @param id     ID
	 * @param userId 操作者ID
	 * @return 操作结果
	 */
	public BocloudResult remove(Long id, RequestContext context);

	/**
	 * 详细信息
	 * 
	 * @param id ID
	 * @return 详细信息
	 */
	public BocloudResult detail(Long id);

	public BocloudResult createServices(String params, RequestContext context);

	public BocloudResult listServices(Long nsId, String params, RequestContext context);

	public BocloudResult removeServices(Long nsId, String params, RequestContext context);

	public BocloudResult servicesTree(Long id, String params, RequestContext context);

	public BocloudResult listAllServices(Integer page, Integer rows, List<Param> params, Map<String, String> sorter,
			Boolean simple, RequestContext context);

	public BocloudResult serviceDetail(String params, RequestContext context);

}
