GetFieldsByIncidentType
Returns the incident field names associated to the specified incident type.
python · Common Scripts
Source
from pprint import pformat import demistomock as demisto from CommonServerPython import * def main(): # get incident fields res = demisto.executeCommand("core-api-get", {"uri": "/incidentfields"}) if is_error(res): return_error(res[0]["Contents"]) fields = res[0]["Contents"]["response"] # 'fields' contains non-incident fields (evidence and indicator), as well, so let's make a version # containing only incident fields incident_fields = [field for field in fields if field["id"].startswith("incident_")] # get arguments args = demisto.args() incident_type = args["incident_type"] exclude_system = False if "exclude_system" in args and argToBoolean(args["exclude_system"]): exclude_system = True name_key = "name" if "short_names" in args and argToBoolean(args["short_names"]): name_key = "cliName" explicit_only = False if "explicit_only" in args and argToBoolean(args["explicit_only"]): explicit_only = True # generate results matched_fields = [] for field in incident_fields: # using multiple if statements for readability if exclude_system and not field["system"]: # skip non-system fields if exclude_system is true continue elif field["associatedToAll"] and not explicit_only: # if explicit_only is false, include fields associated to all incident types matched_fields.append(field[name_key]) elif field["associatedTypes"] is not None and incident_type in field["associatedTypes"]: # include fields where incident type is in associatedTypes matched_fields.append(field[name_key]) # output results if "pprint" in args and argToBoolean(args["pprint"]): demisto.results(pformat(matched_fields)) else: demisto.results(matched_fields) if __name__ in ["__builtin__", "builtins"]: main()
README
Troubleshooting
Multi-tenant environments should be configured with the Cortex Rest API instance when using this
automation. Make sure the Use tenant parameter (in the Cortex Rest API integration) is checked
to ensure that API calls are made to the current tenant instead of the master tenant.