upload method

Future<UploadGenericArtifactMediaResponse> upload(
  1. UploadGenericArtifactRequest request,
  2. String parent, {
  3. String? $fields,
  4. UploadOptions uploadOptions = commons.UploadOptions.defaultOptions,
  5. Media? uploadMedia,
})

Directly uploads a Generic artifact.

The returned operation will complete once the resources are uploaded. Package, version, and file resources are created based on the uploaded artifact. Uploaded artifacts that conflict with existing resources will raise an ALREADY_EXISTS error.

request - The metadata request object.

Request parameters:

parent - The resource name of the repository where the generic artifact will be uploaded. Value must have pattern ^projects/\[^/\]+/locations/\[^/\]+/repositories/\[^/\]+$.

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

uploadMedia - The media to upload.

uploadOptions - Options for the media upload. Streaming Media without the length being known ahead of time is only supported via resumable uploads.

Completes with a UploadGenericArtifactMediaResponse.

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<UploadGenericArtifactMediaResponse> upload(
  UploadGenericArtifactRequest request,
  core.String parent, {
  core.String? $fields,
  commons.UploadOptions uploadOptions = commons.UploadOptions.defaultOptions,
  commons.Media? uploadMedia,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  core.String url_;
  if (uploadMedia == null) {
    url_ =
        'v1/' + core.Uri.encodeFull('$parent') + '/genericArtifacts:create';
  } else if (uploadOptions is commons.ResumableUploadOptions) {
    url_ = '/resumable/upload/v1/' +
        core.Uri.encodeFull('$parent') +
        '/genericArtifacts:create';
  } else {
    url_ = '/upload/v1/' +
        core.Uri.encodeFull('$parent') +
        '/genericArtifacts:create';
  }

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