var util = require('util'); var alert_api = function(){}; alert_api.prototype.add_alert = function(alert, callback){ /* * alert_api.add_alert(alert, [callback]) * * add a new alert to datadog * * `alert` is an object containing: * query: *required*, the metric to query on * name: name of the alert * message: an optional message to include with the alert * silenced: whether the alert should notify by email and in the stream * * `callback` an optional function to get called with the results of the api call * callback(error, result, status_code) */ if(typeof alert != 'object'){ throw new Error('`alert` parameter must be an object'); } if(!alert['query']){ throw new Error('`alert["query"]` is required'); } this.request('POST', '/alert', {body: alert}, callback); }; alert_api.prototype.update_alert = function(alert_id, alert, callback){ /* * alert_api.update_alert(alert_id, alert, [callback]) * * update an existing alert * * `alert_id` the id of alert to update * `alert` is an object containing: * query: *required*, the metric to query on * name: name of the alert * message: an optional message to include with the alert * silenced: whether the alert should notify by email and in the stream * * `callback` an optional function to get called with the results of the api call * callback(error, result, status_code) */ if(typeof alert != 'object'){ throw new Error('`alert` parameter must be an object'); } if(!alert['query']){ throw new Error('`alert["query"]` is required'); } this.request('PUT', util.format('/alert/%s', alert_id), {body: alert}, callback); }; alert_api.prototype.get_alert = function(alert_id, callback){ /* * alert_api.get_alert(alert_id, [callback]) * * get the details of an alert from the given id * * `alert_id` the id for the alert to get * * `callback` an optional function to call with the results * callback(error, result, status_code) */ this.request('GET', util.format('/alert/%s', alert_id), callback); }; alert_api.prototype.delete_alert = function(alert_id, callback){ /* * alert_api.delete_alert(alert_id, [callback]) * * delete the given alert from datadog * * `alert_id` the id for the alert to get * * `callback` an optional function to call with the results * callback(error, result, status_code) */ this.request('DELETE', util.format('/alert/%s', alert_id), callback); }; alert_api.prototype.get_all_alerts = function(callback){ /* * alert_api.get_all_alerts([callback]) * * get the details of all alerts in datadog * * `callback` an optional function to call with the results * callback(error, result, status_code) */ this.request('GET', '/alert', callback); }; alert_api.prototype.mute_alerts = function(callback){ /* * alert_api.mute_alerts([callback]) * * mute all alerts * * `callback` an optional function to call with the results * callback(error, result, status_code) */ this.request('POST', '/mute_alerts', callback); }; alert_api.prototype.unmute_alerts = function(callback){ /* * alert_api.unmute_alerts([callback]) * * unmute all alerts * * `callback` an optional function to call with the results * callback(error, result, status_code) */ this.request('POST', '/unmute_alerts', callback); }; return module.exports = alert_api;