IsIncidentPartOfCampaign
Gets the ID of an incident campaign that is linked to at least one of the given incidents.
- Type
- python
- Pack
- Campaign
Source
import demistomock as demisto # noqa: F401
from CommonServerPython import * # noqa: F401
from GetIncidentsApiModule import * # noqa: E402
def get_campaign_ids_by_incidents(incidents_ids_set: set) -> list:
"""
Gets a list of campaign incidents ids for the given type and linked incident IDs.
Args:
incidents_ids_set (set): A set of incident IDs.
Returns:
List of ids as strings.
"""
search_args = {
"query": f'partofcampaign:* incident.id:({" ".join(incidents_ids_set)})',
"sort": {
"field": "occurred",
"asc": False,
},
}
incidents = get_incidents_by_query(search_args)
campaign_ids = [i.get("partofcampaign") for i in incidents if i.get("partofcampaign") != "None"]
demisto.debug(f"Found campaign incident ids: {campaign_ids}")
return campaign_ids
def main():
try:
args = demisto.args()
incidents_ids_set = set(argToList(args.get("IncidentIDs", "")))
campaign_id = None
if campaigns_ids_list := get_campaign_ids_by_incidents(incidents_ids_set):
campaign_id = campaigns_ids_list[0]
readable = f"Found campaign with ID - {campaign_id}"
else:
# did not find a relevant campaign
campaign_id = None
readable = "No campaign was found"
return CommandResults(readable_output=readable, outputs={"ExistingCampaignID": campaign_id}, raw_response=readable)
except Exception as ex: # pylint: disable=broad-except pragma: no cover
return_error(f"Failed to execute. Error: {ex!s}", error=ex)
""" ENTRY POINT """
if __name__ in ("__main__", "__builtin__", "builtins"): # pragma: no cover
return_results(main())
README
Gets the ID of an incident campaign that is linked to at least one of the given incidents.
Permissions
This automation runs using the default Limited User role, unless you explicitly change the permissions.
For more information, see the section about permissions here: For Cortex XSOAR 6, see the https://docs-cortex.paloaltonetworks.com/r/Cortex-XSOAR/6.x/Cortex-XSOAR-Playbook-Design-Guide/Automations for Cortex XSOAR 8 Cloud, see the https://docs-cortex.paloaltonetworks.com/r/Cortex-XSOAR/8/Cortex-XSOAR-Cloud-Documentation/Create-a-script for Cortex XSOAR 8 On-prem, see the https://docs-cortex.paloaltonetworks.com/r/Cortex-XSOAR/8.7/Cortex-XSOAR-On-prem-Documentation/Create-a-script.
Script Data
| Name | Description |
|---|---|
| Script Type | python3 |
| Tags | phishing, campaign |
| Cortex XSOAR Version | 5.5.0 |
Inputs
| Argument Name | Description |
|---|---|
| IncidentIDs | A comma-separated list of incidents ids to search an incident campaign for. |
Outputs
| Path | Description | Type |
|---|---|---|
| ExistingCampaignID | The ID of an incident campaign that is linked to at least one of the given incidents. | String |