package com.sequenceiq.cloudbreak.repository; import java.util.List; import java.util.Set; import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.query.Param; import com.sequenceiq.cloudbreak.api.model.Status; import com.sequenceiq.cloudbreak.domain.Stack; @EntityType(entityClass = Stack.class) public interface StackRepository extends CrudRepository<Stack, Long> { Stack findOne(@Param("id") Long id); Stack findById(@Param("id") Long id); Stack findByIdLazy(@Param("id") Long id); Stack findByAmbari(@Param("ambariIp") String ambariIp); Set<Stack> findForUser(@Param("user") String user); Set<Stack> findPublicInAccountForUser(@Param("user") String user, @Param("account") String account); Set<Stack> findAllInAccount(@Param("account") String account); Stack findOneWithLists(@Param("id") Long id); List<Stack> findAllStackForTemplate(@Param("id") Long id); Stack findStackForCluster(@Param("id") Long id); Stack findByIdInAccount(@Param("id") Long id, @Param("account") String account); Stack findByNameInAccount(@Param("name") String name, @Param("account") String account, @Param("owner") String owner); Stack findByNameInUser(@Param("name") String name, @Param("owner") String owner); Stack findOneByName(@Param("name") String name, @Param("account") String account); List<Stack> findByCredential(@Param("credentialId") Long credentialId); List<Stack> findAllByNetwork(@Param("networkId") Long networkId); Stack findByIdWithSecurityConfig(@Param("id") Long id); List<Stack> findAllAlive(); List<Stack> findAllAliveAndProvisioned(); List<Stack> findByStatuses(@Param("statuses") List<Status> statuses); Set<Long> findStacksWithoutEvents(); Set<Stack> findAliveOnes(); }