My VMware Air Watch REST API Guide 9 1
User Manual: Pdf
Open the PDF directly: View PDF .
Page Count: 1240
Download | ![]() |
Open PDF In Browser | View PDF |
VMware AirWatch REST API Guide Configuring and Using REST APIs AirWatch v9.1 Have documentation feedback? Submit a Documentation Feedback support ticket using the Support Wizard on support.air-watch.com. Copyright © 2017 VMware, Inc. All rights reserved. This product is protected by copyright and intellectual property laws in the United States and other countries as well as by international treaties. VMware products are covered by one or more patents listed at http://www.vmware.com/go/patents. VMware is a registered trademark or trademark of VMware, Inc. in the United States and other jurisdictions. All other marks and names mentioned herein may be trademarks of their respective companies. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 1 Revision Table The following table displays revisions to this guide since the release of AirWatch v9.1. Date Reason April 2017 Initial upload. Document posted for AirWatch v9.1 GA. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 2 Table of Contents Chapter 1: Overview 16 What's New 17 Introduction 20 Versioning in APIs 21 Refactored APIs 23 Setting Up an API 26 API Authentication 32 Configuring API Access 36 Chapter 2: Security and the API 38 Overview 39 Generating Client Certificates 39 Important API Considerations (Basic Concepts) 42 Chapter 3: Admin User Management 55 Overview 56 Create Console Admin User (Basic) 56 Create Console Admin User (Directory) 61 Retrieve Admin User Details 63 Search Admin User 66 Update Admin User 70 Add Console Admin User Role 73 Remove Console Admin User Role 74 Change Console Admin User Password 75 Delete Console Admin User 76 Chapter 4: Application Management 77 Overview 81 Internal Application Install : Upload Application Chunks (iOS and Android) 81 Upload Blob 85 Download Blob 86 Internal Application Save 87 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 3 Insert Public Application (iOS and Android) 102 Update Public Application (*Refactored) 108 Search Applications 111 Search Play Store for Applications (*Refactored) 124 Search Windows App Store for Applications (*Refactored) 126 Search Apple App Store for Applications (*Refactored) 128 Activate Internal Application 130 Update Internal Application 131 Activate Public Application 141 Deactivate Internal Application 142 Deactivate Public Application 142 Retire Internal Application 143 Unretire Internal Application 143 Assign Smart Group to an Internal Application (*Refactored) 144 Assign Smart Group to a Public Application (*Refactored) 144 Assign Smart Group to BSP Application (Version 2) 144 Remove Smart Group Assignment From an Internal Application (*Refactored) 146 Remove Smart Group Assignment From a Public Application (*Refactored) 146 Install Internal Application on Device 147 Install Public Application on Device 148 Install Purchased Application on the Device 149 Uninstall Internal Application From the Device 150 Uninstall Public Application From the Device 151 Uninstall Purchased Application From the Device 152 View Internal Application Status on the Device 153 View Public Application Status on the Device 154 View Purchased Application Status on Device 155 Retrieve Application Details 156 Get Application Management Status (*Refactored) 159 Retrieve Assigned Devices (Internal Application) (*Refactored) 160 Retrieve Assigned Devices (Public Application) (*Refactored) 162 Retrieve Assigned Devices With Purchased Application (*Refactored) 164 Retrieve Installed Devices (Internal Application) (*Refactored) 166 Retrieve Installed Devices (Public Application) (*Refactored) 168 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 4 Retrieve Installed Devices With Purchased Application (*Refactored) 170 Retrieve Devices with Internal Application Installed or Assigned 172 Retrieve Devices with Public Application Installed or Assigned 174 Retrieve Devices with Purchased Application Installed or Assigned 176 Delete Internal Application 178 Delete Public Application 178 Add Assignments to Internal Application 179 Edit Assignment of Internal Application 181 Delete Application Assignment From Smart Group 183 Retrieve Internal Application Details 184 Create Application Group (*Refactored) 198 Retrieve Application Group Details 203 Search Application Group (*Refactored) 206 Search SDK Analytics 210 Update Application Group (*Refactored) 213 Delete Application Group (*Refactored) 216 Add Application to an Application Group (*Refactored) 218 Delete Application from the Application Group (*Refactored) 219 Create VPP Application Allocation (*Refactored) 220 Delete VPP Application 222 Delete VPP Application Smart Group Assignment (*Refactored) 222 Search VPP Application (*Refactored) 223 Get VPP Allocation Details 227 Update VPP Licensed Application Assignment (*Refactored) 230 Queues Sync Assets for VPP Applications 233 Resets the Client Context 234 Get VPP Sync Assets Status 235 Enable Device Based Assignment For VPP Applications 236 Update Application on Devices Having Device Based Licenses 236 Auto Update Flag for Device based VPP App 236 Get VPP Invite Status (*Refactored) 238 Send Bulk VPP Invite (*Refactored) 239 Retrieve Windows App Dependency 241 Retrieve List of Windows App Dependency Files 249 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 5 Delete Windows Dependency Application 251 Search and Retrieve Removal Logs for Internal Applications 252 Update Removal Logs 254 Chapter 5: Content Management 256 Overview 258 Personal Content Overview 258 Retrieve List of Files and Folders 259 Move Files to Target Folder 263 Delete a File 267 Retrieve File Metadata 268 Share Content 271 Download File 273 Remove File Sharing 274 Get File Sharing Information 275 Update File Metadata Information 277 Upload Content/Files 282 Explicit Upload Initialize 286 Explicit Upload Finalize 288 Retrieve Folder Information 291 Create Folder 294 Update Folder 298 Move Folder 302 Delete Folder 306 Return Sharing Metadata 307 Retrieve Collaborator List 309 Remove Sharing 311 Share Folder with Users or UserGroups 312 Update Collaborator 316 Remove Sharing on Collaborator Folder 320 Update Collaborator of Shared Folder 322 Retrieve Admin Storage Information 326 Managed Content Overview 327 Retrieve All Categories 328 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 6 Create New Category 330 Delete Category 332 Update Category 333 Upload AirWatch Managed Content 335 Download AirWatch Managed Content 340 Delete AirWatch Managed Content 341 Retrieve AirWatch Managed Content 342 Update AirWatch Managed Content 347 Retrieve List of AirWatch Managed Content 354 Chapter 6: Device Management 358 Overview 361 Retrieve Application Details From the Device 361 Retrieve Admin Application Details 364 Retrieve Device Bulk Settings 366 Retrieve Certificate Details From the Device 368 Retrieve Compliance Details of the Device 370 Retrieve Compliance Attributes 372 Save Compliance Attributes for a List of Devices 374 Retrieve Content Details of the Device 377 Retrieve Device Information 379 Retrieve Bulk Device Information 383 Retrieve Device Application Status 388 Retrieve Event Logs From the Device 390 Retrieve GPS Co-ordinates of the Device 393 Retrieve Bulk GPS Co-ordinates From the Device 395 Execute Bulk GPS Coordinates 398 Retrieve Network Information of the Device 400 Retrieve Profile Details of the Device 404 Retrieve Enrollment User Details of the Device 407 Retrieve Enrolled Device Count 409 Retrieve Smart Group details 411 Retrieve Device Associated Smart Groups 415 Retrieve Security Information 417 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 7 Change Device Passcode (*Refactored) 419 Clear Passcode on the Device (*Refactored) 420 Enterprise Wipe a Device (*Refactored) 421 Enterprise Wipe in Bulk (*Refactored) 422 Find Device (*Refactored) 424 Lock Device (*Refactored) 426 Lock Devices in Bulk (*Refactored) 427 Query Device (*Refactored) 430 Device Wipe (*Refactored) 431 Delete Device 432 Delete Devices in Bulk (*Refactored) 433 Sync Device (*Refactored) 436 Send Email to the Device Enrollment User (*Refactored) 437 Send Email in Bulk (*Refactored) 439 Send SMS to the Device (*Refactored) 441 Send SMS in Bulk (*Refactored) 443 Send Push Message to the Device (*Refactored) 445 Bulk Push Message to the Devices (*Refactored) 447 Push Notification (*Refactored) 449 Execute Device Commands 451 Execute Bulk Device Commands 452 Schedule OS Update Command 454 Bulk Schedule OS Update Command 455 Start Airplay 458 Send Remote Control Action Command (*Refactored) 460 Add Note to the Device (*Refactored) 461 Delete Note From the Device 463 Retrieve Notes From the Device 464 Retrieve a Specific Note From the Device 466 Update Note onto the Device (*Refactored) 468 Search Device Details 470 Search Compliance Policy 477 Device Extensive Search 480 Search Security Information 484 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 8 Search Network Information 486 Device Extensive Search (Lite) 488 Custom Attribute Search 491 Search Changes Made To Custom Attribute 493 Update Device Custom Attribute (*Refactored) 495 Delete Custom Attribute (*Refactored) 498 Edit Device Details 501 Managed Settings 503 Change Device Organization Group 504 Create Offline Device Record 505 Create Relay Server 506 Create Relay Servers in Bulk 510 Delete Relay Server 516 Retrieve Relay Server Details 517 Update Relay Server 521 Create Staging Bundle 525 Delete Staging Bundle 528 Retrieve Staging Bundle 529 Update Staging Bundle 532 Retrieve Printer Details Using Identifier 534 Retrieve Printer Details Using Location Group 536 Chapter 7: Enrollment User Management 543 Overview 545 Add Enrollment User (Basic) 545 Add Enrollment User (Directory) 550 Retrieve Enrollment User's Details 553 Update Enrollment User's Details 556 Delete List of Enrollment Users 558 Delete Specified Enrollment User 560 Bulk Delete Enrollment Users 561 Search Enrollment Users 563 Search Enrolled Device 566 Search Device Enrollment Token 570 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 9 Register Device for an Enrollment User 573 Search Registered Device 578 Delete Registered Devices 581 Change Organization Group of an Enrollment User 584 Activate an Enrollment User 585 Bulk Activate Enrollment Users 586 Deactivate an Enrollment User 588 Bulk Deactivate Enrollment Users 589 Upload S/MIME Certificates to an Enrollment User 591 Create Custom Attribute 593 Update Custom Attribute 596 Delete Custom Attribute 599 Retrieve Authenticated Enrollment User Information 602 Retrieve AirWatch Version and API URLs 605 Chapter 8: Mobile Email Management 607 Overview 608 Search 608 Chapter 9: Organization Group Management 610 Create Organization Group (*Refactored) 612 Update Organization Group Details (*Refactored) 619 Fetch Organization Group's Details 622 Fetch Child Organization Group's Details (*Refactored) 624 Search Organization Group 626 Delete Organization Group (*Refactored) 629 Fetch Admin User Details in an Organization Group (*Refactored) 631 Fetch Enrollment Users in an Organization Group (*Refactored) 634 Fetch Admin User Roles From an Organization Group 637 Add Device Tag to an Organization Group (*Refactored) 639 Update Device Tag Details (*Refactored) 642 Retrieve Details of All Tags 645 Retrieve Specific Device Tag Details 646 Delete Device Tag From an Organization Group 647 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 10 Retrieve Device Count 648 Storage: Retrieve Storage Values (Application and Content) 651 Sampling Rates: Retrieve Sampling Rates (*Refactored) 653 Get Custom Attribute 656 Create APNs Cert Request 658 Retrieve Status of APNs Configuration 660 Update APNs Configuration 662 Save APNs Configuration 663 Create Express Licenses 665 Query for Pinned Host By HostGuid 667 Update Pinned Host 668 Pin Certificate to a Pinned Host 669 Unpin Certificate from a Pinned Host 670 Enable SSL Pinning 671 Disable SSL Pinning 671 Synchronize Pin with Auto Discovery 672 Enable Pin Relation 673 Disable Pin Relation 673 Chapter 10: Profile Management Version 1 and Version 2 674 Overview 676 General Profile (Common for all Device Platforms) 677 Retrieve Payload Keys for Creating a Profile 685 Update Apple Device Profile 687 Update Android Device Profile 691 Create Apple Passcode Profile 695 Create Apple Restrictions Profile 702 Create Apple Wi-Fi Profile 722 Create Apple VPN Profile 734 Create Apple Email Profile 744 Create Apple EAS Profiles 752 Upload Certificates 785 Create Apple SCEP Profile 787 Create Apple Credentials Profile 793 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 11 Create Apple Custom Settings Profile 799 Create Android Passcode Profile 803 Create Android Restrictions Profile 811 Create Android Wi-Fi Profile 836 Create Android VPN Profile 843 Create Android Email Profile 849 Create Android EAS Profile 858 Create Android Credentials Profile 884 Create Android For Work Profile 894 Create Android Container Profile 939 Create AppleOsX Device Profile 951 Update AppleOsX Device Profile 980 Create QNX Device Profile 1008 Update QNX Device Profile 1010 Create Windows PC Device Profile 1012 Update Windows PC Device Profile 1020 Get Device Profile Details 1028 Activate Device Profile 1030 Deactivate Device Profile 1032 Install Device Profile 1034 Remove Device Profile 1037 Search Device Profile 1040 Delete Device Profile 1046 Get Resource 1048 Get Resource Keys and Advanced Settings 1050 Create Resource of Requested Type 1051 Delete Resource 1052 Update Requested Resource 1053 Edit Smart Group Assignment for Resource 1054 Chapter 11: Product Management Version 1 and Version 2 1056 Overview 1058 Activate Product 1058 Deactivate Product 1059 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 12 Product Conditions Functionality 1060 Copy Product 1063 Create Product 1065 Delete Product 1068 Get Provisioning Assigned Devices 1069 Get Product Compliant Devices 1072 Get Provisioning Failed Devices 1076 Get Provisioning In-Progress Devices 1078 Get Product ID 1080 Get Files/Action 1084 Get Product Profiles 1088 Get Product Time Condition 1099 Insert Device 1102 Search Product Condition 1103 Product Health Check 1105 Extensive Product Search 1108 Search Files/Actions 1112 Product Download and Install Statistics 1116 Search Product 1119 Search Product Time Condition 1123 Search File Condition 1125 Add Smart Group to Product 1127 Remove Smart Group from Product 1128 Update Product 1129 Get Product Details 1131 Reprocess Product 1132 Retrieve Job status Change 1134 Activate Productset 1138 Add Product in Productset 1138 Create Product in Productset 1143 Deactivate Productset 1147 Delete Product From Productsets 1148 Push Productset to Policy Engine 1149 Rank All Products in a Productset 1150 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 13 Retrieve Productset 1152 Chapter 12: Smart Group Management 1153 Overview 1154 Create Smart Group (*Refactored) 1154 Get Smart Group details 1158 Get Device Details in the Smart Group 1162 Search Smart Groups 1164 Update Smart Group (*Refactored) 1167 Delete Smart Group (*Refactored) 1172 Get List of Apps Assigned to Smart Group 1173 Chapter 13: Tag Management 1175 Overview 1176 Create Tag 1176 Retrieve Devices with Specific Tag 1178 Search Tag 1180 Update Tag 1182 Add Devices to the Tag 1183 Remove Devices from Tag 1185 Delete Tag 1187 Chapter 14: User Group Management 1188 Overview 1189 Create Custom User Group 1189 Add Enrollment User To a Custom User Group 1191 Remove an Enrollment User From the Custom User Group 1192 Get User group 1193 Search User Group 1195 Delete User Group 1197 Retrieve List of Notifications 1198 Retrieve Notifications Count 1200 Chapter 15: Event Notification 1201 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 14 Overview 1202 Create Event Notification 1202 Delete Event Notification 1206 Retrieve Event Notification 1207 Search Event Notification 1210 Update Event Notification 1214 Chapter 16: Custom Attribute Management 1217 Overview 1218 Create Custom Attributes 1218 Search Custom Attribute 1220 Chapter 17: List of System and Device Parameters 1222 Finding Additional Documentation 1239 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 15 Chapter 1: Overview What's New 17 Introduction 20 Versioning in APIs 21 Refactored APIs 23 Setting Up an API 26 API Authentication 32 Configuring API Access 36 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 16 Chapter 1: Overview What's New This guide is updated with the latest APIs and their functionalities from the most recent release of AirWatch v9.1. The tables below list the new APIs and links to the pages on which they appear. List of Version 1 APIs Mobile Application Management API Name API URI Auto Update Flag for Device based VPP App https://host/api/mam/apps/purchased/{appId} Delete Windows Dependency Application https://host/api/mam/apps/internal/windowsappdependency/ {windowsAppDependencyId} Retrieve List of Windows App Dependency Files https://host/api/mam/apps/internal/windowsappdependencies/ {organizationGroupId} Retrieve Windows App Dependency https://host/api/mam/apps/internal/windowsappdependency/ {windowsAppDependencyId} Search and Retrieve Removal Logs for Internal Applications https://host/api/mam/apps/removallogs?organizationgroupid= {organizationgroupid}&bundleid={bundleid}&status={status}&page= {page}&pagesize={pagesize}&orderby={orderby} Update Application on Devices Having Device Based Licenses https://host/api/mam/apps/purchased/{appId} Update Internal Application https://host/api/mam/apps/internal/{applicationId} Update Removal Logs https://host/api/mam/apps/removallogs?organizationgroupid= {organizationgroupid} Mobile Device Management API Name API URI Create Relay Server https://host/api/mdm/relayservers Create Relay Servers in Bulk https://host/api/mdm/relayservers/bulk Create Staging Bundle https://host/api/mdm/staging Delete Relay Server https://host/api/mdm/relayservers/{serverId} Delete Staging Bundle https://host/api/mdm/staging/{stagingId} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 17 Chapter 1: Overview Retrieve Compliance Attributes https://host/api/mdm/complianceattributes/organizationgroupcomplianceattributes?vendorname= {vendorname} Retrieve Device https://host/api/mdm/devices/appstatus?searchby={searchBy}&id={id}&groupid= Application {groupid}&bundleId={bundleId}&version={version}&deviceType={deviceType} Status Retrieve https://host/api/mdm/peripherals/printer/{deviceID} Printer Details Using Identifier Retrieve Printer Details Using Location Group https://host/api/mdm/peripherals/printers/{locationGroupID} Retrieve Relay Server Details https://host/api/mdm/relayservers/{serverId} Retrieve Device https://host/api/mdm/devices/{id}/smartgroups Associated Smart Groups Retrieve https://host/api/mdm/staging/{stagingId} Staging Bundle Save https://host/api/mdm/complianceattributes/devicecomplianceattributes Compliance Attributes for a List of Devices Update Relay Server https://host/api/mdm/relayservers Update Staging https://host/api/mdm/staging Bundle Organization Group Management API Name API URI Create APNs Cert Request https://host/api/system/groups/{id}/apns?force={force} Create Express Licenses https://host/api/system/expresslicenses Disable Pin Relation https://host/api/system/disablepin/{hostGuid}/{organizationgroupid} Disable SSL Pinning https://host/api/system/disable/{organizationgroupid} Enable Pin Relation https://host/api/system/enablepin/{hostGuid}/{organizationgroupid} Enable SSL Pinning https://host/api/system/enable/{organizationgroupid} Pin Certificate to a Pinned Host https://host/api/system/pincertificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 18 Chapter 1: Overview Query for Pinned Host By Host Name https://host/api/system/pinnedhosts/{hostName}?organizationgroupid= {organizationgroupid} Query for Pinned Host By HostGuid https://host/api/system/pinnedhost/{hostGuid} Retrieve Status of APNs Configuration https://host/api/system/groups/{id}/apns/details Save APNs Configuration https://host/api/system/groups/{id}/apns Synchronize Pin with Auto Discovery https://host/api/system/syncwithautodiscovery/{organizationgroupid} Unpin Certificate from a Pinned Host https://host/api/system/unpincertificate Update APNs Configuration https://host/api/system/groups/{id}/apns Update Pinned Host https://host/api/system/pinnedhost/{hostGuid} User Group Management API Name API URI Retrieve Notifications Count https://host/api/system/notifications/count Retrieve List of Notifications https://host/api/system/notifications?startIndex={startIndex}&pageSize= {pageSize}&active={active}&cultureCode={cultureCode} List of Version 2 New APIs Application Management Version 2 API Name API URI Assign Smart Group to BSP Application https://host/api/mam/apps/public/ {applicationid}/bspsmartgroups?offlinesmartgroupid= {offlinesmartgroupid}?&onlinesmartgroupid={onlinesmartgroupid}&type={type} Profiles Management Version 2 API Name API URI Create Windows PC Device Profile https://host/api/mdm/profiles/platforms/windowspc/create Update Windows PC Device Profile https://host/api/mdm/profiles/platforms/windowspc/update Organization Group Management API Name API URI Create Organization Group https://host/api/system/groups/{id} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 19 Chapter 1: Overview Introduction AirWatch provides a collection of RESTful APIs that allow external programs to use the core product functionality by integrating the APIs with existing IT infrastructures and third-party applications. Leveraging the simplified REST style of software architecture, AirWatch REST APIs currently include Organization Group Management, Console Administration, Mobile Application Management, Mobile Device Management, Mobile Email Management, Enrollment User Management, Profile Management, Smart Group Management, and User Group Management functionalities. Leveraging REST-based APIs provide several benefits to enterprises, including eliminated cost and time spent developing applications in-house. AirWatch REST APIs are fully able and ready to integrate with enterprise servers, programs, and processes. Additionally, AirWatch REST APIs are more efficient, can run smoothly and an be easily branded with enterprises. This guide is intended for application developers and provides an understanding of the design and architecture of the Version 1 and Version 2 REST APIs library to facilitate custom development and integration with AirWatch. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 20 Chapter 1: Overview Versioning in APIs Overview The introduction of Smart Group assignment to Profiles necessitated the creation of a new APIs (Version 2) in addition to the existing APIs (Version 1) to maintain backward compatibility. From 7.3 release onwards, you can assign profiles to the devices from the AirWatch Console using SmartGroups. Thus, AirWatch has introduced Version 2 REST APIs to utilize the SmartGroup assignment feature and recommends you to use these APIs henceforth. For example, the V1 and V2 API format to Create Apple Passcode Profile is shown below: Version 1 API: https://host/api/v1/mdm/profiles/platforms/apple/create Version 2 API: https://host/api/v2/mdm/profiles/platforms/apple/create The table below lists down the supported Version 1 and Version 2 API collections: Version 1 REST APIs Version 2 REST APIs Console Admin User APIs Profile Management APIs Mobile Application Management APIs Product Management APIs Mobile Device Management APIs Mobile Content Management APIs Mobile Email Management APIs Device Enrollment User APIs Organization Group APIs Smart Group Management APIs User Group Management APIs Profile Management APIs Product Management APIs Tag APIs Custom Attribute APIs Event Notification APIs Version Remotion In 8.3 version, AirWatch has modified the look of the API URIs by removing the version specification from them. For example: Assign Smart Group to a Public Application. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 21 Chapter 1: Overview Deprecated API URI – https://host/API/v1/mam/apps/public/ {ApplicationId}/addsmartgroup/{SmartgroupId} New API URI – https://host/api/mam/apps/public/{applicationid}/smartgroup/ {smartgroupid} However, the V1 and V2 APIs can be fetched by adding the version details in the Accept header. Thus a single API URI serves the purpose of retrieving both Version 1 and Version 2 API endpoints based on the Accept header version details. Below are Accept header format to retrieve V1 and V2 APIs. l To retrieve Version 1 APIs, use: Accept=application/json;version=1 OR Accept=application/xml;version=1 l To retrieve Version 2 APIs, use: Accept=application/json;version=2 OR Accept=application/xml;version=2 Additional Information With Version 2 REST APIs, there is only one observable change in the work flow process in Profile management. See the table below to understand the difference between Version 1 and Version 2 profile management work flow: Version 1 Version 2 Create Profile (Assignment filters provided in General Payload) > Install Profile on devices. Create Smart Group > Create Profile (With the Smart Group details provided in General Payload) > Install Profile on devices. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 22 Chapter 1: Overview Refactored APIs There are few API endpoints whose URIs have been refactored or modified. This modification does NOT affect any existing work flows that you are using till date. However, AirWatch recommends you to move to newly Refactored APIs as soon as possible since the old format will be deprecated in future. Important Note: At this time, there is no specific date to share when the old formats will be deprecated. When deprecation is determined, official communication will be sent out. The table lists the refactored APIs and the links to the pages on which they appear. API Name API URI Mobile Application Management Update Public Application https://host/api/mam/apps/public/applicationid Search Play Store for Applications https://host/api/mam/apps/playstore/search Search Windows App Store for Applications https://host/api/mam/apps/windowsstore/search Search Apple App Store for Applications https://host/api/mam/apps/applestore/search Assign Smart Group to an Internal Application https://host/api/mam/apps/internal/{applicationid}/smartgroups/ {smartgroupid} Assign Smart Group to a Public Application https://host/api/mam/apps/public/{applicationid}/smartgroups/ {smartgroupid} Remove Smart Group Assignment From an Internal Application https://host/api/mam/apps/internal/{applicationid}/smartgroups/ {smartgroupid} Remove Smart Group Assignment From a Public Application https://host/api/mam/apps/public/{applicationid}/smartgroups/ {smartgroupid} Get Application Management Status https://host/api/mam/apps/managementstatus Retrieve Assigned Devices (Internal Application) https://host/api/mam/apps/internal/applicationid/devices Retrieve Assigned Devices (Public Application) https://host/api/mam/apps/public/applicationid/devices Retrieve Assigned Devices With Purchased Application https://host/api/mam/purchased/applicationid/devices Retrieve Installed Devices (Internal Application) https://host/api/mam/apps/internal/applicationid/devices Retrieve Installed Devices (Public Application) https://host/api/mam/apps/public/applicationid/devices VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 23 Chapter 1: Overview Retrieve Installed Devices With Purchased Application https://host/api/mam/purchased/applicationid/devices Create Application Group https://host/api/mam/apps/appgroups Search Application Group https://host/api/mam/apps/appgroups/search Update Application Group https://host/api/mam/apps/appgroups/appgroupid Delete Application Group https://host/api/mam/apps/appgroups Add Application to an Application Group https://host/api/mam/apps/appgroups/appgroupid/applications Delete Application from the Application Group https://host/api/mam/apps/appgroups/appgroupid/applications Create VPP Application Allocation https://host/api/mam/apps/purchased/applicationid/assignment Delete VPP Application Smart Group Assignment https://host/api/mam/apps/purchased/{applicationid}/smartgroups/ {smartgroupid} Search VPP Application https://host/api/mam/apps/purchased/search Update VPP Licensed Application Assignment https://host/api/mam/apps/purchased/applicationid Get VPP Invite Status https://host/api/mam/apps/purchased/applicationid/vppinvitestatus/deviceid Send Bulk VPP Invite https://host/api/mam/apps/purchased/applicationid/vppinvite Mobile Device Management Change Device Passcode https://host/api/mdm/devices/commands/id/changepasscode Clear Passcode on the Device https://host/api/mdm/devices/{deviceid}/commands Enterprise Wipe a Device https://host/api/mdm/devices/deviceid/commands Enterprise Wipe in Bulk https://host/api/mdm/devices/commands/enterprisewipe Find Device https://host/api/mdm/devices/deviceid/commands/finddevice Lock Device https://host/api/mdm/devices/deviceid/commands Lock Devices in Bulk https://host/api/mdm/devices/{deviceid}/commands Query Device https://host/api/mdm/devices/deviceid/commands Device Wipe https://host/api/mdm/devices/deviceid/commands Delete Devices in Bulk https://host/api/mdm/devices/bulk?searchby={searchby} Sync Device https://host/api/mdm/devices/deviceid/commands Send Email to the Device Enrollment User https://host/api/mdm/devices/{id}/messages/email Send Email in Bulk https://host/api/mdm/devices/messages/bulkemail?searchby={searchby} Send SMS to the Device https://host/api/mdm/devices/id/messages/sms Send SMS in Bulk https://host/api/mdm/devices/messages/bulksms?searchby=deviceid VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 24 Chapter 1: Overview Send Push Message to the Device https://host/api/mdm/devices/messages/commands/id/message Bulk Push Message to the Devices https://host/api/mdm/devices/messages/bulkpush?searchby={searchby} Push Notification https://host/api/mdm/devices/messages/{id}/message Send Remote Control Action Command https://host/api/mdm/devices/commands/remotecontrol Update Note onto the Device https://host/api/mdm/devices/{deviceId}/notes/{noteid} Update Device Custom Attribute https://host/api/mdm/devices/{id}/customattributes Delete Custom Attribute https://host/api/mdm/devices/{id}/customattributes Organization Group Management Create Organization Group https://host/api/system/groups/id Update Organization Group Details https://host/api/system/groups/{id} Fetch Child Organization Group's Details https://host/api/system/groups/{id}/children Delete Organization Group https://host/api/system/groups/{id} Fetch Admin User Details in an Organization Group https://host/api/system/groups/{id}/admins Fetch Enrollment Users in an Organization Group https://host/api/system/groups/{id}/users Add Device Tag to an Organization Group https://host/api/system/groups/{id}/tags Update Device Tag Details https://host/api/system/groups/{ogid}/tags/{tagid} Sampling Rates: Retrieve Sampling Rates https://host/api/system/groups/{id}/samplerates?platform={platform} Smart Group Management Create Smart Group https://host/api/mdm/smartgroups Update Smart Group https://host/api/mdm/smartgroups/{id} Delete Smart Group https://host/api/mdm/smartgroups/{id} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 25 Chapter 1: Overview Setting Up an API APIs require authentication to integrate with AirWatch. For information on authentication methods, refer Authentication. Prior to authentication, API access must be enabled in the AirWatch Console System Configuration by selecting the Enable API Access checkbox. Important Note: AirWatch REST APIs can be enabled only at Customer type organization group, Partner type organization group, and Global organization group. Enabling the API access 1. From the AirWatch Console main menu, navigate to Groups & Settings > All Settings > System > Advanced > API > REST API. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 26 Chapter 1: Overview 2. On the General tab, configure the following settings. Setting Description Enable API Access Select this check box to automatically generate the API key for the Organization Group. Add Select Add to add/or generate multiple API keys. l l l l Service – Enter one or multiple service(s) and generate their own independent API keys. Account Type – Select the type of the account. To access Personal Content APIs (MCM APIs), select the Account type as Enrollment User. Description – Enter short description for the service and generated API key. Whitelisted Domains – Enter domains that can interact with AirWatch APIs via API key. 3. On the Authentication tab, configure the following setting. Setting Description Authentication Select Authentication as Basic, Certificates or Directory. For more information, refer to Configuring API Access. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 27 Chapter 1: Overview 4. On the Advanced tab, configure the following settings. These settings are only accessible at the Global Organization level. Enter the default service throttling and daily quota and set the maximum and minimum values for each field as shown below. Field Name Default values Validations Service Throttling 5000 Min 1 calls Max 25000 calls 0 or empty turns off service throttling Daily Quota 50000 Min 1 Max 2147485647 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 28 Chapter 1: Overview Enabling Personal Content API Access AirWatch REST APIs enable your end-users to manage their Personal Content with features such as adding, moving, sharing, and deleting Files and Folders. Follow the below steps to make the most of this functionality: 1. From the AirWatch Console main menu, navigate to Groups & Settings > All Settings > System > Advanced > API > REST API. 2. On the General tab, configure the following settings. Setting Description Enable API Access Select this check box to automatically generate the API key for the Organization Group. Add Select Add to add/or generate multiple API keys. l l Service – Enter one or multiple service(s) and generate their own independent API keys. Account Type – Select the type of the account. Select Account type as Enrollment User to access Personal Content APIs or Admin to access Managed Content APIs. l Description – Enter short description for the service and generated API key. l Whitelisted Domains – Enter domains that can interact with AirWatch APIs via API key. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 29 Chapter 1: Overview 3. Navigate to Groups and Settings > All Settings > Content > Personal Content. Set Personal Content to Enabled to enable Personal Content at your organization group. 4. Enable applicable Shared Links settings to use sharing file link functionality. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 30 Chapter 1: Overview 5. Enable applicable Shared Folder settings to use sharing folders functionality. For more information on Enabling and Configuring Personal Content, refer Mobile Content Management Guide in the AirWatch Resource. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 31 Chapter 1: Overview API Authentication API requires authentication to integrate with AirWatch. AirWatch offers the following types of authentication methods to the specific users. Authentication Methods APIs support the following methods of authentication to the users: l l l Basic Authentication – Basic Authentication can be utilized by any AirWatch architecture, but offers no integration to existing corporate user accounts. Directory Authentication – Directory Authentication utilizes Directory Services to integrate user and admin accounts of AirWatch with existing corporate accounts. Certificate Authentication – Certificate based authentication provides API access using a self-signed certificate generated for Admin users of the AirWatch Console. Types of Authentication Users APIs support the following users to integrate with AirWatch: l l Console Admin Users or Core Users – Uses Basic , Directory, or Certificate Authentication methods. Device Enrollment Users – Uses Basic and Directory Authentication methods. This method of authentication used by Enrollment users is called Enrollment User Authentication. From 8.3 version, this is available only for Personal Content users. Authorization Header for Basic Authentication The only difference in using Basic authentication method by Console Admin User and Device Enrollment user is the information passed in the authorization header. The authorization header should hold the value in the following example format: For Console Admin User GET https://host/api/mdm/devices/bulksettings HTTP/1.1 User-Agent: Fiddler aw-tenant-code: 1FC5H4JAAAG5A4SQAMQA Host – host.com Authorization – Basic bW9oYW46bW9oYW4= VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 32 Chapter 1: Overview For Device Enrollment User GET https://host/api/mcm/contents/folders HTTP/1.1 User-Agent: Fiddler aw-tenant-code: 1FC5H4JAAAG5A4SQAMQA Host – host.com Authorization – Basic bW9oYW46bW9oYW4= aw-groupid – xyz accept – application/json Authorization Header for Certificate Authentication A method of authenticating the APIs using the incoming requests with the detached signatures (Message signing; Detached Signature Format). Message signing also works with SSL offloading, wherein you can verify the sender's authentication using the message headers. The detached signature should be present under the HTTP header authorization. The authorization header should hold the value in the following format:` If the part ` is not present on the header, the default scheme becomes verification of client certificate based CMS (Cryptographic Message Syntax) signing. For more information on CMS, see the below Authentication Schemes section. Authentication Schemes Currently, AirWatch supports two types of authentication schemes in the detached signature authentication: CMS and CMSURL. Each requires its own process for defining the version of authentication/signing scheme used. CMS CMS scheme expects the signature against the message content. In this case the format of the authorization header is as follows: l Authorization:CMS’ o < Version > information. o < CREDENTIALS > is the Base64 Encoded data of “message content” signed with client certificate using PKCS9 signing. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 33 Chapter 1: Overview CMSURL CMSURL expects the signature against the application path in the URL. In this case the format of the authorization header is as follows: l Authorization:CMSURL’ o < Version > information. o < CREDENTIALS > is the Base64 Encoded data of “canonical URI resource encoded using UTF-8 format” signed with client certificate using PKCS9 signing. Sample code for calling the APIs with CMSURL authorization is shown below. using System.Security.Cryptography.X509Certificates; using System.Text; namespace CMSURLSample { class Program { static void Main(string[] args) { string cmsMethod = "CMSURL"; string url = @"https://host/api/system/groups/1232"; var uri = new Uri(url); string clientCertificatePath = @"C:\certificates\cert.p12"; string clientCertificatePassword = "test"; //Create X509Certificate from the client certificate provided var certificate = new X509Certificate2(clientCertificatePath, clientCertificatePassword, X509KeyStorageFlags.PersistKeySet); Byte[] signingData; signingData = Encoding.UTF8.GetBytes(uri.AbsolutePath);// Use the absolute path of the URL for signing // Create a detached digital signature for the message data. var signedCms = new SignedCms(new ContentInfo(signingData), detached: true); var signer = new CmsSigner(certificate) { IncludeOption = X509IncludeOption.EndCertOnly }; signer.SignedAttributes.Add(new Pkcs9SigningTime()); signedCms.ComputeSignature(signer); // Compute the signature Byte[] signature = signedCms.Encode(); string cmsHeader = cmsMethod + "`1" + " " + Convert.ToBase64String(signature); // cmsHeader need to be copied to the Authorization HTTP Header for authentication } } } Note: Schemes (cms and cmsurl) are not case sensitive. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 34 Chapter 1: Overview Canonical URL Canonical URL resource is computed as follows: l If URL is https://host/api/mdm/devices/4/send-message?to=4043671422%25text=hello, canonical URL should be computed as /api/mdm/devices/4/send-message VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 35 Chapter 1: Overview Configuring API Access Now that the API authentication is enabled, the next step is to configure an administrator account for authentication against the API end points. Typically, this should be a separate service accounts that is only used for API authentication rather than a current administrator's account. The available options for authentication are Basic, Directory, and Certificates. The API Authentication is available only when API access is enabled. Once the administrator's API authentication type is configured, provision Roles to the administrator with specific API privileges. You can directly control the administrator’s access by creating a new role or editing an existing role. Use the following steps to create or edit service account administrator roles: 1. Navigate to Accounts > Administrators > Roles. 2. Select any role displayed to edit it or click Add Role to create a new one. 3. Select Save. The new updated role is available to assign to administrators. REST API MDM – Devices REST API Devices Read Enables access to all READ only APIs in Devices collection REST API Devices Write Enables access to all write and update APIs in Devices collection REST API Devices Execute Enables access to all Execute APIs in Devices collection REST API Devices Delete Enables access to all Delete APIs in Devices collection REST API Devices Advanced Enables access to all Advanced APIs in Devices collection. This role is required for device wipe and enterprise wipe. REST API MAM – Apps REST API MAM Read Enables access to all READ only APIs in Apps collection REST API MAM Write Enables access to all write and update APIs in Apps collection REST API MAM Execute Enables access to all execute APIs in Apps collection REST API MAM Delete Enables access to all Delete APIs in Apps collection REST API System – Groups REST API System Groups Read Enables access to all READ only APIs in Organization Group collection REST API System Groups Write Enables access to all write and update APIs in Organization Group collection REST API System Groups Execute Enables access to all execute APIs in Organization Group collection REST API System Groups Delete Enables access to all Delete APIs in Organization Group collection VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 36 Chapter 1: Overview REST API System – Admins REST API System Admins Read Enables access to all READ only APIs in Admin users collection REST API System Admins Write Enables access to all write and update APIs in Admin users collection REST API System Admins Execute Enables access to all execute APIs in Admin users collection REST API System Admins Delete Enables access to all Delete APIs in Admin users collection REST API System – Users REST API Users Read Enables access to all READ only APIs in Enrollment users collection REST API Users Write Enables access to all write and update APIs in Enrollment users collection REST API Users Execute Enables access to all execute APIs in Enrollment users collection REST API Users Delete Enables access to all Delete APIs in Enrollment users collection REST API User Token Read Enables access to view user enrollment token returned as part of response in APIs REST API Profile REST API Profile Read Enables access to all READ only APIs in profiles collection REST API Profile Write Enables access to all write and update APIs in profiles collection REST API Profile Execute Enables access to all execute APIs in profiles collection REST API Profile Delete Enables access to all Delete APIs in profiles collection VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 37 Chapter 2: Security and the API Overview 39 Generating Client Certificates 39 Important API Considerations (Basic Concepts) 42 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 38 Chapter 2: Security and the API Overview APIs provide an easy interface to establish a secure communication between AirWatch servers and third-party applications. The REST API calls take place over HTTPS by default with a certificate signed by a trusted third-party Certificate Authority (CA). It consists of the public key, information about the owner, and a signature. Other certificates can be self-signed in which case the clients must install and trust the certificate with no guarantee the claimed owner identity is genuine. This is called a “root” certificate. In order to provide certificate-based authentication for admin users access to API’s, user level certificates must be generated from the AirWatch Console. The certificate used is a self-signed AirWatch certificate generated from AirWatch Admin Root cert. Important: All clients must validate the certificate before interacting with the AirWatch server. Generating Client Certificates 1. Navigate to Accounts > Administrators > List View. 2. Click Add> Add Admin. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 39 Chapter 2: Security and the API 3. Enter user information in all the required fields on the Basic tab. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 40 Chapter 2: Security and the API 4. On the API tab, select Certificates from the Authentication drop-down menu and enter the Certificate Password. The Certificate Password should be the same password entered on the Basic tab. 5. On the Roles tab, click Add Role. 6. Select the admin's Organization Group in the search bar followed by the Role you want to assign to the new admin. Add as many roles as you want to assign to the admin in the same manner. 7. Select Save to create the new Admin Account with every assigned role and client certificate. When finished, return to the API tab and select Certificates from the Authentication drop-down menu. You can see the Client Certificate generated. To export client certificate, enter the certificate password and select Export Client Certificate. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 41 Chapter 2: Security and the API Important API Considerations (Basic Concepts) SSL Only AirWatch requires all requests to be made over SSL. Device Identifier Formats AirWatch supports five types of device identifiers, including: l UDID l MAC address l Device ID l Serial number l EAS ID Media Types Request or response bodies and resource representations are encoded as either XML or JSON. Each type of resource has its own media type, or MIME type, which matches the pattern application/http://host/{resourcetype}+{format} where {resourcetype} represents a unique representation of a resource, (i.e., a device and {format} is either xml or json). Important: The API MUST provide a representation of all resource available as either XML or JSON. The API MUST allow client applications to use application/xml or application/json as a synonym for the default representation at a given resource URL. Request Headers Requests made to an AirWatch Platform API can specify the following HTTP headers. Header Name Values Description Required Authorization See Authentication for details Identifies who is making a request Always Accept Comma separated list of media types Informs the API what media types Recommended for requests that the client can process yield a response body. If not specified, application/xml is assumed aw- tenant-code Value is available in system settings when REST API access is enabled A unique code entered by the client. To be recognized by AirWatch, it needs to be appended in the URL Always Content-Length Length of the request body in bytes Specifies the size of the message body Required for requests that include a message body VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 42 Chapter 2: Security and the API Content-Type Media type describing the request message body Describes what representation the Required for requests that API must use to interpret the include a message body message body Host Specifies the Internet host and port number of the origin host receiving the message Allows support for multiple origin servers using the same IP address Always Date Date/time in HTTP date format The date and time at which the message was originated Always Response Headers Header Name Values Description Required Content-Length Length of the response body in bytes Specifies the size of the message body Required on responses that include a message body Content-Type Media type describing the Describes the representation of the request message body response message body Required on responses that include a message body Location The URL of newly created resources Returns a URL that can be used to request the newly created resource Required on responses to requests that create new resources Date Date/time in HTTP date format The date and time at which the response message was originated Always VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 43 Chapter 2: Security and the API HTTP Status Code Update AirWatch Platform API clients MUST be ready to accept HTTP status codes as defined in the following list: CATEGORY DESCRIPTION 1xx: Informational Communicates transfer protocol-level information 2xx: Success Client request was accepted successfully 3xx: Redirection Indicates that the client must take additional action to complete their request 4xx: Client Error This category of error status displays when a client seems to have erred 5xx: Server Error The server takes responsibility for these error status codes From 8.3 version onwards, AirWatch APIs will follow standard HTTP status code to maintain consistency across all APIs. Only default message will be returned in response for an API call. The custom message will be part of response body but not HTTP message code. Example: Calling the Get Admins in Organization Group with no Admins in the group: API URI – https://host/api/system/groups/{groupid}/admins Response obtained in 8.2 Response obtained in 8.3 204 No admins found for this search request 204 No content Refer the below table to understand the status codes and their descriptions: CODE STATUS DESCRIPTION 100 Continue This indicates that the client can continue with its request. 101 Switching Protocols This indicates that the protocol version or protocol is being changed. 200 OK 201 Created This is used to indicate successful resource creation. An AirWatch Platform API responds with the 201 status code whenever a collection creates a new resource at the client’s request. There may also be times when a new resource is created as a result of some controller action, in which case 201 would also be an appropriate response. 202 Accepted This is used to indicate successful start of an asynchronous action. A 202 response indicates that the client’s request will be handled asynchronously. This response status code tells the client that the request appears valid, but it still may have problems once it’s finally processed. A 202 response is typically used for actions that take a long while to process. Controller resources may send 202 responses, but other resource types should not. This is used to indicate nonspecific success. In most cases, 200 is the code the client hopes to see. It indicates that the AirWatch Platform API successfully carried out whatever action the client requested, and that no more specific code in the 2xx series is appropriate. Unlike the 204 status code, a 200 response should include a response body. 200 (“OK”) is not used to communicate errors in the response body.AirWatch Platform API must not be compromised in an effort to accommodate less sophisticated HTTP clients. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 44 Chapter 2: Security and the API 203 Non Authoritative Information 204 No Content This indicates that the returned meta information is from a cached copy instead of the origin server and therefore may be incorrect. This is when the response body is intentionally empty. The 204 status code is usually sent out in response to a PUT, POST or DELETE request, when the AirWatch Platform API declines to send back any status message or representation in the response message’s body. An API may also send 204 in conjunction with a GET request to indicate that the requested resource exists, but has no state representation to include in the body. 205 Reset Content This indicates that the client should reset (not reload) the current resource. 206 Partial Content This indicates that the response is a partial response as requested by a GET request that includes a byte range. 300 Multiple Choices This indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. 300 Ambiguous This indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. 301 Moved Permanently This is used to relocate resources. The 301 status code indicates that the AirWatch Platform API’s resource model has been significantly redesigned and a new permanent URI has been assigned to the client’s requested resource. The AirWatch Platform API should specify the new URI in the response’s Location header. 301 Moved This indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. 302 Found This indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. 302 Redirect This indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. 303 See Other This is used to refer the client to a different URI. A 303 response indicates that a controller resource has finished its work, but instead of sending a potentially unwanted response body, it sends the client the URI of a response resource. This can be the URI of a temporary status message, or the URI to some already existing, more permanent, resource. The 303 status code allows an AirWatch Platform API to send a reference to a resource without forcing the client to download its state. Instead, the client may send a GET request to the value of the Location header. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 45 Chapter 2: Security and the API 303 Redirect Method This automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET. 304 Not Modified 305 Use Proxy 306 Unused 307 Temporary Redirect This is used to tell clients to resubmit the request to another URI. HTTP/1.1 introduced the 307 status code to reiterate the originally intended semantics of the 302 (“Found”) status code. A 307 response indicates that the AirWatch Platform API is not going to process the client’s request. Instead, the client should resubmit the request to the URI specified by the response message’s Location header. An AirWatch Platform API can use this status code to assign a temporary URI to the client’s requested resource. For example, a 307 response can be used to shift a client request over to another host. 307 Redirect Keep Verb This indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method. 400 Bad Request This may be used to indicate nonspecific failure. 400 is the generic client-side error status, used when no other 4xx error code is appropriate. This is used to preserve bandwidth. This status code is similar to 204 (“No Content”) in that the response body must be empty. The key distinction is that 204 is used when there is nothing to send in the body, whereas 304 is used when there is state information associated with a resource but the client already has the most recent version of the representation. This status code is used in conjunction with conditional HTTP requests. Example: If-Modified header. This indicates that the request should use the proxy server at the URI specified in the Location header. This is a proposed extension to the HTTP/1.1 specification that is not fully specified. Important: For errors in the 4xx category, the response body may contain a document describing the client’s error (unless the request method was “HEAD”). See Error representation for error response body design. 401 Unauthorized This is used when there is a problem with the client’s credentials. A 401 error response indicates that the client tried to operate on a protected resource without providing the proper authorization. It may have provided the wrong credentials or none at all. 402 Payment Required PaymentRequired is reserved for future use 403 Forbidden This is used to forbid access regardless of authorization state. A 403 error response indicates that the client’s request is formed correctly, but the AirWatch Platform API refuses to honor it. A 403 response is not a case of insufficient client credentials; that would be 401 (“Unauthorized”). AirWatch Platform APIs use 403 to enforce applicationlevel permissions. For example, a client may be authorized to interact with some, but not all of AirWatch Platform APIs resources. If the client attempts a resource interaction that is outside of its permitted scope, the AirWatch Platform API should respond with 403. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 46 Chapter 2: Security and the API 404 Not Found 405 Method Not Allowed This is used when a client’s URI cannot be mapped to a resource. The 404 error status code indicates that the AirWatch Platform API could not map the client’s URI to a resource. This is used when the HTTP method is not supported. The API responds with a 405 error to indicate that the client tried to use an HTTP method that the resource does not allow. For instance, a read-only resource could support only GET and HEAD, while a controller resource might allow GET and POST, but not PUT or DELETE. A 405 response must include the Allow header, which lists the HTTP methods that the resource supports. For example: Allow: GET, POST, HEAD, etc… 406 Not Acceptable This is used when the requested media type cannot be served. The 406 error response indicates that the API is not able to generate any of the client’s preferred media types, as indicated by the Accept request header. For example, a client request for data formatted as txt/csv will receive a 406 response if the API is only willing to format data as application/json. 407 Proxy This indicates that the requested proxy requires authentication. The Proxy-authenticate Authentication header contains the details of how to perform the authentication. Required 408 Request Timeout This indicates that the client did not send a request within the time the server was expecting the request. 409 Conflict This is used to indicate a violation of resource state. The 409 error response tells the client that they tried to put the AirWatch Platform APIs resources into an impossible or inconsistent state. For example, an AirWatch Platform API may return this response code when a client tries to delete a non-empty store resource. 410 Gone This indicates that the requested resource is no longer available. 411 Length Required This indicates that the required Content-length header is missing. 412 Precondition Failed 413 Request Entity This indicates that the request is too large for the server to process. Too Large 414 Request Uri Too Long 415 Unsupported Media Type This should be used to support conditional operations. The 412 error response indicates that the client specified one or more preconditions in its request headers, effectively telling the AirWatch Platform API to carry out its request only if certain conditions were met. A 412 response indicates that those conditions were not met, so instead of carrying out the request, the API sends this status code. This indicates that the URI is too long. This is used when the media type of a request’s payload cannot be processed. The 415 error response indicates that the API is not able to process the client’s supplied media type, as indicated by the Content-Type request header. For example, a client request including data formatted as txt/html will receive a 415 response if the API is only willing to process data formatted as application/json. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 47 Chapter 2: Security and the API 416 Requested Range Not Satisfiable This indicates that the range of data requested from the resource cannot be returned, either because the beginning of the range is before the beginning of the resource, or the end of the range is after the end of the resource. 417 Expectation Failed This indicates that an expectation given in an Expect header could not be met by the server. 426 Upgrade Required This indicates that the client should switch to a different protocol such as TLS/1.0 500 Internal Server This is used to indicate API malfunction. 500 is the generic AirWatch Platform API error Error response. Most web frameworks automatically respond with this response status code whenever they execute some request handler code that raises an exception. A 500 error is never the client’s fault and therefore it is reasonable for the client to retry the exact same request that triggered this response, and hope to get a different response. 501 Not Implemented This is used to indicate the service that does not currently support the requested functionality. 502 Bad Gateway This indicates that an intermediate proxy server received a bad response from another proxy or the origin server. 503 Service Unavailable This is used to indicate that the server is unable to handle the request due to temporary overload or maintenance of the service. 504 Gateway Timeout This indicates that an intermediate proxy server timed out while waiting for a response from another proxy or the origin server. 505 Http Version This indicates that the requested HTTP version is not supported by the server. Not Supported VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 48 Chapter 2: Security and the API Error Codes CATEGORY DESCRIPTION 3xxx MCM Error Codes 5xxx MDM Error Codes 6xxx System Error Codes 7xxx MAM Error Codes CODE DESCRIPTION 3000 Personal content is disabled 3001 Unauthorized to access resource 3002 Invalid request 3003 Content-Length not provided 3004 Multipart/form-data only supported 3005 Proper content dispositions aren't found in the request 3006 Unsupported media type 3007 File size is greater than the allowed max file size 3008 User storage quota exceeded, Please contact the admin 3009 Invalid file name 3010 Folder Sharing is not allowed 3011 Folder Not Found 3012 Folder cannot be shared to yourself 3013 Folder name is empty 3014 Folder with same name already exists 3015 Folder id is empty 3016 Rfs is configured 3017 Rfs is not configured 3018 Invalid external file id 3019 Invalid external file hash 3020 Upload the physical file first on Rfs before you finalize your upload operation 3021 Internal server error 3022 Invalid Rfs download url 3023 Folder id is empty or invalid VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 49 Chapter 2: Security and the API 3024 Folder not found or not enough permissions 3025 Using wrong API 3026 File Sharing is disabled 3027 File not found 3028 User Id expected not Email 3029 Needed list of collaborators 3030 Invalid MIME multipart message or is not complete 3031 Invalid folder id 3032 Invalid search criteria 3033 Password is required 3034 Invalid input model 3035 Invalid maximum download count 3036 Invalid password 3037 Invalid collaborator 5000 Invalid activation code 5001 Gateway Configuration Not Found 5002 Device Not Found 5003 Invalid SearchBy Parameter 5004 Cache configuration not found 5005 Invalid Input 5006 Action not enabled 5007 Invalid Device UId; DeviceUid not found 5007 Invalid Platform Type; Request cannot be processed for the given platform type 6000 Admin User Not Found 6001 Admin User Cannot Be Deleted 6002 Passwords Cannot be changed 6003 Password Cannot be null or empty 6004 Password Doesnot meet complexity requerements 6005 Duplicate Role Association is found 6006 Role Association not found 6007 Role Cannot be removed 6008 Application Not Found 6009 Invalid Argument VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 50 Chapter 2: Security and the API 6010 At least one custom attribute value should be present 6011 No Issuer found 6012 Unable to create Basic OCSP response 6013 Unable to load certificate 6014 Invalid OCSP request 7000 Application is not found. 7001 Application Id (BundleId/ExternalId) is empty. 7002 Invalid Argument 7100 No stoken found at passed organization group 7101 Client context is not valid for the environment and must be reset. 7102 Sync on requested item is already in progress. 7103 Device assignment is already enabled for the app. 7104 App is not eligible for device based assignment 7105 Not a valid vpp application Framework Errors Error Error Description UnknownError Unknown data access error ConstraintError Command violated database constraint TenantAccessSecurityError Resource access that does not come under current location group context DeviceUnenrolledError Device Actions not allowed due to device is in unenrolled state BulkActionOutOfRange No of devices for bulk action is put of range ChildLocationGroupExists When child location groups exists, LG delete is not allowed InvalidInput When input passed is not valid or mandatory inputs are missing UserExists User already exists, not allowed to add user with same username NotFound Not found EnrolledDevicesExistCantDelete User has enrolled devices, can not be deleted EnrolledDevicesExists User has enrolled devices, can not change the location group of user Forbidden Forbidden UserNotFound Enrollment User not found AlreadyExists Resource already exists, user can't add the same Resource again AdminCantBeDeleted Admin cannot be deleted ParentLgIsOfTypeCustomer Lg cannot be created, because its parent LG is of type Customer VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 51 Chapter 2: Security and the API UserGroupAlreadyExists User group cannot be created, because a user group with the same name already exists UserGroupNotFound User group not found CustomerGroupNotFound Location group of type customer does not exist SmartGroupNotFound Smart group not found in AirWatch GeneralServerError General Application error in AirWatch DeviceTypeNotSupported Functionality not supported for the device-type FunctionalityNotImplemented Functionality not Implemented in AirWatch API TagNameAlreadyExists Tag cannot be added, tag with the same name already exists. SaveDeviceError Device creation failed in AirWatch InvalidUser User provided in invalid HmacTokenError Failed to create Hmac token for the device on AirWatch VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 52 Chapter 2: Security and the API Root Service Document The root service document is found at the root path of the API application and describes which resources are available to the caller. Resources in the AirWatch Platform API are organized into workspaces. To start an operation, client applications can request a service document located at the entry point of the API application (e.g., https://host/api/system/info). Dereferencing this URL yields a Root Service Document describing each available workspace (e.g., Mobile Device Management). Similarly, each workspace describes the resources, representations and child workspaces using a service document. Client applications MUST NOT make any assumptions about resource URI layouts, structure or hierarchy as this are server controlled and can change over time. API key must be included in every request header. aw- tenant-code – Value is available in system settings when REST API access is enabled. Example as shown in a REST Client– aw-tenant-code in the header. Note: This is the initial call a third party would make with no tenant information. Example: Resource URL: https://host/api/system/info Resource Type: Document Media Type: application/http://servicemodel/ServiceDocument Method: GET GET https://host/api/system/info HTTP/1.1 Authorization: [Credentials] Accept: application/xml This yields a response with a Service Document representing a Workspace, including the Root Workspace similar to: HTTP/1.1 200 OK Content-Type: application/http://host/servicemodel/servicedocument+xml Content-Length: N Important: In the AirWatch API Help portal, review the entire list of available APIs. Basic User and Directory Authentication is required to access the API help page. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 54 Chapter 3: Admin User Management Overview 56 Create Console Admin User (Basic) 56 Create Console Admin User (Directory) 61 Retrieve Admin User Details 63 Search Admin User 66 Update Admin User 70 Add Console Admin User Role 73 Remove Console Admin User Role 74 Change Console Admin User Password 75 Delete Console Admin User 76 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 55 Chapter 3: Admin User Management Overview The AirWatch REST APIs allows you to manage all the core functionalities around console administration. Admin User's details can be viewed in the following path on the AirWatch Console: l Admin User Details – Accounts > Administrators > List View. l Admin Role Details – Accounts > Administrators > Roles. Create Console Admin User (Basic) Functionality – Creates a console admin user of security type Basic in the desired organization group. HTTP Method – POST API URI – https://host/api/system/admins/addadminuser Request Payloads XML Host Platform Services Copyright © AirWatch, LLC 2012 6.4 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 53 Chapter 2: Security and the API1 Mobile Device Management Mobile Content Management Mobile Application Management Mobile Email Management Enterprise Integration Services System Administration ...VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 56 Chapter 3: Admin User Management JSON { "UserName": "String ", "Password": "String ", "FirstName": "String ", "LastName": "String ", "Email": "String ", "LocationGroupId": "Numeric", "TimeZone": "String", "Locale": "String", "Roles": [ { "Id": "Numeric", "LocationGroupId": "Numeric" }, { "Id": "Numeric", "LocationGroupId": "Numeric" } ], "IsActiveDirectoryUser":Boolean, "RequiresPasswordChange":Boolean } Request Tag Details Tag Type Mandatory Description UserName String Yes Desired unique user name of the Console user Password String Yes Desired password for the Console user FirstName String Yes Desired first name of the Console user LastName String Yes Desired last name of the Console user Email String Yes Desired email in the format xxx@yyy.com IsActiveDirectoryUser Boolean Yes Specifies if the user is an Active Directory user. "False" for a Basic User (the value is case-sensitive) TimeZone String No Time zone code of the user. Refer Tables for the allowed time zone code values LocationGroupId Numeric No ID of the organization group where the user is created. When this tag is not provided defaults to the Root OG of the Authenticated user sending the API request Locale String No Desired Locale of the user. Refer the Important section below InitialLandingPage String No Specifies the page to be displayed when the newly created user logs into the console VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 57 Chapter 3: Admin User Management Roles Array Yes (1 role) Array of roles assigned to the admin user. At least 1 role is mandatory for an admin user Id(Role) Numeric Yes ID of the desired user role LocationGroupId(Role) Numeric Yes ID of the organization group where the user role will be applicable RequiresPasswordChange Boolean No Specifies whether a password change is required during the next login Important l The newly created user can be seen in the following path in the console: Accounts > Administrator > List View. l The value of the Initial Landing page can be copied from the console. For example, Device/Dashboard l The Location Group ID can be obtained using the Search Organization Group API. l The Role IDs available in an Organization Group can be obtained using the Get Admin Roles API. Response Payload XML String String String String String Numeric String String String Numeric Numeric Numeric Numeric Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Description Long/Value Unique ID of the newly created admin user C# Sample Code using using using using System; System.IO; System.Net; System.Text; VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 58 Chapter 3: Admin User Management using System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string USER_NAME = "UserName1"; private const string PASSWORD = "Password1"; private const string API_TENANT_CODE = "API-Key"; private const string HOST = "https://host"; private const string MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void CreateAdminUser() { try { var adminUser = new AdminUser(); adminUser.UserName = "UserName"; adminUser.Password = "1234"; adminUser.FirstName = "FirstName"; adminUser.LastName = "Last Name"; adminUser.Email = "user@domain.com"; adminUser.IsActiveDirectoryUser = false; adminUser.LocationGroupId = "661"; var roles = new Role[1]; var role = new Role(); role.Id = 3; role.LocationGroupId = "661"; roles[0] = role; adminUser.Roles = roles; var request = WebRequest.Create(HOST + "/api/system/admins/addadminuser") as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof(AdminUser)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 59 Chapter 3: Admin User Management xmlSerializer.Serialize(writer, adminUser, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 60 Chapter 3: Admin User Management Create Console Admin User (Directory) Functionality – Creates an admin user with directory credentials in the desired organization group. HTTP Method – POST API URI – https://host/api/system/admins/addadminuser Request Payloads XMLJSON { "UserName":"String", "LocationGroupId":"String", "TimeZone":"String", "Locale":"String", "InitialLandingPage":"String", "Roles":[{"Id":"Numeric","LocationGroupId":"String"}, {"Id":"Numeric","LocationGroupId":"String"}], "IsActiveDirectoryUser":Boolean, "RequiresPasswordChange":Boolean } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 61 Chapter 3: Admin User Management Request Tag Details Tag Mandatory Description UserName Yes Desired unique user name of the Console user LocationGroupId No ID of the organization group where the user is created. When this tag is not provided, defaults to the Root Organization Group of the authenticated user sending the API request TimeZone No Desired time zone for the console Console user Locale No Desired Locale of the user. Refer the Important section below InitialLandingPage No Specifies the page to be displayed when the newly created user logs into the console Roles Yes (1 role) Array of roles. At least 1 Role is mandatory for the user Id(Role) Yes ID of the desired user role LocationGroupId(Role) Yes ID of the Organization Group where the user role will be applicable IsActiveDirectoryUser Yes "true" for a directory user RequiresPasswordChange No Specifies whether a password change is required during the next login Important: The first name, Last name, Email ID, and Password can be picked from the Configured Directory. Response Payloads XML String String String String String Numeric String Numeric String true Boolean Numeric JSON { "Value":Numeric } Response Tag Details Tag Type Description Long/Value Numeric Unique user ID of the newly created Console user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 62 Chapter 3: Admin User Management Retrieve Admin User Details Functionality – Retrieves console admin user details identified by the admin user ID. HTTP Method – GET API URI – https://host/api/system/admins/{id} URI Parameters Tag Description id The admin user ID Request Body – NA Response Payload XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 63 Chapter 3: Admin User Management JSON "UserName": "String", "FirstName": "String", "LastName": "String", "Email": "String", "LocationGroup": "String", "LocationGroupId": "string", "RequiresPasswordChange":Boolean, "TimeZone": "String", "Locale": "String", "InitialLandingPage": "String", "LastLoginTimeStamp": "Datetime", "Roles": [{ "Id": Numeric, "Name": "String", "LocationGroup": "String", "LocationGroupId": "String" }], "IsActiveDirectoryUser": "Boolean", "Id": {"Value": Numeric} Response Tag Details Tag Type Description UserName String User name of the admin user FirstName String First name of the admin user LastName String Last name of the admin user Email String Email address of the admin user LocationGroup String Name of the organization group to which the admin user belongs LocationGroupId String Organization group ID of the admin user TimeZone String Time zone of the admin user Locale String Locale of the admin user InitialLandingPage String Initial Landing page to be displayed on the console when the admin user logs in LastLoginTimeStamp Datetime Time Stamp of the last login into the console by the admin user Roles String Array of roles Roles Id Numeric Unique identification of the role Name String Name of the role LocationGroup String Organization group where the role is assigned LocationGroupId Numeric Organization group ID where the role is assigned VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 64 Chapter 3: Admin User Management RequiresPasswordChange Boolean True/False if the password change is required VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 65 Chapter 3: Admin User Management Search Admin User Functionality – Searches for admin users using the query information provided. HTTP Method – GET API URI – https://host/api/system/admins/search?firstname={firstname}&lastname={lastname}&email= {emailaddress}&organizationgroupid={organizationgroupid}&role={role}&username={username}&orderby= {orderby}&page={page}&pagesize={pagesize}&sortorder={sortorder} l l Exact Match Parameter – sortorder Pattern (Contains) Match Parameter – firstname, lastname, email, organizationgroupid, role, username, orderby, page, pagesize Request Body – NA URI Parameters Tag Type Description firstname String The First name to search for the admin user lastname String The Last Name to search for the admin user emailaddress String The email address to search for the admin user organizationgroupid Numeric The Organization group ID to search for the admin user role String Role name to search for the admin user username String Username to search for the admin user orderby String Order the results by attribute page Numeric The specific page number to be retrieved pagesize Numeric Maximum records per page to be displayed sortorder Numeric Sorting order. Allowed values are ASC or DESC. Defaults to DESC if this attribute is not specified Response Payload XML Numeric String String String String String String String String String Datetime Numeric String String String String String String String Boolean Boolean JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "Admins":[{ "Id":Numeric, "UserName":"String", "FirstName":"String", "LastName":"String", "Email":"String", "LocationGroup":"String", "LocationGroupId":"String", "TimeZone":"String", "Locale":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 67 Chapter 3: Admin User Management "InitialLandingPage":Numeric, "LastLoginTimeStamp":Numeric, "Roles":[{ "Id":Numeric, "Name":"String", "Description":"String", "LocationGroup":"String", "LocationGroupId":"String" }], "IsActiveDirectoryUser":Boolean, "RequiresPasswordChange":Boolean }] } Response Tag Details Tag Type Description Page Numeric Current page number of the result PageSize Numeric Page size in terms of the number of users in a page Total Numeric Total number of users present in the search result Id Numeric Unique ID of the admin user UserName String Unique user name of the admin user FirstName String First Name of the admin user LastName String Last Name of the admin user Email String Email address of the admin user LocationGroup String Name of the organization group where the admin user will be created LocationGroupId String Numeric ID of the organization group where the admin user will be created TimeZone String Time zone code of the admin user Locale String Desired Locale of the admin user InitialLandingPage String Landing page when the newly created user logs into the console LastLoginTimeStamp Datetime Time stamp of the last login into the console by the admin user Roles Array Array of roles. At least 1 role is mandatory for an admin user Id Numeric Unique numeric ID of the role Name String Unique name of the admin role Description String Description of the admin role LocationGroup String Organization group where the role is assigned VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 68 Chapter 3: Admin User Management LocationGroupId String Organization Group ID where the role is assigned IsActiveDirectoryUser Boolean Is the user an Active Directory user? "false" for a Basic User (the value is case-sensitive) RequiresPasswordChange Boolean Specifies whether a password change is required during the next login VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 69 Chapter 3: Admin User Management Update Admin User Functionality – Updates the specified admin user. HTTP Method – POST API URI – https://host/api/system/admins/{id}/update URI Parameters Tag Description id The admin user ID Response Body – NA Request Payload XML Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 66 Chapter 3: Admin User ManagementString String String String String String String String Numeric Datetime Numeric String String String String Numeric String String String String Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 70 Chapter 3: Admin User Management JSON { "UserName":"String", "Password":"String", "FirstName":"String", "LastName":"String", "Email":"String", "LocationGroupId":"Numeric", "TimeZone":"String", "Locale":"String", "InitialLandingPage":"String", "Roles":[{ "Id":Numeric, "LocationGroupId":"Numeric" }], "IsActiveDirectoryUser":Boolean, "RequiresPasswordChange":Boolean } Request Tag Details Tag Type Mandatory Description UserName String No Desired unique user name of the admin user Password String No Desired password for the admin user FirstName String No Desired first name of the admin user LastName String No Desired last name of the admin user Email String No Desired email in the format xxx@yyy.com LocationGroupId Numeric No ID of the organization group where the user is created. When this tag is not provided defaults to the Root OG of the Authenticated user sending the API request TimeZone String No Time zone code of the user. Refer Tables for the allowed time zone code values Locale String No Desired locale of the user InitialLandingPage String No Initial landing page when the newly created user logs into the console Roles Array No Array of roles. At least 1 role is mandatory for an admin user Id(Role) Numeric No ID of the desired user role LocationGroupId(Role) Numeric No ID of the organization group where the user role will be applicable VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 71 Chapter 3: Admin User Management IsActiveDirectoryUser Boolean No Is the user an Active Directory user? "false" for a Basic User (the value is case-sensitive) RequiresPasswordChange Boolean No Specifies whether a password change is required during the next login VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 72 Chapter 3: Admin User Management Add Console Admin User Role Functionality – Adds a desired admin role to a console admin user. HTTP Method – POST API URI – https://host/api/system/admins/{coreuserid}/addrole Response Obtained – NA Request Payloads XML String String String String String Numeric String String String Numeric Numeric Numeric Numeric Boolean Boolean JSON { "Id":"String", "LocationGroupId":"String" } Request Tag Details Tag Mandatory Description Id Yes Unique numeric ID of the role LocationGroupId Yes Unique numeric ID of the organization group where the role needs to be assigned VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 73 Chapter 3: Admin User Management Remove Console Admin User Role Functionality – Removes a role from an specified admin user. HTTP Method – POST API URI – https://host/api/system/admins/{coreuserid}/removerole Response Payload – NA Request Payload XML String string JSON { "Id":Numeric, "LocationGroupId":Numeric } Request Tag Details Tag Mandatory Description Id Yes Unique numeric ID of the role LocationGroupId Yes Unique numeric ID of the organization group where the role is applied VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 74 Chapter 3: Admin User Management Change Console Admin User Password Functionality – Changes the password of the console admin user. HTTP Method – POST API URI – https://host/api/system/admins/{AdminUserID}/changepassword Response Obtained – NA Request Payloads XML Numeric Numeric JSON { "Password": "String" "RequiresPasswordChange":Boolean } Request Tag Details Tag Mandatory Description Password Yes Desired new password RequiresPasswordChange No Specifies whether a password change is required during the next login VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 75 Chapter 3: Admin User Management Delete Console Admin User Functionality – Deletes a specified console admin user identified by its user ID of an organization group. HTTP Method – DELETE API URI – https://host/api/system/admins/{id}/delete URI Parameters Tag Description id The admin user ID Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 76 Chapter 4: Application Management Overview 81 Internal Application Install : Upload Application Chunks (iOS and Android) 81 Upload Blob 85 Download Blob 86 Internal Application Save 87 Insert Public Application (iOS and Android) 102 Update Public Application (*Refactored) 108 Search Applications 111 Search Play Store for Applications (*Refactored) 124 Search Windows App Store for Applications (*Refactored) 126 Search Apple App Store for Applications (*Refactored) 128 Activate Internal Application 130 Update Internal Application 131 Activate Public Application 141 Deactivate Internal Application 142 Deactivate Public Application 142 Retire Internal Application 143 Unretire Internal Application 143 Assign Smart Group to an Internal Application (*Refactored) 144 Assign Smart Group to a Public Application (*Refactored) 144 Assign Smart Group to BSP Application (Version 2) 144 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 77 Chapter 4: Application Management Remove Smart Group Assignment From an Internal Application (*Refactored) 146 Remove Smart Group Assignment From a Public Application (*Refactored) 146 Install Internal Application on Device 147 Install Public Application on Device 148 Install Purchased Application on the Device 149 Uninstall Internal Application From the Device 150 Uninstall Public Application From the Device 151 Uninstall Purchased Application From the Device 152 View Internal Application Status on the Device 153 View Public Application Status on the Device 154 View Purchased Application Status on Device 155 Retrieve Application Details 156 Get Application Management Status (*Refactored) 159 Retrieve Assigned Devices (Internal Application) (*Refactored) 160 Retrieve Assigned Devices (Public Application) (*Refactored) 162 Retrieve Assigned Devices With Purchased Application (*Refactored) 164 Retrieve Installed Devices (Internal Application) (*Refactored) 166 Retrieve Installed Devices (Public Application) (*Refactored) 168 Retrieve Installed Devices With Purchased Application (*Refactored) 170 Retrieve Devices with Internal Application Installed or Assigned 172 Retrieve Devices with Public Application Installed or Assigned 174 Retrieve Devices with Purchased Application Installed or Assigned 176 Delete Internal Application 178 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 78 Chapter 4: Application Management Delete Public Application 178 Add Assignments to Internal Application 179 Edit Assignment of Internal Application 181 Delete Application Assignment From Smart Group 183 Retrieve Internal Application Details 184 Create Application Group (*Refactored) 198 Retrieve Application Group Details 203 Search Application Group (*Refactored) 206 Search SDK Analytics 210 Update Application Group (*Refactored) 213 Delete Application Group (*Refactored) 216 Add Application to an Application Group (*Refactored) 218 Delete Application from the Application Group (*Refactored) 219 Create VPP Application Allocation (*Refactored) 220 Delete VPP Application 222 Delete VPP Application Smart Group Assignment (*Refactored) 222 Search VPP Application (*Refactored) 223 Get VPP Allocation Details 227 Update VPP Licensed Application Assignment (*Refactored) 230 Queues Sync Assets for VPP Applications 233 Resets the Client Context 234 Get VPP Sync Assets Status 235 Enable Device Based Assignment For VPP Applications 236 Update Application on Devices Having Device Based Licenses 236 Auto Update Flag for Device based VPP App 236 Get VPP Invite Status (*Refactored) 238 Send Bulk VPP Invite (*Refactored) 239 Retrieve Windows App Dependency 241 Retrieve List of Windows App Dependency Files 249 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 79 Chapter 4: Application Management Delete Windows Dependency Application 251 Search and Retrieve Removal Logs for Internal Applications 252 Update Removal Logs 254 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 80 Chapter 4: Application Management Overview AirWatch REST APIs allows you to manage the end-to-end functionalities of Mobile Application Management (MAM) features. Using these APIs, you can upload internal and public applications, assign, and manage applications on the devices. Application details can be viewed in the following path on the AirWatch Console: l Public and Internal Application Details – Apps&Books > Applications > List View. l Smart Group Details – Groups & Settings > Groups > Smart Groups. Internal Application Install : Upload Application Chunks (iOS and Android) Functionality – Uploads application chunks into the database for internal application install. This API must be used prior to the 'Begin Install API' for uploading an internal application. HTTP Method – POST API URI – https://host/api/mam/apps/internal/uploadchunk Request Payloads XML String Boolean JSON { "TransactionId":"String", "ChunkData":[String], "ChunkSequenceNumber":Numeric, "TotalApplicationSize":Numeric, "ChunkSize":Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 81 Chapter 4: Application Management Request Tag Details Tag Mandatory Description TransactionId Yes Unique Identifier to identify an application. This string is generated by the server and sent as a response for the first chunk sent. This transaction ID should be sent for all the chunks that are subsequently sent. ChunkData Yes Base-64 Encoded String of the application chunk ChunkSequenceNumber Yes Sequence number of the chunk. First chunk will have sequence number of 1 TotalApplicationSize Yes Total application size ChunkSize Yes Chunk size. Recommended chunk size is 1 MB. Response Payload XML String String Numeric Numeric Numeric JSON { "TransactionId":Numeric, "ChunkSequenceNumber":"String", "UploadSuccess" : "Boolean" } Response Tag Details Tag Type Description TransactionId String Unique Identifier to identify an application. This string is generated by the server and sent as a response for the first chunk sent. This transaction ID should be sent for all the chunks that are subsequently sent. ChunkSequenceNumber Numeric Sequence number of the Chunk. First Chunk will have sequence number of 1 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 82 Chapter 4: Application Management UploadSuccess Boolean "True" indicates a successful chunk upload, "False" indicates an failed chunk upload C# Sample Code using System; using System.IO; using System.Net; using System.Text; using System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string USER_NAME = "UserName1"; private const string PASSWORD = "Password1"; private const string API_TENANT_CODE = "API-Key"; private const string HOST = "https://host"; private const string MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void UploadChunk() { try { var chunkEntity = new InternalAppChunk(); chunkEntity.ChunkData = new byte[] { 81, 109, 70, 122, 90, 83, 65, 50, 78, 67, 66, 84, 100, 72, 74, 108, 89, 87, 48, 61 }; chunkEntity.ChunkSequenceNumber = 1; chunkEntity.ChunkSize = chunkEntity.ChunkData.Length; chunkEntity.TotalApplicationSize = chunkEntity.ChunkData.Length; var request = WebRequest.Create(HOST + "/api/mam/apps/internal/uploadchunk") as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof (InternalAppChunk)); string inputString; VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 83 Chapter 4: Application Management using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); xmlSerializer.Serialize(writer, chunkEntity, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 84 Chapter 4: Application Management Upload Blob Functionality – Uploads your enterprise application packages (iOS, Android, and Windows Phone 8) as a single byte stream. The response for this API is a numeric “Blob ID”, that can be used in the Internal Application Save API to save the application to the console. HTTP Method – POST API URI – https://host/api/mam/blobs/uploadblob?filename={filename}&organizationgroupid= {organizationgroupid}&moduleType={moduleType} Request Body – Application file should be sent as binary. URI Parameters Tag Type Description filename String The name of the file along with the file extension. organizationgroupid Numeric Numeric Identifier of the organization group to upload the blob moduleType String Module type of file being uploaded. Example: General, Application, Book etc., Default: General Response Payload XML String Numeric Boolean Numeric JSON { "Value" : Numeric } Response Tag Details Tag Type Description Long Numeric Unique numeric identifier of the Application blob in repository VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 85 Chapter 4: Application Management Download Blob Functionality – Downloads the blob stream from the repository identified by blob id. HTTP Method – GET API URI – https://host/api/mam/blobs/downloadblob/{blobid} Request Body – NA Response Obtained – Application Data as Byte Stream VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 86 Chapter 4: Application Management Internal Application Save Functionality – Use this API to save an application, the blob or chunks of app package that are uploaded using ‘Upload Blob’ or ‘Upload Chunk’ APIs. This API can also be used to specify the supported models, deployment mode of the application. Once saved, assignments can be added to the application using ‘/internal/addAssignment’ (validate name) to begin the installation. HTTP Method – POST API URI – https://host/api/mam/apps/internal/begininstall Request Payload XMLString String String String Numeric String String String String String String String String Boolean Numeric Boolean String String String Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 87 Chapter 4: Application ManagementNumeric Boolean String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String Numeric Numeric Numeric String String Boolean String Numeric Numeric Numeric String String Boolean String String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String String String Numeric Numeric JSON { "ApplicationName" : "String", "AutoUpdateVersion" : Boolean, "BlobId" : "String", "DeploymentOptions" : { "HowToInstall" : { "AdminPrivileges" : Boolean, "DeviceRestart" : "String", "InstallCommand" : "String", "InstallContext" : "String", "InstallTimeoutInMinutes" : Numeric, "InstallerRebootExitCode" : "String", "InstallerSuccessExitCode" : "String", "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, "WhenToCallInstallComplete" : { "CriteriaList" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 90 Chapter 4: Application Management "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "CustomScript" : { "CommandToRunTheScript" : "String", "CustomScriptFileBlodId" : Numeric, "ScriptType" : "String", "SuccessExitCode" : Numeric }, "IdentifyApplicationBy" : "String", "UseAdditionalCriteria" : Boolean }, "WhenToInstall" : { "DataContingencies" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 91 Chapter 4: Application Management "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "DevicePowerRequired" : Numeric, "DiskSpaceRequiredInKb" : Numeric, "RamRequiredInMb" : Numeric } }, "Description" : "String", "Developer" : "String", "DeveloperEmail" : "String", "DeveloperPhone" : "String", "DeviceType" : "String", "EnableProvisioning" : Boolean, "FileName" : "String", "FilesOptions" : { "AppDependenciesList" : [ { "ApplicationDependencyId" : Numeric } ], "AppPatchesList" : [ { "PatchBlobId" : Numeric, "PatchType" : "String" } ], "AppTransformsList" : [ { "TransformBlobId" : Numeric } ], "ApplicationUnInstallProcess" : { "CustomScript" : { "CustomScriptType" : "String", "UninstallCommand" : "String", "UninstallScriptBlobId" : Numeric }, "UseCustomScript" : Boolean } }, "IsDependencyFile" : Boolean, "LocationGroupId" : Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 92 Chapter 4: Application Management "MsiDeploymentParamModel" : { "CommandLineArguments" : "String", "InstallTimeoutInMinutes" : Numeric, "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, "PushMode" : "String", "SupportEmail" : "String", "SupportPhone" : "String", "SupportedModels" : { "Model" : [ { "ApplicationId" : Numeric, "ModelId" : Numeric, "ModelName" : "String" } ] }, "SupportedProcessorArchitecture" : "String", "TransactionId" : "String" } Request Tag Details Tag Mandatory Description ApplicationName Yes Desired Application Name AutoUpdateVersion Yes Defines if the application can be updated automatically. Supported values are True and False. BlobId No Unique identifier obtained from the Upload Blob API response AdminPrivileges No Whether or not the installation should be initiated with logged-in user privileges or with stepped up administrative permissions DeviceRestart No Restart the device after the application is installed InstallCommand No Install program to meet your deployment criteria InstallContext No Indicate whether the app should be configured and installed for just enrolled users or for all users on each of your devices InstallTimeoutInMinutes No Amount of time, in minutes, that the installation process can run before the installation is considered as failed InstallerRebootExitCode No Integer code returned by the installer to indicate that the app has been successfully installed once the device has been rebooted. This will be used in conjunction with the 'Device Restart' option specified above. InstallerSuccessExitCode No Integer code returned by the installer that marks the success of the operation VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 93 Chapter 4: Application Management RetryCount No Number of retries for installing application before the installation is marked as failed RetryIntervalInMinutes No Amount of time, in minutes, between retries for installing application ApplicationIdentifier No Unique identifier of the application (Bundle ID or External ID) BuildNumber No Build version of the application MajorVersion No Major version of the application MinorVersion No Minor version of the application RevisionNumber No Fix version of the application VersionCondition No Version Conditions CriteriaType No Unique smart group type configured to the smart group BuildNumber No Build version of the application MajorVersion No Major version of the application MinorVersion No Minor version of the application ModifiedOn No Date on which the application was last modified Path No Path of the application RevisionNumber No Fix version of the application VersionCondition No Version Conditions LogicalCondition No Logical condition. Supported values are And, and Or. KeyType No Type of key to be created in the registry. Supported values are String, Binary, DWord, QWord, MultiString, and ExpandableString. KeyValue No Value of the key to be created in the registry Path No Path of the key in the registry CommandToRunTheScrip No Command to run the script CustomScriptFileBlodId No Blob ID of the script file associated. Supported file types are .js, .jse, .ps1, .ps1xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf, and .wsc. ScriptType No Script Type. Supported script types are JScript, PowerShell, and VBScript SuccessExitCode No Success exit code IdentifyApplicationBy No The way by which an application can be identified. Supported values are DefiningCriteria,and UsingCustomScript. UseAdditionalCriteria No Msi apps are detected on the device by product code and version. Use this option to perform additional actions to ensure your app is successfully installed on your end users' devices. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 94 Chapter 4: Application Management DevicePowerRequired No The minimum percentage of power required by the device for installing the application DiskSpaceRequiredInKb No The amount of disk space required for the successful installation of the application RamRequiredInMb No RAM (in MB) required for installing the application Description No Description of the application on what the application does and how it can be used Developer No Desired name of the developer DeveloperEmail No User defined email address of developer DeveloperPhone No User defined phone number of developer DeviceType No Numeric Platform identifier of the Device Application EnableProvisioning No Provisioning status. Supported value is Boolean/False. FileName No File name along with the extension FilesOptions No Application files options ApplicationDependencyId No Application dependency identifier PatchBlobId No Blob ID of the uploaded Patch PatchType No Type of the uploaded patch TransformBlobId No Blob ID of the uploaded Transform CustomScript No Custom script CustomScriptType No Custom script type. Supported values are Input and Upload. UninstallCommand No Application uninstall command provided UninstallScriptBlobId No Gets or sets the identifier value of the uninstall script file uploaded on the console. Supported file types are .js, .jse, .ps1, .ps1, .xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf,and .wsc. UseCustomScript No Value indicating whether custom script is used or not IsDependencyFile No Indicates whether uploaded file is a dependency file LocationGroupId No Location group identifier MsiDeploymentParamModel No Msi deployment Parameter model. This is valid only for MSI files when Software Distribution is not enabled. CommandLineArguments No Command-line options to be used when calling MSIEXEC.exe InstallTimeoutInMinutes No Amount of time, in minutes that the installation process can run before the installer. Considers the installation may have failed and no longer monitors the installation operation. The range is 0 through 60. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 95 Chapter 4: Application Management RetryCount No The number of times the download and installation operation will be retried before the installation will be marked as failed. With a limit of 10 attempts. RetryIntervalInMinutes No Amount of time, in minutes between retry operations. The range is 0 through 10. PushMode Yes Deployment mode for the applications. Supported values are Auto and On Demand. SupportEmail No User defined email address of support SupportPhone No User defined phone number of support ApplicationId Yes Application identifier ModelId No Identifier of the Device Model ModelName No Name of the Device Model SupportedProcessorArchitecture No The architecture type of the end user devices that the application supports TransactionId Unique Identifier to identify an application. This string is generated by the server and sent as a response for the first chunk sent. This transaction ID should be sent for all the chunks that are subsequently sent. No *At least one model information should be passed in the request. Important Note: Unlike API based app upload, if an app is uploaded through AirWatch Console, the deployment mode (push mode) is selected during smart group assignment process. Response Payload XML String Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 89 Chapter 4: Application ManagementNumeric String Numeric String String Boolean String String Numeric JSON { "Id" : Numeric, "ActualFileVersion" : "String", "AppRank" : Numeric, "AppType" : "String", "AppVersion" : "String", "ApplicationName" : "String", "ApplicationSize" : "String", "ApplicationSource" : Numeric, "ApplicationUrl" : "String", "AssignedDeviceCount" : Numeric, "AssignmentStatus" : "String", "BundleId" : "String", "CategoryList" : { "Category" : [ { "CategoryId" : Numeric, "Name" : "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 97 Chapter 4: Application Management } ] }, "Comments" : "String", "ExternalId" : "String", "InstalledDeviceCount" : Numeric, "IsReimbursable" : Boolean, "LargeIconUri" : "String", "LocationGroupId" : Numeric, "MediumIconUri" : "String", "NotInstalledDeviceCount" : Numeric, "Platform" : Numeric, "PushMode" : Numeric, "SmallIconUri" : "String", "Status" : "String", "SupportedModels" : { "Model" : [ { "ApplicationId" : Numeric, "ModelId" : Numeric, "ModelName" : "String" } ] } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 98 Chapter 4: Application Management Response Tag Details Tag Type Description Id Numeric Unique identifier for the application ActualFileVersion String Actual version of the file AppRank Numeric Rank of the application AppType String Type of the application AppVersion String Version of the application ApplicationName String Name of the application ApplicationSize String Size of the application ApplicationSource Numeric Source of the application ApplicationUrl String URL of the application AssignedDeviceCount Numeric Number of devices assigned with the application AssignmentStatus String Status of the application assignment BundleId String Bundle ID of the application from the Play Store for Android CategoryId Numeric Unique identifier of the application category Name String Name of the application category Comments String Desired comments for the application ExternalId String Track ID of the application from the App Store for iOS InstalledDeviceCount Numeric Number of devices with assigned application installed IsReimbursable Boolean Is the Paid Application Reimbursable LargeIconUri String URI of the large icon for the application LocationGroupId Numeric Unique numeric identifier of the Organization Group where the application is present MediumIconUri String URI of the medium icon for the application NotInstalledDeviceCount Numeric Number of devices with no assigned application installed Platform Numeric Platform identifier of the application. Refer Tables for the List of Platform identifiers PushMode Numeric Deployment mode for the applications. The values are 'Auto' and 'On Demand' SmallIconUri String URI of the small icon for the application Status String Current Status of the application. Supported values are Active and Inactive. ApplicationId Numeric Unique identifier of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 99 Chapter 4: Application Management ModelId Numeric Identifier of the Device Model ModelName String Name of the Device Model C# Sample Code using using using using using System; System.IO; System.Net; System.Text; System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string private const string private const string private const string private const string USER_NAME = "UserName1"; PASSWORD = "Password1"; API_TENANT_CODE = "API-Key"; HOST = "https://host"; MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void BeginInstall() { try { var appChunk = new InternalAppChunkTranscation(); appChunk.TransactionId = "782ae0ef-b6ee-4e4c-929e881f30bdef40"; appChunk.ApplicationName = "testapp"; appChunk.LocationGroupId = 661; appChunk.DeviceType = "Android"; appChunk.PushMode = "Auto"; appChunk.AutoUpdateVersion = Boolean; var supportedmodels = new SupportedModels(); appChunk.SupportedModels = supportedmodels; var models = new ApplicationSupportedModel[1]; var model = new ApplicationSupportedModel(); supportedmodels.Model = models; model.ModelName = "Android"; VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 100 Chapter 4: Application Management models[0] = model; var request = WebRequest.Create(HOST + "/api/mam/apps/internal/begininstall") as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof (InternalAppChunkTranscation)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); xmlSerializer.Serialize(writer, appChunk, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 101 Chapter 4: Application Management Insert Public Application (iOS and Android) Functionality – Inserts the public application selected by searching for the bundle ID (Android) or external ID (iOS) in the app market. HTTP Method – POST API URI – https://host/api/mam/apps/public Request Payload XML Numeric String String String String String String Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 96 Chapter 4: Application ManagementString String Numeric String String Boolean String Numeric Numeric String String String String auto Numeric Numeric Numeric JSON { "ApplicationName":"String", "ApplicationUrl" : "String", "AssignmentStatus" : "String", "BundleId":"String", "ExternalId":"String", "Platform":Numeric, "LocationGroupId":Numeric, "PushMode":Numeric "CategoryList": { VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 102 Chapter 4: Application Management "Category": [{ "CategoryId":Numeric, "Name":"String" }] }, "Comments":"String", "IsReimbursable":Boolean } Request Tag Details Tag Mandatory Description ApplicationName Yes Desired application name BundleId Yes Bundle ID of the application from the Play Store for Android ExternalId Yes Track ID of the application from the App Store for iOS Platform Yes Desired Platform ID LocationGroupId Yes Unique ID of the organization group where the application is uploaded PushMode Yes Mode of application deployment. For example: "Auto", "OnDemand" CategoryList No Array of applicable categories the application belongs to CategoryId No Unique numeric ID of the application category Name No Name of the application category Comments No Desired comments for the application IsReimbursable No Denotes if the application is reimbursable ApplicationUrl Yes* URL of the application AssignmentStatus No Status of the application assignment Note*: While passing value for String String String Numeric String Numeric String Numeric String String Boolean String , if the url has "&", replace it with "&". This prevents from obtaining de-serialization error. Response Payload XML JSON { "Id" : Numeric, "ApplicationName" : "String", "ApplicationUrl" : "String", "AssignedDeviceCount" : Numeric, "BundleId" : "String", "CategoryList" : { "Category" : [ { "CategoryId" : Numeric, "Name" : "String" } ] }, "Comments" : "String", "InstalledDeviceCount" : Numeric, "IsReimbursable" : Boolean, "LocationGroupId" : Numeric, "NotInstalledDeviceCount" : Numeric, "Platform" : Numeric, "PushMode" : Numeric } Response Tag Details Tag Type Description VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 104 Chapter 4: Application Management Id Numeric Unique identifier of the application ApplicationName String Desired application name ApplicationUrl String URL of the application AssignedDeviceCount Numeric Number of devices assigned with the application BundleId String Bundle ID of the application from the Play Store for Android CategoryId Numeric Unique numeric ID of the application category Name String Name of the application category Comments String Desired comments for the application InstalledDeviceCount Numeric Number of devices with application installed IsReimbursable Boolean Denotes if the application is reimbursable LocationGroupId Numeric Unique ID of the organization group where the application is uploaded NotInstalledDeviceCount Numeric Number of devices with application not installed Platform Numeric Platform of the device PushMode Numeric Mode of application deployment. For example: "Auto", "OnDemand" C# Sample Code using using using using using System; System.IO; System.Net; System.Text; System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string private const string private const string private const string private const string USER_NAME = "UserName1"; PASSWORD = "Password1"; API_TENANT_CODE = "API-Key"; HOST = "https://host"; MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 105 Chapter 4: Application Management } public static void InsertPublicApplication() { try { var appEntity = new ApplicationEntity(); appEntity.ApplicationName = "DesiredApplicationName"; appEntity.ExternalId = "Unique ID of the application on the Application store"; appEntity.Platform = "Platform ID"; appEntity.CategoryList = new CategoryList(); var categoryList = new CategoryList(); var categories = new Category[1]; var category = new Category(); category.Name = "Games"; categories[0] = category; categoryList.Category = categories; appEntity.LocationGroupId = 661; appEntity.PushMode = PushMode.auto; var request = WebRequest.Create(HOST + "/api/mam/apps/public") as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof (ApplicationEntity)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); xmlSerializer.Serialize(writer, appEntity, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 106 Chapter 4: Application Management { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 107 Chapter 4: Application Management Update Public Application (*Refactored) Functionality – Updates the public application selected by searching for the bundle ID (Android) or external ID (iOS) in the app market. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/public/{applicationid}/update. This URI will be deprecated soon. Start using the *Supported API URI henceforth. *Supported API URI – https://host/api/mam/apps/public/applicationid (HTTP method Used – PUT) Response Payload – NA Request Payloads XML Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 103 Chapter 4: Application ManagementString Numeric Numeric String String Boolean String Numeric Numeric Numeric Numeric Numeric JSON { "ActualFileVersion" : "String", "AppType" : "String", "AppVersion" : "String", "ApplicationName" : "String", "ApplicationSize" : "String", "ApplicationUrl" : "String", "AssignedDeviceCount" : Numeric, "AssignmentStatus" : "String", "BundleId" : "String", "CategoryList" : { "Category" : [ { "CategoryId" : Numeric, "Name" : "String" } ] }, "Comments" : "String", "ExternalId" : "String", "InstalledDeviceCount" : Numeric, "IsReimbursable" : Boolean, "LargeIconUri" : "String", "LocationGroupId" : Numeric, "MediumIconUri" : "String", "NotInstalledDeviceCount" : Numeric, "Platform" : Numeric, "PushMode" : Numeric, "SmallIconUri" : "String", "Status" : "String" } Request Tag Details Tag Mandatory Description ActualFileVersion Yes Actual version of the file AppType Yes Type of the application AppVersion Yes Version of the application ApplicationName Yes Name of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 109 Chapter 4: Application Management ApplicationSize Yes Size of the application ApplicationUrl Yes URI of the application AssignedDeviceCount Yes Number of devices assigned with the application AssignmentStatus No Status of the application assignment BundleId Yes Bundle ID of the application from the Play Store for Android CategoryId Yes Unique identifier of the application category Name No Name of the application category Comments No Desired comments for the application ExternalId No Track ID of the application from the App Store for iOS InstalledDeviceCount No Number of devices with assigned application installed IsReimbursable No Is the Paid Application Reimbursable LargeIconUri No URI of the large icon for the application LocationGroupId Yes Unique Numeric ID of the Organization Group where the application is present MediumIconUri No URI of the medium icon for the application NotInstalledDeviceCount No Number of devices with no assigned application installed Platform Yes Platform ID of the application. Refer Tables for the List of Platform IDs PushMode Yes Deployment mode for the applications. The values are 'Auto' and 'On Demand' SmallIconUri No URI of the small icon for the application Status No Current Status of the application. "Active" or "Inactive" Note*: While passing value for String String String String String String Numeric String String Numeric String Numeric String String Boolean String Numeric String String String String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 108 Chapter 4: Application ManagementNumeric , if the url has "&", replace it with "&". This prevents from obtaining de-serialization error. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 110 Chapter 4: Application Management Search Applications Functionality – Searches and retrieves the details for both internal and external applications. HTTP Method – GET API URI – https://host//api/mam/apps/search?type={type}&applicationtype={applicationtype}&applicationname= {applicationname}&category={category}&locationgroupid={locationgroupid}&bundleid={bundleid}&platform= {platform}&model={model}&status={status}&orderby={orderby}&page={page}&pagesize={pagesize} l l Exact Match Parameter – type, applicationtype, platform, model, status Pattern (Contains) Match Parameter – applicationname, Category, locationgroupid, bundleid, page, pagesize, orderby Request Body – NA URI Parameters Tag Type Description type String The product type - app or book Application Type String Type of the application - internal or public applicationname String Name of the application. Partial search string is allowed category String Category of the application. For example: Games locationgroupid String Unique numeric ID of the organization group where the application is present ApplicationType String Indicates if the application is "Internal" or "Public" bundleid String Bundle ID of the application platform String Application platform. For example: Android, iOS model String Application model. For example: iPad status String Returns the application status. All, Active, Inactive, Retired orderby String The order of the search result. Any of the column parameters mentioned above can be sent as a parameter page Numeric Page number of the retrieved response pagesize Numeric Page Size of the retrieved response VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 111 Chapter 4: Application Management Response Payload XML JSON { "ApplicationName" : "String", "BundleId" : "String", "AppVersion" : "String", "ActualFileVersion" : "String", "AppType" : "String", "Status" : "String", "Platform" : Numeric, "SupportedModels" : { "Model" : [ { "ApplicationId" : Numeric, "ModelId" : Numeric, "ModelName" : "String" } ] }, "AssignmentStatus" : "String", "ApplicationSize" : "String", "CategoryList" : { "Category" : [ { "CategoryId" : Numeric, "Name" : "String" } ] }, "SmartGroups" : [ { "Id" : Numeric, "Name" : "String" } ], "Comments" : "String", "IsReimbursable" : Boolean, "ApplicationUrl" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 116 Chapter 4: Application Management "ApplicationSource" : Numeric, "LocationGroupId" : Numeric, "ExternalId" : "String", "LargeIconUri" : "String", "MediumIconUri" : "String", "SmallIconUri" : "String", "PushMode" : Numeric, "AppRank" : Numeric, "AssignedDeviceCount" : Numeric, "InstalledDeviceCount" : Numeric, "NotInstalledDeviceCount" : Numeric, "Description" : "String", "SupportEmail" : "String", "SupportPhone" : "String", "Developer" : "String", "DeveloperEmail" : "String", "DeveloperPhone" : "String", "AutoUpdateVersion" : Boolean, "EnableProvisioning" : Boolean, "SupportedProcessorArchitecture" : "String", "MsiDeploymentParamModel" : { "CommandLineArguments" : "String", "InstallTimeoutInMinutes" : Numeric, "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, "IsDependencyFile" : Boolean, "DeploymentOptions" : { "WhenToInstall" : { "DataContingencies" : [ { "CriteriaType" : "Unknown", "AppCriteria" : { "ApplicationIdentifier" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric }, "FileCriteria" : { "Path" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric, "ModifiedOn" : "String" }, "RegistryCriteria" : { "Path" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 117 Chapter 4: Application Management "KeyName" : "String", "KeyType" : "Unknown", "KeyValue" : "String" }, "LogicalCondition" : "Unknown" }, { "CriteriaType" : "Unknown", "AppCriteria" : { "ApplicationIdentifier" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric }, "FileCriteria" : { "Path" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric, "ModifiedOn" : "String" }, "RegistryCriteria" : { "Path" : "String", "KeyName" : "String", "KeyType" : "Unknown", "KeyValue" : "String" }, "LogicalCondition" : "Unknown" } ], "DiskSpaceRequiredInKb" : Numeric, "DevicePowerRequired" : Numeric, "RamRequiredInMb" : Numeric }, "HowToInstall" : { "InstallContext" : "Unknown", "InstallCommand" : "String", "AdminPrivileges" : Boolean, "DeviceRestart" : "Unknown", "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric, "InstallTimeoutInMinutes" : Numeric, "InstallerRebootExitCode" : "String", "InstallerSuccessExitCode" : "String" }, "WhenToCallInstallComplete" : { "UseAdditionalCriteria" : Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 118 Chapter 4: Application Management "IdentifyApplicationBy" : "Unknown", "CriteriaList" : [ { "CriteriaType" : "Unknown", "AppCriteria" : { "ApplicationIdentifier" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric }, "FileCriteria" : { "Path" : "String", "VersionCondition" : "Unknown", "MajorVersion" : Numeric "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "BuildNumber" : Numeric, "ModifiedOn" : "String" }, "RegistryCriteria" : { "Path" : "String", "KeyName" : "String", "KeyType" : "Unknown", "KeyValue" : "String" }, "LogicalCondition" : "Unknown" } ], "CustomScript" : { "ScriptType" : "Unknown", "CommandToRunTheScript" : "String", "CustomScriptFileBlodId" : Numeric "SuccessExitCode" : Numeric } } }, "FilesOptions" : { "AppDependenciesList" : [ { "Name" : "String", "ApplicationDependencyId" : Numeric } ], "AppTransformsList" : [ { "TransformFileName" : "String", "TransformBlobId" : Numeric } ], VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 119 Chapter 4: Application Management "AppPatchesList" : [ { "PatchFileName" : "String", "PatchBlobId" : Numeric, "PatchType" : "Unknown", "BuildVersion" : "String" } ], "ApplicationUnInstallProcess" : { "UseCustomScript" : Boolean, "CustomScript" : { "CustomScriptType" : "Unknown", "UninstallCommand" : "String", "UninstallScriptBlobId" : Numeric } } }, "Id" : { "Value" : Numeric } } ], "Page" : Numeric, "PageSize" : Numeric, "Total" : Numeric } Response Tag Details Tag Type Description ApplicationName String Name of the application BundleId Numeric Bundle ID of the application AppVersion String Version of the application AppType String Type of the application. "Public" or "Internal" Status String Current Status of the application. "Active" or "Inactive" Platform Numeric Platform ID of the application. Refer Tables for the List of Platform IDs ModelId Numeric ID of the Device Model. Refer Tables for the List of Model IDs ModelName String Name of the Device Model AssignmentStatus String Current assignment state of the application. "Assigned" or "Not Assigned" ApplicationSize Numeric Size of the application. Bytes, KB, MB, GB CategoryId Numeric Numeric ID of the Category of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 120 Chapter 4: Application Management Name String Category name of the application SmartGroups Id Numeric Numeric ID of the smart group SmartGroups Name String Unique name of the smart group Comments String The comments associated with the public applications IsReimbursable Boolean Is the Paid Application Reimbursable. True or False ApplicationUrl String URL of a Public Application LocationGroupId Numeric Unique Numeric ID of the Organization Group where the application is present ExternalId Numeric Is the track ID of the application from the App Store for iOS PushMode String Deployment mode for the applications. The values are 'Auto' and 'On Demand' Page Numeric Page Number PageSize Numeric Size of the current page Total Numeric Total Results obtained from the search LargeIconUri String URL of the large icon for the application SmallIconUri String URL of the small icon for the application MediumIconUri String URL of the medium icon for the application AssignedDeviceCount Numeric Number of devices with application assigned InstalledDeviceCount Numeric Number of devices with assigned application installed NotInstalledDeviceCount Numeric Number of devices with no assigned application installed SupportEmail String User defined email address of support SupportPhone String User defined phone number of support Developer String Name of the developer DeveloperEmail String Email address of the developer DeveloperPhone Numeric Phone number of the developer AutoUpdateVersion Boolean Is auto update of devices required. True or False EnableProvisioning Booelan Provisioning status. Supported value is True or False. SupportedProcessorArchitecture String The architecture type of the end user devices that the application supports CommandLineArguments String Command-line options to be used when calling MSIEXEC.exe InstallTimeoutInMinutes Numeric Amount of time, in minutes that the installation process can run before the installer. Considers the installation may have failed and no longer monitors the installation operation. RetryCount Numeric The number of times the download and installation operation will be retried before the installation will be marked as failed. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 121 Chapter 4: Application Management RetryIntervalInMinutes Numeric Amount of time, in minutes between retry operations. CriteriaType String Unique smart group type configured to the smart group ApplicationIdentifier String Unique identifier of the application (Bundle ID or External ID) VersionCondition String Version conditions MajorVersion Numeric Major version of the application MinorVersion Numeric Minor version of the application BuildNumber Numeric Build version of the application RevisionNumber Numeric Fix version of the application FileCriteria String File criteria Path String Path of the file VersionCondition String Version Conditions MajorVersion Numeric Major version of the file MinorVersion Numeric Minor version of the file RevisionNumber Numeric Fix version of the application BuildNumber Numeric Build version of the application ModifiedOn String Date on which the file was last modified RegistryCriteria String Registry criteria Path String Path of the key in the registry Keyname String Name of the key to be created in the registry Keytype String Type of key to be created in the registry KeyValue String Value of the key to be created in the registry ScriptType String Script Type. Supported script types are JScript, PowerShell, and VBScript. CommandToRunTheScript String Command to run the script CustomScriptFileBlodId Numeric Blob ID of the script file associated. Supported file types are js, .jse, .ps1, .ps1xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf, and .wsc. SuccessExitCode Numeric Success exit code Name String File name ApplicationDependencyId Numeric Application dependency identifier TransformFileName String File name of the trasnform TransformBlobId Numeric Blob ID of the uploaded Transform PatchFileName String Name of the patch file PatchBlobId Numeric Blob ID of the uploaded Patch VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 122 Chapter 4: Application Management PatchType String Type of the uploaded patch BuildVersion String Build version of the application UseCustomScript Boolean Value indicating whether custom script is used or not CustomScriptType String Custom script type. Supported values are Input and Upload UninstallCommand String Application uninstall command provided UninstallScriptBlobId Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 123 Chapter 4: Application Management Search Play Store for Applications (*Refactored) Functionality – Searches Google Play Store for the applications with the specified search string and returns the details. The Bundle ID returned can then be used in the "BundleId " parameter in the Insert Public application API. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/playstoresearch?appname={name}. This URI will be deprecated soon. Start using the *Supported API URI . l Pattern (Contains) Match Parameter – appname *Supported API URI – https://host/api/mam/apps/playstore/search (HTTP Method Used – GET) Request Body – NA URI Parameters Tag Type Description name String Application name to be searched in Play Store Response Payload XML Numeric Numeric Numeric Numeric String Numeric String String String String Numeric Numeric String String String Numeric String Numeric String String Boolean String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 112 Chapter 4: Application ManagementString String String String Numeric Numeric Numeric String String String String String String Boolean Numeric Boolean String String String Numeric Numeric Numeric Boolean String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 113 Chapter 4: Application ManagementNumeric String String String String String String Numeric Numeric Numeric String String Boolean String Numeric Numeric Numeric String String Boolean String String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 114 Chapter 4: Application ManagementNumeric String String String String String String String String Numeric Numeric String Numeric String Numeric String Numeric String String Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 115 Chapter 4: Application ManagementString Numeric JSON { "Applications":[{ "BundleID":"String", "ApplicationName":"String", "CurrentVersion":"String" }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 124 Chapter 4: Application Management Response Tag Details Tag Type Description BundleID String Package ID of the Android application ApplicationName String Name of the application CurrentVersion String Current version of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 125 Chapter 4: Application Management Search Windows App Store for Applications (*Refactored) Functionality – Searches Windows Store for the applications with the specified search string and returns the details. The Bundle ID returned can then be used in the "BundleId " parameter in the Insert Public application API. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/windowsstoresearch?appname={appname}&platform={platform}. l Exact Match Parameter – platform l Pattern (Contains) Match Parameter – appname This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/windowsstore/search (HTTP Method Used – GET) Request Body – NA URI Parameters Tag Type Description appname String Name of the application to be searched platform String Platform of the device Response Payload XML String String String JSON { "Applications":[{ "BundleID":"String", "ApplicationName":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 126 Chapter 4: Application Management "CurrentVersion":"String" }] } Response Tag Details Tag Type Description BundleID String Bundle ID of the Windows application ApplicationName String Name of the application CurrentVersion String Current version of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 127 Chapter 4: Application Management Search Apple App Store for Applications (*Refactored) Functionality – Searches Apple Store for the applications with the specified search string and returns the details. The External ID returned in this APIs response can be used in the "ExternaID" parameter in the Insert Public application API. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/applestoresearch?appname={name}. This URI will be deprecated soon. Start using the *Supported API URI henceforth. l Pattern (Contains) Match Parameter – appname *Supported API URI – https://host/api/mam/apps/applestore/search (HTTP Method Used – GET) Request Body – NA URI Parameters Tag Type Description appname String Name of the application to be searched Response Payload XML String String String JSON { "Applications":[{ "BundleID":"String", "ApplicationName":"String", "CurrentVersion":"String", "ExternalID":Numeric, }] VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 128 Chapter 4: Application Management } Response Tag Details Tag Type Description BundleID Numeric Bundle ID of the iOS Application ApplicationName String Name of the application CurrentVersion String Current version of the application ExternalID Numeric Numeric Track ID of the iOS application in the app store. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 129 Chapter 4: Application Management Activate Internal Application Functionality – Activates an internal application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Internal/{Applicationid}/Activate Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 130 Chapter 4: Application Management Update Internal Application Functionality – Updates the internal application identified by application ID. HTTP Method – PUT API URI – https://host/api/mam/apps/internal/{applicationId} URI Parameter Tag Type Description applicationid Numeric Unique internal application identifier to be updated Response Obtained – NA Request Payload XML String String String Numeric JSON { "AppRank" : Numeric, "ApplicationName" : "String", "ApplicationSource" : Numeric, "AutoUpdateVersion" : Boolean, "DeploymentOptions" : { "HowToInstall" : { "AdminPrivileges" : Boolean, "DeviceRestart" : "String", "InstallCommand" : "String", "InstallContext" : "String", "InstallTimeoutInMinutes" : Numeric, "InstallerRebootExitCode" : "String", "InstallerSuccessExitCode" : "String", "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 135 Chapter 4: Application Management "WhenToInstall" : { "DataContingencies" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "DevicePowerRequired" : Numeric, "DiskSpaceRequiredInKb" : Numeric, "RamRequiredInMb" : Numeric } }, "Description" : "String", "Developer" : "String", "DeveloperEmail" : "String", "DeveloperPhone" : "String", "EnableProvisioning" : Boolean, "FilesOptions" : { "AppDependenciesList" : [ { "ApplicationDependencyId" : Numeric } ], "AppPatchesList" : [ { "PatchBlobId" : Numeric, "PatchType" : "String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 136 Chapter 4: Application Management ], "AppTransformsList" : [ { "TransformBlobId" : Numeric } ], "ApplicationUnInstallProcess" : { "CustomScript" : { "CustomScriptType" : "String", "UninstallCommand" : "String", "UninstallScriptBlobId" : Numeric }, "UseCustomScript" : Boolean } }, "IsDependencyFile" : Boolean, "MsiDeploymentParamModel" : { "CommandLineArguments" : "String", "InstallTimeoutInMinutes" : Numeric, "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, "PushMode" : String, "SupportEmail" : "String", "SupportPhone" : "String", "SupportedProcessorArchitecture" : "String" } Request Tag Details Tag Description AppRank Application Rank ApplicationName Desired Application Name ApplicationSource Application Source AutoUpdateVersion Defines if the application can be updated automatically. Boolean/False DeploymentOptions Deployment options for the application AdminPrivileges Whether or not the installation should be initiated with logged-in user privileges or with stepped up administrative permissions DeviceRestart Restart the device after the application is installed InstallCommand Install program to meet your deployment criteria InstallContext Indicate whether the app should be configured and installed for just enrolled users or for all users on each of your devices InstallTimeoutInMinutes Amount of time, in minutes, that the installation process can run before the installation is considered as failed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 137 Chapter 4: Application Management InstallerRebootExitCode Integer code returned by the installer to indicate that the app has been successfully installed once the device has been rebooted. This will be used in conjunction with the 'Device Restart' option specified above. InstallerSuccessExitCode Integer code returned by the installer that marks the success of the operation RetryCount Number of retries for installing application before the installation is marked as failed RetryIntervalInMinutes Amount of time, in minutes, between retries for installing application AppCriteria Application criteria ApplicationIdentifier Unique identifier of the application (Bundle ID or External ID) BuildNumber Build version of the application MajorVersion Major version of the application MinorVersion Minor version of the application RevisionNumber Fix version of the application VersionCondition Version condition. Supported values are Any, EqualTo, GreaterThan, and LessThan. CriteriaType Criteria type. Supported values are AppExists, AppDoesNotExist, FileExists, FileDoesNotExist, RegistryExists, and RegistryDoesNotExist. FileCriteria File Criteria BuildNumber Build version of the file MajorVersion Major version of the file MinorVersion Minor version of the file ModifiedOn Date on which the file was last modified Path Path of the file RevisionNumber Fix version of the application VersionCondition Version condition. Supported values are Any, EqualTo, GreaterThan, and LessThan. LogicalCondition Logical condition. Supported values are And and Or. RegistryCriteria Registry Criteria KeyType Type of key to be created in the registry. Supported values are String, Binary, DWord, QWord, MultiString, and ExpandableString. KeyValue Value of the key to be created in the registry Path Path of the key in the registry CommandToRunTheScrip Command to run the script CustomScriptFileBlodId Blob ID of the script file associated. Supported file types are .js, .jse, .ps1, .ps1xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf, and .wsc. ScriptType Script Type. Supported script types are JScript, PowerShell, and VBScript. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 138 Chapter 4: Application Management SuccessExitCode Success exit code IdentifyApplicationBy The way by which an application can be identified. Supported Values are DefiningCriteria and UsingCustomScript. UseAdditionalCriteria Msi apps are detected on the device by product code and version. Use this option to perform additional actions to ensure your app is successfully installed on your end users' devices. DataContingencies Define and set one or more conditions when apps should be installed on your end users’ devices. If multiple conditions exist, they will be executed in priority order from top to bottom. DevicePowerRequired The minimum percentage of power required by the device for installing the application DiskSpaceRequiredInKb The amount of disk space required for the successful installation of the application RamRequiredInMb RAM (in MB) required for installing the application Description Description of the application on what the application does and how it can be used Developer Name of the developer DeveloperEmail Email address of the developer DeveloperPhone Phone number of the developer DeviceType Numeric Platform identifier of the Device Application EnableProvisioning Provisioning status. Supported value is Boolean/False. FileName File name along with the extension FilesOptions Application files options AppDependenciesList List of application dependency identifiers ApplicationDependencyId Application dependency identifier AppPatchesList List of uploaded patch files PatchBlobId Blob ID of the uploaded Patch PatchType Type of the uploaded patch AppTransformsList List of uploaded transform files TransformBlobId Blob ID of the uploaded Transform ApplicationUnInstallProcess Application uninstallation process CustomScript Custom script CustomScriptType Custom script type. Supported values: Input, Upload. UninstallCommand Application uninstall command provided UninstallScriptBlobId Gets or sets the identifier value of the uninstall script file uploaded on the console. Supported file types are .js, .jse, .ps1, .ps1, .xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf,and .wsc. UseCustomScript Value indicating whether custom script is used or not VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 139 Chapter 4: Application Management IsDependencyFile Indicates whether uploaded file is a dependency file LocationGroupId Location group identifier MsiDeploymentParamModel Msi deployment Parameter model. This is valid only for MSI files when Software Distribution is not enabled. CommandLineArguments Command-line options to be used when calling MSIEXEC.exe InstallTimeoutInMinutes Amount of time, in minutes that the installation process can run before the installer. Considers the installation may have failed and no longer monitors the installation operation. Range : 0-60. RetryCount The number of times the download and installation operation will be retried before the installation will be marked as failed. With a limit of ‘10' attempts. RetryIntervalInMinutes Amount of time, in minutes between retry operations. The range is 0 through 10. PushMode Deployment mode for the applications. The values are 'auto' and 'ondemand’. SupportEmail User defined email address of support SupportPhone User defined phone number of support SupportedProcessorArchitecture The architecture type of the end user devices that the application supports VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 140 Chapter 4: Application Management Activate Public Application Functionality – Activates a public application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Public/{Applicationid}/Activate Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 141 Chapter 4: Application Management Deactivate Internal Application Functionality – Deactivates an internal application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Internal/{Applicationid}/Deactivate Response Obtained – NA Request payload – NA Deactivate Public Application Functionality – Deactivates a public application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Public/{Applicationid}/Deactivate Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 142 Chapter 4: Application Management Retire Internal Application Functionality – Retires an internal application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Internal/{Applicationid}/retire Request Body – NA Response Obtained – NA Unretire Internal Application Functionality – Unretires an internal application identified by its application ID. HTTP Method – POST API URI – https://host/api/mam/apps/Internal/{Applicationid}/unretire Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 143 Chapter 4: Application Management Assign Smart Group to an Internal Application (*Refactored) Functionality – Assigns a smart group to an internal application. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/internal/{ApplicationId}/addsmartgroup/{SmartgroupId}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/internal/{applicationid}/smartgroups/{smartgroupid} (HTTP Method Used – POST) Request Body – NA Response Obtained – NA URI Parameters Tag Type Description ApplicationId Numeric Unique identifier of the application SmartGroupId Numeric Unique identifier of the Smart Group Assign Smart Group to a Public Application (*Refactored) Functionality – Assigns a smart group to a public application. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/public/{ApplicationId}/addsmartgroup/{SmartgroupId}. This URI will be deprecated soon. Instead, use the *Supported API URI. *Supported API URI – https://host/api/mam/apps/public/{applicationid}/smartgroups/{smartgroupid} (HTTP Method Used – POST) Request Body – NA Response Obtained – NA URI Parameters Tag Type Description ApplicationId Numeric Unique numeric ID of the application SmartGroupId Numeric Unique numeric ID of the Smart Group Assign Smart Group to BSP Application (Version 2) Functionality – Assigns smart groups to an BSP application. HTTP Method – POST API URI – https://host/api/mam/apps/public/{applicationid}/bspsmartgroups?offlinesmartgroupid= {offlinesmartgroupid}?&onlinesmartgroupid={onlinesmartgroupid}&type={type} URI Parameters VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 144 Chapter 4: Application Management Tag Type Description applicationId Numeric Unique identifier of the application offlinesmartgroupid String Offline smart group Identifier onlinesmartgroupid String Online smart group Identifier type String Type is {harmony/airwatch} Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 145 Chapter 4: Application Management Remove Smart Group Assignment From an Internal Application (*Refactored) Functionality – Removes a smart group assigned to an internal application. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/internal/{ApplicationId}/deletesmartgroup/{SmartgroupId}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/internal/{applicationid}/smartgroups/{smartgroupid} (HTTP Method Used – DELETE) Request Body – NA Response Obtained – NA URI Parameters Tag Type Description ApplicationId Numeric Unique numeric ID of the application SmartGroupId Numeric Unique numeric ID of the Smart Group Remove Smart Group Assignment From a Public Application (*Refactored) Functionality – Removes a smart group assigned to a public application. HTTP Methods – POST Deprecated API URI – https://host/api/mam/apps/public/{ApplicationId}/deletesmartgroup/{SmartgroupId}. This URI will be deprecated soon. Instead, use the *Supported API URI. *Supported API URI – https://host/api/mam/apps/public/{applicationid}/smartgroups/{smartgroupid} (HTTP Method Used – DELETE) Request Body – NA Response Obtained – NA URI Parameters Tag Type Description ApplicationId Numeric Unique numeric ID of the application SmartGroupId Numeric Unique numeric ID of the Smart Group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 146 Chapter 4: Application Management Install Internal Application on Device Functionality – Installs an internal application the device. HTTP Method – POST API URI – https://host/api/mam/apps/internal/{applicationid}/install Response Obtained – NA Request Payload XML String Numeric String String String String String String String Boolean Boolean String String Numeric Numeric Numeric Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 131 Chapter 4: Application Management String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 132 Chapter 4: Application Management String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String Numeric Numeric Numeric String String Boolean String Numeric Numeric Numeric String String Boolean String String String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 133 Chapter 4: Application Management String String Numeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String String String Numeric Numeric String Numeric String Numeric String Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 134 Chapter 4: Application ManagementNumeric String Numeric String String String Numeric String String Boolean String String Numeric JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of device MacAddress No MAC address of device Important: The user needs to pass only one of the above device parameters in the Request Payload. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 147 Chapter 4: Application Management Install Public Application on Device Functionality – Installs a public application on a device. HTTP Method – POST API URI – https://host/api/mam/apps/public/{applicationid}/install Response Obtained – NA Request Payload XML Numeric String String String JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of device MacAddress No MAC address of device Important: The user needs to pass only one of the above device parameters in the Request Payload. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 148 Chapter 4: Application Management Install Purchased Application on the Device Functionality – Installs the specified purchased application on the device. HTTP Method – POST API URI – https://host/api/mam/apps/purchased/{applicationid}/install Response Obtained – NA Request Payload XML Numeric String String String JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique identification number of the device Udid No Udid of the device SerialNumber No Serial number of the device MacAddress No Mac address of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 149 Chapter 4: Application Management Uninstall Internal Application From the Device Functionality – Removes an internal application from a device. HTTP Method – POST API URI – https://host/api/mam/apps/internal/{applicationid}/uninstall Response Obtained – NA Request Payload XML Numeric String String String JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of device MacAddress No MAC address of device Important: The user needs to pass only one of the above device parameters in the Request Payload. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 150 Chapter 4: Application Management Uninstall Public Application From the Device Functionality – Removes a public application from a device. HTTP Method – POST API URI – https://host/api/mam/apps/public/{applicationid}/uninstall Response Obtained – NA Request Payload XML Numeric String String String JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of the device MacAddress No MAC address of the device Important: The user needs to pass only one of the above device parameters in the Request Payload. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 151 Chapter 4: Application Management Uninstall Purchased Application From the Device Functionality – Uninstalls the specified purchased application from a device. HTTP Method – POST API URI – https://host/api/mam/apps/purchased/{applicationid}/uninstall Response Obtained – NA Request Payload XML Numeric String String String JSON { "DeviceId":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String" } Request Tag Details Tag Mandatory Description DeviceId No Unique identification number of the device Udid No Udid of the device SerialNumber No Serial number of the device MacAddress No Mac address of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 152 Chapter 4: Application Management View Internal Application Status on the Device Functionality – Indicates the status of an internal application on a device. HTTP Method – POST API URI – https://host/api/mam/apps/Internal/{applicationid}/status?deviceid={deviceid}&macaddress= {macaddress}&serialnumber={serialnumber}&udid={udid} l Pattern (Contains) Match Parameter – deviceid, macaddress, serialnumber, udid Request Payload – NA URI Parameters Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of the device MacAddress No MAC address of the device Important: The user needs to pass only one of the above device parameters in the URL. Response Payload XML Numeric String String String String JSON { "String" } Response Tag Details Tag Type Description String String Status of the internal application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 153 Chapter 4: Application Management View Public Application Status on the Device Functionality – Indicates the status of a public application on a device. HTTP Method – POST API URI – https://host/api/mam/apps/public/{applicationid}/status?deviceid={deviceid}&macaddress= {macaddress}&serialnumber={serialnumber}&udid={udid} l Pattern (Contains) Match Parameter – deviceid, macaddress, serialnumber, udid Request Payload – NA URI Parameters Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of the device MacAddress No MAC address of the device Important: The user needs to pass only one of the above device parameters in the URL. Response Payload XMLString JSON { "String" } Response Tag Details Tag Type Description String String Status of the internal application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 154 Chapter 4: Application Management View Purchased Application Status on Device Functionality – Indicates the status of the specified purchased application on a device. HTTP Method – GET API URI – https://host/api/mam/apps/purchased/{applicationid}/status?deviceid={deviceid}&macaddress= {macaddress}&serialnumber={serialnumber}&udid={udid} l Pattern (Contains) Match Parameter – deviceid, macaddress, serialnumber, udid Request – N/A URL Parameters Tag Mandatory Description DeviceId No Unique numeric ID of the device Udid No UDID of the device SerialNumber No Serial number of the device MacAddress No MAC address of the device Important: The user needs to pass only one of the above device parameters in the URL. Response Payload XMLString JSON "String" Response Tag Details Tag Type Description String String The status of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 155 Chapter 4: Application Management Retrieve Application Details Functionality – Retrieves the application details. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/{udid}/{appId}/{appType}/{deviceType}/appDetails. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/udid/appid/apptype/devicetype Request Body – NA URI Parameters Tag Type Description udid String Udid of the device appId Numeric Unique identifier of the application apptype String Type of the application deviceType String Device Type Response Payload XMLJSON { "appDetails": { "Id":Numeric, "Type":"String", "Name":"String", "InstallState":"String", "Description":"String", "Screenshots":[ "String", "String" ], "Reviews":[ { "UserId":Numeric, "UserRatingId":Numeric, "Rating":Numeric, "Comments":"String", "Date:"Datetime" } ], "Support": { "Email":"String", "Phone":"String" }, "DetailsLoaded":Boolean, "Version":"String", "Size":Numeric }, "developerMessage":"String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 157 Chapter 4: Application Management Response Tag Details Tag Type Description Id Numeric Unique identifier of the application Type String Type of the application Name String Name of the application InstallState String Status of application installation on the device Description String Description about the application Screenshots String Screenshots of the application UserId Numeric Unique identifier of the user UserRatingId Numeric Unique identifier of the user rating Rating Numeric Rating given to the application Comments String Comments provided to the application Date Datetime Time stamp when the reviews were given to the application Email String Email address of the user Phone String Phone number of the user DetailsLoaded Boolean Details loaded for the application. True or False Version String Version of the application Size Numeric Application size in bytes developerMessage String Developer message for the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 158 Chapter 4: Application Management Get Application Management Status (*Refactored) Functionality – Retrieves the application management status, i.e. the application with bundle id passed is managed by AirWatch or not. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/getmanagementstatus?managementid= {managementid}&bundleid={bundleid}. This URI will be deprecated soon. Start using the *Supported API URI. l Exact Match Parameter – managementid, bundleid l Pattern (Contains) Match Parameter – managementid, bundleid *Supported API URI – https://host/api/mam/apps/managementstatus Request – N/A URI Parameters Tag Type Description managementid Numeric Management identifier bundleid Numeric Application bundle identifier Response Payloads XML Numeric String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 156 Chapter 4: Application Management Numeric Numeric Numeric String Datetime String String Boolean String Numeric String JSON { "Status":Numeric } Response Tag Details Tag Type Description Status Numeric Status of the application whether it is managed by AirWatch or not VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 159 Chapter 4: Application Management Retrieve Assigned Devices (Internal Application) (*Refactored) Functionality – Provides a list of devices that have been assigned the specified internal application. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/internal/{applicationid}/assigneddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/internal/applicationid/devices Request Payload – NA URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of an internal application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric JSON { "Page":Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 160 Chapter 4: Application Management "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 161 Chapter 4: Application Management Retrieve Assigned Devices (Public Application) (*Refactored) Functionality – Retrieves the numeric IDs of devices to which a public application is assigned. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/Public/{applicationid}/assigneddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} . This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/public/applicationid/devices Request Payload – NA URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of a public application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric JSON { "Page":Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 162 Chapter 4: Application Management "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 163 Chapter 4: Application Management Retrieve Assigned Devices With Purchased Application (*Refactored) Functionality – Provides a list of devices that have been assigned the specified purchased application. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/assigneddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/purchased/applicationid/devices (HTTP Method Used – GET) Request – N/A URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of a purchased application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 164 Chapter 4: Application Management JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 165 Chapter 4: Application Management Retrieve Installed Devices (Internal Application) (*Refactored) Functionality – Provides a list of devices that have the specified internal application installed. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/internal/{applicationid}/installeddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/internal/applicationid/devices Request Payload – NA URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of an internal application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records status String status - installed/assigned Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 166 Chapter 4: Application Management JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 167 Chapter 4: Application Management Retrieve Installed Devices (Public Application) (*Refactored) Functionality – Retrieves the numeric IDs of devices on which a public application is installed. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/public/{applicationid}/installeddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/public/applicationid/devices Request Payload – NA URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of a public application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric JSON { "Page":Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 168 Chapter 4: Application Management "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 169 Chapter 4: Application Management Retrieve Installed Devices With Purchased Application (*Refactored) Functionality – Provides a list of devices that have the specified purchased application installed. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/installeddevices?locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/purchased/applicationid/devices (HTTP Method Used – GET) Request payload – N/A URI Parameters Tag Type Description ApplicationID Numeric Unique numeric ID of a purchased application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 170 Chapter 4: Application Management JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "DeviceId":Numeric, } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 171 Chapter 4: Application Management Retrieve Devices with Internal Application Installed or Assigned Functionality – Provides a list of devices that have the specified internal application installed or assigned. HTTP Method – GET API URI – https://host/api/mam/apps/internal/{applicationid}/devices?status={status}&locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} l Exact Match Parameter – status l Pattern (Contains) Match Parameter – applicationid, locationgroupid, page, pagesize Request Payload – N/A URI Parameters Tag Type Description status String Status of the internal application; Installed or Assigned ApplicationID Numeric Unique numeric ID of a internal application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 172 Chapter 4: Application Management JSON { "DeviceId" : [ Numeric, Numeric ], "Page" : Numeric, "PageSize" : Numeric, "Total" : Numeric } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 173 Chapter 4: Application Management Retrieve Devices with Public Application Installed or Assigned Functionality – Provides a list of devices that have the specified public application installed or assigned. HTTP Method – GET API URI – https://host/api/mam/apps/public/{applicationid}/devices?status={status}&locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} l Exact Match Parameter – status l Pattern (Contains) Match Parameter – applicationid, locationgroupid, page, pagesize Request Payload – N/A URI Parameters Tag Type Description status String Status of the public application; Installed or Assigned ApplicationID Numeric Unique numeric ID of a public application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 174 Chapter 4: Application Management JSON { "DeviceId" : [ Numeric, Numeric ], "Page" : Numeric, "PageSize" : Numeric, "Total" : Numeric } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 175 Chapter 4: Application Management Retrieve Devices with Purchased Application Installed or Assigned Functionality – Provides a list of devices that have the specified purchased application installed or assigned. HTTP Method – GET API URI – https://host/api/mam/purchased/{applicationid}/devices?status={status}&locationgroupid= {locationgroupid}&page={page}&pagesize={pagesize} l Exact Match Parameter – status l Pattern (Contains) Match Parameter – applicationid, locationgroupid, page, pagesize Request Payload – N/A URI Parameters Tag Type Description status String Status of the purchased application; Installed or Assigned ApplicationID Numeric Unique numeric ID of a purchased application locationgroupid Numeric Unique numeric ID of the organization group where the application is present page Numeric Page number pagesize Numeric Size of the page to show records Response Payload XML Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 176 Chapter 4: Application Management JSON { "DeviceId" : [ Numeric, Numeric ], "Page" : Numeric, "PageSize" : Numeric, "Total" : Numeric } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device Page Numeric Page number of the device result PageSize Numeric Maximum number of records per page Total Numeric Total Results obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 177 Chapter 4: Application Management Delete Internal Application Functionality – Deletes an internal application identified by its application ID from the console. HTTP Method – DELETE API URI – https://host/api/mam/apps/Internal/{Applicationid} Response Obtained – NA Request payload – NA Delete Public Application Functionality – Deletes a public application identified by its application ID from the console. HTTP Method – DELETE API URI – https://host/api/mam/apps/public/{Applicationid} Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 178 Chapter 4: Application Management Add Assignments to Internal Application Functionality – Adds assignments along with the flexible deployment parameters to an internal application. HTTP Method – POST API URI – https://host/api/mam/apps/internal/{applicationid}/assignments Response Obtained – N/A URI Parameters Tag Type Description applicationId Numeric Unique numeric ID of an internal application Request Payload XML Numeric Numeric Numeric Numeric Numeric JSON { "DeploymentParameters" : { "AdaptiveManagement" : Boolean, "ApplicationBackup" : Boolean, "ApplicationTransformIds" : [ Numeric ], VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 179 Chapter 4: Application Management "AutoUpdateDevicesWithPreviousVersion" : Boolean, "EffectiveDate" : "Datetime", "PushMode" : "String", "RemoveOnUnEnroll" : Boolean }, "SmartGroupIds" : [ Numeric ] } Request Tag Details Tag Mandatory Description DeploymentParameters No Internal application deployment parameters AdaptiveManagement No Management of devices for receiving the application. If disabled, you can make the application available to endusers without AirWatch management of devices. Values are True or False ApplicationBackup No Is internal application backup is required. True or False ApplicationTransformIds No Unique internal application transform identifiers AutoUpdateDevicesWithPreviousVersion No Is auto update of devices with previous version of internal application required. True or False EffectiveDate No Time stamp when the application was effective PushMode Yes Deployment mode of the application. Example: "Auto", "OnDemand" RemoveOnUnEnroll No Unenroll the device on removing the application SmartGroupIds Yes Smart group ids of the app assignment to be added VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 180 Chapter 4: Application Management Edit Assignment of Internal Application Functionality – Edits assignments along with the flexible deployment parameters associated with an internal application. HTTP Method – PUT API URI – https://host/api/mam/apps/internal/{applicationid}/assignments Response Obtained – N/A URI Parameters Tag Type Description applicationId Numeric Unique numeric ID of an internal application Request Payload XML Numeric String Datetime Boolean Boolean Boolean Boolean Numeric JSON { "DeploymentParameters" : { "AdaptiveManagement" : Boolean, "ApplicationBackup" : Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 181 Chapter 4: Application Management "ApplicationTransformIds" : [ Numeric ], "AutoUpdateDevicesWithPreviousVersion" : Boolean, "EffectiveDate" : "Datetime", "PushMode" : "String", "RemoveOnUnEnroll" : Boolean }, "SmartGroupIds" : [ Numeric ], "SmartGroupIdsForDeletion" : [ Numeric ] } Request Tag Details Tag Mandatory Description DeploymentParameters No Internal application deployment parameters AdaptiveManagement No Management of devices for receiving the application. If disabled, you can make the application available to endusers without AirWatch management of devices. Values are True or False ApplicationBackup No Is internal application backup is required. True or False AutoUpdateDevicesWithPreviousVersion No Is auto update of devices with previous version of internal application required. True or False EffectiveDate No Time stamp when the application was effective PushMode Yes Deployment mode of the application. Example: "Auto", "OnDemand" RemoveOnUnEnroll No Unenroll the device on removing the application SmartGroupIds Yes Smart group ids of the app assignment to be edited SmartGroupIdsForDeletion No Number of smart group ids to be deleted ApplicationTransformIds No VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 182 Chapter 4: Application Management Delete Application Assignment From Smart Group Functionality – Deletes application assignment from smart group(s). HTTP Method – DELETE API URI – https://host/api/mam/apps/internal/{applicationid}/assignments Response Obtained – N/A Request Payload XML Numeric Numeric String Datetime Boolean Boolean Boolean Boolean Numeric JSON { "SmartGroupIds" : [ Numeric, Numeric ] } Request Tag Details Tag Mandatory Description SmartGroupIds Yes Smart group ids of the app assignment to be deleted VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 183 Chapter 4: Application Management Retrieve Internal Application Details Functionality – Retrieves the details of an internal app identified by ID. HTTP Method – GET API URI – https://host/api/mam/apps/internal/{applicationid} Request Payload – N/A URI Parameters Tag Type Description applicationId Numeric Unique numeric ID of an internal application Response Payload XML Numeric Numeric JSON { "ApplicationName" : "String", "AppId" : "String", "ActualFileVersion" : "String", "BuildVersion" : "String", "AirwatchAppVersion" : "String", "Status" : "String", "ManagedBy" : "String", "AssumeManagementOfUserInstalledApp" : "String", "Platform" : "String", "SupportedModels" : [ { "Name" : "String", "id" : Numeric } ], "MinimumOperatingSystem" : "String", "AppSizeInKB" : Numeric, "CategoryList" : [ { "Name" : "String", "id" : Numeric } ], "Comments" : "String", "ApplicationUrl" : "String", "Sdk" : "String", "SdkProfileId" : Numeric, "DevicesAssignedCount" : Numeric, "DevicesInstalledCount" : Numeric, "DevicesNotInstalledCount" : Numeric, "Rating" : Numeric, "ChangeLog" : "String", "RenewalDate" : "Datetime", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 188 Chapter 4: Application Management "Assignments" : [ { "SmartGroupId" : Numeric, "SmartGroupName" : "String", "PushMode" : "String", "EffectiveDate" : "Datetime", "RemoveOnUnEnroll" : "String", "ApplicationBackup" : "String", "AutoUpdateDevicesWithPreviousVersion" : "String", "PerAppVpn" : "String", "VpnProfileId" : Numeric, "Rank" : Numeric, "AppConfig" : "String", "AppConfigs" : [ { "Key" : "String", "Value" : "String", "Type" : "String", "id" : Numeric } ], "ApplicationTransformIds" : [ Numeric ], "id" : Numeric } ], "DeploymentOptions" : { "HowToInstall" : { "AdminPrivileges" : Boolean, "DeviceRestart" : "String", "InstallCommand" : "String", "InstallContext" : "String", "InstallTimeoutInMinutes" : Numeric, "InstallerRebootExitCode" : "String", "InstallerSuccessExitCode" : "String", "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, "WhenToCallInstallComplete" : { "CriteriaList" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 189 Chapter 4: Application Management "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "CustomScript" : { "CommandToRunTheScript" : "String", "CustomScriptFileBlodId" : Numeric, "ScriptType" : "String", "SuccessExitCode" : Numeric }, "IdentifyApplicationBy" : "String", "UseAdditionalCriteria" : Boolean }, "WhenToInstall" : { "DataContingencies" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 190 Chapter 4: Application Management "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "DevicePowerRequired" : Numeric, "DiskSpaceRequiredInKb" : Numeric, "RamRequiredInMb" : Numeric } }, "Description" : "String", "Developer" : "String", "DeveloperEmail" : "String", "DeveloperPhone" : "String", "DeviceType" : "String", "EnableProvisioning" : Boolean, "FileName" : "String", "FilesOptions" : { "AppDependenciesList" : [ { "Name" : "String", "ApplicationDependencyId" : Numeric } ], "AppPatchesList" : [ { "PatchId" : Numeric, "PatchFileName" : "String", "PatchBlobId" : Numeric, "PatchType" : "String" } ], "AppTransformsList" : [ { "TransformId" : Numeric, "TransformFileName" : "String", "TransformBlobId" : Numeric } ], "ApplicationUnInstallProcess" : { "UseCustomScript" : Boolean, "CustomScript" : { "CustomScriptType" : "String", "UninstallCommand" : "String", "UninstallScriptBlobId" : Numeric }, "UseCustomScript" : Boolean } }, "IsDependencyFile" : Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 191 Chapter 4: Application Management "LocationGroupId" : Numeric, "MsiDeploymentParamModel" : { "CommandLineArguments" : "String", "InstallTimeoutInMinutes" : Numeric, "RetryCount" : Numeric, "RetryIntervalInMinutes" : Numeric }, } Response Tag Details Tag Type Description ApplicationName String Name of the internal application AppId String Unique identifier of the internal application ActualFileVersion String Actual file version of the internal application BuildVersion String Build version of the internal application AirwatchAppVersion String Version of the AirWatch application Status String Status of the internal application ManagedBy String Unique Organization Group that manages the internal application AssumeManagementOfUserInstalledApp String Option that takes over management of a user installed iOS application Platform String Platform of the device SupportedModels Name String Name of the supported device model for internal application SupportedModels id Numeric Unique identifier of the supported devices for internal application MinimumOperatingSystem String Minimum operating system of the device for internal application AppSizeInKB Numeric Internal application size in KB CategoryList Name String Name of the category list CategoryList id Numeric Unique identifier of the category list Comments String Comments for the internal application ApplicationUrl String URL of the internal application Sdk String SDK of the internal application SdkProfileId Numeric Unique identifier of the SDK profile DevicesAssignedCount Numeric Number of the assigned devices with the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 192 Chapter 4: Application Management DevicesInstalledCount Numeric Number of the devices with the application installed DevicesNotInstalledCount Numeric Number of the devices with the application not installed Rating Numeric Rating of the application ChangeLog String Change log of the application RenewalDate Datetime Time stamp of the app renewal date SmartGroupId Numeric Smart group ID of the assignment SmartGroupName String Name of the smart group PushMode String Deployment mode for the applications. Supported values are auto and ondemand. EffectiveDate Datetime Time stamp when the application was effective RemoveOnUnEnroll String Unenroll the device on removing the application ApplicationBackup String Backup of the application AutoUpdateDevicesWithPreviousVersion String Automatically update the devices with previous version of the application PerAppVpn String Per-app VPN that needed to be configured on the device VpnProfileId Numeric Unique identifier of the VPN profile Rank Numeric Rank of the assignment AppConfig Key String Key of the app configuration AppConfig Value String Value of the app configuration AppConfig Type String App configuration type AppConfigid Numeric Unique identifier of the app configuration ApplicationTransformIds Numeric Identifier of the application transform files AdminPrivileges Boolean Whether or not the installation should be initiated with logged-in user privileges or with stepped up administrative permissions DeviceRestart String Restart the device after the application is installed InstallCommand String Install program to meet your deployment criteria InstallContext String Indicate whether the app should be configured and installed for just enrolled users or for all users on each of your devices InstallTimeoutInMinutes Numeric Amount of time, in minutes, that the installation process can run before the installation is considered as failed InstallerRebootExitCode String Integer code returned by the installer to indicate that the app has been successfully installed once the device has been rebooted. This will be used in conjunction with the 'Device Restart' option specified above. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 193 Chapter 4: Application Management InstallerSuccessExitCode String Integer code returned by the installer that marks the success of the operation RetryCount Numeric Number of retries for installing application before the installation is marked as failed RetryIntervalInMinutes Numeric Amount of time, in minutes, between retries for installing application ApplicationIdentifier String Unique identifier of the application (Bundle ID or External ID) BuildNumber Numeric Build version of the application MajorVersion Numeric Major version of the application MinorVersion Numeric Minor version of the application RevisionNumber Numeric Fix version of the application VersionCondition String Version conditions CriteriaType String Unique smart group type configured to the smart group FileCriteria String File Criteria BuildNumber Numeric Build version of the application MajorVersion Numeric Major version of the application MinorVersion Numeric Minor version of the application ModifiedOn String Date on which the application was last modified Path String Path of the application RevisionNumber Numeric Fix version of the application VersionCondition String Version Conditions LogicalCondition String Logical condition. Supported values are 'And' and 'Or'. KeyName String Name of the key KeyType String Type of key to be created in the registry. Supported values are String, Binary, DWord, QWord, MultiString, and ExpandableString. KeyValue String Value of the key to be created in the registry Path String Path of the key in the registry CommandToRunTheScript String Command to run the script CustomScriptFileBlodId Numeric Blob ID of the script file associated. Supported file types are .js, .jse, .ps1, .ps1xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf, and .wsc. ScriptType String Script Type. Support script types are JScript, PowerShell, and VBScript. SuccessExitCode Numeric Success exit code VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 194 Chapter 4: Application Management IdentifyApplicationBy String The way by which an application can be identified. Supported Values are DefiningCriteria and UsingCustomScript. UseAdditionalCriteria Boolean Msi apps are detected on the device by product code and version. Use this option to perform additional actions to ensure your app is successfully installed on your end users' devices. ApplicationIdentifier String Unique identifier of the application (Bundle ID or External ID) BuildNumber Numeric Build version of the application MajorVersion Numeric Major version of the application MinorVersion Numeric Minor version of the application RevisionNumber Numeric Date on which the application was last modified VersionCondition String Version condition. Supported values are Any, EqualTo, GreaterThan, and LessThan. CriteriaType String Criteria type. Supported values are AppExists, AppDoesNotExist, FileExists, FileDoesNotExist, RegistryExists, and RegistryDoesNotExist. BuildNumber Numeric Build version of the file MajorVersion Numeric Major version of the file MinorVersion Numeric Minor version of the file ModifiedOn String Date on which the file was last modified Path String Path of the file RevisionNumber Numeric Fix version of the file VersionCondition String Version condition. Supported values are Any, EqualTo, GreaterThan, and LessThan. LogicalCondition String Logical condition. Supported values are And and or. KeyName String Name of the key KeyType String Type of key to be created in the registry. Supported values are String, Binary, DWord, QWord, MultiString, ExpandableString. KeyValue String Value of the key to be created in the registry Path String Path of the key in the registry DevicePowerRequired Numeric The minimum percentage of power required by the device for installing the application DiskSpaceRequiredInKb Numeric Disk space required by the application RamRequiredInMb Numeric RAM (in MB) required for installing the application Description String Desired description of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 195 Chapter 4: Application Management Developer String Name of the developer DeveloperEmail String Email address of the developer DeveloperPhone String Phone number of the developer DeviceType String Numeric Platform identifier of the Device application EnableProvisioning Boolean Provisioning status. Supported value is Boolean/False. FileName String File name along with the extension AppDependenciesList String List of application dependency identifiers AppDependenciesListName String Name of the list of application dependency identifiers ApplicationDependencyid Numeric Application dependency identifier PatchId Numeric Identifier of the uploaded patch PatchFileName String Name of the patch file AppPatchesList String List of the application patches PatchBlobId Numeric Blob ID of the uploaded Patch PatchType String Type of the uploaded patch TransformId Numeric Identifier of the uploaded transform files TransformFileName String Name of the transform files TransformBlobId Numeric Blob ID of the uploaded Transform UseCustomScript Boolean Use custom script CustomScript String Custom script CustomScriptType String Custom script type. Supported values: Input, Upload. UninstallCommand String Application uninstall command provided UninstallScriptBlobId Numeric Gets or sets the ID value of the uninstall script file uploaded on the console. Supported file types are .js, .jse, .ps1, .ps1, .xml, .psc1, .psd1, .psm1, .pssc, .cdxml, .vbs, .vbe, .wsf, and .wsc. UseCustomScript Boolean Value indicating whether custom script is used or not IsDependencyFile Boolean Indicates whether uploaded file is a dependency file LocationGroupId Numeric Location group identifier MsiDeploymentParamModel String Msi deployment Parameter model. This is valid only for MSI files when Software Distribution is not enabled. CommandLineArguments String Command-line options to be used when calling MSIEXEC.exe InstallTimeoutInMinutes Numeric Amount of time, in minutes that the installation process can run before the installer. Considers the installation may have failed and no longer monitors the installation operation. Range: 0 - 60. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 196 Chapter 4: Application Management RetryCount Numeric The number of times the download and installation operation will be retried before the installation will be marked as failed. With a limit of ‘10' attempts. RetryIntervalInMinutes Numeric Amount of time, in minutes between retry operations. The range is 0 through 10. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 197 Chapter 4: Application Management Create Application Group (*Refactored) Functionality – Creates an Application Group in the desired Organization Group. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/appgroups/create. This URI will be deprecated soon. Instead, use the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups (HTTP Method Used – POST) Request Payload XML Numeric String String String String String String String String String Numeric String String Numeric Numeric String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 184 Chapter 4: Application ManagementString Numeric Numeric Numeric Numeric Numeric String Datetime Numeric Numeric String String Datetime String String String String Numeric Numeric String Numeric String String String Numeric String Numeric Numeric Numeric Boolean String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 185 Chapter 4: Application ManagementNumeric Numeric Numeric Numeric String String Numeric Numeric Numeric Numeric String String String String String String Numeric Numeric Numeric String String Boolean String Numeric Numeric Numeric String String Boolean String String String String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 186 Chapter 4: Application ManagementNumeric String String Numeric Numeric Numeric Numeric String String String String String String String String Numeric Numeric String Numeric Numeric String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 187 Chapter 4: Application Management Numeric String Numeric String Boolean String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 198 Chapter 4: Application Management JSON { "ApplicationGroupID" : "String", "Name":"String", "Platform":"String", "AppGroupType":"String", "Description":"String", "ManagedByOrganizationGroupID":"String", "OrganizationGroups":[{ "Name" : "String", "Id":Numeric }], "UserGroups":[{ "Name" : "String", "Id":Numeric }], "DeviceOwnership":"String", "DeviceModel":"String", "DeviceOperatingSystem":"String", "IsActive" : true, "AppCount" : "Text value", "Applications":[{ "Name":"String", "BundleId":Numeric }] } Request Tag Details Tag Mandatory Description ApplicationGroupID Yes Unique identifier of the application Name Yes Name of the application assigned to the device Platform Yes Name of the device platform. "Android", "Apple" AppGroupType Yes Type of the application group Description No Description of the application group ManagedByOrganizationGroupID Yes Unique identification of the organization group which manages the application group OrganizationGroups Id Yes Unique numeric identifier of the organization group OrganizationGroups No Unique name of the organization groupp UserGroups Id No Unique numeric identifier of the user group UserGroups Name No Unique name of the user group DeviceOwnership No Type of ownership of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 199 Chapter 4: Application Management DeviceModel No Model of the device DeviceOperatingSystem No Operating System of the device Applications Name Yes (atleast1) Name of the application Applications BundleId Yes (atleast1) Bundle ID of the application IsActive No State of the application AppCount No Number of the applications in the device Response Payload XML String String String String Numeric Numeric String Numeric String String String String Boolean String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 200 Chapter 4: Application Management JSON { "ApplicationGroupID":"String", "Name":"String", "Platform":"String", "AppGroupType":"String", "Description":"String", "ManagedByOrganizationGroupID":"String", "OrganizationGroups":[{ "Name":"String", "Id":Numeric }], "UserGroups":[{ "Name":"String", "Id":Numeric }], "DeviceOwnership":"String", "DeviceModel":"String", "DeviceOperatingSystem":"String", "IsActive":Boolean, "AppCount":"String", "Applications":[{ "Name":"String", "BundleId":Numeric }] } Response Tag Details Tag Type Description ApplicationGroupID String Unique Id of the application Name String Name of the application assigned to the device Platform String Name of the device platform. AppGroupType String Type of the application group Description String Description of the application group ManagedByOrganizationGroupID String Unique identification of the organization group which manages the application group OrganizationGroups Name String Name of the organization group OrganizationGroups Id Numeric Unique numeric identifier of the organization group. UserGroups Name String Name of the User group UserGroups Id Numeric Unique numeric identifier of the user group DeviceOwnership String Type of ownership of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 201 Chapter 4: Application Management DeviceModel String Model of the device DeviceOperatingSystem String Operating System of the device Applications Name String Name of the application Applications BundleId Numeric Bundle ID of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 202 Chapter 4: Application Management Retrieve Application Group Details Functionality – Retrieves the Application group details based on the application group id. HTTP Method – GET API URI – https://host/api/mam/apps/appgroups/{appgroupid} Request Body – NA Response Payload XML String String String String String String String Numeric String Numeric String String String Boolean String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 203 Chapter 4: Application Management JSON { "ApplicationGroupID":Numeric, "Name":"String", "Platform":"String", "AppGroupType":"String", "Description":"String", "ManagedByOrganizationGroupID":"String", "OrganizationGroups":[{ "Name":"String", "Id":Numeric }], "UserGroups":[{ "Name":"String", "Id":Numeric }], "DeviceOwnership":"String", "DeviceModel":"String", "DeviceOperatingSystem":"String", "Applications":[{ "Name":"String", "BundleId":Numeric }] } Response Tag Details Tag Type Description ApplicationGroupID Numeric Unique numeric ID of the application Name String Name of the application Platform String Platform of the device AppGroupType String Type of the application group Description String Description of the application group ManagedByOrganizationGroupID Numeric Unique identification of the organization group which manages the application group OrganizationGroups Name String Name of the organization group OrganizationGroups Id Numeric Unique identification of the organization group from where the devices are filtered UserGroups Name String Name of the User group UserGroups Id Numeric Unique numeric identification of the user group DeviceOwnership String Type of ownership of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 204 Chapter 4: Application Management DeviceModel String Model of the device DeviceOperatingSystem String Operating System of the device Applications Name String Name of the application Applications BundleId String Bundle ID of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 205 Chapter 4: Application Management Search Application Group (*Refactored) Functionality – Searches for the Application Groups based on the query information provided. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/appgroupsearch?name={appgroupname}&organizationgroupid= {organizationgroupid}&plaform={platform}&appgrouptype={appgrouptype}&orderby={orderby}&sortorder= {sortorder}&page={page}&pagesize={pagesize} l Exact Match Parameter – platform, appgrouptype, sortorder l Pattern (Contains) Match Parameter – name, organizationgroupid, orderby, page, pagesize This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups/search (HTTP Method Used – GET) Request Body – NA URI Parameters Tag Type Description appgroupname String Application Group Name organizationgroupid Numeric Id of the Organization group platform String Platform of the application group appgrouptype String Application group type. "Whitelisted", "Blacklisted", "Required" orderby String The column by which the results will be ordered. sortorder String Sorting order. Values ASC or DESC. Defaults to ASC page Numeric Page number of the device result. The first page has pagenumber=0 pagesize Numeric Maximum number of records per page Response Payload XML String String String String String String String String String String String String String String String JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "AppGroups":{ "ApplicationGroupID":Numeric, "Name":"String", "Platform":"String", "AppGroupType":"String", "Description":"String", "ManagedByOrganizationGroupID":Numeric, "OrganizationGroups":[{ "Name":"String", "Id":Numeric }], "UserGroups":[{ "Name":"String", "Id":Numeric }], "DeviceOwnership":"String", "DeviceModel":"String", "DeviceOperatingSystem":"String", "IsActive":Boolean, "AppCount":"String", "Applications":[{ "Name":"String", "BundleId":Numeric }] } } Response Tag Details Tag Type Description Page Numeric Page number of the retrieved response VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 208 Chapter 4: Application Management PageSize Numeric Size of the current page Total Numeric Total Results obtained from the search ApplicationGroupID Numeric Unique group Id of the application Name String Name of the application assigned to the device Platform String Numeric ID of the device platform. Refer Tables for the platform IDs AppGroupType String Type of the application group Description String Description of the application group ManagedByOrganizationGroupID Numeric Unique identification of the organization group which manages the application group OrganizationGroups Name String Name of the organization group OrganizationGroups Id Numeric Unique identification of the organization group from where the devices are filtered UserGroups Name String Name of the User group UserGroups Id Numeric Unique numeric identification of the user group DeviceOwnership String Type of ownership of the device DeviceModel String Model of the device DeviceOperatingSystem String Operating System of the device IsActive Boolean Status of the application group AppCount Numeric Number of applications assigned to the App Group Applications Name String Name of the application Applications BundleId Numeric Bundle ID of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 209 Chapter 4: Application Management Search SDK Analytics Functionality – Retrieves SDK analytics based on the query information provided. HTTP Method – GET API URI – https://host/api/mam/apps/sdkanalytics?organizationgroupid={organizationgroupid}&applicationid= {applicationid}&eventname={eventname}&startdatetime={startdatetime}&enddatetime={enddatetime}&searchby= {searchtype}&page={page}&pagesize={pagesize} l Pattern (Contains) Match Parameter – organizationgroupid, applicationid, eventname, startdatetime, enddatetime, searchtype, page, pagesize URI Parameters Tag Description organizationgroupid OrganizationGroup Identifier applicationid Application Identifier eventname Event name search parameter startdatetime Sample Starttime enddatetime Sample Endtime searchtype Search by Device Identifier types (DeviceId, MacAddress, Udid, SerialNumber, and ImeiNumber) page Page index pagesize Records per page Request Payloads XML Numeric Numeric Numeric Numeric String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 206 Chapter 4: Application ManagementString String Numeric String Numeric String Numeric String String String Boolean String String Numeric Numeric String String String String Numeric String Numeric String Numeric String String String Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 207 Chapter 4: Application ManagementString Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 210 Chapter 4: Application Management JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Mandatory Description Value Yes Represents the unique identification of the application Response Payload XML String String JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "ApplicationEventSamples":[{ VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 211 Chapter 4: Application Management "ApplicationID":"String", "DeviceID":Numeric, "EventData":"String", "EventName":"String", "FriendlyName":"String", "SampleTime":"Datetime", "UserName":"String", "Version":"String" }] } Response Tag Details Tag Type Description Page Numeric Page number of the retrieved response PageSize Numeric Page Size of the retrieved response Total Numeric Total Results obtained from the search ApplicationID String Unique identification of the application DeviceID Numeric Unique identification number of the device EventData String Data of the event EventName String Name of the event FriendlyName String Friendly name of the device SampleTime Datetime Time stamp of the sample time UserName String Username of the device Version String Version of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 212 Chapter 4: Application Management Update Application Group (*Refactored) Functionality – Updates the metadata of the application group specified by its numeric ID. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/appgroups/{appgroupid}/update. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups/appgroupid (HTTP Method Used – PUT) Response Obtained – NA Request Payload XML Numeric Numeric Numeric Numeric Datetime String String String String String String JSON { "ApplicationGroupID" : "String", "Name":"String", "Platform":"String", "AppGroupType":"String", "Description":"String", "ManagedByOrganizationGroupID":Numeric, "OrganizationGroups":[{ "Name":"String", "Id":"Numeric" }], "UserGroups":[{ "Name":"String", "Id":"Numeric" }], "DeviceOwnership":"String", "DeviceModel":"String", "DeviceOperatingSystem":"String", "IsActive" : Boolean, "AppCount" : "String", "Applications":[{ "Name":"String", "BundleId":Numeric }] } Request Tag Details Tag Mandatory Description ApplicationGroupID No Unique identifier of the application Name No Name of the application assigned to the device Platform No Numeric ID of the device platform. Refer Tables for the platform IDs AppGroupType No Type of the application group Description No Description of the application group ManagedByOrganizationGroupID No Unique identification of the organization group which manages the application group OrganizationGroups Name Name of the organization group No VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 214 Chapter 4: Application Management OrganizationGroups Id No Unique identification of the organization group from where the devices are filtered UserGroups Name No Name of the User group UserGroups Id No Unique numeric identification of the user group DeviceOwnership No Type of ownership of the device DeviceModel No Model of the device DeviceOperatingSystem No Operating System of the device isActive No State of the application in the device AppCount No Number of applications Applications Name No Name of the application Applications BundleId No Bundle ID of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 215 Chapter 4: Application Management Delete Application Group (*Refactored) Functionality – Deletes application groups identified by the application group identifiers. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/appgroups/delete. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups (HTTP Method Used – DELETE) Request Payload XML String String String String String Numeric String Numeric String Numeric String String String Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 213 Chapter 4: Application Management String Numeric String Numeric JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Mandatory Description Values Yes (at least 1) Represents the unique numeric ID of the Application Group Response Payload XML String String JSON { "TotalItems":Numeric, "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "ActivityId":Numeric, "Fault":{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" } } } Response Tag Details Tag Type Description TotalItems Numeric Total Number of Items sent in the request for deletion AcceptedItems Numeric Number of Application Groups successfully deleted FailedItems Numeric Number of Application Groups not deleted. Faults Numeric This chunk of XML/JSON indicates the cause of failure in deletion for some App Groups. ActivityId Numeric Indicates the Numeric ID of the Fault. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 217 Chapter 4: Application Management Add Application to an Application Group (*Refactored) Functionality – Adds applications to the specified application group. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/appgroups/{appgroupid}/addapplications. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups/appgroupid/applications (HTTP Method Used – POST) Response Obtained – NA Request Payload XML Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 216 Chapter 4: Application ManagementNumeric Numeric Numeric Numeric String String JSON { "Applications":[{ "Name":"String", "BundleId":Numeric, }] } Request Tag Details Tag Mandatory Description Name Yes Name of the application BundleId Yes Bundle Id of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 218 Chapter 4: Application Management Delete Application from the Application Group (*Refactored) Functionality – Deletes one of more applications from the specified application group. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/appgroups/{appgroupid}/deleteapplications. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/appgroups/appgroupid/applications (HTTP Method Used – DELETE) Response Obtained – NA Request Payload XML String Numeric JSON { "Applications":[{ "BundleId":"String" }] } Request Tag Details Tag Mandatory Description BundleId Yes PackageId of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 219 Chapter 4: Application Management Create VPP Application Allocation (*Refactored) Functionality – Create a new VPP Licensed App allocation. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/assignmentcreate This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/purchased/applicationid/assignment (HTTP Method Used – POST) Response Obtained – N/A Request Payload XML String String JSON { "AppConfigList" : [ { "Key" : "String", "Type" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 220 Chapter 4: Application Management "Value" : "String" } ], "Assignments" : [ { "Allocated" : Numeric, "SmartGroupId" : Numeric } ], "Deployment" : { "AssignmentType" : "String", "PreventApplicationBackup" : Boolean, "RemoveOnUnenroll" : Boolean, "UseVPN" : Boolean }, "SendApplicationConfiguration" : Boolean } Request Tag Details Tag Type Description AssignmentType String Type of the assignment PreventApplicationBackup Boolean Defines if the application backup to be prevented. Boolean/False RemoveOnUnenroll Boolean Defines to unenroll the device on removing the VPP application UseVPN Boolean Defines to use VPN for VPP assignment AppConfigList Key String Key for Application Configuration list AppConfigList Type String Type of Application Configuration list AppConfigList Value String Value of Application Configuration list Assignments id Numeric ID of the assignment Assignments Allocated Numeric Assignment allocation Assignments SmartGroupId Numeric Smart Group ID to which the assignment is configured SendApplicationConfiguration Boolean Defines if the application configuration must be sent VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 221 Chapter 4: Application Management Delete VPP Application Functionality – Deletes the specified purchased app. HTTP Method – DELETE API URI – https://host/api/mam/apps/purchased/{applicationid} Request – N/A Response – N/A Delete VPP Application Smart Group Assignment (*Refactored) Functionality – Delete Assignment HTTP Method – DELETE Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/deletesmartgroup/{smartgroupid}. This URI will be deprecated soon. Start using the *Supported API URI henceforth. *Supported API URI – https://host/api/mam/apps/purchased/{applicationid}/smartgroups/{smartgroupid} URI Parameter Tag Type Description applicationid Numeric Unique application identifier smartgroupid Numeric Unique smart group identifier Request Payload – N/A Response Obtained – N/A VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 222 Chapter 4: Application Management Search VPP Application (*Refactored) Functionality – Search and retrieve details for purchased applications. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/purchasedappsearch?applicationname= {applicationname}&locationgroupid={locationgroupid}&bundleid={bundleid}&platform={platform}&model= {model}&status={status}&isassigned={isassigned}&orderby={orderby}&page={page}&pagesize={pagesize} l Exact Match Parameter – platform, model, status, isassigned l Pattern (Contains) Match Parameter – applicationname, locationgroupid, bundleid, orderby, page, pagesize This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/purchased/search (HTTP Method Used – GET) Request – N/A Response Payloads XML Numeric Numeric String Boolean Boolean Boolean Boolean Numeric String String String JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "Application":[{ "Id":Numeric, "ActualFileVersion":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 224 Chapter 4: Application Management "AppType":"String", "AppVersion":"String", "ApplicationName":"String", "ApplicationSize":"String", "ApplicationUrl":"String", "AssignedDeviceCount":Numeric, "AssignmentStatus":"String", "BundleId":"String", "CategoryList":{ "Category":[{ "CategoryId":Numeric, "Name":"String" }] }, "Comments":"String", "ExternalId":"String", "InstalledDeviceCount":Numeric, "IsReimbursable":Boolean, "LargeIconUri":"String", "LocationGroupId":Numeric, "MediumIconUri":"String", "NotInstalledDeviceCount":Numeric, "Platform":Numeric, "PushMode":0, "SmallIconUri":"String", "SmartGroups":[{ "Id":Numeric, "Name":"String" }], "Status":"String", "SupportedModels":{ "Model":[{ "ApplicationId":Numeric, "ModelId":Numeric, "ModelName":"String" }] } }] } Response Tag Details Tag Type Description Page Numeric Page number of the search result PageSize Numeric Number of device VPP apps shown on each page Total Numeric Total number of VPP applications on the device ApplicationName String Name of the VPP application BundleId String Unique bundle identification of the VPP application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 225 Chapter 4: Application Management AppVersion String Version of the VPP application ActualFileVersion String Version of the application file AppType String Type of the application. "Public" ,"Internal", or "Purchased" Status String Current Status of the application. "Active" or "Inactive" Platform Numeric Device platform ModelId Numeric ID of the Device Model. Refer Tables for the List of Model IDs ModelName String Name of the Device Model AssignmentStatus String Current assignment state of the application. "Assigned" or "Not Assigned" ApplicationSize String Application size in bytes CategoryId Numeric Numeric ID of the Category of the VPP application Name String Name of the Category of the VPP application Comments String Comments associated with the purchased applications ApplicationUrl String URL of a purchased Application LocationGroupId Numeric Unique Numeric ID of the Organization Group where the application is present ExternalId Numeric Is the track ID of the application from the App Store for iOS AssignedDeviceCount Numeric Number of the assigned devices with the application InstalledDeviceCount Numeric Number of the devices with the application installed NotInstalledDeviceCount Numeric Number of the devices with the application not installed IsReimbursable Boolean/Numeric Is the purchased application reimbursable VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 226 Chapter 4: Application Management Get VPP Allocation Details Functionality – Returns VPP Licensed Application allocation details by AppId. HTTP Method – GET API URI – https://host/api/mam/apps/purchased/{applicationid} Request Payload – N/A Response Payloads XML Numeric Numeric Numeric Numeric String String String String String String Numeric Numeric String Numeric String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 223 Chapter 4: Application ManagementString Numeric String Numeric String Numeric String Numeric String String Boolean String Numeric String String String String auto Numeric Numeric Numeric JSON { "Assignments":[{ "Allocated":Numeric, "AssignmentRuleType":"String", "LocationGroupId":"String", "Redeemed":Numeric, "SmartGroupId":Numeric, "Status":"String", "Users":Numeric }], "Deployment":{ "AssignmentType":"String", "PreventApplicationBackup":Boolean, "RemoveOnUnenroll":Boolean, "UseVPN":Boolean }, "Licenses":{ "Allocated":Numeric, "ExternallyRedeemed":Numeric, "OnHold":Numeric, "Redeemed":Numeric, "TotalLicenses":Numeric, "Unallocated":Numeric }, "ManagedBy":Numeric, "Orders":{ "Allocated":Numeric, "ExternallyRedeemed":Numeric, "OnHold":Numeric, "Redeemed":Numeric, "TotalLicenses":Numeric, "Unallocated":Numeric } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 228 Chapter 4: Application Management Response Tag Details Tag Type Description Allocated Numeric Number of assignments allocated to the device AssignmentRuleType String Type of the assignment rule LocationGroupId Numeric Unique identification of the organization group Redeemed Numeric Number of assignments redeemed SmartGroupId Numeric Unique identification of the smart group Status String Status of the assignment rule Users Numeric Number of the device users with the VPP licensed application assignment rule AssignmentType String Type of the assignment PreventApplicationBackup Boolean Defines if the application backup to be prevented. True/False RemoveOnUnenroll Boolean Defines the unenrollment of the device on the removal of the application. True/False UseVPN Boolean Use VPN for deployment. True/False. Licenses Allocated Numeric Number of VPP licenses allocated Licenses ExternallyRedeemed Numeric Number of externally redeemed licenses Licenses OnHold Numeric Number of on-hold licenses Licenses Redeemed Numeric Number of redeemed licenses Licenses TotalLicenses Numeric Total number of licenses Licenses Unallocated Numeric Number of unallocated licenses Orders Allocated Numeric Number of allocated VPP orders Orders ExternallyRedeemed Numeric Number of externally redeemed orders Orders OnHold Numeric Number of on-hold orders Orders Redeemed Numeric Number of redeemed orders Orders TotalLicenses Numeric Total number of orders Orders Unallocated Numeric Number of unallocated orders VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 229 Chapter 4: Application Management Update VPP Licensed Application Assignment (*Refactored) Functionality – Updates VPP licensed application assignment. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/update. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/purchased/applicationid (HTTP Method Used – PUT) Response Obtained – NA URI Parameter Tag Type Description applicationid Numeric Unique VPP application identifier Request Payload XML Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric String Numeric String Numeric Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 227 Chapter 4: Application Management String Numeric String Numeric Numeric Numeric String String Boolean Boolean Boolean JSON { "AppConfigList" : [ { "Key" : "Text value", "Type" : "Text value", "Value" : "Text value" "ManagedBy" : Numeric, } ], "Orders" : { "TotalLicenses" : Numeric, "OnHold" : Numeric, "Allocated" : Numeric, "Unallocated" : Numeric, "Redeemed" : Numeric, "ExternallyRedeemed" : Numeric }, "Licenses" : { "TotalLicenses" : Numeric, "OnHold" : Numeric, "Allocated" : Numeric, "Unallocated" : Numeric, "Redeemed" : Numeric, "ExternallyRedeemed" : Numeric }, "ManagedBy" : Numeric, "Assignments" : [ { "Status" : "Boolean", "SmartGroupId" : Numeric, "Users" : Numeric, "Allocated" : Numeric, "Redeemed" : Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 231 Chapter 4: Application Management ] "SendApplicationConfiguration" : Boolean } Request Tag Details Tag Type Description Orders TotalLicenses Numeric Total number of orders Orders OnHold Numeric Number of on-hold orders Orders Allocated Numeric Number of allocated VPP orders Orders Unallocated Numeric Number of unallocated orders Orders Redeemed Numeric Number of redeemed orders Orders ExternallyRedeemed Numeric Number of externally redeemed orders Licenses TotalLicenses Numeric Total number of licenses Licenses OnHold Numeric Number of on-hold licenses Licenses Allocated Numeric Number of VPP licenses allocated Licenses Unallocated Numeric Number of unallocated licenses Licenses Redeemed Numeric Number of redeemed licenses Licenses ExternallyRedeemed Numeric Number of externally redeemed licenses Status Boolean Status of the assignment rule SmartGroupId Numeric Unique identifier of the smart group Allocated Numeric Number of assignments allocated to the device Redeemed Numeric Number of assignments redeemed SendApplicationConfiguration Boolean Defines if the application configuration must be sent ManagedBy Numeric Group ID of the Organization Group AppConfigList key String Key for Application Configuration list AppConfigList Type String Type of Application Configuration list AppConfigList Value String Value of Application Configuration list VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 232 Chapter 4: Application Management Queues Sync Assets for VPP Applications Functionality – Queues up Sync Assets job for Apple VPP applications. HTTP Method – PUT API URI – https://host/api/mam/apps/purchased/VppSyncAssets/{locationGroupId} URI Parameters Tag Type Description locationGroupId Numeric Organization group of which sync is requested Request Payload – NA Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 233 Chapter 4: Application Management Resets the Client Context Functionality – Resets the client context for the account at passed organization group. HTTP Method – PUT API URI – https://host/api/mam/apps/purchased/ResetClientAcontextForAccount/{locationGroupId:int} URI Parameters Tag Type Description locationGroupId Numeric Organization group Id for the account where reset action is intended Request Payload – NA Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 234 Chapter 4: Application Management Get VPP Sync Assets Status Functionality – Retrieves the status and details of the VPP Sync Assets for the VPP Account at passed organization group. HTTP Method – GET API URI – https://host/api/mam/apps/purchased/GetVppSyncAssetsStatus/{locationGroupId:int} URI Parameters Tag Type Description locationGroupId Numeric Organization group Id for the account where reset action is intended Request Payload – NA Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 235 Chapter 4: Application Management Enable Device Based Assignment For VPP Applications Functionality – Enables the device based Assignment for the VPP applications. HTTP Method – PUT API URI – https://host/api/mam/apps/purchased/EnableDeviceAssignmentForVppApp/{AppId:int} URI Parameters Tag Type Description appId Numeric app Id for which device based assignment needs to be enabled Request Payload – NA Response Payload JSON {} Update Application on Devices Having Device Based Licenses Functionality – Updates the application on devices having device based licenses for the application if an update is available. HTTP Method – POST API URI – https://host/api/mam/apps/purchased/{appId} Request Payload – NA Response Obtained – N/A URI Parameters Tag Type Description appId Numeric Unique identifier of the application Auto Update Flag for Device based VPP App Functionality – Sets the value of the auto update flag for a device based VPP application. HTTP Method – PATCH API URI – https://host/api/mam/apps/purchased/{appId} Response Obtained – N/A VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 236 Chapter 4: Application Management URI Parameters Tag Type Description appId Numeric Unique identifier of the application Request Payload XML Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Boolean Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 230 Chapter 4: Application ManagementBoolean String String String JSON { "IsAutoUpdateEnabled" : Boolean } Request Tag Details Tag Mandatory Description IsAutoUpdateEnabled Yes Whether the auto update flag for device based VPP application is enabled or not. Value: True or False. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 237 Chapter 4: Application Management Get VPP Invite Status (*Refactored) Functionality – Gets User's VPP invite status. HTTP Method – GET Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/getvppinvitestatus/{deviceid}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/purchased/applicationid/vppinvitestatus/deviceid (HTTP Method Used – GET) Request Payload – N/A URI Parameters Tag Type Description applicationid Numeric Unique VPP application identifier deviceid Numeric Unique device identifier Response Payload XML Boolean JSON { "ApplicationId":Numeric, "DeviceId":Numeric, "Status":"String" } Response Tag Details Tag Type Description ApplicationId Numeric Unique identification number of the VPP application DeviceId Numeric Unique identifier of the device Status String Status of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 238 Chapter 4: Application Management Send Bulk VPP Invite (*Refactored) Functionality – Sends VPP invites to the users. HTTP Method – POST Deprecated API URI – https://host/api/mam/apps/purchased/{applicationid}/sendvppinvite. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mam/apps/purchased/applicationid/vppinvite (HTTP Method Used – POST) Request Payload XML Numeric Numeric String JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Mandatory Description Value Yes (at least 1) Represents the unique device ID of the VPP application Response Payload XML String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description TotalItems Numeric Total number of VPP invite request sent AcceptedItems Numeric Number of VPP invites successfully sent FailedItems Numeric Number of VPP invites not sent ActivityId Numeric Indicates the Numeric ID of the Fault. Fault Numeric This chunk of XML/JSON indicates the cause of failure in sending VPP invites. ErrorCode Numeric HTTP status code for the failed element VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 240 Chapter 4: Application Management Retrieve Windows App Dependency Functionality – Gets the details of an Windows app dependency identified by ID. HTTP Method – GET API URI – https://host/api/mam/apps/internal/windowsappdependency/{windowsAppDependencyId} Request Payload – NA URI Parameters Tag Type Description windowsAppDependencyId Numeric Identifier of the Windows app dependency to be retrieved Response Payload XML Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 239 Chapter 4: Application ManagementNumeric Numeric String Numeric String String Numeric String String JSON { "id" : "Numeric, "BlobId" : "String", "DeploymentOptions" : { "HowToInstall" : { "AdminPrivileges" : Boolean, "InstallCommand" : "String", }, "WhenToCallInstallComplete" : { "CriteriaList" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "CustomScript" : { "CommandToRunTheScript" : "String", "CustomScriptFileBlodId" : Numeric, "ScriptType" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 244 Chapter 4: Application Management "SuccessExitCode" : Numeric }, "IdentifyApplicationBy" : "String", "UseAdditionalCriteria" : Boolean }, "WhenToInstall" : { "DataContingencies" : [ { "AppCriteria" : { "ApplicationIdentifier" : "String", "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "CriteriaType" : "String", "FileCriteria" : { "BuildNumber" : Numeric, "MajorVersion" : Numeric, "MinorVersion" : Numeric, "ModifiedOn" : "String", "Path" : "String", "RevisionNumber" : Numeric, "VersionCondition" : "String" }, "LogicalCondition" : "String", "RegistryCriteria" : { "KeyName" : "String", "KeyType" : "String", "KeyValue" : "String", "Path" : "String" } } ], "DevicePowerRequired" : Numeric, "DiskSpaceRequiredInKb" : Numeric, "RamRequiredInMb" : Numeric } }, "Description" : "String", "Developer" : "String", "DeveloperEmail" : "String", "DeveloperPhone" : "String", "DeviceType" : "String", "EnableProvisioning" : Boolean, "FileName" : "String", "FilesOptions" : { "AppDependenciesList" : [ { "ApplicationDependencyId" : Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 245 Chapter 4: Application Management } ], "AppPatchesList" : [ { "PatchBlobId" : Numeric, "PatchType" : "String" } ], "AppTransformsList" : [ { "TransformBlobId" : Numeric } ], "ApplicationUnInstallProcess" : { "CustomScript" : { "CustomScriptType" : "String", "UninstallCommand" : "String", "UninstallScriptBlobId" : Numeric }, "UseCustomScript" : Boolean } }, "IsSystemApp" : Boolean, "LocationGroupId" : Numeric, "Name" : "String", "PackageFamilyName" : "String", "PackageId" : "String", "ProcessorArchitecture" : "String", "Version" : "String" } Response Tag Details Tag Type Description BlobId String Unique blob ID of the application AdminPrivileges Boolean Whether or not the installation should be initiated with logged-in user privileges or with stepped up administrative permissions. InstallCommand String Install command for the application ApplicationIdentifier String Unique identifier of the application BuildNumber Numeric Build number of the application MajorVersion Numeric Major version of the application MinorVersion Numeric Minor version of the application RevisionNumber Numeric Revision number of the application VersionCondition String Version condition of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 246 Chapter 4: Application Management CriteriaType String Type of the criteria ModifiedOn Datetime Timestamp when the application was last modified Path String The path and name of a file that has to be verified on your end user’s devices LogicalCondition String Logical condition of the application KeyName String For registry criteria, enter the key name KeyValue String For registry criteria, enter the key value KeyType String For registry criteria, enter the key type Path String Registry path in the format "HKLM\Software\.." CommandToRunTheScrip String Command to run the script CustomScriptFileBlodId Numeric Blob ID of the custom script file ScriptType String Type of the script SuccessExitCode Numeric Code of the success exit IdentifyApplicationBy String Specify how to identify the application UseAdditionalCriteria Boolean Specify additional criteria DevicePowerRequired Numeric Specify the required device power DiskSpaceRequiredInKb Numeric Specify the disc space required in Kb RamRequiredInMb Numeric Specify the device ram required in Mb Description String Description of the application Developer String Developer of the application DeveloperEmail String Email ID of the developer DeveloperPhone String Phone number of the developer DeviceType String Type of the device used EnableProvisioning Boolean Is provisioning needs to be enabled or not. Supported values are True and False. FileName String Name of the file ApplicationDependencyId Numeric Unique application dependency identifier PatchBlobId Numeric Blob ID of the application patch PatchType String Application patch type TransformBlobId Numeric Blob ID of app transformation list CustomScriptType String For application uninstall process, specify the type of custom script UninstallCommand String Specify the uninstall command for application uninstall process UninstallScriptBlobId Numeric Specify the blob ID of the uninstall script for application uninstall process VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 247 Chapter 4: Application Management UseCustomScript Boolean Whether to use custom script or not IsSystemApp Boolean Indicate if the application is a seeded dependency application within the AirWatch system LocationGroupId Numeric Unique identifier of the Organization Group Name String Name of the application PackageFamilyName String Name of the package family PackageId String Unique identifier of the package ProcessorArchitecture String The architecture type of the end user devices that the application supports Version String Version of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 248 Chapter 4: Application Management Retrieve List of Windows App Dependency Files Functionality – Retrieves the list of saved Windows app dependency files for current organization group and child Organization Groups. HTTP Method – GET API URI – https://host/api/mam/apps/internal/windowsappdependencies/{organizationGroupId} Request Payload – NA URI Parameters Tag Type Description organizationGroupId Numeric Identifier of the Organization Group Response Payload XML Numeric String Numeric Boolean Numeric String String String String String String String Numeric Numeric Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 241 Chapter 4: Application ManagementString Numeric Numeric Numeric Numeric String String String String String String Numeric Numeric Numeric String String Boolean String Numeric Numeric Numeric String String Boolean String String String String Numeric Numeric Numeric Numeric String String Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 242 Chapter 4: Application ManagementNumeric Numeric String String String String String String String String Numeric Numeric String Numeric String Numeric String Numeric String String Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 243 Chapter 4: Application Management String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 249 Chapter 4: Application Management JSON [ { "id" : Numeric, "BlobId" : Numeric, "IsSystemApp" : Boolean, "LocationGroupId" : Numeric, "Name" : "String", "PackageFamilyName" : "String", "PackageId" : "String", "ProcessorArchitecture" : "String", "Version" : "String" } ] Response Tag Details Tag Type Description BlobId Numeric Unique identifier obtained from the "Upload Blob" API response IsSystemApp Boolean Indicate if the application is a seeded dependency application within the AirWatch system LocationGroupId Numeric Numeric ID of the organization group to retrieve list of Windows application dependency files Name String Name of the application PackageFamilyName String Name of the package family PackageId String Unique identifier of the package ProcessorArchitecture String The architecture type of the end user devices that the application supports Version String Version of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 250 Chapter 4: Application Management Delete Windows Dependency Application Functionality – Deletes the Windows dependency application specified by ID. HTTP Method – DELETE API URI – https://host/api/mam/apps/internal/windowsappdependency/{windowsAppDependencyId} URI Parameters Tag Type Description windowsAppDependencyId Numeric Identifier of the dependency to be deleted Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 251 Chapter 4: Application Management Search and Retrieve Removal Logs for Internal Applications Functionality – Searches and retrieves removal logs for internal applications. If the number of remove application commands queued in a set time interval exceeds the configured threshold, the commands are put in locked state. This API method returns the details of the commands that are put in locked state. HTTP Method – GET API URI – https://host/api/mam/apps/removallogs?organizationgroupid={organizationgroupid}&bundleid= {bundleid}&status={status}&page={page}&pagesize={pagesize}&orderby={orderby} Response Payload – N/A URI Parameters Tag Type Description bundleid String Bundle ID or package ID of the application organizationgroupid String Unique identifier of the Organization Group status String Status of the command page String Page number pagesize String Number of records per page orderby String Order by column name Response Payload XML Numeric String Numeric Boolean Numeric String String String String JSON { "ResultSet" : [ { "CreatedOn" : "Datetime", "ModifiedOn" : "Datetime", "Identifier" : "String", "Source" : Numeric, "ThresholdStatus" : Numeric, "ThresholdId" : Numeric } ], "AdditionalInfo" : { "Links" : [], "id" : Numeric }, "TotalResults" : Numeric } Response Tag Details Tag Type Description CreatedOn Datetime Timestamp when the internal application was last created ModifiedOn Datetime Timestamp when the internal application was last modified Identifier String Unique identifier of the application Source Numeric Source of the internal application ThresholdStatus Numeric Indicates the action taken or to be taken by the administrator on the held commands. The values can be Held for admin approval, Commands released to devices, and Commands dismissed from the queue. ThresholdId Numeric Identifier for the log record. This should be passed as an input in the ‘PUT’ request body to take action on the held remove commands. Links String Link to download the application id Numeric Unique identifier of the Organization Group TotalResults Numeric Total results shown per page VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 253 Chapter 4: Application Management Update Removal Logs Functionality – Updates the action taken on the threshold. Either unlock/clear the threshold. On unlock, the commands are sent to the device. On clear, the commands are purged from the queue. Note:Add the assignments back to the application if you choose to dismiss the remove commands. This is to prevent the applications from being removed from devices on subsequent checks for assignment or entitlement. HTTP Method – PUT API URI – https://host/api/mam/apps/removallogs?organizationgroupid={organizationgroupid} URI Parameters Tag Type Description organizationgroupid String Unique identifier of the Organization Group Response Obtained – NA Request Payload XML Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 252 Chapter 4: Application Management Datetime Datetime String Numeric Numeric Numeric JSON { "ThresholdId" : Numeric, "NewThresholdStatus" : Numeric } Request Tag Details Tag Mandatory Description VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 254 Chapter 4: Application Management ThresholdId Yes Identifier for the log record. This should be passed as an input in the ‘PUT’ request body to take action on the held remove commands. NewThresholdStatus Yes Indicates the action to be taken by the administrator on the held commands. The values can be one of the following: Release commands to devices, Dismiss commands from the queue. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 255 Chapter 5: Content Management Overview 258 Personal Content Overview 258 Retrieve List of Files and Folders 259 Move Files to Target Folder 263 Delete a File 267 Retrieve File Metadata 268 Share Content 271 Download File 273 Remove File Sharing 274 Get File Sharing Information 275 Update File Metadata Information 277 Upload Content/Files 282 Explicit Upload Initialize 286 Explicit Upload Finalize 288 Retrieve Folder Information 291 Create Folder 294 Update Folder 298 Move Folder 302 Delete Folder 306 Return Sharing Metadata 307 Retrieve Collaborator List 309 Remove Sharing 311 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 256 Chapter 5: Content Management Share Folder with Users or UserGroups 312 Update Collaborator 316 Remove Sharing on Collaborator Folder 320 Update Collaborator of Shared Folder 322 Retrieve Admin Storage Information 326 Managed Content Overview 327 Retrieve All Categories 328 Create New Category 330 Delete Category 332 Update Category 333 Upload AirWatch Managed Content 335 Download AirWatch Managed Content 340 Delete AirWatch Managed Content 341 Retrieve AirWatch Managed Content 342 Update AirWatch Managed Content 347 Retrieve List of AirWatch Managed Content 354 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 257 Chapter 5: Content Management Overview AirWatch REST APIs provide the ability to access and manage both Personal Content and AirWatch Managed Content. You need to have separate API account types to access Personal Content APIs and Managed Content APIs. Note: Personal Content APIs only support Basic Authentication. For more details, please refer API Authentication on page 32. For more details on configuring Personal Content APIs and Managed Content APIs, see Enabling Personal Content API Access on page 29. Personal Content Overview With Enrollment User as account type, you can access all the Personal Content APIs. To do this, navigate to Groups & Settings > All Settings > System > Advanced > API > REST API, and select Add, to generate API key for the service and account type as Enrollment User. Using Personal Content APIs, you can add, move, share, and delete Files and Folders. Personal Content details can be viewed on the AirWatch Self Service Portal: l Personal Content – Self Service Portal > My Content. Personal Content APIs are divided into three parts: l l l Contents – Personal Content APIs perform operations to obtain information about the files and folder structure within AirWatch Personal Content. Files – Personal Content Files APIs perform operations to obtain information about the files and to perform actions on them. Folders – Personal Content Folder APIs perform operations to obtain information about the folders and to perform actions on them. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 258 Chapter 5: Content Management Retrieve List of Files and Folders Functionality – Retrieves the list of Files and Folders. HTTP Method – GET API URI – https://host/api/mcm/contents?queryString={queryString}&folderId={folderId}&mimeType= {mimeType}&includeTrashed={includeTrashed}&isShared={isShared}&modifiedSince={modifiedSince}&pageSize= {pageSize}&startIndex={startIndex} Request Payload – NA URI Parameters Tag Type Description queryString String Searches for the string value in the File or Folder Name folderId Numeric The unique identifier for the Folder being queried. If the Folder ID is not provided, the Contents at the Root Level are displayed mimeType String Filter contents by Mime Type includeTrashed Boolean Include Content that has already been moved to the Trash Folder isShared Boolean Filter by shared contents. If set to 'True', only Shared Content is returned modifiedSince Datetime Filter by Content that has been modified on or after the specified Date startIndex Numeric Start index of page pageSize Numeric Specifies the number of results returned per Page Response Payload XML Numeric Numeric JSON { "AdditionalInfo": { "Links":[{ "Href":"String", "Rel":"String", }], }, "TotalResults":Numeric "content":[ { VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 260 Chapter 5: Content Management "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType":"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime }, ], } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False isTrashed Boolean Is the content trashed. True or False isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 261 Chapter 5: Content Management currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified AdditionalInfo String Additional information about the content TotalResults Numeric Total results shown per page VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 262 Chapter 5: Content Management Move Files to Target Folder Functionality – Moves given file to destination folder given in the request. HTTP Method – PATCH API URI – https://host/api/mcm/contents/files/{id} URI Parameters Tag Type Description id String Unique identifier of the file Request Payload XML Numeric String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 259 Chapter 5: Content Management Numeric String String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 263 Chapter 5: Content Management JSON { "contentId":"String" } Request Tag Details Tag Mandatory Description contentId Yes Unique identifier for the content Response Payload XML Numeric String String String String String String Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False isTrashed Boolean Is the content trashed. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 265 Chapter 5: Content Management isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 266 Chapter 5: Content Management Delete a File Functionality – Deletes a file. HTTP Method – DELETE API URI – https://host/api/mcm/contents/files/{id} URI Parameters Tag Type Description id String Unique identifier of the file Request Payload – NA Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 267 Chapter 5: Content Management Retrieve File Metadata Functionality – Retrieves the file metadata. HTTP Method – GET API URI – https://host/api/mcm/contents/files/{id}/info Request Payload – NA URI Parameters Tag Type Description id String Unique identifier of the file Response Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 264 Chapter 5: Content ManagementJSON { "Links":[{ "Href":"String", "Rel":"String" }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime "id":Numeric } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 269 Chapter 5: Content Management isTrashed Boolean Is the content trashed. True or False isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 270 Chapter 5: Content Management Share Content Functionality – Create a shared link for a file. HTTP Method – POST API URI – https://host/api/mcm/contents/files/{id}/shares URI Parameters Tag Type Description id String Unique identifier of the file Request Payload – NA Response Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 268 Chapter 5: Content ManagementDatetime JSON { "currentDownloads" : Numeric, "expiryDays" : "String", "isDaysExpired" : Boolean, "isDeactivated" : Boolean, "isDownloadExpired" : Boolean, "link" : "String", "maxDownloadCount" : "String", "password" : "String", "token" : "String", "viewOnly" : "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 271 Chapter 5: Content Management } Response Tag Details Tag Type Description currentDownloads Numeric Number of content downloads expiryDays String Number of days set to expire the content isDaysExpired Boolean Whether the content is expired. Values: True, False isDeactivated Boolean Whether the content is deactivated. Values: True, False isDownloadExpired Boolean Whether the downloaded content is expired. Values: True, False link String Link to download the content maxDownloadCount String Maximum number of content download counts password String Password to open the content token String Token of the content viewOnly String Content only viewable VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 272 Chapter 5: Content Management Download File Functionality – Downloads a file. HTTP Method – GET API URI – https://host/api/mcm/contents/files/{id} URI Parameters Tag Type Description id String Unique identifier of blob Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 273 Chapter 5: Content Management Remove File Sharing Functionality – Remove sharing on a file if you are the owner. HTTP Method – DELETE API URI – https://host/api/mcm/contents/files/{id}/shares URI Parameters Tag Type Description id String Unique identifier of the file Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 274 Chapter 5: Content Management Get File Sharing Information Functionality – Getting sharing information on a file if you are the owner. HTTP Method – GET API URI – https://host/api/mcm/contents/files/{id}/shares Request Body – NA URI Parameters Tag Type Description id String Unique identifier of the file Response Payload XML Numeric StringString String String String String Boolean Boolean Boolean Numeric JSON { "currentDownloads" : Numeric, "expiryDays" : "String", "isDaysExpired" : Boolean, "isDeactivated" : Boolean, "isDownloadExpired" : Boolean, "link" : "String", "maxDownloadCount" : "String", "password" : "String", "token" : "String", "viewOnly" : "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 275 Chapter 5: Content Management } Response Tag Details Tag Type Description currentDownloads Numeric Number of current downloads expiryDays String Number of days for file expiry isDaysExpired Boolean True or False if the file is expired isDeactivated Boolean True of False of the file is deactivated isDownloadExpired Boolean True or false if the file download expired link String Link to download the file maxDownloadCount String Count of maximum number of downloads password String Password to access file token String File token viewOnly String File can only be viewed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 276 Chapter 5: Content Management Update File Metadata Information Functionality – Updates the file metadata information (name, description, notes and subject). HTTP Method – PUT API URI – https://host/api/mcm/contents/files/{id}/info URI Parameters Tag Type Description id String Unique identifier of the file Request Payload XML Numeric StringString String String String String Boolean Boolean Boolean Numeric JSON { "name":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 277 Chapter 5: Content Management "description":"String", "notes":"String", "subject":"String", } Request Tag Details Tag Mandatory Description name No Name of the content description No Description about the content notes No Additional notes regarding the content subject No Subject of the content Response Payload XML Numeric String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 279 Chapter 5: Content Management JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime "id":Numeric } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False isTrashed Boolean Is the content trashed. True or False isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 280 Chapter 5: Content Management forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 281 Chapter 5: Content Management Upload Content/Files Functionality – Uploads small files to the database using simple upload method. This method is used when Rfs is not configured and the file is relatively small. Important Note Use this approach to send file metadata along with file binary in the same request. l l Sample request header – "Content-Type: multipart/form-data; boundary=CUSTOM_BOUNDARY". Sample request body – "CUSTOM_BOUNDARY Content-Disposition: form-data; name="fileMetadata" Content-Type: application/json {"Title":"Pic1.jpg", "Description":"First upload attempt"} CUSTOM_BOUNDARY ContentDisposition: form-data; name="fileBinary"; filename="Pic1.jpg" Content-Type: image/jpeg Content-Length: 23548 .... file binary here .... CUSTOM_BOUNDARY HTTP Method – POST API URI – https://host/api/mcm/contents/files/simpleupload Request Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 278 Chapter 5: Content ManagementString Numeric Datetime Datetime JSON {} Request Sample POST /contents/files HTTP/1.1 Host: String Authorization: String aw-tenant-code: String aw-groupid: String Content-Type: multipart/form-data; boundary=---WebKitFormBoundary7MA4YWxkTrZu0gW Accept: application/json Cache-Control: no-cache Postman-Token: String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 282 Chapter 5: Content Management ----WebKitFormBoundary Content-Disposition: form-data; name="fileMetadata" Content-Type: application/json {"Title":"Pic1.jpg", "Description":"First upload attempt"} ----WebKitFormBoundary Content-Disposition: form-data; name="fileBinary"; filename="Pic1.jpg" Content-Type: image/jpeg Content-Length: Numeric .... file binary here .... ----WebKitFormBoundary Response Payload XML JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False isTrashed Boolean Is the content trashed. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 284 Chapter 5: Content Management isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 285 Chapter 5: Content Management Explicit Upload Initialize Functionality – Explicit upload is the approach that you can use to upload big files to Rfs. Also you have to update the metadata of the file in a separate request. Explicit upload is carried out in three steps: 1. Initalize step – Initialize the upload operation by sending file name, size, folder id (optional), server responds with upload url and finalize url. 2. Upload step – Upload the file using upload url that you have got from the server. You will get the file hash in this step. 3. Finalize step – Expose the Finalize url after substituting hash place holder '$hash$' with the actual hash that you have got from step# 2. This is the Initialize step endpoint, you will get Rfs Upload Url and Finalize Url from this step. HTTP Method – POST API URI – https://host/api/mcm/contents/files/explicitupload/initialize?name={name}&folderId= {folderId}&contentLength={contentLength} Request Payload – NA URI Parameters Tag Type Description name String File name along with the Extension folderId Numeric Numeric identifier of the folder to which you want to upload the file. Root folder is the default contentLength Long File size in bytes Response Palyload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 283 Chapter 5: Content ManagementVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 286 Chapter 5: Content Management JSON { "UploadUrl":"String", "FinalizeUrl":"String" } Response Tag Details Tag Type Description UploadUrl String URL to upload the file FinalizeUrl String URL to finalize the procedure and to expose the file VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 287 Chapter 5: Content Management Explicit Upload Finalize Functionality – Explicit upload is the approach that you can use to upload big files to Rfs. Also you have to update the metadata of the file in a separate request. Explicit upload is carried out in three steps: 1. Initalize step – Initialize the upload operation by sending file name, size, folder id (optional), server responds with upload url and finalize url. 2. Upload step – Upload the file using upload url that you have got from the server. You will get the file hash in this step. 3. Finalize step – Expose the Finalize url after substituting hash place holder '$hash$' with the actual hash that you have got from step# 2. This is the Finalize step endpoint, when you expose it successfully, you should see the file in the personal content repository. HTTP Method – POST API URI – https://host/api/mcm/contents/files/explicitupload/finalize?name={name}&folderId= {folderId}&contentLength={contentLength}&externalFileID={externalFileID}&externalFileHash={externalFileHash} Request Payload – NA URI Parameters Tag Type Description name String File name along with the Extension folderId Numeric Numeric identifier of the folder to which you want to upload the file. Root folder is the default contentLength Long File size in bytes externalFileID String External file id for the file you've uploaded it to Rfs externalFileHash String External file hash for the file you've uploaded it to Rfs Response Payload XML String String JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 289 Chapter 5: Content Management "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the content parentId String Unique identifier of the parent organization group name String Name of the content mimeType String Type of the MIME to filter contents sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the content isFavorite Boolean Is the content favorite. True or False isTrashed Boolean Is the content trashed. True or False isShared Boolean Is the content shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the content createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 290 Chapter 5: Content Management Retrieve Folder Information Functionality – Retrieves the folder information. HTTP Method – GET API URI – https://host/api/mcm/contents/folders/{id}/info Request Payload – NA URI Parameters Tag Type Description id String Unique Identifier for the Folder being queried Response Payload XML Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 288 Chapter 5: Content ManagementString String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the folder parentId String Unique identifier of the parent organization group name String Name of the folder mimeType String Type of the MIME to filter folder sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the folder isFavorite Boolean Is the folder favorite. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 292 Chapter 5: Content Management isTrashed Boolean Is the folder trashed. True or False isShared Boolean Is the folder shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the folder createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 293 Chapter 5: Content Management Create Folder Functionality – Creates a folder. HTTP Method – POST API URI – https://host/api/mcm/contents/folders Request Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 291 Chapter 5: Content ManagementDatetime JSON { "name":"String", "parentFolderId":"String", "downloadWhileRoaming":Boolean, "allowEncryption":Boolean, "downloadMethod":"String" } Request Tag Details Tag Mandatory Description name Yes Name of the folder parentFolderId Yes Unique identifier of the parent folder downloadWhileRoaming Yes Whether to download content while roaming. True or False allowEncryption Yes Whether to allow encryption of the folder and its contents downloadMethod Yes Method used to download the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 294 Chapter 5: Content Management Response Payload XML Numeric String String Boolean Boolean String JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 295 Chapter 5: Content Management "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the folder parentId String Unique identifier of the parent organization group name String Name of the folder mimeType String Type of the MIME to filter folder sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the folder isFavorite Boolean Is the folder favorite. True or False isTrashed Boolean Is the folder trashed. True or False isShared Boolean Is the folder shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the folder VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 296 Chapter 5: Content Management createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 297 Chapter 5: Content Management Update Folder Functionality – Updates the folder metadata. HTTP Method – PUT API URI – https://host/api/mcm/contents/folders/{id}/info URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime JSON { "name":"String", "parentFolderId":"String", "downloadWhileRoaming":Boolean, "allowEncryption":Boolean, "downloadMethod":"String" } Request Tag Details Tag Mandatory Description name Yes Name of the folder parentFolderId Yes Unique identifier of the parent folder VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 298 Chapter 5: Content Management downloadWhileRoaming Yes Whether to download content while roaming. True or False allowEncryption Yes Whether to allow encryption of the folder and its contents downloadMethod Yes Method used to download the content Response Payload XML Numeric String String Boolean Boolean String JSON { "Links":[{ "Href":"String", "Rel":"String", }], VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 299 Chapter 5: Content Management "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the folder parentId String Unique identifier of the parent organization group name String Name of the folder mimeType String Type of the MIME to filter folder sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the folder isFavorite Boolean Is the folder favorite. True or False isTrashed Boolean Is the folder trashed. True or False isShared Boolean Is the folder shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 300 Chapter 5: Content Management subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the folder createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 301 Chapter 5: Content Management Move Folder Functionality – Moves a folder to the destination folder given in the request. HTTP Method – PATCH API URI – https://host/api/mcm/contents/folders/{id} URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 302 Chapter 5: Content Management JSON { "contentId":"String", } Request Tag Details Tag Mandatory Description contentId Yes Unique identifier for the folder Response Payload XML Numeric String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "contentId":"String", "parentId":"String", "name":"String", "mimeType:"String", "sharingRole":"String", "owner":"String", "isFavorite":Boolean, "isTrashed":Boolean, "isShared":Boolean, "downloadMethod":"String", "downloadWhileRoaming":Boolean, "forceEncryption":Boolean, "currentVersionNumber":"String", "description":"String", "notes":"String", "subject":"String", "downloadLink":"String", "size":Numeric, "createdOn":"Datetime "modifiedOn":"Datetime } Response Tag Details Tag Type Description contentId String Unique identifier for the folder parentId String Unique identifier of the parent organization group name String Name of the folder mimeType String Type of the MIME to filter folder sharingRole String Type of the sharing role; Co-owner, Editor, or Reader owner String Owner of the folder isFavorite Boolean Is the folder favorite. True or False isTrashed Boolean Is the folder trashed. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 304 Chapter 5: Content Management isShared Boolean Is the folder shared. True or False downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False currentVersionNumber String The current version of the content description String Description about the content notes String Additional notes regarding the content subject String Subject of the content downloadLink String Link to download the content size Numeric Size of the folder createdOn Datetime Time stamp when the content was created modifiedOn Datetime Time stamp when the content was last modified VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 305 Chapter 5: Content Management Delete Folder Functionality – Deletes a folder. HTTP Method – DELETE API URI – https://host/api/mcm/contents/folders/{id} URI Parameters Tag Type Description id String Unique identifier of the folder Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 306 Chapter 5: Content Management Return Sharing Metadata Functionality – Returns sharing metadata for the folder. HTTP Method – GET API URI – https://host/api/mcm/contents/folders/{id}/shares URI Parameters Tag Type Description id String Unique identifier of the folder Response Payload XML Numeric String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 303 Chapter 5: Content ManagementVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 307 Chapter 5: Content Management JSON { "Links":[{ "Href":"String", "Rel":"String", }], "folderId":"String", "ownerUserId":Numeric, "ownerName":"String", "collaborators":[ { "id":Numeric, "name":"String", "email":"String", "type":"String", "role":"String", "actknowledgedAt":"Datetime } ], } Response Tag Details Tag Type Description folderId String Unique identifier of the folder ownerUserId Numeric Unique identifier of the owner who is sharing the folder ownerName String Name of the owner who is sharing the folder collaborator id Numeric Unique identifier of the collaborator collaborator name String Name of the collaborator collaborator email String Email address of the collaborator collaborator type String Type of the collaborator collaborator role String Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt Datetime Time stamp when the folder was shared VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 308 Chapter 5: Content Management Retrieve Collaborator List Functionality – Retrieves the prospective collaborators list for the given folder. HTTP Method – GET API URI – https://host/api/mcm/contents/folders/{id}/collaborators?searchText={searchText}&type= {type}&startIndex={startIndex}&pageSize={pageSize} URI Parameters Tag Type Description id String Unique identifier of the folder Response Payload XML Numeric String String String String Numeric String Numeric String String String String Dateime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 309 Chapter 5: Content Management JSON { "AdditionalInfo": { "Links":[{ "Href":"String", "Rel":"String", }], }, "collaborators":[ { "id":Numeric, "name":"String", "email":"String", "type":"String", "role":"String", "actknowledgedAt":"Datetime } ], "TotalResults":Numeric } Response Tag Details Tag Type Description id Numeric Unique identifier of the collaborator email String Email address of the collaborator type String Type of the collaborator role String Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt Datetime Time stamp when the folder was shared TotalResults Numeric Total results returned per page VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 310 Chapter 5: Content Management Remove Sharing Functionality – Removes sharing on folder if you are the owner. Otherwise, leave the folder. HTTP Method – DELETE API URI – https://host/api/mcm/contents/folders/{id}/shares URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload – NA Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 311 Chapter 5: Content Management Share Folder with Users or UserGroups Functionality – Shares a folder with users or usergroups. The API expects User Id or User Group Id, Role and Type to share accordingly. Important: If no userid present and emailid is mentioned then the user is considered to be external userid. This end point accepts the collaborators list and shares the folder to them assuming that the folder is not shared to anyone else yet. HTTP Method – POST API URI – https://host/api/mcm/contents/folders/{id}/shares URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String String String Numeric Numeric String String String String Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 312 Chapter 5: Content Management JSON { "collaborators":[ { "id":Numeric, "email":"String", "type":"String", "role":"String", } ] } Request Tag Details Tag Mandatory Description folderId Yes Unique identifier of the folder ownerUserId Yes Unique identifier of the owner who is sharing the folder ownerName Yes Name of the owner who is sharing the folder collaborator id Yes Unique identifier of the collaborator collaborator name Yes Name of the collaborator collaborator email Yes Email address of the collaborator collaborator type No Type of the collaborator collaborator role Yes Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt No Time stamp when the folder was shared Response Payload XML Numeric String String String String Numeric String Numeric String String String String Dateime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "folderId":"String", "ownerUserId":Numeric, "ownerName":"String", "collaborators":[ { "id":Numeric, "name":"String", "email":"String", "type":"String", "role":"String", "actknowledgedAt":"Datetime } ], } Response Tag Details Tag Type Description folderId String Unique identifier of the folder ownerUserId Numeric Unique identifier of the owner who is sharing the folder ownerName String Name of the owner who is sharing the folder collaborator id Numeric Unique identifier of the collaborator collaborator name String Name of the collaborator collaborator email String Email address of the collaborator VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 314 Chapter 5: Content Management collaborator type String Type of the collaborator collaborator role String Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt Datetime Time stamp when the folder was shared VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 315 Chapter 5: Content Management Update Collaborator Functionality – Updates a Collaborator. You can only update Role of the Collaborator. The API expects User Id or User Group Id, Role and Type to share accordingly. Important: If no userid present and emailid is mentioned then the user is considered to be external userid. HTTP Method – PUT API URI – https://host/api/mcm/contents/folders/{id}/shares/collaborators URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 313 Chapter 5: Content ManagementString Numeric String String String String Dateime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 316 Chapter 5: Content Management JSON { { "id":Numeric, "type":"String", "role":"String", } ] } Request Tag Details Tag Mandatory Description folderId Yes Unique identifier of the folder ownerUserId Yes Unique identifier of the owner who is sharing the folder ownerName Yes Name of the owner who is sharing the folder collaborator id Yes Unique identifier of the collaborator collaborator name Yes Name of the collaborator collaborator email Yes Email address of the collaborator collaborator type No Type of the collaborator collaborator role Yes Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt No Time stamp when the folder was shared Response Payload XML Numeric String String String String Numeric String Numeric String String String String Dateime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "folderId":"String", "ownerUserId":Numeric, "ownerName":"String", "collaborators":[ { "id":Numeric, "name":"String", "email":"String", "type":"String", "role":"String", "actknowledgedAt":"Datetime } ], } Response Tag Details Tag Type Description folderId String Unique identifier of the folder ownerUserId Numeric Unique identifier of the owner who is sharing the folder ownerName String Name of the owner who is sharing the folder collaborator id Numeric Unique identifier of the collaborator collaborator name String Name of the collaborator collaborator email String Email address of the collaborator VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 318 Chapter 5: Content Management collaborator type String Type of the collaborator collaborator role String Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt Datetime Time stamp when the folder was shared VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 319 Chapter 5: Content Management Remove Sharing on Collaborator Folder Functionality – Remove one or more collaborators from a shared folder. HTTP Method – DELETE API URI – https://host/api/mcm/contents/folders/{id}/shares/collaborators URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 317 Chapter 5: Content ManagementString Numeric String String String String Dateime JSON [ { "id":Numeric, "type":"String" }, { "id":Numeric, "type":"String" } ] VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 320 Chapter 5: Content Management Request Tag Details Tag Mandatory Description id Yes Unique identifier of the folder type Yes Type of the folder Response Payload JSON {} VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 321 Chapter 5: Content Management Update Collaborator of Shared Folder Functionality – Update collaborators of shared folder. This end point will add or update or delete the collaborators. HTTP Method – PUT API URI – https://host/api/mcm/contents/folders/{id}/shares Response Obtained – NA URI Parameters Tag Type Description id String Unique identifier of the folder Request Payload XML Numeric String Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 322 Chapter 5: Content Management JSON { { "id":Numeric, "email":"String", "type":"String", "role":"String" } ] } Request Tag Details Tag Mandatory Description folderId Yes Unique identifier of the folder ownerUserId Yes Unique identifier of the owner who is sharing the folder ownerName Yes Name of the owner who is sharing the folder collaborator id Yes Unique identifier of the collaborator collaborator name Yes Name of the collaborator collaborator email Yes Email address of the collaborator collaborator type No Type of the collaborator collaborator role Yes Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt No Time stamp when the folder was shared Response Payload XML Numeric String String String String Numeric String Numeric String String String String Dateime JSON { "Links":[{ "Href":"String", "Rel":"String", }], "folderId":"String", "ownerUserId":Numeric, "ownerName":"String", "collaborators":[ { "id":Numeric, "name":"String", "email":"String", "type":"String", "role":"String", "actknowledgedAt":"Datetime } ], } Response Tag Details Tag Type Description folderId String Unique identifier of the folder ownerUserId Numeric Unique identifier of the owner who is sharing the folder ownerName String Name of the owner who is sharing the folder collaborator id Numeric Unique identifier of the collaborator collaborator name String Name of the collaborator collaborator email String Email address of the collaborator VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 324 Chapter 5: Content Management collaborator type String Type of the collaborator collaborator role String Role of the collaborator (Co-Owner, Reader, or Editor) actknowledgedAt Datetime Time stamp when the folder was shared VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 325 Chapter 5: Content Management Retrieve Admin Storage Information Functionality – Returns admin storage information of the organization group. HTTP Method – GET API URI – https://host/api/mcm/storage Request Payload – NA Response Payload XML Numeric String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 323 Chapter 5: Content ManagementString Numeric String String String String Dateime JSON { "storageCapacity" : Numeric, "usedStorage" : Numeric, "usedStoragePercentage" : Numeric, "maxFileSizeAllowed" : Numeric, "overageAllowed" : Numeric, "fileEncryption" : Boolean, } Response Tag Details Tag Type Description storageCapacity Numeric Storage capacity of the organization group usedStorage Numeric Volume of the storage capacity utilized usedStoragePercentage Numeric Volume of the storage capacity utilized in percentage maxFileSizeAllowed Numeric Allowed maximum file size overageAllowed Numeric Allowed overage fileEncryption Boolean Is file encryption allowed. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 326 Chapter 5: Content Management Managed Content Overview With Admin as account type, you can access all the managed content APIs. To do this, navigate to Groups & Settings > All Settings > System > Advanced > API > REST API, and select Add, to generate API key for the service and account type as Admin. Using managed content APIs, you can perform various operations such as to upload, download, update, delete, and retrieve files that are AirWatch managed. The list of available AirWatch managed content APIs are: l Retrieve all categories l Create new category l Delete category l Update category l Upload AirWatch Managed Content l Download AirWatch Managed Content l Delete AirWatch Managed Content l Retrieve AirWatch Managed Content l Update AirWatch Managed Content l Retrieve List of AirWatch Managed Content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 327 Chapter 5: Content Management Retrieve All Categories Functionality – Retrieve all categories available for the organization group. HTTP Method – GET API URI – https://host/api/mcm/categories?locationgroupcode={locationgroupcode}&locationgroupid= {locationgroupid} Request Payload – NA URI Parameters Tag Type Description locationgroupcode String Location group code locationgroupid Numeric Location group id Response Payload XML Numeric Numeric Numeric Numeric Numeric Boolean JSON [ { "categoryId" : "String", "parentId" : "String", "name" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 328 Chapter 5: Content Management "description" : "String", "hasSubCategories" : Boolean, "locationGroupId" : Numeric } ] Response Tag Details Tag Type Description categoryId String Unique identification number of the category parentId String Unique identifier of the parent organization group name String Name of the category description String Description for the category hasSubCategories Boolean Does the category has sub categories. True or False locationGroupId Numeric Unique identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 329 Chapter 5: Content Management Create New Category Functionality – Create new category under the specified organization group. HTTP Method – POST API URI – https://host/api/mcm/categories Request Payload XML String String String Boolean Numeric String JSON { "parentId" : "String", "name" : "String", "description" : "String", "locationGroupId" : Numeric } Request Tag Details Tag Mandatory Description categoryId Yes Unique identification number of the category parentId Yes Unique identifier of the parent organization group name Yes Name of the category description No Description for the category locationGroupId Yes Unique identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 330 Chapter 5: Content Management Response Payload XML String String Numeric String JSON { "categoryId" : "String", "parentId" : "String", "name" : "String", "description" : "String", "hasSubCategories" : Boolean, "locationGroupId" : Numeric } Response Tag Details Tag Type Description categoryId String Unique identification number of the category parentId String Unique identifier of the parent organization group name String Name of the category description String Description for the category hasSubCategories Boolean Does the category has sub categories. True or False locationGroupId Numeric Unique identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 331 Chapter 5: Content Management Delete Category Functionality – Deletes a category specified by the Id. HTTP Method – DELETE API URI – https://host/api/mcm/categories/{id} URI Parameters Tag Type Description id String Unique id of the category Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 332 Chapter 5: Content Management Update Category Functionality – Updates the category metadata. HTTP Method – PUT API URI – https://host/api/mcm/categories/{id} URI Parameters Tag Type Description id String Unique id of the category Request Payload XML String String String Boolean Numeric String JSON { "name" : "String", "description" : "String" } Request Tag Details Tag Mandatory Description name Yes Name of the category description No Description for the category Response Payload XML String String JSON { "categoryId" : "String", "parentId" : "String", "name" : "String", "description" : "String", "hasSubCategories" : Boolean, "locationGroupId" : Numeric } Response Tag Details Tag Type Description categoryId String Unique identification number of the category parentId String Unique identifier of the parent organization group name String Name of the category description String Description for the category hasSubCategories Boolean Does the category has sub categories. Boolean or False locationGroupId Numeric Unique identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 334 Chapter 5: Content Management Upload AirWatch Managed Content Functionality – Uploads AirWatch managed content. HTTP Method – POST API URI – https://host/api/mcm/awcontents?fileName={fileName}&categoryId={categoryId}&effectiveDate= {effectiveDate}&locationGroupId={locationGroupId}&locationGroupCode={locationGroupCode} Request Payload – NA URI Parameters Tag Type Description fileName String File name along with the extension categoryId String Unique identifier of the category effectiveDate String Effective date for the file being uploaded locationGroupId String Location group id locationGroupCode String Location group code Response Payload XML String String String Boolean String JSON { "contentId" : "String", "name" : "String", "description" : "String", "mimeType" : "String", "isActive" : Boolean, "importance" : "String", "locationGroupId" : Numeric, "createdOn" : "Datetime", "createdBy" : "String", "modifiedOn" : "Datetime", "modifiedBy" : "String", "Categories" : [ VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 336 Chapter 5: Content Management { "categoryId" : "String", "name" : "String" }, { "categoryId" : "String", "name" : "String" } ], "ContentVersion" : { "contentVersionId" : "String", "version" : "String", "notes" : "String", "size" : Numeric, "hash" : "String", "author" : "String", "subject" : "String", "keywords" : "String", "downloadLink" : "String", "hashAlgorithm" : "String", }, "SecuritySettings" : { "allowViewOnline" : Boolean, "forceEncryption" : Boolean, "allowOpenInEmail" : Boolean, "allowOpenInThirdPartyApps" : Boolean, "allowSavingToOtherRepositories" : Boolean, "enableWaterMark" : Boolean, "allowPrint" : Boolean, "allowEdit" : Boolean, }, "DeploymentSettings" : { "downloadWhileRoaming" : Boolean, "downloadMethod" : "String", "forceDownload" : Boolean, "downloadPriority" : "String", "isRequired" : Boolean, "isFeaturedContent" : Boolean, "effectiveDate" : "Datetime", "expirationDate" : "Datetime", "downloadDate" : "Datetime", } } Response Tag Details Tag Type Description contentId Numeric Unique identification number of the content name String Name of the content description String Description for the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 337 Chapter 5: Content Management mimeType String Type of the MIME to filter contents isActive Boolean Is the content active. True of False importance String Importance of the content locationGroupId Numeric Unique identification number of the location group createdOn Datetime Time stamp when the content was created createdBy String Name of the author who created the content modifiedOn Datetime Time stamp when the content was last modified modifiedBy String Name of the author who modified the content categoryId Numeric Unique identifier for the category name String Name of the category contentVersionId String Unique identifier of the content version version String Version of the content notes String Notes for the content size Numeric Size of the content hash String Computed hash for the content author String Author of the content subject String Subject of the content keywords String Keywords to search the content downloadLink String Link to download the content hashalgorithm String Algorithm used to compute hash allowViewOnline Boolean Whether to allow content to view online. True or False forceEncryption Boolean Whether to force encrypt the content. True or False allowOpenInEmail Boolean Whether to allow content to open in emails. True or False allowOpenInThirdPartyApps Boolean Whether to allow content to open in third party applications. True or False allowSavingToOtherRepositories Boolean Whether to allow content to get saved in other repositories. True or False enableWaterMark Boolean Whether to enable water mark on the content. True or False allowPrint Boolean Whether to allow to print the content. True or False allowEdit Boolean Whether to allow editing the content. True or False downloadWhileRoaming Boolean Whether to download content while roaming. True or False downloadMethod String Method used to download the content forceDownload Boolean Whether to force download the content. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 338 Chapter 5: Content Management downloadPriority String Priority set to the content. Values: High, Normal, and Low isRequired Boolean Whether deployment settings are required or not. True or False effectiveDate Datetime Datetime when the content will be effective expirationDate Datetime Expiration date of the content downloadDate Datetime Download date of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 339 Chapter 5: Content Management Download AirWatch Managed Content Functionality – Downloads AirWatch managed contents. HTTP Method – GET API URI – https://host/api/mcm/awcontents/{id} URI Parameters Tag Type Description id String Unique identifier of the content Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 340 Chapter 5: Content Management Delete AirWatch Managed Content Functionality – Deletes AirWatch managed contents. HTTP Method – DELETE API URI – https://host/api/mcm/awcontents/{id} URI Parameters Tag Type Description id String Unique identifier of the content Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 341 Chapter 5: Content Management Retrieve AirWatch Managed Content Functionality – Retrieves AirWatch managed content. HTTP Method – GET API URI – https://host/api/mcm/awcontents/{id}/info Request Payload – NA URI Parameters Tag Type Description id String Unique identifier of the content Response Payload XML String Datetime String v String String String String Numeric String String String Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 335 Chapter 5: Content ManagementString String Numeric String String String String String String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String Boolean Boolean Datetime Datetime Datetime JSON { "contentId" : "String", "name" : "String", "description" : "String", "mimeType" : "String", "isActive" : Boolean, "importance" : "String", "locationGroupId" : Numeric, "createdOn" : "Datetime", "createdBy" : "String", "modifiedOn" : "Datetime", "modifiedBy" : "String", "Categories" : [ { "categoryId" : "String", "name" : "String" }, { "categoryId" : "String", "name" : "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 343 Chapter 5: Content Management } ], "ContentVersion" : { "contentVersionId" : "String", "version" : "String", "notes" : "String", "size" : Numeric, "hash" : "String", "author" : "String", "subject" : "String", "keywords" : "String", "downloadLink" : "String", "hashAlgorithm" : "String", }, "SecuritySettings" : { "allowViewOnline" : Boolean, "forceEncryption" : Boolean, "allowOpenInEmail" : Boolean, "allowOpenInThirdPartyApps" : Boolean, "allowSavingToOtherRepositories" : Boolean, "enableWaterMark" : Boolean, "allowPrint" : Boolean, "allowEdit" : Boolean, }, "DeploymentSettings" : { "downloadWhileRoaming" : Boolean, "downloadMethod" : "String", "forceDownload" : Boolean, "downloadPriority" : "String", "isRequired" : Boolean, "isFeaturedContent" : Boolean, "effectiveDate" : "Datetime", "expirationDate" : "Datetime", "downloadDate" : "Datetime", } } Response Tag Details Tag Type Description contentId String Unique identification number of the content name String Name of the content description String Description for the content mimeType String Type of the MIME to filter contents isActive Boolean Is the content active. True of False importance String Importance of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 344 Chapter 5: Content Management locationGroupId Numeric Unique identification number of the location group createdOn Datetime Time stamp when the content was created createdBy String Name of the author who created the content modifiedOn Datetime Time stamp when the content was last modified modifiedBy String Name of the author who modified the content categoryId Numeric Unique identifier for the category name String Name of the category contentVersionId String Unique identifier of the content version version String Version of the content notes String Notes for the content size Numeric Size of the content hash String Computed hash for the content author String Author of the content subject String Subject of the content keywords String Keywords to search the content downloadLink String Link to download the content hashAlgorithm String Algorithm used to compute hash allowViewOnline Boolean Whether to allow the content to be viewed online. True or False forceEncryption Boolean Whether to force to encrypt the content. True or False allowOpenInEmail Boolean Whether to allow content to open in emails. True or False allowOpenInThirdPartyApps Boolean Whether to allow content to open in third-party applications. True or False allowSavingToOtherRepositories Boolean Whether to allow content to get saved in other repositories. True or False enableWaterMark Boolean Whether to enable water mark on the content. True or False allowPrint Boolean Whether to allow the content to be printed. True or False allowEdit Boolean Whether to allow editing the content. True or False downloadWhileRoaming Boolean Whether to download content while roaming. True or False downloadMethod String Method used to download the content forceDownload Boolean Whether to force download the content. True or False downloadPriority String Priority set to the content. Values: High, Normal, and Low isRequired Boolean Whether deployment settings are required or not. True or False effectiveDate Datetime Datetime when the content is effective VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 345 Chapter 5: Content Management expirationDate Datetime Expiration date of the content downloadDate Datetime Download date of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 346 Chapter 5: Content Management Update AirWatch Managed Content Functionality – Updates AirWatch managed content. HTTP Method – PUT API URI – https://host/api/mcm/awcontents/{id}/info Request Payload – NA URI Parameters Tag Type Description id String Unique identifier of the content Request Payload XML Numeric String Datetime String v String String String String Numeric String String String Boolean String String String Numeric String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 342 Chapter 5: Content ManagementString String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String Boolean Boolean Datetime Datetime Datetime JSON { "name" : "String", "description" : "String", "isActive" : Boolean, "importance" : "String", "Categories" : [ { "categoryId" : "String", }, { "categoryId" : "String", } ], "SecuritySettings" : { "allowViewOnline" : Boolean, "forceEncryption" : Boolean, "allowOpenInEmail" : Boolean, "allowOpenInThirdPartyApps" : Boolean, "allowSavingToOtherRepositories" : Boolean, "enableWaterMark" : Boolean, "allowPrint" : Boolean, "allowEdit" : Boolean, }, "DeploymentSettings" : { "downloadWhileRoaming" : Boolean, "downloadMethod" : "String", "forceDownload" : Boolean, "downloadPriority" : "String", "isRequired" : Boolean, "isFeaturedContent" : Boolean, "effectiveDate" : "Datetime",s "expirationDate" : "Datetime", "downloadDate" : "Datetime", } } Request Tag Details Tag Mandatory Description name No Name of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 348 Chapter 5: Content Management description No Description for the content isActive No Is the content active. True of False importance No Importance of the content categoryId Yes Unique identifier for the category allowViewOnline No Whether to allow content to view online. True or False forceEncryption No Whether to force encrypt the content. True or False allowOpenInEmail No Whether to allow content to open in emails. True or False allowOpenInThirdPartyApps No Whether to allow content to open in third party applications. True or False allowSavingToOtherRepositories No Whether to allow content to get saved in other repositories. True or False enableWaterMark No Whether to enable water mark on the content. True or False allowPrint No Whether to allow to print the content. True or False allowEdit No Whether to allow editing the content. True or False downloadWhileRoaming No Whether to download content while roaming. True or False downloadMethod No Method used to download the content forceDownload No Whether to force download the content. True or False downloadPriority No Priority set to the content. Values: High, Normal, and Low isRequired No Whether deployment settings are required or not. True or False effectiveDate Yes Datetime when the content will be effective expirationDate Yes Expiration date of the content downloadDate Yes Download date of the content Response Payload XML String String String String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String Boolean Boolean Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 347 Chapter 5: Content ManagementDatetime Datetime JSON { "contentId" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 350 Chapter 5: Content Management "name" : "String", "description" : "String", "mimeType" : "String", "isActive" : Boolean, "importance" : "String", "locationGroupId" : Numeric, "createdOn" : "Datetime", "createdBy" : "String", "modifiedOn" : "Datetime", "modifiedBy" : "String", "Categories" : [ { "categoryId" : "String", "name" : "String" }, { "categoryId" : "String", "name" : "String" } ], "ContentVersion" : { "contentVersionId" : "String", "version" : "String", "notes" : "String", "size" : Numeric, "hash" : "String", "author" : "String", "subject" : "String", "keywords" : "String", "downloadLink" : "String", "hashAlgorithm" : "String", }, "SecuritySettings" : { "allowViewOnline" : Boolean, "forceEncryption" : Boolean, "allowOpenInEmail" : Boolean, "allowOpenInThirdPartyApps" : Boolean, "allowSavingToOtherRepositories" : Boolean, "enableWaterMark" : Boolean, "allowPrint" : Boolean, "allowEdit" : Boolean, }, "DeploymentSettings" : { "downloadWhileRoaming" : Boolean, "downloadMethod" : "String", "forceDownload" : Boolean, "downloadPriority" : "String", "isRequired" : Boolean, "isFeaturedContent" : Boolean, "effectiveDate" : "Datetime", "expirationDate" : "Datetime", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 351 Chapter 5: Content Management "downloadDate" : "Datetime", } } Response Tag Details Tag Type Description contentId Numeric Unique identification number of the content name String Name of the content description String Description for the content mimeType String Type of the MIME to filter contents isActive Boolean Is the content active. True of False importance String Importance of the content locationGroupId Numeric Unique identification number of the location group createdOn Datetime Time stamp when the content was created createdBy String Name of the author who created the content modifiedOn Datetime Time stamp when the content was last modified modifiedBy String Name of the author who modified the content categoryId Numeric Unique identifier for the category name String Name of the category contentVersionId String Unique identifier of the content version version String Version of the content notes String Notes for the content size Numeric Size of the content hash String Computed hash for the content author String Author of the content subject String Subject of the content keywords String Keywords to search the content downloadLink String Link to download the content hashAlgorithm String Algorithm used to compute hash allowViewOnline Boolean Whether to allow content to view online. True or False forceEncryption Boolean Whether to force encrypt the content. True or False allowOpenInEmail Boolean Whether to allow content to open in emails. True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 352 Chapter 5: Content Management allowOpenInThirdPartyApps Boolean Whether to allow content to open in third party applications. True or False allowSavingToOtherRepositories Boolean Whether to allow content to get saved in other repositories. True or False enableWaterMark Boolean Whether to enable water mark on the content. True or False allowPrint Boolean Whether to allow to print the content. True or False allowEdit Boolean Whether to allow editing the content. True or False downloadWhileRoaming Boolean Whether to download content while roaming. True or False downloadMethod String Method used to download the content forceDownload Boolean Whether to force download the content. True or False downloadPriority String Priority set to the content. Values: High, Normal, and Low isRequired Boolean Whether deployment settings are required or not. True or False effectiveDate Datetime Datetime when the content will be effective expirationDate Datetime Expiration date of the content downloadDate Datetime Download date of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 353 Chapter 5: Content Management Retrieve List of AirWatch Managed Content Functionality – Retrieves list of AirWatch managed content. HTTP Method – GET API URI – https://host/api/mcm/awcontents?locationgroupcode={locationgroupcode}&locationgroupid= {locationgroupid}&queryString={queryString}&categoryId={categoryId}&mimeType={mimeType}&expiresIn= {expiresIn}&sortBy={sortBy}&sortAscending={sortAscending}&pageSize={pageSize}&startIndex={startIndex} Request Payload – NA URI Parameters Tag Type Description locationgroupcode String Location group code locationgroupid Numeric Location group id queryString String Searches for the string value in the File Name categoryId Numeric The unique identifier for the Category being queried mimeType String Filter contents by Mime Type expiresIn Numeric Filter by Contents that are going to expire within days specified sortBy String Sort by what column, it accepts "Name", "Size", "Author", "DownloadPriority", "IsRequired", "IsActive", "EffectiveDate", "ExpirationDate", "ModifiedOn", or "ModifiedBy". By default it sorts by "Name" sortAscending Boolean Sort direction. By default it sorts Ascending startIndex Numeric Start index of page pageSize Numeric Specifies the number of results returned per Page Response Payload XML String Datetime String v String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 349 Chapter 5: Content ManagementNumeric String String String Boolean String String String Numeric String String String String String String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String Boolean Boolean Datetime Datetime Datetime JSON { "AdditionalInfo" : { "Links" : [ { "Href" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 355 Chapter 5: Content Management "Rel" : "String", "Title" : "String" } ] }, "TotalResults" : Numeric, "content" : [ { "id" : Numeric, "Links" : [ { "Href" : "String", "Rel" : "String", "Title" : "String" } ], "contentId" : "String", "createdOn" : "Datetime", "currentVersionNumber" : "String", "description" : "String", "downloadLink" : "String", "downloadMethod" : "String", "downloadWhileRoaming" : Boolean, "forceEncryption" : Boolean, "isFavorite" : Boolean, "isShared" : Boolean, "isTrashed" : Boolean, "mimeType" : "String", "modifiedOn" : "Datetime, "name" : "String", "notes" : "String", "owner" : "String", "parentId" : "String", "sharingRole" : "String", "size" : Numeric, "subject" : "String" } ] } Response Tag Details Tag Type Description contentId String Unique identifier for the content createdOn Datetime Time stamp when the content was created currentVersionNumber String The current version of the content description String Description about the content downloadLink String Link to download the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 356 Chapter 5: Content Management downloadMethod String Method used to download the content downloadWhileRoaming Boolean Whether to download content while roaming. True or False forceEncryption Boolean Whether to force encrypt the content. True or False isFavorite Boolean Is the content favorite. True or False isShared Boolean Is the content shared. True or False isTrashed Boolean Is the content trashed. True or False mimeType String Type of the MIME to filter contents modifiedOn Datetime Time stamp when the content was last modified name String Name of the content notes String Additional notes regarding the content owner String Owner of the content parentId String Unique identifier of the parent organization group sharingRole String Type of the sharing role; Co-owner, Editor, or Reader size Numeric Size of the content subject String Subject of the content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 357 Chapter 6: Device Management Overview 361 Retrieve Application Details From the Device 361 Retrieve Admin Application Details 364 Retrieve Device Bulk Settings 366 Retrieve Certificate Details From the Device 368 Retrieve Compliance Details of the Device 370 Retrieve Compliance Attributes 372 Save Compliance Attributes for a List of Devices 374 Retrieve Content Details of the Device 377 Retrieve Device Information 379 Retrieve Bulk Device Information 383 Retrieve Device Application Status 388 Retrieve Event Logs From the Device 390 Retrieve GPS Co-ordinates of the Device 393 Retrieve Bulk GPS Co-ordinates From the Device 395 Execute Bulk GPS Coordinates 398 Retrieve Network Information of the Device 400 Retrieve Profile Details of the Device 404 Retrieve Enrollment User Details of the Device 407 Retrieve Enrolled Device Count 409 Retrieve Smart Group details 411 Retrieve Device Associated Smart Groups 415 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 358 Chapter 6: Device Management Retrieve Security Information 417 Change Device Passcode (*Refactored) 419 Clear Passcode on the Device (*Refactored) 420 Enterprise Wipe a Device (*Refactored) 421 Enterprise Wipe in Bulk (*Refactored) 422 Find Device (*Refactored) 424 Lock Device (*Refactored) 426 Lock Devices in Bulk (*Refactored) 427 Query Device (*Refactored) 430 Device Wipe (*Refactored) 431 Delete Device 432 Delete Devices in Bulk (*Refactored) 433 Sync Device (*Refactored) 436 Send Email to the Device Enrollment User (*Refactored) 437 Send Email in Bulk (*Refactored) 439 Send SMS to the Device (*Refactored) 441 Send SMS in Bulk (*Refactored) 443 Send Push Message to the Device (*Refactored) 445 Bulk Push Message to the Devices (*Refactored) 447 Push Notification (*Refactored) 449 Execute Device Commands 451 Execute Bulk Device Commands 452 Schedule OS Update Command 454 Bulk Schedule OS Update Command 455 Start Airplay 458 Send Remote Control Action Command (*Refactored) 460 Add Note to the Device (*Refactored) 461 Delete Note From the Device 463 Retrieve Notes From the Device 464 Retrieve a Specific Note From the Device 466 Update Note onto the Device (*Refactored) 468 Search Device Details 470 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 359 Chapter 6: Device Management Search Compliance Policy 477 Device Extensive Search 480 Search Security Information 484 Search Network Information 486 Device Extensive Search (Lite) 488 Custom Attribute Search 491 Search Changes Made To Custom Attribute 493 Update Device Custom Attribute (*Refactored) 495 Delete Custom Attribute (*Refactored) 498 Edit Device Details 501 Managed Settings 503 Change Device Organization Group 504 Create Offline Device Record 505 Create Relay Server 506 Create Relay Servers in Bulk 510 Delete Relay Server 516 Retrieve Relay Server Details 517 Update Relay Server 521 Create Staging Bundle 525 Delete Staging Bundle 528 Retrieve Staging Bundle 529 Update Staging Bundle 532 Retrieve Printer Details Using Identifier 534 Retrieve Printer Details Using Location Group 536 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 360 Chapter 6: Device Management Overview AirWatch REST APIs allows you to manage all the functionalities of Mobile Device Management (MDM). The functionalities that are included but not limited to are device commands, retrieval of compliance, profile, network, location, and event log details. Device details can be viewed in the following path on the AirWatch Console: l Device Dashboard – Devices > List View. Retrieve Application Details From the Device Functionality – Retrieves the details of the applications that are present on the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/apps? page={page}&pagesize={pagesize} The user can obtain the application details using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/apps?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize} Pattern (Contains) Match Parameter – id, page, pagesize, searchby URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id page The specific page number to get pagesize Max records per page Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/apps l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/apps l UDID – https://host/api/mdm/devices/UDID/{UDID}/apps Response Payload XML Numeric String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 354 Chapter 5: Content ManagementNumeric Numeric String String String String String String String String String Boolean Boolean Boolean String Boolean Boolean String String String String String Numeric Datetime Datetime Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 361 Chapter 6: Device ManagementNumeric String Numeric Numeric String Numeric Numeric String String String JSON { "DeviceApps": [ { "ApplicationName": "String", "Version": Numeric, "BuildVersion": Numeric, "Status": Numeric, "Size": Numeric, "ApplicationIdentifier": Numeric, "Type": "String", "IsManaged":String "Id":Numeric}] "DeviceId":{ }, "Page":Numeric, "PageSize":Numeric, "Total":Numeric, } Response Tag Details Tag Type Description Page Numeric Page number of the search result PageSize Numeric Number of device apps shown on each page Total Numeric Total number of applications on the device Id Numeric Application ID of a managed device ApplicationName String Name of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 362 Chapter 6: Device Management Version Numeric Version of the application BuildVersion Numeric Build version of the application Status String Current status of the application of the device (Installed, Pending Install etc). Refer Tables. Size Numeric Size of the application in bytes ApplicationIdentifier Numeric Unique ID of the application (Bundle ID or External ID) Type String Type of application; Internal or Public IsManaged String Denotes if the application is managed by MDM. The values obtained is either True or False Deviceid Numeric Unique identification number of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 363 Chapter 6: Device Management Retrieve Admin Application Details Functionality – Retrieves admin applications details for the passed device ID. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/adminapps Request Payload – N/A URI Parameters Tag Type Description Id Numeric Unique numeric ID of the device Response Payload XML JSON { "DeviceAdminApps" : [ { "Name" : "String", "Version" : "String", "Identifier" : "String" }, { "Name" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 364 Chapter 6: Device Management "Version" : "String", "Identifier" : "String" } ] } Response Tag Details Tag Type Description Name String Name of the device admin application Version String Version of the application Identifier String Unique identifier of the application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 365 Chapter 6: Device Management Retrieve Device Bulk Settings Functionality – Retrieves the values for bulk management settings done on the AirWatch Console. HTTP Method – GET API URI – https://host/api/mdm/devices/bulksettings Response Payload XML String String String String String String JSON { "SendMessage":String, "EnterpriseWipe":String, "DeleteDevice":String, "GPS":String, "LockDevice":String } Response Tag Details Tag Type Description SendMessage String Maximum number of devices to which message can be sent in bulk EnterpriseWipe String Maximum number of devices which can be enterprise wiped in bulk DeleteDevice String Maximum number of devices which can be deleted from the console in bulk GPS String Maximum number of devices for which the location details can be obtained in bulk LockDevice String Maximum number of devices which can be locked in bulk VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 366 Chapter 6: Device Management Note: Bulk settings can be viewed in the following path in the AirWatch Console : Settings > Devices & Users > Advanced > Bulk Management. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 367 Chapter 6: Device Management Retrieve Certificate Details From the Device Functionality – Retrieves the details of the certificates that are present on the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/certificates?page={page}&pagesize={pagesize} You can obtain the device certificate details using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/certificates?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize} Pattern (Contains) Match Parameter – id, page, pagesize, searchby URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id page The specific page number to get pagesize Max records per page Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/certificates l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/certificates l UDID – https://host/api/mdm/devices/UDID/{UDID}/certificates Response Payload XML String String String String String Numeric Numeric Numeric Numeric Datetime Datetime Numeric String Datetime String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 368 Chapter 6: Device ManagementJSON {"DeviceCertificates": [ { "FirstSampleTime": "Datetime", "LastSampleTime": "Datetime", "DeviceId": {"Id": {"Value": Numeric} }, "Name": "String ", "ExpiresOn": "Datetime", "IssuedBy": "String", "Status": String, "Id": {"Value": Numeric} },] "Page": Numeric, "PageSize": Numeric, "Total": Numeric } Response Tag Details Tag Type Description FirstSampleTime Datetime Time stamp of the time the first certificate sample was received LastSampleTime Datetime Time stamp of the time the last certificate sample was received DeviceId Numeric Unique identification of the device Name String Name of the certificate ExpiresOn Datetime Date of expiry of the certificate IssuedBy String Issuer of the certificate Status String Current Status of the certificate on the device (Installed, Pending Install etc) Id Numeric Unique ID of the certificate Page Numeric Page number of the search result PageSize Numeric Number of device certificates shown on each page Total Numeric Total number of certificates on the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 369 Chapter 6: Device Management Retrieve Compliance Details of the Device Functionality – Retrieves the details of the compliance policies that are present on a device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/compliance? page={page}&pagesize={pagesize} You can obtain the device compliance policy details using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/compliance?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize} Pattern (Contains) Match Parameter – id, page, pagesize, searchby URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/compliance l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/compliance l UDID – https://host/api/mdm/devices/UDID/{UDID}/compliance Response Payload XML VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 370 Chapter 6: Device Management JSON { "DeviceCompliance": [ { "CompliantStatus": String, "PolicyName": "String ", "PolicyDetail": "String ", "LastComplianceCheck": "Datetime", "NextComplianceCheck": "Datetime", "ActionTaken": [String], "Id": { Value": Numeric} } ], "Page": Numeric, "PageSize": Numeric, "Total": Numeric} Response Tag Details Tag Type Description CompliantStatus String Compliance status of the specific policy PolicyName String Name of the compliance policy PolicyDetail String Details of the compliance policy LastComplianceCheck Datetime Time stamp of the last compliance check NextComplianceCheck Datetime Scheduled time of the next compliance check ActionTaken String Action taken on the device for the policy Id Numeric Unique ID of the compliance policy Page Numeric Page number of the search result PageSize Numeric Number of compliance polices shown on each page Total Numeric Total number of policies on the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 371 Chapter 6: Device Management Retrieve Compliance Attributes Functionality – Gets the list compliance attributes configured for an organizational group based on the vendor name. HTTP Method – GET API URI – https://host/api/mdm/complianceattributes/organizationgroupcomplianceattributes?vendorname= {vendorname} URI Parameters Tag Type Description vendorname String Name of the vendor Request Payload – NA Response Payload XML Numeric Numeric Numeric String Numeric String String String String Datetime Datetime JSON { "ComplianceAttributes" : [ { "FriendlyName" : "String", "Key" : "String", "OperatorTypes" : [ "String", "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 372 Chapter 6: Device Management ], "Values" : [ "String", "String" ] } ] } Response Tag Details Tag Type Description FriendlyName String Friendly name of the custom attribute Key String Key for the custom attribute to be retrieved OperatorTypes String Operator type for the custom attribute Values String Unique value for the custom attribute to be retrieved VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 373 Chapter 6: Device Management Save Compliance Attributes for a List of Devices Functionality – Saves a list of compliance attributes for a list of devices. Also, evaluates compliance status for devices if admin has setup policies for these devices. HTTP Method – PUT API URI – https://host/api/mdm/complianceattributes/devicecomplianceattributes Request Payload XML DeviceComplianceAttributeListModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.airwatch.com/webapi/resources"> String String String String String String JSON { "DeviceComplianceAttributes" : [ { "SerialNumber" : "String", "ComplianceAttributes" : [ { "Name" : "String", "Value" : "String" } ] } ] } Request Tag Details Tag Mandatory Description SerialNumber Yes The serial number of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 374 Chapter 6: Device Management Name No Compliance attribute name Value Yes Compliance attribute value Response Payload XML String String String JSON { "TotalItems" : Numeric, "AcceptedItems" : Numeric, "FailedItems" : Numeric, "Faults" : { "Fault" : [ { "ErrorCode" : Numeric, "ItemValue" : "String", "Message" : "String" } ] } } Response Tag Details Tag Type Description TotalItems Numeric Total number of compliance attributes AcceptedItems Numeric Accepted compliance policies VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 375 Chapter 6: Device Management FailedItems Numeric Failed compliance policies ErrorCode Numeric Error code of the failed compliance policy ItemValue String Value of the compliance attribute Message String Message displayed during the failure of a compliance policy VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 376 Chapter 6: Device Management Retrieve Content Details of the Device Functionality – Retrieves the details of the content that is present on a device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/content? page={page}&pagesize={pagesize} The user can obtain the device content details using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/content?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/content l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/content l UDID – https://host/api/mdm/devices/UDID/{UDID}/content Response Payload XML Numeric Numeric Numeric String Numeric String String Numeric Numeric Numeric Numeric Numeric String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 377 Chapter 6: Device Management JSON {"DeviceId": {"Id": {"Value": Numeric},}, "DeviceContents": [ { "ContentName": " String ", "Status": String, "DownloadPriority": String., "DeployMode": String, "ContentType": String, "Id": {"Value": Numeric } },] "Page": Numeric, "PageSize": Numeric, "Total":Numeric } Response Tag Details Tag Type Description Id Numeric Unique ID of the content ContentName String Name for the content Status String Current Status of the content: Installed/Pending Install/Never Installed etc DownloadPriority String Priority set to the content. Values: High, Normal, and Low DeployMode String Deployment mode of the content on the device. Values: On Demand, Automatic ContentType String Content Type (.doc,.pdf etc.) Page Numeric Page number of the search result PageSize Numeric Number of content details shown on each page Total Numeric Total number of documents on the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 378 Chapter 6: Device Management Retrieve Device Information Functionality – Retrieves details of the device identified by device ID. HTTP Method – GET API URI – https://host/api/mdm/devices/{id} You can obtain the device information using the following parameter: l Alternate device ID type – https://host/api/mdm/devices?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber, EasId) Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress} l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber} l UDID – https://host/api/mdm/devices/UDID/{UDID} Request Body – NA Response Payload XML JSON { "Id":Numeric, "AcLineStatus":Numeric, "AssetNumber":"String", "ComplianceStatus":"String", "ComplianceSummary":{ "DeviceCompliance":[{ "Id":Numeric, "ActionTaken":[{ "ActionType":Boolean }], "CompliantStatus":Boolean, "LastComplianceCheck":"Datetime", "NextComplianceCheck":"Datetime", "PolicyDetail":"String", "PolicyName":"String" }] }, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 380 Chapter 6: Device Management "CompromisedStatus":Boolean, "DataEncryptionYN":"String", "DeviceFriendlyName":"String", "EasId":"String", "EnrollmentStatus":"String", "Imei":"String", "IsRemoteManagementEnabled":"String", "IsSupervised":Boolean, "LastComplianceCheckOn":"Datetime", "LastCompromisedCheckOn":"Datetime", "LastEnrolledOn":"Datetime", "LastSeen":"Datetime", "LocationGroupId": { "Id": { "Value":Numeric} }, "Name": "String" }, "LocationGroupName":"String", "MacAddress":"String", "Model":"String", "ModelId":{ "Id": { "Value": Numeric }, "Name": "String" }, "OEMInfo":"String", "OperatingSystem":"String", "Ownership":"String", "PhoneNumber":"String", "Platform":"String", "PlatformId":{ "Id": { "Value": Numeric }, "Name": "String" }, "SerialNumber":"String", "Udid":"TString", "UserEmailAddress":"String", "UserId":{ "Id": { "Value": Numeric }, "Name": "String" }, "UserName":"String", "VirtualMemory":Numeric } Response Tag Details Tag Type Description Udid String UDID of the device SerialNumber String Serial number of the device MacAddress String MAC address of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 381 Chapter 6: Device Management Imei String IMEI number of the device AssetNumber String Asset number of the device DeviceFriendlyName String Friendly name assigned to the device LocationGroupId Id Numeric ID of the organization group to which the device is assigned LocationGroupName String Name of the organization group to which the device is assigned UserName String Name of the enrollment user to whom the device is assigned UserEmailAddress String Email address of the enrollment user Ownership String Ownership type of the device. Values: Corporate-Shared, CorporateDedicated, Employee Owned PlatformId Numeric Unique identification associated with the platform Platform String Name of the platform ModelId Numeric Unique identification associated with the model Model String OEM model name OperatingSystem String Operating System version on the model PhoneNumber String Phone number of the device LastSeen Datetime Last seen time stamp of the device EasId String Unique identification of the Exchange Active Sync EnrollmentStatus String Current enrollment status of the device. For example, Enrolled, Unenrolled etc ComplianceStatus String Overall compliance status of the device CompromisedStatus String Compromised status of the device. Values: True/False LastEnrolledOn Datetime Time stamp of the last enrollment of the device LastComplianceCheckOn Datetime Time stamp of the last compliance check LastCompromisedCheckOn Datetime Time stamp of the last compromised status check Id Numeric Unique identification of the device VirtualMemory Numeric Virtual memory of the device OEMInfo String OEM information of the device IsRemoteManagementEnabled String Remote management status of the device IsSupervised Boolean The supervised status of the device CompliantStatus Boolean Complaint status of the device PolicyDetail String Details of the compliance policy action taken on the device PolicyName String Name of the compliance policy VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 382 Chapter 6: Device Management Retrieve Bulk Device Information Functionality – Retrieves information about multiple devices identified by the specified Id type. HTTP Method – POST API URI – https://host/api/mdm/devices/id You can obtain the bulk device details using the following parameters: l Alternate device ID type – https://host/api/mdm/devices?searchby={searchby} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress l Serial Number – https://host/api/mdm/devices/serialnumber l UDID – https://host/api/mdm/devices/UDID Request Payloads XML Numeric String String String String String String String Numeric String String String String Numeric String Numeric String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 379 Chapter 6: Device ManagementDatetime String String String Datetime Datetime Datetime Numeric Boolean String String Datetime Datetime unknown Boolean String String Numeric Numeric String JSON { "BulkValues":{"value": ["Numeric/String","Numeric/String"]} } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 383 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Value Yes( at least 1) Desired device parameter. "DeviceID","MAC Address", "Serial Number" or "UDID" Response Payloads XML Numeric/String Numeric/String JSON { "Id":Numeric, "AcLineStatus":Numeric, "AssetNumber":"String", "ComplianceStatus":"String", "ComplianceSummary":{ "DeviceCompliance":[{ "Id":Numeric, "ActionTaken":[{ "ActionType":Boolean }], "CompliantStatus":Boolean, "LastComplianceCheck":"Datetime", "NextComplianceCheck":"Datetime", "PolicyDetail":"String", "PolicyName":"String" }] }, "CompromisedStatus":Boolean, "DataEncryptionYN":"String", "DeviceFriendlyName":"String", "EasId":"String", "EnrollmentStatus":"String", "Imei":"String", "IsRemoteManagementEnabled":"String", "IsSupervised":Boolean, "LastComplianceCheckOn":"Datetime", "LastCompromisedCheckOn":"Datetime", "LastEnrolledOn":"Datetime", "LastSeen":"Datetime", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 385 Chapter 6: Device Management "LocationGroupId": { "Id": { "Value":Numeric} }, "LocationGroupName":"String", "MacAddress":"String", "Model":"String", "ModelId":{ "Id": { "Value": Numeric }, "Name": "String" }, "OEMInfo":"String", "OperatingSystem":"String", "Ownership":"String", "PhoneNumber":"String", "Platform":"String", "PlatformId":{ "Id": { "Value": Numeric }, "Name": "String" }, "SerialNumber":"String", "Udid":"TString", "UserEmailAddress":"String", "UserId":{ "Id": { "Value": Numeric }, "Name": "String" }, "UserName":"String", "VirtualMemory":Numeric } Response Tag Details Tag Type Description Udid String UDID of the device SerialNumber String Serial number of the device MacAddress String MAC address of the device Imei String IMEI number of the device AssetNumber String Asset number of the device DeviceFriendlyName String Friendly name assigned to the device LocationGroupId Id Numeric Unique identification of the organization group to which the device is assigned LocationGroupName String Name of the organization group to which the device is assigned UserName String Name of the enrollment user to whom the device is assigned UserEmailAddress String Email address of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 386 Chapter 6: Device Management Ownership String Ownership type of the device. Values: Corporate-Shared, CorporateDedicated, Employee Owned PlatformId Numeric Unique identification associated with the platform Platform String Name of the platform ModelId Numeric Unique identification associated with the model Model String OEM model name OperatingSystem String Operating system version on the model PhoneNumber String Phone number of the device LastSeen Datetime Last seen time stamp of the device EnrollmentStatus String Current enrollment status of the device. For example, Enrolled, Unenrolled etc ComplianceStatus String Overall compliance status of the device CompromisedStatus String Compromised status of the device. Values: True/False LastEnrolledOn Datetime Time stamp of the last enrollment of the device LastComplianceCheckOn Datetime Time stamp of the last compliance check LastCompromisedCheckOn Datetime Time stamp of the last compromised status check Id Numeric Unique identification of the device VirtualMemory Numeric Virtual memory of the device OEMInfo String OEM information of the device IsRemoteManagementEnabled String Remote management status of the device IsSupervised Boolean The supervised status of the device CompliantStatus Boolean Complaint status of the device PolicyDetail String Details of the compliance policy action taken on the device PolicyName String Name of the compliance policy VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 387 Chapter 6: Device Management Retrieve Device Application Status Functionality – Retrieves the application status for a combination of input elements. HTTP Method – GET API URI – https://host/api/mdm/devices/appstatus?searchby={searchBy}&id={id}&groupid={groupid}&bundleId= {bundleId}&version={version}&deviceType={deviceType} URI Parameters Tag Type Description searchBy string The alternate id type (macaddress, udid, serialnumber, imeiNumber etc) id string The alternate id groupid string GroupId is location group's customer code bundleId string Bundle id of the application version string Version of the application deviceType string Type of the device Request Payload – NA Response Payload XML Numeric String String String String String String String Numeric String String String String Numeric String Numeric String String String Datetime String String String Datetime Datetime Datetime Numeric Boolean String String Datetime Datetime unknown VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 384 Chapter 6: Device ManagementBoolean String String String String Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 388 Chapter 6: Device Management JSON { "appstatus" : Numeric, "devicestatus" : [ { "setting" : "String", "value" : "String" } ], "authentication" : { "ssoenabled" : Boolean, "authenticationurl" : "String" } } Response Tag Details Tag Type Description appstatus Numeric Status of the application in device setting String Device status setting value String Value for the device status ssoenabled Boolean Is SSO enable for the application. Values are: True, False authenticationurl String URL for the authentication VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 389 Chapter 6: Device Management Retrieve Event Logs From the Device Functionality – Retrieves the event log details of the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/eventlog?page={page}&pagesize={pagesize}&severity= {severity}&dayrange={dayrange} l Exact Match Parameter – severity l Pattern (Contains) Match Parameter – id, page, pagesize, dayrange You can also retrieve event log of the device using the following parameter: l Alternate device id – https://host/api/mdm/devices/eventlog?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize}&severity={severity}&dayrange={dayrange} o Exact Match Parameter – severity o Pattern (Contains) Match Parameter – searchby, id, page, pagesize, dayrange URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) Note: The Severity (Warning, Information, Notice, Debug) of the event logs can be specified by the severity filter. The DayRange filter specifies the number of days of logging prior to the current time sent in the response. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/eventlog l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/eventlog l UDID – https://host/api/mdm/devices/UDID/{UDID}/eventlog Response Payload XML Numeric String String Boolean String Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 390 Chapter 6: Device ManagementNumeric String Numeric Numeric String Datetime String String String JSON { "DeviceEventLogEntries":{ "Id":Numeric, "EventDataList":{"Id": Numeric, "EventDataType":" String ", "OldValue":Numeric, "NewValue":Numeric}, "Severity":" String", "TimeStamp":"Datetime ", "Source":"String", "Event":" String ", "AdminAccount":" String" "Page": Numeric, "PageSize": Numeric, "Total": Numeric } } Response Tag Details Tag Type Description Id Numeric Unique identification of the logged event EventDataList Id Numeric Unique identification of the event data EventDataType String Type of event data. For example, Compromised Status, Content Status, etc OldValue Numeric Existing value of the logged event NewValue Numeric Modified value of the logged event VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 391 Chapter 6: Device Management Severity String Severity of the logged event. For example, Information ,Debug, Warning etc TimeStamp Datetime Time stamp of the logged event Source String Whether the events are triggered from a 'Server' or an 'Device' Event String Details of the event logged AdminAccount String Name of the admin who triggered the logged event Page Numeric Page number of the search result PageSize Numeric Number of content details shown on each page Total Numeric Total number of documents on the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 392 Chapter 6: Device Management Retrieve GPS Co-ordinates of the Device Functionality – Retrieves the GPS co-ordinates of the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/gps?dayrange={dayrange} You can obtain the device information using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/gps?searchby={searchby}&id={id}&dayrange= {dayRange} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Note: The DayRange filter specifies the number of days of logging prior to the current time sent in the response. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/gps l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/gps l UDID – https://host/api/mdm/devices/UDID/{UDID}/gps Response Payload XML VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 393 Chapter 6: Device Management JSON [ { "SampleTime": "Datetime", "Latitude": Numeric, "Longitude": Numeric, "Elevation": Numeric, "Speed": Numeric, "Note": "String", "DeviceId": {"Value": Numeric }, "Id": {"Value":Numeric} }] Response Tag Details Tag Type Description SampleTime Datetime Time stamp of the obtained GPS sample Latitude Numeric Latitude in decimal degrees Longitude Numeric Longitude in decimal degrees Elevation Numeric Elevation in decimal degrees Speed Numeric Rate of change of the device position DeviceId Numeric Unique identification of the device Id Numeric Unique identification for the obtained GPS co-ordinate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 394 Chapter 6: Device Management Retrieve Bulk GPS Co-ordinates From the Device Functionality – Retrieves the GPS co-ordinates of a list of devices. HTTP Method – POST API URI – https://host/api/mdm/devices/gps/search?searchby={searchby}&startdatetime= {startdatetime}&enddatetime={enddatetime}&dayrange={dayrange} l Pattern (Contains) Match Parameter – searchby, startdatetime, enddatetime, dayrange Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/gps l Serial Number – https://host/api/mdm/devices/serialnumber/gps l UDID – https://host/api/mdm/devices/UDID/gps URI Parameters Tag Description searchby Search by device identifier types (DeviceId, MacAddress, Udid, SerialNumber, and ImeiNumber) startdatetime Start Date time enddatetime End Date time daterange Number of days in which range device location details needs to be returned Request Payloads XML Numeric Datetime Numeric Numeric Numeric Numeric String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 395 Chapter 6: Device Management JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description Value Yes The device parameter. For example, DeviceID , MAC Address , Serial Number or UDID Response Payload XML Numeric Numeric JSON [ { "SampleTime": "Datetime", "Latitude": Numeric, "Longitude": Numeric, "Elevation": Numeric, "Speed": Numeric, "Note": "String", "DeviceId": {"Value": Numeric }, "Id": {"Value":Numeric} }] VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 396 Chapter 6: Device Management Response Tag Details Tag Type Description SampleTime Datetime Time stamp of the obtained GPS sample Latitude Numeric Latitude in decimal degrees Longitude Numeric Longitude in decimal degrees Elevation Numeric Elevation in decimal degrees Speed Numeric Rate of change of the device position DeviceId Numeric Unique identification of the device Id Numeric Unique identification for the GPS co-ordinate obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 397 Chapter 6: Device Management Execute Bulk GPS Coordinates Functionality – Executes bulk gps coordinates by device and alternate id. HTTP Method – POST API URI – https://host/api/mdm/devices/gps?searchby={searchBy} URI Parameters Tag Description searchby Search by device identifier types (DeviceId, MacAddress, Udid, SerialNumber, and ImeiNumber) startdatetime Start Date time enddatetime End Date time daterange Number of days in which range device location details needs to be returned Request Payloads XML Numeric Datetime Numeric Numeric Numeric Numeric String Numeric JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description Value Yes The device parameter. For example, DeviceID , MAC Address , Serial Number or UDID VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 398 Chapter 6: Device Management Response Payload XML Numeric Numeric JSON [ { "SampleTime": "Datetime", "Latitude": Numeric, "Longitude": Numeric, "Elevation": Numeric, "Speed": Numeric, "Note": "String", "DeviceId": {"Value": Numeric }, "Id": {"Value":Numeric} }] Response Tag Details Tag Type Description SampleTime Datetime Time stamp of the obtained GPS sample Latitude Numeric Latitude in decimal degrees Longitude Numeric Longitude in decimal degrees Elevation Numeric Elevation in decimal degrees Speed Numeric Rate of change of the device position DeviceId Numeric Unique identification of the device Id Numeric Unique identification for the GPS co-ordinate obtained VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 399 Chapter 6: Device Management Retrieve Network Information of the Device Functionality – Retrieves the network information of the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/network The user can obtain the network details using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/network?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type [Macaddress, Udid, Serialnumber, ImeiNumber] id Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/network l Serial Number – https://host/api/mdm/devices/serialnumber/{serialNumber}/network l UDID – https://host/api/mdm/devices/udid/{udid}/network Response Payload XML Numeric Datetime Numeric Numeric Numeric Numeric String Numeric JSON { "phonenumber" : "String", "roamingstatus" : Boolean, "dataroamingenabled" : Boolean, "voiceroamingenabled" : Boolean, "ipaddress" : { "WifiIPAddress" : "String", "CellularIPAddress" : "String", "EthernetIPAddress" : "String" }, "cellularnetworkinfo" : { "CellularTechnology" : Numeric, "CurrentOperator" : "String", "CurrentSIM" : "String", "ApprovedSims" : [ VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 401 Chapter 6: Device Management { "SimCardId" : "String" }, { "SimCardId" : "String" } ], "CarrierVersion" : "String", "SignalStrength" : "String", "DeviceMCC" : { "SIMMCC" : "String", "CurrentMCC" : "String" } "DeviceMNC" : { "SimMNC" : "String", "CurrentMNC" : "String" } }, "wifiinfo" : { "WifiMacAddress" : "String", "SignalStrength" : "String" }, "Links" : [], "id" : Numeric } Response Tag Details Tag Type Description PhoneNumber String Phone number of the device RoamingStatus Boolean The current roaming status. Values: True or False DataRoamingEnabled Boolean Denotes if the data roaming is enabled. Values: True or False VoiceRoamingEnabled Boolean Denotes if the voice roaming is enabled. Values: True or False WifiIPAddress String The IP address for Wi-Fi connectivity CellularIPAddress String The IP address for cellular connectivity EthernetIPAddress String The IP address for Ethernet connectivity CellularTechnology Numeric The current cellular technology CurrentOperator String Name of the current operator CurrentSIM String Current SIM number of the device SimCardId String Unique identification number of the SIM card CarrierVersion String Version of the SIM Carrier SignalStrength String Signal strength of the SIM VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 402 Chapter 6: Device Management SIMMCC String SIM MCC number CurrentMCC String Current MCC Number SimMNC String SIM MNC number CurrentMNC String Current MNC number wifiinfo SignalStrength String Signal strength of the wifi connectivity VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 403 Chapter 6: Device Management Retrieve Profile Details of the Device Functionality – Retrieves the profile related information of the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/profiles?page={page}&pagesize={pagesize} l Pattern (Contains) Match Parameter – page, pagesize You can obtain the device profile details using the following parameter: l Alternate Device Id – https://host/api/mdm/devices/profiles?searchby={searchby}&id={id}&page= {page}&pagesize={pagesize} o Pattern (Contains) Match Parameter – id, page, pagesize, searchby URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/profiles l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/profiles l UDID – https://host/api/mdm/devices/UDID/{UDID}/profiles Response Payload XML Numeric String Boolean Boolean Boolean String String String None VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 400 Chapter 6: Device ManagementString String String String String String String String String String String Numeric Numeric Numeric Numeric Numeric String String String Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 404 Chapter 6: Device Management JSON "DeviceProfiles": [ { "Status":Numeric, "Name": " String ", "Description": " String ", "LocationGroupId": {"Id": {"Value": Numeric}}, "CurrentVersion": Numeric "AssignmentType": Numeric, "Id": {"Value": Numeric} }] "Page": Numeric, "PageSize":Numeric, "Total": Numeric } Response Tag Details Tag Type Description Device Id Numeric Unique identification of the device Status String/Numeric Current status of the profile on device. Status should be of string for XML response. For example, Installed, Pending Removal etc. Status should be of Numeric for JSON response. Values for JSON response are: 0 = unknown 1 = pendinginstall 2 = unconfirmedinstall 3 = confirmedinstall 4 = pendingremoval 5 = unconfirmedremoval 6 = confirmedremoval Name String Name of the profile Description String Description of the profile LocationGroupId Numeric Unique identification of the organization group to which the profile is assigned CurrentVersion Numeric Current version of the profile AssignmentType String/Numeric Assignment type of the profile. Values are: Auto, Optional, Interactive, Compliance. Should be String for XML response and Numeric for JSON response. Id Numeric Unique identification of the profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 405 Chapter 6: Device Management Page Numeric Page number of the search result PageSize Numeric Number of profile details shown on each page Total Numeric Total number of profiles on the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 406 Chapter 6: Device Management Retrieve Enrollment User Details of the Device Functionality – Retrieves the details of the enrollment user associated to the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/user You can obtain the device enrollment user details using the following parameter: l Alternate Device Id – https://host/api/mdm/devices/user?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/user l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/user l UDID – https://host/api/mdm/devices/UDID/{UDID}/user Response Payload XML VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 407 Chapter 6: Device Management JSON { "DeviceUser":{"Id": Numeric, "UserName":" String ", "FirstName":" String ", "LastName":" String ", "Status": Boolean, "Email":" String ", "SecurityType": String, "ContactNumber":" String ", "Group":" String ", "Role":" String ", "MessageType": String, "EmailUserName" : "String", "EnrolledDevicesCount":"String", "LocationGroupId" : "String", "ExternalId" : "String" } } Response Tag Details Tag Type Description DeviceUser Id Numeric Unique identification associated with the enrollment user UserName String Username of the enrollment user Status Boolean Denotes if the user is active. Values include True or False Email String Email of the enrollment user SecurityType String/Numeric Security type of the enrollment User. In XML payload, you can pass String values ("Basic" for a basic enrollment User, and "Directory" for a directory enrollment user) and Numeric values (1 for directory enrollment users and 2 for Basic enrollment users). For JSON payload, you can pass only Numeric values. ContactNumber String Contact number of the enrollment user Group String Unique identification of the Organization Group associated with the enrollment user Role String Role of the enrollment user MessageType String The type of message. Values include Email, SMS, None EnrolledDevicesCount String Number of devices enrolled to the user EmailUserName String Email username of the enrollment user Group String Group of the enrollment user ExternalId String Track Id of the device enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 408 Chapter 6: Device Management Retrieve Enrolled Device Count Functionality – Retrieves count of all enrolled devices based on any or all of the OG ids, tag names, and devices registered after 'SeenSince' datetime until the 'SeenTill' datetime. HTTP Method – POST API URI – https://host/api/mdm/devices/enrolleddevicescount Request Payload XML Numeric String String String Boolean String String String String String String String String String String JSON { "OrganizationGroupId" : "String", "TagName" : "String", "DeviceSeenSince" : "String", "DeviceSeenTill" : "String", "id" : Numeric } Request Tag Details Tag Mandatory Description OrganizationGroupId Yes Unique identifier of the organization group the device is enrolled to TagName Yes Desired unique name of the device tag DeviceSeenSince No Devices seen after the seensince datetime will be returned if present DeviceSeenTill No Devices seen till the seentill datetime will be returned if present VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 409 Chapter 6: Device Management id Yes Unique identifier of the device Response Payload XML Numeric String String String String Numeric JSON { "DevicesCount" : Numeric, "id" : Numeric } Response Tag Details Tag Type Description DevicesCount Numeric Number of enrolled devices id Numeric Unique identifier of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 410 Chapter 6: Device Management Retrieve Smart Group details Functionality – Retrieves the smart group details created in an organization group. HTTP Method – GET API URI – https://host/api/mdm/smartgroups/{id} Request Body – NA Response Payload XML Numeric Numeric JSON { "Name" : "String", "Devices":Numeric, "Exclusions":Numeric, "Assignments":Numeric, "SmartGroupID":Numeric, "CriteriaType" : "String", "ManagedByOrganizationGroupId":Numeric, "OrganizationGroups":[{ "Name":"String", "Id":Numeric }], "UserGroups":[{ "Name":"String", "Id":Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 412 Chapter 6: Device Management }], "Ownerships":["String"], "Platforms":["String"], "Models":["String"], "OperatingSystems":[{ "DeviceType":"String", "Operator":"String", "Value":"String" }], "Tags":[{ "Id":"String", }], "UserAdditions":[{ "Id":Numeric "Name":"String" }], "DeviceAdditions":[{ "Id":Numeric, "Name":"String" }], "UserExclusions":[{ "Id":Numeric, "Name":"String" }], "DeviceExclusions":[{ "Id":Numeric, "Name":"String" }] } Response Tag Details Tag Type Description Name String Unique name of the smart group Devices Numeric Number of devices filtered by the smart group Exclusions Numeric Number of devices that are excluded from the smart group’s list of devices Assignments Numeric Number of application assignments made to the smart group CriteriaType String Unique smart group type configured to the smart group SmartGroupID Numeric Unique numeric ID of the smart group ManagedByOrganizationGroupId Numeric Unique identification of the organization group where the smart group is managed ManagedByOrganizationGroupName String Name of the organization group where the smart group is managed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 413 Chapter 6: Device Management OrganizationGroups Id Numeric Unique identification of the organization group from which devices are filtered UserGroups Id Numeric Unique identification of the user groups assigned to the smart group Ownerships String The ownership type of the devices Platforms String The platform of the device. Refer Tables for complete list of device platforms Models String The model of the device. Refer Tables for complete list of device models OperatingSystems DeviceType String The platform of the device. Refer Tables for complete list of device platforms OperatingSystems Operator String Operator applied to the operating system value. Allowed values are "Equals", "GreaterThan", "LessThan", "GreaterThanOrEqualTo", and "LessThanOrEqualTo" OperatingSystems Value String The value of the operating system. Refer Tables for the complete list of operating systems UserAdditions Id Numeric Unique identification of the enrollment users whose devices need to be added to the smart group in addition to the devices added by the smart group filters UserAdditions Name String Name of the enrollment users whose devices need to be added to the smart group in addition to the devices added by the smart group filters DeviceAdditions Id Numeric Unique identification of the devices that need to be added to the smart group in addition to the devices added by the smart group filters DeviceAdditions Name String The friendly name of the devices that need to be added to the smart group in addition to the devices added by the smart group filters UserExclusions Id Numeric Unique identification of the enrollment users whose devices need to be removed from the smart group device list UserExclusions Name String The name of the enrollment users whose devices need to be removed from the smart group device list DeviceExclusions Id Numeric ID of the devices that need to be removed from the smart group device list DeviceExclusions Name String Friendly name of the devices that need to be removed from the smart group device list VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 414 Chapter 6: Device Management Retrieve Device Associated Smart Groups Functionality – Retrieves all the smart groups associated with the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/smartgroups URI Parameters Tag Type Description id Numeric Unique device identifier Request Payload – NA Response Payload XML String Numeric Numeric Numeric String Numeric String Numeric String Numeric String Numeric String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 411 Chapter 6: Device Management String String String Numeric String Numeric String/Name> Numeric String Numeric String JSON { "SmartGroup" : [ { "SmartGroupId" : { "Value" : Numeric }, "SmartGroupName" : "String" } ] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 415 Chapter 6: Device Management Response Tag Details Tag Type Description Value Numeric The numeric value of the smart group identifier SmartGroupName String The smart group name VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 416 Chapter 6: Device Management Retrieve Security Information Functionality – Retrieves the security information of the device identified by device ID. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/security The user can retrieve security information of the device using the following parameter: l Alternate Device Id – https://host/api/mdm/devices/security?searchby={searchby}&id={id} o Pattern (Contains) Match Parameter – searchby, id URI Parameters Tag Type Description searchBy String The alternate id type [Macaddress, Udid, Serialnumber, ImeiNumber] id String Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/security l Serial Number –https://host/api/mdm/devices/serialnumber/{serialnumber}/security l UDID – https://host/api/mdm/devices/udid/{udid}/security Request Body – NA Response Payload XML Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 417 Chapter 6: Device Management JSON { "IsCompromised":Boolean, "DataProtectionEnabled":Boolean, "BlockLevelEncryption":Boolean, "FileLevelEncryption":Boolean, "IsPasscodePresent":Boolean, "IsPasscodeCompliant":Boolean } Response Tag Details Tag Type Description IsCompromised Boolean Indicates if the device is compromised DataProtectionEnabled Boolean Indicates if Data Protection is Enabled on the device BlockLevelEncryption Boolean Indicates if Block Level encryption is enabled on the device FileLevelEncryption Boolean Indicates if File Level encryption is enabled on the device IsPasscodePresent Boolean Indicates if Passcode is present on the device IsPasscodeCompliant Boolean Indicates if the devices complies to the passcode compliance policy VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 418 Chapter 6: Device Management Change Device Passcode (*Refactored) Functionality – Changes the passcode of device which is used for unlocking it. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/changepasscode. This URI will be deprecated soon. Start using the *Supported API URI . *Supported API URI – https://host/api/mdm/devices/commands/id/changepasscode (HTTP Method Used – POST) You can also change the device passcode using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/commands/changepasscode?searchby={searchBy}&id= {id} URL Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device identifier for which passcode needs to be changed passcode New passcode value which needs to be set in the device deviceid The alternate id Response Obtained – NA Request Payload XML Boolean Boolean Boolean Boolean Boolean Boolean JSON { "Passcode":"String" } Request Tag Details Tag Mandatory Description Passcode No New passcode value which needs to be set in the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 419 Chapter 6: Device Management Clear Passcode on the Device (*Refactored) Functionality – Clears passcode of the device. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/clearpasscode. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{deviceid}/commands (HTTP Method Used – POST) URI Parameters Tag Description deviceid AirWatch Device Id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/clearpasscode l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/clearpasscode l UDID – https://host/api/mdm/devices/UDID/{UDID}/clearpasscode Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 420 Chapter 6: Device Management Enterprise Wipe a Device (*Refactored) Functionality – Sends an Enterprise Wipe command to the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/enterprisewipe. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands (HTTP Method Used – POST) Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/enterprisewipe l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/enterprisewipe l UDID – https://host/api/mdm/devices/UDID/{UDID}/enterprisewipe Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 421 Chapter 6: Device Management Enterprise Wipe in Bulk (*Refactored) Functionality – Sends an Enterprise Wipe command to multiple devices identified by device ID and alternate id. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/enterprisewipe. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/commands/enterprisewipe (HTTP Method Used – POST) You can enterprise wipe bulk devices using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/commands/enterprisewipe?searchby=deviceid URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/enterprisewipe l Serial Number – https://host/api/mdm/devices/serialnumber/enterprisewipe l UDID – https://host/api/mdm/devices/UDID/enterprisewipe Request Payload XML String JSON { "BulkValues":{"value": [Numeric,Numeric]} } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 422 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Value Yes ( at least 1) Desired device parameter. "DeviceID","MAC Address", "Serial Number" or "UDID" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 423 Chapter 6: Device Management Find Device (*Refactored) Functionality – Sends a Find Device command to the device. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/finddevice. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands/finddevice (HTTP Method Used – POST) You can also find a device using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/commands/finddevice?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The alternate ID finddevice The find device request deviceid AirWatch Device Id Response Obtained – NA Request Payload XML Numeric Numeric JSON { "Platform":"String", "Application":"String", "Message":" String", "NumberOfRepetitions":Numeric, "GapBetweenRepetitions":Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 424 Chapter 6: Device Management } Request Tag Details Tag Mandatory Description Platform Yes The device platform. For example, Apple, Android etc. Application Yes The command is sent to the AirWatch Agent Message Yes Desired message to be sent to the device NumberOfRepetitions Yes Desired message to be sent to the device GapBetweenRepetitions Yes Gap between each repetition of the beep VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 425 Chapter 6: Device Management Lock Device (*Refactored) Functionality – Sends a Lock Device command to the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/lockdevice. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands URI Parameters Tag Description id device id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/lockdevice l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/lockdevice l UDID – https://host/api/mdm/devices/UDID/{UDID}/lockdevice Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 426 Chapter 6: Device Management Lock Devices in Bulk (*Refactored) Functionality – Locks a list of devices. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/lockdevice. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{deviceid}/commands URI Parameters Tag Description id Alternate id command The command to execute (lock, enterpriseWipe, devicewipe, devicequery, clearpasscode, syncDevice, stopAirPlay) Searchby The alternate id type (macaddress, Udid, serialnumber, imeinumber) Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/lockdevice l Serial Number – https://host/api/mdm/devices/serialnumber/lockdevice l UDID – https://host/api/mdm/devices/UDID/lockdevice Request Payload XML String String String Numeric Numeric JSON { "BulkValues":{"value": [Numeric,Numeric]} } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 427 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Value Yes( at least 1) Desired device parameter. "DeviceID","MAC Address", "Serial Number" or "UDID" Response Payload XML Numeric Numeric JSON { "TotalItems": Numeric, "AcceptedItems": Numeric, "FailedItems": Numeric, "Faults": { "Fault": [ { "ErrorCode": Numeric, "ItemValue": Numeric, "Message": "String" }] } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 428 Chapter 6: Device Management Response Tag Details Tag Type Description TotalItems Numeric Total number of device parameters sent in the request AcceptedItems Numeric Number of devices to which the lock command was successfully sent FailedItems Numeric Number of devices that could not be locked Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP status code for the failed element Message String Reason for the device not being locked VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 429 Chapter 6: Device Management Query Device (*Refactored) Functionality – Sends a Query Device command to the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/query. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands URI Parameters Tag Description id Device Id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/query l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/query l UDID – https://host/api/mdm/devices/UDID/{UDID}/query l IMEI Number – https://host/api/mdm/devices/imeinumber/{imei}/query Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 430 Chapter 6: Device Management Device Wipe (*Refactored) Functionality – Sends a Device Wipe command to the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/devicewipe. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands URI Parameters Tag Description id AirWatch Device Id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/devicewipe l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/devicewipe l UDID – https://host/api/mdm/devices/UDID/{UDID}/devicewipe Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 431 Chapter 6: Device Management Delete Device Functionality – Deletes the device information from the AirWatch Console and un-enrolls the device. HTTP Method – DELETE API URI – https://host/api/mdm/devices/{id} You can delete a device using the following parameter: l Alternate device ID type – https://host/api/mdm/devices?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The alternate id of the device Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress} l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber} l UDID – https://host/api/mdm/devices/UDID/{UDID} Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 432 Chapter 6: Device Management Delete Devices in Bulk (*Refactored) Functionality – Deletes multiple devices identified by device ID or alternate ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/delete. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/bulk?searchby={searchby} URI Parameters Tag Description searchby OPTIONAL. The alternate id type [Macaddress, Udid, Serialnumber, ImeiNumber] If not included, device id is used. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/delete l Serial Number – https://host/api/mdm/devices/serialnumber/delete l UDID – https://host/api/mdm/devices/UDID/delete Request Payload XML Numeric Numeric Numeric String Numeric Numeric String JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 433 Chapter 6: Device Management Value Yes( at least 1) Desired device parameter. "DeviceID","MAC Address", "Serial Number" or "UDID" Response Payload XML Numeric Numeric JSON { "TotalItems": Numeric, "AcceptedItems": Numeric, "FailedItems": Numeric, "Faults": { "Fault": [ { "ErrorCode": Numeric, "ItemValue": Numeric, "Message": "String" }] } } Response Tag Details Tag Type Description VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 434 Chapter 6: Device Management TotalItems Numeric Total number of device parameters sent in the request AcceptedItems Numeric Number of devices to which delete command was successfully sent FailedItems Numeric Number of devices that could not be deleted Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP status code for the failed element Message String Reason for the device for not being deleted VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 435 Chapter 6: Device Management Sync Device (*Refactored) Functionality – Sends a Device Sync command to the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/syncdevice. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/deviceid/commands URI Parameters Tag Description id device id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/syncdevice l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/syncdevice l UDID – https://host/api/mdm/devices/UDID/{UDID}/syncdevice Request – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 436 Chapter 6: Device Management Send Email to the Device Enrollment User (*Refactored) Functionality – Sends an email to the device enrollment user. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/sendmessage/email. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{id}/messages/email (HTTP Method Used – POST) The user can also send an email to the enrollment user using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/messages/email?searchby={searchby}&id={id} Deprecated API URIs: l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/sendmessage/email l UDID – https://host/api/mdm/devices/udid/{udid}/sendmessage/email l Mac address – https://host/api/mdm/devices/macaddress/{macaddress}/sendmessage/email URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The alternate ID of the device email The email to send Response Obtained – NA Note: To make any email related API calls, it is necessary to have SMTP permissions set on the API server. Request Payload XML Numeric Numeric Numeric String Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 437 Chapter 6: Device Management JSON { "MessageBody":"String", "ToAddress":"String", "Subject":"String" } Request Tag Details Tag Mandatory Description MessageBody No The content of the message ToAddress Yes The recipients email address Subject No The subject of the email VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 438 Chapter 6: Device Management Send Email in Bulk (*Refactored) Functionality – Sends the desired email to devices identified by devices ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/sendmessage/email. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/messages/bulkemail?searchby={searchby} (HTTP Method Used – POST) Deprecated API URIs: l Serial Number – https://host/api/devices/serialnumber/sendmessage/email l UDID – https://host/api/devices/udid/sendmessage/email l Mac address – https://host/api/devices/macaddress/sendmessage/email URI Parameters Tag Description searchby The id type (Macaddress, Udid, Serialnumber, ImeiNumber, Deviceid) Response Obtained – NA Note: To make any email related API calls, it is necessary to have SMTP permissions set on the API server. Request Payload XML String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 439 Chapter 6: Device Management JSON { "MessageBody":"String", "ToAddress": "String", "Subject":"String", "BulkValues":{"value": "String","String"} } Request Tag Details Tag Mandatory Description MessageBody Yes The content of the message Subject Yes Subject of the email Value Yes( at least 1) Desired device parameter. "DeviceID","MAC Address", "Serial Number" or "UDID" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 440 Chapter 6: Device Management Send SMS to the Device (*Refactored) Functionality – Sends the SMS to the device enrollment user. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/sendmessage/sms. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/id/messages/sms (HTTP Method Used – POST) The user can send SMS to a device using the following parameters: l Alternate device ID type – https://host/api/mdm/devices/messages/sms?searchby={searchby}&id={id} Deprecated API URIS: l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/sendmessage/sms l UDID – https://host/api/mdm/devices/udid/{udid}/sendmessage/sms l Mac address – https://host/api/mdm/devices/macaddress/{macaddress}/sendmessage/sms URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The alternate ID of the device sms The SMS message to send Response Obtained – NA Request Payload XML String Text value String Numeric Numeric Important: When the Phone Number tag is not specified the mobile number of the device is used to send the SMS. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 441 Chapter 6: Device Management JSON { "MessageBody":"String", "PhoneNumber":"String" } Request Tag Details Tag Mandatory Description MessageBody Yes The content of the message to be sent to the device PhoneNumber No Phone number of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 442 Chapter 6: Device Management Send SMS in Bulk (*Refactored) Functionality – Sends the SMS to a list of devices. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/sendmessage/sms. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/messages/bulksms?searchby=deviceid (HTTP Method Used – POST) Deprecated API URIs: l Serial Number – https://host/api/mdm/devices/serialnumber/sendmessage/sms l UDID – https://host/api/mdm/devices/udid/sendmessage/sms l Mac address – https://host/api/mdm/devices/macaddress/sendmessage/sms URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) Response Obtained – NA Request Payload XML String String String String JSON { "MessageBody":"String", "PhoneNumber":"String", "BulkValues":{"value": "String", "String"} } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 443 Chapter 6: Device Management Request Tag Details Tag Mandatory Description MessageBody Yes Content of the message to be sent to the devices Application Yes Application to which the push message needs to be sent. For example, AirWatch Agent Value Yes (at least 1) Desired device parameter. For example, "DeviceID", "MAC Address", "Serial Number", "IMEI Number", or "UDID" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 444 Chapter 6: Device Management Send Push Message to the Device (*Refactored) Functionality – Sends a push message from the AirWatch Console to the device. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/sendmessage This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/messages/commands/id/message (HTTP Method Used – POST) You can also send push notification to a device using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/messages/push?searchby={searchby}&id={id} Deprecated API URIs: l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/sendmessage/push l UDID – https://host/api/mdm/devices/udid/{udid}/sendmessage/push l Mac address – https://host/api/mdm/devices/macaddress/{macaddress}/sendmessage/push URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The alternate ID of the device Response Obtained – NA Request Payload XML Numeric Numeric JSON { "MessageBody":"String", "MessageType":"String", "Application":"String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 445 Chapter 6: Device Management } Request Tag Details Tag Mandatory Description MessageBody Yes Content of the message to send to the device Application Yes Application to which the notification is pushed (AirWatch Agent, AirWatch Content Locker) MessageType Yes Type of the message (Email, SMS. and Push) VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 446 Chapter 6: Device Management Bulk Push Message to the Devices (*Refactored) Functionality – Sends the desired push notifications to a list of devices. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/sendmessage/push. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/messages/bulkpush?searchby={searchby} (HTTP Method Used – POST) Deprecated API URIs: l Serial Number – https://host/api/devices/serialnumber/sendmessage/push l UDID – https://host/api/devices/udid/sendmessage/push l Mac address – https://host/api/devices/macaddress/sendmessage/push URI Parameters Tag Description searchby The id type (Macaddress, Udid, Serialnumber, ImeiNumber, DeviceId) Request Payload XML String String> String JSON { "MessageBody":"String", "Application":"String", "MessageType":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 447 Chapter 6: Device Management "BulkValues":{"value":[ "String", "String" ] } } Request Tag Details Tag Mandatory Description MessageBody Yes The content of the message to send to the devices Application Yes Application to which the push message needs to be sent. Example, AirWatch Agent Value Yes (at least 1) Desired device parameter. "DeviceID", "MAC Address", "Serial Number", "IMEI Number" or "UDID" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 448 Chapter 6: Device Management Push Notification (*Refactored) Functionality – Sends a push notification to the device identified by device ID. If not enrolled, sends an SMS message instead. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/sendmessage. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/messages/{id}/message (HTTP Method Used – POST) You can also send push notification using the following parameter: l Alternate device Id – https://host/api/mdm/devices/messages/message?searchby={searchby}&id={id} URI Parameters Tag Description id The alternate device id command The command to execute [Lock, EnterpriseWipe, DeviceWipe, DeviceQuery, ClearPasscode, SyncDevice, StopAirPlay]. Searchby The alternate id type [DeviceId, Macaddress, Udid, Serialnumber]. Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/sendmessage l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/sendmessage l UDID – https://host/api/mdm/devices/UDID/{UDID}/sendmessage Response Obtained – NA Request Payload XML String String> String Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 449 Chapter 6: Device Management JSON { "MessageBody":"String", "MessageType" : "String", "ApplicationName":"String" } Request Tag Details Tag Mandatory Description MessageBody Yes Content of the message to be sent to the device ApplicationName Yes Application name to which the push message needs to be sent. For example - AirWatch Agent MessageType Yes Type of the message VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 450 Chapter 6: Device Management Execute Device Commands Functionality – Executes command for the device. HTTP Method – POST API URI – https://host/api/mdm/devices/{deviceid}/commands?command={command} You can execute device commands using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/commands?command={command}&searchby= {searchby}&id={id} URI Parameters Tag Description command The command to execute (lock, unenroll, remotewipe, devicequery, clearpasscode, syncdevice, enterpriseWipe, deviceWipe, stopAirplay, scheduleosupdate) searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber, Easid) id The alternate id Response Obtained – NA Request Body – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 451 Chapter 6: Device Management Execute Bulk Device Commands Functionality – Executes command for device by alternate id. HTTP Method – POST API URI – https://host/api/mdm/devices/commands/bulk?command={command}&searchby={searchby} URI Parameters Tag Description command The command to execute (enterpriseWipe, lockdevice, scheduleosupdate) searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) Request Payloads XML String String String JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Mandatory Description Value Yes Unique ID of the newly created device command VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 452 Chapter 6: Device Management Response Payload XML String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description AcceptedItems Numeric Number of commands successfully executed FailedItems Numeric Number of commands that are not executed Fault Numeric XML/JSON block providing the details of the commands that could not be executed Message String Reason for the commands for not being executed TotalItems Numeric Total number of commands sent in the request VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 453 Chapter 6: Device Management Schedule OS Update Command Functionality – Executes the schedule Os update command on specified iOS device which is supervised, DEP, and has version >= 9. HTTP Method – POST API URI – https://host/api/mdm/devices/commands/scheduleosupdate?searchby={searchBy}&id={id}&installaction= {installAction} URI Parameters Tag Description id The alternate id searchby The alternate id type (macaddress, udid, serialnumber, imeiNumber, easId, deviceId) installaction The install action type [default, downloadOnly, installASAP] Response Obtained – NA Request Body – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 454 Chapter 6: Device Management Bulk Schedule OS Update Command Functionality – Executes the Schedule Os Update command on list of iOS devices which are supervised, DEP and has version >= 9. HTTP Method – POST API URI – https://host/api/mdm/devices/commands/bulk/scheduleosupdate?searchby={searchBy}&installaction= {installAction} URI Parameters Tag Description searchby The alternate id type (macaddress, udid, serialnumber, imeiNumber, easId, deviceId) installaction Install action type (default, downloadOnly, installASAP) Request Payload XML Numeric Numeric Numeric String Numeric String String JSON { "BulkValues" : { "Value" : [ "String", "String" ] } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 455 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Value Yes Unique ID of the newly created device command Response Payload XML String String JSON { "TotalItems" : Numeric, "AcceptedItems" : Numeric, "FailedItems" : Numeric, "Faults" : { "Fault" : [ { "ErrorCode" : Numeric, "ItemValue" : "String", "Message" : "String" }, { "ErrorCode" : Numeric, "ItemValue" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 456 Chapter 6: Device Management "Message" : "String" } ] } } Response Tag Details Tag Type Description AcceptedItems Numeric Number of commands successfully executed FailedItems Numeric Number of commands that are not executed Fault Numeric XML/JSON block providing the details of the commands that could not be executed Message String Reason for the commands for not being executed TotalItems Numeric Total number of commands sent in the request VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 457 Chapter 6: Device Management Start Airplay Functionality – Executes start airplay for a specific device. HTTP Method – POST API URI – https://host/api/mdm/devices/{deviceid}/commands/startairplay URI Parameters Tag Description device id The unique identification number of the device Response Obtained – NA Request Payload XML Numeric Numeric Numeric String Numeric String String Numeric String String JSON { "DestinationName" : "String", "DestinationDeviceId" : "String", "Passcode" : "String", "Scantime" : "String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 458 Chapter 6: Device Management Request Tag Details Tag Mandatory Description DestinationName Yes Name of the destination device DestinationDeviceId Yes Unique identification number of the destination device Passcode Yes Passcode of the device Scantime Yes Scantime to perform airplay VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 459 Chapter 6: Device Management Send Remote Control Action Command (*Refactored) Functionality – Initiates the remote control action for the device identified by device ID, by sending the command string to Device-Agent through AWCM. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{id}/remotecontrol. This URI will be deprecated soon. Start using the *Supported API URI . *Supported API URI – https://host/api/mdm/devices/commands/remotecontrol (HTTP Method Used – POST) You can also send remote action command to devices using the following parameter: l Alternate device ID type – https://host/api/mdm/devices/commands/remotecontrol?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, IMEI number) id id of the device for which remote control action needs to be initiated Deprecated API URI: l Mac address – https://host/api/mdm/devices/macaddress/{macaddress}/remotecontrol l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/remotecontrol l UDID – https://host/api/mdm/devices/udid/{udid}/remotecontrol Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 460 Chapter 6: Device Management Add Note to the Device (*Refactored) Functionality – Creates a note for the device identified by device ID. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{deviceid}/addnote. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{deviceId}/notes The user can add notes to a device using the following parameter: l Alternate Device id – https://host/api/mdm/devices/notes?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/addnote l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/addnote l UDID – https://host/api/mdm/devices/UDID/{UDID}/addnote Response Obtained – NA Request Payload XML String String String String JSON { "DeviceId": Numeric , "Note":" String " } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 461 Chapter 6: Device Management Request Tag Details Tag Mandatory Description DeviceId Yes Unique identification of the device Note Yes Text of the note VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 462 Chapter 6: Device Management Delete Note From the Device Functionality – Deletes the specified note identified by its note ID from the device. HTTP Method – DELETE API URI – https://host/api/mdm/devices/{deviceid}/notes/{noteid} The user can delete notes from the device using the following parameter: l Alternate Device id – https://host/api/mdm/devices/notes/{noteid}?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/notes/{noteid} l Serial Number –https://host/api/mdm/devices/serialnumber/{SerialNumber}/notes/{noteid} l UDID – https://host/api/mdm/devices/UDID/{UDID}/notes/{noteid} Request Body – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 463 Chapter 6: Device Management Retrieve Notes From the Device Functionality – Retrieves details of all the notes from the device. HTTP Method – GET API URI – https://host/api/mdm/devices/{id}/notes The user can retrieve notes from the device using the following parameter: l Alternate Device id – https://host/api/mdm/devices/notes?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/notes l Serial Number – https://host/api/mdm/devices/serialnumber/{SerialNumber}/notes l UDID – https://host/api/mdm/devices/UDID/{UDID}/notes Request Body – NA Response Payload XML Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 464 Chapter 6: Device Management JSON { "DeviceId":{ Numeric}, "DeviceNotes":[{ "Id": Numeric, "DeviceId": Numeric, "TagId": Numeric, "Note":" String ", "CreatedOn":" Datetime ", "ModifiedOn":" Datetime " }] } Response Tag Details Tag Type Description DeviceId Numeric Unique identification of the device Id Numeric Unique identification of the note TagId Numeric Unique identification of the tag associated with the note Note String Text of the note CreatedOn Datetime Time stamp of note creation ModifiedOn Datetime Time stamp of last modified date of the note VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 465 Chapter 6: Device Management Retrieve a Specific Note From the Device Functionality – Retrieves a particular note for the device identified by device ID. HTTP Method – GET API URI – https://host/api/mdm/devices/{deviceid}/notes/{noteid} The user can retrieve a specific note from a device using the following parameter: l Alternate Device id – https://host/api/mdm/devices/notes/{noteid}?searchby={searchby}&id={id} Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/notes/{noteid} l Serial Number –https://host/api/mdm/devices/serialnumber/{serialnumber}/notes/{noteid} l UDID – https://host/api/mdm/devices/udid/{udid}/notes/{noteid} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id Request Body – NA Response Payload XML String Numeric Numeric Numeric String Datetime Datetime JSON { "Id":Numeric, "DeviceId":Numeric, "Note":"String", "CreatedOn":"Datetime", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 466 Chapter 6: Device Management "ModifiedOn":"Datetime" } Response Tag Details Tag Type Description DeviceId Numeric Unique identification of the device Id Numeric Unique identification of the note Note String Text of the note CreatedOn Datetime Time stamp of note creation ModifiedOn Datetime Time stamp of last modified date of the note VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 467 Chapter 6: Device Management Update Note onto the Device (*Refactored) Functionality – Updates details of the specified note on the device. HTTP Method – POST Deprecated API URI – https://host/api/mdm/devices/{deviceid}/notes/{noteid}/update. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{deviceId}/notes/{noteid} (HTTP Method Used – PUT) You can also update notes on a device using the following parameter: l Alternate Device id – https://host/api/mdm/devices/notes/{noteid}?searchby={searchby}&id={id} URI Parameters Tag Description searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id Device alternate id Deprecated API URIs: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/notes/{noteid}/update l Serial Number –https://host/api/mdm/devices/serialnumber/{SerialNumber}/notes/{noteid}/update l UDID – https://host/api/mdm/devices/UDID/{UDID}/notes/{noteid}/update Request Payload XML Numeric Numeric String Datetime Datetime JSON { "DeviceId" : Numeric, "Id" : Numeric, "Note":"String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 468 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Note Yes Text of the note Id Yes Unique identifier of the note DeviceId Yes Unique identifier of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 469 Chapter 6: Device Management Search Device Details Functionality – Searches for devices using the query information provided. HTTP Method – GET API URI – https://host/api/mdm/devices/search?user={user}&model={model}&platform={platform}&lastseen= {lastseen}&ownership={ownership}&Igid={Igid}&compliantstatus={compliantstatus}&seensince={seensince}&page= {page}&pagesize={pagesize}&orderby={orderby}&sortorder={sortorder} l Exact Match Parameter – model, platform, ownership, compliancestatus, sortorder l Pattern (Contains) Match Parameter – user, lastseen, Igid, seensince, page, pagesize, orderby Request Body – NA URI Parameters Tag Type Description user String Enrolled username model String Device model platform String Device platform lastseen Datetime Last seen date string ownership String Device ownership Igid Integer Organization group to be searched, user's OG is considered if not sent compliantstatus Boolean Complaint status seensince Datetime Specifies the date filter for device search, which retrieves the devices that are seen after this date page Numeric Page number pagesize Numeric Records per page orderby String Order by column name sortorder String Sorting order. Values ASC or DESC. Defaults to ASC. Accepted DateTime formats: "yyyy/MM/dd", "yyyy-MM-dd", "MM/dd/yyyy", "MM-dd-yyyy", "yyyy/MM/dd HH:mm:ss.fff", "yyyy-MM-dd HH:mm:ss.fff", "MM/dd/yyyy HH:mm:ss.fff", "MM-dd-yyyy HH:mm:ss.fff", "yyyy/MM/ddTHH:mm:ss.fff", "yyyy-MM-ddTHH:mm:ss.fff", "MM/dd/yyyyTHH:mm:ss.fff", "MM-ddyyyyTHH:mm:ss.fff", "yyyy-MM-dd HH-mm-ss-tt" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 470 Chapter 6: Device Management Response Payload XML Numeric Numeric String Numeric Numeric Numeric Numeric String String String String String String String String String String String String String String String String String String Datetime String Boolean Boolean Datetime Datetime Datetime VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 471 Chapter 6: Device Management Numeric Boolean String String Datetime Datetime String String Boolean JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "Devices":{ "Id":Numeric, "Udid":"String", "SerialNumber":"String", "MacAddress":"String", "Imei":"String", "AssetNumber":"String", "DeviceFriendlyName":"String", "LocationGroupId":{ }, "LocationGroupName":"String", "UserId":{ }, "UserName":"String", "UserEmailAddress":"String", "Ownership":"String", "PlatformId":{ }, "Platform":"String", "ModelId":{ }, "Model":"String", "OperatingSystem":"String", "PhoneNumber":"String", "LastSeen":"Datetime", "EasId":"String", "EnrollmentStatus":"String", "ComplianceStatus":"Boolean", "CompromisedStatus":Boolean, "LastEnrolledOn":"Datetime", "LastComplianceCheckOn":"Datetime", "LastCompromisedCheckOn":"Datetime", "ComplianceSummary":[{ "Id":Numeric, "CompliantStatus":Boolean, "PolicyName":"String" "PolicyDetail":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 472 Chapter 6: Device Management "LastComplianceCheck":"Datetime", "NextComplianceCheck":"Datetime", "ActionTaken":{ "ActionType":String } }], "IsSupervised":Boolean } } Response Tag Details Tag Type Description Id Numeric Unique identification number of the device Udid String UDID of the device SerialNumber String Serial number of the device MacAddress String MAC address of the Device Imei String IMEI number of the device AssetNumber String Asset number of the device DeviceFriendlyName String Friendly name assigned to the device LocationGroupId String Unique identification of the organization group to which the device is assigned LocationGroupName String Name of the organization group to which the device is assigned UserId String Id of the enrollment user to whom the device is assigned UserName String Name of the enrollment user to whom the device is assigned UserEmailAddress String Email address of the enrollment user Ownership String Ownership type of the device. Values: Corporate-Shared, CorporateDedicated, Employee Owned PlatformId String Unique identification associated with the platform Platform String Name of the device platform ModelId String Unique identification associated with the model Model String OEM model name OperatingSystem String Version of the operating system on the model PhoneNumber String Phone number of the device LastSeen Datetime Last seen time stamp of the device EnrollmentStatus String Current enrollment status of the device. Enrolled, Unenrolled etc VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 473 Chapter 6: Device Management ComplianceStatus Boolean Overall compliance status of the device CompromisedStatus Boolean Compromised status of the device. Values: True/False LastEnrolledOn Datetime Time stamp of the last enrollment of the device LastComplianceCheckOn Datetime Time stamp of the last compliance check LastCompromisedCheckOn Datetime Time stamp of the last compromised status check Id Numeric Unique identification of the device CompliantStatus Boolean Compliance status of the device PolicyName String Name of the compliance policy PolicyDetail String Details of the compliance policy LastComplianceCheck Datetime Time stamp of the last compliance check NextComplianceCheck Datetime Scheduled time of the next compliance check ActionTaken String Compliance policy action taken on the device ActionType String Type of compliance action taken on the device IsSupervised Boolean Specifies if the device is supervised or not Page Numeric Page number of the search result PageSize Numeric Number of profile details shown on each page Total Numeric Total number of profiles on the device C# Sample Code using using using using using System; System.IO; System.Net; System.Text; System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string USER_NAME = "UserName1"; private const string PASSWORD = "Password1"; private const string API_TENANT_CODE = "API-Key"; private const string HOST = "https://host"; private const string MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 474 Chapter 6: Device Management request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void DeviceSearch() { try { var firstname = ""; var lastname = ""; var emailaddress = ""; var organizationgroupid = ""; var role = ""; var username = ""; var orderby = ""; var page = ""; var pagesize = ""; var sortorder = ""; var request = WebRequest.Create(HOST + string.Format ("/api/system/admins/search?firstname={0}&lastname={1}&email= {2}&organizationgroupid={3}&role={4}&" + "username={5}&orderby={6}&page={7}&pagesize={8}&sortorder= {9}", firstname, lastname, emailaddress, organizationgroupid, role, username, orderby, page, pagesize, sortorder)) as HttpWebRequest; request.Method = "GET"; InitializeRequest(request); request.Accept = MIME_TYPE; var response = (HttpWebResponse)request.GetResponse(); var streamReader = new StreamReader(response.GetResponseStream ()); Console.WriteLine(streamReader.ReadToEnd()); streamReader.Close(); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 475 Chapter 6: Device Management catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 476 Chapter 6: Device Management Search Compliance Policy Functionality – Searches for the compliance policies with the search parameters passed. HTTP Method – GET API URI – https://host/api/mdm/compliancepolicy/search?organizationgroupid={ogid}&page={page}&pagesize= {pagesize} Request Body – NA URI Parameters Tag Type Description ogid Numeric Organization group id which is similar to selected organization group selected in console. page Numeric page number pagesize Numeric Maximum results which should be returned in each page Response Payload XML JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "CompliancePolicy":[{ "AssignedDevices":Numeric, "CompliantDevices":Numeric, "Description":"String", "DevicePolicyId":Numeric, "IsActive":Boolean, "Name":"String", "NonCompliantDevices":Numeric, "Platform":"String", "RootLocationGroupId":Numeric, "RootLocationGroupName":"String" }] } Response Tag Details Tag Type Description Page Numeric The specific page number to be retrieved PageSize Numeric Maximum records per page to be displayed Total Numeric Total number of records present in the search result CompliancePolicy String Type of the compliance policy to be searched for AssignedDevices Numeric Number of devices assigned with the compliance policy CompliantDevices Numeric Number of devices that are compliant Description String Description of the compliance policy DevicePolicyId Numeric Unique identification number of the device policy IsActive Boolean True / False Name String Name of the compliance policy NonCompliantDevices Numeric Number of non-compliant devices Platform String Platform of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 478 Chapter 6: Device Management RootLocationGroupId Numeric Unique identification number of the root location group where the compliance policy is configured RootLocationGroupName String Name of the root location group where the compliance policy is configured VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 479 Chapter 6: Device Management Device Extensive Search Functionality – Search results containing the devices and their product assignment information. HTTP Method – GET API URI – https://host/api/mdm/devices/extensivesearch?organizationgroupid={organizationgroupid}&platform= {platform}&startdatetime={startdatetime}&enddatetime={enddatetime}&deviceid={deviceid}&customattributes= {customattributeslist}&enrollmentstatus={enrollmentstatus}&enrollmentstatuschangefrom= {statuschangestarttime}&enrollmentstatuschangeto={statuschangeendtime}&page={page}&pagesize={pagesize} l l Exact Match Parameter – platform, enrollmentstatus Pattern (Contains) Match Parameter – organizationgroupid, startdatetime, enddatetime,deviceid, customattributes, enrollmentstatuschangefrom, enrollmentstatuschangeto, page, pagesize Request Body – NA URI Parameters Tag Type Description organizationgroupid Numeric Organization Group to be searched, user's OG is considered if not sent platform String Device platform customattributeslist String Custom attribute names startdatetime Datetime Filters devices such that devices with last seen after this date will be returned enddatetime Datetime Filters devices such that devices with last seen till this date will be returned deviceid Numeric Device Identifier enrollmentstatus Boolean Filters devices based on their EnrollmentStatus statuschangestarttime Datetime Filters the devices for which EnrollmentStatus has changed from enrollmentstatuschangefrom datetime [Valid only in case of enrollmentStatus filter = enrolled or unenrolled] statuschangeendtime Datetime Filters the devices for which EnrollmentStatus has changed till enrollmentstatuschangeto datetime [Valid only in case of enrollmentStatus filter = enrolled or unenrolled] page Numeric The specific page number to get pagesize Numeric Max records per page Accepted DateTime formats: "yyyy/MM/dd", "yyyy-MM-dd", "MM/dd/yyyy", "MM-dd-yyyy", "yyyy/MM/dd HH:mm:ss.fff", "yyyy-MM-dd HH:mm:ss.fff", "MM/dd/yyyy HH:mm:ss.fff", "MM-dd-yyyy HH:mm:ss.fff", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 480 Chapter 6: Device Management "yyyy/MM/ddTHH:mm:ss.fff", "yyyy-MM-ddTHH:mm:ss.fff", "MM/dd/yyyyTHH:mm:ss.fff", "MM-ddyyyyTHH:mm:ss.fff", "yyyy-MM-dd HH-mm-ss-tt" Response Payload XML Numeric Numeric Numeric Numeric String String Boolean String Numeric String Numeric Numeric Numeric Numeric String String Boolean String Numeric String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 477 Chapter 6: Device ManagementNumeric Numeric JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "Devices":[{ "AssetNumber":"String", "Compliant":Boolean, "CustomAttributes":[{ "Name":"String", "Value":"String" }], "DeviceFriendlyName":"String", "DeviceId":Numeric, "DeviceNetworkInfo":[{ "ConnectionType":"String", "IPAddress":"String", "MACAddress":"String" }], "EnrollmentDate":"Datetime", "EnrollmentStatus":"Boolean", "LastSeen":"Datetime", "OrganizationGroupId":Numeric, "Products":[{ "Name":"String", "ProductId":Numeric, "Status":"String" }], "SerialNumber":"String", "SmartGroups":[{ "Name":"String", "SmartGroupId":Numeric }], "Udid":"String", "UnEnrolledDate":"Datetime", "UserName":"String" }] } Response Tag Details Tag Type Description DeviceId Numeric Unique numeric ID of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 482 Chapter 6: Device Management Udid String UDID of the device DeviceFriendlyName String Friendly name of the device OrganizationGroupId Numeric Unique identification of the organization group from where the devices are filtered UserName String Username of the device LastSeen Datetime Last seen time stamp of the device EnrollmentDate Datetime Time stamp of the device enrollment date Compliant Boolean Status of the device compliant policy DeviceNetworkInfo ConnectionType String Name of the connection displayed on the device DeviceNetworkInfo IPAddress String IP address of the device DeviceNetworkInfo MACAddress String MAC address of the device ProductId Numeric Unique identification number of the product Products Name String Name of the product Products Status String Status of the product SmartGroupId Numeric Unique identification number of the Smart group SmartGroupId Name String Name of the smart group CustomAttributes Name String Name of the custom attributes CustomAttributes Value String Value of the custom attributes EnrollmentStatus String Enrollment status on the device UnEnrolledDate Datetime Time stamp of the device last enrollment date VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 483 Chapter 6: Device Management Search Security Information Functionality – Searches for device security information. HTTP Method – GET API URI – https://host/api/mdm/devices/securityinfosearch?organizationgroupid={organizationgroupid}&user= {user}&model={model}&platform={platform}&lastseen={lastseen}&ownership={ownership}&compliantstatus= {compliantstatus}&seensince={seensince}&page={page}&pagesize={pagesize} l Exact Match Parameter – model, platform, ownership, compliantstatus l Pattern (Contains) Match Parameter – organizationgroupid, user, lastseen, seensince, page, pagesize Request Body – NA URI Parameters Tag Type Description organizationgroupid Numeric Organization group to be searched, user's OG is considered if not sent user String Enrolled username model String Device model platform String Device platform lastseen Datetime Last seen date string ownership String Ownership type of the device compliantstatus Boolean Complaint status [True or False] seensince Datetime Specifies the date filter for device search, which retrieves the devices that are seen after this date page Numeric The specific page number to get pagesize Numeric Max records per page Response Payload XML VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 481 Chapter 6: Device Management Numeric String String Numeric String Datetime Datetime Boolean String Boolean Datetime String String String Numeric String String Numeric String String String JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "SecurityInfo":[{ "CompromisedStatus":"Boolean", "DeviceId":Numeric, "EncryptionStatus":"Boolean", "PasscodeComplianceStatus":"Boolean", "PasscodeStatus":"Boolean" }] } Response Tag Details Tag Type Description Page Numeric Page number of the search result PageSize Numeric Number of content details shown on each page Total Numeric Total number of documents on the device CompromisedStatus Boolean Compromised status of the device. Values: True/False DeviceId Numeric Unique identification number of the device to be searched for EncryptionStatus Boolean Encryption status of the device. Values: True/False PasscodeComplianceStatus Boolean Passcode compliance status of the device PasscodeStatus Boolean Passcode status of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 485 Chapter 6: Device Management Search Network Information Functionality – Returns device network information along with corresponding device ID. HTTP Method – GET API URI – https://host/api/mdm/devices/networkinfosearch?user={user}&model={model}&platform= {platform}&lastseen={lastseen}&ownership={ownership}&lgid={lgid}&compliantstatus={compliantstatus}&seensince= {seensince}&page={page}&pagesize={pagesize}&sortorder={sortorder} l Exact Match Parameter – model, platform, ownership, compliancestatus, sortorder l Pattern (Contains) Match Parameter – user, lastseen, lgid, seensince, page, pagesize Request Body – NA URI Parameters Tag Type Description user String Username of the Enrolled user model String Device model platform String Device platform lastseen Datetime Last seen date string ownership String Defines the ownership typeof the device lgid Numeric Unique numeric Identifier of the Organization Group compliantstatus Boolean Complaint status.(true/false) seensince Datetime Specifies the date filter for device network info search, which retrieves the devices that are seen after this date page Numeric Page number pagesize Numeric Records per page sortorder String Sorting order. Values ASC or DESC. Defaults to ASC Response Payload XML Numeric Numeric Numeric Numeric Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 484 Chapter 6: Device ManagementBoolean Boolean Boolean JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "DeviceNetworkDetails":[{ "Id":{ "Value": Numeric, "IPAddress":{ "WifiIPAddress":"String", "CellularIPAddress":"String", "EthernetIPAddress":"String" } }] } Response Tag Details Tag Type Description Page Numeric Page number of the retrieved response PageSize Numeric Size of the current page Total Numeric Total Results obtained from the search DeviceNetwork Id Numeric Unique identification number of the Network DeviceNetwork IPAddress String IP address of the device network WifiIPAddress String The IP address of the Wi-Fi connectivity CellularIPAddress String The IP address for cellular connectivity EthernetIPAddress String The IP address for Ethernet connectivity VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 487 Chapter 6: Device Management Device Extensive Search (Lite) Functionality – Search results containing the devices and their product assignment information (Lite Version). HTTP Method – GET API URI – https://host/api/mdm/devices/litesearch?organizationgroupid={organizationgroupid}&platform= {platform}&startdatetime={startdatetime}&enddatetime={enddatetime}&deviceid={deviceid}&customattributes= {customattributeslist}&page={page}&pagesize={pagesize} l l Exact Match Parameter – platform Pattern (Contains) Match Parameter – organizationgroupid, startdatetime, enddatetime, deviceid, customattributes, page, pagesize Request Body – NA URI Parameters Tag Type Description organizationgroupid Numeric Organization Group to be searched, user's OG is considered if not sent platform String Device platform customattributeslist String Custom attribute names startdatetime Datetime Filters devices such that devices with last seen after this date will be returned enddatetime Datetime Filters devices such that devices with last seen till this date will be returned deviceid Numeric Device Identifier page Numeric The specific page number to get pagesize Numeric Max records per page Accepted DateTime formats: "yyyy/MM/dd", "yyyy-MM-dd", "MM/dd/yyyy", "MM-dd-yyyy", "yyyy/MM/dd HH:mm:ss.fff", "yyyy-MM-dd HH:mm:ss.fff", "MM/dd/yyyy HH:mm:ss.fff", "MM-dd-yyyy HH:mm:ss.fff", "yyyy/MM/ddTHH:mm:ss.fff", "yyyy-MM-ddTHH:mm:ss.fff", "MM/dd/yyyyTHH:mm:ss.fff", "MM-ddyyyyTHH:mm:ss.fff", "yyyy-MM-dd HH-mm-ss-tt" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 488 Chapter 6: Device Management Response Payload XML Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 486 Chapter 6: Device Management Numeric String String String JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "Devices":[{ "CustomAttributes":[{ "Name":"String", "Value":"String" }], "DeviceFriendlyName":"String", "DeviceId":Numeric, "DeviceNetworkInfo":[{ "ConnectionType":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 489 Chapter 6: Device Management "IPAddress":"String", "MACAddress":"String" }], "LastSeen":"Datetime", "OrganizationGroupId":Numeric, "Udid":"String" }] } Response Tag Details Tag Type Description CustomAttributes Name String Name of the custom attribute to be searched for CustomAttributes Value String Value of the custom attribute passed to be searched for DeviceFriendlyName String Friendly name of the device DeviceId Numeric Unique identification number of the device ConnectionType String Type of connection enabled by the payload IPAddress String IP address of the device network MACAddress String MAC address of the device network LastSeen Datetime Last seen time stamp of the device OrganizationGroupId Numeric Unique location group number of the device Udid String UDID of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 490 Chapter 6: Device Management Custom Attribute Search Functionality – Searches for device custom attributes. HTTP Method – GET API URI – https://host/api/mdm/devices/customattribute/search?organizationgroupid= {organizationgroupid}&deviceid={deviceid}&serialnumber={serialnumber}&startdatetime= {startdatetime}&enddatetime={enddatetime} l Pattern (Contains) Match Parameter – organizationgroupid, deviceid, serialnumbe, startdatetime, enddatetime Request Body – NA URI Parameters Tag Type Description organizationgroupid Numeric Organization group to be searched, user's OG is considered if not sent. deviceid Numeric Device ID to search for serialnumber String Device serial number to search for startdatetime Datetime DateTime, filters the custom attributes which are modified by after this datetime enddatetime Datetime DateTime, filters the custom attributes which are modified by before this datetime Response Payload XML Numeric Numeric Numeric Numeric String String Numeric String String String Datetime String String JSON { "Devices":[{ "AssetNumber":"String", "CustomAttributes":[{ "Application":"String", "Name":"String", "Value":"String" "Source" : "String }], "DeviceId":Numeric, "EnrollmentUserName":"String", "SerialNumber":"String", "Udid":"String" }] } Response Tag Details Tag Type Description CustomAttributes Name String Name of the custom attribute to be searched for AssetNumber String Asset number of the device DeviceId Numeric Unique identification number of the device EnrollmentUserName String Name of the device enrollment user SerialNumber String Serial number of the device Udid String UDID of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 492 Chapter 6: Device Management Search Changes Made To Custom Attribute Functionality – Searches for changes made to device custom attributes. HTTP Method – GET API URI – https://host/api/mdm/devices/customattribute/changereport?organizationgroupid= {organizationgroupid}&deviceid={deviceid}&startdatetime={startdatetime}&enddatetime={enddatetime} Request Body – NA URI Parameters Tag Type Description organizationgroupid Numeric Organization group to be searched, user's OG is considered if not sent. deviceid Numeric Device ID to search for startdatetime Datetime DateTime, filters the custom attributes which are modified by after this datetime enddatetime Datetime DateTime, filters the custom attributes which are modified by before this datetime Response Payload XML Numeric String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 491 Chapter 6: Device Management String String String String JSON { "DeviceCustomAttributeChanges" : [ { "DeviceID" : "String", "FriendlyName" : "String", "CustomAttributeChanges" : [ { "CustomAttributeName" : "String", "OldValue" : "String", "NewValue" : "String", "ModifiedDate" : "String", "LocationGroupID" : "String", "LocationGroupName" : "String", "ApplicationGroup" : "String", "Source" : "String" } ] }] } Response Tag Details Tag Type Description DeviceID String Unique identification number of the device FriendlyName String Friendly name of the device CustomAttributeName String Name of the device custom attribute OldValue String Old value of the custom attribute NewValue String New value of the custom attribute ModifiedDate String Timestamp of the last modified date of the custom attribute LocationGroupID String Unique identifier of the organization group LocationGroupName String Name of the organization group ApplicationGroup String Name of the application group Source String Source from where the changes are made to the custom attribute VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 494 Chapter 6: Device Management Update Device Custom Attribute (*Refactored) Functionality – Updates the device custom attribute value if already present for a device, else adds the same to the device. HTTP Method – PUT Deprecated API URI – https://host/api/mdm/devices/{id}/updatecustomattributes. This will be deprecated soon. Start using the Supported API URI. *Supported API URI – https://host/api/mdm/devices/{id}/customattributes You can also update device custom attributes using the following parameters: l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/customattributes l Asset Number – https://host/api/mdm/devices/assetnumber/{assetnumber}/customattributes Request Payload XML VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 493 Chapter 6: Device Management String String String String String String String String String String JSON { "CustomAttributes":[{ "Name":"String", "Value":"String", "ApplicationGroup" : "String" }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 495 Chapter 6: Device Management Request Tag Details Tag Mandatory Description Name Yes Name of the custom attribute to be updated Value Yes Value of the custom attribute ApplicationGroup Yes Application group of the device Response Payload XML String String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 496 Chapter 6: Device Management Response Tag Details Tag Type Description TotalItems Numeric Total number of device parameters sent in the request AcceptedItems Numeric Number of devices accepted for updating device custom attribute FailedItems Numeric Number of devices that could not be updated with custom attribute Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP status code for the failed element Message String Reason for the device not being updated VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 497 Chapter 6: Device Management Delete Custom Attribute (*Refactored) Functionality – Deletes the device custom attributes. HTTP Method – Delete Deprecated API URI – https://host/api/mdm/devices/{id}/deletecustomattributes. This will be deprecated soon. Start using the Supported API URI. *Supported API URI – https://host/api/mdm/devices/{id}/customattributes You can delete the device custom attribute using the following parameter: l Serial Number – https://host/api/mdm/devices/serialnumber/{serialnumber}/customattributes Request Payloads XML Numeric Numeric Numeric String Numeric String String JSON { "CustomAttributes":[{ "Name":"String", "Value":"String", "ApplicationGroup":"String" }] } Request Tag Details Tag Mandatory Description Value Yes The device parameter. For example, DeviceID , MAC Address , Serial Number or UDID Name Yes Name of the custom attribute to be updated VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 498 Chapter 6: Device Management ApplicationGroup Yes Application group of the device Response Payload XML String String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description Total Items Numeric Total number of delete device custom attribute requests sent AcceptedItems Numeric Number of devices to which delete command was successfully sent FailedItems Numeric Number of device custom attributes that could not be deleted VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 499 Chapter 6: Device Management Faults Array Array of the "Fault" tag describing each detail of each failed instance Errorcode Numeric HTTP status code for the failed element Message String Reason for the custom attribute delete not being performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 500 Chapter 6: Device Management Edit Device Details Functionality – Edits the device details identified by device Id. HTTP Method – POST API URI – https://host/api/mdm/devices/{id}/editdevice Response Body – NA URI Parameters Tag Type Description id Numeric Device identifier for which details needs to be updated device String Device details which needs to be updated You can edit device details using the following parameters: l MAC Address – https://host/api/mdm/devices/macaddress/{macaddress}/editdevice l Serial Number –https://host/api/mdm/devices/serialnumber/{serialnumber}/editdevice l UDID – https://host/api/mdm/devices/udid/{udid}/editdevice Request Payload XML Numeric Numeric Numeric String Numeric String String Numeric String String JSON { "AssetNumber":"String", "DeviceFriendlyName":"String", "Ownership":"String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 501 Chapter 6: Device Management Request Tag Details Tag Mandatory Description AssetNumber No Asset number of the device DeviceFriendlyName No Friendly name assigned to the device Ownership No Ownership type of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 502 Chapter 6: Device Management Managed Settings Functionality – Sets the managed settings for an iOS device based on alternate id. HTTP Method – POST API URI – https://host/api/mdm/devices/managedsettings?searchby={searchby}&id={id} Response Obtained – NA URI Parameters Tag Description searchby The alternate id type (DeviceId, Macaddress, Udid, Serialnumber, ImeiNumber, EasId) id The alternate ID of the device Request Payload XML String String String JSON { "VoiceRoamingAllowed" : Boolean, "DataRoamingAllowed" : Boolean, "PersonalHotspotAllowed" : Boolean } Request Tag Details Tag Mandatory Description VoiceRoamingAllowed No Denotes if the voice roaming is enabled. Values: True, False DataRoamingAllowed No Denotes if the data roaming is enabled. Values: True, False PersonalHotspotAllowed No Denotes if the Personal Hotspot is enabled. Values: True, False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 503 Chapter 6: Device Management Change Device Organization Group Functionality – Changes the organization group to which the device is assigned. HTTP Method – POST Deprecated API URI – https://host/API/mdm/devices/{id}/changeorganizationgroup/{organizationgroupid}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/{id}/commands/changeorganizationgroup/{organizationgroupid} (HTTP Method Used – PUT) You can also change the device organization group using the following parameter: l l Alternate device ID type – https://host/api/mdm/devices/organizationgroup?searchby={searchby}&id={id}&ogid= {ogid} (HTTP Method Used – POST). This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/mdm/devices/commands/changeorganizationgroup?searchby= {searchby}&id={id}&ogid={ogid} (HTTP Method Used – POST) URI Parameters Tag Description OrganizationGroupID Unique identification of the target organization group where the device can be moved searchby The alternate id type (Macaddress, Udid, Serialnumber, ImeiNumber) id The unique identification number of the device Response Obtained – NA Request payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 504 Chapter 6: Device Management Create Offline Device Record Functionality – Creates an offline device decord. HTTP Method – POST API URI – https://host/api/mdm/devices/createofflinedevice/{token}/token URI Parameters Tag Type Description token String Enrollment token value Request Body – NA Response Payload XML Boolean Boolean Boolean JSON { "DeviceRecordId" : Numeric, "Id" : { "Value" : Numeric } } Response Tag Details Tag Type Description DeviceRecordId Numeric Unique identifier of the device's record VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 505 Chapter 6: Device Management Create Relay Server Functionality – Creates a new relay server provided that valid values are given. HTTP Method – POST API URI – https://host/api/mdm/relayservers Request Payload XML Numeric Numeric JSON { "General" : { "Name" : "String", "Description" : "String", "RelayServerTypeId" : Numeric, "RestrictContentDeliveryWindow" : "String", "StartTime" : "String", "EndTime" : "String", "RelayServerId" : Numeric, "Active" : "String" }, "Assignment" : { "ManagedBy" : "String", "StagingServer" : [ Numeric, Numeric ], "ProductionServer" : [ Numeric, Numeric ] }, "DeviceConnection" : { "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 507 Chapter 6: Device Management }, "ConsoleConnection" : { "CopyValuesFromDeviceConnection" : "String", "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "PullConnection" : { "PullLocalDirectory" : "String", "PullDiscoveryText" : "String", "PullFrequency" : Numeric } } Request Tag Details Tag Mandatory Description Name Yes Name of the relay server Description No Description of the relay server created RelayServerTypeId Yes Unique identifier of the relay server type RestrictContentDeliveryWindow No The time window which can be restricted for the content to be delivered to the relay server StartTime Yes Start of the time window for the content to be delivered to the relay server EndTime Yes End of the time window for the content to be delivered to the relay server RelayServerId Yes Unique identifier of the relay server Active No Specify if the relay server active or not ManagedBy Yes Unique Organization Group which manages the relay server StagingServer No The organization group that uses the relay server for staging ProductionServer No The organization group that uses the relay server for provisioning content post enrollment Protocol Yes Specify the protocol used for relay server to connect to devices Hostname Yes Specify the host name for devices to connect to the relay server Port Yes Specify the port number to connect devices with the relay server User Yes User name to access the device to connect to the relay server VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 508 Chapter 6: Device Management Password Yes Password of the relay server to connect with devices Path Yes Specify the path for devices to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors CopyValuesFromDeviceConnection Yes For the console connection, copy all the values from the device connection details Protocol Yes Specify the protocol used for the relay server to connect to the console Hostname Yes Specify the hostname for console to connect to the relay server Port Yes Specify the port number for the relay server to connect with the console User Yes User name to access the console and connect to the relay server Password Yes Password of the relay server connection with the console Path Yes Specify the path for the console to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors PullLocalDirectory Yes For the pull connection, specify the pull local directory PullDiscoveryText Yes Specify the text for the pull discovery PullFrequency Yes Specify the pull frequency Response Payload XML String String Numeric String String String Numeric String String Numeric Numeric Numeric Numeric Numeric String Numeric String String String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 506 Chapter 6: Device ManagementString Numeric String String String String String String String Numeric Numeric JSON Numeric Response Tag Details Tag Type Description Value Numeric Newly created relay server id VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 509 Chapter 6: Device Management Create Relay Servers in Bulk Functionality – Creates new relay servers in bulk. HTTP Method – POST API URI – https://host/api/mdm/relayservers/bulk Request Payload XMLJSON { "General" : { "Name" : "String", "Description" : "String", "RelayServerTypeId" : Numeric, "RestrictContentDeliveryWindow" : "String", "StartTime" : "String", "EndTime" : "String", "RelayServerId" : Numeric, "Active" : "String" }, "Assignment" : { "ManagedBy" : "String", "StagingServer" : [ Numeric, Numeric ], "ProductionServer" : [ Numeric, Numeric ] }, "DeviceConnection" : { "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 511 Chapter 6: Device Management "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "ConsoleConnection" : { "CopyValuesFromDeviceConnection" : "String", "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "PullConnection" : { "PullLocalDirectory" : "String", "PullDiscoveryText" : "String", "PullFrequency" : Numeric } } Request Tag Details Tag Mandatory Description Name Yes Name of the relay server Description No Description of the relay server created RelayServerTypeId Yes Unique identifier of the relay server type RestrictContentDeliveryWindow No The time window which can be restricted for the content to be delivered to the relay server StartTime Yes Start of the time window for the content to be delivered to the relay server EndTime Yes End of the time window for the content to be delivered to the relay server RelayServerId Yes Unique identifier of the relay server Active No Specify if the relay server active or not ManagedBy Yes Unique Organization Group which manages the relay server StagingServer Yes Specifies the number of staging servers required ProductionServer Yes Specifies the number of production servers required Protocol Yes Specify the protocol used for the relay server to connect to devices VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 512 Chapter 6: Device Management Hostname Yes Specify the hostname for devices to connect to the relay server Port Yes Specify the port number to connect devices with the relay server User Yes User name to enter into the device to connect to the relay server Password Yes Password for the relay server connection with devices Path Yes Specify the path for devices to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors CopyValuesFromDeviceConnection Yes For the console connection, copy all the values from the device connection details Protocol Yes Specify the protocol used for the relay server to connect to the console Hostname Yes Specify the hostname for console to connect to the relay server Port Yes Specify the port number to connect console with the relay server User Yes User name to access the console to connect to the relay server Password Yes Password for the relay server connection with the console Path Yes Specify the path for console to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors PullLocalDirectory Yes For the pull connection, specify the pull local directory PullDiscoveryText Yes Specify the text for the pull discovery PullFrequency Yes Specify the pull frequency Response Payload XML String String Numeric String String String Numeric String String Numeric Numeric Numeric Numeric Numeric String Numeric String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 510 Chapter 6: Device Management String Numeric String Numeric String String String String String String String Numeric JSON { "Created" : [ { "RelayServerID" : Numeric, "Name" : "String" } ], "TotalItems" : Numeric, "AcceptedItems" : Numeric, "FailedItems" : Numeric, "Faults" : { "Fault" : [ { "ErrorCode" : Numeric, "ItemValue" : "String", "Message" : "String" } ] } } Response Tag Details Tag Type Description RelayServerID Numeric Unique identifier of the relay server Name String Unique name of the relay server TotalItems Numeric Total number of invite requests sent AcceptedItems Numeric Number of invites successfully sent FailedItems Numeric Number of invites not sent VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 514 Chapter 6: Device Management Faults Numeric This chunk of XML/JSON indicates the cause of failure in sending invites. ErrorCode Numeric HTTP status code for the failed element Message String Reason for the relay server not being created in bulk VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 515 Chapter 6: Device Management Delete Relay Server Functionality – Deletes the relay server. HTTP Method – DELETE API URI – https://host/api/mdm/relayservers/{serverId} URI Parameters Tag Description serverId Unique identifier of the relay server to be deleted Request Payload – NA Response Payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 516 Chapter 6: Device Management Retrieve Relay Server Details Functionality – Retrieves the details of the existing relay server. HTTP Method – GET API URI – https://host/api/mdm/relayservers/{serverId} URI Parameters Tag Description serverId Unique identifier of the relay server to be retrieved Request Payload – NA Response Payload XML 1 2 3 String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 513 Chapter 6: Device Management Numeric String String Numeric String JSON { "General" : { "Name" : "String", "Description" : "String", "RelayServerTypeId" : Numeric, "RestrictContentDeliveryWindow" : "String", "StartTime" : "String", "EndTime" : "String", "RelayServerId" : Numeric, "Active" : "String" }, "Assignment" : { "ManagedBy" : "String", "StagingServer" : [ Numeric, Numeric ], "ProductionServer" : [ Numeric, Numeric ] }, "DeviceConnection" : { VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 518 Chapter 6: Device Management "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "ConsoleConnection" : { "CopyValuesFromDeviceConnection" : "String", "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "PullConnection" : { "PullLocalDirectory" : "String", "PullDiscoveryText" : "String", "PullFrequency" : Numeric } } Response Tag Details Tag Type Description Name Yes Name of the relay server Description No Description of the relay server RelayServerTypeId Yes Unique identifier of the relay server type RestrictContentDeliveryWindow No The time window which can be restricted for the content to be delivered to the relay server StartTime Yes Start of the time window for the content to be delivered to the relay server EndTime Yes End of the time window for the content to be delivered to the relay server RelayServerId Yes Unique identifier of the relay server Active No Specifies if the relay server is active or not ManagedBy Yes Unique organization group which manages the relay server StagingServer Yes Specifies the number of staging servers required VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 519 Chapter 6: Device Management ProductionServer Yes Specifies the number of production servers required Protocol Yes Specifies the protocol used for relay server to connect to devices Hostname Yes Specifies the hostname for devices to connect to the relay server Port Yes Specifies the port number to connect devices with the relay server User Yes User name to enter into the device to connect to the relay server Password Yes Password for the relay server connection with devices Path Yes Specify the path for devices to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors CopyValuesFromDeviceConnection Yes For the console connection, copy all the values from the device connection details Protocol Yes Specify the protocol used for the relay server to connect to the console Hostname Yes Specify the hostname for the console to connect to the relay server Port Yes Specify the port number to connect console with the relay server User Yes User name to enter in the console to connect to the relay server Password Yes Password for the relay server connection with the console Path Yes Specify the path for console to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures the connection is trusted and there are no SSL errors PullLocalDirectory Yes The specified pull local directory for the pull connection PullDiscoveryText Yes The specified text for the pull discovery PullFrequency Yes The specified frequency for the pull connection VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 520 Chapter 6: Device Management Update Relay Server Functionality – Updates the existing relay server details. HTTP Method – PUT API URI – https://host/api/mdm/relayservers Response Obtained – NA Request Payload XML String String Numeric String String String Numeric String String Numeric Numeric Numeric Numeric Numeric String Numeric String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 517 Chapter 6: Device ManagementString String String String Numeric String Numeric String String String String String String String Numeric JSON { "General" : { "Name" : "String", "Description" : "String", "RelayServerTypeId" : Numeric, "RestrictContentDeliveryWindow" : "String", "StartTime" : "String", "EndTime" : "String", "RelayServerId" : Numeric, "Active" : "String" }, "Assignment" : { "ManagedBy" : "String", "StagingServer" : [ 1, 2 ], "ProductionServer" : [ 1, 2 ] }, "DeviceConnection" : { "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 522 Chapter 6: Device Management "VerifyServer" : "String" }, "ConsoleConnection" : { "CopyValuesFromDeviceConnection" : "String", "Protocol" : Numeric, "Hostname" : "String", "Port" : Numeric, "User" : "String", "Password" : "String", "Path" : "String", "PassiveMode" : "String", "VerifyServer" : "String" }, "PullConnection" : { "PullLocalDirectory" : "String", "PullDiscoveryText" : "String", "PullFrequency" : Numeric } } Request Tag Details Tag Mandatory Description Name Yes Name of the relay server Description No Description of the relay server RelayServerTypeId Yes Unique identifier of the relay server type RestrictContentDeliveryWindow No The time window which can be restricted for the content to be delivered to the relay server. StartTime Yes Start time of the relay server EndTime Yes End time of the relay server RelayServerId Yes Unique identifier of the relay server Active No Is the relay server active or not. ManagedBy Yes Unique organization group that manages the relay server StagingServer Yes Specifies the number of staging servers required ProductionServer Yes Specifies the number of production servers required Protocol Yes Specifies the protocol used for relay server to connect to devices Hostname Yes Specifies the hostname for devices to connect to the relay server Port Yes Specifies the port number to connect devices with the relay server User Yes User name to enter into the device to connect to the relay server VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 523 Chapter 6: Device Management Password Yes Password for the relay server connection with devices Path Yes Specify the path for devices to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors CopyValuesFromDeviceConnection Yes For the console connection, copy all the values from the device connection details Protocol Yes Specify the protocol used for the relay server to connect to the console Hostname Yes Specify the hostname for the console to connect to the relay server Port Yes Specify the port number to connect console with the relay server User Yes User name to enter in the console to connect to the relay server Password Yes Password for the relay server connection with the console Path Yes Specify the path for console to connect with the relay server PassiveMode No The server selects the data port on behalf of the device VerifyServer No Ensures that the connection is trusted and there are no SSL errors PullLocalDirectory Yes The specified pull local directory for the pull connection PullDiscoveryText Yes The specified text for the pull discovery PullFrequency Yes The specified frequency for the pull connection VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 524 Chapter 6: Device Management Create Staging Bundle Functionality – Creates a new staging bundle provided valid values are given. HTTP Method – POST API URI – https://host/api/mdm/staging URI Parameters Tag Description stagingId Valid staging bundle id Request Payload XML String String Numeric String String String Numeric String String Numeric Numeric Numeric Numeric Numeric String Numeric String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 521 Chapter 6: Device Management Numeric String Numeric String String String String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 525 Chapter 6: Device Management JSON { "PlatformId" : Numeric, "General" : { "StagingId" : Numeric, "Name" : "String", "Description" : "String", "ManagedBy" : "String", "EnrollmentUser" : "String", "Password" : "String", "AgentID" : Numeric }, "Manifest" : { "Steps" : [ { "ProfileID" : Numeric, "ApplicationID" : Numeric, "FileActionsID" : Numeric, "ExecutionTaskID" : Numeric, "EventActionID" : Numeric, "PersistThroughEnterpriseReset" : "String" }, ] } } Request Tag Details Tag Mandatory Description PlatformId Yes Unique identifier of the platform StagingId Yes Unique identifier of the staging Name Yes Name of the newly created staging bundle Description No Description of the newly created staging bundle ManagedBy Yes Unique organization group that manages the staging bundle EnrollmentUser Yes User name of the enrollment user using the staging bundle Password Yes Password of the enrollment user AgentID Yes Unique agent identifier ProfileID Yes Unique profile identifier ApplicationID Yes Unique application identifier FileActionsID Yes Unique file actions identifier ExecutionTaskID Yes Unique execution task identifier VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 526 Chapter 6: Device Management EventActionID Yes PersistThroughEnterpriseReset No Unique event action identifier Specify reset for persist through enterprise Response Payload XML Numeric Numeric String String String String String Numeric Numeric Numeric Numeric Numeric Numeric String Numeric JSON Numeric Response Tag Details Tag Type Description Value Numeric Newly created staging bundle id VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 527 Chapter 6: Device Management Delete Staging Bundle Functionality – Delete the staging bundle identified by the staging bundle id provided it is valid. HTTP Method – DELETE API URI – https://host/api/mdm/staging/{stagingId} URI Parameters Tag Description stagingId Valid staging bundle id to be deleted Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 528 Chapter 6: Device Management Retrieve Staging Bundle Functionality – Gets the staging bundle identified by the staging bundle ID provided it is valid. HTTP Method – GET API URI – https://host/api/mdm/staging/{stagingId} Request Payload – NA URI Parameters Tag Description stagingId Valid staging bundle id Response Payload XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 529 Chapter 6: Device Management JSON { "PlatformId" : Numeric, "General" : { "StagingId" : Numeric, "Name" : "String", "Description" : "String", "ManagedBy" : "String", "EnrollmentUser" : "String", "Password" : "String", "AgentID" : Numeric }, "Manifest" : { "Steps" : [ { "ProfileID" : Numeric, "ApplicationID" : Numeric, "FileActionsID" : Numeric, "ExecutionTaskID" : Numeric, "EventActionID" : Numeric, "PersistThroughEnterpriseReset" : "String" }, ] } } Response Tag Details Tag Type Description PlatformId Numeric Unique identifier of the platform StagingId Numeric Unique identifier for the staging Name String Name of the staging bundle Description String Description of the staging bundle ManagedBy String Unique Organization Group that manages the staging bundle EnrollmentUser String User name of the enrollment user using the staging bundle Password String Password of the enrollment user AgentID Numeric Unique agent identifier ProfileID Numeric Unique profile identifier ApplicationID Numeric Unique application identifier FileActionsID Numeric Unique file actions identifier ExecutionTaskID Numeric Unique execution task identifier VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 530 Chapter 6: Device Management EventActionID Numeric PersistThroughEnterpriseReset String Unique event action identifier Specified reset for persist through enterprise VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 531 Chapter 6: Device Management Update Staging Bundle Functionality – Updates the already existing staging bundle. HTTP Method – PUT API URI – https://host/api/mdm/staging Response Obtained – NA Request Payload XML Numeric Numeric String String String String String Numeric Numeric Numeric Numeric Numeric Numeric String JSON { "PlatformId" : Numeric, "General" : { "StagingId" : Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 532 Chapter 6: Device Management "Name" : "String", "Description" : "String", "ManagedBy" : "String", "EnrollmentUser" : "String", "Password" : "String", "AgentID" : Numeric }, "Manifest" : { "Steps" : [ { "ProfileID" : Numeric, "ApplicationID" : Numeric, "FileActionsID" : Numeric, "ExecutionTaskID" : Numeric, "EventActionID" : Numeric, "PersistThroughEnterpriseReset" : "String" }, ] } } Request Tag Details Tag Mandatory Description PlatformId Yes Unique identifier of the platform StagingId Yes Unique identifier of the staging Name Yes Name of the staging bundle Description No Description of the staging bundle ManagedBy Yes Unique organization group that manages the staging bundle EnrollmentUser Yes User name of the enrollment user using the staging bundle Password Yes Password of the enrollment user AgentID Yes Unique agent identifier ProfileID Yes Unique profile identifier ApplicationID Yes Unique application identifier FileActionsID Yes Unique file actions identifier ExecutionTaskID Yes Unique execution task identifier EventActionID Yes Unique event action identifier PersistThroughEnterpriseReset Yes Specified reset for persist through enterprise VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 533 Chapter 6: Device Management Retrieve Printer Details Using Identifier Functionality – Retrieves the printer details identified using identifier. HTTP Method – GET API URI – https://host/api/mdm/peripherals/printer/{deviceID} URI Parameters Tag Description deviceID Unique identifier of the device Request Payload – NA Response Payload JSON { "DeviceID" : Numeric, "FriendlyName" : "String", "DeviceTypeID" : Numeric, "DeviceType" : "String", "LastSeen" : "Datetime", "EnrollmentStatusID" : Numeric, "EnrollmentStatus" : "String", "DeviceIdentifier" : "String", "DisplayModel" : "String", "EnrollmentDate" : "Datetime", "UnenrollmentDate" : "Datetime", "LocationGroupID" : Numeric, "PrinterSample" : {} } Response Tag Details Tag Type Description DeviceID Numeric Unique identifier of the device FriendlyName String Friendly name of the device DeviceTypeID Numeric Unique device identifier type DeviceType String Type of the device LastSeen Datetime Timestamp when the device was last seen VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 534 Chapter 6: Device Management EnrollmentStatusID Numeric Enrollment status identifier of the device for which printer details are to be retrieved EnrollmentStatus String Enrollment status of the device for which printer details are to be retrieved DeviceIdentifier String Unique device identifier DisplayModel String Display model of the device EnrollmentDate Datetime Timestamp when the device was enrolled UnenrollmentDate Datetime Timestamp when the device was unenrolled LocationGroupID Numeric Unique location group identifier PrinterSample String Sample collected from the printer VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 535 Chapter 6: Device Management Retrieve Printer Details Using Location Group Functionality – Retrieves the printer details identified using location group identifier. HTTP Method – GET API URI – https://host/api/mdm/peripherals/printers/{locationGroupID} The location group id retrieves the details of all the printers enrolled in the organization group. If there are multiple printers enrolled in an organization group, the location group ID returns a unique response for each of the printers in the organization group. To retrieve the details of a single printer, use the device id specific to the printer. URI Parameters Tag Description locationGroupID Unique identifier of the location group Request Payload – NA Response Payload JSON { "DeviceID" : Numeric, "FriendlyName" : "String", "DeviceTypeID" : Numeric, "DeviceType" : "String", "LastSeen" : "Datetime", "EnrollmentStatusID" : Numeric, "EnrollmentStatus" : "String", "DeviceIdentifier" : "String", "DisplayModel" : "String", "EnrollmentDate" : "Datetime", "UnenrollmentDate" : "Datetime", "LocationGroupID" : Numeric, "PrinterSample" : {} } Response Tag Details Tag Type Description DeviceID Numeric Unique identifier of the device FriendlyName String Friendly name of the device DeviceTypeID Numeric Unique device identifier type VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 536 Chapter 6: Device Management DeviceType String Type of the device LastSeen Datetime Timestamp when the device was last seen EnrollmentStatusID Numeric Enrollment status identifier of the device for which printer details are to be retrieved EnrollmentStatus String Enrollment status of the device for which printer details are to be retrieved DeviceIdentifier String Unique device identifier DisplayModel String Display model of the device EnrollmentDate Datetime Timestamp when the device was enrolled UnenrollmentDate Datetime Timestamp when the device was unenrolled LocationGroupID Numeric Unique location group identifier PrinterSample String Sample collected from the printer Sample Code The printer sample varies for different OEMs. { "DeviceID": 619, "FriendlyName": "Printer-RL4", "DeviceTypeID": 104, "DeviceType": "DataMaxONeilPrinter", "LastSeen": "2017-04-12T05:13:08.42", "EnrollmentStatusID": 4, "EnrollmentStatus": "Enrolled", "DeviceIdentifier": "LB13560", "DisplayModel": "RL4", "EnrollmentDate": "2017-04-12T05:03:11", "UnenrollmentDate": null, "LocationGroupID": 646, "PrinterSample": { "Custom Settings": {}, "General": { "PrinterInfo.PrinterName": "Printer-RL4", "PrinterInfo.ModelNumber": "RL4", "PrinterInfo.PrinterSerial#": "LB13560", "PrinterInfo.DateTime": "04/02/1970 16:35:30", "PrinterInfo.Boot1Version": " 1.26 0000", "PrinterInfo.Boot1Architecture": "2.0", "PrinterInfo.Boot2Version": " 2.26 0000", "PrinterInfo.Boot2Architecture": "2.0", "PrinterInfo.VersionInfo": "VER: RL4, 8.05_0066 0000 Apr 12 2015; AVR_VER: 04.2", "PrinterInfo.FirmwareBuild": "S6866", "PrinterInfo.BluetoothDeviceAddress": "000000000000", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 537 Chapter 6: Device Management }, "Battery": { "sys.SmartBattery.Temperature": "299 K", "sys.SmartBattery.Voltage": "13.50 V", "sys.SmartBattery.Current": "0.399 A", "sys.SmartBattery.AverageCurrent": "0.398 A", "sys.SmartBattery.StateOfCharge": "3 %", "PrinterInfo.WIFI_MAC_Address": "0017AC207ECB", "PrinterInfo.WIFI_Type": "4", "PrinterInfo.Odometer": "0" "sys.SmartBattery.Status": "0x890", "sys.SmartBattery.CycleCount": "20", "sys.SmartBattery.SerialNumber": "17987", "sys.SmartBattery.ManufactureDate": "2012/9/25" }, "Auto Update": { "sys.AutoUpdate.UpdateType": "5 (Airwatch)", "sys.AutoUpdate.ConfigFilename": "/DO/config.cfg", "sys.AutoUpdate.TFTP_SerIP_Addr": "0.0.0.0", "sys.AutoUpdate.TFTP_SerPort": "69", "sys.AutoUpdate.UpgradePackageVer": "", "sys.AutoUpdate.BeeperEnabled": "1 (Yes)", "sys.AutoUpdate.SC_FileFormat": "0 (Default)", "sys.AutoUpdate.PrintStatus": "1 (No Rotate)", "sys.AutoUpdate.FTP_UserName": "", "sys.AutoUpdate.FTP_PASSWORD": "Write Only", "sys.AutoUpdate.FTP_Server": "", "sys.AutoUpdate.FTP_ServerPort": "21", "sys.AutoUpdate.UserPrintJob": "", "sys.AutoUpdate.PrintJobMode": "0 (Print Always)", "sys.AutoUpdate.UserMenuName": "", "sys.AutoUpdate.MenuMode": "1 (Display On Error)", "sys.AutoUpdate.WriteFile": "", "sys.AutoUpdate.FeedbackFtpEnable": "0 (Disabled)", "sys.AutoUpdate.FeedbackDirectory": "", "sys.AutoUpdate.PrintSerIP_Addr": "10.85.128.125", "sys.AutoUpdate.PrintSerName": "NETira-CA", "sys.AutoUpdate.PrintSerPort": "9090", "sys.AutoUpdate.PrintSerConnMode": "0 (HTTP)" }, "Bluetooth": { "sys.Bluetooth.DeviceName": "Printer - RL4", "sys.Bluetooth.ServiceName": "Printing Service", "sys.Bluetooth.Discoverable": "1 (Yes)", "sys.Bluetooth.Connectable": "1 (Yes)", "sys.Bluetooth.Bondable": "1 (Yes)", "sys.Bluetooth.AuthenticationReq": "0 (No)", "sys.Bluetooth.Encryption": "0 (No)", "sys.Bluetooth.Passkey": "Write Only", "sys.Bluetooth.InactiveDisconnect": "60", "sys.Bluetooth.PowerDownTime": "60", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 538 Chapter 6: Device Management "sys.Bluetooth.DeviceAddress": "000000000000", "sys.Bluetooth.BluetoothEnable": "1 (Yes)" }, "General Network": { "sys.GeneralNetwork.ActiveInterface": "W (Wireless Ethernet)", "sys.GeneralNetwork.NetworkPassword": "sysadm", "sys.GeneralNetwork.SNMP_Enable": "0 (No)", "sys.GeneralNetwork.TelnetEnable": "0 (No)", "sys.GeneralNetwork.FTP_ServerEnable": "0 (No)", "sys.GeneralNetwork.HTTP_ServerEnable": "1 (Yes)", "sys.GeneralNetwork.LPD_PrintEnable": "1 (Yes)", "sys.GeneralNetwork.TCP_PrintEnable": "1 (Yes)", "sys.GeneralNetwork.NetCenterEnable": "0 (No)", "sys.GeneralNetwork.GratuitousARP_Period": "0 (Disabled)", "sys.GeneralNetwork.WIFI_OPTION_TYPE": "4", "sys.GeneralNetwork.ConnectedState": "Yes", "sys.GeneralNetwork.IpAcquired": "Yes", "sys.GeneralNetwork.NetworkReady": "Yes" }, "Media Label": { "sys.MediaLabel.UnitsOfMeasure": "I (Imperial)", "sys.MediaLabel.PresentDistance": "0 (1/100 inches)", "sys.MediaLabel.AllowPrsentBackup": "D (Disabled)", "sys.MediaLabel.LabelLength": "67 (1/100 inches)", "sys.MediaLabel.MaximumLabelLength": "1000 (1/100 inches)", "sys.MediaLabel.SensorType": "G (Gap)", "sys.MediaLabel.GapAlternateMode": "D (Disabled)", "sys.MediaLabel.BackAfterPrint": "N (No)", "sys.MediaLabel.LabelWidth": "412 (1/100 inches)", "sys.MediaLabel.PaperOutDistance": "45 (1/100 inches)", "sys.MediaLabel.TOF_Precedence": "N (No)", "sys.MediaLabel.CleanHeadCounter": "0 (1/100 inches)", "sys.MediaLabel.AutoAlign": "N (No)", "sys.MediaLabel.StopLocation": "H (Host)", "sys.MediaLabel.AbsoluteCounter": "1148", "sys.MediaLabel.AbsoluteCounterDate": "Not Found", "sys.MediaLabel.ResettableCounter": "1148", "sys.MediaLabel.ResettableCounterDate": "Not Found" }, "Miscellaneous": { "sys.Miscellaneous.PresentSensor": "A (Auto)", "sys.Miscellaneous.Cutter": "A (Auto)", "sys.Miscellaneous.ControlCodes": "Standard Codes", "sys.Miscellaneous.FeedbackCharacters": "N (No)", "sys.Miscellaneous.PauseMode": "N (No)", "sys.Miscellaneous.PeelMode": "N (No)", "sys.Miscellaneous.HeatCommand": "Y (Yes)", "sys.Miscellaneous.SpeedCommands": "Y (Yes)", "sys.Miscellaneous.TofSensingCommands": "Y (Yes)", "sys.Miscellaneous.BritishPound": "N (No)", "sys.Miscellaneous.Cntrl-codes": "N (No)", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 539 Chapter 6: Device Management "sys.Miscellaneous.STX-V_SW_Settings": "N (No)", "sys.Miscellaneous.MaxLengthCommand": "N (No)", "sys.Miscellaneous.ProcessSOH": "D (Disabled)", "sys.Miscellaneous.WD": "N (No)", "sys.Miscellaneous.DelayRate": "0", "sys.Miscellaneous.USB_DeviceClass": "2 (Composite)", "sys.Miscellaneous.DNS_DisplayMode": "4 (Host Name & IP Addr)" }, "Print Control": { "sys.PrintControl.RowOffset": "44 (1/100 inches)", "sys.PrintControl.ColumnOffset": "44 (1/100 inches)", "sys.PrintControl.Darkness": "12", "sys.PrintControl.Heat": "10", "sys.PrintControl.ReverseSpeed": "30 (1/10 inches)", "sys.PrintControl.FeedSpeed": "40 (1/10 inches)", "sys.PrintControl.PrintSpeed": "40 (1/10 inches)", "sys.PrintControl.SlewSpeed": "40 (1/10 inches)", "sys.PrintControl.BackupDelay": "0", "sys.PrintControl.ColumnAdjust": "0", "sys.PrintControl.PresentAdjust": "0", "sys.PrintControl.RowAdjust": "0", "sys.PrintControl.Contrast": "12", "sys.PrintControl.DotDensity": "203", "sys.PrintControl.HeadWidth": "864", "sys.PrintControl.MediaLatch": "Close", "sys.PrintControl.MediaLoaded": "No", "sys.PrintControl.PrintSpeedMax": "40", "sys.PrintControl.PrintSpeedMin": "20" }, "RS232": { "sys.RS232.BaudRate": "96 (9600)", "sys.RS232.Protocol": "B (Both)", "sys.RS232.Parity": "N (None)", "sys.RS232.DataBits": "8", "sys.RS232.StopBits": "1" }, "System Settings": { "sys.SystemSettings.EscSequences": "N (No)", "sys.SystemSettings.SingleByteSymbols": "PM (PC-850 MULTILINGUAL)", "sys.SystemSettings.DoubleByteSymbols": "UC (Unicode)", "sys.SystemSettings.FormatAttributes": "X (XOR)", "sys.SystemSettings.SopEmulation": "D (Disabled)", "sys.SystemSettings.DefaultModule": "D (D)", "sys.SystemSettings.ImagingMode": "M (Multiple Label)", "sys.SystemSettings.DpiEmulation": "000 (Disabled)", "sys.SystemSettings.HostTimeout": "10", "sys.SystemSettings.MenuLanguage": "English", "sys.SystemSettings.ScaleableFontCache": "511", "sys.SystemSettings.FaultHandlingLevel": "1", "sys.SystemSettings.FaultHandlingRetryCount": "1", "sys.SystemSettings.FaultHandlingVoidDistance": "50", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 540 Chapter 6: Device Management "sys.SystemSettings.FaultHandlingRetract": "N", "sys.SystemSettings.ColumnEmulation": "203", "sys.SystemSettings.RowEmulation": "203", "sys.SystemSettings.SymbolSetCommand": "N (No)", "sys.SystemSettings.FontEmulation": "0 (Standard Fonts)", "sys.SystemSettings.InputMode": "9 (Auto)", "sys.SystemSettings.AutoToggleMode": "1", "sys.SystemSettings.RetractDelay": "70", "sys.SystemSettings.LabelRotation": "N (No)", "sys.SystemSettings.LabelStore": "F (Fields Only)", "sys.SystemSettings.Buzzer": "N (No)", "sys.SystemSettings.MenuMode": "U (User Menu)", "sys.SystemSettings.SYS_SleepTime": "30", "sys.SystemSettings.SYS_PowerDownTime": "120", "sys.SystemSettings.RF_PowerDownTime": "0", "sys.SystemSettings.BacklightMode": "6 (Auto When Charging)", "sys.SystemSettings.BackltAutoOnTimer": "10", "sys.SystemSettings.RadioPowerState": "1 (Enabled)", "sys.SystemSettings.UserLabelMode": "N (No)", "sys.SystemSettings.StartupScript": "", "sys.SystemSettings.RunOnceScript": "", "sys.SystemSettings.StartupConfig": "", "sys.SystemSettings.TopLevelMenu": "", "sys.SystemSettings.EncryptedFileKey": "Write Only", "sys.SystemSettings.EncryptedFileAlgorithm": "None (None)" }, "WIFI": { "sys.WIFI.EnableStaticDNS": "N (No)", "sys.WIFI.PreferredDNS_Server": "0.0.0.0", "sys.WIFI.SecondaryDNS_Server": "0.0.0.0", "sys.WIFI.DNS_Suffix": "", "sys.WIFI.InActiveTimeout": "30", "sys.WIFI.IpAddressMethod": "Y (Use DHCP)", "sys.WIFI.ActiveIP_Address": "10.85.192.158", "sys.WIFI.ActiveSubnetMask": "255.255.240.0", "sys.WIFI.ActiveGateway": "10.85.192.1", "sys.WIFI.PrinterDNS_Name": "", "sys.WIFI.RegisterToDNS": "N (No)", "sys.WIFI.UseDNS_Suffix": "N (No)", "sys.WIFI.UDP_Port": "9200", "sys.WIFI.TCP_Port": "9100", "sys.WIFI.ConnStatusReport": "N (No)", "sys.WIFI.DHCP_UserClassOption": "", "sys.WIFI.StaticIP_Address": "0.0.0.0", "sys.WIFI.StaticSubnetMask": "0.0.0.0", "sys.WIFI.StaticGateway": "0.0.0.0", "sys.WIFI.LPD_Port": "515", "sys.WIFI.LPD_Enable": "1 (Yes)", "sys.WIFI.NetworkType": "P (Infrastructure)", "sys.WIFI.ESSID": "AWCORP", "sys.WIFI.NetworkAuthenType": "5 (WPA2 PSK)", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 541 Chapter 6: Device Management "sys.WIFI.EAP_Type": "25 (PEAP)", "sys.WIFI.Phase2Method": "2 (EAP MSCHAPV2)", "sys.WIFI.UserName": "Write Only", "sys.WIFI.Password": "Write Only", "sys.WIFI.PassPhrase": "Write Only", "sys.WIFI.WEP_DataEncryption": "2 (Disabled)", "sys.WIFI.WEP_AP_Authen": "0 (Open)", "sys.WIFI.WEP_SelectedKey": "1", "sys.WIFI.WEP_Key#1": "Write Only", "sys.WIFI.WEP_Key#2": "Write Only", "sys.WIFI.WEP_Key#3": "Write Only", "sys.WIFI.WEP_Key#4": "Write Only", "sys.WIFI.SignalIndicator": "N (No)", "sys.WIFI.PowerSavingMode": "0 (Disabled)", "sys.WIFI.GroupCipher": "4 (WEP104)", "sys.WIFI.MAC_Address": "0017AC207ECB", "sys.WIFI.RegulatoryDomain": "0", "sys.WIFI.RadioPhysicalMode": "2 (802.11BG)", "sys.WIFI.MinimumDwellTime": "105", "sys.WIFI.MaximumDwellTime": "105", "sys.WIFI.ScanChannelSelection": "0", "sys.WIFI.HexadecimalPassPha": "Write Only", "sys.WIFI.UseHexadecimalPass": "0 (No)", "sys.WIFI.WIFI_TestingMode": "N (No)", "sys.WIFI.UseClientCertifica": "N (No)", "sys.WIFI.WifiSignalstrength": "-54", "sys.WIFI.SSL_Port": "9101", "sys.WIFI.DHCP_Option12": "", "sys.WIFI.DHCP_Option77": "", "sys.WIFI.WIFI_Enable": "1 (Enabled)" } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 542 Chapter 7: Enrollment User Management Overview 545 Add Enrollment User (Basic) 545 Add Enrollment User (Directory) 550 Retrieve Enrollment User's Details 553 Update Enrollment User's Details 556 Delete List of Enrollment Users 558 Delete Specified Enrollment User 560 Bulk Delete Enrollment Users 561 Search Enrollment Users 563 Search Enrolled Device 566 Search Device Enrollment Token 570 Register Device for an Enrollment User 573 Search Registered Device 578 Delete Registered Devices 581 Change Organization Group of an Enrollment User 584 Activate an Enrollment User 585 Bulk Activate Enrollment Users 586 Deactivate an Enrollment User 588 Bulk Deactivate Enrollment Users 589 Upload S/MIME Certificates to an Enrollment User 591 Create Custom Attribute 593 Update Custom Attribute 596 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 543 Chapter 7: Enrollment User Management Delete Custom Attribute 599 Retrieve Authenticated Enrollment User Information 602 Retrieve AirWatch Version and API URLs 605 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 544 Chapter 7: Enrollment User Management Overview AirWatch REST APIs enables you to create and manage device enrollment users. Device enrollment user's details can be viewed in the following path on the AirWatch Console : l Enrollment User Details – Accounts > Users > List View. l Enrollment Status – Accounts > Users > Enrollment Status. Add Enrollment User (Basic) Functionality – Adds a basic device enrollment user to the desired organization group. HTTP Method – POST API URI – https://host/api/system/users/adduser Request Payload XML Numeric Numeric String String String String String Numeric Numeric Numeric Numeric Numeric Numeric String JSON { "UserName":"String", "Password":"String", "FirstName":"String", "LastName":"String", "Status":"Boolean", "Email":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 545 Chapter 7: Enrollment User Management "SecurityType":Numeric, "ContactNumber":"String", "MobileNumber":"String", "Group":Numeric, "LocationGroupId":Numeric, "Role":"String", "MessageType":"String", "MessageTemplateId":Numeric } Request Tag Details Tag Mandatory Description UserName Yes Desired unique user name of the device enrollment user Password Yes Desired password of the enrollment user FirstName Yes First name of the user LastName Yes Last name of the user Status No "True" for this field creates an Active user, "False" creates an Inactive user Email Yes Desired email address of the enrollment user SecurityType Yes Security type of the enrollment User. In XML payload, you can pass String values ("Basic" for a basic enrollment User, and "Directory" for a directory enrollment user) and Numeric values (1 for directory enrollment users and 2 for Basic enrollment users). For JSON payload, you can pass only Numeric values. ContactNumber No Desired contact number of the enrollment User. e.g.+1234567890 MobileNumber No Desired mobile number of the enrollment user Group No Unique identification number of the organization group where the user will be created LocationGroupId No Unique identification number of the organization group where the user will be created Role No Role associated with the user. Allowed values are "Basic Access" and "Full Access" MessageType No Type of the message sent to the enrollment user. Allowed Values are: Email, SMS, None MessageTemplateId No Unique ID of the template of the confirmation Email/SMS sent to the user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 546 Chapter 7: Enrollment User Management Important: Firstname, lastname, password, and email fields are picked from the directory for “directory” security type. Additional Points l l l The newly created Enrollment user can be seen in the following path in the console : Accounts > Users > List View. The "Group" and "LocationGroupId" tags accept only Numeric Organization Group IDs. The user can pass just one of these tags in the payload. When the "Group" or the "LocationGroupId" tag is not provided in the payload, the Enrollment User is created in the Root Organization Group of the Authenticating Admin User. Response Payload XML String String String String Boolean String Numeric String String Numeric Numeric String String Numeric Numeric JSON { "Value": Numeric } Response Tag Details Tag Type Description Long /Value Numeric Unique identification of the newly created enrollment user C# Sample Code using System; using System.IO; using System.Net; using System.Text; using System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 547 Chapter 7: Enrollment User Management private private private private private const const const const const string string string string string USER_NAME = "UserName1"; PASSWORD = "Password1"; API_TENANT_CODE = "API-Key"; HOST = "https://host"; MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void CreateEnrollmentUser() { try { var user = new User(); user.UserName = "UserName"; user.Password = "********"; user.FirstName = "First Name"; user.LastName = "Last Name"; user.LocationGroupId = 123; user.MessageType = "Email"; user.SecurityType = EnrollmentUserSecurityType.basic; user.Email = "user@domain.com"; user.ContactNumber = "+1234567890"; var request = WebRequest.Create(HOST + "/api/system/users/adduser") as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof(User)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_ NAMESPACE); xmlSerializer.Serialize(writer, user, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes (inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 548 Chapter 7: Enrollment User Management requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader (response.GetResponseStream()).ReadToEnd()); response.Close(); } catch (WebException e) { if(e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 549 Chapter 7: Enrollment User Management Add Enrollment User (Directory) Functionality – Adds a directory device enrollment user to the desired organization group. HTTP Method – POST API URI – https://host/api/system/users/adduser Request Payloads XMLJSON { "UserName":"String", "Status":"Boolean", "SecurityType":"String", "ContactNumber":"String", "MobileNumber":"String", "Group":Numeric, "LocationGroupId":Numeric, "Role":"String", "MessageType":"String", "MessageTemplateId":Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 550 Chapter 7: Enrollment User Management Request Tag Details Tag Mandatory Description UserName Yes Directory name of the device enrollment user Status No "True" for this field creates an Active user, "False" creates an Inactive user SecurityType Yes Security type of the enrollment User. In XML payload, you can pass String values ("Basic" for a basic enrollment User, and "Directory" for a directory enrollment user) and Numeric values (1 for directory enrollment users and 2 for Basic enrollment users). For JSON payload, you can pass only Numeric values. ContactNumber No Desired contact number of the enrollment user. e.g.+1234567890 MobileNumber No Desired mobile number of the enrollment user Group No Numeric identification of the organization group where the user will be created LocationGroupId No Numeric identification of the organization group where the user will be created Role No Role associated with the user. Allowed values are "Basic Access" and "Full Access" MessageType No Type of the message sent to the enrollment user. Allowed Values are: Email, SMS, None MessageTemplateId No Unique ID of the template of the confirmation Email/SMS sent to the user Additional Points l l l l l The newly created Directory Enrollment user can be seen in the following path in the console : Accounts > Users > List View. The First name, Last name, Email ID, and Password would be picked from the Active Directory. The "Group" and "LocationGroupId" tags accept only Numeric Organization Group IDs. The user can pass just one of these tags in the payload. When the "Group" or the "LocationGroupId" tag is not provided in the payload, the Enrollment User is created in the Root Organization Group of the Authenticating Admin User. The Add Enrollment User API fetches custom attributes from the Directory. Custom attributes are applicable only for Directory users and are defined for a user in the Directory Services settings. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 551 Chapter 7: Enrollment User Management Response Payloads XML String Boolean String String String Numeric Numeric String String Numeric Numeric JSON { "Value": Numeric } Response Tag Details Tag Type Description Long/Value Numeric Unique Identification of the newly created enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 552 Chapter 7: Enrollment User Management Retrieve Enrollment User's Details Functionality – Retrieves enrollment user's details identified by the enrollment user Id. HTTP Method – GET API URI – https://host/api/system/users/{Id} URI Parameters Tag Description id Enrollment user id Request Body – NA Response Payload XMLJSON { "UserName": "String", "FirstName": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 553 Chapter 7: Enrollment User Management "LastName": "String", "Status": "Boolean", "Email": "String", "SecurityType": "String", "ContactNumber": "String", "MobileNumber":"String", "EmailUserName": "String", "Group": "String", "LocationGroupId": Numeric, "Role": "String", "MessageType": "String", "EnrolledDevicesCount": "String", "Id": Numeric, "ExternalId":"String", } Response Tag Details Tag Type Description ID Numeric Unique identification of the enrollment user UserName String Unique user name of the device enrollment user FirstName String First name of the enrollment user LastName String Last name of the enrollment user Status Boolean "True" indicates an Active user, "False" indicates an Inactive user Email String Email address of the enrollment user SecurityType String/Numeric Security type of the enrollment User. In XML payload, you can pass String values ("Basic" for a basic enrollment User, and "Directory" for a directory enrollment user) and Numeric values (1 for directory enrollment users and 2 for Basic enrollment users). For JSON payload, you can pass only Numeric values. ContactNumber String Desired contact number of the enrollment User. e.g.+1234567890 MobileNumber String Desired mobile number of the enrollment user EmailUsername String Username of the directory user Group String Name of the organization group where the user will be created LocationGroupId Numeric Numeric identification of the organization group where the user will be created Role String Role associated with the user. Values are "Basic Access" and "Full Access" EnrolledDevicesCount String Number of device enrolled by the user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 554 Chapter 7: Enrollment User Management MessageType String Type of the message sent to the Enrollment User. Allowed Values are : Email, SMS, None VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 555 Chapter 7: Enrollment User Management Update Enrollment User's Details Functionality – Updates the details of a device enrollment user. HTTP Method – POST API URI – https://host/api/system/users/{id}/update URI Parameters Tag Description id Enrollment User identifier user Resource containing user details Response Payload – NA Request Payload XML Numeric String String String Boolean String String String String String String Numeric String String String String JSON { "ContactNumber": "String", "DisplayName" : "String", "Password":"String", "FirstName":"String", "LastName":"String", "Email":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 556 Chapter 7: Enrollment User Management "MobileNumber":"String", "MessageType":"String", "Group":"String", "LocationGroupId":Numeric, "Role":"String", "MessageTemplateId":Numeric, "ExternalId":"String" } Request Tag Details Tag Mandatory Description ContactNumber No Updated contact number of the enrollment user. e.g.+1234567890 DisplayName No Display name of the user Password Yes (for Basic user) Password for the enrollment user FirstName Yes Updated first name of the enrollment user LastName Yes Updated last name of the enrollment user Email Yes Updated email address of the enrollment user MobileNumber No Updated mobile number of the enrollment user Group No Numeric identification of the updated organization group where the user will be created LocationGroupId Yes Numeric identification of the updated organization group where the user will be created Role No Updated role associated with the user. Allowed values are "Basic Access" and "Full Access" MessageType No Type of the updated message sent to the enrollment User. Allowed Values are : Email, SMS, None MessageTemplateId No Updated numeric identification of the message template sent to the enrollment user ExternalID No Track Id of the device enrollment user Important: It is not mandatory to provide all the tags for updating enrollment users. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 557 Chapter 7: Enrollment User Management Delete List of Enrollment Users Functionality – Deletes the list of enrollment users. HTTP Method – POST API URI – https://host/api/system/users/delete Request Payload XML String String String String String String String String Numeric Numeric String Numeric String JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Mandatory Description Value Yes Unique ID of the newly created enrollment user Response Payload XML String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description AcceptedItems Numeric Number of enrollment users successfully deleted FailedItems Numeric Number of enrollment users not deleted Fault Numeric XML/JSON block providing the details of the enrollment user that could not be removed Message String Reason for the enrollment user for not being deleted TotalItems Numeric Total number of enrollment users sent in the request VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 559 Chapter 7: Enrollment User Management Delete Specified Enrollment User Functionality – Deletes the specified enrollment user. HTTP Method – DELETE API URI – https://host/api/system/users/{id}/delete URI Parameters Tag Description id Enrollment user id Response Obtained – N/A Request Payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 560 Chapter 7: Enrollment User Management Bulk Delete Enrollment Users Functionality – Deletes a list of enrollment users from the AirWatch Console. HTTP Method – POST API URI – https://host/api/system/users/delete Request Payload XML Numeric Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 558 Chapter 7: Enrollment User ManagementNumeric String String Numeric String String JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description Value Yes (at least 1) The unique numeric identification of the enrollment users Response Payload XML Numeric Numeric JSON { "TotalItems": Numeric, "AcceptedItems": Numeric, "FailedItems": Numeric, "Faults": { "Fault": [ { "ErrorCode": Numeric, "ItemValue": Numeric, "Message": "String" }] } } Response Tag Details Tag Type Description TotalItems Numeric Total number of enrollment user IDs sent in the request AcceptedItems Numeric Number of enrollment users accepted for deletion FailedItems Numeric Number of enrollment users that could not be deleted Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP Status code for the failed element Message String Reason for the enrollment user not being deleted VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 562 Chapter 7: Enrollment User Management Search Enrollment Users Functionality – Searches for the enrollment user details. HTTP Method – GET API URI – https://host/api/system/users/search?firstname={firstname}&lastname={lastname}&email= {email}&locationgroupId={locationgroupid}&role={role}&username={username}&page={page}&pagesize= {pagesize}&orderby={orderby}&sortorder={sortorder} l l Exact Match Parameter – sortorder Pattern (Contains) Match Parameter – firstname, lastname, email, locationgroupid, role, username, page, pagesize, orderby URI Parameters Tag Description firstname First name of the user (Partial search string allowed) lastname Last name of the user (Partial search string allowed) email Email address of the users (Partial search string allowed) locationgroupid Unique identification of the Organization Group where the users are searched role Role assigned to the user username Username of the users (Partial search string allowed) page Specifies the page number pagesize Maximum records per page orderby Orders the results based on this attribute sortorder Sorting order. Allowed values are ASC or DESC. Defaults to ASC if this attribute is not specified Response Payload XML Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 561 Chapter 7: Enrollment User Management String Numeric Numeric String JSON "Users": [{ "Id":Numeric, "ContactNumber":"String", "CustomAttribute":"String", "Email":"String", "EmailUserName":"String", "EnrolledDevicesCount":"String", "FirstName":"String", "Group":"String", "LastName":"String", "LocationGroupId":"String", "MessageType":Numeric, "MobileNumber":"String", "Role":"String", "SecurityType":"String", "Status":Boolean, "UserName":"String" }] Response Tag Details Tag Type Description Total Numeric Total number of users present in the search result Page Numeric Current page number of the result PageSize Numeric Page size in terms of the number of users in a page Id Numeric Unique identification number of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 564 Chapter 7: Enrollment User Management Users Array Array of "Users" element in the result FirstName String First Name of the user LastName String Last Name of the user Status Boolean "True" indicates an Active User, "False" indicates an Inactive user Email String Email address of the enrollment user SecurityType String/Numeric Security type of the enrollment User. String: "Basic" for a basic enrollment User, and "Directory" for a directory enrollment user. Numeric: 1 for directory enrollment users and 2 for Basic enrollment users. MobileNumber String Desired mobile number of the enrollment user ContactNumber String Desired contact number of the Enrollment User. e.g.+1234567890 EmailUsername String Username of the directory user Group String Name of the organization group where the user will be created LocationGroupId Numeric Numeric ID of the Organization Group where the user will be created Role String Role associated with the user. Values are "Basic Access" and "Full Access" MessageType String/Numeric Type of the message sent to the enrollment user. Allowed String values: Email , SMS , and None. Allowed Numeric values : -1 for None, 0 for Email, and 1 for SMS EnrolledDevicesCount String Number of the devices enrollment by users CustomAttribute String Custom attribute for the enrollment users VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 565 Chapter 7: Enrollment User Management Search Enrolled Device Functionality – Retrieves enrolled device details for the query information provided in the request. HTTP Method – GET API URI – https://host/api/system/users/enrolleddevices/search?organizationgroupid= {organizationgroupid}&organizationgroup={organizationgroup}&platform={platform}&customattributes= {customattributes}&serialnumber={serialnumber}&seensince={seensince}&seentill={seentill}&enrolledsince= {enrolledsince}&enrolledtill={enrolledtill} l l Exact Match Parameter – platform Pattern (Contains) Match Parameter – organizationgroupid, organizationgroup, customattributes, serialnumber, seensince, seentill, enrolledsince, enrolledtill Request – N/A URI Parameters Tag Type Description organizationgroupid Numeric Organization group identifier in which device details are retrieved organizationgroup String Organization group name search parameter in which device details are retrieved platform String Platform filter for the device details to be retrieved customattributes String List of custom attribute names [separated by comma (,)] for which values should be returned serialnumber String Device serial number for which values should be returned seensince Datetime SeenSince DateTime, devices seen after the seensince datetime will be returned if present seentill Datetime SeenTill DateTime, devices seen till the seentill datetime will be returned if present enrolledsince Datetime EnrolledSince DateTime, devices enrolled after the enrolledsince datetime will be returned if present enrolledtill Datetime EnrolledTill DateTime, devices enrolled till the enrolledtill datetime will be returned if present VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 566 Chapter 7: Enrollment User Management Response Payload XML Numeric Numeric Numeric Numeric String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 563 Chapter 7: Enrollment User ManagementString Boolean String String String String String String String Numeric String String String JSON { "EnrolledDeviceInfoList":[{ "AssetNumber":"String", "CustomAttributes":[{ "Application":"String", "Name":"String", "Value":"String" }], "DeviceID":Numeric, "EnrolledDate":"String", "FriendlyName":"String", "LastSeen":"String", "OrganizationGroup":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 567 Chapter 7: Enrollment User Management "Platform":"String", "RegistrationDate":"String", "SerialNumber":"String", "UserName":"String" }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 568 Chapter 7: Enrollment User Management Response Tag Details Tag Type Description DeviceID Numeric Unique numeric identifier of the device SerialNumber String Serial number of the enrolled device AssetNumber String Asset number of the device FriendlyName String Friendly name of the device UserName String User name of the enrolled device EnrolledDate Datetime Enrolled date time stamp of the device RegistrationDate Datetime Time stamp of the device registration LastSeen Datetime Last seen time stamp of the device Platform String Device platform OrganizationGroup String Name of the organization group where the device is enrolled Application String Name of the application Name String Name of the custom attribute Value String Unique identification of the custom attribute VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 569 Chapter 7: Enrollment User Management Search Device Enrollment Token Functionality – Searches for enrollment token and device details using the query information provided. HTTP Method – GET API URI – https://host/api/system/users/enrollmenttoken/search?username={username}&userid= {userid}&organizationgroupid={organizationgroupid}&organizationgroup={organizationgroup}&serialnumber= {serialnumber}&assetnumber={assetnumber}&enrollmentstatusid={enrollmentstatusid}&complianceStatusID= {compliancestatusid} l l Exact Match Parameter – enrollmentstatusid, compliancestatusid Pattern (Contains) Match Parameter – username, userid, organizationgroupid, orgznizationgroup, serialnumber, assetnumber Request – N/A URL Parameters Tag Description username User name of the enrollment user for whom enrollment tokens are to be searched userid Identifier of the enrollment user for whom enrollment tokens are to be searched organizationgroupid Identifier of the Organization group where enrollment tokens are to be searched organizationgroup Organization group name where enrollment tokens need to be searched serialnumber Serial number of the device for which enrollment tokens are to be retrieved assetnumber Asset number of the device for which enrollment tokens are to be retrieved enrollmentstatusid Enrollment status of the device for which enrollment tokens are to be retrieved compliancestatusid Compliance status of the device for which enrollment tokens are to be retrieved Response Payload XML Numeric String String String String Datetime Datetime Datetime String String String String String String String String JSON { "Device":[{ "AssetNumber":"String", "ComplianceStatusID":Numeric, "CustomAttributes":[{ "Application":"String", "Name":"String", "Value":"String" }], "EnrollmentStatusID":Numeric, "FriendlyName":"String", "OrganizationGroup":"String", "SeriaNumber":"String", "Token":"String", "Username":"String" }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 571 Chapter 7: Enrollment User Management Response Tag Details Tag Type Description OrganizationGroup String Name of the Organization Group where enrollment tokens need to be searched UserName String User name of the device enrollment user for whom enrollment tokens need to be searched FriendlyName String Friendly name of the enrolled device for which the enrollment token is searched for EnrollmentStatusID Numeric Unique identifier of the device enrollment status AssetNumber String Asset Number of device for which enrollment tokens are to be retrieved Token String Enrollment token of the device SerialNumber String Serial number of device for which enrollment tokens are to be retrieved ComplianceStatusID Numeric Compliance status of device for which enrollment tokens are to be retrieved Name String Name of the application Application String Name of the enrolled device Value String Unique identification of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 572 Chapter 7: Enrollment User Management Register Device for an Enrollment User Functionality – Registers a device for the specified enrollment user. HTTP Method – POST API URI – https://host/api/system/users/{id}/registerdevice Response Payload – NA URI Parameters Tag Description id Enrollment user identification number Request Payloads XML String String String String String String Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 570 Chapter 7: Enrollment User Management String String String String String String String String String Numeric Numeric String String String JSON { "AssetNumber":"String", "CustomAttributes":[{ "Application":"String", "Source" : "String", "Name":"String", "Value":"String" }], "FriendlyName":"String", "Imei":"String", "LocationGroupId":Numeric, "MessageTemplateId":"String", "MessageType":"String", "ModelId":Numeric, "OperatingSystemId":Numeric, "Ownership":"String", "PlatformId":Numeric, "SIM":"String", "SerialNumber":"String", "Tags":[{ "Name":"String" }], "ToEmailAddress":"String", "ToPhoneNumber":"String", "Udid":"String"" IsMigration" : Boolean } Request Tag Details Tag Mandatory Description FriendlyName Yes Desired unique friendly name of the device LocationGroupId No Unique identification of the organization group where the device will be registered Ownership No Ownership type of the device. The allowed values are "c" (Corporate Dedicated), "s" (Corporate Shared) and "e" (Employee Owned) PlatformId No Numeric identification of the device platform. Refer Tables for the list of Platform IDs VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 574 Chapter 7: Enrollment User Management ModelId No Numeric identification of the device model. Refer Tables for the list of Model IDs OperatingSystemId No Numeric identification of the device Operating System. Refer Tables for the list of OS IDs Udid No UDID of the device SerialNumber No Serial Number of the device Imei No IMEI number of the device AssetNumber No Asset number of the device MessageType No Type of the message sent to the user for device activation. Allowed values: "Email" and "SMS" MessageTemplateId No Unique identification of the message template SIM No SIM Number of the desired device ToEmailAddress No Email address to which the device activation message needs to be sent ToPhoneNumber No Phone number to which the device activation message needs to be sent CustomAttribute Name No Name of the custom attribute CustomAttribute Application No Custom attribute application CustomAttribute Value No Value of the custom attribute Tag Name No Name of the tag associated with the register device Source IsMigration Important: When the "LocationGroupId" is not passed in the request payload, the device is registered at the Root Organization Group of the Authenticated user sending the API request. C# Sample Code using System; using System.IO; using System.Net; using System.Text; using System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string USER_NAME = "UserName1"; VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 575 Chapter 7: Enrollment User Management private private private private const const const const string string string string PASSWORD = "Password1"; API_TENANT_CODE = "API-Key"; HOST = "https://host"; MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void RegisterDevice() { try { var deviceDetails = new RegisterDeviceDetails(); deviceDetails.LocationGroupId = 661; deviceDetails.FriendlyName = "Test API"; deviceDetails.Ownership = ""; deviceDetails.PlatformId = 2; deviceDetails.Udid = "B7C1008925E380D834CF8CCF52E175D7"; deviceDetails.SerialNumber = ""; deviceDetails.Imei = ""; deviceDetails.ToEmailAddress = "user@domain.com"; deviceDetails.ToPhoneNumber = "4051234567"; const int userId = 115; var request = WebRequest.Create(HOST + string.Format("/api/system/users/ {0}/registerdevice", userId)) as HttpWebRequest; request.Method = "POST"; InitializeRequest(request); request.ContentType = MIME_TYPE; var xmlSerializer = new XmlSerializer(typeof (RegisterDeviceDetails)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); xmlSerializer.Serialize(writer, deviceDetails, xmlNamespace); inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 576 Chapter 7: Enrollment User Management var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader (errorMessageStream).ReadToEnd(); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 577 Chapter 7: Enrollment User Management Search Registered Device Functionality – Retrieves registered device details for the query information provided in the request. HTTP Method – GET API URI – https://host/api/system/users/registereddevices/search?organizationgroupid= {organizationgroupid}&organizationgroup={organizationgroup}&platform={platform}&customattributes= {customattributes}&assetNumber={assetnumber}&seensince={seensince}&seentill={seentill} l l Exact Match Parameter – platform Pattern (Contains) Match Parameter – organizationgroupid, organizationgroup, customattributes, assetnumber, seensince, seentill Request – N/A URI Parameters Tag Type Description organizationgroupid Numeric Organization group identifier in which device details will be retrieved organizationgroup String Organization group name search parameter in which device details will be retrieved platform String Platform filter for the device details to be retrieved assetnumber String Asset number filter for the device details to be retrieved customattributes String List of custom attribute names [separated by comma (,)] for which values should be returned seensince Datetime SeenSince DateTime, devices registered after the seensince datetime will be returned if present seentill Datetime SeenTill DateTime, devices registered till the seentill datetime will be returned if present Response Payload XML Numeric String String Numeric Numeric Numeric String String String String String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 573 Chapter 7: Enrollment User Management String String String String Boolean JSON { "RegisteredDeviceInfoList":[{ "AssetNumber":"String", "CustomAttributes":[{ "Application":"String", "Name":"String", "Value":"String" }], "FriendlyName":"String", "OrganizationGroup":"String", "Platform":"String", "RegistrationDate":"Datetime", "SerialNumber":"String", "UDID":"String", "Username":"String" }] } Response Tag Details Tag Type Description OrganizationGroup String Identifier of the Organization Group where registered device needs to be searched UserName String User name of the registered device FriendlyName String Friendly name of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 579 Chapter 7: Enrollment User Management AssetNumber String Asset Number of device to be retrieved UDID String UDID of the device RegistrationNumber Numeric Device registration number SerialNumber String Serial number of the registered device Platform String Device platform Name String Name of the application Application String Name of the enrolled device Value String Unique identification of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 580 Chapter 7: Enrollment User Management Delete Registered Devices Functionality – Deletes the registered devices identified by device parameters such as Asset number, User name, Udid, Serial number. HTTP Method – POST API URI – https://host/api/system/users/registereddevices/delete?searchby={searchby}&username={username} URI Parameters Tag Type Description searchby String The identifier type; Udid, Serialnumber, AssetNumber username String Username of the registered device Request Payload XML String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 578 Chapter 7: Enrollment User ManagementDatetime String String String String String String String String JSON { "BulkValues":{ "Value":["String"] } } Request Tag Details Tag Type Description Value String Value can be one of Asset number , UDID, and Serial number of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 581 Chapter 7: Enrollment User Management Response Payload XML String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description Total Items Numeric Total number of registered devices batched for deletion AcceptedItems Numeric Number of devices to which delete command was successfully sent FailedItems Numeric Number of devices that could not be deleted Faults Array Array of the "Fault" tag describing each detail of each failed instance VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 582 Chapter 7: Enrollment User Management Errorcode Numeric HTTP status code for the failed element Message String Reason for the delete action not being performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 583 Chapter 7: Enrollment User Management Change Organization Group of an Enrollment User Functionality – Changes the specified enrollment user's organization group. HTTP Method – POST API URI – https://host/api/system/users/{id}/changelocationgroup?targetLG={locationgroupid} Request Payload – NA Request Payload – NA URL Parameters Tag Description id Enrollment user id locationgroupid The new Location Group ID VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 584 Chapter 7: Enrollment User Management Activate an Enrollment User Functionality – Activates the enrollment user specified in the URL. HTTP Method – POST API URI – https://host/api/system/users/{id}/activate URI Parameters Tag Description id Enrollment user id Request Payload – NA Response Payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 585 Chapter 7: Enrollment User Management Bulk Activate Enrollment Users Functionality – Activates the list of enrollment users in bulk specified in the payload. HTTP Method – POST API URI – https://host/api/system/users/activate Request Payload XML Numeric Numeric Numeric Numeric String String Numeric String String JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description Value Yes (at least 1) The unique numeric identification of the enrollment users Response Payload XML Numeric Numeric JSON { "TotalItems": Numeric, "AcceptedItems": Numeric, "FailedItems": Numeric, "Faults": { "Fault": [ { "ErrorCode": Numeric, "ItemValue": Numeric, "Message": "String" }] } } Response Tag Details Tag Type Description TotalItems Numeric Total number of enrollment user IDs sent in the request AcceptedItems Numeric Number of enrollment users accepted for activation FailedItems Numeric Number of enrollment users that could not be activation Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP Status code for the failed element Message String Reason for the enrollment user not being activated VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 587 Chapter 7: Enrollment User Management Deactivate an Enrollment User Functionality – Deactivates the enrollment user specified in the URL. HTTP Method – POST API URI – https://host/api/system/users/{id}/deactivate URI Parameters Tag Description id Enrollment user id Request Payload – NA Response Payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 588 Chapter 7: Enrollment User Management Bulk Deactivate Enrollment Users Functionality – Deactivates the list of enrollment users in bulk specified in the payload. HTTP Method – POST API URI – https://host/api/system/users/deactivate Request Payload XML Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 586 Chapter 7: Enrollment User Management String Numeric Numeric String JSON { "BulkValues":{"value": [Numeric,Numeric]} } Request Tag Details Tag Mandatory Description Value Yes (at least 1) The unique numeric identification of the enrollment users Response Payload XML Numeric Numeric JSON { "TotalItems": Numeric, "AcceptedItems": Numeric, "FailedItems": Numeric, "Faults": { "Fault": [ { "ErrorCode": Numeric, "ItemValue": Numeric, "Message": "String" }] } } Response Tag Details Tag Type Description TotalItems Numeric Total number of enrollment user IDs sent in the request AcceptedItems Numeric Number of enrollment users accepted for deactivation FailedItems Numeric Number of enrollment users that could not be deactivation Faults Array Array of the "Fault" tag describing each detail of each failed instance ErrorCode Numeric HTTP Status code for the failed element Message String Reason for the enrollment user not being deactivated VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 590 Chapter 7: Enrollment User Management Upload S/MIME Certificates to an Enrollment User Functionality – Uploads encryption and signing certificates to the specified enrollment user. HTTP Method – POST API URI – https://host/api/system/users/{id}/uploadsmimecerts URI Parameters Tag Description id Enrollment user identifier Response Payload – NA Request Payload XML Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 589 Chapter 7: Enrollment User Management String Numeric Numeric String JSON { "Encryption": { "CertificatePayload":"String", "Password":"String" }, "Signing": { "CertificatePayload":"String", "Password":"String" } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 591 Chapter 7: Enrollment User Management Request Tag Details Tag Mandatory Description Encryption No Payload of the encryption certificate Signing No Payload of the signing certificate CertificatePayload No Certificate that is encoded as Base-64 String Password No Password of the encryption/signing certificate Important: You can send Encryption Certificate, Signing Certificate, or both the certificates in the payload. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 592 Chapter 7: Enrollment User Management Create Custom Attribute Functionality – Creates a new device custom attribute value for a registered device. HTTP Method – POST API URI – https://host/api/system/users/registereddevices/assetnumber/{assetnumber}/createcustomattributes You can also create the device custom attribute using the following parameter: l Serial Number – https://host/api/system/users/registereddevices/serialnumber/ {serialnumber}/createcustomattributes URI Parameters Tag Type Description assetnumber String Device asset number customattributes String Custom attribute name and value pairs Request Payload XML String String String String JSON { "CustomAttributes":[{ "Name":"String", "Value":"String" }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 593 Chapter 7: Enrollment User Management Request Tag Details Tag Mandatory Description Name Yes Name of the newly created custom attribute Value Yes Value associated with the newly created custom attribute. Response Payload XML String String String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 594 Chapter 7: Enrollment User Management Response Tag Details Tag Type Description Total Items Numeric Total number of device attributes to be created AcceptedItems Numeric Number of devices to which create command was successfully sent FailedItems Numeric Number of device custom attributes that could not be created Faults Array Array of the "Fault" tag describing each detail of each failed instance Errorcode Numeric HTTP status code for the failed element Message String Reason for the create custom attribute not being performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 595 Chapter 7: Enrollment User Management Update Custom Attribute Functionality – Updates the registered device custom attribute value if already present for a device, else adds the same to the device. HTTP Method – POST API URI – https://host/api/system/users/registereddevices/assetnumber/{assetnumber}/updatecustomattributes You can also update the device custom attribute using the following parameter: l Serial Number – https://host/api/system/users/registereddevices/serialnumber/ {serialnumber}/updatecustomattributes Request Payload XML Numeric Numeric Numeric String Numeric String String Numeric String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 596 Chapter 7: Enrollment User Management JSON { "CustomAttributes":[{ "Name":"String", "Value":"String" }] } Request Tag Details Tag Mandatory Description Name Yes Name of the custom attribute Value Yes Unique ID of the newly updated custom attribute Response Payload XML String String String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 597 Chapter 7: Enrollment User Management "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description Total Items Numeric Total number of device attribute updates sent in the request AcceptedItems Numeric Number of devices to which update command was successfully sent FailedItems Numeric Number of device custom attributes that could not be updated Faults Array Array of the "Fault" tag describing each detail of each failed instance Errorcode Numeric HTTP status code for the failed element Message String Reason for the custom attribute updated not being performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 598 Chapter 7: Enrollment User Management Delete Custom Attribute Functionality – Deletes the custom attributes for a registered device. HTTP Method – POST API URI – https://host/api/system/users/registereddevices/assetnumber/{assetnumber}/deletecustomattributes You can also delete the device custom attribute using the following parameter: l Serial Number – https://host/api/system/users/registereddevices/serialnumber/ {serialnumber}/deletecustomattributes Request Payload XML Numeric Numeric Numeric String Numeric String String Numeric String String JSON { "CustomAttributes":[{ "Name":"String" }] } Request Tag Details Tag Mandatory Description Name Yes Name of the custom attribute to be deleted VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 599 Chapter 7: Enrollment User Management Response Payload XML String String JSON { "AcceptedItems":Numeric, "FailedItems":Numeric, "Faults":{ "Fault":[{ "ErrorCode":Numeric, "ItemValue":"String", "Message":"String" }] }, "TotalItems":Numeric } Response Tag Details Tag Type Description Total Items Numeric Total number of delete device attribute requests sent AcceptedItems Numeric Number of devices to which delete command was successfully sent FailedItems Numeric Number of device custom attributes that could not be deleted Faults Array Array of the "Fault" tag describing each detail of each failed instance VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 600 Chapter 7: Enrollment User Management Errorcode Numeric HTTP status code for the failed element Message String Reason for the custom attribute delete not being performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 601 Chapter 7: Enrollment User Management Retrieve Authenticated Enrollment User Information Functionality – Retrieves information about the authenticated enrollment user returning user attributes or not. HTTP Method – GET API URI – https://host/api/system/users?attributes={attributes} Request Payload – NA URI Parameters Tag Type Description attributes Boolean Return enrollment user attributes or not Response Payload XML Numeric Numeric Numeric String Numeric String String Numeric String String JSON { "userId" : "String", "objectIdentifier" : "String", "userName" : "String", "fullName" : "String", "displayName" : "String", "firstName" : "String", "middleName" : "String", "lastName" : "String", "emailAddress" : "String", "emailUserName" : "String", "mobilePhone" : "String", "phoneNumber" : "String", "distinguishedName" : "String", "userPrincipalName" : "String", "department" : "String", "status" : "String", "lockoutTime" : "String", "lastModified" : "String", "employeeId" : "String", "costCenter" : "String", "managerDistinguishedName" : "String", "domain" : "String", "customAttribute1" : "String", "customAttribute2" : "String", "memberOf" : [ { "externalId" : "String", "distinguishedName" : "String" } ] } Response Tag Details Tag Type Description userId String Id of the enrollment user userName String Name of the enrollment user fullName String Full name of the enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 603 Chapter 7: Enrollment User Management displayName String Display name of the enrollment user firstName String First name of the enrollment user middleName String Middle name of the enrollment user lastName String Last name of the enrollment user emailAddress String Email address of the enrollment user emailUserName String Email name of the directory user mobilePhone String Mobile phone number of the enrollment user phoneNumber String Phone number of the enrollment user distinguishedName String Distinguished name of the enrollment user userPrincipalName String Principal name of the enrollment user department String Department of the enrollment user status String Status of the enrollment user lockoutTime String Timestamp of the lock out time employeeId String Employee id of the enrollment user costCenter String Organization department of the enrollment user domain String Domain of the enrollment user customAttribute String Custom attribute for the enrollment users VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 604 Chapter 7: Enrollment User Management Retrieve AirWatch Version and API URLs Functionality – Retrieves information about AirWatch version and API URLs. HTTP Method – GET API URI – https://host/api/system/info Request Payload – NA Response Payload XML String String String String String String String String String String String String String String String String String String String String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 602 Chapter 7: Enrollment User ManagementString JSON { "ProductName" : "String", "ProductCopyright" : "String", "ProductVersion" : "String", "Version" : Numeric, "Resources" : { "Collections" : [], "Workspaces" : [] } } Response Tag Details Tag Type Description ProductName String Name of the product ProductCopyright String Copyrights content of the product ProductVersion String Version of the product Version Numeric API version that you want to retrieve supported workspace VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 605 Chapter 7: Enrollment User Management Resources String Name and location of the supported workspace VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 606 Chapter 8: Mobile Email Management Overview 608 Search 608 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 607 Chapter 8: Mobile Email Management Overview AirWatch REST APIs enables you to manage emails on devices. Email management device details, and compliance policies can be viewed in the following path on the AirWatch Console : l Email Device Details – Email > List > View Devices. l Email compliance Policies – Email > Compliance Policies. Search Functionality – Searches for the MEM devices. HTTP Method – GET API URI – https://host/api/mem/memdevices/search?organizationgroupid={ogid}&page={page}&pagesize={pagesize} Request Body – NA Response Payload XML String String String Numeric JSON { "Page":Numeric, "PageSize":Numeric, "Total":Numeric, "MEMDevices":[{ "EASDeviceID":"String", "EasDeviceType":"String", "EmailAddress":"String", "FriendlyName":"String", "MEMDeviceID":Numeric, "Managed":"String", "Platform":"String", "Reason":"String", "Status":"String" }] } Response Tag Details Tag Type Description EASDeviceID String Unique identification of the device with EAS account to be searched for EasDeviceType String Type of the device with EAS account to be searched for EmailAddress String Email address of the device user FriendlyName String Friendly name of the device MEMDeviceID Numeric Unique identification of the device with MEM Managed String Managed MEM device Platform String Platform of the device Reason String Reason for the MEM device searched for Status String Status of the device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 609 Chapter 9: Organization Group Management Create Organization Group (*Refactored) 612 Update Organization Group Details (*Refactored) 619 Fetch Organization Group's Details 622 Fetch Child Organization Group's Details (*Refactored) 624 Search Organization Group 626 Delete Organization Group (*Refactored) 629 Fetch Admin User Details in an Organization Group (*Refactored) 631 Fetch Enrollment Users in an Organization Group (*Refactored) 634 Fetch Admin User Roles From an Organization Group 637 Add Device Tag to an Organization Group (*Refactored) 639 Update Device Tag Details (*Refactored) 642 Retrieve Details of All Tags 645 Retrieve Specific Device Tag Details 646 Delete Device Tag From an Organization Group 647 Retrieve Device Count 648 Storage: Retrieve Storage Values (Application and Content) 651 Sampling Rates: Retrieve Sampling Rates (*Refactored) 653 Get Custom Attribute 656 Create APNs Cert Request 658 Retrieve Status of APNs Configuration 660 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 610 Chapter 9: Organization Group Management Update APNs Configuration 662 Save APNs Configuration 663 Create Express Licenses 665 Query for Pinned Host By HostGuid 667 Update Pinned Host 668 Pin Certificate to a Pinned Host 669 Unpin Certificate from a Pinned Host 670 Enable SSL Pinning 671 Disable SSL Pinning 671 Synchronize Pin with Auto Discovery 672 Enable Pin Relation 673 Disable Pin Relation 673 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 611 Chapter 9: Organization Group Management Create Organization Group (*Refactored) Version 1 AirWatchREST APIs allows you to manage all the core functionalities around the Organization Groups. Organization Group details can be viewed at Groups & Settings > Groups > Organization Groups. Functionality – Creates a new Organization Group under the desired Organization Group. HTTP Method – POST Deprecated API URI – https://host/api/system/groups/{id}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/id URI Parameters Tag Description id The parent Organization Group identifier Request Payload XML Numeric Numeric Numeric Numeric String String String String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 608 Chapter 8: Mobile Email Management Numeric String String String String String String String String JSON { "AddDefaultLocation" : "String", "Country" : "String", "GroupId" : "String", "Locale" : "String", "LocationGroupType" : "String", "Name" : "String" } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 612 Chapter 9: Organization Group Management Request Tag Details Tag Mandatory Description Name Yes Desired name of the Organization Group GroupId No Group ID used for enrollment of devices LocationGroupType Yes Specifies the type of the Organization Group. Examples : Customer, and Partner. Country Yes Specifies the country assigned to the Organization Group Locale Yes Organization Group locale. Refer Important section below. AddDefaultLocation Yes Provide any value other than "No" for adding a default location to the Organization Group Important: l Locale of an Organization Group can be provided in two formats: o Using Locale Description. Example: German (Germany). Refer Tables for the available Locale Description. o Using Locale Code. Example “de-DE”. Refer Tables for the available Locale Codes. Response Payload XML String String String String String String numeric JSON { "Value" : numeric } Response Tag Details Tag Type Description OG ID Numeric Identifier of the Organization Group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 613 Chapter 9: Organization Group Management C# Sample Code using using using using using System; System.IO; System.Net; System.Text; System.Xml.Serialization; namespace AirwatchApiClient { class Program { #region Constants private const string private const string private const string private const string private const string USER_NAME = "UserName1"; PASSWORD = "Password1"; API_TENANT_CODE = "API-Key"; HOST = "https://host"; MIME_TYPE = "application/xml"; #endregion public static void InitializeRequest(HttpWebRequest request) { request.Headers.Add("aw-tenant-code", API_TENANT_CODE); request.Credentials = new NetworkCredential(USER_NAME, PASSWORD); request.KeepAlive = false; request.AddRange(1024); request.Timeout = 10000; } public static void CreateLocationGroup() { try { var locationGroup = new LocationGroup(); locationGroup.Name = "New_OG"; locationGroup.GroupId = "NewOG"; locationGroup.LocationGroupType = "Division"; locationGroup.AddDefaultLocation = "YES"; int id = 661; var request = WebRequest.Create(HOST + "/api/system/groups/" + id + "/creategroup") as HttpWebRequest; request.Method = "POST"; request.ContentType = MIME_TYPE; InitializeRequest(request); var xmlSerializer = new XmlSerializer(typeof(LocationGroup)); string inputString; using (var writer = new StringWriter()) { var xmlNamespace = new XmlSerializerNamespaces(); xmlNamespace.Add(string.Empty, Metadata.RESOURCE_NAMESPACE); xmlSerializer.Serialize(writer, locationGroup, xmlNamespace); VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 614 Chapter 9: Organization Group Management inputString = writer.ToString(); } byte[] requestBytes = Encoding.UTF8.GetBytes(inputString); request.ContentLength = inputString.Length; Stream requestStream = request.GetRequestStream(); requestStream.Write(requestBytes, 0, requestBytes.Length); requestStream.Close(); var response = (HttpWebResponse)request.GetResponse(); Console.WriteLine(new StreamReader(response.GetResponseStream ()).ReadToEnd()); response.Close(); } catch (WebException e) { if (e.Response != null) { var errorMessageStream = e.Response.GetResponseStream(); string message = new StreamReader(errorMessageStream).ReadToEnd (); Console.WriteLine(message); } else { Console.WriteLine(e.Message); } } catch (Exception e) { Console.WriteLine(e.Message); } } } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 615 Chapter 9: Organization Group Management Version 2 AirWatchREST APIs allows you to manage all the core functionalities around the Organization Groups. Organization Group details can be viewed at Groups & Settings > Groups > Organization Groups. Both Version 1 and Version 2 shares the same URI endpoint but with different request body. You must add the following to the accept header to make an API call using Version 2: l application/xml;version=2 l application/json;version=2 Functionality – Creates a new Organization Group under the desired Organization Group. HTTP Method – POST *Supported API URI – https://host/api/system/groups/{id} URI Parameters Tag Description id The parent Organization Group identifier Request Payload XMLJSON { "AddDefaultLocation" : "String", "Country" : "String", "EnableRestApiAccess" : "Boolean", "GroupId" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 616 Chapter 9: Organization Group Management "Locale" : "String", "LocationGroupType" : "String", "Name" : "String" } Request Tag Details Tag Mandatory Description Name Yes Desired name of the Organization Group GroupId No Desired group ID used for enrollment LocationGroupType Yes Type of the Organization Group Country Yes Country details of the Organization Group Locale Yes Locale details of the Organization Group. Refer Important section below. AddDefaultLocation No Add custom default location EnableRestApiAccess No Enables or disables REST API access Important: l Locale of an Organization Group can be provided in two formats: o Using Locale Description. Example: German (Germany). Refer Tables for the available Locale Description. o Using Locale Code. Example “de-DE”. Refer Tables for the available Locale Codes. Response Payload XML Numeric String String String String String String Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 617 Chapter 9: Organization Group Management JSON { "Id" : Numeric, "RestApiAccess" : { "Status" : String, "DefaultAdminApiKey" : "String", "EnrollmentUserApiKey" : "String" } } Response Tag Details Tag Mandatory Description ID Yes Identifier of the Organization Group Status No The status of the API access. Displayed only when EnableRestAPIAccess is true. Supported values are 1 (error) and 0 (enabled). DefaultAdminApiKey No The default admin API key. Displayed only when EnableRestAPIAccess is true. EnrollmentUserApiKey No The default enrollment user API key. Displayed only when EnableRestAPIAccess is true. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 618 Chapter 9: Organization Group Management Update Organization Group Details (*Refactored) Functionality – Updates the details of an organization group. HTTP Method – POST Deprecated API URI – http://host/api/system/groups/{id}/update. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id} (HTTP method used – PUT) URI Parameters Tag Description id Unique organization group identifier Response Payload – NA Request Payload XML Numeric String String String JSON { "Name": "String", "GroupId":"String", "LocationGroupType": "String", "Country":"String", "Locale":"String" } Request Tag Details Tag Mandatory Description Name No Desired name of the organization group GroupId No Desired group ID of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 619 Chapter 9: Organization Group Management LocationGroupType No Location type of the organization group Country No Country of the organization group Locale No Locale of the organization group Important: Admin can choose to modify one or more details of the organization group by including the desired tags in the request. Response Payload XML String String String String String JSON { "Name":"String", "GroupId":"String", "LocationGroupType":"String", "Country":"String", "Locale":"String", "ParentLocationGroup": { "Id": { "Value":Numeric }, "Name":"String" }, "AddDefaultLocation":"String", "CreatedOn":"Datetime", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 620 Chapter 9: Organization Group Management "LgLevel":Numeric, "Users":"String", "Admins":"String", "Devices":"String", "Id": { "Value":Numeric } } Response Tag Details Tag Type Description Name String Name of the organization group GroupId String Unique identifier of the organization group LocationGroupType String Type of the organization group Country String Country details of the organization group Locale String Locale details of the organization group ParentLocationGroup Id Numeric Unique identifier of the parent organization group ParentLocationGroup Name String Name of the parent organization group AddDefaultLocation String Default location details CreatedOn Datetime Time stamp when the organization group was created LgLevel Numeric Level of the organization group Users String Users in the organization group Admins String Admins in the organization group Devices id Numeric Unique identifier of the device in the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 621 Chapter 9: Organization Group Management Fetch Organization Group's Details Functionality – Retrieves the details of the organization group. HTTP Method – GET API URI – http://host/api/system/groups/{id} URI Parameters Tag Description id The organization group ID Request Body – NA Response Payload XML Numeric String String String String String Numeric String Datetime Numeric String String String Numeric String Numeric String String String Datetime Numeric Numeric Numeric JSON "Id": {"Value": Numeric} "Name": "String", "GroupId": Numeric, "LocationGroupType": "String", "Country": "String", "Locale": "String", "CreatedOn": "Datetime", "Users": Numeric, "Admins": Numeric, "Devices": Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 622 Chapter 9: Organization Group Management Response Tag Details Tag Type Description Id Numeric Unique identification of the organization group Name String Name of the organization group GroupId Numeric Group ID assigned to the organization group LocationGroupType String Type of the organization group. Example : Global, Customer, Partner etc Country String Country assigned to the organization group Locale String Locale of the user Created On Datetime Time stamp of the created organization group Users Numeric Number of enrollment users in the organization group Admins Numeric Number of console admin users in the organization group Devices Numeric Number of enrolled/unenrolled devices present in the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 623 Chapter 9: Organization Group Management Fetch Child Organization Group's Details (*Refactored) Functionality – Fetches the details of the given organization group as well as the details of all its child organizations groups. HTTP Method – GET Deprecated API URI – https://host/api/system/groups/{id}/getchild. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id}/children (HTTP Method Used – GET) URI Parameters Tag Description id The parent organization group ID Request Body – NA Response Payload XMLJSON "Name":String, "GroupId": String, "LocationGroupType": "String", "Country": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 624 Chapter 9: Organization Group Management "Locale": "String", "ParentLocationGroup": {"Location": Numeric}, "CreatedOn": "Datetime", "LgLevel": Numeric, "Users": Numeric, "Admins": Numeric, "Devices": Numeric, "Id": {"Value": Numeric} Request Tag Details Tag Type Description Name String Name of the organization group GroupId String The group ID assigned to the organization group LocationGroupType String Type of the organization group Country String Country of the organization group Locale String Locale of the organization group ParentLocationGroup Numeric Unique numeric identifier of the immediate parent of the organization group CreatedOn Datetime Time stamp when the organization group created LgLevel Numeric Specifies the level in the hierarchy of the organization group. Parent will have level=0, Immediate Child=1, Grandchild=2 and so on Users Numeric Number of enrollment users in the organization group Admins Numeric Number of console admin users in the organization group Devices Numeric Number of enrolled/unenrolled devices present in the organization group Id Numeric Unique numeric identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 625 Chapter 9: Organization Group Management Search Organization Group Functionality – Searches for Organization Group Details based on the parameters provided in the URL. HTTP Method – GET API URI – http://host/api/system/groups/search?name={name}&type={type}&groupid={groupid}&orderby= {orderby}&page={page}&pagesize={pagesize}&sortorder={sortorder} l Exact Match Parameter – type, sortorder l Pattern (Contains) Match Parameter – name, groupid, orderby, page, pagesize Request Body – NA Important: Partial Strings can be provided for the "Name" parameter above. However complete "Type" and "GroupId" values need to be provided for a successful search. URL Parameters Tag Description name The organization group name to search for type The organization group type to search for groupid The organization group identifier[Activation code] to search for.[Exact match is performed for this attribute] orderby Orders the results based on this attribute-value[Valid values are: Id/Name/GroupId/LocationGroupType] page It specifies the page number pagesize Maximum records per page sortorder Sorting order. Allowed values are ASC or DESC. Defaults to ASC if this attribute is not specified. Response Payload XML Numeric String String String String String Numeric Datetime Numeric Numeric Numeric Numeric JSON "LocationGroups": { "Id": String "Name": String, "GroupId": String, "LocationGroupType": String, "Country": String, "Locale": String, "CreatedOn": Datetime, "LgLevel":Numeric, "Users": Numeric, "Admins": Numeric, "Devices": Numeric, } Response Tag Details Tag Type Description Name String Name of the organization group GroupId String Group ID assigned to the organization group LocationGroupType String Type of the organization group Country String Country assigned to the organization group Locale String Locale of the organization group CreatedOn Datetime Time stamp of the organization group creation LgLevel Numeric Level of the organization group Users Numeric Number of enrollment users present in the organization group Admins Numeric Number of admin users present in the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 627 Chapter 9: Organization Group Management Devices Numeric Number of devices enrolled/unenrolled in the organization group Id Numeric Unique numeric identifier of the organization group Page Numeric Page number of the result PageSize Numeric Number of organization group’s details returned per page Total Numeric Total number of organization groups satisfying the given parameters VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 628 Chapter 9: Organization Group Management Delete Organization Group (*Refactored) Functionality – Deletes the organization group identified by its unique numeric Id. HTTP Method – DELETE Deprecated API URI – https://host/api/system/groups/{id}/delete. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id} (HTTP Method Used – DELETE) URI Parameters Tag Description id The organization group ID Request Payload – NA Response Payload XML Numeric Numeric Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 626 Chapter 9: Organization Group ManagementString String String String Datetime Numeric Numeric Numeric Numeric JSON { "Name":"String", "GroupId":"String", "LocationGroupType":"String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 629 Chapter 9: Organization Group Management "Country":"String", "Locale":"String", "ParentLocationGroup": { "Id": { "Value":Numeric }, "Name":"String" }, "AddDefaultLocation":"String", "CreatedOn":"Datetime", "LgLevel":Numeric, "Users":"String", "Admins":"String", "Devices":"String", "Id": { "Value":Numeric } } Response Tag Details Tag Type Description Name String Name of the organization group GroupId String Unique identifier of the organization group LocationGroupType String Type of the organization group Country String Country details of the organization group Locale String Locale details of the organization group ParentLocationGroup Id Numeric Unique identifier of the parent organization group ParentLocationGroup Name String Name of the parent organization group AddDefaultLocation String Default location details CreatedOn Datetime Time stamp when the organization group was created LgLevel Numeric Level of the organization group Users String Users in the organization group Admins String Admins in the organization group Devices id Numeric Unique identifier of the device in the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 630 Chapter 9: Organization Group Management Fetch Admin User Details in an Organization Group (*Refactored) Functionality – Retrieves the details of all the console admin users in an organization group. HTTP Method – GET Deprecated API URI – https://host/api/system/groups/{id}/getadmins. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id}/admins (HTTP Method Used – GET) URI Parameters Tag Description id The organization group ID Request Body – NA Response Payload XML Numeric String String String String String Numeric String Datetime Numeric String String String Numeric String String String String String Numeric String String String Datetime Numeric String String Numeric Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 631 Chapter 9: Organization Group Management JSON "UserName": "String", "FirstName": "String", "LastName": “String", "Email": "String", "LocationGroup": "String", "LocationGroupId": Numeric, "TimeZone": “String", "Locale": “String", "InitialLandingPage": "String", "LastLoginTimeStamp": "Datetime“, "RequiresPasswordChange":Boolean, "Roles": [{ "Id": Numeric, "Name": “String", "LocationGroup": "String", "LocationGroupId": Numeric }], "IsActiveDirectoryUser": Boolean, "Id": {"Value": Numeric} Response Tag Details Tag Type Description Id Numeric Unique identification of the admin user UserName String Unique name of the admin user FirstName String First name of the admin user Last Name String Last name of the admin user Email String Email of the admin user LocationGroup String Name of the organization group of the admin user LocationGroupId Numeric Unique identification of the organization group of the admin user TimeZone String Time zone of the admin user Locale String Locale of the admin user InitialLandingPage String Initial landing page to be displayed on the console for the admin user LastLoginTimeStamp Datetime Time stamp of the last login into the console by the admin user Role Id Numeric Role id of the admin user Role Name String Name of the role Role LocationGroup String Organization group where the role is assigned Role LocationGroupId Numeric Unique identification of the Organization group where the role is assigned VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 632 Chapter 9: Organization Group Management IsActiveDirectoryUser Boolean "TRUE" for a Directory User, "FALSE" for a Basic User RequiresPasswordChange Boolean True/False if the password change is required Note: The tag is an Array of roles assigned to the AirWatch Console User. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 633 Chapter 9: Organization Group Management Fetch Enrollment Users in an Organization Group (*Refactored) Functionality – Retrieves the details of all the enrollment users in an organization group. HTTP Method – GET Deprecated API URI – https://host/api/system/groups/{id}/getusers. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id}/users (HTTP Method Used – GET) URI Parameters Tag Description id The organization group ID Request Body – NA Response Payload XML JSON { "CustomAttribute":"String", "UserName": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 634 Chapter 9: Organization Group Management "FirstName": "String", "LastName": "String", "Status": Boolean, "Email": "String", "SecurityType":"String" "ContactNumber": "String", "MobileNumber":"String", "EmailUserName": "String", "Group": "String", "LocationGroupId" :"String", "Role": "String", "MessageType": String, "EnrolledDevicesCount": "String", "ExternalId":"String", } Response Tag Details Tag Type Description UserName String Unique name of the enrollment User FirstName String First name of the enrollment user LastName String Last name of the enrollment user Status Boolean "True" indicates Active User, "False" indicates an Inactive user Email String Email of the enrollment user SecurityType String/Numeric Security type of the enrollment User. In XML payload, you can pass String values ("Basic" for a basic enrollment User, and "Directory" for a directory enrollment user) and Numeric values (1 for directory enrollment users and 2 for Basic enrollment users). For JSON payload, you can pass only Numeric values. ContactNumber String Contact number of the enrollment user MobileNumber String Mobile number of the enrollment user EmailUserName String Email user name of a directory enrollment user Group String Name of the organization group where the enrollment user is created LocationGroupId String Unique identification of the organization group where the enrollment user is created Role String Role assigned to the enrollment user. The valid values are Full Access/Basic Access MessageType String/Numeric Message type for the notification to the enrollment user. The valid values are Email, SMS, and Push EnrolledDevicesCount String Number of devices enrolled to the user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 635 Chapter 9: Organization Group Management CustomAttribute String Name of the custom attributes ExternalId String Track Id of the device enrollment user VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 636 Chapter 9: Organization Group Management Fetch Admin User Roles From an Organization Group Functionality – Retrieves the list of roles in an organization group that could be assigned to an AirWatch Console user. HTTP Method – GET API URI – https://host/api/system/groups/{id}/roles URI Parameters Tag Description id The organization group ID Request Body – NA Response Payload XML String String String Boolean String String String String String String Numeric String String String String String JSON "Id":Numeric, "Name": "String", "Description": "String", "LocationGroup": "String", "LocationGroupId": Numeric Response Tag Details Tag Type Description Id Numeric Unique numeric Identifier of the admin user role Name String Name of the admin user role Description String Description provided for the admin user role LocationGroup String Name of the organization group where the admin user role is present VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 637 Chapter 9: Organization Group Management LocationGroupId Numeric Unique identification of the organization group where the admin user role is present VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 638 Chapter 9: Organization Group Management Add Device Tag to an Organization Group (*Refactored) Functionality – Adds a device tag to the organization group specified in the endpoint URL. HTTP Method – POST Deprecated API URI – https://host/api/system/groups/{id}/addTag. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id}/tags (HTTP Method Used – POST) Request Payload XML Tag> Numeric String String String Numeric String String Numeric Numeric JSON { "TagName":"String", "TagAvatar":"String", "TagType":Numeric "LocationGroupId":Numeric } Request Tag Details Tag Mandatory Description TagName Yes Desired unique name of the device tag TagType Yes Type of the device tag. Allowed values are String: Device, General and Numeric: “1” for Device and “2” for General" LocationGroupId Yes Unique numeric ID of the organization group where the tag will be created VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 639 Chapter 9: Organization Group Management Response Payload XMLJSON { "OGId": { "Id": { "Value":Numeric }, "Name":"String" }, "Tags":[ { "Id":Numeric, "TagAvatar":"String/Numeric", "TagName":"String", "TagType":Numeric/String, "LocationGroupId":Numeric } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 640 Chapter 9: Organization Group Management Response Tag Details Tag Data Type Description Name String Name of the organization group Tags Id Numeric Unique identifier of the tag TagName String Name of the tag to be added TagType Numeric/String Type of the tag to be added LocationGroupId Numeric Unique identifier of the organization group where the tag will be created VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 641 Chapter 9: Organization Group Management Update Device Tag Details (*Refactored) Functionality – Update the details of any tag in an organization group. HTTP Method – POST Deprecated API URI – http://host/api/system/groups/{ogid}/tags/{tagid}/update. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{ogid}/tags/{tagid} (HTTP Method Used – PUT) Request Payload XML Numeric Numeric Numeric 1 Numeric String String String/Numeric Numeric JSON { "TagAvatar":"String", "TagName":"String", "TagType":"String/Numeric", } Request Tag Details Tag Mandatory Description TagName No Desired unique name of the device tag TagType No Type of the device tag. Allowed values, String: Device, General or Numeric: “1” for Device and “2” for General" Important: Admin can choose to modify one or more details of the device tag by including the desired tags in the request body. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 642 Chapter 9: Organization Group Management Response Payload XML String String String JSON { "OGId": { "Id": { "Value":Numeric }, "Name":"String" }, "Tags":[ { "Id":Numeric, "TagAvatar":"String/Numeric", "TagName":"String", "TagType":Numeric/String, "LocationGroupId":Numeric } } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 643 Chapter 9: Organization Group Management Response Tag Details Tag Data Type Descrription Name String Name of the organization group Tags Id Numeric Unique identifier of the tag TagName String Name of the tag to be added TagType Numeric/String Type of the tag to be added LocationGroupId Numeric Unique identifier of the organization group where the tag will be created VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 644 Chapter 9: Organization Group Management Retrieve Details of All Tags Functionality – Retrieves the details of all the device tags present in an organization group. HTTP Method – GET API URI – http://host/api/system/groups/{id}/tags Request Body – NA Response Payload XML Numeric Numeric Numeric 1 Numeric String String String/Numeric Numeric JSON "Tags": [{"Id": Numeric, "TagName":"String", "TagType": "String/Numeric", "LocationGroupId": Numeric }] Response Tag Details Tag Type Description ID Numeric Unique identification of the device tag TagName String Name of the device tag TagType Numeric/String Type of the device tag. Allowed values, String: Device, General or Numeric: “1” for Device and “2” for General" LocationGroupId Numeric Unique identification of the organization group where the tag is present Note: Tags are inherited from all the parents of an organization group in the chain of hierarchy. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 645 Chapter 9: Organization Group Management Retrieve Specific Device Tag Details Functionality – Retrieves the details of a specific device tag present in a organization group. HTTP Method – GET API URI – http://host/api/system/groups/{ogid}/tags/{tagid} Request Body – NA Response Payload XML Numeric String String/Numeric Numeric JSON "Id": Numeric, "TagName":"String", "TagType":"String", "LocationGroupId": Numeric Response Tag Details Tag Type Description ID Numeric Unique numeric identifier of the device tag TagName String Unique name of the device tag TagType String Type of the device tag. Allowed values, String: Device, General or Numeric: “1” for Device and “2” for General" LocationGroupId Numeric Unique numeric identifier of the organization group where the tag is present VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 646 Chapter 9: Organization Group Management Delete Device Tag From an Organization Group Functionality – Deletes a tag identified by the tag id from the organization group. HTTP Method – DELETE API URI – http://host/api/system/groups/{ogid}/tags/{tagid} Request Body – NA Response Payload – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 647 Chapter 9: Organization Group Management Retrieve Device Count Functionality – Returns the Device Count for all the Organization Groups that are available under the specified Organization Group. HTTP Method – GET API URI – https://host/api/system/groups/devicecounts?organizationgroupid={organizationgroupid}&seensince= {seensince}&seentill={seentill}&page={page}&pagesize={pagesize} Request Payload – NA URI Parameters Tag Description organizationgroupid Organization Group to be searched, user's OG is considered if not sent seensince Filter devices such that devices with last seen after this date will be returned seentill Filter devices such that devices with last seen till this date will be returned page Page Number pagesize Max records per page Note: Accepted DateTime formats – "yyyy/MM/dd", "yyyy-MM-dd", "MM/dd/yyyy", "MM-dd-yyyy", "yyyy/MM/dd HH:mm:ss.fff", "yyyy-MM-dd HH:mm:ss.fff", "MM/dd/yyyy HH:mm:ss.fff", "MM-dd-yyyy HH:mm:ss.fff", "yyyy/MM/ddTHH:mm:ss.fff", "yyyy-MM-ddTHH:mm:ss.fff", "MM/dd/yyyyTHH:mm:ss.fff", "MMdd-yyyyTHH:mm:ss.fff", "yyyy-MM-dd HH-mm-ss-tt". Response Payload XML Numeric String String Numeric JSON { "LocationGroups" : [ { "LocationGroupId" : Numeric, "LocationGroupName" : "String", "TotalDevices" : Numeric, "DeviceCountByEnrollmentStatus" : { "Discovered" : Numeric, "Registered" : Numeric, "EnrollmentInProgress" : Numeric, "Enrolled" : Numeric, "EnterpriseWipePending" : Numeric, "DeviceWipePending" : Numeric, "Retired" : Numeric, "Unenrolled" : Numeric, "AppCatalogOnly" : Numeric, "BlackListed" : Numeric, "PendingAgent" : Numeric, "UnenrolledByFeedbackService" : Numeric } } ], "Page" : Numeric, "PageSize" : Numeric, "Total" : Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 649 Chapter 9: Organization Group Management Response Tag Details Tag Type Description LocationGroupId Numeric Unique identifier of the organization group LocationGroupName String Name of the organization group TotalDevices Numeric Total number of devices in the specified organization group Discovered Numeric Number of discovered devices in the specified organization group Registered Numeric Number of registered devices in the specified organization group EnrollmentInProgress Numeric Number of devices in EnrollmentInProgress status in the specified organization group Enrolled Numeric Number of enrolled devices in the specified organization group EnterpriseWipePending Numeric Number of devices with pending enterprise wipe status DeviceWipePending Numeric Number of devices with pending device wipe status Retired Numeric Number of retired devices in the specified organization group Unenrolled Numeric Number of unenrolled devices in the specified organization group AppCatalogOnly Numeric Number of devices with installed App catalog only BlackListed Numeric Number of devices that are blacklisted PendingAgent Numeric Number of devices with pending agent UnenrolledByFeedbackService Numeric Number of devices with that are unenrolled by feedback service Page Numeric Current page number of the result PageSize Numeric Page size in terms of the number of devices in a page Total Numeric Total number of devices present in the search result VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 650 Chapter 9: Organization Group Management Storage: Retrieve Storage Values (Application and Content) Functionality – Retrieves the application and content storage values configured for an organization group. HTTP Method – GET API URI – http://host/api/system/groups/{organizationgroupid}/storage Request Body – NA Response Payload XML Numeric Numeric Numeric Numeric String Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 648 Chapter 9: Organization Group ManagementNumeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric JSON "ApplicationCapacity":Numeric, "ApplicationOverage":Numeric, "ApplicationMaxFileSize":Numeric, "ContentCapacity":Numeric, "ContentOverage":Numeric, "ContentMaxFileSize":Numeric Response Tag Details Tag Type Description ApplicationCapacity Numeric Total application capacity ApplicationOverage Numeric Application overage capacity ApplicationMaxFileSize Numeric Maximum size allowed for an application file ContentCapacity Numeric Total content capacity ContentOverage Numeric Content overage capacity ContentMaxFileSize Numeric Maximum size allowed for one content file VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 651 Chapter 9: Organization Group Management Important: All Values in the above parameters are in MB. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 652 Chapter 9: Organization Group Management Sampling Rates: Retrieve Sampling Rates (*Refactored) Functionality – Retrieves the sampling rates for various platforms configured in an organization group. HTTP Method – GET Deprecated API URI – http://host/api/system/groups/{id}/sampleratesbyplatform?platform={platform}. This URI will be deprecated soon. Start using the *Supported API URI. *Supported API URI – https://host/api/system/groups/{id}/samplerates?platform={platform} (HTTP Method Used – GET) URI Parameters Tag Description id The organization group ID platform The name of the platform Request Body – NA Response Payloads XML Numeric Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 653 Chapter 9: Organization Group Management JSON { "ID":String, "PlatformID":String, "Platform": "String", "HeartbeatInterval":" String ", "DataSampleInterval":" String ", "DataTransmitInterval":String, "ProfileRefreshInterval":" String ", "GPSSampleInterval":" String ", "AgentPollingInterval": "String", "BeaconInterval":"String", "ApplicationListSample":String, "DeviceInformationSample":String, "ApplicationListSample":"String", "CertificateListSample":"String", "ProfileListSample":String, "ProvisioningProfileListSample":" String ", "RestrictionListSample":"String", "SecurityInformationSample":"String", "ManagedAppListSample":"String", "CheckInInterval":"String" } Response Tag Details Tag Data Type Description ID String Unique String identifier of the organization group PlatformID String Unique String identifier of the platform Platform String The device platform HeartbeatInterval String Heartbeat interval in minutes DataSampleInterval String Data information sample interval in minutes DataTransmitInterval String Data transmit interval in minutes ProfileRefreshInterval String Profile refresh interval in minutes GPSSampleInterval String GPS information sample Interval in minutes ApplicationListSample String Application list Information sample interval in minutes DeviceInformationSample String Device information sample interval in minutes ApplicationListSample String Application list information sample interval in minutes CertificateListSample String Certificate list information sample interval in minutes ProfileListSample String Profile list information sample interval in minutes VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 654 Chapter 9: Organization Group Management ProvisioningProfileListSample String Provisioning list information sample interval in minutes RestrictionListSample String Restriction list information sample interval in minutes SecurityInformationSample String Security information sample interval in minutes ManagedAppListSample String Managed application list information sample interval in minutes VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 655 Chapter 9: Organization Group Management Get Custom Attribute Functionality – Provides custom attribute details for the specified organization group. HTTP Method – GET API URI – https://host/api/system/groups/{ogid}/CustomAttributes Request Body – NA URI Parameters Tag Description ogid Unique identifier of the organization group Response Payload XML String String String String String String String String String String String String String String String String String String String JSON { "CustomAttribute":[{ "Application":"String", "AttributeId":Numeric, "ManagedBy":"String", "Name":"String", "OrganizationGroupId":Numeric, "Values":[{ "Value":"String" }] }] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 656 Chapter 9: Organization Group Management Response Tag Details Tag Type Description Application String Name of the application AttributeId Numeric Unique identification number of the custom attribute ManagedBy String Unique identification of the organization group which manages the custom attribute Name String Name of the custom attribute OrganizationGroupId Numeric Unique numeric identifier of the organization group where the custom attribute is present Values String Value associated with the custom attribute VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 657 Chapter 9: Organization Group Management Create APNs Cert Request Functionality – Method to create APNs cert request or to get the status of the APNs configuration for an Organization Group. Upload certificate Blob ID is '-1', when APNs is already configured for the Organization Group. HTTP Method – GET API URI – https://host/api/system/groups/{id}/apns?force={force} Request Payload – NA URI Parameters Tag Description id Organization Group identifier force Generate APNs cert request Response Payload XML Numeric String String String Numeric String JSON { "id" : Numeric, "AppleId" : "String", "CertificateSigningRequestBlobId" : Numeric, "IssuedCertificateId" : Numeric, "UploadedCertificateBlobId" : Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 658 Chapter 9: Organization Group Management Response Tag Details Tag Data Type Description id Numeric Unique identifier of the Organization Group AppleId String Unique Apple identification number CertificateSigningRequestBlobId Numeric Unique identifier of the certificate signing request blob IssuedCertificateId Numeric Unique identifier of the issued certificate UploadedCertificateBlobId Numeric Unique identifier of the uploaded certificate blob VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 659 Chapter 9: Organization Group Management Retrieve Status of APNs Configuration Functionality – Method to retrieve the status of the APNs configuration for an Organization Group. HTTP Method – GET API URI – https://host/api/system/groups/{id}/apns/details Request Payload – NA URI Parameters Tag Description id Organization Group identifier Response Payload XML String String Numeric Numeric Numeric JSON { "CurrentSetting" : "String", "Type" : "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 660 Chapter 9: Organization Group Management "IssuedTo" : "String", "IssuedBy" : "String", "ValidFrom" : "String", "ValidTo" : "String", "Thumbprint" : "String", "AppleId" : "String", "ChildPermission" : "String", "id" : Numeric } Response Tag Details Tag Data Type Description CurrentSetting String Current settings of APNs configuration Type String Type of certificate IssuedTo String Whom the certificate is issued to IssuedBy String Issuer of the certificate ValidFrom String Certificate validity start date ValidTo String Certificate validity end date Thumbprint String Unique thumbprint ID for the certificate AppleId String Unique Apple identifier ChildPermission String Permissions for the child Organization Group id Numeric Unique identifier of the Organization Group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 661 Chapter 9: Organization Group Management Update APNs Configuration Functionality – Method to update the APNs configuration for an organization group. This method is applicable after the APNs is configured on the AirWatch server. HTTP Method – PATCH API URI – https://host/api/system/groups/{id}/apns URI Parameters Tag Description id Organization Group identifier Response Obtained – NA Request Payload XML Numeric String String String String String String String String String JSON { "ChildPermission" : "String", "Inherit" : Boolean } Request Tag Details Tag Mandatory Description ChildPermission No Permissions for the child group Inherit No Inherit the settings from the parent Organization Group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 662 Chapter 9: Organization Group Management Save APNs Configuration Functionality – Method to save the APNs configuration for an organization group This method is applicable after the APNs certificate Blob (.pem) is uploaded to the AirWatch server. HTTP Method – GET API URI – https://host/api/system/groups/{id}/apns URI Parameters Tag Description id Organization group identifier force Force generate APNs cert request Response Obtained – NA Request Payload XML Boolean String JSON { "id" : Numeric, "AppleId" : "String", "CertificatePassword" : "String", "Renew" : Boolean, "UploadedCertificateBlobId" : Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 663 Chapter 9: Organization Group Management Request Tag Details Tag Mandatory Description id Yes Unique identifier of the organization group AppleId No Unique Apple identification number CertificatePassword No Password for the certificate Renew No If certificate renew is required or not. Value: True or False. UploadedCertificateBlobId Yes Unique numeric identifier of the uploaded certificate blob VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 664 Chapter 9: Organization Group Management Create Express Licenses Functionality – Creates specific number of AirWatch express licenses at a given organization group. HTTP Method – POST API URI – https://host/api/system/expresslicenses Response Obtained – NA Request Payload XML Numeric String Numeric Boolean String JSON { "MultiLicenseKey" : "String", "QuantityPurchased" : Numeric, "EffectiveDate" : "Datetime", "ExpirationDate" : "Datetime", "OverageTolerance" : Numeric, "LicenseType" : Enum, "ShutdownMode" : Enum, "WarningDate" : "Datetime", "LockoutDate" : "Datetime", "DevicesPerUser" : Numeric, "OrganizationGroupId" : Numeric, "id" : Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 665 Chapter 9: Organization Group Management Request Tag Details Tag Mandatory Description MultiLicenseKey Yes Name of the multi license key QuantityPurchased Yes Number of licenses purchased EffectiveDate Yes Time stamp when the license is effective ExpirationDate Yes Time stamp when the license gets expired OverageTolerance No Overall tolerance of the license key LicenseType Yes Type of the license Values: Trial, Production,TrialPerUser, ProductionPerUser ShutdownMode No The shut down mode for the license Values: Never, GEM, Real Time WarningDate Yes Time stamp when the user receives the warning notification about the license key expiration LockoutDate Yes Time stamp when the license gets locked out DevicesPerUser No Number of devices per user OrganizationGroupId Yes Unique identifier of the organization group VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 666 Chapter 9: Organization Group Management Query for Pinned Host By HostGuid Functionality – Query for pinned hosts by host name. HTTP Method – DELETE API URI – https://host/api/system/pinnedhost/{hostGuid} URI Parameters Tag Description hostGuid ID (returned during creation or a query) of the host to delete Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 667 Chapter 9: Organization Group Management Update Pinned Host Functionality – Updates a specific pinned host. HTTP Method – PATCH API URI – https://host/api/system/pinnedhost/{hostGuid} Response Obtained – NA URI Parameters Tag Description hostGuid The ID of the host to update Request Payload XML Numeric String Numeric Datetime Datetime Numeric Enum Enum Datetime Datetime Numeric Numeric JSON { "HostName" : "String", "IsDeviceServices" : Boolean, "OrganizationGroupId" : Numeric, "Required" : Boolean } Request Tag Details Tag Mandatory Description HostName Yes Mail server host name or IP address IsDeviceServices Yes If device services are required or not. Values: True or False OrganizationGroupId Yes Unique numeric ID of the organization group Required Yes True or False VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 668 Chapter 9: Organization Group Management Pin Certificate to a Pinned Host Functionality – Pins a given certificate to a pinned host. HTTP Method – POST API URI – https://host/api/system/pincertificate Response Obtained – NA Request Payload XML String Boolean Numeric Boolean JSON { "HostGuid" : "String", "Certificate" : "String", "CertificateThumbprint" : "String" } Request Tag Details Tag Mandatory Description HostGuid Yes The ID of the host to pin the certificate Certificate Yes Certificate to pin a host CertificateThumbprint Yes Thumbprint of the certificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 669 Chapter 9: Organization Group Management Unpin Certificate from a Pinned Host Functionality – Unpins a given certificate from a pinned host. HTTP Method – POST API URI – https://host/api/system/unpincertificate Response Obtained – NA Request Payload XML String String String JSON { "HostGuid" : "String", "Certificate" : "String", "CertificateThumbprint" : "String" } Request Tag Details Tag Mandatory Description HostGuid Yes The ID of the host to unpin the certificate Certificate Yes Certificate to unpin a host CertificateThumbprint Yes Thumbprint of the certificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 670 Chapter 9: Organization Group Management Enable SSL Pinning Functionality – Enables SSL pinning at an organization group. HTTP Method – POST API URI – https://host/api/system/enable/{organizationgroupid} URI Parameters Tag Description organizationgroupid ID of the organization group to enable SSL pinning Request Payload – NA Response Obtained – NA Disable SSL Pinning Functionality – Disables SSL pinning at an organization group. HTTP Method – POST API URI – https://host/api/system/disable/{organizationgroupid} URI Parameters Tag Description organizationgroupid ID of the organization group to disable SSL pinning Request Payload – NA Response Obtained – NA VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 671 Chapter 9: Organization Group Management Synchronize Pin with Auto Discovery Functionality – Synchronizes pin with Auto Discovery at an organization group. HTTP Method – POST API URI – https://host/api/system/syncwithautodiscovery/{organizationgroupid} Request Payload – NA URI Parameters Tag Description organizationgroupid ID of the organization group Response Payload XML String String String JSON { "ItemsAffected" : Numeric, "Message" : "String" } Response Tag Details Tag Data Type Description ItemsAffected Numeric Number of CertificatePinningEntity that is affected or modified for the Host Message String Message about the autosync operation performed VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 672 Chapter 9: Organization Group Management Enable Pin Relation Functionality – Enables a pinned relationship between host and certificate. HTTP Method – POST API URI – https://host/api/system/enablepin/{hostGuid}/{organizationgroupid} Request Payload – NA Response Obtained – NA URI Parameters Tag Description hostGuid ID of the pertinent host organizationgroupid (Optional) ID of the organization group Disable Pin Relation Functionality – Disables a pinned relationship between host and certificate. HTTP Method – POST API URI – https://host/api/system/disablepin/{hostGuid}/{organizationgroupid} Request Payload – NA Response Obtained – NA URI Parameters Tag Description hostGuid ID of the pertinent host organizationgroupid ID of the organization group to disable pin relationship between host and certificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 673 Chapter 10: Profile Management Version 1 and Version 2 Chapter 10: Profile Management Version 1 and Version 2 Overview 676 General Profile (Common for all Device Platforms) 677 Retrieve Payload Keys for Creating a Profile 685 Update Apple Device Profile 687 Update Android Device Profile 691 Create Apple Passcode Profile 695 Create Apple Restrictions Profile 702 Create Apple Wi-Fi Profile 722 Create Apple VPN Profile 734 Create Apple Email Profile 744 Create Apple EAS Profiles 752 Upload Certificates 785 Create Apple SCEP Profile 787 Create Apple Credentials Profile 793 Create Apple Custom Settings Profile 799 Create Android Passcode Profile 803 Create Android Restrictions Profile 811 Create Android Wi-Fi Profile 836 Create Android VPN Profile 843 Create Android Email Profile 849 Create Android EAS Profile 858 Create Android Credentials Profile 884 Create Android For Work Profile 894 Create Android Container Profile 939 Create AppleOsX Device Profile 951 Update AppleOsX Device Profile 980 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 674 Chapter 10: Profile Management Version 1 and Version 2 Create QNX Device Profile 1008 Update QNX Device Profile 1010 Create Windows PC Device Profile 1012 Update Windows PC Device Profile 1020 Get Device Profile Details 1028 Activate Device Profile 1030 Deactivate Device Profile 1032 Install Device Profile 1034 Remove Device Profile 1037 Search Device Profile 1040 Delete Device Profile 1046 Get Resource 1048 Get Resource Keys and Advanced Settings 1050 Create Resource of Requested Type 1051 Delete Resource 1052 Update Requested Resource 1053 Edit Smart Group Assignment for Resource 1054 VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 675 Chapter 10: Profile Management Version 1 and Version 2 Overview AirWatch REST APIs allow you to manage the end-to-end functionalities of profile management features available for iOS and Android platforms. The functionalities include to create/update of profiles on the console, install/removal of profiles from the devices, and to retrieve the profiles details from the device on to the console. Profiles details can be viewed in the following path on the AirWatch Console: l Profile Details – Devices > Profiles > List View. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 676 Chapter 10: Profile Management Version 1 and Version 2 General Profile (Common for all Device Platforms) Version 1 Functionality – This payload is used with other payloads for all the platforms and is mandatory. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/{platform}/payloads/{payload}/getpayloadkeys?contexttype= {contexttype} Important: The above URI would return the "General" payload entity along with the requested payload (Passcode, Restrictions, etc ) tags for the desired platform. Request Payloads XML Numeric String JSON { "General": "AllowRemoval" : "String", "AssignedGeofenceArea" : [ Numeric ], "AssignedSchedule" : [ Numeric ], "AssignedSmartGroups" : [ { "SmartGroupId" : Numeric } ], "AssignmentType" : "String", "CreateNewVersion" : Boolean, "Description" : "String", "EnableProvisioning" : Boolean, "ExcludedSmartGroups" : [ { "Name" : "String", "SmartGroupId" : Numeric } ], "ExpirationDate" : "String", "IsActive" : Boolean, "IsManaged" : Boolean, "ManagedLocationGroupID" : Numeric, "Name" : "String", "Password" : "String", "ProfileContext" : "String", "ProfileId" : Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 678 Chapter 10: Profile Management Version 1 and Version 2 "ProfileScope" : "String } } Important: At least one payload needs to be provided along with the General payload. Associated Picklists Tag Picklist API URI DeviceModel https://host/api/mdm/picklists/platforms/ {platform}/getdevicemodels MinimumOperatingSystem https://host/api/mdm/picklists/platforms/ {platform}/getoperatingsystems OwnershipType https://host/api/mdm/picklists/ownershiptypes Request Tag Details Tag Type Mandatory Description Name String Yes Name of the profile Description String Yes Description for the profile DeviceModel String No Device model to which the profile will be applied. Device models can be obtained using the picklist mentioned above MinimumOperatingSystem Numeric No Minimum operating system to which the profile will be applied. operating system values can be obtained using the picklist mentioned above IsActive Boolean No Specifies if the profile created is Active ("Boolean") or Inactive("false") ExpirationDate Datetime No Expiration date of the profile AssignmentType String No Specifies the way a profile is assigned to the device. Allowed values are "Auto" ,"Optional", "Interactive" and "Compliance" EnableProvisioning Boolean No Specifies if the profile created will be used for provisioning. IsManaged Boolean No Specifies if the profile created is managed by AirWatch VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 679 Chapter 10: Profile Management Version 1 and Version 2 Password String No Password to be used when "AllowRemoval" tag is set to "WithAuthorization" AllowRemoval String No Profile can be removed by the device user. The allowed values are "Always", "Never" and "WithAuthorization" ManagedLocationGroupID Numeric Yes Numeric ID of the organization group where the profile will be managed OwnershipType Numeric No Ownership type of the devices to which the profile will be pushed.Ownership type values can be obtained using the picklist mentioned above AssignedLocationGroupID Numeric Yes Numeric IDs of the organization groups to which the profile will be pushed SmartGroups Name String No Name of the smart group to which the profile is to be pushed SmartGroupID Numeric Yes Unique identification number of the smart group UserGroups Numeric Yes Unique identification number of the user groups where there devices are grouped VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 680 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – This payload is used with other payloads for all the platforms and is mandatory. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/{platform}/payloads/{payload}/getpayloadkeys?contexttype= {contexttype} Important: The above URI would return the "General" payload entity along with the requested payload tags for the desired platform Request Payloads XML Numeric String String String Numeric Boolean String String Boolean Boolean Boolean String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 677 Chapter 10: Profile Management Version 1 and Version 2 Numeric Numeric Numeric Numeric Numeric Numeric String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 682 Chapter 10: Profile Management Version 1 and Version 2 JSON { "General" : { "AllowRemoval" : "String", "AssignedGeofenceArea" : [ Numeric ], "AssignedSchedule" : [ Numeric ], "AssignedSmartGroups" : [ { "SmartGroupId" : Numeric } ], "AssignmentType" : "String", "CreateNewVersion" : Boolean, "Description" : "String", "EnableProvisioning" : Boolean, "ExcludedSmartGroups" : [ { "Name" : "String", "SmartGroupId" : Numeric } ], "ExpirationDate" : "String", "IsActive" : Boolean, "IsManaged" : Boolean, "ManagedLocationGroupID" : Numeric, "Name" : "String", "Password" : "String", "ProfileContext" : "String", "ProfileId" : Numeric, "ProfileScope" : "String" } } Important: At least one payload needs to be provided along with the General payload. Associated Picklists Tag Picklist API URI DeviceModel https://host/api/mdm/picklists/platforms/ {platform}/getdevicemodels MinimumOperatingSystem https://host/api/mdm/picklists/platforms/ {platform}/getoperatingsystems OwnershipType https://host/api/mdm/picklists/ownershiptypes VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 683 Chapter 10: Profile Management Version 1 and Version 2 Request Tag Details Tag Type Mandatory Description Name String Yes Name of the profile Description String Yes Description for the profile IsActive Boolean No Specifies if the profile created is Active ("true") or Inactive ("false") ExpirationDate Datetime No Expiration date of the profile AssignmentType String No Specifies the way a profile is assigned to the device. Allowed values are "Auto" ,"Optional", "Interactive" and "Compliance" EnableProvisioning Boolean No Specifies if the profile created will be used for provisioning. IsManaged Boolean No Specifies if the profile created is managed by AirWatch Password String No Password to be used when "AllowRemoval" tag is set to "WithAuthorization" AllowRemoval String No Profile can be removed by the device user. The allowed values are "Always", "Never" and "WithAuthorization" ManagedLocationGroupID Numeric Yes Numeric ID of the organization group where the profile will be managed SmartGroupId Numeric Yes Specifies the numeric ID of the Smart Group that will be assigned to the Profile. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 684 Chapter 10: Profile Management Version 1 and Version 2 Retrieve Payload Keys for Creating a Profile Version 1 Functionality – Gets XML/JSON Payload keys to be used for creating a profile of the specified platform. HTTP Method – GET Deprecated Endpoint URI – https://host/api/mdm/profiles/platforms/{platform}/payloads/ {payload}/getpayloadkeys?contexttype={contexttype} This URI will be deprecated soon. Start using the below Supported API URI. Supported URI – https://host/api/mdm/profiles/platforms/platform/payloads/payload/getpayloadkeys Request Body – NA List of Payloads Currently Supported Apple Android Passcode Passcode Restrictions Restrictions VPN VPN Wi-Fi Wi-Fi Email Email EAS EAS SCEP Credentials Credentials CustomSettings CustomSettings Android for Work TouchDown Credentials Android Container VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 685 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Gets XML/JSON Payload keys to be used for creating a profile of the specified platform. HTTP Method – GET API URI – https://host/api/mdm/profiles/platforms/{platform}/payloads/{payload}/getpayloadkeys?contexttype= {contexttype} Request Body – NA List of Payloads Currently Supported Apple Android AppleOsX QNX Passcode Passcode Passcode CustomAttribute Restrictions Restrictions Restrictions VPN VPN VPN Wi-Fi Wi-Fi Network Email Email FlexPolicies EAS EAS Email SCEP Credentials EASNativeMailClient Credentials Custom Settings EASMicrosoftOutlook Custom Settings Android for Work Credentials TouchDown Credentials Android Container SCEP WindowsPC AutomaticUpdates Credentials Encryption Firewall FlexPolicies Passcode Shortcut VPN Wi-Fi EAS VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 686 Chapter 10: Profile Management Version 1 and Version 2 Update Apple Device Profile Version 1 Functionality – Updates an Apple device profile identified by its numeric ID. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/update Response Payload – NA Important: Profile details can be modified by providing the numeric Numeric String String String Numeric Boolean String String Boolean Boolean Boolean String String Numeric Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 681 Chapter 10: Profile Management Version 1 and Version 2 Numeric Numeric Numeric Numeric String tag under the General payload. Use the Get Payload Keys API to retrieve the tags to be modified. Request Payload XML Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. The payload tags for creating and updating Apple device profile are same. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 687 Chapter 10: Profile Management Version 1 and Version 2 JSON { "General": { JSON Payload }, "Passcode":{}, "EmailList":[{}], "WifiList":[{}], "CredentialsList":[{}], "ScepList":[{}], "Restrictions":{}, "VpnList":[{}], "CustomsettingsList":[{}], "EASNativeMailClientList":[{}], "EASNitroDeskTouchDownList":[{}], "EasAwMailClient":{}, "TouchDownCredentialList":[{}], "AWMailCredentialList":[{}] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 688 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Updates an Apple device profile identified by its numeric ID. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/update Response Payload – NA Important: Profile details can be modified by providing the numeric XML Payload tag under the General payload. Use the Get Payload Keys API to retrieve the tags to be modified. Request Payload XML Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. JSON { "General": { "ProfileId":Numeric }, "Passcode":{}, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 689 Chapter 10: Profile Management Version 1 and Version 2 "EmailList":[{}], "WifiList":[{}], "CredentialsList":[{}], "ScepList":[{}], "Restrictions":{}, "VpnList":[{}], "EASNativeMailClientList":[{}], "EASNitroDeskTouchDownList":[{}], "EasAwMailClient":{}, "TouchDownCredentialList":[{}], "AWMailCredentialList":[{}] } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 690 Chapter 10: Profile Management Version 1 and Version 2 Update Android Device Profile Version 1 Functionality – Updates an Android device profile. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/android/update Response Payload – NA Important: Profile details can be modified by providing the numeric XML Payload tag under the General payload. Use the Get Payload Keys API to retrieve the tags to be modified. Request Payload XML Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. The payload tags for creating and updating Android device profile are same. JSON { "General":{ JSON Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 691 Chapter 10: Profile Management Version 1 and Version 2 }, "Passcode":{}, "WifiList":[{}], "CredentialsList":[{}], "EmailList":[{}], "Restrictions":{}, "VpnList":[{}], "ExchangeActiveSync":[{}], "CustomSettings":[{}] } } Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. The payload tags for creating and updating Android device profile are same. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 692 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Updates an Android device profile. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/android/update Response Payload – NA Important: Profile details can be modified by providing the numeric XML Payload tag under the General payload. Use the Get Payload Keys API to retrieve the tags to be modified. Request Payload XML Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. The payload tags for creating and updating Android device profile are same. JSON { "General":{ JSON Payload }, "Passcode":{}, "WifiList":[{}], "CredentialsList":[{}], VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 693 Chapter 10: Profile Management Version 1 and Version 2 "EmailList":[{}], "Restrictions":{}, "VpnList":[{}], "ExchangeActiveSync":[{}]], "CustomSettings":[{}}]] } } Note: To view the complete tags for each payload, refer their respective payload pages documented in this guide. The payload tags for creating and updating Android device profile are same. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 694 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Passcode Profile Version 1 Functionality – Creates an Apple passcode profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/passcode/getpayloadkeys?contexttype= {contexttype} Request Payloads XML XML Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 695 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Passcode": { "RequirePasscodeOnDevice": Boolean, "AllowSimpleValue": Boolean, "RequireAlphanumericValue": Boolean, "MinimumPasscodeLength": Numeric, "MinimumNumberOfComplexCharacters": Numeric, "MaximumPasscodeAge": "Numeric", "AutoLock": "Numeric", "PasscodeHistory": "Numeric", "GracePeriodForDeviceLock": Numeric, "MaximumNumberOfFailedAttempts": "Numeric" }, "General" : JSON Payload } Associated Picklists Tag Picklist API URI Auto Lock https://host/api/mdm/picklists/applepasscodeautolock Passcode Grace Period https://host/api/mdm/picklists/applepasscodegraceperiod Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details RequirePasscodeOnDevice Boolean No Determines whether the user is forced to set a PIN. Simply setting this value (and not others) forces the user to enter a passcode, without imposing a length or quality AllowSimpleValue Boolean No Determines whether a simple passcode is allowed. A simple passcode is defined as containing repeated characters, or increasing/decreasing characters (such as 123 or CBA) RequireAlphanumericValue Boolean No Specifies whether the user must enter alphanumeric characters ("12abcd"), or if numbers are sufficient MinimumPasscodeLength Numeric No Minimum overall length of the passcode VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 696 Chapter 10: Profile Management Version 1 and Version 2 MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters that a passcode must contain. A "complex" character is a character other than a number or a letter, such as &%$# MaximumPasscodeAge Numeric No Number of days for which the passcode can remain unchanged. After this number of days, the user is forced to change the passcode before the device is unlocked AutoLock Numeric No Number of minutes for which the device can be idle (without being unlocked by the user) before it gets locked by the system. Once this limit is reached, the device is locked and the passcode must be entered PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history. Minimum value is 1, maximum value is 50 GracePeriodForDeviceLock Numeric No Maximum grace period, in minutes, to unlock the phone without entering a passcode. Default is 0, that is no grace period, which requires a passcode immediately MaximumNumberOfFailedAttempts Numeric No Allowed range [1...10]. Specifies the number of allowed failed attempts to enter the passcode at the device's lock screen. Once this number is exceeded, the device is locked and must be connected to its designated iTunes in order to be unlocked Response Payload XML XML Payload Boolean Boolean Boolean Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric JSON { "Value": Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 697 Chapter 10: Profile Management Version 1 and Version 2 Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 698 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple passcode profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/passcode/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "Passcode": { "RequirePasscodeOnDevice": Boolean, "AllowSimpleValue": Boolean, "RequireAlphanumericValue": Boolean, "MinimumPasscodeLength": Integer, "MinimumNumberOfComplexCharacters": Integer, "MaximumPasscodeAge": "Integer", "AutoLock": "Integer", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 699 Chapter 10: Profile Management Version 1 and Version 2 "PasscodeHistory": "Integer", "GracePeriodForDeviceLock": Integer, "MaximumNumberOfFailedAttempts": "Integer" }, "General" : JSON Payload } Associated Picklists Tag Picklist API URI Auto Lock https://host/api/mdm/picklists/applepasscodeautolock Passcode Grace Period https://host/api/mdm/picklists/applepasscodegraceperiod Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details RequirePasscodeOnDevice Boolean No Determines whether the user is forced to set a PIN. Simply setting this value (and not others) forces the user to enter a passcode, without imposing a length or quality AllowSimpleValue Boolean No Determines whether a simple passcode is allowed. A simple passcode is defined as containing repeated characters, or increasing/decreasing characters (such as 123 or CBA) RequireAlphanumericValue Boolean No Specifies whether the user must enter alphanumeric characters ("12abcd"), or if numbers are sufficient MinimumPasscodeLength Numeric No Minimum overall length of the passcode MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters that a passcode must contain. A "complex" character is a character other than a number or a letter, such as &%$# MaximumPasscodeAge No Number of days for which the passcode can remain unchanged. After this number of days, the user is forced to change the passcode before the device is unlocked Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 700 Chapter 10: Profile Management Version 1 and Version 2 AutoLock Numeric No Number of minutes for which the device can be idle (without being unlocked by the user) before it gets locked by the system. Once this limit is reached, the device is locked and the passcode must be entered PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history. Minimum value is 1, maximum value is 50 GracePeriodForDeviceLock Numeric No Maximum grace period, in minutes, to unlock the phone without entering a passcode. Default is 0, that is no grace period, which requires a passcode immediately MaximumNumberOfFailedAttempts Numeric No Allowed range [1...10]. Specifies the number of allowed failed attempts to enter the passcode at the device's lock screen. Once this number is exceeded, the device is locked and must be connected to its designated iTunes in order to be unlocked Response Payload XML XML Payload Boolean Boolean Boolean Integer Integer Integer Integer Integer Integer Integer Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 701 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Restrictions Profile Version 1 Functionality – Creates an Apple restrictions profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/restrictions/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 703 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Restrictions": { "AllowInstallingPublicApps": Boolean, "AllowAppRemoval": Boolean, "AllowUseOfCamera": Boolean, "AllowExplicitMusicAndPodcasts": Boolean, "AllowAutomaticSyncWhileRoaming": Boolean, "AllowInAppPurchase": Boolean, "AllowUseOfSafari": Boolean, "AllowScreenCapture": Boolean, "AllowFingerPrintForUnlock": Boolean, "AllowFaceTime": Boolean, "AllowVoiceDialing": Boolean, "AllowUseOfYouTube": Boolean, "AllowUseOfiTunesMusicStore": Boolean, "ForceEncryptedBackups": Boolean, "RatingApps": Numeric, "RatingMovies": Numeric, "RatingsRegion": "String", "RatingTVShows": Numeric, "AcceptCookies": Numeric, "EnableAutofill": Boolean, "EnableJavaScript": Boolean, "BlockPopUps": Boolean, "ForceFraudWarning": Boolean, "EnablePlugins": Boolean, "AllowAddingGameCenterFriends": Boolean, "AllowMultiplayerGaming": Boolean, "ForceiTunesStorePasswordEntry": Boolean, "AllowUserToAcceptUntrustedTlsCertificates": Boolean, "AllowBackup": Boolean, "AllowDocumentSync": Boolean, "AllowAppSettingsSync": Boolean, "AllowPhotoStream": Boolean, "AllowDiagnosticDataToBeSentToApple": Boolean, "AllowSiri": Boolean, "AllowSiriWhileDeviceLocked": Boolean, "EnableSiriProfanityFilter": Boolean, "ShowUserGeneratedContentInSiri": Boolean, "AllowUseOfImessage": Boolean, "AllowPassbookWhileDeviceLocked": Boolean, "AllowGameCenter": Boolean, "AllowUseOfIbookstore": Boolean, "IbooksNotFound": "String", "AllowSharedPhotoStream": Boolean, "AllowManualProfileInstallation": Boolean, "AllowOpeningManagedAppDocumentsInUnmanagedApps": Boolean, "AllowOpeningUnManagedAppDocumentsInManagedApps": Boolean, "LimitAdTracking": Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 704 Chapter 10: Profile Management Version 1 and Version 2 "AllowAccountModification": Boolean, "AllowAirDrop": Boolean, "AllowChangesToFindMyFriends": Boolean, "AllowKeychainSync": Boolean, "AllowOverTheAirPKIUpdates": Boolean, "AllowPairingWithNonConfiguratorHosts": Boolean, "AllowChangesToCellularDataUsageForApps": Boolean, "ShowControlCenterOnLockScreen": Boolean, "ShowNotificationsViewOnLockScreen": Boolean, "ShowTodayViewOnLockScreen": Boolean }, , "General" : JSON Payload } Associated Picklists Tag Picklist API URI RatingApps https://host/api/mdm/picklists/appleratingapps RatingMovies https://host/api/mdm/picklists/appleratingmovies RatingsRegion https://host/api/mdm/picklists/appleratingregion RatingTVShows https://host/api/mdm/picklists/appleratingtvshows AcceptCookies https://host/api/mdm/picklists/applesafariacceptcookies Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details AllowInstallingPublicApps Boolean No When false, the App Store is disabled and its icon is removed from the Home screen. Users are unable to install or update their applications AllowAppRemoval Boolean No When false, disables removal of apps from iOS device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 705 Chapter 10: Profile Management Version 1 and Version 2 AllowExplicitMusicAndPodcasts Boolean No When false, explicit music or video content purchased from the iTunes Store is hidden. Explicit content is marked as such by content providers, such as record labels, when sold through the iTunes Store AllowUseOfCamera Boolean No When false, the camera is completely disabled and its icon is removed from the Home screen. Users are unable to take photographs AllowAutomaticSyncWhileRoaming Boolean No When false, disables global background sync activity when an iOS phone is roaming AllowInAppPurchase Boolean No Optional. When false, prohibits in-app purchasing AllowUseOfSafari Boolean No When false, the Safari web browser application is disabled and its icon removed from the Home screen. This also prevents users from opening web clips AllowScreenCapture Boolean No When false, users are unable to save a screenshot of the display AllowFingerPrintForUnlock Boolean No If false, prevents Touch ID from unlocking a device. Available in iOS 7 and later AllowFaceTime Boolean No When false, disables facetime application AllowVoiceDialing Boolean No When false, disables voice dialing AllowUseOfYouTube Boolean No When false, the YouTube application is disabled and its icon is removed from the Home screen. This key is ignored in iOS 6 and later because the YouTube app is not provided. AllowUseOfiTunesMusicStore Boolean No When false, the iTunes Music Store is disabled and its icon is removed from the Home screen. Users cannot preview, purchase, or download content VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 706 Chapter 10: Profile Management Version 1 and Version 2 ForceEncryptedBackups Boolean No When true, encrypts all backups RatingApps Numeric No Specifies the Rating value of the apps to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field RatingMovies Numeric No Specifies the Rating value of the movies to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field RatingsRegion Numeric No Allows the user to select the country where the ratings settings will be applied for TV, movies, and apps. See associated picklists above to retrieve the keys to be passed to this field RatingTVShows Numeric No Specifies the Rating value of the TV shows to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field AcceptCookies String No Determines conditions under which the device will accept cookies. Following are the allowed values: 0:Never ,1: From visited sites only 2: Always. EnableAutofill Boolean No When false, Safari auto-fill is disabled EnableJavaScript Boolean No When false, Safari will not execute JavaScript BlockPopUps Boolean No When false, Safari will not allow pop-up tabs ForceFraudWarning Boolean No When true, Safari fraud warning is enabled EnablePlugins Boolean No When true allows Safari plug ins AllowAddingGameCenterFriends Boolean No When false, prohibits adding friends to Game Center AllowMultiplayerGaming Boolean No When false, prohibits multi player gaming VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 707 Chapter 10: Profile Management Version 1 and Version 2 ForceiTunesStorePasswordEntry Boolean No When true, forces user to enter their iTunes password for each transaction. Available in iOS 5.0 and later AllowUserToAcceptUntrustedTlsCertificates Boolean No When false, automatically rejects untrusted HTTPS certificates without prompting the user.Available in iOS 5.0 and later AllowBackup Boolean No When false, disables backing up the device to iCloud. Available in iOS 5.0 and later AllowDocumentSync Boolean No When false, disables document and key-value syncing to iCloud. Available in iOS 5.0 and later AllowAppSettingsSync Boolean No If false, disables Cloud keychain synchronization. Available only in iOS 7.0 and later AllowPhotoStream Boolean No When false, disables Photo Stream. Available in iOS 5.0 and later AllowDiagnosticDataToBeSentToApple Boolean No When false, this prevents the device from automatically submitting diagnostic reports to Apple. Available only in iOS 6.0 and later AllowSiri Boolean No When false, disables Siri AllowSiriWhileDeviceLocked Boolean No When false, the user is unable to use Siri when the device is locked. This restriction is ignored if the device does not have a passcode set. Available only in iOS 5.1 and later EnableSiriProfanityFilter Boolean No When true, forces the use of the profanity filter assistant ShowUserGeneratedContentInSiri Boolean No Supervised only. When false, prevents Siri from querying user-generated content from the web. Available in iOS 7 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 708 Chapter 10: Profile Management Version 1 and Version 2 AllowUseOfImessage Boolean No When false, disables the use of the Messages app with supervised devices. Available in iOS 6.0 and later AllowPassbookWhileDeviceLocked Boolean No If set to false, Passbook notifications will not be shown on the lock screen. Available in iOS 6.0 and later AllowGameCenter Boolean No Supervised only. When false, Game Center is disabled and its icon is removed from the Home screen. Default is true. Availability: Available only in iOS 6.0 and later AllowUseOfIbookstore Boolean No Supervised only. If set to false, iBook store will be disabled. Available in iOS 6.0 and later. IbooksNotFound String No Specifies if the user is allowed to use iBooks on the device AllowSharedPhotoStream Boolean No If set to false, Shared Photo Stream will be disabled. Available in iOS 6.0 and later AllowManualProfileInstallation Boolean No Supervised only. If set to false, the user is prohibited from installing configuration profiles and certificates interactively. Available in iOS 6.0 and later AllowOpeningManagedAppDocumentsInUnmanagedApps Boolean No If false, documents in managed apps and accounts only open in other managed apps and accounts. Available only in iOS 7.0 and later AllowOpeningUnManagedAppDocumentsInManagedApps Boolean No If set to false, documents in unmanaged apps and accounts will only open in other unmanaged apps and accounts. Available only in iOS 7.0 and later LimitAdTracking No If true, limits ad tracking. Available only in iOS 7.0 and later Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 709 Chapter 10: Profile Management Version 1 and Version 2 AllowAccountModification Boolean No Supervised only. If set to false, account modification is disabled. Available only in iOS 7.0 and later AllowAirDrop Boolean No Supervised only. If set to false, AirDrop is disabled. Available only in iOS 7.0 and later AllowChangesToFindMyFriends Boolean No Supervised only. If set to false, changes to Find My Friends are disabled. Available only in iOS 7.0 and later AllowKeychainSync Boolean No If false, disables Cloud keychain synchronization. Available only in iOS 7.0 and later AllowOverTheAirPKIUpdates Boolean No If false, over-the-air PKI updates are disabled. Setting this restriction to false does not disable CRL and OCSP checks. Available only in iOS 7.0 and later AllowPairingWithNonConfiguratorHosts Boolean No If set to false, host pairing is disabled with the exception of the supervision host. If no supervision host certificate has been configured, all pairing is disabled. Host pairing lets the administrator control which devices an iOS 7 device can pair with. Available only in iOS 7.0 and later AllowChangesToCellularDataUsageForApps Boolean No Supervised only. If set to false, changes to cellular data usage for apps are disabled. Available only in iOS 7.0 and later ShowControlCenterOnLockScreen Boolean No If set to false, the Notifications view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later ShowNotificationsViewOnLockScreen Boolean No If set to false, the Notifications view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 710 Chapter 10: Profile Management Version 1 and Version 2 ShowTodayViewOnLockScreen Boolean No If set to false, the Today view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later Response Payload XML XML Payload Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Numeric Numeric String Numeric Numeric Boolean Boolean Boolean Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 702 Chapter 10: Profile Management Version 1 and Version 2Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean AllowAllBook Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Numeric JSON { "Value": Numerics } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 711 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple restrictions profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/restrictions/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "Restrictions": VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 713 Chapter 10: Profile Management Version 1 and Version 2 { "AllowInstallingPublicApps": Boolean, "AllowAppRemoval": Boolean, "AllowUseOfCamera": Boolean, "AllowExplicitMusicAndPodcasts": Boolean, "AllowAutomaticSyncWhileRoaming": Boolean, "AllowInAppPurchase": Boolean, "AllowUseOfSafari": Boolean, "AllowScreenCapture": Boolean, "AllowFingerPrintForUnlock": Boolean, "AllowFaceTime": Boolean, "AllowVoiceDialing": Boolean, "AllowUseOfYouTube": Boolean, "AllowUseOfiTunesMusicStore": Boolean, "ForceEncryptedBackups": Boolean, "RatingApps": Numeric, "RatingMovies": Numeric, "RatingsRegion": "String", "RatingTVShows": Numeric, "AcceptCookies": Numeric, "EnableAutofill": Boolean, "EnableJavaScript": Boolean, "BlockPopUps": Boolean, "ForceFraudWarning": Boolean, "EnablePlugins": Boolean, "AllowAddingGameCenterFriends": Boolean, "AllowMultiplayerGaming": Boolean, "ForceiTunesStorePasswordEntry": Boolean, "AllowUserToAcceptUntrustedTlsCertificates": Boolean, "AllowBackup": Boolean, "AllowDocumentSync": Boolean, "AllowAppSettingsSync": Boolean, "AllowPhotoStream": Boolean, "AllowDiagnosticDataToBeSentToApple": Boolean, "AllowSiri": Boolean, "AllowSiriWhileDeviceLocked": Boolean, "EnableSiriProfanityFilter": Boolean, "ShowUserGeneratedContentInSiri": Boolean, "AllowUseOfImessage": Boolean, "AllowPassbookWhileDeviceLocked": Boolean, "AllowGameCenter": Boolean, "AllowUseOfIbookstore": Boolean, "IbooksNotFound": "String", "AllowSharedPhotoStream": Boolean, "AllowManualProfileInstallation": Boolean, "AllowOpeningManagedAppDocumentsInUnmanagedApps": Boolean, "AllowOpeningUnManagedAppDocumentsInManagedApps": Boolean, "LimitAdTracking": Boolean, "AllowAccountModification": Boolean, "AllowAirDrop": Boolean, "AllowChangesToFindMyFriends": Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 714 Chapter 10: Profile Management Version 1 and Version 2 "AllowKeychainSync": Boolean, "AllowOverTheAirPKIUpdates": Boolean, "AllowPairingWithNonConfiguratorHosts": Boolean, "AllowChangesToCellularDataUsageForApps": Boolean, "ShowControlCenterOnLockScreen": Boolean, "ShowNotificationsViewOnLockScreen": Boolean, "ShowTodayViewOnLockScreen": Boolean }, , "General" : JSON Payload } Associated Picklists Tag Picklist API URI RatingApps https://host/api/mdm/picklists/appleratingapps RatingMovies https://host/api/mdm/picklists/appleratingmovies RatingsRegion https://host/api/mdm/picklists/appleratingregion RatingTVShows https://host/api/mdm/picklists/appleratingtvshows AcceptCookies https://host/api/mdm/picklists/applesafariacceptcookies Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details AllowInstallingPublicApps Boolean No When false, the App Store is disabled and its icon is removed from the Home screen. Users are unable to install or update their applications AllowAppRemoval Boolean No When false, disables removal of apps from iOS device AllowExplicitMusicAndPodcasts Boolean No When false, explicit music or video content purchased from the iTunes Store is hidden. Explicit content is marked as such by content providers, such as record labels, when sold through the iTunes Store VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 715 Chapter 10: Profile Management Version 1 and Version 2 AllowUseOfCamera Boolean No When false, the camera is completely disabled and its icon is removed from the Home screen. Users are unable to take photographs AllowAutomaticSyncWhileRoaming Boolean No When false, disables global background sync activity when an iOS phone is roaming AllowInAppPurchase Boolean No Optional. When false, prohibits in-app purchasing AllowUseOfSafari Boolean No When false, the Safari web browser application is disabled and its icon removed from the Home screen. This also prevents users from opening web clips AllowScreenCapture Boolean No When false, users are unable to save a screenshot of the display AllowFingerPrintForUnlock Boolean No If false, prevents Touch ID from unlocking a device. Available in iOS 7 and later AllowFaceTime Boolean No When false, disables facetime application AllowVoiceDialing Boolean No When false, disables voice dialing AllowUseOfYouTube Boolean No When false, the YouTube application is disabled and its icon is removed from the Home screen. This key is ignored in iOS 6 and later because the YouTube app is not provided. AllowUseOfiTunesMusicStore Boolean No When false, the iTunes Music Store is disabled and its icon is removed from the Home screen. Users cannot preview, purchase, or download content ForceEncryptedBackups Boolean No When true, encrypts all backups RatingApps Numeric No Specifies the Rating value of the apps to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 716 Chapter 10: Profile Management Version 1 and Version 2 RatingMovies Numeric No Specifies the Rating value of the movies to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field RatingsRegion Numeric No Allows the user to select the country where the ratings settings will be applied for TV, movies, and apps. See associated picklists above to retrieve the keys to be passed to this field RatingTVShows Numeric No Specifies the Rating value of the TV shows to be allowed on the device. See associated picklists above to retrieve the keys to be passed to this field AcceptCookies String No Determines conditions under which the device will accept cookies. Following are the allowed values: 0:Never ,1: From visited sites only 2: Always. EnableAutofill Boolean No When false, Safari auto-fill is disabled EnableJavaScript Boolean No When false, Safari will not execute JavaScript BlockPopUps Boolean No When false, Safari will not allow pop-up tabs ForceFraudWarning Boolean No When true, Safari fraud warning is enabled EnablePlugins Boolean No When true allows Safari plug ins AllowAddingGameCenterFriends Boolean No When false, prohibits adding friends to Game Center AllowMultiplayerGaming Boolean No When false, prohibits multi player gaming ForceiTunesStorePasswordEntry Boolean No When true, forces user to enter their iTunes password for each transaction. Available in iOS 5.0 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 717 Chapter 10: Profile Management Version 1 and Version 2 AllowUserToAcceptUntrustedTlsCertificates Boolean No When false, automatically rejects untrusted HTTPS certificates without prompting the user.Available in iOS 5.0 and later AllowBackup Boolean No When false, disables backing up the device to iCloud. Available in iOS 5.0 and later AllowDocumentSync Boolean No When false, disables document and key-value syncing to iCloud. Available in iOS 5.0 and later AllowAppSettingsSync Boolean No If false, disables Cloud keychain synchronization. Available only in iOS 7.0 and later AllowPhotoStream Boolean No When false, disables Photo Stream. Available in iOS 5.0 and later AllowDiagnosticDataToBeSentToApple Boolean No When false, this prevents the device from automatically submitting diagnostic reports to Apple. Available only in iOS 6.0 and later AllowSiri Boolean No When false, disables Siri AllowSiriWhileDeviceLocked Boolean No When false, the user is unable to use Siri when the device is locked. This restriction is ignored if the device does not have a passcode set. Available only in iOS 5.1 and later EnableSiriProfanityFilter Boolean No When true, forces the use of the profanity filter assistant ShowUserGeneratedContentInSiri Boolean No Supervised only. When false, prevents Siri from querying user-generated content from the web. Available in iOS 7 and later AllowUseOfImessage Boolean No When false, disables the use of the Messages app with supervised devices. Available in iOS 6.0 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 718 Chapter 10: Profile Management Version 1 and Version 2 AllowPassbookWhileDeviceLocked Boolean No If set to false, Passbook notifications will not be shown on the lock screen. Available in iOS 6.0 and later AllowGameCenter Boolean No Supervised only. When false, Game Center is disabled and its icon is removed from the Home screen. Default is true. Availability: Available only in iOS 6.0 and later AllowUseOfIbookstore Boolean No Supervised only. If set to false, iBook store will be disabled. Available in iOS 6.0 and later. IbooksNotFound String No Specifies if the user is allowed to use iBooks on the device AllowSharedPhotoStream Boolean No If set to false, Shared Photo Stream will be disabled. Available in iOS 6.0 and later AllowManualProfileInstallation Boolean No Supervised only. If set to false, the user is prohibited from installing configuration profiles and certificates interactively. Available in iOS 6.0 and later AllowOpeningManagedAppDocumentsInUnmanagedApps Boolean No If false, documents in managed apps and accounts only open in other managed apps and accounts. Available only in iOS 7.0 and later AllowOpeningUnManagedAppDocumentsInManagedApps Boolean No If set to false, documents in unmanaged apps and accounts will only open in other unmanaged apps and accounts. Available only in iOS 7.0 and later LimitAdTracking Boolean No If true, limits ad tracking. Available only in iOS 7.0 and later AllowAccountModification Boolean No Supervised only. If set to false, account modification is disabled. Available only in iOS 7.0 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 719 Chapter 10: Profile Management Version 1 and Version 2 AllowAirDrop Boolean No Supervised only. If set to false, AirDrop is disabled. Available only in iOS 7.0 and later AllowChangesToFindMyFriends Boolean No Supervised only. If set to false, changes to Find My Friends are disabled. Available only in iOS 7.0 and later AllowKeychainSync Boolean No If false, disables Cloud keychain synchronization. Available only in iOS 7.0 and later AllowOverTheAirPKIUpdates Boolean No If false, over-the-air PKI updates are disabled. Setting this restriction to false does not disable CRL and OCSP checks. Available only in iOS 7.0 and later AllowPairingWithNonConfiguratorHosts Boolean No If set to false, host pairing is disabled with the exception of the supervision host. If no supervision host certificate has been configured, all pairing is disabled. Host pairing lets the administrator control which devices an iOS 7 device can pair with. Available only in iOS 7.0 and later AllowChangesToCellularDataUsageForApps Boolean No Supervised only. If set to false, changes to cellular data usage for apps are disabled. Available only in iOS 7.0 and later ShowControlCenterOnLockScreen Boolean No If set to false, the Notifications view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later ShowNotificationsViewOnLockScreen Boolean No If set to false, the Notifications view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later ShowTodayViewOnLockScreen Boolean No If set to false, the Today view in Notification Center on the lock screen is disabled. Available only in iOS 7.0 and later VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 720 Chapter 10: Profile Management Version 1 and Version 2 Response Payload XML XML Payload Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Numeric Numeric String Numeric Numeric Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 712 Chapter 10: Profile Management Version 1 and Version 2 Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean AllowAllBook Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 721 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Wi-Fi Profile Version 1 Functionality – Creates an Apple Wi-fi profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/wifi/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "WifiList": [ { "ServiceSetIdentifier": "String", "HiddenNetwork": Boolean, "SecurityType": Numeric, "Password": "String", "TLS": Boolean, "TTLS": Boolean, "LEAP": Boolean, "PEAP": Boolean, "EAPFAST": Boolean, "EAPSIM": Boolean, "ProvisionPAC": Boolean, "ProvisionPACAnonymously": Boolean, "UsePAC": Boolean, "AllowTrustExceptions": Boolean, "InnerIdentity": "String", "UserPerConnectionPassword": Boolean, "UserName": "String", "UserPassword": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 723 Chapter 10: Profile Management Version 1 and Version 2 "TrustedServerCertificateNames": ["String"], "TrustedCertificates": ["String"], "OuterIdentity": "String", "IdentityCertificate": "String", "AutoJoin": Boolean, "ProxyType": "String", "ProxyServer": "String", "ProxyServerPort": Numeric, "ProxyUsername": "String", "ProxyPassword": "String", "ProxyUrl": "String", "Protocol": Boolean, "WiFiHotspot": Boolean, "DomainName": "String", "DisplayedOperatorName": "String", "ServiceProviderRoamingEnabled": Boolean, "RoamingConsortiumOrganizationID": ["String"], "NetworkAccessId": ["String"], "MccMnc": ["String"] } ], "General" : JSON Payload } Associated Picklists Tag Picklist API URI SecurityType https://host/api/mdm/picklists/applewifisecuritytype InnerIdentity https://host/api/mdm/picklists/applewifiinneridentity ProxyType https://host/api/mdm/picklists/applewifiproxytype Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ServiceSetIdentifier String No SSID of the Wi-Fi network to be used HiddenNetwork Boolean No By default (false), it is assumed that all configured networks are open or broadcast. To specify a hidden network, must be true SecurityType Numeric/String No The security type of the Wi-Fi Network. The allowed values for this tag can be obtained from the SecurityType Picklist Password Numeric Password for the Wi-Fi network No VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 724 Chapter 10: Profile Management Version 1 and Version 2 TLS Boolean No Specifies if TLS Protocol is used for Authentication for the Wi-Fi network TTLS Boolean No Specifies if TTLS Protocol is used for Authentication for the Wi-Fi network InnerIdentity String Yes (for TTLS=true) Authentication protocol used for TTLS LEAP Boolean No Specifies if LEAP Protocol is used for Authentication for the Wi-Fi network PEAP Boolean No Specifies if PEAP Protocol is used for Authentication for the Wi-Fi network EAPFAST Boolean No Specifies if EAPFAST Protocol is used for Authentication for the Wi-Fi network EAPSIM Boolean No Specifies if EAPSIM Protocol is used for Authentication for the Wi-Fi network UsePAC Boolean No Specifies if the Protected Access Credentials need to be used ProvisionPAC Boolean No Specifies if the Protected Access Credentials need to be provisioned to the devices ProvisionPACAnonymously Boolean No Specifies if the Protected Access Credentials need to be provisioned anonymously AllowTrustExceptions Boolean No Specifies if Trust decisions can be made by the user UserName String No Username used for Authentication. Allows lookup values UserPerConnectionPassword Boolean No Specifies if the password needs to provided during connection UserPassword String TrustedServerCertificateNames String No Array of strings. Specifies the name of the trusted server certificates TrustedCertificates String No Array of strings. Specifies the Certificates assigned. Certificates can be added using the credentials payload OuterIdentity String No Externally Visible Identification (For TTLS, PEAP, And EAP-FAST) IdentityCertificate String No Certificate to be used for User Identification. Certificates can be added using the credentials payload Password for the Authenticated Account VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 725 Chapter 10: Profile Management Version 1 and Version 2 AutoJoin Boolean No If true, the network is auto-joined. If false, the user has to tap the network name to join it. Available in iOS 5.0 and later ProxyType String No Type of proxy if any on the Wireless network. Defaults to None ProxyServer String Yes (for Hostname or the IP address of the Proxy Proxy=Manual) Server ProxyServerPort Numeric Yes (for Port number of the Proxy server Proxy=Manual) ProxyUsername String No Username of the HTTP Proxy ProxyPassword String No Specifies the password of the HTTP proxy ProxyUrl String No Specifies the Proxy URL for Auto Proxy type WiFiHotspot Boolean No If true, the network is treated as a hotspot. Available in iOS 7.0 and later DomainName String No Specifies the Domain Name of the hotspot DisplayedOperatorName String No Specifies the Operator Name displayed externally ServiceProviderRoamingEnabled Boolean No If true, allows connection to roaming service providers. Available in iOS 7.0 and later. RoamingConsortiumOrganizationID String No Array of Roaming Consortium Organization Identifiers used for Wi-Fi Hotspot 2.0 negotiation. Available in iOS 7.0 and later NetworkAccessId String No Array ofstrings. List of Network AccessIdentifier Realm names used for Wi-Fi Hotspot 2.0 negotiation MccMnc String No Array of strings. List of Mobile Country Code (MCC)/Mobile Network Code (MNC) pairs used for Wi-Fi Hotspot 2.0 negotiation. Each string must contain exactly six digits. Available in iOS 7.0 and later Response Payload XML XML Payload String Boolean Numeric String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String String String String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 722 Chapter 10: Profile Management Version 1 and Version 2String Boolean String String 0 String String String false false String String false String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 726 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 727 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple Wi-fi profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/wifi/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "WifiList": [ { "ServiceSetIdentifier": "String", "HiddenNetwork": Boolean, "SecurityType": "Numeric", "Password": "String", "TLS": Boolean, "TTLS": Boolean, "LEAP": Boolean, "PEAP": Boolean, "EAPFAST": Boolean, "EAPSIM": Boolean, "ProvisionPAC": Boolean, "ProvisionPACAnonymously": Boolean, "UsePAC": Boolean, "AllowTrustExceptions": Boolean, "InnerIdentity": "String", "UserPerConnectionPassword": Boolean, "UserName": "String", "UserPassword": "String", "TrustedServerCertificateNames": ["String"], "TrustedCertificates": ["String"], "OuterIdentity": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 729 Chapter 10: Profile Management Version 1 and Version 2 "IdentityCertificate": "String", "AutoJoin": Boolean, "ProxyType": "String", "ProxyServer": "String", "ProxyServerPort": Numeric, "ProxyUsername": "String", "ProxyPassword": "String", "ProxyUrl": "String", "Protocol": Boolean, "WiFiHotspot": Boolean, "DomainName": "String", "DisplayedOperatorName": "String", "ServiceProviderRoamingEnabled": Boolean, "RoamingConsortiumOrganizationID": ["String"], "NetworkAccessId": ["String"], "MccMnc": ["String"] } ], "General" : JSON Payload } Associated Picklists Tag Picklist API URI SecurityType https://host/api/mdm/picklists/applewifisecuritytype InnerIdentity https://host/api/mdm/picklists/applewifiinneridentity ProxyType https://host/api/mdm/picklists/applewifiproxytype Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ServiceSetIdentifier String No SSID of the Wi-Fi network to be used HiddenNetwork Boolean No By default (Boolean), it is assumed that all configured networks are open or broadcast. To specify a hidden network, must be true SecurityType Numeric/String No The security type of the Wi-Fi Network. The allowed values for this tag can be obtained from the SecurityType Picklist Password Numeric No Password for the Wi-Fi network TLS Boolean No Specifies if TLS Protocol is used for Authentication for the Wi-Fi network VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 730 Chapter 10: Profile Management Version 1 and Version 2 TTLS Boolean No Specifies if TTLS Protocol is used for Authentication for the Wi-Fi network InnerIdentity String Yes (for TTLS=true) Authentication protocol used for TTLS LEAP Boolean No Specifies if LEAP Protocol is used for Authentication for the Wi-Fi network PEAP Boolean No Specifies if PEAP Protocol is used for Authentication for the Wi-Fi network EAPFAST Boolean No Specifies if EAPFAST Protocol is used for Authentication for the Wi-Fi network EAPSIM Boolean No Specifies if EAPSIM Protocol is used for Authentication for the Wi-Fi network UsePAC Boolean No Specifies if the Protected Access Credentials need to be used ProvisionPAC Boolean No Specifies if the Protected Access Credentials need to be provisioned to the devices ProvisionPACAnonymously Boolean No Specifies if the Protected Access Credentials need to be provisioned anonymously AllowTrustExceptions Boolean No Specifies if Trust decisions can be made by the user UserName String No Username used for Authentication. Allows lookup values UserPerConnectionPassword Boolean No Specifies if the password needs to provided during connection UserPassword String TrustedServerCertificateNames String No Array of strings. Specifies the name of the trusted server certificates TrustedCertificates String No Array of strings. Specifies the Certificates assigned. Certificates can be added using the credentials payload OuterIdentity String No Externally Visible Identification (For TTLS, PEAP, And EAP-FAST) IdentityCertificate String No Certificate to be used for User Identification. Certificates can be added using the credentials payload AutoJoin Boolean No If true, the network is auto-joined. If Boolean, the user has to tap the network name to join it. Available in iOS 5.0 and later Password for the Authenticated Account VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 731 Chapter 10: Profile Management Version 1 and Version 2 ProxyType String No Type of proxy if any on the Wireless network. Defaults to None ProxyServer String Yes (for Hostname or the IP address of the Proxy Proxy=Manual) Server ProxyServerPort Numeric Yes (for Port number of the Proxy server Proxy=Manual) ProxyUsername String No Username of the HTTP Proxy ProxyPassword String No Specifies the password of the HTTP proxy ProxyUrl String No Specifies the Proxy URL for Auto Proxy type WiFiHotspot Boolean No If true, the network is treated as a hotspot. Available in iOS 7.0 and later DomainName String No Specifies the Domain Name of the hotspot DisplayedOperatorName String No Specifies the Operator Name displayed externally ServiceProviderRoamingEnabled Boolean No If true, allows connection to roaming service providers. Available in iOS 7.0 and later. RoamingConsortiumOrganizationID String No Array of Roaming Consortium Organization Identifiers used for Wi-Fi Hotspot 2.0 negotiation. Available in iOS 7.0 and later NetworkAccessId String No Array ofstrings. List of Network AccessIdentifier Realm names used for Wi-Fi Hotspot 2.0 negotiation MccMnc String No Array of strings. List of Mobile Country Code (MCC)/Mobile Network Code (MNC) pairs used for Wi-Fi Hotspot 2.0 negotiation. Each string must contain exactly six digits. Available in iOS 7.0 and later Response Payload XML XML Payload String Boolean Numeric String Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean String String String String String String Boolean String String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 728 Chapter 10: Profile Management Version 1 and Version 2String String String Boolean Boolean String String Boolean String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 732 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 733 Chapter 10: Profile Management Version 1 and Version 2 Create Apple VPN Profile Version 1 Functionality – Creates an Apple VPN profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/vpn/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "VPN": { "ConnectionName": String, "ConnectionType": String, "CommunicationServer": String, "Account": String, "Realm": String "Role": String "EncryptionLevel": Numeric, "SendAllTraffic": Boolean, "UserAuthentication": Numeric, "MachineAuthentication": Numeric, "GroupName": String, "PromptForPassword": Boolean, "UseHybridAuthentication": Boolean, "SharedSecret": String, "ProxyServerAutoConfigURL": String, "Proxy": String, "ProxyServer": String, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 735 Chapter 10: Profile Management Version 1 and Version 2 "Port": Numeric, "ProxyUsername": String, "ProxyPassword": String, "VpnUserAuthentication": String, "VpnPassword": String, "EnableVPNOnDemand": Boolean, "UseAlternativeiOS7Syntax": Boolean, "IdentityCertificate": String, "IncludeUserPIN": Boolean, "LoginGroupOrDomain": String, "VpnOnDemandModels":[{ "Domain":"String", "Type":String }], "Identifier":"String", "CustomData":[{ "Key":"String", "Value":"String" }], "BlueCoatCustomerID":"String", "PerAppVpn":Boolean, "ConnectAutomatically":Boolean, "SafariDomains":["String"] }], } "General" : JSON Payload } Associated Picklists Tag Picklist API URI MachineAuthentication /api/mdm/picklists/applemachineauthentication Proxy /api/mdm/picklists/appleproxytype UserAuthentication /api/mdm/picklists/appleuserauthenticationtype VpnUserAuthentication /api/mdm/picklists/applevpnauthenticationmethod Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ConnectionName String Yes Name of the connection displayed on the device ConnectionType String Yes Type of connection enabled by the payload CommunicationServer String No Host name or IP address of the communication server VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 736 Chapter 10: Profile Management Version 1 and Version 2 Account String No User account for authenticating the server connection Realm String No Kerberos realm name. This field accepts look up values EncryptionLevel Numeric No Encryption level for the connection SendAllTraffic Boolean No Setting this to true, routes all network traffic through the VPN connection UserAuthentication Numeric No User authentication type for the connection MachineAuthentication Numeric No Machine authentication for the connection GroupName String No Group Identifier for the connection PromptForPassword Boolean No Setting to true, prompts the user for a password on the device UseHybridAuthentication Boolean No Specifies if a combination of Secret, Name and Certificate need to be used for Authentication SharedSecret String No Shared secret for this VPN account. Only present if MachineAuthentication tag is set to Shared Secret/Group Name Proxy String No Proxy type that needs to be used with the Proxy connection. The values allowed for this field can be obtained from the picklist mentioned above ProxyServer String No Host name or the IP address of the Proxy server Port Numeric No Port number of the VPN proxy ProxyUsername String No Username for proxy server authentication ProxyPassword String No Password for proxy server authentication ProxyServerAutoConfigURL String No Server URL from which the proxy setting will be retrieved VpnUserAuthentication String No User authentication type for CISCO Any Connection VPN client. The allowed values for this field can be obtained from the picklist mentioned above VpnPassword String No Password for the VPN connection EnableVPNOnDemand Boolean No Setting to true, enables VPN On-Demand feature for networks that user certificate based Authentication UseAlternativeiOS7Syntax Boolean No Enable the option for VPN On Demand to work on iOS 7 devices by utilizing the new keys in the VPN profile IdentityCertificate String No Name of the Identity certificate used for Authentication IncludeUserPIN Boolean No Setting to true sends the device user's pin along with the Authentication LoginGroupOrDomain String No Domain name for VPN connection AppleVpnOnDemandEntity Domain String No Domain name for Apple VPN On Demand VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 737 Chapter 10: Profile Management Version 1 and Version 2 AppleVpnOnDemandEntity Type String No Specifies the On Demand Action on the Domain Identifier String No Identifier for the custom VPN connection CustomDataEntity\Key String No Key of the custom data for custom VPN connection CustomDataEntity\value String No Value of the key of the custom data for custom VPN connection BlueCoatCustomerID String No Customer ID for Blue Coat Connections PerAppVpn Boolean No Specifies if a per-app VPN needs to be configured on the iOS device ConnectAutomatically Boolean No Enabled when PerAppVpn tag is set to true. Specifies if the VPN connection has to be made automatically SafariDomains String No This optional key is a special case of App-to-Per App VPN Mapping. It sets up the app mapping for Safari (Webkit) with a specific identifier and a designated requirement. The array contains strings, each of which is a domain that should trigger this VPN connection in Safari Response Payload XML XML Payload String String String String String String Numeric Boolean Numeric Numeric String Boolean Boolean String String String String Numeric String String Numeric String String Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 734 Chapter 10: Profile Management Version 1 and Version 2String Boolean String String String String String String String Boolean Boolean String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 738 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple VPN profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/vpn/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "VPN": { "ConnectionName": String, "ConnectionType": String, "CommunicationServer": String, "Account": String, "Realm": String "Role": String "EncryptionLevel": Numeric, "SendAllTraffic": Boolean, "UserAuthentication": Numeric, "MachineAuthentication": Numeric, "GroupName": String, "PromptForPassword": Boolean, "UseHybridAuthentication": Boolean, "SharedSecret": String, "ProxyServerAutoConfigURL": String, "Proxy": String, "ProxyServer": String, "Port": Numeric, "ProxyUsername": String, "ProxyPassword": String, "VpnUserAuthentication": String, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 740 Chapter 10: Profile Management Version 1 and Version 2 "VpnPassword": String, "EnableVPNOnDemand": Boolean, "UseAlternativeiOS7Syntax": Boolean, "IdentityCertificate": String, "IncludeUserPIN": Boolean, "LoginGroupOrDomain": String, "VpnOnDemandModels":[{ "Domain":"String", "Type":String }], "Identifier":"String", "CustomData":[{ "Key":"String", "Value":"String" }], "BlueCoatCustomerID":"String", "PerAppVpn":Boolean, "ConnectAutomatically":Boolean, "SafariDomains":["String"] }], } "General" : JSON Payload } Associated Picklists Tag Picklist API URI MachineAuthentication /api/mdm/picklists/applemachineauthentication Proxy /api/mdm/picklists/appleproxytype UserAuthentication /api/mdm/picklists/appleuserauthenticationtype VpnUserAuthentication /api/mdm/picklists/applevpnauthenticationmethod Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ConnectionName String Yes Name of the connection displayed on the device ConnectionType String Yes Type of connection enabled by the payload CommunicationServer String No Host name or IP address of the communication server Account String No User account for authenticating the server connection Realm String No Kerberos realm name. This field accepts look up values VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 741 Chapter 10: Profile Management Version 1 and Version 2 EncryptionLevel Numeric No Encryption level for the connection SendAllTraffic Boolean No Setting this to true, routes all network traffic through the VPN connection UserAuthentication Numeric No User authentication type for the connection MachineAuthentication Numeric No Machine authentication for the connection GroupName String No Group Identifier for the connection PromptForPassword Boolean No Setting to true, prompts the user for a password on the device UseHybridAuthentication Boolean No Specifies if a combination of Secret, Name and Certificate need to be used for Authentication SharedSecret String No Shared secret for this VPN account. Only present if MachineAuthentication tag is set to Shared Secret/Group Name Proxy String No Proxy type that needs to be used with the Proxy connection. The values allowed for this field can be obtained from the picklist mentioned above ProxyServer String No Host name or the IP address of the Proxy server Port Numeric No Port number of the VPN proxy ProxyUsername String No Username for proxy server authentication ProxyPassword String No Password for proxy server authentication ProxyServerAutoConfigURL String No Server URL from which the proxy setting will be retrieved VpnUserAuthentication String No User authentication type for CISCO Any Connection VPN client. The allowed values for this field can be obtained from the picklist mentioned above VpnPassword String No Password for the VPN connection EnableVPNOnDemand Boolean No Setting to true, enables VPN On-Demand feature for networks that user certificate based Authentication UseAlternativeiOS7Syntax Boolean No Enable the option for VPN On Demand to work on iOS 7 devices by utilizing the new keys in the VPN profile IdentityCertificate String No Name of the Identity certificate used for Authentication IncludeUserPIN Boolean No Setting to true sends the device user's pin along with the Authentication LoginGroupOrDomain String No Domain name for VPN connection AppleVpnOnDemandEntity Domain String No Domain name for Apple VPN On Demand AppleVpnOnDemandEntity Type String No Specifies the On Demand Action on the Domain VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 742 Chapter 10: Profile Management Version 1 and Version 2 Identifier String No Identifier for the custom VPN connection CustomDataEntity\Key String No Key of the custom data for custom VPN connection CustomDataEntity\value String No Value of the key of the custom data for custom VPN connection BlueCoatCustomerID String No Customer ID for Blue Coat Connections PerAppVpn Boolean No Specifies if a per-app VPN needs to be configured on the iOS device ConnectAutomatically Boolean No Enabled when PerAppVpn tag is set to true. Specifies if the VPN connection has to be made automatically SafariDomains String No This optional key is a special case of App-to-Per App VPN Mapping. It sets up the app mapping for Safari (Webkit) with a specific identifier and a designated requirement. The array contains strings, each of which is a domain that should trigger this VPN connection in Safari Response Payload XML XML Payload String String String String String String Numeric Boolean Numeric Numeric String Boolean Boolean String String String String Numeric String String Numeric String String Boolean Boolean String Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 739 Chapter 10: Profile Management Version 1 and Version 2 String String String String String String Boolean Boolean String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 743 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Email Profile Version 1 Functionality – Creates an Apple email profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/email/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "EmailList": [ { "AccountDescription": "String", "AccountType": "String", "PathPrefix": "String", "UserDisplayName": "String", "EmailAddress": "String", "PreventMovingMessages": Boolean, "DisableRecentContactSync": Boolean, "IncomingMailServerHostName": "String", "IncomingMailServerPortNumber": Numeric, "IncomingMailServerUseSSL": Boolean, "IncomingMailServerUsername": "String", "IncomingMailServerAuthentication": "String", "IncomingPassword": "String", "OutgoingMailServerHostName": "String", "OutgoingMailServerPortNumber": Numeric, "OutgoingMailServerAuthentication": "String", "OutgoingMailServerUseSSL": Boolean, "OutgoingMailServerUsername": "String", "OutgoingPasswordSameAsIncoming": Boolean, "OutgoingPassword": "String", "PreventUseInThirdPartyApps": Boolean, "UseSMIME": Boolean, "SMIMECertificate": "String", "SMIMEEncryptionCertificate": "String" } ], "General" : JSON Payload } Associated Picklists Tag Picklist API URI AccountType https://host/api/mdm/picklists/appleemailaccounttype IncomingMailServerAuthentication https://host/api/mdm/picklists/appleincomingmailserverauthentication OutgoingMailServerAuthentication https://host/api/mdm/picklists/appleoutgoingmailserverauthentication VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 745 Chapter 10: Profile Management Version 1 and Version 2 Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload page for payload details AccountDescription String No Desired display name for the account AccountType String No Protocol used for accessing the Email client. The values allowed for this field can be obtained from the picklist mentioned above PathPrefix String No IMAP path prefix for accessing the account UserDisplayName String No Desired display name of the user EmailAddress String No Email address of the account PreventMovingMessages Boolean No If true, messages may not be moved out of this email account into another account. Also prevents forwarding or replying from a different account than the message was originated from DisableRecentContactSync Boolean No If true, this account is excluded from address Recent syncing IncomingMailServerHostName String No Incoming mail server host name (or IP address) IncomingMailServerPortNumber Numeric No Incoming mail server port number IncomingMailServerUseSSL Boolean No Specifies whether the incoming mail server uses SSL for authentication IncomingMailServerUsername String No User name for the email account IncomingMailServerAuthentication String No Designates the authentication scheme for incoming mail. The values allowed for this field can be obtained from the picklist mentioned above IncomingPassword String No Password for the Incoming mail server OutgoingMailServerHostName String No Outgoing mail server host name (or IP address) OutgoingMailServerPortNumber Numeric No Outgoing mail server port number OutgoingMailServerAuthentication String No Specifies the authentication scheme for outgoing mail. The values allowed for this field can be obtained from the picklist mentioned above OutgoingMailServerUseSSL Boolean No Specifies whether the outgoing mail server uses SSL for authentication OutgoingMailServerUsername String No User name for the email account VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 746 Chapter 10: Profile Management Version 1 and Version 2 OutgoingPasswordSameAsIncoming Boolean No If true, the user will be prompted for the password only once and it will be used for both outgoing and incoming mail OutgoingPassword String No Password for the outgoing mail server PreventUseInThirdPartyApps Boolean No If true, this account is not available for sending mail in third-party applications UseSMIME Boolean No If true, this account supports S/MIME SMIMECertificate String No S/MIME signing certificate to be used with the profile SMIMEEncryptionCertificate String No S/MIME encryption certificate to be used with the profile. If this field is not provided the same certificate specified in the SMIMECertificate tag is used for encryption and signing Response Payload XML XML Payload String String String String String Boolean Boolean String Numeric Boolean String String String String Numeric String Boolean String Boolean String Boolean Boolean String VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 744 Chapter 10: Profile Management Version 1 and Version 2String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 747 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple email profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/email/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 748 Chapter 10: Profile Management Version 1 and Version 2 JSON { "EmailList": [ { "AccountDescription": "String", "AccountType": "String", "PathPrefix": "String", "UserDisplayName": "String", "EmailAddress": "String", "PreventMovingMessages": Boolean, "DisableRecentContactSync": Boolean, "IncomingMailServerHostName": "String", "IncomingMailServerPortNumber": Numeric, "IncomingMailServerUseSSL": Boolean, "IncomingMailServerUsername": "String", "IncomingMailServerAuthentication": "String", "IncomingPassword": "String", "OutgoingMailServerHostName": "String", "OutgoingMailServerPortNumber": Numeric, "OutgoingMailServerAuthentication": "String", "OutgoingMailServerUseSSL": Boolean, "OutgoingMailServerUsername": "String", "OutgoingPasswordSameAsIncoming": Boolean, "OutgoingPassword": "String", "PreventUseInThirdPartyApps": Boolean, "UseSMIME": Boolean, "SMIMECertificate": "String", "SMIMEEncryptionCertificate": "String" } ], "General" : JSON Payload } Associated Picklists Tag Picklist API URI AccountType https://host/api/mdm/picklists/appleemailaccounttype IncomingMailServerAuthentication https://host/api/mdm/picklists/appleincomingmailserverauthentication OutgoingMailServerAuthentication https://host/api/mdm/picklists/appleoutgoingmailserverauthentication Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload page for payload details AccountDescription String No Desired display name for the account VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 749 Chapter 10: Profile Management Version 1 and Version 2 AccountType String No Protocol used for accessing the Email client. The values allowed for this field can be obtained from the picklist mentioned above PathPrefix String No IMAP path prefix for accessing the account UserDisplayName String No Desired display name of the user EmailAddress String No Email address of the account PreventMovingMessages Boolean No If true, messages may not be moved out of this email account into another account. Also prevents forwarding or replying from a different account than the message was originated from DisableRecentContactSync Boolean No If true, this account is excluded from address Recent syncing IncomingMailServerHostName String No Incoming mail server host name (or IP address) IncomingMailServerPortNumber Numeric No Incoming mail server port number IncomingMailServerUseSSL Boolean No Specifies whether the incoming mail server uses SSL for authentication IncomingMailServerUsername String No User name for the email account IncomingMailServerAuthentication String No Designates the authentication scheme for incoming mail. The values allowed for this field can be obtained from the picklist mentioned above IncomingPassword String No Password for the Incoming mail server OutgoingMailServerHostName String No Outgoing mail server host name (or IP address) OutgoingMailServerPortNumber Numeric No Outgoing mail server port number OutgoingMailServerAuthentication String No Specifies the authentication scheme for outgoing mail. The values allowed for this field can be obtained from the picklist mentioned above OutgoingMailServerUseSSL Boolean No Specifies whether the outgoing mail server uses SSL for authentication OutgoingMailServerUsername String No User name for the email account OutgoingPasswordSameAsIncoming Boolean No If true, the user will be prompted for the password only once and it will be used for both outgoing and incoming mail OutgoingPassword String No Password for the outgoing mail server PreventUseInThirdPartyApps Boolean No If true, this account is not available for sending mail in third-party applications UseSMIME Boolean No If true, this account supports S/MIME SMIMECertificate String No S/MIME signing certificate to be used with the profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 750 Chapter 10: Profile Management Version 1 and Version 2 SMIMEEncryptionCertificate String No S/MIME encryption certificate to be used with the profile. If this field is not provided the same certificate specified in the SMIMECertificate tag is used for encryption and signing Response Payload XML XML Payload String String String String String Boolean Boolean String Numeric Boolean String String String String Numeric String Boolean String Boolean String Boolean Boolean String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 751 Chapter 10: Profile Management Version 1 and Version 2 Create Apple EAS Profiles Version 1 Create Apple Native Mail Client Profile Functionality – Creates an Apple Exchange ActiveSync profile for native mail client and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easnativemailclient/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 752 Chapter 10: Profile Management Version 1 and Version 2 JSON { "EASNativeMailClientList": [ { "AccountName": "String", "ExchangeActiveSyncHost": "String", "UseSSL": Boolean, "UseSMIME": Boolean, "SMIMECertificateName": "String", "SmimeEncryptionCertificateName": "String", "Domain": "String", "UserName": "String", "EmailAddress": "String", "Password": "String", "PayloadCertificateName": "String", "PastDaysOfMailToSync": Numeric, "PreventMovingMessages": Boolean, "PreventUseInThirdPartyApps": Boolean, "DisableRecentContactSync": Boolean } ], "General" : JSON Payload } Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details AccountName String Yes Name of the account ExchangeActiveSyncHost String Yes Public host name for the Email server UseSSL Boolean No Specifies if all communication occurs through the secure socket layer UseSMIME Boolean No Specifies whether the user's S/MIME certificates would be stored to be used with S/MIME enabled profiles SMIMECertificateName String No Name of the S/MIME signing certificate SmimeEncryptionCertificateName String No Name of the S/MIME encryption certificate Domain String No User's email domain. This field accepts lookup values UserName String No Username for the account. This field accepts lookup values VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 753 Chapter 10: Profile Management Version 1 and Version 2 EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values PayloadCertificateName String No Name of the Payload certificate PastDaysOfMailToSync Numeric No Number of days since synchronization PreventMovingMessages Boolean No If set to true, messages may not be moved out of this email account into another account. Also prevents forwarding or replying from a different account than the message was originated from PreventUseInThirdPartyApps Boolean No If set to true, this account will not be available for sending mail in third party applications DisableRecentContactSync Boolean No If true, this account is excluded from address Recent syncing Response Payload XML XML Payload String String Boolean Boolean String String String String String String String Numeric Boolean Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 754 Chapter 10: Profile Management Version 1 and Version 2 Create Apple AirWatch Inbox Profile Functionality – Creates an Apple Exchange ActiveSync profile for AirWatch Inbox mail client and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easawmailclient/getpayloadkeys Accept MIME Types V1 V2 application/json;version=1 application/json;version=2 application/xml;version=1 application/xml;version=2 Request Payloads XMLJSON { "EasAwMailClient": { "ExchangeActiveSyncHost": "String", "IgnoreSSLErrors": Boolean, "Domain": "String", "User": "String", "EmailAddress": "String", "Password": "String", "EnableEmail": Boolean, "EnableCalendar": Boolean, "EnableContacts": Boolean, "SyncInterval": Numeric, "EmailNotifications": Numeric, "PastDaysOfMailToSync": Numeric, "PastDaysOfCalendarToSync": Numeric, "EmailSizeInKilobytesDefaultIsUnlimited": Numeric, "EnableHtmlEmail": Boolean, "EmailSignature": "String", "EnableSignatureEditing": Boolean, "RequirePasscode": Boolean, "Type": Numeric, "Complexity": Numeric, "MinimumLength": Numeric, "MinimumNumberOfComplexCharacters": Numeric, "MaximumAgeDays": Numeric, "AutoLock": Boolean, "History": Numeric, "GracePeriod": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "DisabeCopyPaste": Boolean, "DisableAttachments": Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 756 Chapter 10: Profile Management Version 1 and Version 2 "MaximumAttachmentSizeKb": Numeric, "SCLOnlyAttachments": Boolean, "AllowPrinting": Boolean } , "General" : JSON Payload } Associated Picklists Tag Picklist API URI EasAWEmailClientComplexity https://host/api/mdm/picklists/appleeasawemailclientcomplexity EasAWEmailClientEmailNotifications https://host/api/mdm/picklists/appleeasawemailclientemailnotifications EasAWEmailClientHistory https://host/api/mdm/picklists/appleeasawemailclienthistory EasAWEmailClientMaximumFailedAttemp ts https://host/api/mdm/picklists/appleeasawemailclientmaximumfailedatt empts EasAWEmailClientPasscodeType https://host/api/mdm/picklists/appleeasawemailclientpasscodetype EasAWEmailClientPastdaysOfCalendarToS /api/mdm/picklists/appleeasawemailclientpastdaysofcalendartosync ync EasAWEmailClientPastdaysOfMailToSync /api/mdm/picklists/appleeasawemailclientpastdaysofmailtosync EasAWEmailClientSyncInterval /api/mdm/picklists/appleeasawemailclientsyncinterval Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ExchangeActiveSyncHost String Yes Public host name for the Email Server IgnoreSSLErrors Boolean No Specifies if the device is allowed to ignore SSL errors for Agent Process Domain String No User's email domain. This field accepts lookup values User String No Username for the account. This field accepts lookup values EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values EnableEmail Boolean No If false, disables access to Email on the AW Email Client VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 757 Chapter 10: Profile Management Version 1 and Version 2 EnableCalendar Boolean No If false, disables access to calendar on the AW Email Client EnableContacts Boolean No If false, disables access to contacts on the AW Email Client SyncInterval Numeric No Frequency of mail synchronization.The allowed values for this field can be obtained from the picklist URI mentioned above EmailNotifications String No If false, disables email notifications. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfMailToSync Numeric No Number of days of mail synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfCalendarToSync Numeric No Number of days of calendar synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above EmailSizeInKilobytesDefaultIsUnlimited Numeric No Maximum Email size allowed in KBs EnableHtmlEmail Boolean No Specifies if HTML Email is enabled on the device EmailSignature String No Signature for the Emails EnableSignatureEditing Boolean No If false,disables editing of Email signature RequirePasscode Boolean No Specifies if passcode is needed on the AW Email Client. Type Numeric No Specifies if the Email client can be accessed using passcode alone or using a combination of Username and Password.The allowed values for this field can be obtained from the picklist URI mentioned above Complexity Numeric No Specifies if a simple or an Alphanumeric passcode will be used to access the email client. The allowed values for this field can be obtained from the picklist URI mentioned above MinimumLength Numeric No Minimum length of the passcode MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters necessary in the passcode. MaximumAgeDays Numeric No Maximum days for the passcode before it is expired AutoLock Boolean No If true, the Email client will be locked after the idle period. VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 758 Chapter 10: Profile Management Version 1 and Version 2 History Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history. The allowed values for this field can be obtained from the picklist URI mentioned above GracePeriod Numeric No The maximum grace period in minutes, to unlock the Client without entering a passcode. MaximumNumberOfFailedAttempts Numeric No Specifies the number of allowed failed attempts to enter the passcode at the device's lock screen. The allowed values for this field can be obtained from the picklist URI mentioned above DisabeCopyPaste Boolean No Setting this field to true disables copying of Email content on the clipboard DisableAttachments Boolean No Setting this field to true disables email attachments MaximumAttachmentSizeKb Numeric No Maximum size of an Email attachment in KB SCLOnlyAttachments Boolean No Setting this field to true forces opening of mail attachments in the Secure Content locker AllowPrinting Boolean No Setting this field to false disables printing Response Payload XML XML Payload String Boolean String String String String Boolean Boolean Boolean Numeric Numeric Numeric Numeric Numeric Boolean String Boolean Boolean Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 755 Chapter 10: Profile Management Version 1 and Version 2 Numeric Boolean Numeric Numeric Numeric Boolean Boolean Numeric Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 759 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Nitrodesk Touchdown Profile Functionality – Creates an Apple Exchange ActiveSync profile for Nitrodesk Touchdown mail client and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easnitrodesktouchdown/getpayloadkeys Accept MIME Types V1 V2 application/json;version=1 application/json;version=2 application/xml;version=1 application/xml;version=2 Request Payloads XMLJSON { "EASNitroDeskTouchDownList": [ { "ExchangeActiveSyncHost": "String" "IgnoreSSLErrors": Boolean, "Domain": "String", "User": "String", "EmailAddress": "String", "Password": "String", "IdentityCertificate": "String", "PastDaysOfMailToSync": Numeric, "PastDaysOfCalendarToSync": Numeric, "RequireManualSyncWhenRoaming": Boolean, "EnableHtmlEmail": Boolean, "MaximumEmailTruncationSizeKb": Numeric, "EmailSignature": "String", "EnableSignatureEditing": Boolean, "RequirePasscode": Boolean, "PayloadAuthenticationUUID": "Text Value", "AuthenticationType": Numeric, "MinimumPasscodeLength": Numeric, "MinimumNumberOfComplexCharacters": Numeric, "AutoLockMinutes": Numeric, "PasscodeHistory": Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 761 Chapter 10: Profile Management Version 1 and Version 2 "MaximumPasscodeAge": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "EnableSecurityRestrictions": Boolean, "AllowCopyPaste": Boolean, "EnableCopyToPhonebook": Boolean, "AllowAttachments": Boolean, "AllowDataExport": Boolean } ] , "General" : JSON Payload } Associated Picklists Tag Picklist API URI EasNitrodeskTouchdownAuthenticationTy pe https://host/api/mdm/picklists/appleeasnitrodesktouchdownauthentica tiontype EasNitrodeskTouchdownPastdaysOfCalen darToSync https://host/api/mdm/picklists/appleeasnitrodesktouchdownpastdayso fcalendartosync EasNitrodeskTouchdownPastdaysOfMailT oSync https://host/api/mdm/picklists/appleeasnitrodesktouchdownpastdayso fmailtosync TouchdownCredentialSource /api/mdm/picklists/appletouchdowncredentialsource Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details ExchangeActiveSyncHost String Yes Public host name for the Email Server IgnoreSSLErrors Boolean No Specifies if the device is allowed to ignore SSL errors for Agent Process Domain String No User's email domain. This field accepts lookup values User String No Username of the account. This field accepts lookup values EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values IdentityCertificate String No Name of the identity certificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 762 Chapter 10: Profile Management Version 1 and Version 2 PastDaysOfMailToSync Numeric No Number of days of mail synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfCalendarToSync Numeric No Number of days of calendar synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above RequireManualSyncWhenRoaming Boolean No When set to true, the Email needs to be synchronized manually by the device user when the device is Roaming. EnableHtmlEmail Boolean No Specifies if HTML Email is enabled on the device MaximumEmailTruncationSizeKb Numeric No Size beyond which e-mail messages are truncated when they are synchronized to the mobile phone EmailSignature String No Signature for the Emails EnableSignatureEditing Boolean No If false, disables editing of Email signature RequirePasscode Boolean No Specifies if passcode is needed on the Email Client AuthenticationType String No Specifies if the Email client can be accessed using passcode alone or using a combination of Username and Password.The allowed values for this field can be obtained from the picklist URI mentioned above MinimumPasscodeLength Numeric No Minimum length of the passcode MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters necessary in the passcode AutoLockMinutes Numeric No If true, the Email client will be locked after the idle period. PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history MaximumPasscodeAge Numeric No Specifies in days the passcode age before it is expired MaximumNumberOfFailedAttempts Numeric No Number of allowed failed attempts to enter the passcode at the device's lock screen EnableSecurityRestrictions Boolean No Setting this field to true enables security restrictions on the device AllowCopyPaste Boolean No If false, disables copying of Email content on the clipboard EnableCopyToPhonebook Boolean No If false,disables user from copying contacts to Phonebook VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 763 Chapter 10: Profile Management Version 1 and Version 2 AllowAttachments Boolean No If false, disables attachments in the mail. AllowDataExport Boolean No If false, disables data export from the Email client. ShowEmailInfoOnNotificationBar Boolean No If false, disables displaying of Email information on the notifications bar ShowCalendarInfoOnNotificationBar Boolean No If false, disables displaying of Calendar information on the notifications bar ShowTaskInfoOnNotificationBar Boolean No If false, disables displaying of Email Data on the notifications bar ShowDataOnLockScreenWidgets Boolean No If false, disables displaying of Email data on the device lock screen widgets Response Payload XML XML Payload String Boolean String String String String String Numeric Numeric Boolean Boolean Numeric String Boolean Boolean Numeric Numeric Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 760 Chapter 10: Profile Management Version 1 and Version 2Numeric Numeric Numeric Boolean Boolean Boolean Boolean Numeric Boolean Boolean Boolean Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 764 Chapter 10: Profile Management Version 1 and Version 2 Create Apple AirWatch Mail Credential Profile Functionality – Creates an Apple Exchange ActiveSync profile for AirWatch Mail Credential and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/AWMailCredential/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLXML Payload JSON { "AWMailCredentialList" : [ { "CertificateAuthority" : Numeric, "CertificateID" : Numeric, "CertificateTemplate" : Numeric, "CredentialName" : "String", "CredentialSource" : "String", "Name" : "String", "Smime" : "String" } ] "General" : JSON Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 765 Chapter 10: Profile Management Version 1 and Version 2 } Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template CredentialSource String Yes The source of the credentials SMIME String Yes Species if the S/MIME signing or encryption certificate of the user is used as a credential Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" Response Payload XML String String Numeric Numeric Numeric String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 766 Chapter 10: Profile Management Version 1 and Version 2 Create Apple TouchDown Credential Profile Functionality – Creates an Apple TouchDown credential profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/TouchDownCredential/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLXML Payload JSON { "TouchDownCredentialList" : [ { "CertificateAuthority" : Numeric, "CertificateID" : Numeric, "CertificateTemplate" : Numeric, "CredentialName" : "String", "CredentialSource" : "String", "Name" : "String", } ] "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 767 Chapter 10: Profile Management Version 1 and Version 2 Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template CredentialSource String Yes The source of the credentials SMIME String Yes Species if the S/MIME signing or encryption certificate of the user is used as a credential Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" Response Payload XML Text value Text value 2147483647 2147483647 2147483647 Text value Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 768 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Create Apple Native Mail Client Profile Functionality – Creates an Apple Exchange ActiveSync profile for native mail client and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easnativemailclient/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 769 Chapter 10: Profile Management Version 1 and Version 2 JSON { "EASNativeMailClientList": [ { "AccountName": "String", "ExchangeActiveSyncHost": "String", "UseSSL": Boolean, "UseSMIME": Boolean, "SMIMECertificateName": "String", "SmimeEncryptionCertificateName": "String", "Domain": "String", "UserName": "String", "EmailAddress": "String", "Password": "String", "PayloadCertificateName": "String", "PastDaysOfMailToSync": Numeric, "PreventMovingMessages": Boolean, "PreventUseInThirdPartyApps": Boolean, "DisableRecentContactSync": Boolean } ], "General" : JSON Payload } Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details AccountName String Yes Name of the account ExchangeActiveSyncHost String Yes Public host name for the Email server UseSSL Boolean No Specifies if all communication occurs through the secure socket layer UseSMIME Boolean No Specifies whether the user's S/MIME certificates would be stored to be used with S/MIME enabled profiles SMIMECertificateName String No Name of the S/MIME signing certificate SmimeEncryptionCertificateName String No Name of the S/MIME encryption certificate Domain String No User's email domain. This field accepts lookup values UserName String No Username for the account. This field accepts lookup values VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 770 Chapter 10: Profile Management Version 1 and Version 2 EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values PayloadCertificateName String No Name of the Payload certificate PastDaysOfMailToSync Numeric No Number of days since synchronization PreventMovingMessages Boolean No If set to true, messages may not be moved out of this email account into another account. Also prevents forwarding or replying from a different account than the message was originated from PreventUseInThirdPartyApps Boolean No If set to true, this account will not be available for sending mail in third party applications DisableRecentContactSync Boolean No If true, this account is excluded from address Recent syncing VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 771 Chapter 10: Profile Management Version 1 and Version 2 Create Apple AirWatch Inbox Profile Functionality – Creates an Apple Exchange ActiveSync profile for AirWatch Inbox mail client and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easawmailclient/getpayloadkeys?contexttype= {contexttype} Request Payloads XML XML Payload String String Boolean Boolean String String String String String String String Numeric Boolean Boolean Boolean JSON { "EasAwMailClient": { "ExchangeActiveSyncHost": "String", "IgnoreSSLErrors": Boolean, "Domain": "String", "User": "String", "EmailAddress": "String", "Password": "String", "EnableEmail": Boolean, "EnableCalendar": Boolean, "EnableContacts": Boolean, "SyncInterval": Numeric, "EmailNotifications": Numeric, "PastDaysOfMailToSync": Numeric, "PastDaysOfCalendarToSync": Numeric, "EmailSizeInKilobytesDefaultIsUnlimited": Numeric, "EnableHtmlEmail": Boolean, "EmailSignature": "String", "EnableSignatureEditing": Boolean, "RequirePasscode": Boolean, "Type": Numeric, "Complexity": Numeric, "MinimumLength": Numeric, "MinimumNumberOfComplexCharacters": Numeric, "MaximumAgeDays": Numeric, "AutoLock": Boolean, "History": Numeric, "GracePeriod": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "DisabeCopyPaste": Boolean, "DisableAttachments": Boolean, "MaximumAttachmentSizeKb": Numeric, "SCLOnlyAttachments": Boolean, "AllowPrinting": Boolean } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 773 Chapter 10: Profile Management Version 1 and Version 2 , "General" : JSON Payload } Associated Picklists Tag Picklist API URI EasAWEmailClientComplexity https://host/api/mdm/picklists/appleeasawemailclientcomplexity EasAWEmailClientEmailNotifications https://host/api/mdm/picklists/appleeasawemailclientemailnotifications EasAWEmailClientHistory https://host/api/mdm/picklists/appleeasawemailclienthistory EasAWEmailClientMaximumFailedAttemp ts https://host/api/mdm/picklists/appleeasawemailclientmaximumfailedatt empts EasAWEmailClientPasscodeType https://host/api/mdm/picklists/appleeasawemailclientpasscodetype EasAWEmailClientPastdaysOfCalendarToS /api/mdm/picklists/appleeasawemailclientpastdaysofcalendartosync ync EasAWEmailClientPastdaysOfMailToSync /api/mdm/picklists/appleeasawemailclientpastdaysofmailtosync EasAWEmailClientSyncInterval /api/mdm/picklists/appleeasawemailclientsyncinterval Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details ExchangeActiveSyncHost String Yes Public host name for the Email Server IgnoreSSLErrors Boolean No Specifies if the device is allowed to ignore SSL errors for Agent Process Domain String No User's email domain. This field accepts lookup values User String No Username for the account. This field accepts lookup values EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values EnableEmail Boolean No If false, disables access to Email on the AW Email Client EnableCalendar Boolean No If false, disables access to calendar on the AW Email Client VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 774 Chapter 10: Profile Management Version 1 and Version 2 EnableContacts Boolean No If false, disables access to contacts on the AW Email Client SyncInterval Numeric No Frequency of mail synchronization.The allowed values for this field can be obtained from the picklist URI mentioned above EmailNotifications String No If false, disables email notifications. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfMailToSync Numeric No Number of days of mail synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfCalendarToSync Numeric No Number of days of calendar synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above EmailSizeInKilobytesDefaultIsUnlimited Numeric No Maximum Email size allowed in KBs EnableHtmlEmail Boolean No Specifies if HTML Email is enabled on the device EmailSignature String No Signature for the Emails EnableSignatureEditing Boolean No If false,disables editing of Email signature RequirePasscode Boolean No Specifies if passcode is needed on the AW Email Client. Type Numeric No Specifies if the Email client can be accessed using passcode alone or using a combination of Username and Password.The allowed values for this field can be obtained from the picklist URI mentioned above Complexity Numeric No Specifies if a simple or an Alphanumeric passcode will be used to access the email client. The allowed values for this field can be obtained from the picklist URI mentioned above MinimumLength Numeric No Minimum length of the passcode MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters necessary in the passcode. MaximumAgeDays Numeric No Maximum days for the passcode before it is expired AutoLock Boolean No If true, the Email client will be locked after the idle period. History Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history. The allowed values for this field can be obtained from the picklist URI mentioned above VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 775 Chapter 10: Profile Management Version 1 and Version 2 GracePeriod Numeric No The maximum grace period in minutes, to unlock the Client without entering a passcode. MaximumNumberOfFailedAttempts Numeric No Specifies the number of allowed failed attempts to enter the passcode at the device's lock screen. The allowed values for this field can be obtained from the picklist URI mentioned above DisabeCopyPaste Boolean No Setting this field to true disables copying of Email content on the clipboard DisableAttachments Boolean No Setting this field to true disables email attachments MaximumAttachmentSizeKb Numeric No Maximum size of an Email attachment in KB SCLOnlyAttachments Boolean No Setting this field to true forces opening of mail attachments in the Secure Content locker AllowPrinting Boolean No Setting this field to false disables printing Create Apple Nitrodesk Touchdown Profile Functionality – Creates an Apple Exchange ActiveSync profile for Nitrodesk Touchdown mail client and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/easnitrodesktouchdown/getpayloadkeys?contexttype= {contexttype} Request Payloads XML XML Payload String Boolean String String String String Boolean Boolean Boolean Numeric Numeric Numeric Numeric Numeric Boolean String Boolean Boolean Numeric Numeric Numeric Numeric Numeric Boolean Numeric Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 772 Chapter 10: Profile Management Version 1 and Version 2Numeric Boolean Boolean Numeric Boolean Boolean JSON { "EASNitroDeskTouchDownList": [ { "ExchangeActiveSyncHost": "String" "IgnoreSSLErrors": Boolean, "Domain": "String", "User": "String", "EmailAddress": "String", "Password": "String", VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 777 Chapter 10: Profile Management Version 1 and Version 2 "IdentityCertificate": "String", "PastDaysOfMailToSync": Numeric, "PastDaysOfCalendarToSync": Numeric, "RequireManualSyncWhenRoaming": Boolean, "EnableHtmlEmail": Boolean, "MaximumEmailTruncationSizeKb": Numeric, "EmailSignature": "String", "EnableSignatureEditing": Boolean, "RequirePasscode": Boolean, "PayloadAuthenticationUUID": "String", "AuthenticationType": Numeric, "MinimumPasscodeLength": Numeric, "MinimumNumberOfComplexCharacters": Numeric, "AutoLockMinutes": Numeric, "PasscodeHistory": Numeric, "MaximumPasscodeAge": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "EnableSecurityRestrictions": Boolean, "AllowCopyPaste": Boolean, "EnableCopyToPhonebook": Boolean, "AllowAttachments": Boolean, "AllowDataExport": Boolean } ] , "General" : JSON Payload } Associated Picklists Tag Picklist API URI EasNitrodeskTouchdownAuthenticationTy pe https://host/api/mdm/picklists/appleeasnitrodesktouchdownauthentica tiontype EasNitrodeskTouchdownPastdaysOfCalen darToSync https://host/api/mdm/picklists/appleeasnitrodesktouchdownpastdayso fcalendartosync EasNitrodeskTouchdownPastdaysOfMailT oSync https://host/api/mdm/picklists/appleeasnitrodesktouchdownpastdayso fmailtosync TouchdownCredentialSource /api/mdm/picklists/appletouchdowncredentialsource Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details ExchangeActiveSyncHost String Yes Public host name for the Email Server VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 778 Chapter 10: Profile Management Version 1 and Version 2 IgnoreSSLErrors Boolean No Specifies if the device is allowed to ignore SSL errors for Agent Process Domain String No User's email domain. This field accepts lookup values User String No Username of the account. This field accepts lookup values EmailAddress String No User's email address. This field accepts lookup values Password String No Email account's password. This field accepts lookup values IdentityCertificate String No Name of the identity certificate PastDaysOfMailToSync Numeric No Number of days of mail synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above PastDaysOfCalendarToSync Numeric No Number of days of calendar synchronization. The allowed values for this field can be obtained from the picklist URI mentioned above RequireManualSyncWhenRoaming Boolean No When set to true, the Email needs to be synchronized manually by the device user when the device is Roaming. EnableHtmlEmail Boolean No Specifies if HTML Email is enabled on the device MaximumEmailTruncationSizeKb Numeric No Size beyond which e-mail messages are truncated when they are synchronized to the mobile phone EmailSignature String No Signature for the Emails EnableSignatureEditing Boolean No If false, disables editing of Email signature RequirePasscode Boolean No Specifies if passcode is needed on the Email Client AuthenticationType String No Specifies if the Email client can be accessed using passcode alone or using a combination of Username and Password.The allowed values for this field can be obtained from the picklist URI mentioned above MinimumPasscodeLength Numeric No Minimum length of the passcode MinimumNumberOfComplexCharacters Numeric No Minimum number of complex characters necessary in the passcode AutoLockMinutes No If true, the Email client will be locked after the idle period. Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 779 Chapter 10: Profile Management Version 1 and Version 2 PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last N entries in the history MaximumPasscodeAge Numeric No Specifies in days the passcode age before it is expired MaximumNumberOfFailedAttempts Numeric No Number of allowed failed attempts to enter the passcode at the device's lock screen EnableSecurityRestrictions Boolean No Setting this field to true enables security restrictions on the device AllowCopyPaste Boolean No If false, disables copying of Email content on the clipboard EnableCopyToPhonebook Boolean No If false,disables user from copying contacts to Phonebook AllowAttachments Boolean No If false, disables attachments in the mail. AllowDataExport Boolean No If false, disables data export from the Email client. ShowEmailInfoOnNotificationBar Boolean No If false, disables displaying of Email information on the notifications bar ShowCalendarInfoOnNotificationBar Boolean No If false, disables displaying of Calendar information on the notifications bar ShowTaskInfoOnNotificationBar Boolean No If false, disables displaying of Email Data on the notifications bar ShowDataOnLockScreenWidgets Boolean No If false, disables displaying of Email data on the device lock screen widgets VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 780 Chapter 10: Profile Management Version 1 and Version 2 Create Apple AirWatch Mail Credential Profile Functionality – Creates an Apple Exchange ActiveSync profile for AirWatch Mail Credential and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/AWMailCredential/getpayloadkeys?contexttype= {contexttype} Request Payloads XML XML Payload String Boolean String String String String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 776 Chapter 10: Profile Management Version 1 and Version 2Numeric Boolean Boolean Numeric String Boolean Boolean Numeric Numeric Numeric Numeric Numeric Numeric Numeric Boolean Boolean Boolean Boolean Numeric Boolean Boolean Boolean Boolean Boolean XML Payload JSON { "AWMailCredentialList" : [ { "CertificateAuthority" : Numeric, "CertificateID" : Numeric, "CertificateTemplate" : Numeric, "CredentialName" : "String", "CredentialSource" : "String", "Name" : "String", "Smime" : "String" } ] "General" : JSON Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 781 Chapter 10: Profile Management Version 1 and Version 2 } Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template CredentialSource String Yes The source of the credentials SMIME String Yes Species if the S/MIME signing or encryption certificate of the user is used as a credential Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" Response Payload XML String String Numeric Numeric Numeric String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 782 Chapter 10: Profile Management Version 1 and Version 2 Create Apple TouchDown Credential Profile Functionality – Creates an Apple TouchDown credential profile and assigns it to the desired organization groups. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/TouchDownCredential/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLXML Payload JSON { "TouchDownCredentialList" : [ { "CertificateAuthority" : Numeric, "CertificateID" : Numeric, "CertificateTemplate" : Numeric, "CredentialName" : "String", "CredentialSource" : "String", "Name" : "String", } ] "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 783 Chapter 10: Profile Management Version 1 and Version 2 Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General Payload for details CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template CredentialSource String Yes The source of the credentials SMIME String Yes Species if the S/MIME signing or encryption certificate of the user is used as a credential Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" Response Payload XML Text value Text value 2147483647 2147483647 2147483647 Text value Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long/Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 784 Chapter 10: Profile Management Version 1 and Version 2 Upload Certificates Version 1 Functionality – Uploads certificate into that could be used in other profile payloads (both .pfx and cer formats). HTTP Method – POST API URI – https://host/api/mdm/profiles/uploadcertificate Request Payload XMLJSON { "CertificatePayload":"String", "Password":"String" } Request Tag Details Tag Type Description CertificatePayload String Specifies the Base-64 Encoded certificate data Password String Specifies the password of the certificate being uploaded Response Payload XML String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 785 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Value": Numeric } Response Tag Details Tag Type Description Long/Value Numeric Specifies the unique numeric ID of the uploaded certificate VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 786 Chapter 10: Profile Management Version 1 and Version 2 Create Apple SCEP Profile Version 1 Functionality – Creates an Apple SCEP profile that can be used along with other payloads that require certificate authentication HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/scep/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "ScepList": [ { "CredentialSource": "String", "CertificateAuthority": Numeric, "CertificateTemplate": Numeric, "Name": "String" } ], "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 787 Chapter 10: Profile Management Version 1 and Version 2 Important: Multiple SCEP entities can be created in a single payload by providing multiple credentials details under the SCEP List tag. Associated Picklists Tag Picklist API URI CredentialSource https://host/api/mdm/picklists/applescepcredentialsource CertificateAuthority https://host/api/mdm/picklists/organizationGroups/ {ogid}/getcertificateauthorities CertificateTemplate https://host/api/mdm/picklists/organizationGroups/ {ogid}/certificateauthorities/ {certificateauthorityid}/getcertificatetemplates Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details Name String No Desired name of the SCEP configuration CredentialSource String No Specifies the source of the SCEP credentials. The allowed values can be obtained from the Picklist endpoint mentioned above CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template Response Payload XML XML Payload String Numeric Numeric String Numeric JSON { "Value": Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 788 Chapter 10: Profile Management Version 1 and Version 2 Response Tag Details Tag Type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 789 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple SCEP profile that can be used along with other payloads that require certificate authentication HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/scep/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "ScepList": [ { "CredentialSource": "String", "CertificateAuthority": Numeric, "CertificateTemplate": Numeric, "Name": "String" } ], "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 790 Chapter 10: Profile Management Version 1 and Version 2 Important: Multiple SCEP entities can be created in a single payload by providing multiple credentials details under the SCEP List tag. Associated Picklists Tag Picklist API URI CredentialSource https://host/api/mdm/picklists/applescepcredentialsource CertificateAuthority https://host/api/mdm/picklists/organizationGroups/ {ogid}/getcertificateauthorities CertificateTemplate https://host/api/mdm/picklists/organizationGroups/ {ogid}/certificateauthorities/ {certificateauthorityid}/getcertificatetemplates Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details Name String No Desired name of the SCEP configuration CredentialSource String No Specifies the source of the SCEP credentials. The allowed values can be obtained from the Picklist endpoint mentioned above CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template Response Payload XML XML Payload String Numeric Numeric String Numeric JSON { "Value": Numeric } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 791 Chapter 10: Profile Management Version 1 and Version 2 Response Tag Details Tag Type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 792 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Credentials Profile Version 1 Functionality – Creates an Apple credentials profile which can be used along with other payloads that require certificate authentication. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/credentials/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "CredentialsList": [ { "CertificateID": Numeric, "CredentialName": "String", "CredentialSource": "String", "CertificateAuthority": Numeric, "CertificateTemplate": Numeric, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 793 Chapter 10: Profile Management Version 1 and Version 2 "Smime": "String", "Name": "String" }], "General" : JSON Payload } Important: Multiple credential entities can be created in a single payload by providing multiple credentials details under the Credential List tag. Associated Picklists Tag Picklist API URI CredentialSource https://host/api/mdm/picklists/applecredentialsource Applecredentialsmime https://host/api/mdm/picklists/applecredentialsmime Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details CredentialSource String Yes The source of the credentials. The allowed values can be obtained from the Picklist endpoint mentioned above Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template Smime String Yes Species if the S/MIME signing or encryption certificate of the user is used a credential VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 794 Chapter 10: Profile Management Version 1 and Version 2 Response Payload XML XML Payload String Numeric String Numeric Numeric String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 795 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple credentials profile which can be used along with other payloads that require certificate authentication. HTTP Method – POST API URL – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/credentials/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "CredentialsList": [ { "CertificateID": Numeric, "CredentialName": "String", "CredentialSource": "String", "CertificateAuthority": Numeric, "CertificateTemplate": Numeric, "Smime": "String", "Name": "String" }], "General" : JSON Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 796 Chapter 10: Profile Management Version 1 and Version 2 } Important: Multiple credential entities can be created in a single payload by providing multiple credentials details under the Credential List tag. Associated Picklists Tag Picklist API URI CredentialSource https://host/api/mdm/picklists/applecredentialsource Applecredentialsmime https://host/api/mdm/picklists/applecredentialsmime Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details CredentialSource String Yes The source of the credentials. The allowed values can be obtained from the Picklist endpoint mentioned above Name String Yes Desired name of the credential chosen when credential source is "Upload". Mandatory when credential source is "Upload" CertificateID Numeric Yes Unique numeric identifier obtained after upload a certificate using the upload cert API. Mandatory when credential source is "Upload" CertificateAuthority Numeric No Specifies the unique numeric identifier of the certificate authority CertificateTemplate Numeric No Specifies the numeric identifier of the certificate template Smime String Yes Species if the S/MIME signing or encryption certificate of the user is used a credential Response Payload XML XML Payload String Numeric String Numeric Numeric String String Numeric VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 797 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 798 Chapter 10: Profile Management Version 1 and Version 2 Create Apple Custom Settings Profile Version 1 Functionality – Creates an Apple custom settings profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/customsettings/getpayloadkeys?contexttype={contexttype} Request Payloads XMLJSON { "CustomSettingsList" : [ { "CustomSettings" : "String" } ] "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 799 Chapter 10: Profile Management Version 1 and Version 2 Response Payload XML XML Payload String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 800 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Apple custom settings profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/apple/create Payload URI – https://host/api/mdm/profiles/platforms/apple/payloads/customsettings/getpayloadkeys?contexttype={contexttype} Request Payloads XMLsJSON { "CustomSettingsList" : [ { "CustomSettings" : "String" } ] "General" : JSON Payload } VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 801 Chapter 10: Profile Management Version 1 and Version 2 Response Payload XML XML Payload String String Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 802 Chapter 10: Profile Management Version 1 and Version 2 Create Android Passcode Profile Version 1 Functionality – Creates an Android passcode profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/android/create Payload URI – https://host/api/mdm/profiles/platforms/android/payloads/passcode/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "Passcode": { "MinimumPasscodeLength": Numeric, "PasscodeContent": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "GracePeriodForPasscodeChange": Numeric, "MaximumRepeatCharacters": Numeric, "MinimumNumberOfNumericalDigits": Numeric, "MinimumNumberOfLetters": Numeric, "MinimumNumberOfLowerCaseLetters": Numeric, "MinimumNumberOfUpperCaseLetters": Numeric, "MinimumNumberOfNonLetters": Numeric, "MinimumNumberOfSymbols": Numeric, "MaximumPasscodeAge": Numeric, "DeviceLockTimeoutInMinutes": Numeric, "PasscodeHistory": Numeric, "RequireStorageEncryption": Boolean, "RequireSDCardEncryption": Boolean, "NumberOfTimesAlphabetCanBeRepeated": Numeric, "MinimumNumberOfChangedCharactersRequired": Numeric, "requireStorageEncryptionAlways": Boolean, "requireStorageEncryptionNativeEmail": Boolean }, "General" : JSON Payload } Associated Picklists Tag Picklist API URI GracePeriodForPasscodeChange https://host/api/mdm/picklists/androidgraceperiodforpasscodechange MinimumPasscodeLength https://host/api/mdm/picklists/androidpasscodecontent Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 804 Chapter 10: Profile Management Version 1 and Version 2 MinimumPasscodeLength Boolean No Minimum overall length of the passcode PasscodeContent Numeric No Type of content of the passcode (Any 65536, Alphanumeric - 327680, Alphabetic - 262144, Complex - 393216, Fingerprint 69632) MaximumNumberOfFailedAttempts Boolean No Maximum number of times a user can enter the wrong password before the device wipes its data GracePeriodForPasscodeChange Numeric No Amount of time the user given in order to meet new passcode policy before AirWatch revokes corporate resources MaximumRepeatCharacters Numeric No Maximum number of characters to be repeated in the passcode MinimumNumberOfNumericalDigits Numeric No Minimum number of numeric digits required in the password MinimumNumberOfLetters Numeric No Minimum number of letters required in the password MinimumNumberOfLowerCaseLetters Numeric No Minimum number of lowercase letters required in the password MinimumNumberOfUpperCaseLetters Numeric No Minimum number of uppercase letters required in the password MinimumNumberOfNonLetters Numeric No Minimum number of non-letter characters required in the password MinimumNumberOfSymbols Numeric No Minimum number of symbols required in the password MaximumPasscodeAge Numeric No Number of days the passcode can remain unchanged. After this number of days, the user is forced to change the passcode before the device is unlocked DeviceLockTimeoutInMinutes Numeric No Time in minutes for the device to lock if no password is entered PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last entries in the history NumberOfTimesAlphabetCanBeRepeated Numeric No Number of times the alphabets can be repeated in the password MinimumNumberOfChangedCharactersRequired Numeric No Minimum number of changed characters required in the password RequireStorageEncryption No Specifies that the storage area should be encrypted, if the device supports it Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 805 Chapter 10: Profile Management Version 1 and Version 2 RequireSDCardEncryption Boolean No Specifies that the SD storage area should be encrypted, if the device supports it requireStorageEncryptionAlways Boolean No Specifies if the Storage Encryption is Always required. This tag requires the "RequireStorageEncryption" tag to be set to "true" requireStorageEncryptionNativeEmail Boolean No Specifies if the Storage Encryption is required on Native Email. This tag requires the "RequireStorageEncryption" tag to be set to "true" Response Payload XML XML Payload Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Boolean Boolean Numeric Numeric Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 803 Chapter 10: Profile Management Version 1 and Version 2 Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 806 Chapter 10: Profile Management Version 1 and Version 2 Version 2 Functionality – Creates an Android passcode profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/android/create Payload URI – https://host/api/mdm/profiles/platforms/android/payloads/passcode/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLJSON { "Passcode": { "MinimumPasscodeLength": Numeric, "PasscodeContent": Numeric, "MaximumNumberOfFailedAttempts": Numeric, "GracePeriodForPasscodeChange": Numeric, "MaximumRepeatCharacters": Numeric, "MinimumNumberOfNumericalDigits": Numeric, "MinimumNumberOfLetters": Numeric, "MinimumNumberOfLowerCaseLetters": Numeric, "MinimumNumberOfUpperCaseLetters": Numeric, "MinimumNumberOfNonLetters": Numeric, "MinimumNumberOfSymbols": Numeric, "MaximumPasscodeAge": Numeric, "DeviceLockTimeoutInMinutes": Numeric, "PasscodeHistory": Numeric, "RequireStorageEncryption": Boolean, "RequireSDCardEncryption": Boolean, "NumberOfTimesAlphabetCanBeRepeated": Numeric, "MinimumNumberOfChangedCharactersRequired": Numeric, "requireStorageEncryptionAlways": Boolean, "requireStorageEncryptionNativeEmail": Boolean }, "General" : JSON Payload } Associated Picklists Tag Picklist API URI GracePeriodForPasscodeChange https://host/api/mdm/picklists/androidgraceperiodforpasscodechange MinimumPasscodeLength https://host/api/mdm/picklists/androidpasscodecontent Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details MinimumPasscodeLength Boolean No Minimum overall length of the passcode VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 808 Chapter 10: Profile Management Version 1 and Version 2 PasscodeContent String No Type of content of the passcode MaximumNumberOfFailedAttempts Boolean No Maximum number of times a user can enter the wrong password before the device wipes its data GracePeriodForPasscodeChange Numeric No Amount of time the user given in order to meet new passcode policy before AirWatch revokes corporate resources MaximumRepeatCharacters Numeric No Maximum number of characters to be repeated in the passcode MinimumNumberOfNumericalDigits Numeric No Minimum number of numeric digits required in the password MinimumNumberOfLetters Numeric No Minimum number of letters required in the password MinimumNumberOfLowerCaseLetters Numeric No Minimum number of lowercase letters required in the password MinimumNumberOfUpperCaseLetters Numeric No Minimum number of uppercase letters required in the password MinimumNumberOfNonLetters Numeric No Minimum number of non-letter characters required in the password MinimumNumberOfSymbols Numeric No Minimum number of symbols required in the password MaximumPasscodeAge Numeric No Number of days the passcode can remain unchanged. After this number of days, the user is forced to change the passcode before the device is unlocked DeviceLockTimeoutInMinutes Numeric No Time in minutes for the device to lock if no password is entered PasscodeHistory Numeric No When the user changes the passcode, it has to be unique within the last entries in the history NumberOfTimesAlphabetCanBeRepeated Numeric No Number of times the alphabets can be repeated in the password MinimumNumberOfChangedCharactersRequired Numeric No Minimum number of changed characters required in the password RequireStorageEncryption Boolean No Specifies that the storage area should be encrypted, if the device supports it RequireSDCardEncryption Boolean No Specifies that the SD storage area should be encrypted, if the device supports it VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 809 Chapter 10: Profile Management Version 1 and Version 2 requireStorageEncryptionAlways Boolean No Specifies if the Storage Encryption is Always required. This tag requires the "RequireStorageEncryption" tag to be set to "true" requireStorageEncryptionNativeEmail Boolean No Specifies if the Storage Encryption is required on Native Email. This tag requires the "RequireStorageEncryption" tag to be set to "true" Response Payload XML XML Payload VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 807 Chapter 10: Profile Management Version 1 and Version 2 Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Numeric Boolean Boolean Numeric Numeric Boolean Boolean Numeric JSON { "Value": Numeric } Response Tag Details Tag Data type Description Long /Value Numeric Unique ID of the newly created profile VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 810 Chapter 10: Profile Management Version 1 and Version 2 Create Android Restrictions Profile Version 1 Functionality – Creates an Android restrictions profile and assigns it to the desired organization groups. HTTP Method – POST API URI – https://host/api/mdm/profiles/platforms/android/create Payload URI – https://host/api/mdm/profiles/platforms/android/payloads/restrictions/getpayloadkeys?contexttype= {contexttype} Request Payloads XMLVMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 813 Chapter 10: Profile Management Version 1 and Version 2 JSON { "Restrictions": { "AllowCamera": Boolean, "AllowMicrophone": Boolean, "AllowFactoryReset": Boolean, "AllowAllTethering": Boolean, "AllowWiFiTethering": Boolean, "AllowBluetoothTethering": Boolean, "AllowUSBTethering": Boolean, "AllowUSBDebugging": Boolean, "AllowUSBMassStorage": Boolean, "AllowGoogleBackup": Boolean, "AllowSDCardAccess": Boolean, "AllowAccessToDeviceSettings": Boolean, "AllowScreenCapture": Boolean, "AllowMockLocations": Boolean, "AllowClipboard": Boolean, "AllowUSBMediaPlayer": Boolean, "AllowBackgroundData": Boolean, "AllowNFC": Boolean, "AllowHomeKey": Boolean, "AllowUsb": Boolean, "AllowAirplaneMode": Boolean, "AllowAndroidMarket": Boolean, "AllowYouTube": Boolean, "AllowNativeAndroidBrowser": Boolean, "AllowNonMarketAppInstallation": Boolean, "AllowVoiceDialer": Boolean, "AllowBluetooth": Boolean, "AllowBluetoothDataTransfer": Boolean, "AllowBluetoothPairing": Boolean, "AllowBluetoothDiscoverableMode": Boolean, "AllowBluetoothLimitedDiscoverableMode": Boolean, "AllowOutgoingCallsViaBluetooth": Boolean, "AllowDesktopConnectivityViaBluetooth": Boolean, "DataConnection": 1, "AllowWiFiProfiles": Boolean, "AllowWifiChanges": Boolean, "AllowPromptForCredentials": Boolean, "MinimumWiFiSecurityLevel": 0, "AllowAutomaticSyncOnRoaming": Boolean, "AllowPushMessagesOnRoaming": Boolean, "AllowDataUsageOnRoaming": Boolean, "AllowGpsLocationServices": Boolean, "AllowWirelessNetworkLocationServices": Boolean, "AllowPassiveLocationServices": Boolean, "AllowPopUps": Boolean, "AllowCookies": Boolean, "EnableAutofill": Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 814 Chapter 10: Profile Management Version 1 and Version 2 "EnableJavaScript": Boolean, "ForceFraudWarning": Boolean, "BlockedNetworks": ["String"], "AllowNonEmergencyCalls": Boolean, "AllowSendingSms": Boolean, "AllowPopImapEmail": Boolean, "MaxDataUsageModels": [ { "AndroidUsageFrequency": "Day", "Frequency": 0, "AndroidDataUsageSize": "KB", "Maximum": 0 } ], "SetDeviceFont": Boolean, "FontName": "String", "SetDeviceFontSize": Boolean, "FontSize": 0, "AllowGoogleCrashReport": Boolean, "AllowOtaUpgrade": Boolean, "AllowPowerOff": Boolean, "AllowSdCardWrite": Boolean, "AllowStatusBar": Boolean, "AllowWallpaperChange": Boolean, "AllowNativeVpn": Boolean, "AllowRoamingVoiceCalls": Boolean, "AllowAudioRecordingIfMicrophoneIsAllowed": Boolean, "AllowVideoRecordingIfCameraIsAllowed": Boolean, "AllowEndingActivityWhenLeftIdle": Boolean, "AllowUserToSetBackgroundProcessLimit": Boolean, "AllowUserToSetMobileDataLimit": Boolean, "AllowSmsWithStorage": Boolean, "AllowMmsWithStorage": Boolean, "AllowWapPush": Boolean, "AllowWifiDirect": Boolean, "AllowSBeam": Boolean, "AllowSVoice": Boolean, "AllowAndroidBeam": Boolean, "AllowCopyPasteBetweenDifferentApplications": Boolean, "AllowUserToStopSystemSignedApplications": Boolean, "AllowUsbHostStorage": Boolean, "AllowUnsecureWifi": Boolean, "AllowAutoConnectionWifi": Boolean, "AllowAccountSettings": Boolean, "AllowApplicationSettings": Boolean, "AllowDeveloperOptions": Boolean, "AllowNotifications": Boolean, "AllowOnlySecureVPNConnections": Boolean, "AllowSystemBar": Boolean, "AllowTaskManager": Boolean, "AllowMenuKey": Boolean, VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 815 Chapter 10: Profile Management Version 1 and Version 2 "AllowBackKey": Boolean, "AllowSearchKey": Boolean, "AllowVolumeKey": Boolean }, , "General" : JSON Payload } Associated Picklists Tag Picklist API URI FontSize https://host/api/mdm/picklists/androidfontsize MinimumWiFiSecurityLevel https://host/api/mdm/picklists/androidminwifisecurity DataConnection https://host/api/mdm/picklists/androidrestrictiondataconnection Request Tag Details Tag Type Mandatory Description General Tag Yes The JSON/XML General payload. Refer General payload for details AllowCamera Boolean No When false, the camera is disabled and its icon is removed from the Home screen. Users are unable to take photographs AllowMicrophone Boolean No When false, the device microphone is disabled on the device AllowFactoryReset Boolean No When false, disables the user from manually performing factory reset on the device AllowAllTethering Boolean No When false, disables all tethering functionality AllowWiFiTethering Boolean No When false, disables Wi-Fi tethering functionality AllowBluetoothTethering Boolean No When false, disables Bluetooth tethering functionality AllowUSBTethering Boolean No When false, disables USB tethering functionality AllowUSBDebugging Boolean No When false, disables copying/processing of commands between the PC and the Device VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 816 Chapter 10: Profile Management Version 1 and Version 2 AllowUSBMassStorage Boolean No When false, disables users from sharing/backing up files to the PC using USB AllowGoogleBackup Boolean No When false, disables syncing with Google back up AllowSDCardAccess Boolean No When false, disables access to the external SD card AllowAccessToDeviceSettings Boolean No When false, prevents users from modifying device settings AllowScreenCapture Boolean No When false, disables ability to take screen capture AllowMockLocations Boolean No When false, disables applications on the device from modifying the Location data obtained by the real Location sources AllowClipboard Numeric No When false, disables copying/pasting data to the Clipboard AllowUSBMediaPlayer Numeric No When false, disables usage of the device as a media player from the bluetooth AllowBackgroundData Numeric No When false, disables device applications from accessing other services on the device AllowNFC Boolean No When false, disables users from sharing data using the NFC protocol AllowHomeKey Boolean No When false, disables the use of the device home key AllowUsb Boolean No When false, disables users from using the USB on the device AllowAirplaneMode Boolean No When false, disables Airplane mode on the device AllowAndroidMarket Boolean No When false, disables access to the Google Play store AllowYouTube Boolean No When false, disables access to the YouTube application on the device AllowNativeAndroidBrowser Boolean No When false, disables the native browser on the device AllowNonMarketAppInstallation Boolean No When false, disables installation of applications outside of the Google Play Store AllowVoiceDialer Boolean No When false, disables voice dialer application VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 817 Chapter 10: Profile Management Version 1 and Version 2 AllowBluetooth Boolean No When false, disables bluetooth on the device AllowBluetoothDataTransfer Boolean No When false, disables transferring of data through Bluetooth AllowBluetoothPairing Boolean No When false, disables bluetooth pairing with other devices AllowBluetoothDiscoverableMode Boolean No When false, disables device to be seen by other devices AllowBluetoothLimitedDiscoverableMode Boolean No When true, allows devices to be discoverable only for a limited period of time AllowOutgoingCallsViaBluetooth Boolean No When false, disables outgoing calls via bluetooth AllowDesktopConnectivityViaBluetooth Boolean No When false, disables the ability of the device to connect to a desktop using bluetooth DataConnection String No Specifies the mode of data access on the device. The values allowed for this field can be obtained from the picklist mentioned above AllowWiFiProfiles Boolean No When false, disables users from configuring Wi-Fi networks on the device AllowWifiChanges Boolean No When false, disables users from modifying Wi-Fi settings on the device AllowPromptForCredentials Boolean No When true, enables users to re-enter credentials MinimumWiFiSecurityLevel Numeric No Specifies the minimum security level required to connect to Wi-Fi AllowAutomaticSyncOnRoaming Boolean No When false, disables Automatic sync when the device is Roaming AllowPushMessagesOnRoaming Boolean No When false, disables Push Messaging when the device is Roaming AllowDataUsageOnRoaming Boolean No When false, disables mobile data usage when the device is Roaming AllowGpsLocationServices String No When false, disables access to GPS location services on the device AllowWirelessNetworkLocationServices Boolean No When false, disable the access to wireless network location services VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 818 Chapter 10: Profile Management Version 1 and Version 2 AllowPassiveLocationServices Boolean No When false, disable the passive location services accessibility AllowPopUps Boolean No When false, disables Pop ups on the Android native browser AllowCookies Boolean No When false, disables storing of cookies on the Android native browser EnableAutofill Boolean No When false, disables Autofill on the Android native browser EnableJavaScript Boolean No When false, disables execution of Javascripts on the Android native browser ForceFraudWarning Boolean No When true, Native browser prevents the user from accessing websites deemed as fraudulent or compromised BlockedNetworks String Array No Specifies the SSIDs of the blocked Wi-Fi networks AllowNonEmergencyCalls Boolean No When false, prevents user from calling NonEmergency phone numbers AllowSendingSms Boolean No When false, prevents the users from sending SMS AllowPopImapEmail Boolean No When false, prevents user from configuring POP/IMAP mails on the device. MaxDataUsageModels Array No Specifies the Data usage models set on the device AndroidUsageFrequency String No Specifies the time range over which the data usage is measured. Allowed values are "Day", "Week", and "Month" AndroidDataUsageSize String No Specifies the size parameter on which the data usage will be measured Maximum Numeric No Specifies the maximum data usage allowed on the device SetDeviceFont Boolean No When true, allows user set device font in the FontName tag FontName String No Specifies the name of the fo XML Payload Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 811 Chapter 10: Profile Management Version 1 and Version 2 Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean 1 Boolean Boolean Boolean 0 Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean String Boolean Boolean Boolean Day KB 0 Boolean String Boolean 0 Boolean Boolean Boolean Boolean Boolean VMware AirWatch REST API Guide | v.2016.04 | April 2017 Copyright © 2017 VMware, Inc. All rights reserved. Proprietary & Confidential. 812 Chapter 10: Profile Management Version 1 and Version 2Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean