ControlUp · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Controlup Devices API
14 actions
14 updates
phrasing
extends
openapi/controlup-devices-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for ControlUp's API. It is a proposal applied on top of the contract, not a document ControlUp publishes.
What the actions change
x-apievangelist-phrasing
Targets 14
$.info
$.paths['/devices'].get
$.paths['/devices/{device_id}'].get
$.paths['/devices/{device_id}/vulnerabilities'].get
$.paths['/devices/{device_id}/patches'].get
$.paths['/devices/{device_id}/compliance'].get
$.paths['/devices/{device_id}/misconfig'].get
$.paths['/devices/delete'].post
$.paths['/devices/tags'].get
$.paths['/devices/tags'].post
$.paths['/devices/groups'].get
$.paths['/devices/set-group'].post
$.paths['/devices/{deviceID}/actions'].post
$.paths['/devices/action'].post
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 Controlup Devices API
version: 1.0.0
extends: openapi/controlup-devices-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 13
- target: $.paths['/devices'].get
update:
x-apievangelist-phrasing:
intent: List compliance-managed devices
effect: read
questions:
- Which of my devices have the worst compliance score?
- Can I find devices whose agent is offline or running an old client version?
- What devices are in a particular device group or location?
instructions:
- text: List all devices managed by ControlUp for Compliance.
- text: Find devices with score severity {score_severity}.
slots:
score_severity: query.score_severity
- text: List devices in group {device_group} with agent status {agent_status}.
slots:
device_group: query.device_group
agent_status: query.agent_status
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{device_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a device and its issue summary
effect: read
questions:
- How many issues were detected on one specific device?
- Can I pull the details of a single device by its ID?
instructions:
- text: Show details for device {device_id}.
slots:
device_id: path.device_id
- text: Summarize the issue counts on device {device_id}.
slots:
device_id: path.device_id
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{device_id}/vulnerabilities'].get
update:
x-apievangelist-phrasing:
intent: List CVEs on a device
effect: read
questions:
- Which CVEs were detected on a particular laptop?
- Is this device exposed to any known vulnerabilities?
instructions:
- text: List the vulnerabilities found on device {device_id}.
slots:
device_id: path.device_id
- text: Show the CVEs detected on device {device_id}.
slots:
device_id: path.device_id
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{device_id}/patches'].get
update:
x-apievangelist-phrasing:
intent: List missing patches on a device
effect: read
questions:
- What OS and application patches is this device missing?
- Can I see only critical missing patches from a specific vendor on one machine?
instructions:
- text: List missing patches on device {device_id}.
slots:
device_id: path.device_id
- text: Show missing {severity} patches from {vendor_name} on device {device_id}.
slots:
severity: query.severity
vendor_name: query.vendor_name
device_id: path.device_id
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{device_id}/compliance'].get
update:
x-apievangelist-phrasing:
intent: List compliance issues on a device
effect: read
questions:
- Which compliance-category issues does a device have?
- Are there high-severity compliance findings on this endpoint?
instructions:
- text: List compliance issues on device {device_id}.
slots:
device_id: path.device_id
- text: Show {severity} compliance issues for device {device_id}.
slots:
severity: query.severity
device_id: path.device_id
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{device_id}/misconfig'].get
update:
x-apievangelist-phrasing:
intent: List misconfigurations on a device
effect: read
questions:
- What misconfigurations were detected on a given device?
- Can I filter a device's misconfiguration issues by remediation status?
instructions:
- text: List misconfiguration issues on device {device_id}.
slots:
device_id: path.device_id
- text: Show misconfigurations on device {device_id} with remediation status {remediation_status}.
slots:
device_id: path.device_id
remediation_status: query.remediation_status
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/delete'].post
update:
x-apievangelist-phrasing:
intent: Delete devices
effect: destructive
questions:
- Can I remove several retired devices from compliance monitoring at once?
- Is there a bulk delete for devices by ID?
instructions:
- text: Delete devices {device_ids}.
slots:
device_ids: requestBody.device_ids
- text: 'Remove these devices from ControlUp for Compliance: {device_ids}.'
slots:
device_ids: requestBody.device_ids
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/tags'].get
update:
x-apievangelist-phrasing:
intent: List device tags with usage counts
effect: read
questions:
- Which device tags exist, and how many devices use each?
- What tags have I applied to my devices so far?
instructions:
- text: List all device tags.
- text: Show how many devices carry each device tag.
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/tags'].post
update:
x-apievangelist-phrasing:
intent: Add or remove device tags
effect: write
questions:
- Can I tag a batch of devices in one request?
- What characters are allowed in a device tag?
instructions:
- text: Add tags {tags} to devices {ids}.
slots:
tags: requestBody.tags
ids: requestBody.ids
- text: Apply tag action {action} with tags {tags} on devices {ids}.
slots:
action: requestBody.action
tags: requestBody.tags
ids: requestBody.ids
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/groups'].get
update:
x-apievangelist-phrasing:
intent: List device groups with counts
effect: read
questions:
- What device groups exist, and how many devices are in each?
- Which groups can I assign my devices to?
instructions:
- text: List all device groups.
- text: Show the device count for every device group.
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/set-group'].post
update:
x-apievangelist-phrasing:
intent: Assign devices to a group
effect: write
questions:
- Can I move several devices into one device group?
- Can a device belong to more than one group at a time?
instructions:
- text: Put devices {device_ids} into group {group}.
slots:
device_ids: requestBody.device_ids
group: requestBody.group
- text: Set the device group of {device_ids} to {group}.
slots:
device_ids: requestBody.device_ids
group: requestBody.group
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/{deviceID}/actions'].post
update:
x-apievangelist-phrasing:
intent: Run an action on one device
effect: write
questions:
- Can I trigger a remediation action on just one device?
- Which endpoint gives more options when acting on a single device?
instructions:
- text: Perform an action on device {deviceID}.
slots:
deviceID: path.deviceID
- text: Run a remediation action on the single device {deviceID}.
slots:
deviceID: path.deviceID
method: generated
generated: '2026-09-26'
- target: $.paths['/devices/action'].post
update:
x-apievangelist-phrasing:
intent: Run an action on many devices
effect: write
questions:
- Can I run the same action on multiple devices at once?
- Is there a bulk device action endpoint?
instructions:
- text: Perform an action across multiple devices.
- text: Run a bulk action on a set of devices.
method: generated
generated: '2026-09-26'