# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Microsoft Azure DeviceUpdateClient Device and Deployment… version: 1.0.0 extends: openapi/microsoft-azure-device-and-deployment-management-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: 37 - target: $.paths['/deviceUpdate/{instanceId}/management/deviceClasses'].get update: x-apievangelist-phrasing: intent: List device classes in a Device Update instance effect: read questions: - Which manufacturer and model combinations are connected to my Device Update for IoT Hub instance? - Can I see every device class Device Update has detected across my fleet? instructions: - text: List all device classes in Device Update instance {instanceId}. slots: instanceId: path.instanceId - text: Show me the manufacturer/model device classes known to instance {instanceId}. slots: instanceId: path.instanceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}'].get update: x-apievangelist-phrasing: intent: Get a device class effect: read questions: - What properties does a single device class have in Device Update? - How can I look up the details of one specific device class by its id? instructions: - text: Get device class {deviceClassId} in Device Update instance {instanceId}. slots: deviceClassId: path.deviceClassId instanceId: path.instanceId - text: Show the properties of device class {deviceClassId}. slots: deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}'].delete update: x-apievangelist-phrasing: intent: Delete a device class effect: destructive questions: - Why aren't unused device classes cleaned up automatically in Device Update? - Can I remove a device class once all its subgroups are gone? instructions: - text: Delete device class {deviceClassId} from instance {instanceId}. slots: deviceClassId: path.deviceClassId instanceId: path.instanceId - text: Remove the stale device class {deviceClassId} in Device Update instance {instanceId}. slots: deviceClassId: path.deviceClassId instanceId: path.instanceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}'].patch update: x-apievangelist-phrasing: intent: Rename a device class effect: write questions: - Can I give a device class a friendly name in Device Update? - Is the friendly name the only thing I can change on a device class? instructions: - text: Set the friendly name of device class {deviceClassId} in instance {instanceId} to {friendlyName}. slots: deviceClassId: path.deviceClassId instanceId: path.instanceId friendlyName: requestBody.friendlyName - text: Rename device class {deviceClassId} to {friendlyName}. slots: deviceClassId: path.deviceClassId friendlyName: requestBody.friendlyName method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceClasses/{deviceClassId}/installableUpdates'].get update: x-apievangelist-phrasing: intent: List updates installable on a device class effect: read questions: - Which updates can be installed on devices of a particular class? - What update packages are compatible with one manufacturer and model? instructions: - text: List the installable updates for device class {deviceClassId} in instance {instanceId}. slots: deviceClassId: path.deviceClassId instanceId: path.instanceId - text: Show which updates device class {deviceClassId} is able to install. slots: deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/devices'].get update: x-apievangelist-phrasing: intent: List devices connected to Device Update effect: read questions: - How do I see all devices connected to Device Update for IoT Hub? - Can I filter the device list, for example by group or deployment state? instructions: - text: List every device in Device Update instance {instanceId}. slots: instanceId: path.instanceId - text: List devices in instance {instanceId} matching filter {filter}. slots: instanceId: path.instanceId filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/devices:import'].post update: x-apievangelist-phrasing: intent: Import devices from IoT Hub effect: write questions: - How do I pull my existing IoT Hub devices into Device Update? - Is importing devices a long-running operation I need to poll? instructions: - text: Import the existing IoT Hub devices into Device Update instance {instanceId}. slots: instanceId: path.instanceId - text: Start a device import from IoT Hub for instance {instanceId}. slots: instanceId: path.instanceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/devices/{deviceId}'].get update: x-apievangelist-phrasing: intent: Get a device and its deployment status effect: read questions: - What is the latest deployment status of one device in Device Update? - Can I check a single device's properties and which update it has installed? instructions: - text: Get device {deviceId} in Device Update instance {instanceId}. slots: deviceId: path.deviceId instanceId: path.instanceId - text: Show the latest deployment status for device {deviceId}. slots: deviceId: path.deviceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/devices/{deviceId}/modules/{moduleId}'].get update: x-apievangelist-phrasing: intent: Get a device module and its deployment status effect: read questions: - How do I check update status for a module on a device rather than the whole device? - Can Device Update report deployment state per IoT Edge module? instructions: - text: Get module {moduleId} on device {deviceId} in instance {instanceId}. slots: moduleId: path.moduleId deviceId: path.deviceId instanceId: path.instanceId - text: Show the deployment status of module {moduleId} on device {deviceId}. slots: moduleId: path.moduleId deviceId: path.deviceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/updateCompliance'].get update: x-apievangelist-phrasing: intent: Get fleet-wide update compliance effect: read questions: - How many of all my devices are on their latest update versus waiting for one? - What does the overall update compliance breakdown look like across the whole instance? instructions: - text: Get the update compliance summary for all devices in instance {instanceId}. slots: instanceId: path.instanceId - text: Show how many devices across instance {instanceId} are up to date, pending or in progress. slots: instanceId: path.instanceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups'].get update: x-apievangelist-phrasing: intent: List device groups effect: read questions: - Which device groups exist in my Device Update instance? - Can I sort the device group list, and is the $default group always first? instructions: - text: List all device groups in instance {instanceId}. slots: instanceId: path.instanceId - text: List device groups in instance {instanceId} ordered by {orderby}. slots: instanceId: path.instanceId orderby: query.orderby method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}'].get update: x-apievangelist-phrasing: intent: Get a device group effect: read questions: - How do I see the properties of one device group? - Can I look up a device group by its group id? instructions: - text: Get device group {groupId} in instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: Show the details of device group {groupId}. slots: groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}'].delete update: x-apievangelist-phrasing: intent: Delete a device group effect: destructive questions: - Can I delete a device group that's kept around only for history? - Are groups and their deployments removed automatically when devices leave? instructions: - text: Delete device group {groupId} from instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: Remove the old device group {groupId} and its retained history. slots: groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/updateCompliance'].get update: x-apievangelist-phrasing: intent: Get update compliance for a device group effect: read questions: - How many devices in one group still need a new update? - Can I see a compliance breakdown for just a single device group? instructions: - text: Get update compliance for device group {groupId} in instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: Show how many devices in group {groupId} are current, need updates or are updating. slots: groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/bestUpdates'].get update: x-apievangelist-phrasing: intent: List best available updates for a device group effect: read questions: - What's the best update available for a device group and how many devices need it? - Can I filter the best-update list for a group? instructions: - text: List the best available updates for device group {groupId} in instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: Show best updates for group {groupId} filtered by {filter}. slots: groupId: path.groupId filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments'].get update: x-apievangelist-phrasing: intent: List deployments for a device group effect: read questions: - Which deployments have been run against a device group? - Can I order a group's deployment history, say by start time? instructions: - text: List all deployments for device group {groupId} in instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: List deployments for group {groupId} ordered by {orderby}. slots: groupId: path.groupId orderby: query.orderby method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId}'].get update: x-apievangelist-phrasing: intent: Get a group deployment effect: read questions: - How do I read the settings of one deployment made to a device group? - Can I see which update and start time a group-level deployment uses? instructions: - text: Get deployment {deploymentId} for device group {groupId} in instance {instanceId}. slots: deploymentId: path.deploymentId groupId: path.groupId instanceId: path.instanceId - text: Show the properties of group deployment {deploymentId} on group {groupId}. slots: deploymentId: path.deploymentId groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId}'].put update: x-apievangelist-phrasing: intent: Create or update a deployment to a device group effect: write questions: - How do I roll out an update to a device group at a scheduled start time? - Can I set a rollback policy or cloud-initiated rollback when deploying an update? instructions: - text: Deploy update {update} to device group {groupId} in instance {instanceId} as deployment {deploymentId} starting {startDateTime}. slots: update: requestBody.update groupId: path.groupId instanceId: path.instanceId deploymentId: path.deploymentId startDateTime: requestBody.startDateTime - text: Change deployment {deploymentId} on group {groupId} to use rollback policy {rollbackPolicy}. slots: deploymentId: path.deploymentId groupId: path.groupId rollbackPolicy: requestBody.rollbackPolicy method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deployments/{deploymentId}/status'].get update: x-apievangelist-phrasing: intent: Get status of a group deployment effect: read questions: - How many devices in a group deployment are in progress, completed or failed? - Can I track the progress of a deployment across the whole device group? instructions: - text: Get the status of deployment {deploymentId} for group {groupId} in instance {instanceId}. slots: deploymentId: path.deploymentId groupId: path.groupId instanceId: path.instanceId - text: Show the progress breakdown of group deployment {deploymentId}. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups'].get update: x-apievangelist-phrasing: intent: List device class subgroups in a group effect: read questions: - Which device class subgroups make up a device group? - Can I filter the subgroups inside a group? instructions: - text: List device class subgroups in group {groupId} of instance {instanceId}. slots: groupId: path.groupId instanceId: path.instanceId - text: List subgroups of group {groupId} matching {filter}. slots: groupId: path.groupId filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}'].get update: x-apievangelist-phrasing: intent: Get a device class subgroup effect: read questions: - How do I see details for one device class within a device group? - What properties does a device class subgroup have? instructions: - text: Get subgroup {deviceClassId} of group {groupId} in instance {instanceId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Show the device class subgroup {deviceClassId} inside group {groupId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}'].delete update: x-apievangelist-phrasing: intent: Delete a device class subgroup effect: destructive questions: - Can I remove a device class subgroup from a device group? - Do I need to delete subgroups before a device class can be removed? instructions: - text: Delete subgroup {deviceClassId} from group {groupId} in instance {instanceId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Remove device class subgroup {deviceClassId} of group {groupId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/updateCompliance'].get update: x-apievangelist-phrasing: intent: Get update compliance for a device class subgroup effect: read questions: - How compliant is one device class within a group with its latest update? - Can I get the up-to-date versus pending counts for a single subgroup? instructions: - text: Get update compliance for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Show how many subgroup {deviceClassId} devices still need an update. slots: deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/bestUpdates'].get update: x-apievangelist-phrasing: intent: Get best update for a device class subgroup effect: read questions: - What is the single best update for one device class in a group? - How many devices in a subgroup need the best available update? instructions: - text: Get the best available update for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Show the recommended update and device count for subgroup {deviceClassId}. slots: deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments'].get update: x-apievangelist-phrasing: intent: List deployments for a device class subgroup effect: read questions: - Which deployments have targeted one device class subgroup? - Can I sort the deployment list for a subgroup? instructions: - text: List deployments for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: List subgroup {deviceClassId} deployments ordered by {orderby}. slots: deviceClassId: path.deviceClassId orderby: query.orderby method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}'].get update: x-apievangelist-phrasing: intent: Get a subgroup deployment effect: read questions: - How do I read one deployment scoped to a device class subgroup? - Can I see the properties of a deployment for a specific device class in a group? instructions: - text: Get deployment {deploymentId} for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Show the subgroup-level deployment {deploymentId} for device class {deviceClassId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}:cancel'].post update: x-apievangelist-phrasing: intent: Stop a subgroup deployment effect: destructive questions: - How do I cancel a deployment that's rolling out to a device class subgroup? - Can a running update deployment be stopped midway? instructions: - text: Stop deployment {deploymentId} for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Cancel the rollout {deploymentId} to device class {deviceClassId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}:retry'].post update: x-apievangelist-phrasing: intent: Retry a deployment for failed devices effect: write questions: - Can I retry a deployment only for the devices that failed? - What do I do when some devices in a subgroup deployment fail? instructions: - text: Retry deployment {deploymentId} for subgroup {deviceClassId} in group {groupId} of instance {instanceId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: Re-run deployment {deploymentId} on its failed devices. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}/status'].get update: x-apievangelist-phrasing: intent: Get status of a subgroup deployment effect: read questions: - How many devices in a subgroup deployment succeeded or failed? - Can I track deployment progress for one device class inside a group? instructions: - text: For device class {deviceClassId} in group {groupId} of instance {instanceId}, report how deployment {deploymentId} is progressing. slots: deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId deploymentId: path.deploymentId - text: Show the completed and failed counts for subgroup deployment {deploymentId}. slots: deploymentId: path.deploymentId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/groups/{groupId}/deviceClassSubgroups/{deviceClassId}/deployments/{deploymentId}/devicestates'].get update: x-apievangelist-phrasing: intent: List per-device states in a deployment effect: read questions: - Which specific devices failed in a subgroup deployment? - Can I filter the devices in a deployment by their state? instructions: - text: List device states for deployment {deploymentId} in subgroup {deviceClassId} of group {groupId} in instance {instanceId}. slots: deploymentId: path.deploymentId deviceClassId: path.deviceClassId groupId: path.groupId instanceId: path.instanceId - text: List devices in deployment {deploymentId} whose state matches {filter}. slots: deploymentId: path.deploymentId filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/operations/{operationId}'].get update: x-apievangelist-phrasing: intent: Get a device import operation's status effect: read questions: - How do I check whether a device import operation has finished? - Can I poll an import operation conditionally with an ETag? instructions: - text: Get the status of import operation {operationId} in instance {instanceId}. slots: operationId: path.operationId instanceId: path.instanceId - text: Check operation {operationId} only if it changed since ETag {etag}. slots: operationId: path.operationId etag: header.If-None-Match method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/operations'].get update: x-apievangelist-phrasing: intent: List device import operations effect: read questions: - Which device import operations have run recently? - How long are completed import operations kept before they're deleted? instructions: - text: List device import operations in instance {instanceId}. slots: instanceId: path.instanceId - text: List the latest {top} import operations matching {filter}. slots: top: query.top filter: query.filter method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections/{operationId}'].get update: x-apievangelist-phrasing: intent: Get a device diagnostics log collection effect: read questions: - How do I look up a diagnostics log collection I started? - Can I see which devices a log collection targeted? instructions: - text: Get log collection {operationId} in Device Update instance {instanceId}. slots: operationId: path.operationId instanceId: path.instanceId - text: Show the diagnostics log collection {operationId}. slots: operationId: path.operationId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections/{operationId}'].put update: x-apievangelist-phrasing: intent: Start collecting diagnostic logs from devices effect: write questions: - How do I pull diagnostic logs from specific devices in Device Update? - Can I add a description when starting a log collection? instructions: - text: Start log collection {operationId} in instance {instanceId} on devices {deviceList}. slots: operationId: path.operationId instanceId: path.instanceId deviceList: requestBody.deviceList - text: Collect diagnostic logs from {deviceList} labelled {description}. slots: deviceList: requestBody.deviceList description: requestBody.description method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections'].get update: x-apievangelist-phrasing: intent: List device diagnostics log collections effect: read questions: - Which diagnostics log collections exist for my devices? - Can I see all log collection requests in one list? instructions: - text: List all diagnostics log collections in instance {instanceId}. slots: instanceId: path.instanceId - text: Show every log collection request made in Device Update instance {instanceId}. slots: instanceId: path.instanceId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceDiagnostics/logCollections/{operationId}/detailedStatus'].get update: x-apievangelist-phrasing: intent: Get per-device status of a log collection effect: read questions: - Did every device upload its logs for a collection request? - How do I see the detailed per-device status of a log collection? instructions: - text: Get the detailed status of log collection {operationId} in instance {instanceId}. slots: operationId: path.operationId instanceId: path.instanceId - text: Show which devices finished uploading logs for collection {operationId}. slots: operationId: path.operationId method: generated generated: '2026-09-26' - target: $.paths['/deviceUpdate/{instanceId}/management/deviceDiagnostics/deviceHealth'].get update: x-apievangelist-phrasing: intent: List device health effect: read questions: - Which of my devices are unhealthy according to Device Update diagnostics? - Is a filter required when listing device health? instructions: - text: List device health in instance {instanceId} matching {filter}. slots: instanceId: path.instanceId filter: query.filter - text: Show unhealthy devices in instance {instanceId} using filter {filter}. slots: instanceId: path.instanceId filter: query.filter method: generated generated: '2026-09-26'