Palo Alto Networks · Arazzo Workflow

IoT Security Alert Investigation and Resolution

Version 1.0.0

List unresolved IoT Security alerts, inspect one, then mark it resolved with a reason.

1 workflow 1 source API 1 provider
View Spec View on GitHub Cloud SecurityCybersecurityFirewallNetwork SecuritySASESOARThreat IntelligenceXDRArazzoWorkflows

Provider

palo-alto-networks

Workflows

resolve-iot-alert
Investigate an unresolved IoT Security alert and mark it resolved.
Lists unresolved alerts for a tenant, fetches the first alert's detail, and updates its resolution status with a reason.
3 steps inputs: accessKey, customerid, keyId, reason outputs: alertId, deviceId, success
1
listAlerts
listAlerts
List the first page of unresolved alerts for the customer tenant.
2
getAlertDetail
getAlertDetail
Retrieve the full detail of the first unresolved alert.
3
resolveAlert
updateAlert
Mark the inspected alert as resolved with the supplied reason.

Source API Descriptions

Arazzo Workflow Specification

palo-alto-networks-iot-security-alert-remediation-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: IoT Security Alert Investigation and Resolution
  summary: List unresolved IoT Security alerts, inspect one, then mark it resolved with a reason.
  description: >-
    A Palo Alto Networks IoT Security analyst flow. The workflow lists
    unresolved security alerts for a customer tenant, retrieves the full detail
    of the first alert, and then updates the alert's resolution status with a
    documented reason. The IoT Security API key identifier and access key are
    passed inline as the X-Key-Id and X-Access-Key headers on each step, matching
    the spec's dual apiKey security scheme. Every step spells out its request
    inline so the resolution flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: iotSecurityApi
  url: ../openapi/palo-alto-iot-security-api-openapi-original.yml
  type: openapi
workflows:
- workflowId: resolve-iot-alert
  summary: Investigate an unresolved IoT Security alert and mark it resolved.
  description: >-
    Lists unresolved alerts for a tenant, fetches the first alert's detail, and
    updates its resolution status with a reason.
  inputs:
    type: object
    required:
    - keyId
    - accessKey
    - customerid
    - reason
    properties:
      keyId:
        type: string
        description: IoT Security API key identifier (X-Key-Id header).
      accessKey:
        type: string
        description: IoT Security API access key (X-Access-Key header).
      customerid:
        type: string
        description: Customer tenant identifier.
      reason:
        type: string
        description: Reason recorded when resolving the alert.
  steps:
  - stepId: listAlerts
    description: List the first page of unresolved alerts for the customer tenant.
    operationId: listAlerts
    parameters:
    - name: X-Key-Id
      in: header
      value: $inputs.keyId
    - name: X-Access-Key
      in: header
      value: $inputs.accessKey
    - name: customerid
      in: query
      value: $inputs.customerid
    - name: resolved
      in: query
      value: 'no'
    - name: offset
      in: query
      value: 0
    - name: pagelength
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      alertId: $response.body#/alerts/0/id
      total: $response.body#/total
  - stepId: getAlertDetail
    description: Retrieve the full detail of the first unresolved alert.
    operationId: getAlertDetail
    parameters:
    - name: X-Key-Id
      in: header
      value: $inputs.keyId
    - name: X-Access-Key
      in: header
      value: $inputs.accessKey
    - name: customerid
      in: query
      value: $inputs.customerid
    - name: id
      in: query
      value: $steps.listAlerts.outputs.alertId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deviceId: $response.body#/alert/deviceid
      severity: $response.body#/alert/severity
  - stepId: resolveAlert
    description: Mark the inspected alert as resolved with the supplied reason.
    operationId: updateAlert
    parameters:
    - name: X-Key-Id
      in: header
      value: $inputs.keyId
    - name: X-Access-Key
      in: header
      value: $inputs.accessKey
    - name: customerid
      in: query
      value: $inputs.customerid
    - name: id
      in: query
      value: $steps.listAlerts.outputs.alertId
    - name: resolved
      in: query
      value: 'yes'
    - name: reason
      in: query
      value: $inputs.reason
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/success
  outputs:
    alertId: $steps.listAlerts.outputs.alertId
    deviceId: $steps.getAlertDetail.outputs.deviceId
    success: $steps.resolveAlert.outputs.success