update method
Updates a permission with patch semantics.
Warning: Concurrent permissions operations on the same file are not 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.
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.
useDomainAdminAccess
- Issue the request as a domain administrator; if
set to true, then the requester will be granted access if the file ID
parameter refers to a shared drive and the requester is an administrator
of the domain to which the shared drive belongs.
$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? 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>>{
if (removeExpiration != null) 'removeExpiration': ['${removeExpiration}'],
if (supportsAllDrives != null)
'supportsAllDrives': ['${supportsAllDrives}'],
if (supportsTeamDrives != null)
'supportsTeamDrives': ['${supportsTeamDrives}'],
if (transferOwnership != null)
'transferOwnership': ['${transferOwnership}'],
if (useDomainAdminAccess != null)
'useDomainAdminAccess': ['${useDomainAdminAccess}'],
if ($fields != null) 'fields': [$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>);
}