| // Copyright 2015 The LUCI Authors. |
| // |
| // 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. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.28.1 |
| // protoc v3.21.7 |
| // source: go.chromium.org/luci/scheduler/appengine/messages/config.proto |
| |
| package messages |
| |
| import ( |
| _ "go.chromium.org/luci/common/proto" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| reflect "reflect" |
| sync "sync" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| type Acl_Role int32 |
| |
| const ( |
| Acl_READER Acl_Role = 0 |
| Acl_TRIGGERER Acl_Role = 2 |
| Acl_OWNER Acl_Role = 1 |
| ) |
| |
| // Enum value maps for Acl_Role. |
| var ( |
| Acl_Role_name = map[int32]string{ |
| 0: "READER", |
| 2: "TRIGGERER", |
| 1: "OWNER", |
| } |
| Acl_Role_value = map[string]int32{ |
| "READER": 0, |
| "TRIGGERER": 2, |
| "OWNER": 1, |
| } |
| ) |
| |
| func (x Acl_Role) Enum() *Acl_Role { |
| p := new(Acl_Role) |
| *p = x |
| return p |
| } |
| |
| func (x Acl_Role) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Acl_Role) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (Acl_Role) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes[0] |
| } |
| |
| func (x Acl_Role) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Acl_Role.Descriptor instead. |
| func (Acl_Role) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{1, 0} |
| } |
| |
| type TriggeringPolicy_Kind int32 |
| |
| const ( |
| // A placeholder for unrecognized policy kind. |
| TriggeringPolicy_UNDEFINED TriggeringPolicy_Kind = 0 |
| // A greedy triggering function that takes all pending triggers (up to |
| // max_batch_size limit) and collapses them into one new invocation, |
| // deriving its properties from the most recent trigger alone. It doesn't |
| // wait for a full batch, nor tries to batch evenly. |
| TriggeringPolicy_GREEDY_BATCHING TriggeringPolicy_Kind = 1 |
| // A logarithmic triggering function that takes floor(log(base,N)) pending |
| // triggers (at least 1 and up to max_batch_size limit) and collapses them |
| // into one new invocation, deriving its properties from the most recent |
| // trigger alone, where N is the total number of pending triggers and k is |
| // specified by the log_base field below. |
| TriggeringPolicy_LOGARITHMIC_BATCHING TriggeringPolicy_Kind = 2 |
| ) |
| |
| // Enum value maps for TriggeringPolicy_Kind. |
| var ( |
| TriggeringPolicy_Kind_name = map[int32]string{ |
| 0: "UNDEFINED", |
| 1: "GREEDY_BATCHING", |
| 2: "LOGARITHMIC_BATCHING", |
| } |
| TriggeringPolicy_Kind_value = map[string]int32{ |
| "UNDEFINED": 0, |
| "GREEDY_BATCHING": 1, |
| "LOGARITHMIC_BATCHING": 2, |
| } |
| ) |
| |
| func (x TriggeringPolicy_Kind) Enum() *TriggeringPolicy_Kind { |
| p := new(TriggeringPolicy_Kind) |
| *p = x |
| return p |
| } |
| |
| func (x TriggeringPolicy_Kind) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (TriggeringPolicy_Kind) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (TriggeringPolicy_Kind) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes[1] |
| } |
| |
| func (x TriggeringPolicy_Kind) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use TriggeringPolicy_Kind.Descriptor instead. |
| func (TriggeringPolicy_Kind) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| // ProjectConfig defines a schema for a config file that describe jobs belonging |
| // to some project. |
| type ProjectConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Job is a set of jobs defined in the project. |
| Job []*Job `protobuf:"bytes,1,rep,name=job,proto3" json:"job,omitempty"` |
| // Trigger is a set of triggering jobs defined in the project. |
| Trigger []*Trigger `protobuf:"bytes,2,rep,name=trigger,proto3" json:"trigger,omitempty"` |
| // Deprecated and unused. Use realms permissions instead. |
| // |
| // Deprecated: Do not use. |
| AclSets []*AclSet `protobuf:"bytes,3,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` |
| } |
| |
| func (x *ProjectConfig) Reset() { |
| *x = ProjectConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ProjectConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ProjectConfig) ProtoMessage() {} |
| |
| func (x *ProjectConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[0] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead. |
| func (*ProjectConfig) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *ProjectConfig) GetJob() []*Job { |
| if x != nil { |
| return x.Job |
| } |
| return nil |
| } |
| |
| func (x *ProjectConfig) GetTrigger() []*Trigger { |
| if x != nil { |
| return x.Trigger |
| } |
| return nil |
| } |
| |
| // Deprecated: Do not use. |
| func (x *ProjectConfig) GetAclSets() []*AclSet { |
| if x != nil { |
| return x.AclSets |
| } |
| return nil |
| } |
| |
| // Deprecated in favor of LUCI Realms. This proto is totally unused now, exists |
| // only to not break older configs that still may have deprecated fields |
| // populated. |
| type Acl struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Deprecated: Do not use. |
| Role Acl_Role `protobuf:"varint,1,opt,name=role,proto3,enum=scheduler.config.Acl_Role" json:"role,omitempty"` |
| // Deprecated: Do not use. |
| GrantedTo string `protobuf:"bytes,2,opt,name=granted_to,json=grantedTo,proto3" json:"granted_to,omitempty"` |
| } |
| |
| func (x *Acl) Reset() { |
| *x = Acl{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Acl) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Acl) ProtoMessage() {} |
| |
| func (x *Acl) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[1] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Acl.ProtoReflect.Descriptor instead. |
| func (*Acl) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{1} |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Acl) GetRole() Acl_Role { |
| if x != nil { |
| return x.Role |
| } |
| return Acl_READER |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Acl) GetGrantedTo() string { |
| if x != nil { |
| return x.GrantedTo |
| } |
| return "" |
| } |
| |
| // Deprecated in favor of LUCI Realms. This proto is totally unused now, exists |
| // only to not break older configs that still may have deprecated fields |
| // populated. |
| type AclSet struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Deprecated: Do not use. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Deprecated: Do not use. |
| Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"` |
| } |
| |
| func (x *AclSet) Reset() { |
| *x = AclSet{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *AclSet) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*AclSet) ProtoMessage() {} |
| |
| func (x *AclSet) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[2] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use AclSet.ProtoReflect.Descriptor instead. |
| func (*AclSet) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{2} |
| } |
| |
| // Deprecated: Do not use. |
| func (x *AclSet) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // Deprecated: Do not use. |
| func (x *AclSet) GetAcls() []*Acl { |
| if x != nil { |
| return x.Acls |
| } |
| return nil |
| } |
| |
| // TriggeringPolicy defines a function that decides when and how to launch a |
| // job invocation, given the job's current state and a set of pending triggers. |
| type TriggeringPolicy struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Defines an algorithm to use for the triggering decisions. |
| // |
| // See comments for Kind enum field. |
| // |
| // Default is GREEDY_BATCHING. |
| Kind TriggeringPolicy_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=scheduler.config.TriggeringPolicy_Kind" json:"kind,omitempty"` |
| // Limits number of job invocations running at the same time. |
| // |
| // If the number of current active invocations is more or equal to this |
| // setting, the triggering function will be skipped completely, since it isn't |
| // allowed to trigger anything anyway. |
| // |
| // Default is 1. |
| MaxConcurrentInvocations int64 `protobuf:"varint,2,opt,name=max_concurrent_invocations,json=maxConcurrentInvocations,proto3" json:"max_concurrent_invocations,omitempty"` |
| // Limits how many triggers can be put into one invocation request. |
| // |
| // For example, setting this to 1 will make each trigger launch its own |
| // invocation. |
| // |
| // Default is 1000 (which is ~= unlimited). |
| MaxBatchSize int64 `protobuf:"varint,3,opt,name=max_batch_size,json=maxBatchSize,proto3" json:"max_batch_size,omitempty"` |
| // Base of the logarithm operation during logarithmic batching. |
| // |
| // For example, setting this to 2, will cause 3 out of 8 pending triggers to |
| // be combined into a single invocation with LOGARITHMIC_BATCHING kind. This |
| // value is ignored by other policy kinds. Must be larger or equal to 1.0001 |
| // for numerical stability reasons. |
| // |
| // Required. |
| LogBase float32 `protobuf:"fixed32,4,opt,name=log_base,json=logBase,proto3" json:"log_base,omitempty"` |
| } |
| |
| func (x *TriggeringPolicy) Reset() { |
| *x = TriggeringPolicy{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TriggeringPolicy) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TriggeringPolicy) ProtoMessage() {} |
| |
| func (x *TriggeringPolicy) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[3] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use TriggeringPolicy.ProtoReflect.Descriptor instead. |
| func (*TriggeringPolicy) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *TriggeringPolicy) GetKind() TriggeringPolicy_Kind { |
| if x != nil { |
| return x.Kind |
| } |
| return TriggeringPolicy_UNDEFINED |
| } |
| |
| func (x *TriggeringPolicy) GetMaxConcurrentInvocations() int64 { |
| if x != nil { |
| return x.MaxConcurrentInvocations |
| } |
| return 0 |
| } |
| |
| func (x *TriggeringPolicy) GetMaxBatchSize() int64 { |
| if x != nil { |
| return x.MaxBatchSize |
| } |
| return 0 |
| } |
| |
| func (x *TriggeringPolicy) GetLogBase() float32 { |
| if x != nil { |
| return x.LogBase |
| } |
| return 0 |
| } |
| |
| // Job specifies a single regular job belonging to a project. |
| // |
| // Such jobs runs on a schedule or can be triggered by some trigger. |
| type Job struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Id is a name of the job (unique for the project). |
| // |
| // Must match '^[0-9A-Za-z_\-\. \)\(]{1,100}$'. |
| Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Realm is a name of a LUCI realm within the project to use for ACLs. |
| // |
| // Must match `^[a-z0-9_\.\-/]{1,400}$` or be literals "@root" or "@legacy". |
| // If not set, defaults to "@legacy". |
| // |
| // ACLs associated with a realm are defined separately in realms.cfg file. |
| // That way they can be shared by multiple services. |
| Realm string `protobuf:"bytes,8,opt,name=realm,proto3" json:"realm,omitempty"` |
| // Schedule describes when to run the job. |
| // |
| // A job with a schedule can still be triggered by other triggering jobs |
| // and via "Trigger" button in UI. |
| // |
| // Supported kinds of schedules (illustrated by examples): |
| // - "* 0 * * * *": cron-like expression, in a syntax supported by |
| // https://github.com/gorhill/cronexpr (see its docs for full reference). |
| // The cron engine will attempt to start a job at specified moments in |
| // time (based on UTC clock). If when triggering a job, previous |
| // invocation is still running, an overrun will be recorded (and next |
| // attempt to start a job happens based on the schedule, not when the |
| // previous invocation finishes). Some examples: |
| // "0 */3 * * * *" - each 3 hours: at 12:00 AM UTC, 3:00 AM UTC, ... |
| // "0 */3 * * *" - exact same thing (last field is optional) |
| // "0 1/3 * * *" - each 3 hours but starting 1:00 AM UTC |
| // "0 2,10,18 * * *" - at 2 AM UTC, 10 AM UTC, 6 PM UTC |
| // "0 7 * * *" - at 7 AM UTC, once a day. |
| // - "with 10s interval": runs invocations in a loop, waiting 10s after |
| // finishing invocation before starting a new one. Overruns are not |
| // possible. |
| // - "continuously" is alias for "with 0s interval", meaning the job will |
| // run in a loop without any pauses. |
| // - "triggered" schedule indicates that job is only started via a trigger. |
| // |
| // Default is "triggered". |
| Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` |
| // Disabled is true to disable this job. |
| // |
| // Disabled job is equivalent to a deleted job: it can't be triggered, it |
| // can't be referenced by other jobs and it doesn't show up in UI or API. |
| // |
| // Use this instead of commenting out the definition in case you want to |
| // temporarily git rid of the job. |
| Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"` |
| // Deprecated and unused. Use realms permissions instead. |
| // |
| // Deprecated: Do not use. |
| Acls []*Acl `protobuf:"bytes,5,rep,name=acls,proto3" json:"acls,omitempty"` |
| // Deprecated and unused. Use realms permissions instead. |
| // |
| // Deprecated: Do not use. |
| AclSets []string `protobuf:"bytes,6,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` |
| // TriggeringPolicy defines how job handles incoming triggering events. |
| // |
| // If not specified defaults to GREEDY_BATCHING with 1 max concurrent |
| // invocation. See comments in TriggeringPolicy for more details. |
| TriggeringPolicy *TriggeringPolicy `protobuf:"bytes,7,opt,name=triggering_policy,json=triggeringPolicy,proto3" json:"triggering_policy,omitempty"` |
| // Noop is used for testing. It is "do nothing" task. |
| Noop *NoopTask `protobuf:"bytes,100,opt,name=noop,proto3" json:"noop,omitempty"` |
| // UrlFetch can be used to make a simple HTTP call. |
| UrlFetch *UrlFetchTask `protobuf:"bytes,101,opt,name=url_fetch,json=urlFetch,proto3" json:"url_fetch,omitempty"` |
| // BuildbucketTask can be used to schedule buildbucket job. |
| Buildbucket *BuildbucketTask `protobuf:"bytes,103,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"` |
| } |
| |
| func (x *Job) Reset() { |
| *x = Job{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Job) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Job) ProtoMessage() {} |
| |
| func (x *Job) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[4] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Job.ProtoReflect.Descriptor instead. |
| func (*Job) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *Job) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *Job) GetRealm() string { |
| if x != nil { |
| return x.Realm |
| } |
| return "" |
| } |
| |
| func (x *Job) GetSchedule() string { |
| if x != nil { |
| return x.Schedule |
| } |
| return "" |
| } |
| |
| func (x *Job) GetDisabled() bool { |
| if x != nil { |
| return x.Disabled |
| } |
| return false |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Job) GetAcls() []*Acl { |
| if x != nil { |
| return x.Acls |
| } |
| return nil |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Job) GetAclSets() []string { |
| if x != nil { |
| return x.AclSets |
| } |
| return nil |
| } |
| |
| func (x *Job) GetTriggeringPolicy() *TriggeringPolicy { |
| if x != nil { |
| return x.TriggeringPolicy |
| } |
| return nil |
| } |
| |
| func (x *Job) GetNoop() *NoopTask { |
| if x != nil { |
| return x.Noop |
| } |
| return nil |
| } |
| |
| func (x *Job) GetUrlFetch() *UrlFetchTask { |
| if x != nil { |
| return x.UrlFetch |
| } |
| return nil |
| } |
| |
| func (x *Job) GetBuildbucket() *BuildbucketTask { |
| if x != nil { |
| return x.Buildbucket |
| } |
| return nil |
| } |
| |
| // Trigger specifies a job that triggers other jobs. |
| // |
| // It is a special kind of a job that periodically checks the state of the world |
| // and triggers other jobs. |
| type Trigger struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Id is a name of the job (unique for the project). |
| // |
| // Must match '^[0-9A-Za-z_\-\. \)\(]{1,100}$'. It's in the same namespace as |
| // regular jobs. |
| Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Realm is a name of a LUCI realm within the project to use for ACLs. |
| // |
| // Must match `^[a-z0-9_\.\-/]{1,400}$` or be literals "@root" or "@legacy". |
| // If not set, defaults to "@legacy". |
| // |
| // ACLs associated with a realm are defined separately in realms.cfg file. |
| // That way they can be shared by multiple services. |
| Realm string `protobuf:"bytes,7,opt,name=realm,proto3" json:"realm,omitempty"` |
| // Schedule describes when to run this triggering job. |
| // |
| // See Job.schedule for more info. Default is "with 30s interval". |
| Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` |
| // Disabled is true to disable this job. |
| // |
| // Se Job.disabled for more info. |
| Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"` |
| // Deprecated and unused. Use realms permissions instead. |
| // |
| // Deprecated: Do not use. |
| Acls []*Acl `protobuf:"bytes,4,rep,name=acls,proto3" json:"acls,omitempty"` |
| // Deprecated and unused. Use realms permissions instead. |
| // |
| // Deprecated: Do not use. |
| AclSets []string `protobuf:"bytes,5,rep,name=acl_sets,json=aclSets,proto3" json:"acl_sets,omitempty"` |
| // TriggeringPolicy defines how job handles incoming triggering events. |
| // |
| // It is rare for a trigger itself to have a non-default triggering policy, |
| // so most likely you should not touch this field. |
| TriggeringPolicy *TriggeringPolicy `protobuf:"bytes,6,opt,name=triggering_policy,json=triggeringPolicy,proto3" json:"triggering_policy,omitempty"` |
| // Triggers are IDs of jobs triggered by this trigger. |
| Triggers []string `protobuf:"bytes,200,rep,name=triggers,proto3" json:"triggers,omitempty"` |
| // Noop is used for testing. It is "do nothing" trigger. |
| Noop *NoopTask `protobuf:"bytes,100,opt,name=noop,proto3" json:"noop,omitempty"` |
| // Gitiles is used to trigger jobs for new commits on Gitiles. |
| Gitiles *GitilesTask `protobuf:"bytes,101,opt,name=gitiles,proto3" json:"gitiles,omitempty"` |
| } |
| |
| func (x *Trigger) Reset() { |
| *x = Trigger{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Trigger) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Trigger) ProtoMessage() {} |
| |
| func (x *Trigger) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[5] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Trigger.ProtoReflect.Descriptor instead. |
| func (*Trigger) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *Trigger) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *Trigger) GetRealm() string { |
| if x != nil { |
| return x.Realm |
| } |
| return "" |
| } |
| |
| func (x *Trigger) GetSchedule() string { |
| if x != nil { |
| return x.Schedule |
| } |
| return "" |
| } |
| |
| func (x *Trigger) GetDisabled() bool { |
| if x != nil { |
| return x.Disabled |
| } |
| return false |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Trigger) GetAcls() []*Acl { |
| if x != nil { |
| return x.Acls |
| } |
| return nil |
| } |
| |
| // Deprecated: Do not use. |
| func (x *Trigger) GetAclSets() []string { |
| if x != nil { |
| return x.AclSets |
| } |
| return nil |
| } |
| |
| func (x *Trigger) GetTriggeringPolicy() *TriggeringPolicy { |
| if x != nil { |
| return x.TriggeringPolicy |
| } |
| return nil |
| } |
| |
| func (x *Trigger) GetTriggers() []string { |
| if x != nil { |
| return x.Triggers |
| } |
| return nil |
| } |
| |
| func (x *Trigger) GetNoop() *NoopTask { |
| if x != nil { |
| return x.Noop |
| } |
| return nil |
| } |
| |
| func (x *Trigger) GetGitiles() *GitilesTask { |
| if x != nil { |
| return x.Gitiles |
| } |
| return nil |
| } |
| |
| // NoopTask is used for testing. It is a "do nothing" task that can emit fake |
| // triggers. |
| type NoopTask struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| SleepMs int64 `protobuf:"varint,1,opt,name=sleep_ms,json=sleepMs,proto3" json:"sleep_ms,omitempty"` |
| TriggersCount int64 `protobuf:"varint,2,opt,name=triggers_count,json=triggersCount,proto3" json:"triggers_count,omitempty"` |
| } |
| |
| func (x *NoopTask) Reset() { |
| *x = NoopTask{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *NoopTask) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*NoopTask) ProtoMessage() {} |
| |
| func (x *NoopTask) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[6] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use NoopTask.ProtoReflect.Descriptor instead. |
| func (*NoopTask) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *NoopTask) GetSleepMs() int64 { |
| if x != nil { |
| return x.SleepMs |
| } |
| return 0 |
| } |
| |
| func (x *NoopTask) GetTriggersCount() int64 { |
| if x != nil { |
| return x.TriggersCount |
| } |
| return 0 |
| } |
| |
| // GitilesTask specifies parameters of what repo and which refs to watch for new |
| // commits. |
| // |
| // GitilesTask will trigger other jobs if either: |
| // - ref's tip has changed (e.g. new commit landed on a ref), |
| // - a ref has just been created from Scheduler point of view, which is |
| // treated as a single new commit. |
| // For example, if you configure new GitilesTask or add a ref not previously |
| // watched to the existing GitilesTask, then Scheduler will "discover" this |
| // ref as newly created and emit exactly 1 trigger for the ref's current |
| // tip. |
| // |
| // LIMITATIONS: |
| // |
| // 1. Per each fast-forward ref's tip change as observed by scheduler, |
| // no more than 50 latest (according to gitiles default ordering) commits |
| // will result in emitted triggers. |
| // This is a safeguard against mistaken or deliberate but unusual git push |
| // actions, which typically don't have intent of triggering a build for each |
| // such commit. |
| // If you absolutely need to act on every new commit even in such cases, |
| // you will need to roll your own implementation, though you may still find |
| // Scheduler GitilesTask useful to trigger your code on new changes. |
| // |
| // 2. No hard latency guarantee. A single invocation of GitilesTask may not be |
| // able to process all the backlog. This is particularly true after a config |
| // change changes the set of watched ref. However, GitilesTask is designed |
| // to make continuous progress with each invocation. |
| type GitilesTask struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Repo is the URL of the Gitiles repository. |
| Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo,omitempty"` |
| // Refs is a list of Git references to track. |
| // |
| // Each ref can be either: |
| // - a fully qualified ref like "refs/heads/master" or "refs/tags/v1.2.3" |
| // - a regular expression with "regexp:" prefix to match multiple refs, e.g. |
| // "regexp:refs/heads/[^/]+" or "regexp:refs/branch-heads/\d+\.\d+", but |
| // the regular expression should have a literal prefix with at least two |
| // slashes present, e.g. "refs/release-\d+/foobar" is not allowed, because |
| // the literal prefix "refs/release-" contains only one slash. The regexp |
| // should not start with ^ or end with $ as they will be added |
| // automatically. |
| // |
| // Each tracked ref, either fully qualified or regexp, must match at least 1 |
| // ref in gitiles output. |
| Refs []string `protobuf:"bytes,2,rep,name=refs,proto3" json:"refs,omitempty"` |
| // Optional path_regexps and path_regexps_exclude are lists of regular |
| // expressions limiting emitted triggers only to commits whose tree diff |
| // touches relevant files. |
| // |
| // If neither path_regexps nor path_regexps_exclude is specified (default), |
| // emits triggers for any commit. |
| // Specifying just path_regexps_exclude is not allowed. |
| // |
| // path_regexps and path_regexps_exclude rules apply on each individual commit |
| // independently. For each commit, a set of all filepaths referenced in Git |
| // commit diff is used for matching. On top of simple file additions and file |
| // modifications, this also includes: file removals, file moves (old and new |
| // path is considered), and changing of file metadata (e.g., chmod +x). This |
| // doesn't include directories (git doesn't track them explicitly). |
| // |
| // Triggers are emitted for a commit if only if at least 1 touched filepath |
| // 1. is not matched by any path_regexps_exclude, |
| // 2. AND is matched at least 1 path_regexps |
| // |
| // **subject to caveats below** for exceptional cases. |
| // |
| // Each path_regexps and path_regexps_exclude is a regular expression |
| // "a/b/c/.+". It should not start with ^ or end with $ as they will be added |
| // automatically. |
| // |
| // CAVEATS: |
| // 1. path_regexps: ".+" |
| // will NOT match commits which modify no files (aka empty commits) and |
| // as such differs from default case of not specifying any `path_regexps`. |
| // 2. Per GitilesTask doc, if a ref fast-forwards >=50 commits, only the last |
| // 50 commits are checked. If none of them matches any path specified here, |
| // no trigger is emitted, even if there is an unexamined commit which |
| // matches the path. |
| // TODO(tandrii): it's possible to improve this by examining diff |
| // between ref's last and new tips, but one has to worry about gitiles |
| // taking potentially very long time to compute it. |
| PathRegexps []string `protobuf:"bytes,3,rep,name=path_regexps,json=pathRegexps,proto3" json:"path_regexps,omitempty"` |
| PathRegexpsExclude []string `protobuf:"bytes,4,rep,name=path_regexps_exclude,json=pathRegexpsExclude,proto3" json:"path_regexps_exclude,omitempty"` |
| } |
| |
| func (x *GitilesTask) Reset() { |
| *x = GitilesTask{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GitilesTask) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GitilesTask) ProtoMessage() {} |
| |
| func (x *GitilesTask) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[7] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use GitilesTask.ProtoReflect.Descriptor instead. |
| func (*GitilesTask) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *GitilesTask) GetRepo() string { |
| if x != nil { |
| return x.Repo |
| } |
| return "" |
| } |
| |
| func (x *GitilesTask) GetRefs() []string { |
| if x != nil { |
| return x.Refs |
| } |
| return nil |
| } |
| |
| func (x *GitilesTask) GetPathRegexps() []string { |
| if x != nil { |
| return x.PathRegexps |
| } |
| return nil |
| } |
| |
| func (x *GitilesTask) GetPathRegexpsExclude() []string { |
| if x != nil { |
| return x.PathRegexpsExclude |
| } |
| return nil |
| } |
| |
| // UrlFetchTask specifies parameters for simple HTTP call. |
| type UrlFetchTask struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Method is HTTP method to use, such as "GET" or "POST". Default is "GET". |
| Method string `protobuf:"bytes,1,opt,name=method,proto3" json:"method,omitempty"` |
| // Url to send the request to. |
| Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` |
| // Timeout is how long to wait for request to complete. Default is 60 sec. |
| TimeoutSec int32 `protobuf:"varint,3,opt,name=timeout_sec,json=timeoutSec,proto3" json:"timeout_sec,omitempty"` // TODO: add more. |
| } |
| |
| func (x *UrlFetchTask) Reset() { |
| *x = UrlFetchTask{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UrlFetchTask) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UrlFetchTask) ProtoMessage() {} |
| |
| func (x *UrlFetchTask) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[8] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use UrlFetchTask.ProtoReflect.Descriptor instead. |
| func (*UrlFetchTask) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *UrlFetchTask) GetMethod() string { |
| if x != nil { |
| return x.Method |
| } |
| return "" |
| } |
| |
| func (x *UrlFetchTask) GetUrl() string { |
| if x != nil { |
| return x.Url |
| } |
| return "" |
| } |
| |
| func (x *UrlFetchTask) GetTimeoutSec() int32 { |
| if x != nil { |
| return x.TimeoutSec |
| } |
| return 0 |
| } |
| |
| // BuildbucketTask specifies parameters of Buildbucket-based jobs. |
| type BuildbucketTask struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Server is hostname of the buildbucket service to use. |
| // |
| // Typically, "cr-buildbucket.appspot.com". |
| Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` |
| // Bucket defines what bucket to add the task to. |
| // |
| // Supported formats are: |
| // - "<bucket>" - for a bucket in the current project. |
| // - "<project>:<bucket>" - for a bucket in another project. |
| // - "luci.<project>.<bucket>" - legacy v1 bucket name. |
| // |
| // If empty, defaults to `realm` field in the parent Job message. |
| Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Builder defines what builder within the bucket to launch. |
| Builder string `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"` |
| // Properties is arbitrary "key:value" pairs describing the task. |
| // TODO(tandrii): which properties will be overridden if triggered? |
| Properties []string `protobuf:"bytes,4,rep,name=properties,proto3" json:"properties,omitempty"` |
| // Tags is a list of tags (as "key:value" pairs) to assign to the task. |
| Tags []string `protobuf:"bytes,5,rep,name=tags,proto3" json:"tags,omitempty"` |
| } |
| |
| func (x *BuildbucketTask) Reset() { |
| *x = BuildbucketTask{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuildbucketTask) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuildbucketTask) ProtoMessage() {} |
| |
| func (x *BuildbucketTask) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[9] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BuildbucketTask.ProtoReflect.Descriptor instead. |
| func (*BuildbucketTask) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *BuildbucketTask) GetServer() string { |
| if x != nil { |
| return x.Server |
| } |
| return "" |
| } |
| |
| func (x *BuildbucketTask) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *BuildbucketTask) GetBuilder() string { |
| if x != nil { |
| return x.Builder |
| } |
| return "" |
| } |
| |
| func (x *BuildbucketTask) GetProperties() []string { |
| if x != nil { |
| return x.Properties |
| } |
| return nil |
| } |
| |
| func (x *BuildbucketTask) GetTags() []string { |
| if x != nil { |
| return x.Tags |
| } |
| return nil |
| } |
| |
| // TaskDefWrapper is a union type of all possible tasks known to the scheduler. |
| // |
| // It is used internally when storing jobs in the datastore. |
| type TaskDefWrapper struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Noop *NoopTask `protobuf:"bytes,1,opt,name=noop,proto3" json:"noop,omitempty"` |
| UrlFetch *UrlFetchTask `protobuf:"bytes,2,opt,name=url_fetch,json=urlFetch,proto3" json:"url_fetch,omitempty"` |
| Buildbucket *BuildbucketTask `protobuf:"bytes,4,opt,name=buildbucket,proto3" json:"buildbucket,omitempty"` |
| Gitiles *GitilesTask `protobuf:"bytes,5,opt,name=gitiles,proto3" json:"gitiles,omitempty"` |
| } |
| |
| func (x *TaskDefWrapper) Reset() { |
| *x = TaskDefWrapper{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TaskDefWrapper) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TaskDefWrapper) ProtoMessage() {} |
| |
| func (x *TaskDefWrapper) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[10] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use TaskDefWrapper.ProtoReflect.Descriptor instead. |
| func (*TaskDefWrapper) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *TaskDefWrapper) GetNoop() *NoopTask { |
| if x != nil { |
| return x.Noop |
| } |
| return nil |
| } |
| |
| func (x *TaskDefWrapper) GetUrlFetch() *UrlFetchTask { |
| if x != nil { |
| return x.UrlFetch |
| } |
| return nil |
| } |
| |
| func (x *TaskDefWrapper) GetBuildbucket() *BuildbucketTask { |
| if x != nil { |
| return x.Buildbucket |
| } |
| return nil |
| } |
| |
| func (x *TaskDefWrapper) GetGitiles() *GitilesTask { |
| if x != nil { |
| return x.Gitiles |
| } |
| return nil |
| } |
| |
| var File_go_chromium_org_luci_scheduler_appengine_messages_config_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDesc = []byte{ |
| 0x0a, 0x3e, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, |
| 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, |
| 0x2f, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, |
| 0x67, 0x65, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x12, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x1a, 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, |
| 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x22, 0xbe, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x33, |
| 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x19, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, |
| 0x67, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x08, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, |
| 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, |
| 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x6c, 0x53, 0x65, 0x74, 0x42, |
| 0x02, 0x18, 0x01, 0x52, 0x07, 0x61, 0x63, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x04, |
| 0x10, 0x05, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x74, |
| 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x03, 0x41, 0x63, 0x6c, 0x12, 0x32, 0x0a, 0x04, |
| 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x63, 0x68, |
| 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, |
| 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, |
| 0x12, 0x21, 0x0a, 0x0a, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, |
| 0x64, 0x54, 0x6f, 0x22, 0x2c, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, |
| 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x52, 0x49, 0x47, 0x47, |
| 0x45, 0x52, 0x45, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x10, |
| 0x01, 0x22, 0x4f, 0x0a, 0x06, 0x41, 0x63, 0x6c, 0x53, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x63, |
| 0x6c, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, |
| 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x3b, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, |
| 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, |
| 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, |
| 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, |
| 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, |
| 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, |
| 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, |
| 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x5f, |
| 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x42, |
| 0x61, 0x73, 0x65, 0x22, 0x44, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0d, 0x0a, 0x09, 0x55, |
| 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x52, |
| 0x45, 0x45, 0x44, 0x59, 0x5f, 0x42, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, |
| 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x47, 0x41, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x49, 0x43, 0x5f, 0x42, |
| 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x22, 0xc0, 0x03, 0x0a, 0x03, 0x4a, 0x6f, |
| 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, |
| 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, |
| 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, |
| 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, |
| 0x2d, 0x0a, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, |
| 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x12, 0x1d, |
| 0x0a, 0x08, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, |
| 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x61, 0x63, 0x6c, 0x53, 0x65, 0x74, 0x73, 0x12, 0x4f, 0x0a, |
| 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, |
| 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, |
| 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, |
| 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x10, 0x74, 0x72, |
| 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2e, |
| 0x0a, 0x04, 0x6e, 0x6f, 0x6f, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, |
| 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, |
| 0x4e, 0x6f, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6e, 0x6f, 0x6f, 0x70, 0x12, 0x3b, |
| 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x5f, 0x66, 0x65, 0x74, 0x63, 0x68, 0x18, 0x65, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x72, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, |
| 0x6b, 0x52, 0x08, 0x75, 0x72, 0x6c, 0x46, 0x65, 0x74, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x0b, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, |
| 0x61, 0x73, 0x6b, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x66, 0x10, 0x67, 0x22, 0x8c, 0x03, 0x0a, |
| 0x07, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, |
| 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1a, |
| 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, |
| 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, |
| 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x61, 0x63, 0x6c, 0x73, 0x18, 0x04, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52, |
| 0x04, 0x61, 0x63, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x08, 0x61, 0x63, 0x6c, 0x5f, 0x73, 0x65, 0x74, |
| 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x61, 0x63, 0x6c, |
| 0x53, 0x65, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, |
| 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x22, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, |
| 0x69, 0x63, 0x79, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x50, |
| 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, |
| 0x73, 0x18, 0xc8, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, |
| 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x6f, 0x6f, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x6f, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x04, 0x6e, 0x6f, |
| 0x6f, 0x70, 0x12, 0x37, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x65, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, |
| 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x61, |
| 0x73, 0x6b, 0x52, 0x07, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x4c, 0x0a, 0x08, 0x4e, |
| 0x6f, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6c, 0x65, 0x65, 0x70, |
| 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6c, 0x65, 0x65, 0x70, |
| 0x4d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x5f, 0x63, |
| 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x72, 0x69, 0x67, |
| 0x67, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x0b, 0x47, 0x69, |
| 0x74, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, |
| 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x12, 0x0a, |
| 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x66, |
| 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x70, |
| 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x67, |
| 0x65, 0x78, 0x70, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x67, |
| 0x65, 0x78, 0x70, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x04, 0x20, 0x03, |
| 0x28, 0x09, 0x52, 0x12, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x67, 0x65, 0x78, 0x70, 0x73, 0x45, |
| 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x22, 0x59, 0x0a, 0x0c, 0x55, 0x72, 0x6c, 0x46, 0x65, 0x74, |
| 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x10, |
| 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, |
| 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, |
| 0x63, 0x22, 0x8f, 0x01, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x16, 0x0a, |
| 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, |
| 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, |
| 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, |
| 0x61, 0x67, 0x73, 0x22, 0x81, 0x02, 0x0a, 0x0e, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x57, |
| 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x6f, 0x6f, 0x70, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, |
| 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x6f, 0x6f, 0x70, 0x54, 0x61, 0x73, 0x6b, |
| 0x52, 0x04, 0x6e, 0x6f, 0x6f, 0x70, 0x12, 0x3b, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x5f, 0x66, 0x65, |
| 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x63, 0x68, 0x65, |
| 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x72, 0x6c, |
| 0x46, 0x65, 0x74, 0x63, 0x68, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x75, 0x72, 0x6c, 0x46, 0x65, |
| 0x74, 0x63, 0x68, 0x12, 0x43, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, |
| 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x0b, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x69, |
| 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x63, 0x68, 0x65, |
| 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x69, 0x74, |
| 0x69, 0x6c, 0x65, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x07, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, |
| 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x42, 0x7c, 0x5a, 0x31, 0x67, 0x6f, 0x2e, 0x63, 0x68, |
| 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, |
| 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2f, 0x61, 0x70, 0x70, 0x65, 0x6e, 0x67, |
| 0x69, 0x6e, 0x65, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0xa2, 0xfe, 0x23, 0x45, |
| 0x0a, 0x43, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2d, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x61, 0x70, 0x70, 0x73, 0x70, 0x6f, 0x74, 0x2e, 0x63, 0x6f, |
| 0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x73, 0x3a, 0x6c, 0x75, 0x63, 0x69, 0x2d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, |
| 0x72, 0x2e, 0x63, 0x66, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescData = file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescOnce.Do(func() { |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescData) |
| }) |
| return file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) |
| var file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11) |
| var file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_goTypes = []interface{}{ |
| (Acl_Role)(0), // 0: scheduler.config.Acl.Role |
| (TriggeringPolicy_Kind)(0), // 1: scheduler.config.TriggeringPolicy.Kind |
| (*ProjectConfig)(nil), // 2: scheduler.config.ProjectConfig |
| (*Acl)(nil), // 3: scheduler.config.Acl |
| (*AclSet)(nil), // 4: scheduler.config.AclSet |
| (*TriggeringPolicy)(nil), // 5: scheduler.config.TriggeringPolicy |
| (*Job)(nil), // 6: scheduler.config.Job |
| (*Trigger)(nil), // 7: scheduler.config.Trigger |
| (*NoopTask)(nil), // 8: scheduler.config.NoopTask |
| (*GitilesTask)(nil), // 9: scheduler.config.GitilesTask |
| (*UrlFetchTask)(nil), // 10: scheduler.config.UrlFetchTask |
| (*BuildbucketTask)(nil), // 11: scheduler.config.BuildbucketTask |
| (*TaskDefWrapper)(nil), // 12: scheduler.config.TaskDefWrapper |
| } |
| var file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_depIdxs = []int32{ |
| 6, // 0: scheduler.config.ProjectConfig.job:type_name -> scheduler.config.Job |
| 7, // 1: scheduler.config.ProjectConfig.trigger:type_name -> scheduler.config.Trigger |
| 4, // 2: scheduler.config.ProjectConfig.acl_sets:type_name -> scheduler.config.AclSet |
| 0, // 3: scheduler.config.Acl.role:type_name -> scheduler.config.Acl.Role |
| 3, // 4: scheduler.config.AclSet.acls:type_name -> scheduler.config.Acl |
| 1, // 5: scheduler.config.TriggeringPolicy.kind:type_name -> scheduler.config.TriggeringPolicy.Kind |
| 3, // 6: scheduler.config.Job.acls:type_name -> scheduler.config.Acl |
| 5, // 7: scheduler.config.Job.triggering_policy:type_name -> scheduler.config.TriggeringPolicy |
| 8, // 8: scheduler.config.Job.noop:type_name -> scheduler.config.NoopTask |
| 10, // 9: scheduler.config.Job.url_fetch:type_name -> scheduler.config.UrlFetchTask |
| 11, // 10: scheduler.config.Job.buildbucket:type_name -> scheduler.config.BuildbucketTask |
| 3, // 11: scheduler.config.Trigger.acls:type_name -> scheduler.config.Acl |
| 5, // 12: scheduler.config.Trigger.triggering_policy:type_name -> scheduler.config.TriggeringPolicy |
| 8, // 13: scheduler.config.Trigger.noop:type_name -> scheduler.config.NoopTask |
| 9, // 14: scheduler.config.Trigger.gitiles:type_name -> scheduler.config.GitilesTask |
| 8, // 15: scheduler.config.TaskDefWrapper.noop:type_name -> scheduler.config.NoopTask |
| 10, // 16: scheduler.config.TaskDefWrapper.url_fetch:type_name -> scheduler.config.UrlFetchTask |
| 11, // 17: scheduler.config.TaskDefWrapper.buildbucket:type_name -> scheduler.config.BuildbucketTask |
| 9, // 18: scheduler.config.TaskDefWrapper.gitiles:type_name -> scheduler.config.GitilesTask |
| 19, // [19:19] is the sub-list for method output_type |
| 19, // [19:19] is the sub-list for method input_type |
| 19, // [19:19] is the sub-list for extension type_name |
| 19, // [19:19] is the sub-list for extension extendee |
| 0, // [0:19] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_init() } |
| func file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_init() { |
| if File_go_chromium_org_luci_scheduler_appengine_messages_config_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ProjectConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Acl); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*AclSet); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TriggeringPolicy); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Job); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Trigger); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*NoopTask); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GitilesTask); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UrlFetchTask); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuildbucketTask); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TaskDefWrapper); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDesc, |
| NumEnums: 2, |
| NumMessages: 11, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_depIdxs, |
| EnumInfos: file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_enumTypes, |
| MessageInfos: file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_scheduler_appengine_messages_config_proto = out.File |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_rawDesc = nil |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_goTypes = nil |
| file_go_chromium_org_luci_scheduler_appengine_messages_config_proto_depIdxs = nil |
| } |