| // 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 { |
| } |