copy method

Future<File> copy(
  1. File request,
  2. String fileId, {
  3. bool? convert,
  4. bool? enforceSingleParent,
  5. String? includeLabels,
  6. String? includePermissionsForView,
  7. bool? ocr,
  8. String? ocrLanguage,
  9. bool? pinned,
  10. bool? supportsAllDrives,
  11. bool? supportsTeamDrives,
  12. String? timedTextLanguage,
  13. String? timedTextTrackName,
  14. String? visibility,
  15. String? $fields,
})

Creates a copy of the specified file.

request - The metadata request object.

Request parameters:

fileId - The ID of the file to copy.

convert - Whether to convert this file to the corresponding Docs Editors format.

enforceSingleParent - Deprecated: Copying files into multiple folders is no longer supported. Use shortcuts instead.

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.

ocr - Whether to attempt OCR on .jpg, .png, .gif, or .pdf uploads.

ocrLanguage - If ocr is true, hints at the language to use. Valid values are BCP 47 codes.

pinned - Whether to pin the head revision of the new copy. A file can have a maximum of 200 pinned revisions.

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

supportsTeamDrives - Deprecated: Use supportsAllDrives instead.

timedTextLanguage - The language of the timed text.

timedTextTrackName - The timed text track name.

visibility - The visibility of the new file. This parameter is only relevant when the source is not a native Google Doc and convert=false. Possible string values are:

  • "DEFAULT" : The visibility of the new file is determined by the user's default visibility/sharing policies.
  • "PRIVATE" : The new file will be visible to only the owner.

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

Completes with a File.

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<File> copy(
  File request,
  core.String fileId, {
  core.bool? convert,
  core.bool? enforceSingleParent,
  core.String? includeLabels,
  core.String? includePermissionsForView,
  core.bool? ocr,
  core.String? ocrLanguage,
  core.bool? pinned,
  core.bool? supportsAllDrives,
  core.bool? supportsTeamDrives,
  core.String? timedTextLanguage,
  core.String? timedTextTrackName,
  core.String? visibility,
  core.String? $fields,
}) async {
  final body_ = convert_1.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if (convert != null) 'convert': ['${convert}'],
    if (enforceSingleParent != null)
      'enforceSingleParent': ['${enforceSingleParent}'],
    if (includeLabels != null) 'includeLabels': [includeLabels],
    if (includePermissionsForView != null)
      'includePermissionsForView': [includePermissionsForView],
    if (ocr != null) 'ocr': ['${ocr}'],
    if (ocrLanguage != null) 'ocrLanguage': [ocrLanguage],
    if (pinned != null) 'pinned': ['${pinned}'],
    if (supportsAllDrives != null)
      'supportsAllDrives': ['${supportsAllDrives}'],
    if (supportsTeamDrives != null)
      'supportsTeamDrives': ['${supportsTeamDrives}'],
    if (timedTextLanguage != null) 'timedTextLanguage': [timedTextLanguage],
    if (timedTextTrackName != null)
      'timedTextTrackName': [timedTextTrackName],
    if (visibility != null) 'visibility': [visibility],
    if ($fields != null) 'fields': [$fields],
  };

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

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