diff --git a/src/cbapi/response/models.py b/src/cbapi/response/models.py index 7b7cc853..aa454e7b 100644 --- a/src/cbapi/response/models.py +++ b/src/cbapi/response/models.py @@ -254,8 +254,9 @@ def _bulk_update(self, payload): return None - def set_ignored(self, ignored_flag=True): - payload = {"updates": {"is_ignored": ignored_flag, "requested_status": "False Positive"}} + def set_ignored(self, ignored_flag=True, status="False Positive"): + """Ignore all future Alerts from the Report that triggered this Alert.""" + payload = {"set_ignored": ignored_flag, "requested_status": status} return self._bulk_update(payload) def assign(self, target): @@ -263,6 +264,9 @@ def assign(self, target): return self._bulk_update(payload) def change_status(self, new_status): + allowed_statuses = ["In Progress", "Unresolved", "Resolved", "False Positive"] + if new_status not in allowed_statuses: + raise ApiError("Alert status must be one of {0}".format(allowed_statuses)) payload = {"requested_status": new_status} return self._bulk_update(payload) @@ -294,9 +298,10 @@ def refresh(self): self._info = result[0] self._last_refresh_time = time.time() return True - - def set_ignored(self, ignored_flag=True): - payload = {"updates": {"is_ignored": ignored_flag, "requested_status": "False Positive"}} + + def set_ignored(self, ignored_flag=True, status="False Positive"): + """Ignore all future Alerts from the Report that triggered this Alert.""" + payload = {"set_ignored": ignored_flag, "requested_status": status} payload["alert_ids"] = [self.unique_id] return self._cb.post_object("/api/v1/alerts", payload) @@ -306,9 +311,12 @@ def assign(self, target): return self._cb.post_object("/api/v1/alerts", payload) def change_status(self, new_status): - payload = {"requested_status": new_status} - payload["alert_ids"] = [self.unique_id] - return self._cb.post_object("/api/v1/alerts", payload) + allowed_statuses = ["In Progress", "Unresolved", "Resolved", "False Positive"] + if new_status not in allowed_statuses: + raise ApiError("Alert status must be one of {0}".format(allowed_statuses)) + payload = {"status": new_status} + payload["unique_id"] = self.unique_id + return self._cb.post_object("/api/v1/alert/{0}".format(self.unique_id), payload) @property def process(self):