Shared drive versus My Drive API differences

Shared drives follow different organization, sharing, and ownership models from a My Drive. As such, some My Drive operations are not permitted for content in a shared drive. This document outlines shared drive-specific API differences.

Files resource

The following fields are only populated for files located within a shared drive:

  • hasAugmentedPermissions — Whether any users are granted file access directly on this file.
  • capabilities/canDeleteChildren — Whether the current user can delete children of this folder.
  • capabilities/canMoveChildrenOutOfDrive — Whether the current user can move children of this folder outside of the shared drive.
  • capabilities/canMoveChildrenWithinDrive — Whether the current user can move children of this folder within the shared drive.
  • capabilities/canMoveItemWithinDrive — Whether the current user can move this shared drive item within the shared drive.
  • capabilities/canReadDrive — Whether the current user has read access to the shared drive to which this file belongs.
  • capabilities/canTrashChildren — Whether the current user can trash children of this folder.
  • driveId — The ID of the shared drive within which the file is located.
  • trashingUser — If the file has been explicitly trashed, the user who trashed it.
  • trashedTime — The time that the item was trashed.

The following fields are not populated for files located within a shared drive:

  • permissions — Due to the potential size of shared drive ACLs, permissions are not returned as part of files. Use the permissions.list method, which supports pagination, to list permissions for a file within a shared drive or the shared drive itself.
  • owners, ownerNames, ownedByMe — Files within a shared drive are owned by the shared drive, not individual users.
  • folderColorRgb — Folders cannot be colored individually
  • shared — All items in a shared drive are shared.
  • writersCanShare — It is currently not possible to restrict sharing by role in shared drives.

The following fields are only set when the user has been granted file access permissions on an item:

  • sharedWithMeDate
  • sharingUser

The following fields require special consideration when you use them with shared drives:

  • parents.isRoot — This field is only true for the My Drive root folder; it is false for the shared drive top-level folder.
  • parents — A parent does not appear in the parents list if the requesting user is a not a member of the shared drive and does not have access to the parent. In addition, with the exception of the top level folder, the parents list must contain exactly one item if the file is located within a shared drive.
  • capabilities/canRemoveChildren — Use capabilities/canDeleteChildren or capabilities/canTrashChildren.

Permissions resource

The permissionDetails field is only populated for files located within a shared drive. This field is a list of condensed Permissions that are on or inherited by this shared drive file. This field is an output-only field and is present only for shared drive items. Additionally,

  • two new roles of organizer and fileOrganizer have been defined.
  • permissions.list now supports pagination.

Changes resource

The following new fields are available in the Changes resource for a shared drive:

  • changeType — The type of the change. Possible values are file and drive.
  • driveId — The ID of the shared drive associated with this change.
  • drive — The updated state of the shared drive. Present if the changeType is drive and the user is still a member of the shared drive.

Additional changes may be required for applications that need to sync content with shared drives or track activity. For details, refer to track changes for users and shared drives.