Skip to main content

Incidents Models

Pydantic models for incident search, filtering, pagination, and detail retrieval in Strata Cloud Manager.

Overview

The Incidents models provide data validation for:

  • Building search queries with filter rules and pagination
  • Parsing incident search responses with metadata
  • Representing individual incidents with severity, status, and impacted objects
  • Detailed incident information with alerts and remediation steps

Request Models

FilterRuleModel

FieldTypeRequiredDescription
propertystrYesThe property to filter on
operatorstrYesThe filter operator (e.g., in, equals)
valuesList[Any]YesThe values to filter by

PaginationModel

FieldTypeRequiredDefaultDescription
page_sizeintNo50Number of results per page
page_numberintNo1Page number to retrieve
order_byOptional[List[Dict]]NoNoneOrdering specification

IncidentSearchRequestModel

FieldTypeRequiredDescription
filterOptional[FilterObjectModel]NoFilter rules container
paginationOptional[PaginationModel]NoPagination parameters

Response Models

IncidentSearchResponseModel

FieldTypeRequiredDescription
headerIncidentSearchResponseHeaderModelYesResponse metadata (pagination, counts)
dataList[IncidentModel]NoList of matching incidents

IncidentModel

FieldTypeRequiredDescription
incident_idstrYesUnique incident identifier
titlestrYesIncident title
severitystrYesSeverity level (Critical, High, etc.)
severity_idOptional[int]NoNumeric severity identifier
statusstrYesIncident status (Raised, Cleared)
priorityOptional[str]NoPriority level
productstrYesProduct (NGFW, Prisma Access, etc.)
categoryOptional[str]NoIncident category
sub_categoryOptional[str]NoIncident sub-category
codeOptional[str]NoIncident code identifier
raised_timeOptional[int]NoEpoch timestamp when raised
updated_timeOptional[int]NoEpoch timestamp of last update
cleared_timeOptional[int]NoEpoch timestamp when cleared
incident_typeOptional[str]NoType classification
acknowledgedOptional[bool]NoWhether incident is acknowledged
primary_impacted_objectsOptional[ImpactedObjectsModel]NoPrimary impacted resources
related_impacted_objectsOptional[ImpactedObjectsModel]NoRelated impacted resources
snow_ticket_idOptional[str]NoServiceNow ticket ID

IncidentDetailModel

Extends IncidentModel with additional fields:

FieldTypeRequiredDescription
descriptionOptional[str]NoDetailed incident description
remediationsOptional[str]NoJSON string with remediation steps
detailOptional[str]NoJSON string with detailed alert info
alertsOptional[List[AlertModel]]NoAssociated alerts
resource_keysOptional[str]NoJSON string with resource identifiers
resource_contextOptional[str]NoJSON string with contextual info
incident_codeOptional[str]NoIncident code
incident_settings_idOptional[str]NoIncident settings identifier

Component Models

AlertModel

FieldTypeRequiredDescription
alert_idstrYesUnique alert identifier
severityOptional[str]NoAlert severity
stateOptional[str]NoAlert state
titleOptional[str]NoAlert title
updated_timeOptional[int]NoLast update timestamp
domainOptional[str]NoAlert domain
codeOptional[str]NoAlert code

ImpactedObjectsModel

All fields are Optional[List[str]] and default to None. Key fields include:

FieldDescription
device_idsImpacted device identifiers
host_namesImpacted host names
interfacesImpacted network interfaces
locationsImpacted locations
zonesImpacted security zones
site_namesImpacted site names
tunnel_namesImpacted tunnel names
certificate_namesImpacted certificates
cvesRelated CVE identifiers

Usage Examples

Creating a Search Request

from scm.models.incidents.incidents import (
FilterRuleModel,
PaginationModel,
IncidentSearchRequestModel,
)

# Build a search request
request = IncidentSearchRequestModel(
filter={"rules": [
{"property": "status", "operator": "in", "values": ["Raised"]},
{"property": "severity", "operator": "in", "values": ["Critical"]},
]},
pagination={"page_size": 25, "page_number": 1}
)

Parsing a Search Response

from scm.models.incidents.incidents import IncidentSearchResponseModel

response = IncidentSearchResponseModel(**api_response)
for incident in response.data:
print(f"{incident.severity}: {incident.title} ({incident.status})")

Working with Incident Details

from scm.models.incidents.incidents import IncidentDetailModel

detail = IncidentDetailModel(**api_response)
print(f"Title: {detail.title}")
if detail.alerts:
for alert in detail.alerts:
print(f" Alert: {alert.title}")