update method
Updates a permission with patch semantics.
For more information, see Share files, folders, and drives. Warning: Concurrent permissions operations on the same file aren't supported; only the last update is applied.
request - The metadata request object.
Request parameters:
fileId - The ID of the file or shared drive.
permissionId - The ID of the permission.
enforceExpansiveAccess - Whether the request should enforce expansive
access rules.
removeExpiration - Whether to remove the expiration date.
supportsAllDrives - Whether the requesting application supports both My
Drives and shared drives.
supportsTeamDrives - Deprecated: Use supportsAllDrives instead.
transferOwnership - 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.
useDomainAdminAccess - 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.
$fields - Selector specifying which fields to include in a partial
response.
Completes with a Permission.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Permission> update(
Permission request,
core.String fileId,
core.String permissionId, {
core.bool? enforceExpansiveAccess,
core.bool? removeExpiration,
core.bool? supportsAllDrives,
core.bool? supportsTeamDrives,
core.bool? transferOwnership,
core.bool? useDomainAdminAccess,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'enforceExpansiveAccess': ?enforceExpansiveAccess == null
? null
: ['${enforceExpansiveAccess}'],
'removeExpiration': ?removeExpiration == null
? null
: ['${removeExpiration}'],
'supportsAllDrives': ?supportsAllDrives == null
? null
: ['${supportsAllDrives}'],
'supportsTeamDrives': ?supportsTeamDrives == null
? null
: ['${supportsTeamDrives}'],
'transferOwnership': ?transferOwnership == null
? null
: ['${transferOwnership}'],
'useDomainAdminAccess': ?useDomainAdminAccess == null
? null
: ['${useDomainAdminAccess}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'files/' +
commons.escapeVariable('$fileId') +
'/permissions/' +
commons.escapeVariable('$permissionId');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return Permission.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}