# 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 Device API version: 1.0.0 extends: openapi/progress-software-device-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: 63 - target: $.paths['/api/v1/devices/{deviceId}/attributes/{attributeId}'].get update: x-apievangelist-phrasing: intent: Get one custom attribute on a device effect: read questions: - What value does a single custom attribute hold on one of my WhatsUp Gold devices? - Can I look up one specific device attribute by its ID? instructions: - text: Show attribute {attributeId} on device {deviceId}. slots: attributeId: path.attributeId deviceId: path.deviceId - text: Fetch the name and value of device attribute {attributeId} for {deviceId}. slots: attributeId: path.attributeId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/{attributeId}'].put update: x-apievangelist-phrasing: intent: Change an existing device attribute effect: write questions: - How can I rename or change the value of an attribute already on a device? - Is it possible to edit one existing device attribute without touching the others? instructions: - text: Set existing attribute {attributeId} on device {deviceId} to name {name} with value {value}. slots: attributeId: path.attributeId deviceId: path.deviceId name: query.name value: query.value - text: Rename attribute {attributeId} on device {deviceId} to {name}. slots: attributeId: path.attributeId deviceId: path.deviceId name: query.name method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/{attributeId}'].delete update: x-apievangelist-phrasing: intent: Delete one attribute from a device effect: destructive questions: - How do I remove a single custom attribute from a device? - Can I delete just one attribute by ID and keep the rest on the device? instructions: - text: Delete attribute {attributeId} from device {deviceId}. slots: attributeId: path.attributeId deviceId: path.deviceId - text: Remove only the attribute {attributeId} on {deviceId}. slots: attributeId: path.attributeId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/-'].get update: x-apievangelist-phrasing: intent: List a device's custom attributes effect: read questions: - Which custom attributes are set on this device? - Can I filter a device's attributes by text in the name or the value? - What attributes on a device have a value containing a certain string? instructions: - text: List all attributes on device {deviceId}. slots: deviceId: path.deviceId - text: Find attributes on device {deviceId} whose name contains {nameContains}. slots: deviceId: path.deviceId nameContains: query.nameContains - text: Show up to {limit} attributes on {deviceId} with values containing {valueContains}. slots: limit: query.limit deviceId: path.deviceId valueContains: query.valueContains method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/-'].post update: x-apievangelist-phrasing: intent: Add a new custom attribute to a device effect: write questions: - How do I tag a device with a new name/value attribute? - Can I attach a custom attribute like a location or owner to a monitored device? instructions: - text: Add attribute {name} with value {value} to device {deviceId}. slots: name: query.name value: query.value deviceId: path.deviceId - text: Create a new attribute named {name} on device {deviceId}. slots: name: query.name deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/-'].delete update: x-apievangelist-phrasing: intent: Clear all or matching attributes from a device effect: destructive questions: - How do I wipe every custom attribute off a device at once? - Can I bulk-remove only the device attributes whose names match a pattern? instructions: - text: Delete every attribute on device {deviceId}. slots: deviceId: path.deviceId - text: Remove all attributes on {deviceId} whose name contains {nameContains}. slots: deviceId: path.deviceId nameContains: query.nameContains method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/attributes/-'].patch update: x-apievangelist-phrasing: intent: Add, change and remove device attributes in one call effect: write questions: - Can I add new attributes and delete old ones on a device in a single request? - Is there a batch way to modify several attributes of one device together? instructions: - text: On device {deviceId}, add attributes {attributesToAdd} and delete attributes named {attributeNamesToDelete} in one batch. slots: deviceId: path.deviceId attributesToAdd: requestBody.attributesToAdd attributeNamesToDelete: requestBody.attributeNamesToDelete - text: Run a batch attribute change on {deviceId} that modifies {attributeToModify}. slots: deviceId: path.deviceId attributeToModify: requestBody.attributeToModify method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/group/{groupId}'].delete update: x-apievangelist-phrasing: intent: Remove a device from one static group effect: destructive questions: - How do I take a device out of a static device group? - Why can't I remove a device's last static group or a dynamic group assignment? instructions: - text: Remove device {deviceId} from group {groupId}. slots: deviceId: path.deviceId groupId: path.groupId - text: Unassign group {groupId} from device {deviceId}. slots: groupId: path.groupId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/group/-'].get update: x-apievangelist-phrasing: intent: List the groups a device belongs to effect: read questions: - Which device groups is this device a member of? - Can I filter a device's group memberships by group type? instructions: - text: List the groups device {deviceId} is assigned to. slots: deviceId: path.deviceId - text: Show {type} group assignments for device {deviceId}. slots: type: query.type deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/group/-'].put update: x-apievangelist-phrasing: intent: Assign a device to a group effect: write questions: - How do I put a device into a device group? - Can I add a single group assignment to an existing device? instructions: - text: Assign device {deviceId} to a device group. slots: deviceId: path.deviceId - text: Add a group membership to device {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/group/-'].patch update: x-apievangelist-phrasing: intent: Add and remove several group memberships at once effect: write questions: - Can I move a device between groups by adding and removing memberships in one request? - Is there a batch call to change many group assignments for one device? instructions: - text: For device {deviceId}, add groups {groupsToAdd} and remove groups {groupsToDelete} in one batch. slots: deviceId: path.deviceId groupsToAdd: requestBody.groupsToAdd groupsToDelete: requestBody.groupsToDelete - text: Batch-remove group memberships {groupsToDelete} from device {deviceId}. slots: groupsToDelete: requestBody.groupsToDelete deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/group/{groupId}/is-member'].get update: x-apievangelist-phrasing: intent: Check whether a device is in a group effect: read questions: - Is a particular device a member of a given group? - How can I confirm a device was added to a group before running a report? instructions: - text: Check if device {deviceId} is a member of group {groupId}. slots: deviceId: path.deviceId groupId: path.groupId - text: Confirm group {groupId} membership for {deviceId}. slots: groupId: path.groupId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/default'].get update: x-apievangelist-phrasing: intent: Get a device's default network interface effect: read questions: - Which network interface is the default one used for a device? - What address does a device's primary interface use? instructions: - text: Show the default network interface of device {deviceId}. slots: deviceId: path.deviceId - text: Get the primary interface address for {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/{interfaceId}'].get update: x-apievangelist-phrasing: intent: Get one network interface on a device effect: read questions: - How do I look up the details of a specific network interface by its ID? - Can I see the host name and address configured on one device interface? instructions: - text: Show interface {interfaceId} on device {deviceId}. slots: interfaceId: path.interfaceId deviceId: path.deviceId - text: Fetch network interface {interfaceId} details for {deviceId}. slots: interfaceId: path.interfaceId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/{interfaceId}'].put update: x-apievangelist-phrasing: intent: Edit a device's network interface effect: write questions: - How do I change the IP address on an existing device interface? - Can I make an existing interface the default or poll it by host name? instructions: - text: Change interface {interfaceId} on device {deviceId} to address {address}. slots: interfaceId: path.interfaceId deviceId: path.deviceId address: requestBody.address - text: Make interface {interfaceId} the default for device {deviceId}. slots: interfaceId: path.interfaceId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/{interfaceId}'].delete update: x-apievangelist-phrasing: intent: Delete one network interface from a device effect: destructive questions: - How do I remove a stale network interface from a device? - Can I delete one specific interface by its ID? instructions: - text: Delete interface {interfaceId} from device {deviceId}. slots: interfaceId: path.interfaceId deviceId: path.deviceId - text: Remove network interface {interfaceId} on {deviceId}. slots: interfaceId: path.interfaceId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/-'].get update: x-apievangelist-phrasing: intent: List a device's network interfaces effect: read questions: - What network interfaces does a device have? - Can I search a device's interfaces by address or host name? instructions: - text: List the network interfaces on device {deviceId}. slots: deviceId: path.deviceId - text: Search interfaces on {deviceId} for {search}. slots: deviceId: path.deviceId search: query.search method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/-'].post update: x-apievangelist-phrasing: intent: Add a network interface to a device effect: write questions: - How do I add a second IP address or interface to a monitored device? - Can a newly added interface be set as the device's default? instructions: - text: Add a network interface with address {address} to device {deviceId}. slots: address: requestBody.address deviceId: path.deviceId - text: Add interface host name {hostName} to {deviceId} and poll it by name. slots: hostName: requestBody.hostName deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/-'].delete update: x-apievangelist-phrasing: intent: Remove all non-default interfaces from a device effect: destructive questions: - How do I strip every interface except the default one off a device? - Is there a way to clear extra network interfaces in one go? instructions: - text: Delete all network interfaces on device {deviceId} except the default. slots: deviceId: path.deviceId - text: Clear the extra interfaces from {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/interfaces/-'].patch update: x-apievangelist-phrasing: intent: Add, change and remove device interfaces in one call effect: write questions: - Can I add some interfaces and delete others on a device in one batch? - Is there a way to remove interfaces by address or host name while adding new ones? instructions: - text: On device {deviceId}, add interfaces {interfacesToAdd} and delete those at {addressOrHostNameToDelete} in one batch. slots: deviceId: path.deviceId interfacesToAdd: requestBody.interfacesToAdd addressOrHostNameToDelete: requestBody.addressOrHostNameToDelete - text: Run a batch interface change on {deviceId} that modifies {interfaceToModify}. slots: deviceId: path.deviceId interfaceToModify: requestBody.interfaceToModify method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/credentials/{credentialId}'].delete update: x-apievangelist-phrasing: intent: Remove one credential from a device effect: destructive questions: - How do I unassign a specific credential from a device? - Can I keep active monitors from being orphaned when I remove a device credential? instructions: - text: Remove credential {credentialId} from device {deviceId}. slots: credentialId: path.credentialId deviceId: path.deviceId - text: Unassign credential {credentialId} from {deviceId} and prevent orphaned active monitors. slots: credentialId: path.credentialId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/credentials/-'].get update: x-apievangelist-phrasing: intent: List credentials assigned to a device effect: read questions: - Which credentials does a device use for polling? - Can I see only the SNMP or WMI credentials assigned to a device? instructions: - text: List the credentials assigned to device {deviceId}. slots: deviceId: path.deviceId - text: Show {type} credentials on {deviceId}. slots: type: query.type deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/credentials/-'].put update: x-apievangelist-phrasing: intent: Assign a credential to a device effect: write questions: - How do I give a device a credential so it can be polled? - Can I attach a new credential to an existing device? instructions: - text: Assign a credential to device {deviceId}. slots: deviceId: path.deviceId - text: Attach polling credentials to {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/credentials/-'].delete update: x-apievangelist-phrasing: intent: Remove a device's credentials by type effect: destructive questions: - How do I remove all credentials of one type from a device? - Can I clear every credential on a device without naming each ID? instructions: - text: Remove all {type} credentials from device {deviceId}. slots: type: query.type deviceId: path.deviceId - text: Clear every assigned credential on {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/{assignmentId}'].get update: x-apievangelist-phrasing: intent: Get one monitor assignment on a device effect: read questions: - What are the settings of one specific monitor assigned to a device? - Can I check whether a particular monitor assignment is enabled? instructions: - text: Show monitor assignment {assignmentId} on device {deviceId}. slots: assignmentId: path.assignmentId deviceId: path.deviceId - text: Get the details of monitor {assignmentId} for {deviceId}. slots: assignmentId: path.assignmentId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/{assignmentId}'].put update: x-apievangelist-phrasing: intent: Enable, disable or change a device's monitor effect: write questions: - How do I disable one monitor on a device without removing it? - Can I change the active or performance settings of an assigned monitor? instructions: - text: Disable monitor assignment {assignmentId} on device {deviceId}. slots: assignmentId: path.assignmentId deviceId: path.deviceId - text: Set monitor {assignmentId} on {deviceId} to enabled={enabled}. slots: assignmentId: path.assignmentId deviceId: path.deviceId enabled: requestBody.enabled method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/{assignmentId}'].delete update: x-apievangelist-phrasing: intent: Remove one monitor from a device effect: destructive questions: - How do I unassign a single monitor from a device? - Can I delete one monitor assignment by its ID? instructions: - text: Remove monitor assignment {assignmentId} from device {deviceId}. slots: assignmentId: path.assignmentId deviceId: path.deviceId - text: Delete the monitor {assignmentId} on {deviceId}. slots: assignmentId: path.assignmentId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/-'].get update: x-apievangelist-phrasing: intent: List monitors assigned to a device effect: read questions: - Which monitors are watching this device? - Can I list only the enabled active monitors on a device? - What performance monitors are assigned to a device? instructions: - text: List the monitors assigned to device {deviceId}. slots: deviceId: path.deviceId - text: Show only enabled {type} monitors on {deviceId}. slots: type: query.type deviceId: path.deviceId - text: Find monitors on {deviceId} matching {search}. slots: deviceId: path.deviceId search: query.search method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/-'].post update: x-apievangelist-phrasing: intent: Assign a monitor to a device effect: write questions: - How do I start monitoring a device with an active or performance monitor? - Can I assign a monitor to a device by its monitor type name? instructions: - text: Assign monitor type {monitorTypeName} to device {deviceId}. slots: monitorTypeName: requestBody.monitorTypeName deviceId: path.deviceId - text: Add a {type} monitor with type ID {monitorTypeId} to {deviceId}. slots: type: requestBody.type monitorTypeId: requestBody.monitorTypeId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/-'].delete update: x-apievangelist-phrasing: intent: Remove monitors from a device by type or search effect: destructive questions: - How do I remove all passive monitors from a device at once? - Can I bulk-unassign monitors on a device that match a search term? instructions: - text: Remove all {type} monitors from device {deviceId}. slots: type: query.type deviceId: path.deviceId - text: Unassign every monitor on {deviceId} matching {search}. slots: deviceId: path.deviceId search: query.search method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/monitors/-'].patch update: x-apievangelist-phrasing: intent: Batch-change a device's monitor assignments effect: write questions: - Can I add new monitors and remove old ones on a device in one request? - Is there a batch call to change several monitor assignments on a device? instructions: - text: On device {deviceId}, add monitor assignments {newAssignments} and remove {remove} in one batch. slots: deviceId: path.deviceId newAssignments: requestBody.newAssignments remove: requestBody.remove - text: Apply monitor assignment changes {assignmentChanges} to {deviceId}. slots: assignmentChanges: requestBody.assignmentChanges deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/config/polling'].get update: x-apievangelist-phrasing: intent: Get a device's polling settings effect: read questions: - How often is a device being polled? - What is the current polling interval for one device? instructions: - text: Show the polling configuration for device {deviceId}. slots: deviceId: path.deviceId - text: Get the polling interval of {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/config/polling'].put update: x-apievangelist-phrasing: intent: Change one device's polling interval effect: write questions: - How do I make a single device get polled more often? - Can I set a custom polling interval in seconds for one device? instructions: - text: Set the polling interval of device {deviceId} to {pollingIntervalSeconds} seconds. slots: deviceId: path.deviceId pollingIntervalSeconds: requestBody.pollingIntervalSeconds - text: Poll {deviceId} every {pollingIntervalSeconds} seconds. slots: deviceId: path.deviceId pollingIntervalSeconds: requestBody.pollingIntervalSeconds method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/config/maintenance'].put update: x-apievangelist-phrasing: intent: Put one device into or out of maintenance mode effect: write questions: - How do I put a device in maintenance mode so it stops alerting? - Can I set an end time and reason when placing a device in maintenance right now? instructions: - text: Put device {deviceId} into maintenance until {endUtc} because {reason}. slots: deviceId: path.deviceId endUtc: requestBody.endUtc reason: requestBody.reason - text: Take device {deviceId} out of maintenance mode. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/config/maintenance/schedule'].put update: x-apievangelist-phrasing: intent: Schedule maintenance windows for one device effect: write questions: - Can I schedule recurring maintenance windows for a single device? - How do I plan future maintenance for one device instead of starting it now? instructions: - text: Set maintenance schedules {schedules} on device {deviceId}. slots: schedules: requestBody.schedules deviceId: path.deviceId - text: Schedule a maintenance window for {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/poll-now'].put update: x-apievangelist-phrasing: intent: Poll one device immediately effect: write questions: - How do I force an immediate poll of a device instead of waiting for its interval? - Does polling a device now change its regular polling schedule? instructions: - text: Poll device {deviceId} right now. slots: deviceId: path.deviceId - text: Trigger an immediate poll of {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/config/maintenance'].patch update: x-apievangelist-phrasing: intent: Put many devices into maintenance mode effect: write questions: - Can I put a whole list of devices in maintenance mode at once? - How do I end maintenance mode for several devices together? instructions: - text: Put devices {devices} into maintenance until {endUtc} with reason {reason}. slots: devices: requestBody.devices endUtc: requestBody.endUtc reason: requestBody.reason - text: Take devices {devices} out of maintenance mode. slots: devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/config/maintenance/schedule'].patch update: x-apievangelist-phrasing: intent: Schedule maintenance windows for many devices effect: write questions: - Can I apply the same maintenance schedule to many devices? - How do I plan a future maintenance window for a set of devices? instructions: - text: Apply maintenance schedules {schedules} to devices {devices}. slots: schedules: requestBody.schedules devices: requestBody.devices - text: Schedule a shared maintenance window for devices {devices}. slots: devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/config/polling'].patch update: x-apievangelist-phrasing: intent: Set the polling interval for many devices effect: write questions: - Can I change the polling interval on a batch of devices in one request? - How do I slow down polling for a list of devices? instructions: - text: Set the polling interval to {pollingIntervalSeconds} seconds for devices {devices}. slots: pollingIntervalSeconds: requestBody.pollingIntervalSeconds devices: requestBody.devices - text: Apply a bulk polling interval change to devices {devices}. slots: devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/poll-now'].patch update: x-apievangelist-phrasing: intent: Poll several devices immediately effect: write questions: - Can I force an immediate poll of a list of devices at once? - How do I re-poll several devices right after a fix? instructions: - text: Poll devices {devices} immediately. slots: devices: requestBody.devices - text: Trigger an immediate bulk poll of {devices}. slots: devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/properties'].get update: x-apievangelist-phrasing: intent: Get a device's properties effect: read questions: - What display name, note and SNMP OID are set on a device? - Is a device marked as wireless? instructions: - text: Show the properties of device {deviceId}. slots: deviceId: path.deviceId - text: Get the note and display name for {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/properties'].put update: x-apievangelist-phrasing: intent: Edit one device's properties effect: write questions: - How do I rename a device's display name? - Can I add a note or change the action policy on a single device? instructions: - text: Rename device {deviceId} to {displayName}. slots: deviceId: path.deviceId displayName: requestBody.displayName - text: Set the note on device {deviceId} to {note}. slots: deviceId: path.deviceId note: requestBody.note method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/properties'].patch update: x-apievangelist-phrasing: intent: Edit properties across many devices effect: write questions: - Can I set the same note or action policy on many devices at once? - How do I mark a batch of devices as wireless? instructions: - text: Set note {note} on devices {devices}. slots: note: requestBody.note devices: requestBody.devices - text: Apply action policy {actionPolicy} to devices {devices}. slots: actionPolicy: requestBody.actionPolicy devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/refresh'].put update: x-apievangelist-phrasing: intent: Rescan one device to refresh its configuration effect: write questions: - How do I refresh a device's inventory after hardware changes? - Can a single-device rescan also refresh its assigned roles? instructions: - text: Refresh device {deviceId} from the physical device. slots: deviceId: path.deviceId - text: Rescan {deviceId} and drop data older than {dropDataOlderThanHours} hours. slots: deviceId: path.deviceId dropDataOlderThanHours: requestBody.dropDataOlderThanHours method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/refresh'].patch update: x-apievangelist-phrasing: intent: Rescan several devices to refresh configuration effect: write questions: - Can I trigger a discovery rescan of many devices at once? - Is there a way to track the status of a bulk device refresh? instructions: - text: Refresh devices {deviceIds} from their physical configuration. slots: deviceIds: requestBody.deviceIds - text: Bulk-rescan devices {deviceIds} including assigned roles. slots: deviceIds: requestBody.deviceIds method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/{roleId}'].delete update: x-apievangelist-phrasing: intent: Remove one role from a device effect: destructive questions: - How do I remove a specific role assignment from a device? - Can I unassign one device role by its ID? instructions: - text: Remove role {roleId} from device {deviceId}. slots: roleId: path.roleId deviceId: path.deviceId - text: Unassign device role {roleId} on {deviceId}. slots: roleId: path.roleId deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/-'].get update: x-apievangelist-phrasing: intent: List the roles assigned to a device effect: read questions: - Which roles, brand and OS are assigned to a device? - Can I filter a device's roles by kind? instructions: - text: List role assignments for device {deviceId}. slots: deviceId: path.deviceId - text: Show {kind} roles on {deviceId}. slots: kind: query.kind deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/-'].put update: x-apievangelist-phrasing: intent: Assign a role to a device by role ID effect: write questions: - How do I assign an existing device role to a device? - Can I attach a role to a device using the role's ID? instructions: - text: Assign role {roleId} to device {deviceId}. slots: roleId: query.roleId deviceId: path.deviceId - text: Give {deviceId} the device role {roleId}. slots: deviceId: path.deviceId roleId: query.roleId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/-'].delete update: x-apievangelist-phrasing: intent: Remove a device's roles by kind effect: destructive questions: - How do I clear all roles of one kind from a device? - Can I strip every role assignment off a device at once? instructions: - text: Remove all {kind} roles from device {deviceId}. slots: kind: query.kind deviceId: path.deviceId - text: Clear every role assignment on {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/brand'].put update: x-apievangelist-phrasing: intent: Set the brand of one device effect: write questions: - How do I tell the system which hardware brand a device is? - Can I correct the vendor brand detected for one device? instructions: - text: Set the brand of device {deviceId} to {brand}. slots: deviceId: path.deviceId brand: query.brand - text: Assign brand {brand} to {deviceId}. slots: brand: query.brand deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/roles/brand'].patch update: x-apievangelist-phrasing: intent: Set the brand on many devices effect: write questions: - Can I assign the same brand to a list of devices in one call? - How do I bulk-correct the vendor brand on several devices? instructions: - text: Assign brand {name} to devices {devices}. slots: name: requestBody.name devices: requestBody.devices - text: Bulk-set the brand of {devices} to {name}. slots: devices: requestBody.devices name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/os'].put update: x-apievangelist-phrasing: intent: Set the operating system of one device effect: write questions: - How do I mark which operating system a device runs? - Can I override the OS detected for a single device? instructions: - text: Set the operating system of device {deviceId} to {osName}. slots: deviceId: path.deviceId osName: query.osName - text: Assign OS {osName} to {deviceId}. slots: osName: query.osName deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/roles/os'].patch update: x-apievangelist-phrasing: intent: Set the operating system on many devices effect: write questions: - Can I assign one operating system to a batch of devices? - How do I bulk-correct the OS for several devices? instructions: - text: Assign operating system {name} to devices {devices}. slots: name: requestBody.name devices: requestBody.devices - text: Bulk-set the OS of {devices} to {name}. slots: devices: requestBody.devices name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/primary'].put update: x-apievangelist-phrasing: intent: Set the primary role of one device effect: write questions: - How do I mark a device's primary role, such as router or server? - Can I change the primary role assigned to a single device? instructions: - text: Set the primary role of device {deviceId} to {primary}. slots: deviceId: path.deviceId primary: query.primary - text: Assign primary role {primary} to {deviceId}. slots: primary: query.primary deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/roles/primary'].patch update: x-apievangelist-phrasing: intent: Set the primary role on many devices effect: write questions: - Can I assign the same primary role to a list of devices? - How do I bulk-change the primary role for several devices? instructions: - text: Assign primary role {name} to devices {devices}. slots: name: requestBody.name devices: requestBody.devices - text: Bulk-set the primary role of {devices} to {name}. slots: devices: requestBody.devices name: requestBody.name method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/roles/sub-role'].put update: x-apievangelist-phrasing: intent: Add or remove sub-roles on one device effect: write questions: - How do I add sub-roles to a single device? - Can I remove specific sub-roles from one device? instructions: - text: Apply sub-role operation {operation} with sub-roles {subroles} to device {deviceId}. slots: operation: requestBody.operation subroles: requestBody.subroles deviceId: path.deviceId - text: Add sub-roles {subroles} to {deviceId}. slots: subroles: requestBody.subroles deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/roles/sub-role'].patch update: x-apievangelist-phrasing: intent: Add or remove sub-roles on many devices effect: write questions: - Can I add the same sub-roles to a batch of devices? - How do I strip a sub-role from several devices at once? instructions: - text: Run sub-role operation {operation} with {subroles} on devices {devices}. slots: operation: requestBody.operation subroles: requestBody.subroles devices: requestBody.devices - text: Bulk-add sub-roles {subroles} to devices {devices}. slots: subroles: requestBody.subroles devices: requestBody.devices method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/config/template'].get update: x-apievangelist-phrasing: intent: Export a device's configuration template effect: read questions: - How can I export a device's settings, credentials, monitors and groups as a template? - Can a device template include layer 2 data? instructions: - text: Export the configuration template for device {deviceId}. slots: deviceId: path.deviceId - text: Get the template of {deviceId} with options {options}. slots: deviceId: path.deviceId options: query.options method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-/config/template'].patch update: x-apievangelist-phrasing: intent: Create devices from configuration templates effect: write questions: - Can I create new devices by applying exported device templates? - What happens when a device template can only be partly applied? instructions: - text: Apply device templates {templates} to create new devices. slots: templates: requestBody.templates - text: Create devices from templates {templates} with options {options}. slots: templates: requestBody.templates options: requestBody.options method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}'].get update: x-apievangelist-phrasing: intent: Get an overview of a device effect: read questions: - What does WhatsUp Gold know about a given device at a glance? - Can I get a summary view of one device by its ID? instructions: - text: Show the overview of device {deviceId}. slots: deviceId: path.deviceId - text: Get the {view} view of device {deviceId}. slots: view: query.view deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}'].delete update: x-apievangelist-phrasing: intent: Delete a device effect: destructive questions: - How do I remove a device from monitoring entirely? - Can deleting a device also remove its discovered devices? instructions: - text: Delete device {deviceId}. slots: deviceId: path.deviceId - text: Remove device {deviceId} along with its discovered devices. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/{deviceId}/status'].get update: x-apievangelist-phrasing: intent: Check whether a device is up or down effect: read questions: - Is this device currently up or down? - What is a device's overall state, not counting every monitor? instructions: - text: Show the current status of device {deviceId}. slots: deviceId: path.deviceId - text: Check whether {deviceId} is up. slots: deviceId: path.deviceId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/devices/-'].patch update: x-apievangelist-phrasing: intent: Run a bulk operation such as removal on many devices effect: destructive questions: - Can I remove a whole list of devices in one request? - When I bulk-remove devices, can their discovered devices be removed too? instructions: - text: Run bulk device operation {operation} on devices {devices}. slots: operation: requestBody.operation devices: requestBody.devices - text: Bulk-remove devices {devices} from monitoring. slots: devices: requestBody.devices method: generated generated: '2026-10-01'