grpc 第三方依赖 就是grpc的 third_party 文件夹
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

260 lines
9.5 KiB

// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.chromeos.moblab.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/chromeos/moblab/v1beta1/resources.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/chromeos/moblab/v1beta1;moblab";
option java_multiple_files = true;
option java_outer_classname = "BuildServiceProto";
option java_package = "com.google.chromeos.moblab.v1beta1";
option optimize_for = SPEED;
// Manages Chrome OS build services.
service BuildService {
option (google.api.default_host) = "chromeosmoblab.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/moblabapi";
// Lists all build targets that a user has access to.
rpc ListBuildTargets(ListBuildTargetsRequest) returns (ListBuildTargetsResponse) {
option (google.api.http) = {
get: "/v1beta1/buildTargets"
};
}
// Lists all builds for the given build target and model in descending order
// for the milestones and build versions.
rpc ListBuilds(ListBuildsRequest) returns (ListBuildsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=buildTargets/*/models/*}/builds"
};
option (google.api.method_signature) = "parent";
}
// Checks the stage status for a given build artifact in a partner Google
// Cloud Storage bucket.
rpc CheckBuildStageStatus(CheckBuildStageStatusRequest) returns (CheckBuildStageStatusResponse) {
option (google.api.http) = {
get: "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:check"
};
option (google.api.method_signature) = "name";
}
// Stages a given build artifact from a internal Google Cloud Storage bucket
// to a partner Google Cloud Storage bucket. If any of objects has already
// been copied, it will overwrite the previous objects. Operation <response:
// [StageBuildResponse][google.chromeos.moblab.v1beta1.StageBuildResponse],
// metadata: [StageBuildMetadata][google.chromeos.moblab.v1beta1.StageBuildMetadata]>
rpc StageBuild(StageBuildRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{name=buildTargets/*/models/*/builds/*/artifacts/*}:stage"
body: "*"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "StageBuildResponse"
metadata_type: "StageBuildMetadata"
};
}
// Finds the most stable build for the given build target. The definition of
// the most stable build is determined by evaluating the following rules in
// order until one is true. If none are true, then there is no stable build
// and it will return an empty response.
//
// Evaluation rules:
// 1. Stable channel build with label “Live”
// 2. Beta channel build with label “Live”
// 3. Dev channel build with label “Live”
// 4. Most recent stable channel build with build status Pass
// 5. Most recent beta channel build with build status Pass
// 6. Most recent dev channel build with build status Pass
rpc FindMostStableBuild(FindMostStableBuildRequest) returns (FindMostStableBuildResponse) {
option (google.api.http) = {
get: "/v1beta1/{build_target=buildTargets/*}:findMostStableBuild"
};
option (google.api.method_signature) = "build_target";
}
}
// Request message for finding the most stable build.
message FindMostStableBuildRequest {
// Required. The full resource name of the build target.
// For example,
// 'buildTargets/octopus'.
string build_target = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "chromeosmoblab.googleapis.com/BuildTarget"
}
];
}
// Response message for finding the most stable build.
message FindMostStableBuildResponse {
// The most stable build.
Build build = 1;
}
// Request message for listing build targets.
message ListBuildTargetsRequest {
// Optional. The number of build targets to return in a page.
int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListBuildTargets` call. Provide
// this to retrieve the subsequent page.
string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for listing build targets.
message ListBuildTargetsResponse {
// The list of build targets.
repeated BuildTarget build_targets = 1;
// Token to retrieve the next page of builds. If this field is omitted, there
// are no subsequent pages.
string next_page_token = 2;
// Total number of build targets.
int32 total_size = 3;
}
// Request message for listing builds.
message ListBuildsRequest {
// Required. The full resource name of the model. The model id is the same as
// the build target id for non-unified builds.
// For example,
// 'buildTargets/octopus/models/bobba'.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "chromeosmoblab.googleapis.com/Model"
}
];
// Optional. The number of builds to return in a page.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListBuilds` call. Provide this to
// retrieve the subsequent page.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filter that specifies value constraints of fields. For example, the
// filter can be set as "filter='milestone=milestones/80'" to only select
// builds in milestone 80.
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Read mask that specifies which Build fields to return. If empty, all Build
// fields will be returned.
// Valid fields: name, milestone, build_version.
// For example, if the read_mask is set as "read_mask='milestone'", the
// ListBuilds will return a list of Builds object with only the milestone
// field.
google.protobuf.FieldMask read_mask = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. The operation that groups by all the Build fields specified in the read
// mask. The group_by field should be the same as the read_mask field in
// convention of SQL.
google.protobuf.FieldMask group_by = 6 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for listing builds.
message ListBuildsResponse {
// The list of builds.
repeated Build builds = 1;
// Token to retrieve the next page of builds. If this field is omitted, there
// are no subsequent pages.
string next_page_token = 2;
// Total number of builds.
int32 total_size = 3;
}
// Request message for checking if the build artifact is staged.
message CheckBuildStageStatusRequest {
// Required. The full resource name of the build artifact.
// For example,
// 'buildTargets/octopus/models/bobba/builds/12607.6.0/artifacts/chromeos-moblab-peng-staging'.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "chromeosmoblab.googleapis.com/BuildArtifact"
}
];
// Optional. Filter that specifies value constraints of fields. For example, the
// filter can be set as "filter='type=release'" to only check the release
// builds.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for checking the stage status of a build artifact.
message CheckBuildStageStatusResponse {
// The status to represent if the build is staged or not.
bool is_build_staged = 1;
// The staged build artifact in the destination bucket.
BuildArtifact staged_build_artifact = 2;
// The source build artifact in the source bucket.
BuildArtifact source_build_artifact = 3;
}
// Request message for staging a build artifact.
message StageBuildRequest {
// Required. The full resource name of the build artifact.
// For example,
// 'buildTargets/octopus/models/bobba/builds/12607.6.0/artifacts/chromeos-moblab-peng-staging'.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "chromeosmoblab.googleapis.com/BuildArtifact"
}
];
// Optional. Filter that specifies value constraints of fields. For example, the
// filter can be set as "filter='type=release'" to only check the release
// builds.
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for staging a build artifact.
message StageBuildResponse {
// The staged build in the destination bucket.
BuildArtifact staged_build_artifact = 1;
}
// Metadata message for staging a build artifact.
message StageBuildMetadata {
// Approximate percentage of progress, e.g. "50" means 50%.
float progress_percent = 1;
// Build stage start time.
google.protobuf.Timestamp start_time = 2;
// Build stage end time.
google.protobuf.Timestamp end_time = 3;
}