package org.rhq.enterprise.server.core; import javax.ejb.Remote; import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.criteria.AgentCriteria; import org.rhq.core.domain.resource.Agent; import org.rhq.core.domain.util.PageList; /** * Remote agent management. */ @Remote public interface AgentManagerRemote { /** * Deletes an existing agent by subject, if there is no platform resource for this agent. * This method is primarily for deleting agents that may have incompletely registered. * * Subject needs MANAGE_SETTINGS permissions. * * @param subject caller * @param agent agent object. */ void deleteAgent(Subject subject, Agent agent); /** * Fetches the agents based on provided criteria. * * Subject needs MANAGE_SETTINGS and MANAGE_INVENTORY permissions. * * @param subject caller * @param criteria the criteria * @return list of agents */ PageList<Agent> findAgentsByCriteria(Subject subject, AgentCriteria criteria); }