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

import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.middleware.RdsDb;
import com.bocloud.ims.entity.middleware.RdsPublicCloudInstance;
import com.bocloud.ims.entity.middleware.RdsUser;

/**
 * @ClassName: RdsService
 * @Description:
 * @author: liuyuanyuan
 */
public interface RdsPublicCloudInstanceService {


    BocloudResult list(Pager pager);

    BocloudResult detail(Long id);

    BocloudResult createUser(Long id, RdsUser rdsUser, RequestContext context);

    BocloudResult createDb(Long id, RdsDb rdsDb, RequestContext context);

    BocloudResult getUsers(Pager pager);

    BocloudResult getDbs(Pager pager);

    BocloudResult deleteUser(Long id, Long userId, RequestContext context);

    BocloudResult deleteDb(Long id, Long dbId, RequestContext context);

    BocloudResult resetAccountPassword(Long id, RdsUser rdsUser, RequestContext context);

    BocloudResult reset(Long id, RdsUser rdsUser, RequestContext context);

    BocloudResult resetAccount(Long id, RdsUser rdsUser, RequestContext context);

    BocloudResult restart(Long id, RequestContext context);

    BocloudResult create(RdsPublicCloudInstance instance, RequestContext context);

    BocloudResult delete(Long id, RequestContext context);

    BocloudResult getErrLog(String params, RequestContext user);

    BocloudResult getSlowLog(String params, RequestContext user);

    BocloudResult getRegions(Long vendorId, String type, String volType);

    BocloudResult flavors(String category, Long vendorId, String regionId, String zone, String engine, String version, String volType, String payType);

    BocloudResult paramGroups(Long vendorId, String regionId, String engine, String version);
    /*BocloudResult assign(String params, RequestContext user);

    BocloudResult reclaim(Long id, RequestContext user);*/

}
