package com.clouck.service;
import java.util.List;
import java.util.Set;
import com.clouck.model.Account;
import com.clouck.model.Event;
import com.clouck.model.aws.AbstractResource;
import com.clouck.model.aws.ec2.Ec2Version;
import com.clouck.model.aws.ec2.Ec2VersionMeta;
public interface EventService {
List<Event> findEvents(Set<String> newEc2VersionIds);
List<Event> findEventsByResourceId(String resourceId);
List<Event> findEventsByUniqueId(String uniqueId);
void generateEvents(Account account);
/**
* generate events for list of ec2versions starting from index 2
* @param ec2Versions can't be empty
* @return result size should always be size of input - 1
*/
List<Ec2VersionMeta> generateEvents(List<Ec2Version> ec2Versions);
//
Ec2VersionMeta generateEvents(Ec2Version oldVersion, Ec2Version newVersion);
List<Event> update(AbstractResource<?> oldResource, AbstractResource<?> newResource);
Event add(AbstractResource<?> newResource);
Event initialise(AbstractResource<?> newResource);
Event delete(AbstractResource<?> oldResource);
List<Event> generateEvents(List<AbstractResource<?>> oldResources, List<AbstractResource<?>> newResources);
// List<Event> findEvents(String accountId, int size);
/**
* generate initialization event for the first ec2 version
* @param firstEc2Version
* @return
*/
Ec2VersionMeta generateEvents(Ec2Version firstEc2Version);
// List<AbstractEvent> findAscTop10EventsSince(Account account, Long eventId);
//
// List<AbstractEvent> findEvents(Account account);
}