blob: f93334f0fbf8802775fba0f4635b4d8c720b6023 [file] [log] [blame]
// Copyright 2021 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package chromiumos.test.api;
option go_package = "go.chromium.org/chromiumos/config/go/test/api";
import "chromiumos/longrunning/operations.proto";
// Provides the ability to upload files to GS and publish results.
// Publishing and upload require a more complex workflow than simple
// file copy, and as such we require a service to simplify.
service PublishService {
// UploadToGS uploads a folder to Google Cloud Storage
//
// Effectively this should function as a thin wrapper around the GCS API.
rpc UploadToGS(UploadToGSRequest)
returns (longrunning.Operation) {
option (longrunning.operation_info) = {
response_type: "UploadToGSResponse",
metadata_type: "UploadToGSMetadata"
};
}
}
message UploadToGSRequest {
// GS path to upload to, e.g. gs://foo/bar/baz/
string gs_directory = 1;
// Absolute path to local directory to upload to GS, e.g. /usr/local/foo/bar
string local_directory = 2;
}
message UploadToGSResponse {
// URL of Google Storage location containing offloaded files
string gs_url = 1;
}
message UploadToGSMetadata {
}