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

import com.alibaba.fastjson.JSONObject;
import com.bocloud.cmp.params.azure.UserAssignParams;
import com.bocloud.common.model.*;
import com.bocloud.ims.entity.resource.azure.network.PublicIPAddress;

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

public interface PublicIPAddressService {

	/**
	 * 列表展示
	 *
	 * @param context
	 * @return
	 */
	BocloudResult<GridBean<PublicIPAddress>> list(Pager pager, RequestContext context);

	/**
	 * 创建
	 *
	 * @param entityParams
	 * @param context
	 * @return
	 */
	BocloudResult<Void> create(PublicIPAddress entityParams, RequestContext context);

	BocloudResult<Void> createBatch(PublicIPAddress entityParams, Integer num, RequestContext context);

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

	/**
	 * 详情
	 *
	 * @param id
	 * @return
	 */
	BocloudResult<PublicIPAddress> detail(Long id, RequestContext context);

	BocloudResult<List<PublicIPAddress>> listUnuse(Long vendorId, String regionId, RequestContext context);


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

	BocloudResult<Void> assign(UserAssignParams params, RequestContext context);

	BocloudResult<Void> assignBatch(UserAssignParams params, RequestContext context);

	BocloudResult<Void> vmApplyCreate(String params, RequestContext context);

	BocloudResult<Void> modify(PublicIPAddress params, RequestContext context);

}
