VectraRUXGetIncidents

Get the incidents with the type Vectra RUX Events Detection.

python · Vectra RUX

Source

import demistomock as demisto  # noqa: F401
from CommonServerPython import *  # noqa: F401


DEFAULT_INCIDENT_TYPE = "Vectra RUX Events Detection"


def check_if_found_incident(res: list):
    """Check whether the getIncidents response contains any incidents.

    Args:
        res (list): Raw response from the getIncidents command.

    Returns:
        bool: True if incidents were found, False if the data field is None.

    Raises:
        DemistoException: If the response structure is invalid or contains an error.
    """
    if res and isinstance(res, list) and isinstance(res[0].get("Contents"), dict):
        if "data" not in res[0]["Contents"]:
            raise DemistoException(str(res[0].get("Contents")))
        elif res[0]["Contents"]["data"] is None:
            return False
        return True
    else:
        raise DemistoException(f"failed to get incidents from xsoar.\nGot: {res}")


def search_incidents(args: dict):  # pragma: no cover
    res: list = execute_command("getIncidents", args, extract_contents=False)
    incident_found: bool = check_if_found_incident(res)
    if not incident_found:
        return "Incidents not found.", {}, {}

    all_found_incidents = res[0]["Contents"]["data"]

    headers = ["id", "name", "severity", "status", "owner", "created", "closed"]
    md = tableToMarkdown(name="Incidents found", t=all_found_incidents, headers=headers)

    demisto.debug(f"amount of all the incidents that were found {len(all_found_incidents)}")

    return md, all_found_incidents, res


def main():  # pragma: no cover
    args: dict = demisto.args()
    incident_type = args.get("incident_type", DEFAULT_INCIDENT_TYPE)
    args.update({"size": 50, "sort": "created.asc", "query": f'-status:closed -category:job type:"{incident_type}"'})
    try:
        readable_output, outputs, raw_response = search_incidents(args)
        results = CommandResults(
            outputs_prefix="VectraRUXGetIncidents",
            outputs_key_field="id",
            readable_output=readable_output,
            outputs=outputs,
            raw_response=raw_response,
        )
        return_results(results)
    except DemistoException as error:
        return_error(str(error), error)


if __name__ in ("__main__", "__builtin__", "builtins"):  # pragma: no cover
    main()

README

Get the incidents with the type Vectra RUX Events Detection.

Script Data


Name Description
Script Type python3
Cortex XSOAR Version 6.10.0

Inputs


Argument Name Description
page Provide the page number. A single page has a maximum of 50 incidents.
incident_type The XSOAR incident type to search for inactive detections. Default is ‘Vectra RUX Events Detection’.

Outputs


Path Description Type
VectraRUXGetIncidents.id Incident ID. String
VectraRUXGetIncidents.name Incident name. String
VectraRUXGetIncidents.CustomFields.vectraruxdetectionid Vectra RUX detection ID linked to this incident. String