// Copyright 2020 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/resource.proto"; option go_package = "google.golang.org/genproto/googleapis/chromeos/moblab/v1beta1;moblab"; option java_multiple_files = true; option java_outer_classname = "ResourcesProto"; option java_package = "com.google.chromeos.moblab.v1beta1"; option optimize_for = SPEED; // Resource that represents a build target. message BuildTarget { option (google.api.resource) = { type: "chromeosmoblab.googleapis.com/BuildTarget" pattern: "buildTargets/{build_target}" }; // The resource name of the build target. // Format: buildTargets/{build_target} string name = 1; } // Resource that represents a model. Each model belongs to a build target. For // non-unified build, the model name is the same as its build target name. message Model { option (google.api.resource) = { type: "chromeosmoblab.googleapis.com/Model" pattern: "buildTargets/{build_target}/models/{model}" }; // The resource name of the model. // Format: buildTargets/{build_target}/models/{model} string name = 1; } // Resource that represents a chrome OS milestone. message Milestone { option (google.api.resource) = { type: "chromeosmoblab.googleapis.com/Milestone" pattern: "milestones/{milestone}" }; // The resource name of the milestone. // Format: milestones/{milestone} string name = 1; } // Resource that represents a build for the given build target, model, milestone // and build version. // NEXT_TAG: 4 message Build { option (google.api.resource) = { type: "chromeosmoblab.googleapis.com/Build" pattern: "buildTargets/{build_target}/models/{model}/builds/{build}" }; // The resource name of the build. // Format: buildTargets/{build_target}/models/{model}/builds/{build} // Example: buildTargets/octopus/models/bobba/builds/1234.0.0 string name = 1; // The milestone that owns the build. // Format: milestones/{milestone} string milestone = 2 [(google.api.resource_reference) = { type: "chromeosmoblab.googleapis.com/Milestone" }]; // The build version of the build, e.g. 1234.0.0. string build_version = 3; } // Resource that represents a build artifact stored in Google Cloud Storage for // the given build target, model, build version and bucket. NEXT_TAG: 6 message BuildArtifact { option (google.api.resource) = { type: "chromeosmoblab.googleapis.com/BuildArtifact" pattern: "buildTargets/{build_target}/models/{model}/builds/{build}/artifacts/{artifact}" }; // The resource name of the build artifact. // Format: // buildTargets/{build_target}/models/{model}/builds/{build}/artifacts/{artifact} // Example: // buildTargets/octopus/models/bobba/builds/1234.0.0/artifacts/chromeos-moblab-peng-staging string name = 1; // The build metadata of the build artifact. string build = 2 [(google.api.resource_reference) = { type: "chromeosmoblab.googleapis.com/Build" }]; // The bucket that stores the build artifact. string bucket = 3; // The path of the build artifact in the bucket. string path = 4; // The number of objects in the build artifact folder. The object number can // be used to calculated the stage progress by comparing the source build // artifact with the destination build artifact. uint32 object_count = 5; }