# Users - Drive - Permissions - [API documentation](#api-documentation) - [Query documentation](Users-Drive-Query) - [Permission Matches](Permission-Matches) - [Definitions](#definitions) - [GUI API permission name mapping](#gui-api-permission-name-mapping) - [Manage file permissions/sharing](#manage-file-permissionssharing) - [Display file permissions/sharing](#display-file-permissionssharing) - [Delete all ACLs except owner from a file](#delete-all-acls-except-owner-from-a-file) - [Change shares to User1 to shares to User2](#change-shares-to-user1-to-shares-to-user2) ## API documentation * https://developers.google.com/drive/api/v3/reference/permissions * https://developers.google.com/drive/api/v3/ref-single-parent * https://support.google.com/a/users/answer/13005112#set-expiration-date ## Definitions * [``](Drive-File-Selection) * [``](Collections-of-Users) ``` ::= (.)+ ::= @ ::= id: ::= || ::= additionalroles| allowfilediscovery| basicpermissions| deleted| displayname| domain| emailaddress| expirationdate| expirationtime| id| name| pendingowner| permissiondetails| photolink| role| type| view| withlink ::= "(,)*" ``` `basicpermissions` is equivalent to: ``` permissions.allowFileDiscovery, permissions.deleted, permissions.domain, permissions.emailAddress, permissions.expirationTime, permissions.id, permissions.role, permissions.type ``` In particular, this omits these fields: ``` permissions.displayName, permissions.permissionDetails, permissions.photoLink, permissions.teamDrivePermissionDetails ``` This allows you to select the essential permission fields without enumerating them. Of course, you can specify `permissions` to get all of the fields, enumerate the specific fields you want or specify `basicpermissions` and additional permission fields, e.g., `permissions.displayName`. ``` ::= createddate|createdtime| folder| modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser| modifieddate|modifiedtime| name| name_natural| quotabytesused|quotaused| recency| sharedwithmedate|sharedwithmetime| starred| title| title_natural| viewedbymedate|viewedbymetime ::= manager|organizer|owner| contentmanager|fileorganizer| contributor|writer|editor| commenter| viewer|reader ::= "(,)*" ::= anyone|domain|group|user ::= anyone|anyonewithlink| user:|group:| domain:|domainwithlink:; ::= anyone|anyonewithlink|id: ::= | ::= "(, ::= "(,)*" ::= | (json [charset ] )|(json file [charset ]) | | | | See: https://github.com/taers232c/GAMADV-XTD3/wiki/Collections-of-Items ::= | (json [charset ] )|(json file [charset ]) | | | | See: https://github.com/taers232c/GAMADV-XTD3/wiki/Collections-of-Items ``` ## GUI API permission name mapping | GUI setting | API setting | |------------|------------| | Manager | organizer | | Content manager | fileOrganizer | | Contributor | writer | | Commenter | commenter | | Viewer | reader | ## Manage file permissions/sharing ### Process single ACLs. ### Create ``` gam create|add drivefileacl anyone|(user )|(group )|(domain ) (role ) [withlink|(allowfilediscovery|discoverable [])] [expiration