Google: Updates a permission with patch semantics For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) **Warning:** Concurrent permission modifications (such as update or delete) on the same file, folder, or shared drive aren't supported across any users or clients; only the last update is applied
Google drivePermissions.drivePermissionsUpdate: arguments, response, policy and SDK examples.
← Drive permissions operations · Get started
Operation google.drive_permissions_update
Provider route: PATCH /drive/v3/files/{fileId}/permissions/{permissionId}. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/google with npm, or alter-sdk-google with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { GoogleIntegration } from "@alter-ai/google";
async function execute(input: Parameters<GoogleIntegration["drivePermissions"]["drivePermissionsUpdate"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new GoogleIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.drivePermissions.drivePermissionsUpdate(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_google import GoogleIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = GoogleIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.drive_permissions.drive_permissions_update(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
path | object | Required within parent | Additional keys: not allowed |
path.fileId | string | Required within parent | The ID of the file or shared drive. |
path.permissionId | string | Required within parent | The ID of the permission. |
query | object | Optional | Additional keys: not allowed |
query.fields | string | Optional | Selector specifying which fields to include in a partial response. |
query.prettyPrint | boolean | Optional | Returns response with indentations and line breaks. Default: true |
query.quotaUser | string | Optional | Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters. |
query.enforceExpansiveAccess | boolean | Optional | Deprecated: All requests use the expansive access rules. Default: false |
query.removeExpiration | boolean | Optional | Whether to remove the expiration date. Default: false |
query.supportsAllDrives | boolean | Optional | Whether the requesting application supports both My Drives and shared drives. Default: false |
query.supportsTeamDrives | boolean | Optional | Deprecated: Use `supportsAllDrives` instead. Default: false |
query.transferOwnership | boolean | Optional | Whether to transfer ownership to the specified user and downgrade the current owner to a writer. This parameter is required as an acknowledgement of the side effect. For more information, see [Transfer file ownership](https://developers.google.com//workspace/drive/api/guides/transfer-file). Default: false |
query.useDomainAdminAccess | boolean | Optional | Issue the request as a domain administrator. If set to `true`, and if the following additional conditions are met, the requester is granted access: 1. The file ID parameter refers to a shared drive. 2. The requester is an administrator of the domain to which the shared drive belongs. For more information, see [Manage shared drives as domain administrators](https://developers.google.com/workspace/drive/api/guides/manage-shareddrives#manage-administrators). Default: false |
body | Model | Required within parent | Expand Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body |
Referenced models: Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body |
Referenced models: Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body
Schemas
Section titled “Schemas”Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | A permission for a file. A permission grants a user, group, domain, or the world access to a file or a folder hierarchy. For more information, see [Share files, folders, and drives](https://developers.google.com/workspace/drive/api/guides/manage-sharing). By default, permission requests only return a subset of fields. Permission `kind`, `ID`, `type`, and `role` are always returned. To retrieve specific fields, see [Return specific fields](https://developers.google.com/workspace/drive/api/guides/fields-parameter). Some resource methods (such as `permissions.update`) require a `permissionId`. Use the `permissions.list` method to retrieve the ID for a file, folder, or shared drive. |
allowFileDiscovery | boolean | Optional | Whether the permission allows the file to be discovered through search. This is only applicable for permissions of type `domain` or `anyone`. |
deleted | boolean | Optional | Output only. Whether the account associated with this permission has been deleted. This field only pertains to permissions of type `user` or `group`. |
displayName | string | Optional | Output only. The "pretty" name of the value of the permission. The following is a list of examples for each type of permission: * `user` - User's full name, as defined for their Google Account, such as "Dana A." * `group` - Name of the Google Group, such as "The Company Administrators." * `domain` - String domain name, such as "cymbalgroup.com." * `anyone` - No `displayName` is present. |
domain | string | Optional | Output only. The domain to which this permission refers. Read only: true |
emailAddress | string | Optional | Output only. The email address of the user or group to which this permission refers. Read only: true |
expirationTime | string | Optional | The time at which this permission will expire (RFC 3339 date-time). Expiration times have the following restrictions: - They can only be set on user and group permissions - The time must be in the future - The time cannot be more than a year in the future Format: date-time |
id | string | Optional | Output only. The ID of this permission. This is a unique identifier for the grantee, and is published in the [User resource](https://developers.google.com/workspace/drive/api/reference/rest/v3/User) as `permissionId`. IDs should be treated as opaque values. |
inheritedPermissionsDisabled | boolean | Optional | When `true`, only organizers, owners, and users with permissions added directly on the item can access it. |
kind | string | Optional | Output only. Identifies what kind of resource this is. Value: the fixed string `"drive#permission"`. Default: drive#permission |
pendingOwner | boolean | Optional | Whether the account associated with this permission is a pending owner. Only populated for permissions of type `user` for files that aren't in a shared drive. |
permissionDetails | array | Optional | Output only. Details of whether the permissions on this item are inherited or are directly on this item. Read only: true |
permissionDetails[] | Model | Each item | Expand Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — permission Details item |
photoLink | string | Optional | Output only. A link to the user's profile photo, if available. |
role | string | Optional | The role granted by this permission. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles). |
teamDrivePermissionDetails | array | Optional | Output only. Deprecated: Output only. Use `permissionDetails` instead. Read only: true |
teamDrivePermissionDetails[] | Model | Each item | Expand Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — team Drive Permission Details item |
type | string | Optional | The type of the grantee. Supported values include: * `user` * `group` * `domain` * `anyone` When creating a permission, if `type` is `user` or `group`, you must provide an `emailAddress` for the user or group. If `type` is `domain`, you must provide a `domain`. If `type` is `anyone`, no extra information is required. |
view | string | Optional | Indicates the view for this permission. Only populated for permissions that belong to a view. The only supported values are `published` and `metadata`: * `published`: The permission's role is `publishedReader`. * `metadata`: The item is only visible to the `metadata` view because the item has limited access and the scope has at least read access to the parent. The `metadata` view is only supported on folders. For more information, see [Views](https://developers.google.com/workspace/drive/api/guides/ref-roles#views). |
Referenced models: Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — permission Details item, Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — team Drive Permission Details item
Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — permission Details item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
inherited | boolean | Optional | Output only. Whether this permission is inherited. This field is always populated. This is an output-only field. |
inheritedFrom | string | Optional | Output only. The ID of the item from which this permission is inherited. This is only populated for items in shared drives. Read only: true |
permissionType | string | Optional | Output only. The permission type for this user. Supported values include: * `file` * `member` |
role | string | Optional | Output only. The primary role for this user. Supported values include: * `owner` * `organizer` * `fileOrganizer` * `writer` * `commenter` * `reader` For more information, see [Roles and permissions](https://developers.google.com/workspace/drive/api/guides/ref-roles). |
Gets a permission by ID For more information, see Share files, folders, and drives (https: developers google com workspace drive api guides manage-sharing) — response body — team Drive Permission Details item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
inherited | boolean | Optional | Deprecated: Output only. Use `permissionDetails/inherited` instead. |
inheritedFrom | string | Optional | Deprecated: Output only. Use `permissionDetails/inheritedFrom` instead. |
role | string | Optional | Deprecated: Output only. Use `permissionDetails/role` instead. |
teamDrivePermissionType | string | Optional | Deprecated: Output only. Use `permissionDetails/permissionType` instead. |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: google.drive_permissions_update. Catalog operation: drive.permissions.update. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file"]