package io.github.ibuildthecloud.gdapi.request.resource;
import io.github.ibuildthecloud.gdapi.model.Collection;
import io.github.ibuildthecloud.gdapi.model.ListOptions;
import io.github.ibuildthecloud.gdapi.model.Resource;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import java.util.List;
import java.util.Map;
public interface ResourceManager {
String[] getTypes();
Class<?>[] getTypeClasses();
Object getById(String type, String id, ListOptions options);
Object getLink(String type, String id, String link, ApiRequest request);
Object list(String type, ApiRequest request);
List<?> list(String type, Map<Object, Object> criteria, ListOptions options);
Object create(String type, ApiRequest request);
Object update(String type, String id, ApiRequest request);
Object delete(String type, String id, ApiRequest request);
Object resourceAction(String type, ApiRequest request);
Object collectionAction(String type, ApiRequest request);
Collection convertResponse(List<?> object, ApiRequest request);
Resource convertResponse(Object obj, ApiRequest request);
boolean handleException(Throwable t, ApiRequest request);
}