Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(265)

Side by Side Diff: scheduler/appengine/messages/cron.pb.go

Issue 2986033003: [scheduler]: ACLs phase 1 - per Job ACL specification and enforcement. (Closed)
Patch Set: Review. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « scheduler/appengine/messages/cron.proto ('k') | scheduler/appengine/ui/index.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Code generated by protoc-gen-go. DO NOT EDIT. 1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: github.com/luci/luci-go/scheduler/appengine/messages/cron.proto 2 // source: github.com/luci/luci-go/scheduler/appengine/messages/cron.proto
3 3
4 /* 4 /*
5 Package messages is a generated protocol buffer package. 5 Package messages is a generated protocol buffer package.
6 6
7 It is generated from these files: 7 It is generated from these files:
8 github.com/luci/luci-go/scheduler/appengine/messages/cron.proto 8 github.com/luci/luci-go/scheduler/appengine/messages/cron.proto
9 9
10 It has these top-level messages: 10 It has these top-level messages:
11 Acl
12 AclSet
11 Job 13 Job
12 Trigger 14 Trigger
13 NoopTask 15 NoopTask
14 GitilesTask 16 GitilesTask
15 UrlFetchTask 17 UrlFetchTask
16 SwarmingTask 18 SwarmingTask
17 BuildbucketTask 19 BuildbucketTask
18 ProjectConfig 20 ProjectConfig
19 TaskDefWrapper 21 TaskDefWrapper
20 */ 22 */
21 package messages 23 package messages
22 24
23 import proto "github.com/golang/protobuf/proto" 25 import proto "github.com/golang/protobuf/proto"
24 import fmt "fmt" 26 import fmt "fmt"
25 import math "math" 27 import math "math"
26 28
27 // Reference imports to suppress errors if they are not otherwise used. 29 // Reference imports to suppress errors if they are not otherwise used.
28 var _ = proto.Marshal 30 var _ = proto.Marshal
29 var _ = fmt.Errorf 31 var _ = fmt.Errorf
30 var _ = math.Inf 32 var _ = math.Inf
31 33
32 // This is a compile-time assertion to ensure that this generated file 34 // This is a compile-time assertion to ensure that this generated file
33 // is compatible with the proto package it is being compiled against. 35 // is compatible with the proto package it is being compiled against.
34 // A compilation error at this line likely means your copy of the 36 // A compilation error at this line likely means your copy of the
35 // proto package needs to be updated. 37 // proto package needs to be updated.
36 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 38 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
37 39
40 type Acl_Role int32
41
42 const (
43 // Can do read-only operations, such as listing invocations of a Job.
44 Acl_READER Acl_Role = 0
45 // Same as READER + can modify state of a Job or Invocation such as
46 // triggering or aborting them.
47 // LUCI scheduler (this service) is an OWNER of each `Job` and `Trigger` , thus
48 // `Trigger`s are allowed to trigger all `Job`s defined in the same
49 // project, regardless of their respective ACLs.
50 Acl_OWNER Acl_Role = 1
51 )
52
53 var Acl_Role_name = map[int32]string{
54 0: "READER",
55 1: "OWNER",
56 }
57 var Acl_Role_value = map[string]int32{
58 "READER": 0,
59 "OWNER": 1,
60 }
61
62 func (x Acl_Role) String() string {
63 return proto.EnumName(Acl_Role_name, int32(x))
64 }
65 func (Acl_Role) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int {0, 0} }
66
67 // A single access control rule.
68 //
69 // WARNING: until ACLs are fully deployed, DO NOT rely on READER Role
70 // limiting access to your project. Follow crbug/736770 if in doubt.
71 // TODO(tandrii): REMOVE THIS WARNING once deployment is complete.
72 type Acl struct {
73 // Role denotes a list of actions that an identity can perform.
74 Role Acl_Role `protobuf:"varint,1,opt,name=role,enum=messages.Acl_Role" json:"role,omitempty"`
75 // Either email or "group:xyz" or auth service identity string "kind:nam e".
76 GrantedTo string `protobuf:"bytes,2,opt,name=granted_to,json=grantedTo" json:"granted_to,omitempty"`
77 }
78
79 func (m *Acl) Reset() { *m = Acl{} }
80 func (m *Acl) String() string { return proto.CompactTextString(m) }
81 func (*Acl) ProtoMessage() {}
82 func (*Acl) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
83
84 func (m *Acl) GetRole() Acl_Role {
85 if m != nil {
86 return m.Role
87 }
88 return Acl_READER
89 }
90
91 func (m *Acl) GetGrantedTo() string {
92 if m != nil {
93 return m.GrantedTo
94 }
95 return ""
96 }
97
98 // A set of Acl messages. Can be referenced in a Job or Trigger by name.
99 type AclSet struct {
100 // A name of the ACL set, unique for a project.
101 // Required. Must match regex '^[0-9A-Za-z_\-\.]{1,100}$'.
102 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
103 // List of access control rules.
104 // The order does not matter.
105 Acls []*Acl `protobuf:"bytes,2,rep,name=acls" json:"acls,omitempty"`
106 }
107
108 func (m *AclSet) Reset() { *m = AclSet{} }
109 func (m *AclSet) String() string { return proto.CompactTextString(m) }
110 func (*AclSet) ProtoMessage() {}
111 func (*AclSet) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
112
113 func (m *AclSet) GetName() string {
114 if m != nil {
115 return m.Name
116 }
117 return ""
118 }
119
120 func (m *AclSet) GetAcls() []*Acl {
121 if m != nil {
122 return m.Acls
123 }
124 return nil
125 }
126
38 // Job specifies a single regular job belonging to a project. 127 // Job specifies a single regular job belonging to a project.
39 // 128 //
40 // Such jobs runs on a schedule or can be triggered by some trigger. 129 // Such jobs runs on a schedule or can be triggered by some trigger.
41 type Job struct { 130 type Job struct {
42 // Id is a name of the job (unique for the project). 131 // Id is a name of the job (unique for the project).
43 // 132 //
44 // Must match '^[0-9A-Za-z_\-\.]{1,100}$'. 133 // Must match '^[0-9A-Za-z_\-\.]{1,100}$'.
45 Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` 134 Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
46 // Schedule describes when to run the job. 135 // Schedule describes when to run the job.
47 // 136 //
48 // Supported kinds of schedules (illustrated by examples): 137 // Supported kinds of schedules (illustrated by examples):
49 // - "* 0 * * * *": standard cron-like expression. Cron engine will at tempt 138 // - "* 0 * * * *": standard cron-like expression. Cron engine will at tempt
50 // to start a job at specified moments in time (based on UTC clock). If 139 // to start a job at specified moments in time (based on UTC clock). If
51 // when triggering a job, previous invocation is still running, an o verrun 140 // when triggering a job, previous invocation is still running, an o verrun
52 // will be recorded (and next attempt to start a job happens based o n the 141 // will be recorded (and next attempt to start a job happens based o n the
53 // schedule, not when the previous invocation finishes). This is abs olute 142 // schedule, not when the previous invocation finishes). This is abs olute
54 // schedule (i.e. doesn't depend on job state). 143 // schedule (i.e. doesn't depend on job state).
55 // - "with 10s interval": runs invocations in a loop, waiting 10s afte r 144 // - "with 10s interval": runs invocations in a loop, waiting 10s afte r
56 // finishing invocation before starting a new one. This is relative 145 // finishing invocation before starting a new one. This is relative
57 // schedule. Overruns are not possible. 146 // schedule. Overruns are not possible.
58 // - "continuously" is alias for "with 0s interval", meaning the job w ill 147 // - "continuously" is alias for "with 0s interval", meaning the job w ill
59 // run in a loop without any pauses. 148 // run in a loop without any pauses.
60 » // - "triggered" schedule indicates that job is always started via "Ru n now" 149 » // - "triggered" schedule indicates that job is only started via "Run now"
61 // button or via a trigger. 150 // button or via a trigger.
62 // 151 //
63 // Default is "triggered". 152 // Default is "triggered".
64 Schedule string `protobuf:"bytes,2,opt,name=schedule" json:"schedule,omi tempty"` 153 Schedule string `protobuf:"bytes,2,opt,name=schedule" json:"schedule,omi tempty"`
65 // Disabled is true to disable this job. 154 // Disabled is true to disable this job.
66 Disabled bool `protobuf:"varint,3,opt,name=disabled" json:"disabled,omit empty"` 155 Disabled bool `protobuf:"varint,3,opt,name=disabled" json:"disabled,omit empty"`
67 // Task defines what exactly to execute. 156 // Task defines what exactly to execute.
68 // 157 //
69 // TODO(vadimsh): Remove this field once all configs are updated not to 158 // TODO(vadimsh): Remove this field once all configs are updated not to
70 // use it. 159 // use it.
71 Task *TaskDefWrapper `protobuf:"bytes,4,opt,name=task" json:"task,omitem pty"` 160 Task *TaskDefWrapper `protobuf:"bytes,4,opt,name=task" json:"task,omitem pty"`
161 // List of access control rules for the Job.
162 // The order does not matter.
163 // There can be at most 32 different acls for a Job, including those fro m
164 // acl_sets.
165 Acls []*Acl `protobuf:"bytes,5,rep,name=acls" json:"acls,omitempty"`
166 // A list of ACL set names. Each ACL in each referenced ACL set will be
167 // included in this Job.
168 // The order does not matter.
169 AclSets []string `protobuf:"bytes,6,rep,name=acl_sets,json=aclSets" json :"acl_sets,omitempty"`
72 // Noop is used for testing. It is "do nothing" task. 170 // Noop is used for testing. It is "do nothing" task.
73 Noop *NoopTask `protobuf:"bytes,100,opt,name=noop" json:"noop,omitempty" ` 171 Noop *NoopTask `protobuf:"bytes,100,opt,name=noop" json:"noop,omitempty" `
74 // UrlFetch can be used to make a simple HTTP call. 172 // UrlFetch can be used to make a simple HTTP call.
75 UrlFetch *UrlFetchTask `protobuf:"bytes,101,opt,name=url_fetch,json=urlF etch" json:"url_fetch,omitempty"` 173 UrlFetch *UrlFetchTask `protobuf:"bytes,101,opt,name=url_fetch,json=urlF etch" json:"url_fetch,omitempty"`
76 // SwarmingTask can be used to schedule swarming job. 174 // SwarmingTask can be used to schedule swarming job.
77 Swarming *SwarmingTask `protobuf:"bytes,102,opt,name=swarming" json:"swa rming,omitempty"` 175 Swarming *SwarmingTask `protobuf:"bytes,102,opt,name=swarming" json:"swa rming,omitempty"`
78 // BuildbucketTask can be used to schedule buildbucket job. 176 // BuildbucketTask can be used to schedule buildbucket job.
79 Buildbucket *BuildbucketTask `protobuf:"bytes,103,opt,name=buildbucket" json:"buildbucket,omitempty"` 177 Buildbucket *BuildbucketTask `protobuf:"bytes,103,opt,name=buildbucket" json:"buildbucket,omitempty"`
80 } 178 }
81 179
82 func (m *Job) Reset() { *m = Job{} } 180 func (m *Job) Reset() { *m = Job{} }
83 func (m *Job) String() string { return proto.CompactTextString(m) } 181 func (m *Job) String() string { return proto.CompactTextString(m) }
84 func (*Job) ProtoMessage() {} 182 func (*Job) ProtoMessage() {}
85 func (*Job) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } 183 func (*Job) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
86 184
87 func (m *Job) GetId() string { 185 func (m *Job) GetId() string {
88 if m != nil { 186 if m != nil {
89 return m.Id 187 return m.Id
90 } 188 }
91 return "" 189 return ""
92 } 190 }
93 191
94 func (m *Job) GetSchedule() string { 192 func (m *Job) GetSchedule() string {
95 if m != nil { 193 if m != nil {
96 return m.Schedule 194 return m.Schedule
97 } 195 }
98 return "" 196 return ""
99 } 197 }
100 198
101 func (m *Job) GetDisabled() bool { 199 func (m *Job) GetDisabled() bool {
102 if m != nil { 200 if m != nil {
103 return m.Disabled 201 return m.Disabled
104 } 202 }
105 return false 203 return false
106 } 204 }
107 205
108 func (m *Job) GetTask() *TaskDefWrapper { 206 func (m *Job) GetTask() *TaskDefWrapper {
109 if m != nil { 207 if m != nil {
110 return m.Task 208 return m.Task
111 } 209 }
112 return nil 210 return nil
113 } 211 }
114 212
213 func (m *Job) GetAcls() []*Acl {
214 if m != nil {
215 return m.Acls
216 }
217 return nil
218 }
219
220 func (m *Job) GetAclSets() []string {
221 if m != nil {
222 return m.AclSets
223 }
224 return nil
225 }
226
115 func (m *Job) GetNoop() *NoopTask { 227 func (m *Job) GetNoop() *NoopTask {
116 if m != nil { 228 if m != nil {
117 return m.Noop 229 return m.Noop
118 } 230 }
119 return nil 231 return nil
120 } 232 }
121 233
122 func (m *Job) GetUrlFetch() *UrlFetchTask { 234 func (m *Job) GetUrlFetch() *UrlFetchTask {
123 if m != nil { 235 if m != nil {
124 return m.UrlFetch 236 return m.UrlFetch
(...skipping 24 matching lines...) Expand all
149 // 261 //
150 // Must match '^[0-9A-Za-z_\-\.]{1,100}$'. It's in the same namespace as 262 // Must match '^[0-9A-Za-z_\-\.]{1,100}$'. It's in the same namespace as
151 // regular jobs. 263 // regular jobs.
152 Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` 264 Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
153 // Schedule describes when to run this triggering job. 265 // Schedule describes when to run this triggering job.
154 // 266 //
155 // See Job.schedule fro more info. Default is "with 30s interval". 267 // See Job.schedule fro more info. Default is "with 30s interval".
156 Schedule string `protobuf:"bytes,2,opt,name=schedule" json:"schedule,omi tempty"` 268 Schedule string `protobuf:"bytes,2,opt,name=schedule" json:"schedule,omi tempty"`
157 // Disabled is true to disable this job. 269 // Disabled is true to disable this job.
158 Disabled bool `protobuf:"varint,3,opt,name=disabled" json:"disabled,omit empty"` 270 Disabled bool `protobuf:"varint,3,opt,name=disabled" json:"disabled,omit empty"`
271 // List of access control rules for the Job.
272 // The order does not matter.
273 // There can be at most 32 different acls for a Job, including those fro m
274 // acl_sets.
275 Acls []*Acl `protobuf:"bytes,4,rep,name=acls" json:"acls,omitempty"`
276 // A list of ACL set names. Each ACL in each referenced ACL set will be
277 // included in this Job.
278 // The order does not matter.
279 AclSets []string `protobuf:"bytes,5,rep,name=acl_sets,json=aclSets" json :"acl_sets,omitempty"`
159 // Noop is used for testing. It is "do nothing" trigger. 280 // Noop is used for testing. It is "do nothing" trigger.
160 Noop *NoopTask `protobuf:"bytes,100,opt,name=noop" json:"noop,omitempty" ` 281 Noop *NoopTask `protobuf:"bytes,100,opt,name=noop" json:"noop,omitempty" `
161 // Gitiles is used to trigger jobs for new commits on Gitiles. 282 // Gitiles is used to trigger jobs for new commits on Gitiles.
162 Gitiles *GitilesTask `protobuf:"bytes,101,opt,name=gitiles" json:"gitile s,omitempty"` 283 Gitiles *GitilesTask `protobuf:"bytes,101,opt,name=gitiles" json:"gitile s,omitempty"`
163 } 284 }
164 285
165 func (m *Trigger) Reset() { *m = Trigger{} } 286 func (m *Trigger) Reset() { *m = Trigger{} }
166 func (m *Trigger) String() string { return proto.CompactTextString(m) } 287 func (m *Trigger) String() string { return proto.CompactTextString(m) }
167 func (*Trigger) ProtoMessage() {} 288 func (*Trigger) ProtoMessage() {}
168 func (*Trigger) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } 289 func (*Trigger) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
169 290
170 func (m *Trigger) GetId() string { 291 func (m *Trigger) GetId() string {
171 if m != nil { 292 if m != nil {
172 return m.Id 293 return m.Id
173 } 294 }
174 return "" 295 return ""
175 } 296 }
176 297
177 func (m *Trigger) GetSchedule() string { 298 func (m *Trigger) GetSchedule() string {
178 if m != nil { 299 if m != nil {
179 return m.Schedule 300 return m.Schedule
180 } 301 }
181 return "" 302 return ""
182 } 303 }
183 304
184 func (m *Trigger) GetDisabled() bool { 305 func (m *Trigger) GetDisabled() bool {
185 if m != nil { 306 if m != nil {
186 return m.Disabled 307 return m.Disabled
187 } 308 }
188 return false 309 return false
189 } 310 }
190 311
312 func (m *Trigger) GetAcls() []*Acl {
313 if m != nil {
314 return m.Acls
315 }
316 return nil
317 }
318
319 func (m *Trigger) GetAclSets() []string {
320 if m != nil {
321 return m.AclSets
322 }
323 return nil
324 }
325
191 func (m *Trigger) GetNoop() *NoopTask { 326 func (m *Trigger) GetNoop() *NoopTask {
192 if m != nil { 327 if m != nil {
193 return m.Noop 328 return m.Noop
194 } 329 }
195 return nil 330 return nil
196 } 331 }
197 332
198 func (m *Trigger) GetGitiles() *GitilesTask { 333 func (m *Trigger) GetGitiles() *GitilesTask {
199 if m != nil { 334 if m != nil {
200 return m.Gitiles 335 return m.Gitiles
201 } 336 }
202 return nil 337 return nil
203 } 338 }
204 339
205 // NoopTask is used for testing. It is "do nothing" task. 340 // NoopTask is used for testing. It is "do nothing" task.
206 type NoopTask struct { 341 type NoopTask struct {
207 } 342 }
208 343
209 func (m *NoopTask) Reset() { *m = NoopTask{} } 344 func (m *NoopTask) Reset() { *m = NoopTask{} }
210 func (m *NoopTask) String() string { return proto.CompactTextString(m ) } 345 func (m *NoopTask) String() string { return proto.CompactTextString(m ) }
211 func (*NoopTask) ProtoMessage() {} 346 func (*NoopTask) ProtoMessage() {}
212 func (*NoopTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } 347 func (*NoopTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
213 348
214 // GitilesTask specifies parameters of Swarming-based jobs. 349 // GitilesTask specifies parameters of Swarming-based jobs.
215 type GitilesTask struct { 350 type GitilesTask struct {
216 // Repo is the URL of the Gitiles repository. 351 // Repo is the URL of the Gitiles repository.
217 Repo string `protobuf:"bytes,1,opt,name=repo" json:"repo,omitempty"` 352 Repo string `protobuf:"bytes,1,opt,name=repo" json:"repo,omitempty"`
218 // List of Git references to track. 353 // List of Git references to track.
219 Refs []string `protobuf:"bytes,2,rep,name=refs" json:"refs,omitempty"` 354 Refs []string `protobuf:"bytes,2,rep,name=refs" json:"refs,omitempty"`
220 } 355 }
221 356
222 func (m *GitilesTask) Reset() { *m = GitilesTask{} } 357 func (m *GitilesTask) Reset() { *m = GitilesTask{} }
223 func (m *GitilesTask) String() string { return proto.CompactTextStrin g(m) } 358 func (m *GitilesTask) String() string { return proto.CompactTextStrin g(m) }
224 func (*GitilesTask) ProtoMessage() {} 359 func (*GitilesTask) ProtoMessage() {}
225 func (*GitilesTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []int {3} } 360 func (*GitilesTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []int {5} }
226 361
227 func (m *GitilesTask) GetRepo() string { 362 func (m *GitilesTask) GetRepo() string {
228 if m != nil { 363 if m != nil {
229 return m.Repo 364 return m.Repo
230 } 365 }
231 return "" 366 return ""
232 } 367 }
233 368
234 func (m *GitilesTask) GetRefs() []string { 369 func (m *GitilesTask) GetRefs() []string {
235 if m != nil { 370 if m != nil {
236 return m.Refs 371 return m.Refs
237 } 372 }
238 return nil 373 return nil
239 } 374 }
240 375
241 // UrlFetchTask specifies parameters for simple HTTP call. 376 // UrlFetchTask specifies parameters for simple HTTP call.
242 type UrlFetchTask struct { 377 type UrlFetchTask struct {
243 // Method is HTTP method to use, such as "GET" or "POST". Default is "GE T". 378 // Method is HTTP method to use, such as "GET" or "POST". Default is "GE T".
244 Method string `protobuf:"bytes,1,opt,name=method" json:"method,omitempty "` 379 Method string `protobuf:"bytes,1,opt,name=method" json:"method,omitempty "`
245 // Url to send the request to. 380 // Url to send the request to.
246 Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` 381 Url string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
247 // Timeout is how long to wait for request to complete. Default is 60 se c. 382 // Timeout is how long to wait for request to complete. Default is 60 se c.
248 TimeoutSec int32 `protobuf:"varint,3,opt,name=timeout_sec,json=timeoutSe c" json:"timeout_sec,omitempty"` 383 TimeoutSec int32 `protobuf:"varint,3,opt,name=timeout_sec,json=timeoutSe c" json:"timeout_sec,omitempty"`
249 } 384 }
250 385
251 func (m *UrlFetchTask) Reset() { *m = UrlFetchTask{} } 386 func (m *UrlFetchTask) Reset() { *m = UrlFetchTask{} }
252 func (m *UrlFetchTask) String() string { return proto.CompactTextStri ng(m) } 387 func (m *UrlFetchTask) String() string { return proto.CompactTextStri ng(m) }
253 func (*UrlFetchTask) ProtoMessage() {} 388 func (*UrlFetchTask) ProtoMessage() {}
254 func (*UrlFetchTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []in t{4} } 389 func (*UrlFetchTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []in t{6} }
255 390
256 func (m *UrlFetchTask) GetMethod() string { 391 func (m *UrlFetchTask) GetMethod() string {
257 if m != nil { 392 if m != nil {
258 return m.Method 393 return m.Method
259 } 394 }
260 return "" 395 return ""
261 } 396 }
262 397
263 func (m *UrlFetchTask) GetUrl() string { 398 func (m *UrlFetchTask) GetUrl() string {
264 if m != nil { 399 if m != nil {
(...skipping 28 matching lines...) Expand all
293 Priority int32 `protobuf:"varint,8,opt,name=priority" json:"priority,omi tempty"` 428 Priority int32 `protobuf:"varint,8,opt,name=priority" json:"priority,omi tempty"`
294 // Timeouts. All optional. The scheduler will set reasonable default val ues. 429 // Timeouts. All optional. The scheduler will set reasonable default val ues.
295 ExecutionTimeoutSecs int32 `protobuf:"varint,9,opt,name=execution_timeou t_secs,json=executionTimeoutSecs" json:"execution_timeout_secs,omitempty"` 430 ExecutionTimeoutSecs int32 `protobuf:"varint,9,opt,name=execution_timeou t_secs,json=executionTimeoutSecs" json:"execution_timeout_secs,omitempty"`
296 GracePeriodSecs int32 `protobuf:"varint,10,opt,name=grace_period_se cs,json=gracePeriodSecs" json:"grace_period_secs,omitempty"` 431 GracePeriodSecs int32 `protobuf:"varint,10,opt,name=grace_period_se cs,json=gracePeriodSecs" json:"grace_period_secs,omitempty"`
297 IoTimeoutSecs int32 `protobuf:"varint,11,opt,name=io_timeout_secs ,json=ioTimeoutSecs" json:"io_timeout_secs,omitempty"` 432 IoTimeoutSecs int32 `protobuf:"varint,11,opt,name=io_timeout_secs ,json=ioTimeoutSecs" json:"io_timeout_secs,omitempty"`
298 } 433 }
299 434
300 func (m *SwarmingTask) Reset() { *m = SwarmingTask{} } 435 func (m *SwarmingTask) Reset() { *m = SwarmingTask{} }
301 func (m *SwarmingTask) String() string { return proto.CompactTextStri ng(m) } 436 func (m *SwarmingTask) String() string { return proto.CompactTextStri ng(m) }
302 func (*SwarmingTask) ProtoMessage() {} 437 func (*SwarmingTask) ProtoMessage() {}
303 func (*SwarmingTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []in t{5} } 438 func (*SwarmingTask) Descriptor() ([]byte, []int) { return fileDescriptor0, []in t{7} }
304 439
305 func (m *SwarmingTask) GetServer() string { 440 func (m *SwarmingTask) GetServer() string {
306 if m != nil { 441 if m != nil {
307 return m.Server 442 return m.Server
308 } 443 }
309 return "" 444 return ""
310 } 445 }
311 446
312 func (m *SwarmingTask) GetCommand() []string { 447 func (m *SwarmingTask) GetCommand() []string {
313 if m != nil { 448 if m != nil {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 // an .isolated file 518 // an .isolated file
384 type SwarmingTask_IsolatedRef struct { 519 type SwarmingTask_IsolatedRef struct {
385 Isolated string `protobuf:"bytes,1,opt,name=isolated" json:"isolat ed,omitempty"` 520 Isolated string `protobuf:"bytes,1,opt,name=isolated" json:"isolat ed,omitempty"`
386 IsolatedServer string `protobuf:"bytes,2,opt,name=isolated_server,json=i solatedServer" json:"isolated_server,omitempty"` 521 IsolatedServer string `protobuf:"bytes,2,opt,name=isolated_server,json=i solatedServer" json:"isolated_server,omitempty"`
387 Namespace string `protobuf:"bytes,3,opt,name=namespace" json:"names pace,omitempty"` 522 Namespace string `protobuf:"bytes,3,opt,name=namespace" json:"names pace,omitempty"`
388 } 523 }
389 524
390 func (m *SwarmingTask_IsolatedRef) Reset() { *m = SwarmingTas k_IsolatedRef{} } 525 func (m *SwarmingTask_IsolatedRef) Reset() { *m = SwarmingTas k_IsolatedRef{} }
391 func (m *SwarmingTask_IsolatedRef) String() string { return proto.Com pactTextString(m) } 526 func (m *SwarmingTask_IsolatedRef) String() string { return proto.Com pactTextString(m) }
392 func (*SwarmingTask_IsolatedRef) ProtoMessage() {} 527 func (*SwarmingTask_IsolatedRef) ProtoMessage() {}
393 func (*SwarmingTask_IsolatedRef) Descriptor() ([]byte, []int) { return fileDescr iptor0, []int{5, 0} } 528 func (*SwarmingTask_IsolatedRef) Descriptor() ([]byte, []int) { return fileDescr iptor0, []int{7, 0} }
394 529
395 func (m *SwarmingTask_IsolatedRef) GetIsolated() string { 530 func (m *SwarmingTask_IsolatedRef) GetIsolated() string {
396 if m != nil { 531 if m != nil {
397 return m.Isolated 532 return m.Isolated
398 } 533 }
399 return "" 534 return ""
400 } 535 }
401 536
402 func (m *SwarmingTask_IsolatedRef) GetIsolatedServer() string { 537 func (m *SwarmingTask_IsolatedRef) GetIsolatedServer() string {
403 if m != nil { 538 if m != nil {
(...skipping 19 matching lines...) Expand all
423 Builder string `protobuf:"bytes,3,opt,name=builder" json:"builder,omitem pty"` 558 Builder string `protobuf:"bytes,3,opt,name=builder" json:"builder,omitem pty"`
424 // Properties is arbitrary "key:value" pairs describing the task. 559 // Properties is arbitrary "key:value" pairs describing the task.
425 Properties []string `protobuf:"bytes,4,rep,name=properties" json:"proper ties,omitempty"` 560 Properties []string `protobuf:"bytes,4,rep,name=properties" json:"proper ties,omitempty"`
426 // Tags is a list of tags (as "key:value" pairs) to assign to the task. 561 // Tags is a list of tags (as "key:value" pairs) to assign to the task.
427 Tags []string `protobuf:"bytes,5,rep,name=tags" json:"tags,omitempty"` 562 Tags []string `protobuf:"bytes,5,rep,name=tags" json:"tags,omitempty"`
428 } 563 }
429 564
430 func (m *BuildbucketTask) Reset() { *m = BuildbucketTask{} } 565 func (m *BuildbucketTask) Reset() { *m = BuildbucketTask{} }
431 func (m *BuildbucketTask) String() string { return proto.CompactTextS tring(m) } 566 func (m *BuildbucketTask) String() string { return proto.CompactTextS tring(m) }
432 func (*BuildbucketTask) ProtoMessage() {} 567 func (*BuildbucketTask) ProtoMessage() {}
433 func (*BuildbucketTask) Descriptor() ([]byte, []int) { return fileDescriptor0, [ ]int{6} } 568 func (*BuildbucketTask) Descriptor() ([]byte, []int) { return fileDescriptor0, [ ]int{8} }
434 569
435 func (m *BuildbucketTask) GetServer() string { 570 func (m *BuildbucketTask) GetServer() string {
436 if m != nil { 571 if m != nil {
437 return m.Server 572 return m.Server
438 } 573 }
439 return "" 574 return ""
440 } 575 }
441 576
442 func (m *BuildbucketTask) GetBucket() string { 577 func (m *BuildbucketTask) GetBucket() string {
443 if m != nil { 578 if m != nil {
(...skipping 23 matching lines...) Expand all
467 return nil 602 return nil
468 } 603 }
469 604
470 // ProjectConfig defines a schema for config file that describe jobs belonging 605 // ProjectConfig defines a schema for config file that describe jobs belonging
471 // to some project. 606 // to some project.
472 type ProjectConfig struct { 607 type ProjectConfig struct {
473 // Job is a set of jobs defined in the project. 608 // Job is a set of jobs defined in the project.
474 Job []*Job `protobuf:"bytes,1,rep,name=job" json:"job,omitempty"` 609 Job []*Job `protobuf:"bytes,1,rep,name=job" json:"job,omitempty"`
475 // Trigger is a set of triggering jobs defined in the project. 610 // Trigger is a set of triggering jobs defined in the project.
476 Trigger []*Trigger `protobuf:"bytes,2,rep,name=trigger" json:"trigger,om itempty"` 611 Trigger []*Trigger `protobuf:"bytes,2,rep,name=trigger" json:"trigger,om itempty"`
612 // A list of ACL sets. Names must be unique.
613 AclSets []*AclSet `protobuf:"bytes,3,rep,name=acl_sets,json=aclSets" jso n:"acl_sets,omitempty"`
477 } 614 }
478 615
479 func (m *ProjectConfig) Reset() { *m = ProjectConfig{} } 616 func (m *ProjectConfig) Reset() { *m = ProjectConfig{} }
480 func (m *ProjectConfig) String() string { return proto.CompactTextStr ing(m) } 617 func (m *ProjectConfig) String() string { return proto.CompactTextStr ing(m) }
481 func (*ProjectConfig) ProtoMessage() {} 618 func (*ProjectConfig) ProtoMessage() {}
482 func (*ProjectConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []i nt{7} } 619 func (*ProjectConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []i nt{9} }
483 620
484 func (m *ProjectConfig) GetJob() []*Job { 621 func (m *ProjectConfig) GetJob() []*Job {
485 if m != nil { 622 if m != nil {
486 return m.Job 623 return m.Job
487 } 624 }
488 return nil 625 return nil
489 } 626 }
490 627
491 func (m *ProjectConfig) GetTrigger() []*Trigger { 628 func (m *ProjectConfig) GetTrigger() []*Trigger {
492 if m != nil { 629 if m != nil {
493 return m.Trigger 630 return m.Trigger
494 } 631 }
495 return nil 632 return nil
496 } 633 }
497 634
635 func (m *ProjectConfig) GetAclSets() []*AclSet {
636 if m != nil {
637 return m.AclSets
638 }
639 return nil
640 }
641
498 // TaskDefWrapper is a union type of all possible tasks known to the scheduler. 642 // TaskDefWrapper is a union type of all possible tasks known to the scheduler.
499 // 643 //
500 // It is used internally when storing jobs in the datastore. 644 // It is used internally when storing jobs in the datastore.
501 // 645 //
502 // TODO(vadimsh): Remove '_task' suffixes once TaskDefWrapper is no longer 646 // TODO(vadimsh): Remove '_task' suffixes once TaskDefWrapper is no longer
503 // a part of 'Job' proto. 647 // a part of 'Job' proto.
504 type TaskDefWrapper struct { 648 type TaskDefWrapper struct {
505 Noop *NoopTask `protobuf:"bytes,1,opt,name=noop" json: "noop,omitempty"` 649 Noop *NoopTask `protobuf:"bytes,1,opt,name=noop" json: "noop,omitempty"`
506 UrlFetch *UrlFetchTask `protobuf:"bytes,2,opt,name=url_fetch,j son=urlFetch" json:"url_fetch,omitempty"` 650 UrlFetch *UrlFetchTask `protobuf:"bytes,2,opt,name=url_fetch,j son=urlFetch" json:"url_fetch,omitempty"`
507 SwarmingTask *SwarmingTask `protobuf:"bytes,3,opt,name=swarming_ta sk,json=swarmingTask" json:"swarming_task,omitempty"` 651 SwarmingTask *SwarmingTask `protobuf:"bytes,3,opt,name=swarming_ta sk,json=swarmingTask" json:"swarming_task,omitempty"`
508 BuildbucketTask *BuildbucketTask `protobuf:"bytes,4,opt,name=buildbucket _task,json=buildbucketTask" json:"buildbucket_task,omitempty"` 652 BuildbucketTask *BuildbucketTask `protobuf:"bytes,4,opt,name=buildbucket _task,json=buildbucketTask" json:"buildbucket_task,omitempty"`
509 GitilesTask *GitilesTask `protobuf:"bytes,5,opt,name=gitiles_tas k,json=gitilesTask" json:"gitiles_task,omitempty"` 653 GitilesTask *GitilesTask `protobuf:"bytes,5,opt,name=gitiles_tas k,json=gitilesTask" json:"gitiles_task,omitempty"`
510 } 654 }
511 655
512 func (m *TaskDefWrapper) Reset() { *m = TaskDefWrapper{} } 656 func (m *TaskDefWrapper) Reset() { *m = TaskDefWrapper{} }
513 func (m *TaskDefWrapper) String() string { return proto.CompactTextSt ring(m) } 657 func (m *TaskDefWrapper) String() string { return proto.CompactTextSt ring(m) }
514 func (*TaskDefWrapper) ProtoMessage() {} 658 func (*TaskDefWrapper) ProtoMessage() {}
515 func (*TaskDefWrapper) Descriptor() ([]byte, []int) { return fileDescriptor0, [] int{8} } 659 func (*TaskDefWrapper) Descriptor() ([]byte, []int) { return fileDescriptor0, [] int{10} }
516 660
517 func (m *TaskDefWrapper) GetNoop() *NoopTask { 661 func (m *TaskDefWrapper) GetNoop() *NoopTask {
518 if m != nil { 662 if m != nil {
519 return m.Noop 663 return m.Noop
520 } 664 }
521 return nil 665 return nil
522 } 666 }
523 667
524 func (m *TaskDefWrapper) GetUrlFetch() *UrlFetchTask { 668 func (m *TaskDefWrapper) GetUrlFetch() *UrlFetchTask {
525 if m != nil { 669 if m != nil {
(...skipping 17 matching lines...) Expand all
543 } 687 }
544 688
545 func (m *TaskDefWrapper) GetGitilesTask() *GitilesTask { 689 func (m *TaskDefWrapper) GetGitilesTask() *GitilesTask {
546 if m != nil { 690 if m != nil {
547 return m.GitilesTask 691 return m.GitilesTask
548 } 692 }
549 return nil 693 return nil
550 } 694 }
551 695
552 func init() { 696 func init() {
697 proto.RegisterType((*Acl)(nil), "messages.Acl")
698 proto.RegisterType((*AclSet)(nil), "messages.AclSet")
553 proto.RegisterType((*Job)(nil), "messages.Job") 699 proto.RegisterType((*Job)(nil), "messages.Job")
554 proto.RegisterType((*Trigger)(nil), "messages.Trigger") 700 proto.RegisterType((*Trigger)(nil), "messages.Trigger")
555 proto.RegisterType((*NoopTask)(nil), "messages.NoopTask") 701 proto.RegisterType((*NoopTask)(nil), "messages.NoopTask")
556 proto.RegisterType((*GitilesTask)(nil), "messages.GitilesTask") 702 proto.RegisterType((*GitilesTask)(nil), "messages.GitilesTask")
557 proto.RegisterType((*UrlFetchTask)(nil), "messages.UrlFetchTask") 703 proto.RegisterType((*UrlFetchTask)(nil), "messages.UrlFetchTask")
558 proto.RegisterType((*SwarmingTask)(nil), "messages.SwarmingTask") 704 proto.RegisterType((*SwarmingTask)(nil), "messages.SwarmingTask")
559 proto.RegisterType((*SwarmingTask_IsolatedRef)(nil), "messages.SwarmingT ask.IsolatedRef") 705 proto.RegisterType((*SwarmingTask_IsolatedRef)(nil), "messages.SwarmingT ask.IsolatedRef")
560 proto.RegisterType((*BuildbucketTask)(nil), "messages.BuildbucketTask") 706 proto.RegisterType((*BuildbucketTask)(nil), "messages.BuildbucketTask")
561 proto.RegisterType((*ProjectConfig)(nil), "messages.ProjectConfig") 707 proto.RegisterType((*ProjectConfig)(nil), "messages.ProjectConfig")
562 proto.RegisterType((*TaskDefWrapper)(nil), "messages.TaskDefWrapper") 708 proto.RegisterType((*TaskDefWrapper)(nil), "messages.TaskDefWrapper")
709 proto.RegisterEnum("messages.Acl_Role", Acl_Role_name, Acl_Role_value)
563 } 710 }
564 711
565 func init() { 712 func init() {
566 proto.RegisterFile("github.com/luci/luci-go/scheduler/appengine/messages /cron.proto", fileDescriptor0) 713 proto.RegisterFile("github.com/luci/luci-go/scheduler/appengine/messages /cron.proto", fileDescriptor0)
567 } 714 }
568 715
569 var fileDescriptor0 = []byte{ 716 var fileDescriptor0 = []byte{
570 // 780 bytes of a gzipped FileDescriptorProto 717 // 922 bytes of a gzipped FileDescriptorProto
571 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x55, 0x4b, 0x6f, 0xf3, 0x44, 718 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x5d, 0x8f, 0xdb, 0x44,
572 0x14, 0x95, 0xf3, 0xce, 0x75, 0xd2, 0xb4, 0x23, 0x88, 0x86, 0x0a, 0x68, 0xe4, 0x45, 0x89, 0x78, 719 0x14, 0xc5, 0x71, 0xbe, 0x7c, 0xbd, 0xbb, 0x49, 0x47, 0xb0, 0x72, 0x2b, 0x4a, 0x83, 0x1f, 0x4a,
573 0x24, 0x52, 0x0a, 0x12, 0x52, 0x17, 0x08, 0x28, 0x20, 0xba, 0x40, 0x95, 0x5b, 0x84, 0x58, 0x20, 720 0x44, 0x21, 0x91, 0x52, 0x90, 0x90, 0xfa, 0x50, 0x05, 0x76, 0x41, 0xf4, 0xa1, 0x54, 0x93, 0x45,
574 0xcb, 0x8f, 0x6b, 0x67, 0x5a, 0xdb, 0x63, 0xcd, 0x8c, 0x4b, 0xd9, 0xb3, 0xe7, 0x7f, 0xf4, 0x9f, 721 0x15, 0x4f, 0x91, 0x63, 0xdf, 0x78, 0xa7, 0xeb, 0x78, 0xac, 0x99, 0x71, 0x29, 0xef, 0x48, 0x48,
575 0xf0, 0xaf, 0x90, 0xc7, 0xcf, 0x56, 0x7c, 0x55, 0x3f, 0xe9, 0xdb, 0x44, 0xbe, 0xe7, 0x9e, 0x7b, 722 0xbc, 0xf0, 0x3f, 0xf8, 0x65, 0xfc, 0x0c, 0x34, 0xe3, 0xf1, 0xc7, 0xae, 0xe8, 0xaa, 0x20, 0x5e,
576 0x67, 0xe6, 0xdc, 0x99, 0x13, 0xf8, 0x26, 0x62, 0x6a, 0x9f, 0x7b, 0x1b, 0x9f, 0x27, 0xdb, 0x38, 723 0xa2, 0xb9, 0xf7, 0x9e, 0x3b, 0x33, 0x3e, 0x67, 0xe6, 0x4c, 0xe0, 0x69, 0xca, 0xd4, 0x65, 0xb9,
577 0xf7, 0x99, 0xfe, 0xf9, 0x22, 0xe2, 0x5b, 0xe9, 0xef, 0x31, 0xc8, 0x63, 0x14, 0x5b, 0x37, 0xcb, 724 0x5b, 0xc4, 0xfc, 0xb0, 0xcc, 0xca, 0x98, 0x99, 0x9f, 0xcf, 0x53, 0xbe, 0x94, 0xf1, 0x25, 0x26,
578 0x30, 0x8d, 0x58, 0x8a, 0xdb, 0x04, 0xa5, 0x74, 0x23, 0x94, 0x5b, 0x5f, 0xf0, 0x74, 0x93, 0x09, 725 0x65, 0x86, 0x62, 0x19, 0x15, 0x05, 0xe6, 0x29, 0xcb, 0x71, 0x79, 0x40, 0x29, 0xa3, 0x14, 0xe5,
579 0xae, 0x38, 0x99, 0xd4, 0xa0, 0xf5, 0x6f, 0x0f, 0xfa, 0x97, 0xdc, 0x23, 0x07, 0xd0, 0x63, 0x01, 726 0x32, 0x16, 0x3c, 0x5f, 0x14, 0x82, 0x2b, 0x4e, 0xc6, 0x75, 0x32, 0xbc, 0x02, 0x77, 0x1d, 0x67,
580 0x35, 0x56, 0xc6, 0x7a, 0x6a, 0xf7, 0x58, 0x40, 0x8e, 0x61, 0x52, 0x37, 0xa3, 0x3d, 0x8d, 0x36, 727 0xe4, 0x21, 0xf4, 0x05, 0xcf, 0x30, 0x70, 0x66, 0xce, 0xfc, 0x64, 0x45, 0x16, 0x75, 0x7d, 0xb1,
581 0x71, 0x91, 0x0b, 0x98, 0x74, 0xbd, 0x18, 0x03, 0xda, 0x5f, 0x19, 0xeb, 0x89, 0xdd, 0xc4, 0xe4, 728 0x8e, 0xb3, 0x05, 0xe5, 0x19, 0x52, 0x53, 0x27, 0xf7, 0x01, 0x52, 0x11, 0xe5, 0x0a, 0x93, 0xad,
582 0x73, 0x18, 0x28, 0x57, 0xde, 0xd1, 0xc1, 0xca, 0x58, 0x9b, 0x3b, 0xba, 0xa9, 0x17, 0xda, 0xdc, 729 0xe2, 0x41, 0x6f, 0xe6, 0xcc, 0x3d, 0xea, 0xd9, 0xcc, 0x05, 0x0f, 0xef, 0x43, 0x5f, 0x83, 0x09,
583 0xb8, 0xf2, 0xee, 0x02, 0xc3, 0xdf, 0x44, 0xb1, 0x33, 0x61, 0x6b, 0x16, 0x39, 0x85, 0x41, 0xca, 730 0xc0, 0x90, 0x9e, 0xaf, 0xcf, 0xce, 0xe9, 0xf4, 0x3d, 0xe2, 0xc1, 0xe0, 0x87, 0x97, 0xcf, 0xcf,
584 0x79, 0x46, 0x03, 0xcd, 0x26, 0x2d, 0xfb, 0x17, 0xce, 0xb3, 0xa2, 0xc2, 0xd6, 0x79, 0x72, 0x06, 731 0xe9, 0xd4, 0x09, 0x9f, 0xc2, 0x70, 0x1d, 0x67, 0x1b, 0x54, 0x84, 0x40, 0x3f, 0x8f, 0x0e, 0xd5,
585 0xd3, 0x5c, 0xc4, 0x4e, 0x88, 0xca, 0xdf, 0x53, 0xd4, 0xe4, 0x65, 0x4b, 0xfe, 0x55, 0xc4, 0x3f, 732 0x7a, 0x1e, 0x35, 0x63, 0xf2, 0x31, 0xf4, 0xa3, 0x38, 0x93, 0x41, 0x6f, 0xe6, 0xce, 0xfd, 0xd5,
586 0x16, 0x19, 0x5d, 0x30, 0xc9, 0xab, 0x88, 0xec, 0x60, 0x22, 0xff, 0x74, 0x45, 0xc2, 0xd2, 0x88, 733 0xf1, 0xb5, 0x3d, 0x50, 0x53, 0x0a, 0x7f, 0x73, 0xc1, 0x7d, 0xc6, 0x77, 0xe4, 0x04, 0x7a, 0x2c,
587 0x86, 0xcf, 0x6b, 0xae, 0xab, 0x4c, 0x59, 0x53, 0xf3, 0xc8, 0x39, 0x98, 0x5e, 0xce, 0xe2, 0xc0, 734 0xb1, 0xcd, 0x3d, 0x96, 0x90, 0x7b, 0x30, 0xae, 0x3f, 0xdd, 0x6e, 0xaa, 0x89, 0x75, 0x2d, 0x61,
588 0xcb, 0xfd, 0x3b, 0x54, 0x34, 0xd2, 0x65, 0x1f, 0xb4, 0x65, 0xdf, 0xb5, 0x49, 0x5d, 0xd9, 0x65, 735 0x32, 0xda, 0x65, 0x98, 0x04, 0xee, 0xcc, 0x99, 0x8f, 0x69, 0x13, 0x93, 0xcf, 0xa0, 0xaf, 0x22,
589 0x5b, 0x8f, 0x06, 0x8c, 0x6f, 0x04, 0x8b, 0x22, 0x14, 0xef, 0x4c, 0xcf, 0xd7, 0x2a, 0xb4, 0x85, 736 0x79, 0x15, 0xf4, 0x67, 0xce, 0xdc, 0x5f, 0x05, 0xed, 0x92, 0x17, 0x91, 0xbc, 0x3a, 0xc3, 0xfd,
590 0x71, 0xc4, 0x14, 0x8b, 0x51, 0x56, 0xfa, 0xbc, 0xdf, 0x52, 0x7f, 0x2a, 0x13, 0x9a, 0x5d, 0xb3, 737 0x4b, 0xa1, 0x79, 0x14, 0xd4, 0xa0, 0x9a, 0x0d, 0x0e, 0xde, 0xba, 0x41, 0x72, 0x17, 0xc6, 0x51,
591 0x2c, 0x80, 0x49, 0xdd, 0xc2, 0xfa, 0x0a, 0xcc, 0x0e, 0x87, 0x10, 0x18, 0x08, 0xcc, 0x78, 0xb5, 738 0x9c, 0x6d, 0x25, 0x2a, 0x19, 0x0c, 0x67, 0xee, 0xdc, 0xa3, 0xa3, 0xc8, 0x7c, 0xb1, 0xd4, 0x14,
592 0x7b, 0xfd, 0x5d, 0x62, 0xa1, 0xa4, 0xbd, 0x55, 0xbf, 0xc4, 0x42, 0x69, 0xfd, 0x0e, 0xb3, 0xae, 739 0xe7, 0x9c, 0x17, 0x41, 0x62, 0xd6, 0xea, 0x50, 0xfc, 0x9c, 0xf3, 0x42, 0xaf, 0x47, 0x4d, 0x9d,
593 0xf4, 0x64, 0x09, 0xa3, 0x04, 0xd5, 0x9e, 0xd7, 0xe7, 0xae, 0x22, 0x72, 0x08, 0xfd, 0x5c, 0xc4, 740 0x3c, 0x06, 0xaf, 0x14, 0xd9, 0x76, 0x8f, 0x2a, 0xbe, 0x0c, 0xd0, 0x80, 0x4f, 0x5b, 0xf0, 0x8f,
594 0xd5, 0xb1, 0x8b, 0x4f, 0x72, 0x02, 0xa6, 0x62, 0x09, 0xf2, 0x5c, 0x39, 0x12, 0x7d, 0x7d, 0xe8, 741 0x22, 0xfb, 0x56, 0x57, 0x4c, 0xc3, 0xb8, 0xb4, 0x11, 0x59, 0xc1, 0x58, 0xfe, 0x1c, 0x89, 0x03,
595 0xa1, 0x0d, 0x15, 0x74, 0x8d, 0xbe, 0xf5, 0xf7, 0x00, 0x66, 0xdd, 0x11, 0x15, 0xbd, 0x25, 0x8a, 742 0xcb, 0xd3, 0x60, 0x7f, 0xb3, 0x67, 0x63, 0x2b, 0x55, 0x4f, 0x8d, 0x23, 0x4f, 0xc0, 0xdf, 0x95,
596 0x7b, 0x14, 0x75, 0xef, 0x32, 0x22, 0x14, 0xc6, 0x3e, 0x4f, 0x12, 0x37, 0x0d, 0xaa, 0xad, 0xd5, 743 0x2c, 0x4b, 0x76, 0x65, 0x7c, 0x85, 0x2a, 0x48, 0x4d, 0xdb, 0xdd, 0xb6, 0xed, 0xeb, 0xb6, 0x68,
597 0x21, 0xf9, 0x01, 0x66, 0x4c, 0xf2, 0xd8, 0x55, 0x18, 0x38, 0x02, 0x43, 0xbd, 0x88, 0xb9, 0xb3, 744 0x3a, 0xbb, 0xe8, 0xf0, 0x2f, 0x07, 0x46, 0x17, 0x82, 0xa5, 0x29, 0x8a, 0xff, 0x4d, 0x8d, 0x9a,
598 0xfe, 0xff, 0x0a, 0x6c, 0x7e, 0xae, 0xa8, 0x36, 0x86, 0xb6, 0xc9, 0xda, 0x80, 0x7c, 0x04, 0x80, 745 0xdf, 0xfe, 0xbb, 0xf1, 0x3b, 0xf8, 0x6f, 0xfc, 0x2e, 0x61, 0x94, 0x32, 0xc5, 0x32, 0x94, 0x96,
599 0x0f, 0x4a, 0xb8, 0x8e, 0x2b, 0x22, 0x49, 0x07, 0x7a, 0x8d, 0xa9, 0x46, 0xbe, 0x15, 0x91, 0x2c, 746 0xdd, 0x0f, 0x5a, 0xe8, 0x77, 0x55, 0xc1, 0xa0, 0x6b, 0x54, 0x08, 0x30, 0xae, 0xa7, 0x08, 0xbf,
600 0xce, 0x86, 0xe9, 0x3d, 0x1d, 0x6a, 0xbc, 0xf8, 0x24, 0x1f, 0x03, 0x04, 0x2c, 0xc1, 0x54, 0x32, 747 0x04, 0xbf, 0x83, 0xd1, 0xc7, 0x58, 0x60, 0xc1, 0xeb, 0x63, 0xac, 0xc7, 0x55, 0x6e, 0x5f, 0x1d,
601 0x9e, 0x4a, 0x3a, 0xd2, 0x89, 0x0e, 0x52, 0x28, 0xa9, 0xdc, 0x48, 0xd2, 0x71, 0xa9, 0x64, 0xf1, 748 0x63, 0x93, 0xdb, 0xcb, 0xf0, 0x27, 0x38, 0xea, 0x0a, 0x47, 0x4e, 0x61, 0x78, 0x40, 0x75, 0xc9,
602 0x5d, 0xdc, 0x80, 0x4c, 0x30, 0x2e, 0x98, 0xfa, 0x8b, 0x4e, 0xb4, 0x18, 0x4d, 0x4c, 0xbe, 0x84, 749 0x6b, 0xd6, 0x6c, 0x44, 0xa6, 0xe0, 0x96, 0x22, 0xb3, 0xa4, 0xe9, 0x21, 0x79, 0x00, 0xbe, 0x62,
603 0x25, 0x3e, 0xa0, 0x9f, 0x2b, 0xc6, 0x53, 0xa7, 0xa3, 0x9a, 0xa4, 0x53, 0xcd, 0x7c, 0xaf, 0xc9, 750 0x07, 0xe4, 0xa5, 0xda, 0x4a, 0x8c, 0x0d, 0x65, 0x03, 0x0a, 0x36, 0xb5, 0xc1, 0x38, 0xfc, 0xb5,
604 0xde, 0x34, 0xfa, 0x49, 0xf2, 0x29, 0x1c, 0x45, 0xc2, 0xf5, 0xd1, 0xc9, 0x50, 0x30, 0x1e, 0x94, 751 0x0f, 0x47, 0x5d, 0x81, 0xf5, 0xdc, 0x12, 0xc5, 0x6b, 0x14, 0xf5, 0xdc, 0x55, 0x44, 0x02, 0x18,
605 0x05, 0xa0, 0x0b, 0x16, 0x3a, 0x71, 0xa5, 0x71, 0xcd, 0x3d, 0x85, 0x05, 0xe3, 0x4f, 0x5b, 0x9b, 752 0xc5, 0xfc, 0x70, 0x88, 0xf2, 0xc4, 0x6e, 0xad, 0x0e, 0xc9, 0x39, 0x1c, 0x31, 0xc9, 0xb3, 0x48,
606 0x9a, 0x39, 0x67, 0xbc, 0xd3, 0xf3, 0x38, 0x03, 0xb3, 0x23, 0x53, 0xb1, 0xe9, 0x5a, 0xa8, 0x6a, 753 0xdf, 0x6a, 0x81, 0x7b, 0xb3, 0x88, 0xbf, 0x0a, 0xff, 0xf9, 0x00, 0x2d, 0xbe, 0xb7, 0x50, 0x8a,
607 0x28, 0x4d, 0x4c, 0x3e, 0x81, 0x45, 0x23, 0x7e, 0x35, 0xb7, 0x72, 0xfc, 0x07, 0x35, 0x7c, 0x5d, 754 0x7b, 0xea, 0xb3, 0x36, 0xd0, 0xde, 0x80, 0x6f, 0x94, 0x88, 0xb6, 0x91, 0x48, 0x2b, 0x11, 0x3d,
608 0xce, 0xef, 0x43, 0x98, 0xa6, 0x6e, 0x82, 0x32, 0x73, 0x7d, 0xd4, 0x23, 0x9a, 0xda, 0x2d, 0x60, 755 0xea, 0x99, 0xcc, 0x5a, 0xa4, 0x52, 0x7f, 0x1b, 0xe6, 0xaf, 0xad, 0x6a, 0x7a, 0x48, 0x3e, 0x02,
609 0xfd, 0x63, 0xc0, 0xe2, 0xd9, 0x93, 0x7b, 0xe3, 0x4d, 0x58, 0xc2, 0xa8, 0x7a, 0xb5, 0xe5, 0x4a, 756 0x48, 0xd8, 0x01, 0x73, 0xc9, 0x78, 0x5e, 0x5f, 0x97, 0x4e, 0x46, 0x33, 0xa9, 0xa2, 0x54, 0x06,
610 0x55, 0x54, 0xdc, 0x10, 0xfd, 0x48, 0x51, 0x54, 0xfd, 0xeb, 0xb0, 0x98, 0x54, 0x26, 0x78, 0x86, 757 0xa3, 0x8a, 0x49, 0x3d, 0xd6, 0xe7, 0xa7, 0x10, 0x8c, 0x0b, 0xa6, 0x7e, 0x09, 0xc6, 0x86, 0x8c,
611 0x42, 0x31, 0xac, 0x47, 0xdb, 0x41, 0x9a, 0x49, 0x0d, 0xdb, 0x49, 0x59, 0x7f, 0xc0, 0xfc, 0x4a, 758 0x26, 0x26, 0x5f, 0xc0, 0x29, 0xbe, 0xc1, 0xb8, 0x54, 0x8c, 0xe7, 0xdb, 0x0e, 0x6b, 0x32, 0xf0,
612 0xf0, 0x5b, 0xf4, 0xd5, 0xf7, 0x3c, 0x0d, 0x59, 0x44, 0x4e, 0xa0, 0x7f, 0xcb, 0x3d, 0x6a, 0xac, 759 0x0c, 0xf2, 0xfd, 0xa6, 0x7a, 0xd1, 0xf0, 0x27, 0xc9, 0xa7, 0x70, 0x27, 0x15, 0x51, 0x8c, 0xdb,
613 0xfa, 0x6b, 0x73, 0x37, 0x6f, 0x6f, 0xd7, 0x25, 0xf7, 0xec, 0x22, 0x43, 0x3e, 0x83, 0xb1, 0x2a, 760 0x02, 0x05, 0xe3, 0x49, 0xd5, 0x00, 0xa6, 0x61, 0x62, 0x0a, 0x2f, 0x4c, 0xde, 0x60, 0x1f, 0xc2,
614 0x4d, 0x41, 0xdf, 0x50, 0x73, 0x77, 0xd4, 0x31, 0xc5, 0x32, 0x61, 0xd7, 0x0c, 0xeb, 0xb1, 0x07, 761 0x84, 0xf1, 0xeb, 0x53, 0xfb, 0x06, 0x79, 0xcc, 0x78, 0x67, 0xce, 0x7b, 0x05, 0xf8, 0x1d, 0x9a,
615 0x07, 0x4f, 0x9d, 0xb2, 0x71, 0x00, 0xe3, 0x6d, 0x3c, 0xb2, 0xf7, 0x4a, 0x8f, 0x3c, 0x87, 0x79, 762 0xf4, 0xa6, 0x6b, 0xa2, 0xac, 0x28, 0x4d, 0x4c, 0x3e, 0x81, 0x49, 0x43, 0xbe, 0xd5, 0xad, 0x92,
616 0xed, 0x7d, 0x8e, 0xf6, 0xed, 0xfe, 0x8b, 0x46, 0x39, 0x93, 0xdd, 0x37, 0x79, 0x01, 0x87, 0x1d, 763 0xff, 0xa4, 0x4e, 0x6f, 0x2a, 0xfd, 0x3e, 0x04, 0x4f, 0xdb, 0xa4, 0x2c, 0xa2, 0x18, 0x8d, 0x44,
617 0xfb, 0x73, 0x3a, 0xbe, 0xff, 0x82, 0x63, 0x2e, 0xbc, 0x67, 0xf3, 0xfc, 0x1a, 0x66, 0x95, 0x27, 764 0x1e, 0x6d, 0x13, 0xe1, 0x1f, 0x0e, 0x4c, 0x6e, 0x5c, 0xd8, 0xb7, 0x9e, 0x84, 0x53, 0x18, 0xda,
618 0x95, 0x1d, 0x86, 0x2f, 0xd9, 0x97, 0x19, 0xb5, 0x81, 0x37, 0xd2, 0x7f, 0x66, 0x67, 0xff, 0x05, 765 0x3b, 0x5f, 0xad, 0x64, 0x23, 0x7d, 0x42, 0xcc, 0x15, 0x47, 0x61, 0xe7, 0xaf, 0x43, 0xad, 0x54,
619 0x00, 0x00, 0xff, 0xff, 0x1e, 0xac, 0x47, 0x5b, 0x0f, 0x07, 0x00, 0x00, 766 0x21, 0x78, 0x81, 0x42, 0x31, 0xac, 0xa5, 0xed, 0x64, 0x1a, 0xa5, 0x06, 0xad, 0x52, 0xe1, 0xef,
767 0x0e, 0x1c, 0xbf, 0x10, 0xfc, 0x15, 0xc6, 0xea, 0x1b, 0x9e, 0xef, 0x59, 0x4a, 0x1e, 0x80, 0xfb,
768 0x8a, 0xef, 0x02, 0xe7, 0xe6, 0xf5, 0x7e, 0xc6, 0x77, 0x54, 0x57, 0xc8, 0x23, 0x18, 0xa9, 0xca,
769 0x53, 0xec, 0x23, 0x70, 0xa7, 0xe3, 0xc8, 0x55, 0x81, 0xd6, 0x08, 0xf2, 0xa8, 0x63, 0x05, 0xae,
770 0x41, 0x4f, 0xaf, 0x39, 0xc6, 0x06, 0x55, 0x63, 0x0e, 0xe1, 0x9f, 0x3d, 0x38, 0xb9, 0xee, 0xe9,
771 0x8d, 0x5f, 0x38, 0xff, 0xc6, 0x8f, 0x7b, 0xef, 0xe8, 0xc7, 0x4f, 0xe0, 0xb8, 0xf6, 0xd9, 0xad,
772 0x79, 0x61, 0xdc, 0x5b, 0x4d, 0xf9, 0x48, 0x76, 0x6f, 0xf0, 0x19, 0x4c, 0x3b, 0x56, 0xbb, 0xed,
773 0xbc, 0x50, 0xb7, 0xb8, 0xf3, 0x64, 0x77, 0x43, 0xfd, 0xaf, 0xe0, 0xc8, 0x3a, 0x58, 0x35, 0xc3,
774 0xe0, 0x36, 0xb3, 0xf3, 0xd3, 0x36, 0xd8, 0x0d, 0xcd, 0x9f, 0x84, 0xc7, 0x7f, 0x07, 0x00, 0x00,
775 0xff, 0xff, 0x9f, 0x8d, 0xe3, 0xa2, 0x67, 0x08, 0x00, 0x00,
620 } 776 }
OLDNEW
« no previous file with comments | « scheduler/appengine/messages/cron.proto ('k') | scheduler/appengine/ui/index.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698