package org.openstack.atlas.service.domain.services;
import org.openstack.atlas.service.domain.exceptions.EntityNotFoundException;
import org.openstack.atlas.service.domain.usage.entities.LoadBalancerHostUsage;
import org.openstack.atlas.service.domain.usage.entities.LoadBalancerMergedHostUsage;
import java.util.Calendar;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface UsageRefactorService {
public void createUsageEvent(LoadBalancerHostUsage loadBalancerHostUsageEvent);
public LoadBalancerHostUsage getLastRecordForLbIdAndHostId(int lbId, int hostId);
public LoadBalancerMergedHostUsage getLastRecordForLbId(int lbId) throws EntityNotFoundException;
//Keys loadbalancerId, hostId
public Map<Integer, Map<Integer, List<LoadBalancerHostUsage>>> getAllLoadBalancerHostUsages();
//Keys loadbalancerId, hostId
public Map<Integer, Map<Integer, List<LoadBalancerHostUsage>>> getRecordsAfterTimeInclusive(Calendar time);
public Map<Integer, Map<Integer, List<LoadBalancerHostUsage>>> getRecordsBeforeTimeInclusive(Calendar time);
public void batchCreateLoadBalancerHostUsages(Collection<LoadBalancerHostUsage> usages);
public void deleteOldLoadBalancerHostUsages(Calendar deleteTimeMarker, Collection<Integer> lbsToExclude, Long maxId);
public void batchCreateLoadBalancerMergedHostUsages(Collection<LoadBalancerMergedHostUsage> usages);
public void batchDeleteLoadBalancerMergedHostUsages(Collection<LoadBalancerMergedHostUsage> usages);
}