package alien4cloud.security; import java.util.Map; import java.util.Set; /** * Objects that implements {@link ISecuredResource} provides management operations for users and groups. */ public interface ISecuredResource { /** * Get the enum that contains possible roles for the given resource. * * @return The map of valid roles for the resource. */ <T extends Enum<T>> Class<T> roleEnum(); /** * Get a map of the user roles for the secured resource. * * @return Return a map of userId => set of roles. */ Map<String, Set<String>> getUserRoles(); /** * Update a map of the user roles for the secured resource. * * @param userRolesMap Map of userId => set of roles. */ void setUserRoles(Map<String, Set<String>> userRolesMap); /** * Get a map of the group roles for the secured resource. * * @return Return a map of groupId => set of roles. */ Map<String, Set<String>> getGroupRoles(); /** * Update a map of the group roles for the secured resource. * * @param userRolesMap Map of groupId => set of roles. */ void setGroupRoles(Map<String, Set<String>> userRolesMap); }