/** * Get all alarms. Returns a list of all alarms across all devices. * * @param includeCleared include recently cleared alarms in response * @return JSON encoded set of alarms */ @GET @Produces(MediaType.APPLICATION_JSON) public Response getAlarms( @DefaultValue("false") @QueryParam("includeCleared") final boolean includeCleared) { log.info("Requesting all alarms, includeCleared={}", includeCleared); final AlarmService service = get(AlarmService.class); final Iterable<Alarm> alarms = includeCleared ? service.getAlarms() : service.getActiveAlarms(); final ObjectNode result = new ObjectMapper().createObjectNode(); result.set("alarms", codec(Alarm.class).encode(alarms, this)); return ok(result.toString()).build(); }