package io.cattle.platform.core.dao;
import io.cattle.platform.core.addon.MountEntry;
import io.cattle.platform.core.model.Image;
import io.cattle.platform.core.model.ImageStoragePoolMap;
import io.cattle.platform.core.model.Mount;
import io.cattle.platform.core.model.StoragePool;
import io.cattle.platform.core.model.Volume;
import io.cattle.platform.core.model.VolumeStoragePoolMap;
import io.github.ibuildthecloud.gdapi.id.IdFormatter;
import java.util.List;
import java.util.Map;
import java.util.Set;
public interface VolumeDao {
List<? extends Volume> findBadVolumes(int count);
List<? extends Mount> findBadMounts(int count);
List<? extends VolumeStoragePoolMap> findBandVolumeStoragePoolMap(int count);
Volume createVolumeForDriver(long accountId, String name, String volumeName);
Volume findVolumeByExternalId(Long storagePoolId, String externalId);
void createVolumeInStoragePool(Map<String, Object> volumeData, String volumeName, StoragePool storagePool);
List<? extends Volume> findSharedOrUnmappedVolumes(long accountId, String volumeName);
Set<? extends Volume> findNonremovedVolumesWithNoOtherMounts(long instanceId);
boolean isVolumeInUseByRunningInstance(long volumeId);
Map<Long, List<MountEntry>> getMountsForInstances(List<Long> ids, IdFormatter idF);
Map<Long, List<MountEntry>> getMountsForVolumes(List<Long> ids, IdFormatter idF);
List<? extends Volume> identifyUnmappedVolumes(long accountId, Set<Long> volumeIds);
List<? extends Volume> findNonRemovedVolumesOnPool(Long storagePoolId);
List<? extends Image> findBadImages(int count);
List<? extends ImageStoragePoolMap> findBadImageStoragePoolMaps(int count);
List<? extends Volume> findBadNativeVolumes(int count);
}