package io.fathom.cloud.services;
import io.fathom.cloud.CloudException;
import io.fathom.cloud.blobs.BlobData;
import io.fathom.cloud.server.model.Project;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
public interface ImageService {
public static final String METADATA_KEY_NAME = "name";
public static final String METADATA_KEY_SIZE = "size";
public static final String METADATA_KEY_CONTAINER_FORMAT = "container_format";
public static final String METADATA_KEY_DISK_FORMAT = "disk_format";
public interface Image {
long getId();
ImageKey getUniqueKey();
String getName();
String getStatus();
String getChecksum();
}
Image findImage(Project project, long imageId) throws CloudException;
BlobData getImageBlob(Image image) throws IOException;
Image uploadData(Image image, BlobData src) throws IOException, CloudException;
Image createImage(long projectId, Map<String, String> metadata) throws CloudException;
String getUrl(HttpServletRequest request, long imageId);
List<Image> listImages(Project project) throws CloudException;
}