upload method

Future<UploadItemRef> upload(
  1. StartUploadItemRequest request,
  2. String name, {
  3. String? $fields,
})

Creates an upload session for uploading item content.

For items smaller than 100 KB, it's easier to embed the content inline within an index request. This API requires an admin or service account to execute. The service account used is the one whitelisted in the corresponding data source.

request - The metadata request object.

Request parameters:

name - The name of the Item to start a resumable upload. Format: datasources/{source_id}/items/{item_id}. The maximum length is 1536 bytes. Value must have pattern ^datasources/\[^/\]+/items/\[^/\]+$.

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

Completes with a UploadItemRef.

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<UploadItemRef> upload(
  StartUploadItemRequest request,
  core.String name, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = 'v1/indexing/' + core.Uri.encodeFull('$name') + ':upload';

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