package com.bocloud.ims.interfaces.resource.azure.ddos;


import com.bocloud.cmp.params.azure.AzureDdosProtectionPlanParams;
import com.bocloud.common.model.*;
import com.bocloud.ims.entity.resource.azure.ddos.DdosProtectionPlan;

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

/**
 * DDOS防护计划
 *
 * @author wangyu
 * @version 5.0.0-SNAPSHOT
 * @since 2021/3/5
 */
public interface DdosProtectionPlanService {

    /**
     * 查询列表
     *
     * @param context
     * @return
     */
    BocloudResult<GridBean<DdosProtectionPlan>> list(Pager pager, RequestContext context);

    /**
     * 创建DDOS防护计划
     *
     * @param plan
     * @param context
     * @return
     */
    BocloudResult<Void> create(DdosProtectionPlan plan, RequestContext context);

    /**
     * 修改DDOS防护计划
     *
     * @param plan
     * @param context
     * @return
     */
    BocloudResult<Void> modify(DdosProtectionPlan plan, RequestContext context);

    /**
     * 查询DDOS防护计划详情
     *
     * @param id
     * @param context
     * @return
     */
    BocloudResult<DdosProtectionPlan> detail(Long id, RequestContext context);

    /**
     * 删除DDOS防护计划
     *
     * @param id
     * @param context
     * @return
     */
    BocloudResult<Void> remove(Long id, RequestContext context);

    /**
     * 批量删除DDOS防护计划
     *
     * @param params
     * @param context
     * @return
     */
    BocloudResult<Void> batchRemove(AzureDdosProtectionPlanParams params, RequestContext context);

    /**
     * 资源分配
     *
     * @param object
     * @param context
     * @return
     */
    BocloudResult<Void> assign(AzureDdosProtectionPlanParams object, RequestContext context);

    /**
     * 资源分配
     *
     * @param object
     * @param context
     * @return
     */
    BocloudResult<Void> batchAssign(AzureDdosProtectionPlanParams object, RequestContext context);

}
