Progress Software · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for WhatsUp Gold Monitor API

16 actions 16 updates phrasing extends openapi/progress-software-monitor-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Progress Software's API. It is a proposal applied on top of the contract, not a document Progress Software publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 16

$.info
$.paths['/api/v1/monitors/{monitorId}/assignments/-'].get
$.paths['/api/v1/monitors/{monitorId}/assignments/-'].delete
$.paths['/api/v1/monitors/-/assignments/-'].get
$.paths['/api/v1/monitors/-/assignments/-'].delete
$.paths['/api/v1/monitors/{monitorId}'].get
$.paths['/api/v1/monitors/{monitorId}'].put
$.paths['/api/v1/monitors/{monitorId}'].delete
$.paths['/api/v1/monitors/-'].get
$.paths['/api/v1/monitors/-'].post
$.paths['/api/v1/monitors/-'].delete
$.paths['/api/v1/monitors/-'].patch
$.paths['/api/v1/monitors/-/config/supported-types'].get
$.paths['/api/v1/monitors/{monitorId}/config/template'].get
$.paths['/api/v1/monitors/-/config/template'].get
$.paths['/api/v1/monitors/-/config/template'].patch

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 WhatsUp Gold Monitor API
  version: 1.0.0
extends: openapi/progress-software-monitor-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: 15
- target: $.paths['/api/v1/monitors/{monitorId}/assignments/-'].get
  update:
    x-apievangelist-phrasing:
      intent: List the devices one monitor is assigned to
      effect: read
      questions:
      - Which devices is a specific monitor currently assigned to?
      - Can I page through a single monitor's assignments and include device details?
      instructions:
      - text: List the assignments for monitor {monitorId}.
        slots:
          monitorId: path.monitorId
      - text: Show the {type} assignments of monitor {monitorId}, {limit} per page.
        slots:
          type: query.type
          monitorId: path.monitorId
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/{monitorId}/assignments/-'].delete
  update:
    x-apievangelist-phrasing:
      intent: Unassign one monitor from its devices
      effect: destructive
      questions:
      - How do I remove a monitor from every device it's assigned to without deleting the monitor itself?
      - Will unassigning a monitor skip devices I don't have rights to change?
      instructions:
      - text: Remove all {type} assignments of monitor {monitorId}.
        slots:
          type: query.type
          monitorId: path.monitorId
      - text: Detach monitor {monitorId} from the devices it watches for assignment type {type}.
        slots:
          monitorId: path.monitorId
          type: query.type
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-/assignments/-'].get
  update:
    x-apievangelist-phrasing:
      intent: List monitor assignments across all monitors
      effect: read
      questions:
      - What monitor assignments are active across all my devices?
      - Can I search every monitor assignment by monitor type name or class ID?
      instructions:
      - text: List all monitor assignments in the library.
      - text: Find assignments across all monitors whose type name contains {search}.
        slots:
          search: query.search
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-/assignments/-'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk-remove monitor assignments by search
      effect: destructive
      questions:
      - How can I strip every assignment for monitors matching a search term in one call?
      - Can bulk unassignment also cover system and core monitors?
      instructions:
      - text: Remove assignments for every monitor matching {search}.
        slots:
          search: query.search
      - text: Bulk-unassign all {type} monitors, including system monitors set to {includeSystemMonitors}.
        slots:
          type: query.type
          includeSystemMonitors: query.includeSystemMonitors
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/{monitorId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one monitor from the library
      effect: read
      questions:
      - What is configured on a specific monitor in WhatsUp Gold's library?
      - Can I fetch a single monitor's details by its ID?
      instructions:
      - text: Get monitor {monitorId}.
        slots:
          monitorId: path.monitorId
      - text: Show the {view} view of {type} monitor {monitorId}.
        slots:
          view: query.view
          type: query.type
          monitorId: path.monitorId
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/{monitorId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a monitor's configuration
      effect: write
      questions:
      - How do I change the configuration properties of an existing monitor?
      - Does sending an empty properties array reset a monitor to its default configuration?
      instructions:
      - text: Update {type} monitor {monitorId} with configuration {propertyBags}.
        slots:
          type: query.type
          monitorId: path.monitorId
          propertyBags: requestBody.propertyBags
      - text: Rename {type} monitor {monitorId} to {name} and set use in discovery to {useInDiscovery}.
        slots:
          type: query.type
          monitorId: path.monitorId
          name: requestBody.name
          useInDiscovery: requestBody.useInDiscovery
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/{monitorId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a monitor from the library
      effect: destructive
      questions:
      - How do I delete one monitor from the library?
      - Can I stop a monitor from being deleted if it's still in use?
      instructions:
      - text: Delete {type} monitor {monitorId}.
        slots:
          type: query.type
          monitorId: path.monitorId
      - text: Delete {type} monitor {monitorId} only if it's not in use, fail-if-in-use {failIfInUse}.
        slots:
          type: query.type
          monitorId: path.monitorId
          failIfInUse: query.failIfInUse
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-'].get
  update:
    x-apievangelist-phrasing:
      intent: List monitors in the library
      effect: read
      questions:
      - Which monitors are in my library, and can I include device-specific ones?
      - Is it possible to search monitors by display name or class ID?
      instructions:
      - text: List all monitors in the library.
      - text: Find {type} monitors whose name contains {search}, {limit} per page.
        slots:
          type: query.type
          search: query.search
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a monitor to the library
      effect: write
      questions:
      - How do I add a new monitor to the library?
      - Can I create a monitor that's owned by a specific device?
      instructions:
      - text: Create monitor {name} of type {monitorTypeInfo} with configuration {propertyBags}.
        slots:
          name: requestBody.name
          monitorTypeInfo: requestBody.monitorTypeInfo
          propertyBags: requestBody.propertyBags
      - text: Add a monitor named {name} described as {description} and owned by device {ownedByDevice}.
        slots:
          name: requestBody.name
          description: requestBody.description
          ownedByDevice: requestBody.ownedByDevice
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk-delete monitors matching a search
      effect: destructive
      questions:
      - How can I delete every monitor whose name matches a search term?
      - Will a bulk monitor delete skip monitors still in use?
      instructions:
      - text: Delete all {type} monitors matching {search}.
        slots:
          type: query.type
          search: query.search
      - text: Bulk-delete monitors matching {search}, including device-specific ones set to {includeDeviceMonitors}.
        slots:
          search: query.search
          includeDeviceMonitors: query.includeDeviceMonitors
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-'].patch
  update:
    x-apievangelist-phrasing:
      intent: Apply batched adds, changes and removals to monitors
      effect: write
      questions:
      - Can I add, change and remove several monitors in one request?
      - What's the way to batch-edit the monitor library in a single call?
      instructions:
      - text: In one batch, add monitors {adds} and remove monitors {remove}.
        slots:
          adds: requestBody.adds
          remove: requestBody.remove
      - text: Apply the monitor changes {changes} to the library in a single batch.
        slots:
          changes: requestBody.changes
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-/config/supported-types'].get
  update:
    x-apievangelist-phrasing:
      intent: List supported monitor types
      effect: read
      questions:
      - What kinds of monitors does WhatsUp Gold support?
      - Can I include the core monitor types when listing what's supported?
      instructions:
      - text: List the supported monitor types.
      - text: Show supported {type} monitor types, including core types set to {includeCoreMonitorTypes}.
        slots:
          type: query.type
          includeCoreMonitorTypes: query.includeCoreMonitorTypes
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/{monitorId}/config/template'].get
  update:
    x-apievangelist-phrasing:
      intent: Export one monitor as a template
      effect: read
      questions:
      - How do I export a single monitor's configuration as a reusable template?
      - Can I strip passwords from an exported monitor template?
      instructions:
      - text: Export monitor {monitorId} as a template.
        slots:
          monitorId: path.monitorId
      - text: Get the template for monitor {monitorId} with sensitive data obfuscated using key {key}.
        slots:
          monitorId: path.monitorId
          key: query.key
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-/config/template'].get
  update:
    x-apievangelist-phrasing:
      intent: Export many monitors as templates
      effect: read
      questions:
      - Can I export all my monitors as templates to copy to another install?
      - Is there a way to export only monitors matching a search, with secrets blanked out?
      instructions:
      - text: Export templates for all monitors in the library.
      - text: Export templates for monitors matching {search} and replace sensitive data with {replaceSensitiveData}.
        slots:
          search: query.search
          replaceSensitiveData: query.replaceSensitiveData
      method: generated
      generated: '2026-10-01'
- target: $.paths['/api/v1/monitors/-/config/template'].patch
  update:
    x-apievangelist-phrasing:
      intent: Import monitor templates into the library
      effect: write
      questions:
      - How do I import active, passive and performance monitor templates in one go?
      - Do I need the obfuscation key to restore secrets when applying templates?
      instructions:
      - text: Apply active monitor templates {activeMonitors}.
        slots:
          activeMonitors: requestBody.activeMonitors
      - text: Import performance templates {performanceMonitors} and passive templates {passiveMonitors} using key {key}.
        slots:
          performanceMonitors: requestBody.performanceMonitors
          passiveMonitors: requestBody.passiveMonitors
          key: query.key
      method: generated
      generated: '2026-10-01'