blob: 309c78dc62cbc97dc22b1544fe661d2f579e46d3 [file] [log] [blame]
// Copyright 2020 The Swarming Authors. All rights reserved.
// Use of this source code is governed by the Apache v2.0 license that can be
// found in the LICENSE file.
syntax = "proto3";
package buildbucket.v2;
option go_package = "go.chromium.org/luci/buildbucket/proto;buildbucketpb";
import "go.chromium.org/luci/buildbucket/proto/common.proto";
import "go.chromium.org/luci/buildbucket/proto/field_option.proto";
import "go.chromium.org/luci/buildbucket/proto/project_config.proto";
// Identifies a builder.
// Canonical string representation: "{project}/{bucket}/{builder}".
message BuilderID {
// Project ID, e.g. "chromium". Unique within a LUCI deployment.
// Regex: ^[a-z0-9\-_]+$
string project = 1 [ (buildbucket.v2.required_by_rpc) = "SetBuilderHealth" ];
// Bucket name, e.g. "try". Unique within the project.
// Regex: ^[a-z0-9\-_.]{1,100}$
// Together with project, defines an ACL.
string bucket = 2 [ (buildbucket.v2.required_by_rpc) = "SetBuilderHealth" ];
// Builder name, e.g. "linux-rel". Unique within the bucket.
// Regex: ^[a-zA-Z0-9\-_.\(\) ]{1,128}$
string builder = 3 [ (buildbucket.v2.required_by_rpc) = "SetBuilderHealth" ];
}
message BuilderMetadata {
// Team that owns the builder
string owner = 1;
// Builders current health status
HealthStatus health = 2;
}
// A configured builder.
//
// It is called BuilderItem and not Builder because
// 1) Builder already exists
// 2) Name "Builder" is incompatible with proto->Java compiler.
message BuilderItem {
// Uniquely identifies the builder in a given Buildbucket instance.
BuilderID id = 1;
// User-supplied configuration after normalization.
// Does not refer to mixins and has defaults inlined.
BuilderConfig config = 2;
// Metadata surrounding the builder.
BuilderMetadata metadata = 3;
}