package com.sequenceiq.cloudbreak.repository;
import java.util.Set;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.security.access.prepost.PostAuthorize;
import com.sequenceiq.cloudbreak.domain.Network;
@EntityType(entityClass = Network.class)
public interface NetworkRepository extends CrudRepository<Network, Long> {
@PostAuthorize("hasPermission(returnObject,'read')")
Network findOneById(@Param("id") Long id);
@PostAuthorize("hasPermission(returnObject,'read')")
Network findOneByName(@Param("name") String name, @Param("account") String account);
Network findByNameForUser(@Param("name") String name, @Param("owner") String userId);
Network findByNameInAccount(@Param("name") String name, @Param("account") String account);
Set<Network> findForUser(@Param("owner") String user);
Set<Network> findPublicInAccountForUser(@Param("owner") String user, @Param("account") String account);
Set<Network> findAllInAccount(@Param("account") String account);
Set<Network> findAllDefaultInAccount(@Param("account") String account);
Set<Network> findByTopology(@Param("topologyId") Long topologyId);
}