New in Graph – See and Manage Teams Devices!
Exciting new functionality has surfaced in Microsoft Graph over the last few days. It’s yet to hit the official Changelog but it’s documented as Beta functionality (meaning it’s available for everyone to use but is not supported for production use)
What can you do?
There are several new API endpoints covering Provisioned Devices, Activity, Configuration, Health and Operation, but it looks as though applications using these APIs will be able to:
- Get a list of managed Teams devices, such as IPPhones, Teams Room Systems, Surface Hubs, Collaboration Bars, Teams Displays, Touch Consoles, Low Cost Phones, Teams Panels and SIP devices. Information about the device will include the hardware identifiers, company asset tags, health and activity states and the current user.
- Get the health status of devices
- Restart devices
- Run Diagnostics on devices
- Remotely apply software updates
What permissions are needed?
There are some specific new permissions that applications will need:
It looks as though Application permissions are supported for all calls, which is great news for developers looking to build autonomous monitoring and pro-active maintenance solutions that don’t have a user present.
It’s free … for now.
There is an interesting banner on each page of the documentation for these new calls, which says:
Note: Microsoft is temporarily offering usage of the APIs for managing Microsoft Teams-enabled devices at no charge. Microsoft expects to charge for the use of some or all of these APIs in the future. Microsoft will provide advanced notice of pricing changes. For details about the current licensing model, see Licensing and payment requirements.https://docs.microsoft.com/graph/api/teamworkdevice-list?view=graph-rest-beta&WT.mc_id=M365-MVP-5001530
The link is to the same licensing and payment page that is used for the new Export API and Change Notifications, although in this case it is much less clear whether applications that use this functionality would ever be classed as a “security or compliance function” and be able to use model=A charging (which includes a built-in capacity).
How can I find out more?
Here are all the new endpoints:
- List teamworkDevices
- Get teamworkDevice
- teamworkDevice: restart
- teamworkDevice: updateSoftware
- Get teamworkDeviceActivity
- Get teamworkDeviceConfiguration
- Get teamworkDeviceHealth
- List teamworkDeviceOperations
- Get teamworkDeviceOperation