watch method

Future<Channel> watch(
  1. Channel request,
  2. String fileId, {
  3. bool? acknowledgeAbuse,
  4. String? includeLabels,
  5. String? includePermissionsForView,
  6. String? projection,
  7. String? revisionId,
  8. bool? supportsAllDrives,
  9. bool? supportsTeamDrives,
  10. bool? updateViewedDate,
  11. String? $fields,
})

Subscribes to changes to a file.

request - The metadata request object.

Request parameters:

fileId - The ID for the file in question.

acknowledgeAbuse - Whether the user is acknowledging the risk of downloading known malware or other abusive files. This is only applicable when the alt parameter is set to media and the user is the owner of the file or an organizer of the shared drive in which the file resides.

includeLabels - A comma-separated list of IDs of labels to include in the labelInfo part of the response.

includePermissionsForView - Specifies which additional view's permissions to include in the response. Only published is supported.

projection - Deprecated: This parameter has no function. Possible string values are:

  • "BASIC" : Deprecated.
  • "FULL" : Deprecated.

revisionId - Specifies the Revision ID that should be downloaded. Ignored unless alt=media is specified.

supportsAllDrives - Whether the requesting application supports both My Drives and shared drives.

supportsTeamDrives - Deprecated: Use supportsAllDrives instead.

updateViewedDate - Deprecated: Use files.update with modifiedDateBehavior=noChange, updateViewedDate=true and an empty request body.

$fields - Selector specifying which fields to include in a partial response.

Completes with a Channel.

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<Channel> watch(
  Channel request,
  core.String fileId, {
  core.bool? acknowledgeAbuse,
  core.String? includeLabels,
  core.String? includePermissionsForView,
  core.String? projection,
  core.String? revisionId,
  core.bool? supportsAllDrives,
  core.bool? supportsTeamDrives,
  core.bool? updateViewedDate,
  core.String? $fields,
}) async {
  final body_ = convert_1.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if (acknowledgeAbuse != null) 'acknowledgeAbuse': ['${acknowledgeAbuse}'],
    if (includeLabels != null) 'includeLabels': [includeLabels],
    if (includePermissionsForView != null)
      'includePermissionsForView': [includePermissionsForView],
    if (projection != null) 'projection': [projection],
    if (revisionId != null) 'revisionId': [revisionId],
    if (supportsAllDrives != null)
      'supportsAllDrives': ['${supportsAllDrives}'],
    if (supportsTeamDrives != null)
      'supportsTeamDrives': ['${supportsTeamDrives}'],
    if (updateViewedDate != null) 'updateViewedDate': ['${updateViewedDate}'],
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = 'files/' + commons.escapeVariable('$fileId') + '/watch';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return Channel.fromJson(response_ as core.Map<core.String, core.dynamic>);
}