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