package com.bocloud.ims.interfaces.resource;

import com.alibaba.fastjson.JSONObject;
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.ElasticIp;
import com.bocloud.ims.entity.resource.NatGatewayDnatRule;
import com.bocloud.ims.entity.resource.Port;

import java.util.List;

public interface NatGatewayDnatRuleService {

	BocloudResult<GridBean<NatGatewayDnatRule>> list(Pager pager, RequestContext context);

	BocloudResult create(NatGatewayDnatRule dnatRule, RequestContext context);

	BocloudResult remove(Long id, RequestContext context);

	BocloudResult modify(NatGatewayDnatRule dnatRule, RequestContext context);

	BocloudResult<NatGatewayDnatRule> detail(Long id);

	BocloudResult<List<ElasticIp>> listAvailableEipsForDnat(JSONObject object);

	BocloudResult<List<Port>> listAvailablePortByVmId(Long vmId);

	BocloudResult<List<String>> listBindPrivateIps(Long natGatewayId);

	BocloudResult<List<ElasticIp>> listAvailableEipsForHuaweiDnat(String params);

}
