blob: e4664ea72912f123661796852319d06453e0c356 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: go.chromium.org/luci/buildbucket/proto/config/project_config.proto
package configpb
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
wrappers "github.com/golang/protobuf/ptypes/wrappers"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// Toggle is a boolean with an extra state UNSET.
// When protobuf messages are merged, UNSET does not overwrite an existing
// value.
// TODO(nodir): replace with Trinary in ../common.proto.
type Toggle int32
const (
Toggle_UNSET Toggle = 0
Toggle_YES Toggle = 1
Toggle_NO Toggle = 2
)
var Toggle_name = map[int32]string{
0: "UNSET",
1: "YES",
2: "NO",
}
var Toggle_value = map[string]int32{
"UNSET": 0,
"YES": 1,
"NO": 2,
}
func (x Toggle) String() string {
return proto.EnumName(Toggle_name, int32(x))
}
func (Toggle) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{0}
}
// A buiildbucket user role.
// Defines what a user can do.
//
// The order of enum member tags is important.
// A role with a higher tag number can perform any action that a role with a
// lower tag number can perform.
type Acl_Role int32
const (
// Can do read-only operations, such as search for builds.
Acl_READER Acl_Role = 0
// Same as READER + can schedule and cancel builds.
Acl_SCHEDULER Acl_Role = 1
// Can do all write operations.
Acl_WRITER Acl_Role = 2
)
var Acl_Role_name = map[int32]string{
0: "READER",
1: "SCHEDULER",
2: "WRITER",
}
var Acl_Role_value = map[string]int32{
"READER": 0,
"SCHEDULER": 1,
"WRITER": 2,
}
func (x Acl_Role) String() string {
return proto.EnumName(Acl_Role_name, int32(x))
}
func (Acl_Role) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{0, 0}
}
// A single access control rule.
type Acl struct {
// Role denotes a list of actions that an identity can perform.
Role Acl_Role `protobuf:"varint,1,opt,name=role,proto3,enum=buildbucket.Acl_Role" json:"role,omitempty"`
// Name of the group defined in the auth service.
Group string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
// An email address or a full identity string "kind:name". See auth service
// on kinds of identities. Anonymous users are "anonymous:anonymous".
// Either identity or group must be present, not both.
Identity string `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Acl) Reset() { *m = Acl{} }
func (m *Acl) String() string { return proto.CompactTextString(m) }
func (*Acl) ProtoMessage() {}
func (*Acl) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{0}
}
func (m *Acl) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Acl.Unmarshal(m, b)
}
func (m *Acl) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Acl.Marshal(b, m, deterministic)
}
func (m *Acl) XXX_Merge(src proto.Message) {
xxx_messageInfo_Acl.Merge(m, src)
}
func (m *Acl) XXX_Size() int {
return xxx_messageInfo_Acl.Size(m)
}
func (m *Acl) XXX_DiscardUnknown() {
xxx_messageInfo_Acl.DiscardUnknown(m)
}
var xxx_messageInfo_Acl proto.InternalMessageInfo
func (m *Acl) GetRole() Acl_Role {
if m != nil {
return m.Role
}
return Acl_READER
}
func (m *Acl) GetGroup() string {
if m != nil {
return m.Group
}
return ""
}
func (m *Acl) GetIdentity() string {
if m != nil {
return m.Identity
}
return ""
}
// A set of Acl messages. Can be referenced in a bucket by name.
type AclSet struct {
// A name of the ACL set. Required. Must match regex '^[a-z0-9_]+$'.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// List of access control rules.
// The order does not matter.
Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AclSet) Reset() { *m = AclSet{} }
func (m *AclSet) String() string { return proto.CompactTextString(m) }
func (*AclSet) ProtoMessage() {}
func (*AclSet) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{1}
}
func (m *AclSet) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AclSet.Unmarshal(m, b)
}
func (m *AclSet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AclSet.Marshal(b, m, deterministic)
}
func (m *AclSet) XXX_Merge(src proto.Message) {
xxx_messageInfo_AclSet.Merge(m, src)
}
func (m *AclSet) XXX_Size() int {
return xxx_messageInfo_AclSet.Size(m)
}
func (m *AclSet) XXX_DiscardUnknown() {
xxx_messageInfo_AclSet.DiscardUnknown(m)
}
var xxx_messageInfo_AclSet proto.InternalMessageInfo
func (m *AclSet) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *AclSet) GetAcls() []*Acl {
if m != nil {
return m.Acls
}
return nil
}
// Defines a swarmbucket builder or a builder mixin. A builder has a name, a
// category and specifies what should happen if a build is scheduled to that
// builder.
//
// SECURITY WARNING: if adding more fields to this message, keep in mind that
// a user that has permissions to schedule a build to the bucket, can override
// this config.
//
// Next tag: 23.
type Builder struct {
// Name of the builder or builder mixin.
//
// If a builder name, will be propagated to "builder" build tag and
// "buildername" recipe property.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Hostname of the swarming instance, e.g. "chromium-swarm.appspot.com".
// Required, but defaults to deprecated Swarming.hostname.
SwarmingHost string `protobuf:"bytes,21,opt,name=swarming_host,json=swarmingHost,proto3" json:"swarming_host,omitempty"`
// Names of mixins to apply to this builder definition.
//
// FLATTENING
//
// Final builder/mixin values are computed as follows:
// - start with an empty builder definition.
// - if this is a builder, apply values in a bucket's builder_defaults,
// flattened in advance.
// - apply each mixin, flattened in advance, in the same order.
// - apply values in this builder/mixin.
//
// EXAMPLE
//
// A definition
//
// builder_mixins {
// name: "foo"
// dimensions: "os:Linux"
// dimensions: "cpu:x86"
// recipe {
// repository: "https://example.com"
// name: "x"
// }
// }
// builder_mixins {
// name: "bar"
// dimensions: "cores:8"
// dimensions: "cpu:x86-64"
// }
// bucket {
// name: "luci.x.try"
// swarming {
// builders {
// name: "release"
// mixins: "foo"
// mixins: "bar"
// recipe {
// name: "y"
// }
// }
// }
// }
//
// is equivalent to
//
// bucket {
// name: "luci.x.try"
// swarming {
// builders {
// name: "release"
// dimensions: "os:Linux"
// dimensions: "cpu:x86-64"
// dimensions: "cores:8"
// recipe {
// repository: "https://example.com"
// name: "y"
// }
// }
// }
// }
//
// A NOTE ON DIAMOND MERGES
//
// Given
// B mixes in A and overrides some values defined in A
// C mixes in A
// D mixes in B and C
// B's overrides won't affect D because D mixes in C after B.
//
// builder_mixins {
// name: "A"
// dimensions: "dim:a"
// }
// builder_mixins {
// name: "B"
// mixins: "A"
// dimensions: "dim:b"
// }
// builder_mixins {
// name: "C"
// mixins: "A"
// }
// ...
// builders {
// name: "D"
// mixins: "B"
// mixins: "C"
// }
//
// D's dim will be "a", not "b" because it is "a" in C which is applied after
// B.
//
// OTHER
//
// Circular references are prohibited.
Mixins []string `protobuf:"bytes,10,rep,name=mixins,proto3" json:"mixins,omitempty"`
// Builder category. Will be used for visual grouping, for example in Code Review.
Category string `protobuf:"bytes,6,opt,name=category,proto3" json:"category,omitempty"`
// Will be become to swarming task tags.
// Each tag will end up in "swarming_tag" buildbucket tag, for example
// "swarming_tag:builder:release"
SwarmingTags []string `protobuf:"bytes,2,rep,name=swarming_tags,json=swarmingTags,proto3" json:"swarming_tags,omitempty"`
// A requirement for a bot to execute the build.
//
// Supports 3 forms:
// - "<key>:" - exclude the defaults for the key.
// Mutually exclusive with other forms.
// - "<key>:<value>" - require a bot with this dimension.
// This is a shortcut for "0:<key>:<value>", see below.
// - "<expiration_secs>:<key>:<value>" - wait for up to expiration_secs.
// for a bot with the dimension.
// Supports mutliple values for different keys and expiration_secs.
// expiration_secs must be a multiple of 60.
//
// When merging a set of dimensions S1 into S2, all dimensions in S1 with a
// key K replace all dimensions in S2 with K. This logic is used when applying
// builder mixins and dimensions specified in a build request.
//
// If this builder is defined in a bucket, dimension "pool" is defaulted
// to the name of the bucket. See Bucket message below.
Dimensions []string `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// Specifies that a recipe to run.
Recipe *Builder_Recipe `protobuf:"bytes,4,opt,name=recipe,proto3" json:"recipe,omitempty"`
// Swarming task priority.
Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"`
// Maximum build execution time. Not to be confused with pending time.
ExecutionTimeoutSecs uint32 `protobuf:"varint,7,opt,name=execution_timeout_secs,json=executionTimeoutSecs,proto3" json:"execution_timeout_secs,omitempty"`
// Maximum build pending time.
ExpirationSecs uint32 `protobuf:"varint,20,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
// Caches that should be present on the bot.
Caches []*Builder_CacheEntry `protobuf:"bytes,9,rep,name=caches,proto3" json:"caches,omitempty"`
// If YES, generate monotonically increasing contiguous numbers for each
// build, unique within the builder.
// Note: this limits the build creation rate in this builder to 5 per second.
BuildNumbers Toggle `protobuf:"varint,16,opt,name=build_numbers,json=buildNumbers,proto3,enum=buildbucket.Toggle" json:"build_numbers,omitempty"`
// Email of a service account to run the build as or literal 'bot' string to
// use Swarming bot's account (if available). Passed directly to Swarming.
// Subject to Swarming's ACLs.
ServiceAccount string `protobuf:"bytes,12,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// If YES, each builder will get extra dimension "builder:<builder name>"
// added. Default is UNSET.
//
// For example, this config
//
// builder {
// name: "linux-compiler"
// dimension: "builder:linux-compiler"
// }
//
// is equivalent to this:
//
// builders {
// name: "linux-compiler"
// auto_builder_dimension: YES
// }
//
// We've considered providing interpolation like this
// builder_defaults {
// dimensions: "builder:${BUILDER}"
// }
// (see also http://docs.buildbot.net/0.8.9/manual/cfg-properties.html#interpolate)
// but are currently against complicating config with this.
AutoBuilderDimension Toggle `protobuf:"varint,17,opt,name=auto_builder_dimension,json=autoBuilderDimension,proto3,enum=buildbucket.Toggle" json:"auto_builder_dimension,omitempty"`
// If YES, by default a new build in this builder will be marked as
// experimental.
// This is useful for inherently experimental builders that use production
// recipes.
// See also luci_migration_host field.
Experimental Toggle `protobuf:"varint,18,opt,name=experimental,proto3,enum=buildbucket.Toggle" json:"experimental,omitempty"`
// If not empty and not "-", and a build request is not marked as
// experimental/prod explicitly and has "mastername" property, buildbucket
// will contact this instance of luci-migration app to determine whether the
// builder is experimental.
// On success, this takes precedence over Builder.experimental proto field
// (above).
//
// Special value "-" means no luci_migration_host specified.
// Useful in a builder that wants to override luci_migration_host
// specified in builder_defaults or mixin.
LuciMigrationHost string `protobuf:"bytes,19,opt,name=luci_migration_host,json=luciMigrationHost,proto3" json:"luci_migration_host,omitempty"`
// Percentage of builds that should use a canary swarming task template.
// A value from 0 to 100.
// If omitted, a global server-defined default percentage is used.
TaskTemplateCanaryPercentage *wrappers.UInt32Value `protobuf:"bytes,22,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Builder) Reset() { *m = Builder{} }
func (m *Builder) String() string { return proto.CompactTextString(m) }
func (*Builder) ProtoMessage() {}
func (*Builder) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{2}
}
func (m *Builder) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Builder.Unmarshal(m, b)
}
func (m *Builder) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Builder.Marshal(b, m, deterministic)
}
func (m *Builder) XXX_Merge(src proto.Message) {
xxx_messageInfo_Builder.Merge(m, src)
}
func (m *Builder) XXX_Size() int {
return xxx_messageInfo_Builder.Size(m)
}
func (m *Builder) XXX_DiscardUnknown() {
xxx_messageInfo_Builder.DiscardUnknown(m)
}
var xxx_messageInfo_Builder proto.InternalMessageInfo
func (m *Builder) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Builder) GetSwarmingHost() string {
if m != nil {
return m.SwarmingHost
}
return ""
}
func (m *Builder) GetMixins() []string {
if m != nil {
return m.Mixins
}
return nil
}
func (m *Builder) GetCategory() string {
if m != nil {
return m.Category
}
return ""
}
func (m *Builder) GetSwarmingTags() []string {
if m != nil {
return m.SwarmingTags
}
return nil
}
func (m *Builder) GetDimensions() []string {
if m != nil {
return m.Dimensions
}
return nil
}
func (m *Builder) GetRecipe() *Builder_Recipe {
if m != nil {
return m.Recipe
}
return nil
}
func (m *Builder) GetPriority() uint32 {
if m != nil {
return m.Priority
}
return 0
}
func (m *Builder) GetExecutionTimeoutSecs() uint32 {
if m != nil {
return m.ExecutionTimeoutSecs
}
return 0
}
func (m *Builder) GetExpirationSecs() uint32 {
if m != nil {
return m.ExpirationSecs
}
return 0
}
func (m *Builder) GetCaches() []*Builder_CacheEntry {
if m != nil {
return m.Caches
}
return nil
}
func (m *Builder) GetBuildNumbers() Toggle {
if m != nil {
return m.BuildNumbers
}
return Toggle_UNSET
}
func (m *Builder) GetServiceAccount() string {
if m != nil {
return m.ServiceAccount
}
return ""
}
func (m *Builder) GetAutoBuilderDimension() Toggle {
if m != nil {
return m.AutoBuilderDimension
}
return Toggle_UNSET
}
func (m *Builder) GetExperimental() Toggle {
if m != nil {
return m.Experimental
}
return Toggle_UNSET
}
func (m *Builder) GetLuciMigrationHost() string {
if m != nil {
return m.LuciMigrationHost
}
return ""
}
func (m *Builder) GetTaskTemplateCanaryPercentage() *wrappers.UInt32Value {
if m != nil {
return m.TaskTemplateCanaryPercentage
}
return nil
}
// Describes a cache directory persisted on a bot.
//
// If a build requested a cache, a cache directory is available on build
// startup. If the cache was present on the bot, the directory contains files
// from the previous run.
// The build can read/write to the cache directory while it runs.
// After build completes, the cache directory is persisted.
// Next time another build requests the same cache and runs on the same bot,
// if the cache wasn't evicted, the files will still be there.
//
// One bot can keep multiple caches at the same time and one build can request
// multiple different caches.
// A cache is identified by its name and mapped to a path.
// In recipes-based builds, the path is relative to api.paths['cache'] dir.
// For example, a cache {"name": "foo", "path": "bar"} maps foo to bar and
// the cache dir is available at
// my_cache = api.path['cache'].join('bar')
//
// If the bot is running out of space, caches are evicted in LRU manner.
//
// Renaming a cache is equivalent to clearing it from the builder perspective.
// The files will still be there, but eventually will be purged by GC.
//
// Builder cache.
//
// Buildbucket implicitly declares cache
// {"name": "<hash(bucket/builder)>", "path": "builder"}.
// This means that any LUCI builder has a "personal disk space" on the bot.
// Builder cache is often a good start before customizing caching.
// In recipes, it is available at api.path['cache'].join('builder').
//
// In order to share the builder cache among multiple builders, it can be
// overridden:
//
// builders {
// name: "a"
// caches {
// path: "builder"
// name: "my_shared_cache"
// }
// }
// builders {
// name: "b"
// caches {
// path: "builder"
// name: "my_shared_cache"
// }
// }
//
// Builders "a" and "b" share their builder cache. If an "a" build ran on a bot
// and left some files in the builder cache and then a "b" build runs on the
// same bot, the same files will be available in the builder cache.
type Builder_CacheEntry struct {
// Identifier of the cache. Required. Length is limited to 128.
//
// If the pool of swarming bots is shared among multiple LUCI projects and
// projects use same cache name, the cache will be shared across projects.
// To avoid affecting and being affected by other projects, prefix the cache
// name with something project-specific, e.g. "v8-".
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Relative path where the cache in mapped into. Required.
// Must use POSIX format (forward slashes).
// In most cases, it does not need slashes at all.
// Must be unique in the given builder.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
// Number of seconds to wait for a bot with a warm cache to pick up the
// task, before falling back to a bot with a cold (non-existent) cache.
//
// The default is 0, which means that no preference will be chosen for a bot
// with this or without this cache, and a bot without this cache may be
// chosen instead.
//
// If no bot has this cache warm, the task will skip this wait and will
// immediately fallback to a cold cache request.
//
// The value must be multiples of 60 seconds.
WaitForWarmCacheSecs int32 `protobuf:"varint,3,opt,name=wait_for_warm_cache_secs,json=waitForWarmCacheSecs,proto3" json:"wait_for_warm_cache_secs,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Builder_CacheEntry) Reset() { *m = Builder_CacheEntry{} }
func (m *Builder_CacheEntry) String() string { return proto.CompactTextString(m) }
func (*Builder_CacheEntry) ProtoMessage() {}
func (*Builder_CacheEntry) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{2, 0}
}
func (m *Builder_CacheEntry) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Builder_CacheEntry.Unmarshal(m, b)
}
func (m *Builder_CacheEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Builder_CacheEntry.Marshal(b, m, deterministic)
}
func (m *Builder_CacheEntry) XXX_Merge(src proto.Message) {
xxx_messageInfo_Builder_CacheEntry.Merge(m, src)
}
func (m *Builder_CacheEntry) XXX_Size() int {
return xxx_messageInfo_Builder_CacheEntry.Size(m)
}
func (m *Builder_CacheEntry) XXX_DiscardUnknown() {
xxx_messageInfo_Builder_CacheEntry.DiscardUnknown(m)
}
var xxx_messageInfo_Builder_CacheEntry proto.InternalMessageInfo
func (m *Builder_CacheEntry) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Builder_CacheEntry) GetPath() string {
if m != nil {
return m.Path
}
return ""
}
func (m *Builder_CacheEntry) GetWaitForWarmCacheSecs() int32 {
if m != nil {
return m.WaitForWarmCacheSecs
}
return 0
}
// Specifies a recipe to run.
type Builder_Recipe struct {
// Repository URL of the recipe package.
// Value "-" is treated as unset.
Repository string `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
// Name of the recipe to run.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// If set, will use CIPD to fetch the recipes, rather than using git. This
// obsoletes the `repository` parameter.
//
// Typically the package will look like:
//
// infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build
//
// Recipes bundled from internal repositories are typically under
// `infra_internal/recipe_bundles/...`.
//
// But if you're building your own recipe bundles, they could be located
// elsewhere.
CipdPackage string `protobuf:"bytes,6,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"`
// The CIPD version to fetch. This can be a lower-cased git ref (like
// `refs/heads/master` or `head`), or it can be a cipd tag (like
// `git_revision:dead...beef`).
//
// The default is `head`, which corresponds to the git repo's HEAD ref. This
// is typically (but not always) a symbolic ref for `refs/heads/master`.
CipdVersion string `protobuf:"bytes,5,opt,name=cipd_version,json=cipdVersion,proto3" json:"cipd_version,omitempty"`
// Colon-separated build properties to set.
// A property can be overriden by "properties" build parameter.
//
// Use this field for string properties and use properties_j for other
// types.
Properties []string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"`
// Same as properties, but the value must valid JSON. For example
// properties_j: "a:1"
// means property a is a number 1, not string "1".
//
// If null, it means no property must be defined. In particular, it removes
// a default value for the property, if any.
//
// Fields properties and properties_j can be used together, but cannot both
// specify values for same property.
PropertiesJ []string `protobuf:"bytes,4,rep,name=properties_j,json=propertiesJ,proto3" json:"properties_j,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Builder_Recipe) Reset() { *m = Builder_Recipe{} }
func (m *Builder_Recipe) String() string { return proto.CompactTextString(m) }
func (*Builder_Recipe) ProtoMessage() {}
func (*Builder_Recipe) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{2, 1}
}
func (m *Builder_Recipe) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Builder_Recipe.Unmarshal(m, b)
}
func (m *Builder_Recipe) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Builder_Recipe.Marshal(b, m, deterministic)
}
func (m *Builder_Recipe) XXX_Merge(src proto.Message) {
xxx_messageInfo_Builder_Recipe.Merge(m, src)
}
func (m *Builder_Recipe) XXX_Size() int {
return xxx_messageInfo_Builder_Recipe.Size(m)
}
func (m *Builder_Recipe) XXX_DiscardUnknown() {
xxx_messageInfo_Builder_Recipe.DiscardUnknown(m)
}
var xxx_messageInfo_Builder_Recipe proto.InternalMessageInfo
func (m *Builder_Recipe) GetRepository() string {
if m != nil {
return m.Repository
}
return ""
}
func (m *Builder_Recipe) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Builder_Recipe) GetCipdPackage() string {
if m != nil {
return m.CipdPackage
}
return ""
}
func (m *Builder_Recipe) GetCipdVersion() string {
if m != nil {
return m.CipdVersion
}
return ""
}
func (m *Builder_Recipe) GetProperties() []string {
if m != nil {
return m.Properties
}
return nil
}
func (m *Builder_Recipe) GetPropertiesJ() []string {
if m != nil {
return m.PropertiesJ
}
return nil
}
// Configuration of buildbucket-swarming integration for one bucket.
type Swarming struct {
// DEPERECATED. Use builder_defaults.swarming_host instead.
// Setting this fields sets builder_defaults.swarming_host.
Hostname string `protobuf:"bytes,1,opt,name=hostname,proto3" json:"hostname,omitempty"`
// DEPRECATED, IGNORED.
// Used to generate a URL for Build, may contain parameters
// {swarming_hostname}, {task_id}, {bucket} and {builder}. Defaults to:
// https://{swarming_hostname}/user/task/{task_id}
UrlFormat string `protobuf:"bytes,2,opt,name=url_format,json=urlFormat,proto3" json:"url_format,omitempty"`
// Defines default values for builders.
BuilderDefaults *Builder `protobuf:"bytes,3,opt,name=builder_defaults,json=builderDefaults,proto3" json:"builder_defaults,omitempty"`
// Configuration for each builder.
// Swarming tasks are created only for builds for builders that are not
// explicitly specified.
Builders []*Builder `protobuf:"bytes,4,rep,name=builders,proto3" json:"builders,omitempty"`
// DEPRECATED. Use builder_defaults.task_template_canary_percentage instead.
// Setting this field sets builder_defaults.task_template_canary_percentage.
TaskTemplateCanaryPercentage *wrappers.UInt32Value `protobuf:"bytes,5,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Swarming) Reset() { *m = Swarming{} }
func (m *Swarming) String() string { return proto.CompactTextString(m) }
func (*Swarming) ProtoMessage() {}
func (*Swarming) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{3}
}
func (m *Swarming) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Swarming.Unmarshal(m, b)
}
func (m *Swarming) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Swarming.Marshal(b, m, deterministic)
}
func (m *Swarming) XXX_Merge(src proto.Message) {
xxx_messageInfo_Swarming.Merge(m, src)
}
func (m *Swarming) XXX_Size() int {
return xxx_messageInfo_Swarming.Size(m)
}
func (m *Swarming) XXX_DiscardUnknown() {
xxx_messageInfo_Swarming.DiscardUnknown(m)
}
var xxx_messageInfo_Swarming proto.InternalMessageInfo
func (m *Swarming) GetHostname() string {
if m != nil {
return m.Hostname
}
return ""
}
func (m *Swarming) GetUrlFormat() string {
if m != nil {
return m.UrlFormat
}
return ""
}
func (m *Swarming) GetBuilderDefaults() *Builder {
if m != nil {
return m.BuilderDefaults
}
return nil
}
func (m *Swarming) GetBuilders() []*Builder {
if m != nil {
return m.Builders
}
return nil
}
func (m *Swarming) GetTaskTemplateCanaryPercentage() *wrappers.UInt32Value {
if m != nil {
return m.TaskTemplateCanaryPercentage
}
return nil
}
// Defines one bucket in buildbucket.cfg
type Bucket struct {
// Name of the bucket. Names are unique within one instance of buildbucket.
// If another project already uses this name, a config will be rejected.
// Name reservation is first-come first-serve.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// List of access control rules for the bucket.
// The order does not matter.
Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"`
// A list of ACL set names. Each ACL in each referenced ACL set will be
// included in this bucket.
// The order does not matter.
AclSets []string `protobuf:"bytes,4,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"`
// Buildbucket-swarming integration.
Swarming *Swarming `protobuf:"bytes,3,opt,name=swarming,proto3" json:"swarming,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Bucket) Reset() { *m = Bucket{} }
func (m *Bucket) String() string { return proto.CompactTextString(m) }
func (*Bucket) ProtoMessage() {}
func (*Bucket) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{4}
}
func (m *Bucket) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Bucket.Unmarshal(m, b)
}
func (m *Bucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Bucket.Marshal(b, m, deterministic)
}
func (m *Bucket) XXX_Merge(src proto.Message) {
xxx_messageInfo_Bucket.Merge(m, src)
}
func (m *Bucket) XXX_Size() int {
return xxx_messageInfo_Bucket.Size(m)
}
func (m *Bucket) XXX_DiscardUnknown() {
xxx_messageInfo_Bucket.DiscardUnknown(m)
}
var xxx_messageInfo_Bucket proto.InternalMessageInfo
func (m *Bucket) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Bucket) GetAcls() []*Acl {
if m != nil {
return m.Acls
}
return nil
}
func (m *Bucket) GetAclSets() []string {
if m != nil {
return m.AclSets
}
return nil
}
func (m *Bucket) GetSwarming() *Swarming {
if m != nil {
return m.Swarming
}
return nil
}
// Schema of buildbucket.cfg file, a project config.
type BuildbucketCfg struct {
// All buckets defined for this project.
Buckets []*Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
// A list of ACL sets. Names must be unique.
AclSets []*AclSet `protobuf:"bytes,2,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"`
// A list of builder mixin definitions.
// A mixin can be referenced in any builder defined within the BuildbucketCfg.
// See also Buider.mixins field.
BuilderMixins []*Builder `protobuf:"bytes,3,rep,name=builder_mixins,json=builderMixins,proto3" json:"builder_mixins,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BuildbucketCfg) Reset() { *m = BuildbucketCfg{} }
func (m *BuildbucketCfg) String() string { return proto.CompactTextString(m) }
func (*BuildbucketCfg) ProtoMessage() {}
func (*BuildbucketCfg) Descriptor() ([]byte, []int) {
return fileDescriptor_90cd2cb373fa8af0, []int{5}
}
func (m *BuildbucketCfg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BuildbucketCfg.Unmarshal(m, b)
}
func (m *BuildbucketCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BuildbucketCfg.Marshal(b, m, deterministic)
}
func (m *BuildbucketCfg) XXX_Merge(src proto.Message) {
xxx_messageInfo_BuildbucketCfg.Merge(m, src)
}
func (m *BuildbucketCfg) XXX_Size() int {
return xxx_messageInfo_BuildbucketCfg.Size(m)
}
func (m *BuildbucketCfg) XXX_DiscardUnknown() {
xxx_messageInfo_BuildbucketCfg.DiscardUnknown(m)
}
var xxx_messageInfo_BuildbucketCfg proto.InternalMessageInfo
func (m *BuildbucketCfg) GetBuckets() []*Bucket {
if m != nil {
return m.Buckets
}
return nil
}
func (m *BuildbucketCfg) GetAclSets() []*AclSet {
if m != nil {
return m.AclSets
}
return nil
}
func (m *BuildbucketCfg) GetBuilderMixins() []*Builder {
if m != nil {
return m.BuilderMixins
}
return nil
}
func init() {
proto.RegisterEnum("buildbucket.Toggle", Toggle_name, Toggle_value)
proto.RegisterEnum("buildbucket.Acl_Role", Acl_Role_name, Acl_Role_value)
proto.RegisterType((*Acl)(nil), "buildbucket.Acl")
proto.RegisterType((*AclSet)(nil), "buildbucket.AclSet")
proto.RegisterType((*Builder)(nil), "buildbucket.Builder")
proto.RegisterType((*Builder_CacheEntry)(nil), "buildbucket.Builder.CacheEntry")
proto.RegisterType((*Builder_Recipe)(nil), "buildbucket.Builder.Recipe")
proto.RegisterType((*Swarming)(nil), "buildbucket.Swarming")
proto.RegisterType((*Bucket)(nil), "buildbucket.Bucket")
proto.RegisterType((*BuildbucketCfg)(nil), "buildbucket.BuildbucketCfg")
}
func init() {
proto.RegisterFile("go.chromium.org/luci/buildbucket/proto/config/project_config.proto", fileDescriptor_90cd2cb373fa8af0)
}
var fileDescriptor_90cd2cb373fa8af0 = []byte{
// 1018 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xed, 0x6e, 0xdb, 0x36,
0x17, 0xae, 0xfc, 0x15, 0xfb, 0xf8, 0x23, 0x2a, 0xe3, 0x06, 0x7a, 0xf3, 0x76, 0xad, 0xe7, 0x15,
0x98, 0x37, 0xa0, 0xca, 0x96, 0x0c, 0x6d, 0x81, 0xfe, 0x18, 0xe2, 0xc4, 0x45, 0x13, 0xac, 0x59,
0x21, 0x3b, 0x2d, 0xb6, 0x3f, 0x02, 0xcd, 0x30, 0x0a, 0x1b, 0x49, 0x14, 0x48, 0xaa, 0x49, 0xee,
0x62, 0xbb, 0x80, 0xdd, 0xc1, 0x6e, 0x63, 0xb7, 0xb3, 0x6b, 0x18, 0x48, 0xca, 0xb2, 0x53, 0xa4,
0xc5, 0x3e, 0x7e, 0x59, 0xe7, 0x39, 0xcf, 0x39, 0x7a, 0x78, 0x3e, 0x44, 0xc3, 0x38, 0xe2, 0x3e,
0x39, 0x17, 0x3c, 0x61, 0x79, 0xe2, 0x73, 0x11, 0x6d, 0xc7, 0x39, 0x61, 0xdb, 0xf3, 0x9c, 0xc5,
0xa7, 0xf3, 0x9c, 0x5c, 0x50, 0xb5, 0x9d, 0x09, 0xae, 0xf8, 0x36, 0xe1, 0xe9, 0x19, 0x8b, 0xb4,
0xf1, 0x8e, 0x12, 0x15, 0x5a, 0xd3, 0x37, 0x3e, 0xd4, 0x5e, 0xa1, 0x6f, 0x3d, 0x88, 0x38, 0x8f,
0x62, 0x6a, 0xc3, 0xe6, 0xf9, 0xd9, 0xf6, 0xa5, 0xc0, 0x59, 0x46, 0x85, 0xb4, 0xe4, 0xe1, 0xaf,
0x0e, 0x54, 0xf7, 0x48, 0x8c, 0xbe, 0x82, 0x9a, 0xe0, 0x31, 0xf5, 0x9c, 0x81, 0x33, 0xea, 0xed,
0xdc, 0xf3, 0x57, 0x72, 0xf8, 0x7b, 0x24, 0xf6, 0x03, 0x1e, 0xd3, 0xc0, 0x50, 0x50, 0x1f, 0xea,
0x91, 0xe0, 0x79, 0xe6, 0x55, 0x06, 0xce, 0xa8, 0x15, 0x58, 0x03, 0x6d, 0x41, 0x93, 0x9d, 0xd2,
0x54, 0x31, 0x75, 0xed, 0x55, 0x8d, 0xa3, 0xb4, 0x87, 0x8f, 0xa1, 0xa6, 0xe3, 0x11, 0x40, 0x23,
0x98, 0xec, 0x1d, 0x4c, 0x02, 0xf7, 0x0e, 0xea, 0x42, 0x6b, 0xba, 0xff, 0x72, 0x72, 0x70, 0xf2,
0xc3, 0x24, 0x70, 0x1d, 0xed, 0x7a, 0x1b, 0x1c, 0xce, 0x26, 0x81, 0x5b, 0x19, 0x8e, 0xa1, 0xb1,
0x47, 0xe2, 0x29, 0x55, 0x08, 0x41, 0x2d, 0xc5, 0x89, 0x55, 0xd5, 0x0a, 0xcc, 0x33, 0x7a, 0x04,
0x35, 0x4c, 0x62, 0xe9, 0x55, 0x06, 0xd5, 0x51, 0x7b, 0xc7, 0xfd, 0x50, 0x69, 0x60, 0xbc, 0xc3,
0x3f, 0x9b, 0xb0, 0x36, 0xd6, 0x1e, 0x2a, 0x6e, 0xcd, 0xf2, 0x05, 0x74, 0xe5, 0x25, 0x16, 0x09,
0x4b, 0xa3, 0xf0, 0x9c, 0x4b, 0xe5, 0xdd, 0x33, 0xce, 0xce, 0x02, 0x7c, 0xc9, 0xa5, 0x42, 0x9b,
0xd0, 0x48, 0xd8, 0x15, 0x4b, 0xa5, 0x07, 0x83, 0xea, 0xa8, 0x15, 0x14, 0x96, 0x3e, 0x2b, 0xc1,
0x8a, 0x46, 0x5c, 0x5c, 0x7b, 0x0d, 0x7b, 0xd6, 0x85, 0x7d, 0x23, 0xb1, 0xc2, 0x91, 0xd5, 0xb9,
0x92, 0x78, 0x86, 0x23, 0x89, 0x1e, 0x00, 0x9c, 0xb2, 0x84, 0xa6, 0x92, 0xf1, 0x54, 0x7a, 0x55,
0xc3, 0x58, 0x41, 0xd0, 0x2e, 0x34, 0x04, 0x25, 0x2c, 0xa3, 0x5e, 0x6d, 0xe0, 0x8c, 0xda, 0x3b,
0xff, 0xbf, 0x71, 0xca, 0xe2, 0x5c, 0x7e, 0x60, 0x28, 0x41, 0x41, 0xd5, 0xaa, 0x32, 0xc1, 0xb8,
0xd0, 0x1d, 0xa8, 0x0f, 0x9c, 0x51, 0x37, 0x28, 0x6d, 0xf4, 0x1d, 0x6c, 0xd2, 0x2b, 0x4a, 0x72,
0xc5, 0x78, 0x1a, 0x2a, 0x96, 0x50, 0x9e, 0xab, 0x50, 0x52, 0x22, 0xbd, 0x35, 0xc3, 0xec, 0x97,
0xde, 0x99, 0x75, 0x4e, 0x29, 0x91, 0xe8, 0x4b, 0x58, 0xa7, 0x57, 0x19, 0x13, 0xd8, 0x84, 0x19,
0x7a, 0xdf, 0xd0, 0x7b, 0x4b, 0xd8, 0x10, 0x9f, 0x42, 0x83, 0x60, 0x72, 0x4e, 0xa5, 0xd7, 0x32,
0x5d, 0x79, 0x78, 0xab, 0xde, 0x7d, 0x4d, 0x99, 0xa4, 0x4a, 0x5c, 0x07, 0x05, 0x1d, 0x3d, 0x83,
0xae, 0x61, 0x86, 0x69, 0x9e, 0xcc, 0xa9, 0x90, 0x9e, 0x6b, 0xe6, 0x6f, 0xe3, 0x46, 0xfc, 0x8c,
0x47, 0x51, 0x4c, 0x83, 0x8e, 0xc1, 0x8e, 0x2d, 0x51, 0x6b, 0x93, 0x54, 0xbc, 0x67, 0x84, 0x86,
0x98, 0x10, 0x9e, 0xa7, 0xca, 0xeb, 0x98, 0x56, 0xf4, 0x0a, 0x78, 0xcf, 0xa2, 0xe8, 0x10, 0x36,
0x71, 0xae, 0x78, 0x38, 0xb7, 0x2a, 0xc2, 0xb2, 0xcc, 0xde, 0xdd, 0x8f, 0xbf, 0xab, 0xaf, 0x43,
0x0a, 0xdd, 0x07, 0x8b, 0x00, 0xf4, 0x14, 0x3a, 0xf4, 0x2a, 0xa3, 0x42, 0x03, 0x0a, 0xc7, 0x1e,
0xfa, 0x84, 0xd8, 0x55, 0x22, 0xf2, 0x61, 0x43, 0x2f, 0x72, 0x98, 0xb0, 0xa8, 0x28, 0xa6, 0x99,
0xb9, 0x0d, 0x23, 0xf8, 0xae, 0x76, 0xbd, 0x5a, 0x78, 0xcc, 0xe0, 0x11, 0x78, 0xa8, 0xb0, 0xbc,
0x08, 0x15, 0x4d, 0xb2, 0x18, 0x2b, 0x1a, 0x12, 0x9c, 0x62, 0x71, 0x1d, 0x66, 0x54, 0x10, 0x9d,
0x31, 0xa2, 0xde, 0xa6, 0x19, 0x8c, 0xfb, 0xbe, 0xdd, 0x6f, 0x7f, 0xb1, 0xdf, 0xfe, 0xc9, 0x61,
0xaa, 0x76, 0x77, 0xde, 0xe0, 0x38, 0xa7, 0xc1, 0x7d, 0x9d, 0x64, 0x56, 0xe4, 0xd8, 0x37, 0x29,
0x5e, 0x97, 0x19, 0xb6, 0x62, 0x80, 0x65, 0x47, 0x6e, 0x5d, 0x12, 0x04, 0xb5, 0x0c, 0xab, 0xf3,
0x62, 0xd1, 0xcd, 0x33, 0x7a, 0x02, 0xde, 0x25, 0x66, 0x2a, 0x3c, 0xe3, 0x22, 0xd4, 0x23, 0x1d,
0x9a, 0x4e, 0xda, 0xe1, 0xd0, 0x7b, 0x5f, 0x0f, 0xfa, 0xda, 0xff, 0x82, 0x8b, 0xb7, 0x58, 0x24,
0xe6, 0x05, 0x7a, 0x44, 0xb6, 0xfe, 0x70, 0xa0, 0x61, 0x07, 0x56, 0x4f, 0xbf, 0xa0, 0x19, 0x97,
0x4c, 0xe9, 0x05, 0xb2, 0x2f, 0x5c, 0x41, 0x4a, 0x29, 0x95, 0x15, 0x29, 0x9f, 0x43, 0x87, 0xb0,
0xec, 0x34, 0xcc, 0x30, 0xb9, 0xd0, 0xc7, 0xb7, 0x6b, 0xd7, 0xd6, 0xd8, 0x6b, 0x0b, 0x95, 0x94,
0xf7, 0x54, 0x98, 0xf6, 0xd6, 0x97, 0x94, 0x37, 0x16, 0xd2, 0x6f, 0xce, 0x04, 0xcf, 0xa8, 0x50,
0x8c, 0x96, 0x7b, 0xb7, 0x44, 0x74, 0x8a, 0xa5, 0x15, 0xbe, 0xf3, 0x6a, 0x86, 0xd1, 0x5e, 0x62,
0x47, 0x47, 0xb5, 0x66, 0xd3, 0x6d, 0x1d, 0xd5, 0x9a, 0x6d, 0xb7, 0x73, 0x54, 0x6b, 0x76, 0xdd,
0xde, 0x51, 0xad, 0xb9, 0xee, 0xba, 0xc3, 0xdf, 0x2a, 0xd0, 0x9c, 0x16, 0x3b, 0xae, 0x57, 0x51,
0x37, 0x78, 0xa5, 0xa0, 0xa5, 0x8d, 0x3e, 0x03, 0xc8, 0x45, 0xac, 0xeb, 0x97, 0x60, 0x55, 0x9c,
0xb1, 0x95, 0x8b, 0xf8, 0x85, 0x01, 0xd0, 0xf7, 0xe0, 0x96, 0x93, 0x4a, 0xcf, 0x70, 0x1e, 0x2b,
0x5b, 0xd7, 0xf6, 0x4e, 0xff, 0xb6, 0xa5, 0x0a, 0xd6, 0x0b, 0xf6, 0x41, 0x41, 0x46, 0xdf, 0x40,
0xb3, 0x80, 0xa4, 0xd1, 0xff, 0xb1, 0xc0, 0x92, 0xf5, 0x77, 0xa6, 0xad, 0xfe, 0x5f, 0xa7, 0x6d,
0xf8, 0x8b, 0x03, 0x8d, 0xb1, 0x51, 0xf0, 0xef, 0xbf, 0xea, 0xe8, 0x7f, 0xd0, 0xc4, 0x24, 0x0e,
0x25, 0x55, 0xb2, 0xe8, 0xcd, 0x1a, 0x36, 0x37, 0x85, 0x44, 0xdf, 0x42, 0x73, 0xf1, 0x89, 0x2d,
0xea, 0x75, 0xf3, 0x12, 0x5b, 0xf4, 0x26, 0x28, 0x69, 0xc3, 0xdf, 0x1d, 0xe8, 0x8d, 0x97, 0x94,
0xfd, 0xb3, 0x08, 0x3d, 0x86, 0x35, 0x6b, 0x48, 0xcf, 0x31, 0x4a, 0x36, 0x3e, 0xa8, 0x9d, 0xfe,
0x09, 0x16, 0x1c, 0xe4, 0xaf, 0xe8, 0xa9, 0xdc, 0xc2, 0xb7, 0xd7, 0xd8, 0x52, 0xe4, 0x73, 0xe8,
0x2d, 0x9a, 0x5b, 0x5c, 0x2c, 0xd5, 0x4f, 0x74, 0xa8, 0x5b, 0x70, 0x5f, 0x19, 0xea, 0xd7, 0x8f,
0xa0, 0x61, 0x3f, 0x2e, 0xa8, 0x05, 0xf5, 0x93, 0xe3, 0xe9, 0x64, 0xe6, 0xde, 0x41, 0x6b, 0x50,
0xfd, 0x69, 0x32, 0x75, 0x1d, 0xd4, 0x80, 0xca, 0xf1, 0x8f, 0x6e, 0x65, 0xfc, 0xec, 0xe7, 0x27,
0xff, 0xe8, 0x3f, 0xc4, 0x73, 0xfb, 0x93, 0xcd, 0xe7, 0x0d, 0x03, 0xef, 0xfe, 0x15, 0x00, 0x00,
0xff, 0xff, 0x06, 0xba, 0x90, 0x7e, 0x84, 0x08, 0x00, 0x00,
}