{"id":1082,"date":"2015-11-07T00:00:00","date_gmt":"2015-11-07T08:00:00","guid":{"rendered":"http:\/\/officedevblogs.wpengine.com\/?p=1082"},"modified":"2021-11-15T11:38:08","modified_gmt":"2021-11-15T19:38:08","slug":"update-4-on-office-365-unified-api","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/update-4-on-office-365-unified-api\/","title":{"rendered":"Update 4 on Office 365 unified API"},"content":{"rendered":"<div id=\"body-content\">\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">Hi all, this is the fourth update for Office 365 unified API, we&#8217;re announcing another set of breaking changes.&nbsp; These changes will roll in to the \/beta endpoint on 11\/9 noon PST.&nbsp; Here is the list of major changes, along with a full list of ALL changes called out later in the post:<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">&nbsp;<\/span><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 27.0pt;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->1.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->With this update all unified API responses will be returned using lowerCamelCasing for all namespaces, entity types, complex types, and property names.&nbsp; Requests may be case insensitive.<\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 27.0pt;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->2.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->There are a large number of renames (and property removals) in this update, the chief ones being:<\/p>\n<p class=\"MsoNormal\" style=\"margin-left: .75in;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->a.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->A rename of <b>objectId<\/b> to <b>id <\/b>on the <b>DirectoryObject<\/b> entity type.&nbsp; This impacts a large number of existing entity types as it is a base type for many entity types.<\/p>\n<p class=\"MsoNormal\" style=\"margin-left: .75in;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->b.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->A rename of entity type <b>tenantDetail<\/b> to <b>organization<\/b>. <\/p>\n<p class=\"MsoNormal\" style=\"margin-left: .75in;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->c.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->A rename of entity type <b>item <\/b>to <b>driveItem<\/b><\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 27.0pt;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->3.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->The event entity type has a few updates, such as removing the <b>reminder <\/b>property and replacing with <b>ReminderMinutesBeforeStart <\/b>and<b> IsReminderOn.&nbsp; <\/b>Additionally the <b>start<\/b> and <b>end <\/b>properties now become complex types of DateTime <b>and <\/b>Timezone, with Timezone being required when creating and updating events.&nbsp; More details can also be found <a href=\"http:\/\/.msdn.com\/b\/exchangedev\/archive\/2015\/10\/14\/outlook-rest-api-changes-to-beta-endpoint-part-ii.aspx\">here<\/a>, and in the examples please <span style=\"color: #1f497d\">, <\/span>replace &ldquo;&hellip;\/api\/&rdquo; in that blog post with &ldquo;<a href=\"https:\/\/graph.microsoft.com\/\">https:\/\/graph.microsoft.com\/<\/a>&rdquo;.<\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 27.0pt;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->4.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]-->Group permission scopes &#8211; Group.Read.All and Group.ReadWrite.All will now <b>require<\/b> administrators to consent to apps requesting these scopes.&nbsp; Any apps that have already been consented using these permissions will continue to work. We plan to introduce additional Group permission scopes shortly, that will allow users to consent to apps that need to access Office 365 group content.<\/p>\n<p class=\"MsoNormal\" style=\"margin-left: 27.0pt;text-indent: -.25in;vertical-align: middle\"><!--[if !supportLists]-->5.<span style=\"font-size: 7pt;line-height: normal;font-family: 'Times New Roman'\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><!--[endif]--><b>Additionally <\/b>we&#8217;re providing a<b> heads-up<\/b> that at some later time <b>after<\/b> 11\/9,&nbsp; querying to get the Office 365 groups a user is a member of will be changed. We will likely no longer support the \/joinedGroups navigation property.&nbsp; We will update this post with more information on what the new search syntax will look like.<\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">&nbsp;<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">Remember Office 365 unified API is currently in preview, we are working hard to release it soon, as part of this we will continue making some changes, including breaking changes, in \/beta to incorporate feedback and improve the API as we get ready for v1.0.&nbsp; Once v1.0 launches, we will continue to update \/beta on a regular basis, even with potentially breaking changes, but versioned end points will not have breaking changes once they&#8217;re released.<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">&nbsp;<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">Please continue to provide your feedback and questions via stackoverflow and uservoice. Thank you for your input and happy coding.<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">&nbsp;<\/span><\/p>\n<p style=\"margin: 0in;margin-bottom: .0001pt\"><span style=\"font-size: 11pt;font-family: Calibri, sans-serif\">~ Dan Kershaw and Yina Arenas for the Office 365 unified API team<\/span><\/p>\n<h3>\n<p>Full change list details:<\/h3>\n<div>The following is a comprehensive list of all the breaking changes that will appear with this update, to the \/beta version. <\/p>\n<table cellpadding=\"5\" cellspacing=\"2\" border=\"1\">\n<tbody>\n<tr>\n<th>Name<\/th>\n<th>Type<\/th>\n<th>Breaking Changes<\/th>\n<\/tr>\n<tr>\n<td valign=\"top\">DirectoryObject<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\"><b>NOTE:<\/b> A large number entities inherit from DirectoryObject, and will be impacted with the following changes:  <\/p>\n<ul>\n<li><b>Renamed property:<\/b>  \n<ul>\n<li>objectId -&gt; id<\/li>\n<\/ul>\n<\/li>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>objectType<\/li>\n<li>deletionTimeStamp<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">OrgContact<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed properties:<\/b>  \n<ul>\n<li>dirSyncEnabled -&gt; onPremisesSyncEnabled<\/li>\n<li>lastDirSyncDateTime -&gt; onPremisesLastSyncDateTime<\/li>\n<\/ul>\n<\/li>\n<li>physicalDeliveryOfficeName -&gt; officeLocation<\/li>\n<li>mobile -&gt; mobilePhone<\/li>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>facsimileTelephoneNumber<\/li>\n<li>provisioningErrors<\/li>\n<li>sipProxyAddress<\/li>\n<li>telephoneNumber  \n<ul>\n<li><b>NOTE:<\/b> Added businessPhones (Edm.String collection) to replace telephoneNumber, allowing the developer to store multiple business phone numbers. Any pre-existing telephoneNumber and facsimileTelephoneNumber will be populated into businessPhones.<\/li>\n<\/ul>\n<\/li>\n<li>thumbNailPhoto<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Device<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Type changed for property:<\/b>  \n<ul>\n<li>deviceId type changed from Edm.Guid -&gt; Edm.String<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><b>Renamed properties:<\/b>  \n<ul>\n<li>approximateLastLogonTimestamp -&gt; approximateLastSignInDateTime<\/li>\n<li>deviceObjectVersion -&gt; deviceVersion<\/li>\n<li>deviceOSType -&gt; operatingSystem<\/li>\n<li>deviceOSVersion -&gt; operatingSystemVersion<\/li>\n<li>devicePhysicalIds -&gt; physicalIds<\/li>\n<li>deviceTrustType -&gt; trustType<\/li>\n<li>dirSyncEnabled -&gt; onPremisesSyncEnabled<\/li>\n<li>lastDirSyncDateTime -&gt; onPremisesLastSyncDateTime<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">DirectoryRole<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Removed Property:<\/b><\/li>\n<ul>\n<li>isSystem<\/li>\n<\/ul>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Event<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Type changed for property:<\/b>  \n<ul>\n<li>start changed from Edm.DateTime -&gt; complex type DateTimeTimeZone<\/li>\n<li>end changed from Edm.DateTime -&gt; complex type DateTimeTimeZone<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>Reminder  \n<ul>\n<li><b>NOTE:<\/b> Replaced with reminderMinutesBeforeStart and IsReminderOn<\/li>\n<\/ul>\n<\/li>\n<ul><\/ul>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Group<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed properties:<\/b>  \n<ul>\n<li>dirSyncEnabled -&gt; onPremisesSyncEnabled<\/li>\n<li>companyLastDirSyncDateTime -&gt; onPremisesLastSyncDateTime<\/li>\n<\/ul>\n<\/li>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>provisioningErrors<\/li>\n<li>isPublic  \n<ul>\n<li><b>NOTE:<\/b> Added visibility (Edm.String) to replace isPublic. This property is required to be set when groupTypes is set to [&#8220;Unified&#8221;]. Allowed values are &#8220;public&#8221; and &#8220;private&#8221;.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">TenantDetails<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li>Entity type itself is renamed to organization<\/li>\n<\/ul>\n<ul>\n<li><b>Renamed properties:<\/b>  \n<ul>\n<li>dirSyncEnabled -&gt; onPremisesSyncEnabled<\/li>\n<li>lastDirSyncDateTime -&gt; onPremisesLastSyncDateTime<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>provisioningErrors<\/li>\n<li>telephoneNumber  \n<ul>\n<li><b>NOTE:<\/b> Added businessPhones (Edm.String collection) to replace telephoneNumber, allowing the developer to store multiple business phone numbers. Any pre-existing telephoneNumber will be populated in businessPhones.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">User<\/td>\n<td valign=\"top\">Entity Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed properties:<\/b>  \n<ul>\n<li>dirSyncEnabled -&gt; onPremisesSyncEnabled<\/li>\n<li>immutableId -&gt;onPremisesImmutableId<\/li>\n<li>lastDirSyncDateTime -&gt; onPremisesLastSyncDateTime<\/li>\n<li>physicalDeliveryOfficeName -&gt; officeLocation<\/li>\n<li>mobile -&gt; mobilePhone<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li><b>Removed properties:<\/b>  \n<ul>\n<li>facsimileTelephoneNumber<\/li>\n<li>provisioningErrors<\/li>\n<li>sipProxyAddress<\/li>\n<li>otherMails<\/li>\n<li>telephoneNumber  \n<ul>\n<li><b>NOTE: Added businessPhones (Edm.String collection) to replace telephoneNumber, allowing the developer to store multiple business phone numbers. Any pre-existing telephoneNumber and facsimileTelephoneNumber will be populated into businessPhones.<\/b><\/li>\n<\/ul>\n<\/li>\n<li>thumbNailPhoto<\/li>\n<li>rootFolder <b>navigation<\/b><\/li>\n<li>joinedGroups <b>navigation<\/b>  \n<ul>\n<li><b>NOTE:<\/b> in its place you&#8217;ll have to perform the following query instead: ..\/me\/memberOf?$filter=groupTypes eq &#8216;Unified&#8217;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">AssignedPlan<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed Property:<\/b>  \n<ul>\n<li>forceChangePasswordNextLogin -&gt; forceChangePasswordNextSignIn<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">PasswordProfile<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed Property:<\/b>  \n<ul>\n<li>assignedTimestamp -&gt; assignedDateTime<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">SubscribedSku<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td>\n<ul>\n<li><b>Renamed Property:<\/b>  \n<ul>\n<li>objectId -&gt; id<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">VerifiedDomain<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed Property:<\/b>  \n<ul>\n<li>default -&gt; isDefault<\/li>\n<li>Initial -&gt; isInitial<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Photo<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td>\n<ul>\n<li><b>Renamed the complex type to<\/b> profilePhoto<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Location<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td>\n<ul>\n<li><b>Renamed the complex type<\/b> to geoCoordinates  \n<ul>\n<li><b>NOTE:<\/b> This is used by the location property on the Item entity type<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">GeoCoordinates<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Renamed the complex type<\/b> to outlookGeoCoordinates  \n<ul>\n<li><b>NOTE:<\/b> This is used by the coordinates property on the Location complex type<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">RecurrenceRange<\/td>\n<td valign=\"top\">Complex Type<\/td>\n<td>\n<ul>\n<li><b> Property Type changed<\/b>  \n<ul>\n<li>StartDate and EndDate types have been changed to Edm.Date<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">delta<\/td>\n<td valign=\"top\">Function<\/td>\n<td valign=\"top\">\n<ul>\n<li><b>Function removed<\/b><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hi all, this is the fourth update for Office 365 unified API, we&#8217;re announcing another set of breaking changes.&nbsp; These changes will roll in to the \/beta endpoint on 11\/9 noon PST.&nbsp; Here is<\/p>\n","protected":false},"author":69076,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-1082","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-office-add-ins"],"acf":[],"blog_post_summary":"<p>Hi all, this is the fourth update for Office 365 unified API, we&#8217;re announcing another set of breaking changes.&nbsp; These changes will roll in to the \/beta endpoint on 11\/9 noon PST.&nbsp; Here is<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1082","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69076"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=1082"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1082\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=1082"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=1082"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=1082"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}