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

import com.bocloud.cmp.params.azure.UserAssignParams;
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.network.PublicIPAddress;

import java.util.List;

public interface PublicIPAddressService {

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

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

    BocloudResult<Void> create(PublicIPAddress entityParams, RequestContext context);

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

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

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

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

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

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

    BocloudResult<PublicIPAddress> vmApplyCreate(PublicIPAddress entityParams, RequestContext context);

}
