update method

Future<Permission> update(
  1. Permission request,
  2. String fileId,
  3. String permissionId, {
  4. bool? removeExpiration,
  5. bool? supportsAllDrives,
  6. bool? supportsTeamDrives,
  7. bool? transferOwnership,
  8. bool? useDomainAdminAccess,
  9. String? $fields,
})

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>);
}