Tenable · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Vulnerability Management Scan Tasks API

8 actions 8 updates phrasing extends openapi/tenable-scan-tasks-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Tenable's API. It is a proposal applied on top of the contract, not a document Tenable publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 8

$.info
$.paths['/scans/{scan_id}/schedule'].put
$.paths['/scans/{scan_id}/copy'].post
$.paths['/scans/{scan_id}/credentials/{credentials_id}/upgrade'].post
$.paths['/scans/import'].post
$.paths['/scans/count'].get
$.paths['/scans/timezones'].get
$.paths['/scans/check-auto-targets'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Vulnerability Management Scan Tasks API
  version: 1.0.0
extends: openapi/tenable-scan-tasks-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 7
- target: $.paths['/scans/{scan_id}/schedule'].put
  update:
    x-apievangelist-phrasing:
      intent: Enable or disable a scan schedule
      effect: write
      questions:
      - Can I pause a recurring scan's schedule without deleting the scan?
      - How do I turn a scan's schedule back on?
      instructions:
      - text: Set the schedule of scan {scan_id} enabled to {enabled}.
        slots:
          scan_id: path.scan_id
          enabled: requestBody.enabled
      - text: Disable the recurring schedule on scan {scan_id}.
        slots:
          scan_id: path.scan_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/{scan_id}/copy'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy a scan
      effect: write
      questions:
      - Can I duplicate an existing scan configuration?
      - Is it possible to put a copied scan into a different folder?
      instructions:
      - text: Copy scan {scan_id}.
        slots:
          scan_id: path.scan_id
      - text: Copy scan {scan_id} as {name} into folder {folder_id}.
        slots:
          scan_id: path.scan_id
          name: requestBody.name
          folder_id: requestBody.folder_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/{scan_id}/credentials/{credentials_id}/upgrade'].post
  update:
    x-apievangelist-phrasing:
      intent: Convert scan credentials to managed ones
      effect: write
      questions:
      - Can I turn a credential stored inside a scan into a reusable managed credential?
      - What do I need to supply to upgrade scan-specific credentials?
      instructions:
      - text: Convert credential {credentials_id} in scan {scan_id} to a managed credential named {name}.
        slots:
          credentials_id: path.credentials_id
          scan_id: path.scan_id
          name: requestBody.name
      - text: Upgrade scan {scan_id} credential {credentials_id} to managed credential {name} of type {type}, category {category}, settings {settings}, ad hoc {ad_hoc}.
        slots:
          scan_id: path.scan_id
          credentials_id: path.credentials_id
          name: requestBody.name
          type: requestBody.type
          category: requestBody.category
          settings: requestBody.settings
          ad_hoc: requestBody.ad_hoc
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/import'].post
  update:
    x-apievangelist-phrasing:
      intent: Import a previously uploaded scan
      effect: write
      questions:
      - How do I import a .nessus file I already uploaded?
      - What's the maximum size of a scan I can import?
      instructions:
      - text: Import uploaded scan file {file}.
        slots:
          file: requestBody.file
      - text: Import scan file {file} into folder {folder_id}.
        slots:
          file: requestBody.file
          folder_id: requestBody.folder_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/count'].get
  update:
    x-apievangelist-phrasing:
      intent: Count scans in the container
      effect: read
      questions:
      - How many scans exist in my container?
      - How close am I to the active scan limit right now?
      instructions:
      - text: Count all scans in my container.
      - text: Count only active scans with active set to {active}.
        slots:
          active: query.active
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/timezones'].get
  update:
    x-apievangelist-phrasing:
      intent: List timezones for scan schedules
      effect: read
      questions:
      - Which timezone values are valid for a recurring scan schedule?
      - What timezone names does the scheduler accept?
      instructions:
      - text: List the timezones I can use when scheduling a scan.
      - text: Show valid scan schedule timezones.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/scans/check-auto-targets'].post
  update:
    x-apievangelist-phrasing:
      intent: Test which scanner groups route targets
      effect: read
      questions:
      - Which scanner groups would pick up these targets under my scan routing?
      - Are any of my targets missed by every scanner group's routes?
      instructions:
      - text: Test scan routes for targets {target_list} in network {network_uuid}.
        slots:
          target_list: requestBody.target_list
          network_uuid: requestBody.network_uuid
      - text: Check which scanner groups match tags {tags} in network {network_uuid}.
        slots:
          tags: requestBody.tags
          network_uuid: requestBody.network_uuid
      method: generated
      generated: '2026-10-01'