Tenable · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Identity Exposure Profile API

9 actions 9 updates phrasing extends openapi/tenable-profile-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 9

$.info
$.paths['/api/profiles'].get
$.paths['/api/profiles'].post
$.paths['/api/profiles/{id}'].get
$.paths['/api/profiles/{id}'].delete
$.paths['/api/profiles/{id}'].patch
$.paths['/api/profiles/from/{fromId}'].post
$.paths['/api/profiles/{id}/unstage'].post
$.paths['/api/profiles/{id}/commit'].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 Identity Exposure Profile API
  version: 1.0.0
extends: openapi/tenable-profile-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: 8
- target: $.paths['/api/profiles'].get
  update:
    x-apievangelist-phrasing:
      intent: List security profiles
      effect: read
      questions:
      - Which security profiles exist?
      - Can I list every profile?
      instructions:
      - text: List all profiles.
      - text: Show every security profile.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a security profile
      effect: write
      questions:
      - How do I create a new blank security profile?
      - Can I add a profile from scratch?
      instructions:
      - text: Create a new security profile.
      - text: Add a blank profile.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a security profile
      effect: read
      questions:
      - How do I view one profile's settings?
      - Which directories does a profile cover?
      instructions:
      - text: Get profile {id}.
        slots:
          id: path.id
      - text: Show the details of security profile {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a security profile
      effect: destructive
      questions:
      - How do I remove a profile I no longer need?
      - Can I delete a security profile?
      instructions:
      - text: Delete profile {id}.
        slots:
          id: path.id
      - text: Remove security profile {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Rename or rescope a profile
      effect: write
      questions:
      - Can I rename a security profile?
      - How do I change the directories a profile covers?
      instructions:
      - text: Rename profile {id} to {name}.
        slots:
          id: path.id
          name: requestBody.name
      - text: Set directories {directories} on profile {id}.
        slots:
          directories: requestBody.directories
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/from/{fromId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Copy a profile into a new one
      effect: write
      questions:
      - Can I clone an existing profile as a starting point?
      - How do I duplicate a profile with different directories?
      instructions:
      - text: Create profile {name} from profile {fromId} for directories {directories}.
        slots:
          name: requestBody.name
          fromId: path.fromId
          directories: requestBody.directories
      - text: Clone profile {fromId} as {name} covering {directories}.
        slots:
          fromId: path.fromId
          name: requestBody.name
          directories: requestBody.directories
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/{id}/unstage'].post
  update:
    x-apievangelist-phrasing:
      intent: Discard a profile's staged changes
      effect: destructive
      questions:
      - How do I throw away uncommitted changes on a profile?
      - Can I undo staged checker options before committing?
      instructions:
      - text: Unstage the pending changes on profile {id}.
        slots:
          id: path.id
      - text: Discard staged edits to profile {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/profiles/{id}/commit'].post
  update:
    x-apievangelist-phrasing:
      intent: Commit a profile's staged changes
      effect: write
      questions:
      - How do I apply staged changes to a profile?
      - Do checker option changes take effect before I commit them?
      instructions:
      - text: Commit the staged changes on profile {id}.
        slots:
          id: path.id
      - text: Apply pending edits to profile {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-10-01'