package io.cattle.platform.servicediscovery.api.dao; import io.cattle.platform.core.addon.ServiceLink; import io.cattle.platform.core.model.Instance; import io.cattle.platform.core.model.InstanceLink; import io.cattle.platform.core.model.Service; import io.cattle.platform.core.model.ServiceConsumeMap; import java.util.List; import java.util.Map; public interface ServiceConsumeMapDao { ServiceConsumeMap findMapToRemove(long serviceId, long consumedServiceId); ServiceConsumeMap findNonRemovedMap(long serviceId, long consumedServiceId, String linkName); /** * Lists maps to remove referencing services consumed by passed serviceId * * @param serviceId * @return */ List<? extends ServiceConsumeMap> findConsumedMapsToRemove(long serviceId); /** * Lists maps to remove consuming service passed by serviceId * * @param serviceId * @return */ List<? extends ServiceConsumeMap> findConsumingMapsToRemove(long serviceId); /** * @param serviceId * @return list of services consumed by the service specified */ List<? extends ServiceConsumeMap> findConsumedServices(long serviceId); /** * @param serviceId * @return list of services consuming the service specified */ List<? extends ServiceConsumeMap> findConsumingServices(long serviceId); /** * @param instanceId * @param kind * @return list of services consumed by the instance specified */ List<? extends ServiceConsumeMap> findConsumedServicesForInstance(long instanceId, String kind); /** * @param instanceId * @return list of InstanceLink for the instance that are from services, not container links */ List<? extends InstanceLink> findServiceBasedInstanceLinks(long instanceId); Instance findOneInstanceForService(long serviceId); List<String> findInstanceNamesForService(long serviceId); ServiceConsumeMap createServiceLink(Service service, ServiceLink serviceLink); List<ServiceConsumeMap> createServiceLinks(List<ServiceLink> serviceLink); List<? extends Service> findLinkedServices(long serviceId); Map<Long, Long> findConsumedServicesIdsToStackIdsFromOtherAccounts(long accountId); Map<Long, Long> findConsumedByServicesIdsToStackIdsFromOtherAccounts(long accountId); }