Cross-Provider Workflow

Palo Alto Security Advisory Digest to SendGrid Email

Version 1.0.0

List Palo Alto security advisories, read one in detail, and email a digest via SendGrid.

1 workflow 2 source APIs 2 providers
View Spec View on GitHub ArazzoWorkflowsCross-Provider

Providers Orchestrated

palo-alto-networks sendgrid

Workflows

advisory-digest-email
List Palo Alto advisories, read one, and email a digest via SendGrid.
Lists Palo Alto security advisories, retrieves the detail of a selected advisory, and emails a digest to a distribution list through SendGrid.
3 steps inputs: advisoryId, recipientEmail outputs: advisorySeverity, messageStatus
1
list-advisories
$sourceDescriptions.securityAdvisoryApi.listAdvisories
List published Palo Alto Networks security advisories.
2
get-advisory
$sourceDescriptions.securityAdvisoryApi.getAdvisory
Retrieve the full detail of the selected advisory.
3
email-digest
$sourceDescriptions.sendgridMailApi.SendMail
Email the advisory digest to a distribution list via SendGrid.

Source API Descriptions

Arazzo Workflow Specification

sec-palo-security-advisory-to-sendgrid.yml Raw ↑
arazzo: 1.0.1
info:
  title: Palo Alto Security Advisory Digest to SendGrid Email
  summary: List Palo Alto security advisories, read one in detail, and email a digest via SendGrid.
  description: >-
    A vulnerability awareness workflow that lists published Palo Alto Networks security
    advisories, retrieves the full detail of a selected advisory, and emails a digest to a
    security distribution list through SendGrid's Mail Send API. Demonstrates orchestrating a
    security advisory feed with a communications provider in a single Arazzo workflow.
  version: 1.0.0
sourceDescriptions:
  - name: securityAdvisoryApi
    url: https://raw.githubusercontent.com/api-evangelist/palo-alto-networks/refs/heads/main/openapi/palo-alto-security-advisory-api-openapi-original.yml
    type: openapi
  - name: sendgridMailApi
    url: https://raw.githubusercontent.com/api-evangelist/sendgrid/refs/heads/main/openapi/tsg_mail_v3.yaml
    type: openapi
workflows:
  - workflowId: advisory-digest-email
    summary: List Palo Alto advisories, read one, and email a digest via SendGrid.
    description: >-
      Lists Palo Alto security advisories, retrieves the detail of a selected advisory, and
      emails a digest to a distribution list through SendGrid.
    inputs:
      type: object
      properties:
        advisoryId:
          type: string
        recipientEmail:
          type: string
    steps:
      - stepId: list-advisories
        description: List published Palo Alto Networks security advisories.
        operationId: $sourceDescriptions.securityAdvisoryApi.listAdvisories
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          advisoryCount: $response.body#/data/0/id
      - stepId: get-advisory
        description: Retrieve the full detail of the selected advisory.
        operationId: $sourceDescriptions.securityAdvisoryApi.getAdvisory
        parameters:
          - name: id
            in: path
            value: $inputs.advisoryId
        successCriteria:
          - condition: $statusCode == 200
        outputs:
          advisorySeverity: $response.body#/data/severity
          advisoryTitle: $response.body#/data/title
      - stepId: email-digest
        description: Email the advisory digest to a distribution list via SendGrid.
        operationId: $sourceDescriptions.sendgridMailApi.SendMail
        requestBody:
          contentType: application/json
          payload:
            personalizations:
              - to:
                  - email: $inputs.recipientEmail
                subject: Palo Alto security advisory digest
            from:
              email: [email protected]
            content:
              - type: text/plain
                value: A new Palo Alto Networks security advisory is available for review.
        successCriteria:
          - condition: $statusCode == 202
        outputs:
          messageStatus: $statusCode
    outputs:
      advisorySeverity: $steps.get-advisory.outputs.advisorySeverity
      messageStatus: $steps.email-digest.outputs.messageStatus