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

import com.alibaba.fastjson.JSONObject;
import com.bocloud.cmp.model.common.ApplicationParam;
import com.bocloud.cmp.model.common.CancelationParam;
import com.bocloud.cmp.model.common.ExtensionParam;
import com.bocloud.cmp.params.azure.CloudDatabaseServerOperationParams;
import com.bocloud.common.model.BocloudResult;
import com.bocloud.common.model.GridBean;
import com.bocloud.common.model.Pager;
import com.bocloud.common.model.RequestContext;
import com.bocloud.ims.entity.resource.azure.db.AzureDatabaseServer;

/**
 * @Company: 博云 www.bocloud.com
 * @ClassName: DatabaseForMysqlService
 * @Description:
 * @author: zhenpingLi/李振平
 * @date: 2020/12/18 15:24
 */
public interface CloudDatabaseServerService {
    BocloudResult<GridBean<AzureDatabaseServer>> list(Pager pager, RequestContext context);

    BocloudResult<AzureDatabaseServer> detail(Long id, RequestContext context);

    BocloudResult<Void> operations(CloudDatabaseServerOperationParams params, RequestContext context);

    BocloudResult<Void> create(AzureDatabaseServer params, RequestContext context);

    BocloudResult<Void> modify(AzureDatabaseServer entityParams, RequestContext context);

    BocloudResult<Void> remove(Long id, RequestContext context);

    BocloudResult<AzureDatabaseServer> assign(JSONObject object, RequestContext context);

    BocloudResult<Void> apply(ApplicationParam param);

    BocloudResult<Void> extension(ExtensionParam param);

    BocloudResult<Void> cancelation(CancelationParam param);

    BocloudResult<Void> pricingLayer(AzureDatabaseServer params, RequestContext context);
}