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.
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
# 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'