1// Copyright 2019 Google LLC.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16// Code generated by protoc-gen-go. DO NOT EDIT.
17// versions:
18// 	protoc-gen-go v1.26.0
19// 	protoc        v3.12.2
20// source: google/devtools/remoteworkers/v1test2/command.proto
21
22package remoteworkers
23
24import (
25	reflect "reflect"
26	sync "sync"
27
28	status "google.golang.org/genproto/googleapis/rpc/status"
29	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
30	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
31	anypb "google.golang.org/protobuf/types/known/anypb"
32	durationpb "google.golang.org/protobuf/types/known/durationpb"
33)
34
35const (
36	// Verify that this generated code is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
38	// Verify that runtime/protoimpl is sufficiently up-to-date.
39	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
40)
41
42// Describes a shell-style task to execute, suitable for providing as the Bots
43// interface's `Lease.payload` field.
44type CommandTask struct {
45	state         protoimpl.MessageState
46	sizeCache     protoimpl.SizeCache
47	unknownFields protoimpl.UnknownFields
48
49	// The inputs to the task.
50	Inputs *CommandTask_Inputs `protobuf:"bytes,1,opt,name=inputs,proto3" json:"inputs,omitempty"`
51	// The expected outputs from the task.
52	ExpectedOutputs *CommandTask_Outputs `protobuf:"bytes,4,opt,name=expected_outputs,json=expectedOutputs,proto3" json:"expected_outputs,omitempty"`
53	// The timeouts of this task.
54	Timeouts *CommandTask_Timeouts `protobuf:"bytes,5,opt,name=timeouts,proto3" json:"timeouts,omitempty"`
55}
56
57func (x *CommandTask) Reset() {
58	*x = CommandTask{}
59	if protoimpl.UnsafeEnabled {
60		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[0]
61		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
62		ms.StoreMessageInfo(mi)
63	}
64}
65
66func (x *CommandTask) String() string {
67	return protoimpl.X.MessageStringOf(x)
68}
69
70func (*CommandTask) ProtoMessage() {}
71
72func (x *CommandTask) ProtoReflect() protoreflect.Message {
73	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[0]
74	if protoimpl.UnsafeEnabled && x != nil {
75		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
76		if ms.LoadMessageInfo() == nil {
77			ms.StoreMessageInfo(mi)
78		}
79		return ms
80	}
81	return mi.MessageOf(x)
82}
83
84// Deprecated: Use CommandTask.ProtoReflect.Descriptor instead.
85func (*CommandTask) Descriptor() ([]byte, []int) {
86	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{0}
87}
88
89func (x *CommandTask) GetInputs() *CommandTask_Inputs {
90	if x != nil {
91		return x.Inputs
92	}
93	return nil
94}
95
96func (x *CommandTask) GetExpectedOutputs() *CommandTask_Outputs {
97	if x != nil {
98		return x.ExpectedOutputs
99	}
100	return nil
101}
102
103func (x *CommandTask) GetTimeouts() *CommandTask_Timeouts {
104	if x != nil {
105		return x.Timeouts
106	}
107	return nil
108}
109
110// DEPRECATED - use CommandResult instead.
111// Describes the actual outputs from the task.
112type CommandOutputs struct {
113	state         protoimpl.MessageState
114	sizeCache     protoimpl.SizeCache
115	unknownFields protoimpl.UnknownFields
116
117	// exit_code is only fully reliable if the status' code is OK. If the task
118	// exceeded its deadline or was cancelled, the process may still produce an
119	// exit code as it is cancelled, and this will be populated, but a successful
120	// (zero) is unlikely to be correct unless the status code is OK.
121	ExitCode int32 `protobuf:"varint,1,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
122	// The output files. The blob referenced by the digest should contain
123	// one of the following (implementation-dependent):
124	//    * A marshalled DirectoryMetadata of the returned filesystem
125	//    * A LUCI-style .isolated file
126	Outputs *Digest `protobuf:"bytes,2,opt,name=outputs,proto3" json:"outputs,omitempty"`
127}
128
129func (x *CommandOutputs) Reset() {
130	*x = CommandOutputs{}
131	if protoimpl.UnsafeEnabled {
132		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[1]
133		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
134		ms.StoreMessageInfo(mi)
135	}
136}
137
138func (x *CommandOutputs) String() string {
139	return protoimpl.X.MessageStringOf(x)
140}
141
142func (*CommandOutputs) ProtoMessage() {}
143
144func (x *CommandOutputs) ProtoReflect() protoreflect.Message {
145	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[1]
146	if protoimpl.UnsafeEnabled && x != nil {
147		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
148		if ms.LoadMessageInfo() == nil {
149			ms.StoreMessageInfo(mi)
150		}
151		return ms
152	}
153	return mi.MessageOf(x)
154}
155
156// Deprecated: Use CommandOutputs.ProtoReflect.Descriptor instead.
157func (*CommandOutputs) Descriptor() ([]byte, []int) {
158	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{1}
159}
160
161func (x *CommandOutputs) GetExitCode() int32 {
162	if x != nil {
163		return x.ExitCode
164	}
165	return 0
166}
167
168func (x *CommandOutputs) GetOutputs() *Digest {
169	if x != nil {
170		return x.Outputs
171	}
172	return nil
173}
174
175// DEPRECATED - use CommandResult instead.
176// Can be used as part of CompleteRequest.metadata, or are part of a more
177// sophisticated message.
178type CommandOverhead struct {
179	state         protoimpl.MessageState
180	sizeCache     protoimpl.SizeCache
181	unknownFields protoimpl.UnknownFields
182
183	// The elapsed time between calling Accept and Complete. The server will also
184	// have its own idea of what this should be, but this excludes the overhead of
185	// the RPCs and the bot response time.
186	Duration *durationpb.Duration `protobuf:"bytes,1,opt,name=duration,proto3" json:"duration,omitempty"`
187	// The amount of time *not* spent executing the command (ie
188	// uploading/downloading files).
189	Overhead *durationpb.Duration `protobuf:"bytes,2,opt,name=overhead,proto3" json:"overhead,omitempty"`
190}
191
192func (x *CommandOverhead) Reset() {
193	*x = CommandOverhead{}
194	if protoimpl.UnsafeEnabled {
195		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[2]
196		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
197		ms.StoreMessageInfo(mi)
198	}
199}
200
201func (x *CommandOverhead) String() string {
202	return protoimpl.X.MessageStringOf(x)
203}
204
205func (*CommandOverhead) ProtoMessage() {}
206
207func (x *CommandOverhead) ProtoReflect() protoreflect.Message {
208	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[2]
209	if protoimpl.UnsafeEnabled && x != nil {
210		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
211		if ms.LoadMessageInfo() == nil {
212			ms.StoreMessageInfo(mi)
213		}
214		return ms
215	}
216	return mi.MessageOf(x)
217}
218
219// Deprecated: Use CommandOverhead.ProtoReflect.Descriptor instead.
220func (*CommandOverhead) Descriptor() ([]byte, []int) {
221	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{2}
222}
223
224func (x *CommandOverhead) GetDuration() *durationpb.Duration {
225	if x != nil {
226		return x.Duration
227	}
228	return nil
229}
230
231func (x *CommandOverhead) GetOverhead() *durationpb.Duration {
232	if x != nil {
233		return x.Overhead
234	}
235	return nil
236}
237
238// All information about the execution of a command, suitable for providing as
239// the Bots interface's `Lease.result` field.
240type CommandResult struct {
241	state         protoimpl.MessageState
242	sizeCache     protoimpl.SizeCache
243	unknownFields protoimpl.UnknownFields
244
245	// An overall status for the command. For example, if the command timed out,
246	// this might have a code of DEADLINE_EXCEEDED; if it was killed by the OS for
247	// memory exhaustion, it might have a code of RESOURCE_EXHAUSTED.
248	Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
249	// The exit code of the process. An exit code of "0" should only be trusted if
250	// `status` has a code of OK (otherwise it may simply be unset).
251	ExitCode int32 `protobuf:"varint,2,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
252	// The output files. The blob referenced by the digest should contain
253	// one of the following (implementation-dependent):
254	//    * A marshalled DirectoryMetadata of the returned filesystem
255	//    * A LUCI-style .isolated file
256	Outputs *Digest `protobuf:"bytes,3,opt,name=outputs,proto3" json:"outputs,omitempty"`
257	// The elapsed time between calling Accept and Complete. The server will also
258	// have its own idea of what this should be, but this excludes the overhead of
259	// the RPCs and the bot response time.
260	//
261	// Deprecated: Do not use.
262	Duration *durationpb.Duration `protobuf:"bytes,4,opt,name=duration,proto3" json:"duration,omitempty"`
263	// The amount of time *not* spent executing the command (ie
264	// uploading/downloading files).
265	//
266	// Deprecated: Do not use.
267	Overhead *durationpb.Duration `protobuf:"bytes,5,opt,name=overhead,proto3" json:"overhead,omitempty"`
268	// Implementation-dependent metadata about the task. Both servers and bots
269	// may define messages which can be encoded here; bots are free to provide
270	// metadata in multiple formats, and servers are free to choose one or more
271	// of the values to process and ignore others. In particular, it is *not*
272	// considered an error for the bot to provide the server with a field that it
273	// doesn't know about.
274	Metadata []*anypb.Any `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty"`
275}
276
277func (x *CommandResult) Reset() {
278	*x = CommandResult{}
279	if protoimpl.UnsafeEnabled {
280		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[3]
281		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
282		ms.StoreMessageInfo(mi)
283	}
284}
285
286func (x *CommandResult) String() string {
287	return protoimpl.X.MessageStringOf(x)
288}
289
290func (*CommandResult) ProtoMessage() {}
291
292func (x *CommandResult) ProtoReflect() protoreflect.Message {
293	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[3]
294	if protoimpl.UnsafeEnabled && x != nil {
295		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
296		if ms.LoadMessageInfo() == nil {
297			ms.StoreMessageInfo(mi)
298		}
299		return ms
300	}
301	return mi.MessageOf(x)
302}
303
304// Deprecated: Use CommandResult.ProtoReflect.Descriptor instead.
305func (*CommandResult) Descriptor() ([]byte, []int) {
306	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{3}
307}
308
309func (x *CommandResult) GetStatus() *status.Status {
310	if x != nil {
311		return x.Status
312	}
313	return nil
314}
315
316func (x *CommandResult) GetExitCode() int32 {
317	if x != nil {
318		return x.ExitCode
319	}
320	return 0
321}
322
323func (x *CommandResult) GetOutputs() *Digest {
324	if x != nil {
325		return x.Outputs
326	}
327	return nil
328}
329
330// Deprecated: Do not use.
331func (x *CommandResult) GetDuration() *durationpb.Duration {
332	if x != nil {
333		return x.Duration
334	}
335	return nil
336}
337
338// Deprecated: Do not use.
339func (x *CommandResult) GetOverhead() *durationpb.Duration {
340	if x != nil {
341		return x.Overhead
342	}
343	return nil
344}
345
346func (x *CommandResult) GetMetadata() []*anypb.Any {
347	if x != nil {
348		return x.Metadata
349	}
350	return nil
351}
352
353// The metadata for a file. Similar to the equivalent message in the Remote
354// Execution API.
355type FileMetadata struct {
356	state         protoimpl.MessageState
357	sizeCache     protoimpl.SizeCache
358	unknownFields protoimpl.UnknownFields
359
360	// The path of this file. If this message is part of the
361	// CommandOutputs.outputs fields, the path is relative to the execution root
362	// and must correspond to an entry in CommandTask.outputs.files. If this
363	// message is part of a Directory message, then the path is relative to the
364	// root of that directory. All paths MUST be delimited by forward slashes.
365	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
366	// A pointer to the contents of the file. The method by which a client
367	// retrieves the contents from a CAS system is not defined here.
368	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
369	// If the file is small enough, its contents may also or alternatively be
370	// listed here.
371	Contents []byte `protobuf:"bytes,3,opt,name=contents,proto3" json:"contents,omitempty"`
372	// Properties of the file
373	IsExecutable bool `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
374}
375
376func (x *FileMetadata) Reset() {
377	*x = FileMetadata{}
378	if protoimpl.UnsafeEnabled {
379		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[4]
380		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
381		ms.StoreMessageInfo(mi)
382	}
383}
384
385func (x *FileMetadata) String() string {
386	return protoimpl.X.MessageStringOf(x)
387}
388
389func (*FileMetadata) ProtoMessage() {}
390
391func (x *FileMetadata) ProtoReflect() protoreflect.Message {
392	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[4]
393	if protoimpl.UnsafeEnabled && x != nil {
394		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
395		if ms.LoadMessageInfo() == nil {
396			ms.StoreMessageInfo(mi)
397		}
398		return ms
399	}
400	return mi.MessageOf(x)
401}
402
403// Deprecated: Use FileMetadata.ProtoReflect.Descriptor instead.
404func (*FileMetadata) Descriptor() ([]byte, []int) {
405	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{4}
406}
407
408func (x *FileMetadata) GetPath() string {
409	if x != nil {
410		return x.Path
411	}
412	return ""
413}
414
415func (x *FileMetadata) GetDigest() *Digest {
416	if x != nil {
417		return x.Digest
418	}
419	return nil
420}
421
422func (x *FileMetadata) GetContents() []byte {
423	if x != nil {
424		return x.Contents
425	}
426	return nil
427}
428
429func (x *FileMetadata) GetIsExecutable() bool {
430	if x != nil {
431		return x.IsExecutable
432	}
433	return false
434}
435
436// The metadata for a directory. Similar to the equivalent message in the Remote
437// Execution API.
438type DirectoryMetadata struct {
439	state         protoimpl.MessageState
440	sizeCache     protoimpl.SizeCache
441	unknownFields protoimpl.UnknownFields
442
443	// The path of the directory, as in
444	// [FileMetadata.path][google.devtools.remoteworkers.v1test2.FileMetadata.path].
445	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
446	// A pointer to the contents of the directory, in the form of a marshalled
447	// Directory message.
448	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
449}
450
451func (x *DirectoryMetadata) Reset() {
452	*x = DirectoryMetadata{}
453	if protoimpl.UnsafeEnabled {
454		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[5]
455		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
456		ms.StoreMessageInfo(mi)
457	}
458}
459
460func (x *DirectoryMetadata) String() string {
461	return protoimpl.X.MessageStringOf(x)
462}
463
464func (*DirectoryMetadata) ProtoMessage() {}
465
466func (x *DirectoryMetadata) ProtoReflect() protoreflect.Message {
467	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[5]
468	if protoimpl.UnsafeEnabled && x != nil {
469		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
470		if ms.LoadMessageInfo() == nil {
471			ms.StoreMessageInfo(mi)
472		}
473		return ms
474	}
475	return mi.MessageOf(x)
476}
477
478// Deprecated: Use DirectoryMetadata.ProtoReflect.Descriptor instead.
479func (*DirectoryMetadata) Descriptor() ([]byte, []int) {
480	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{5}
481}
482
483func (x *DirectoryMetadata) GetPath() string {
484	if x != nil {
485		return x.Path
486	}
487	return ""
488}
489
490func (x *DirectoryMetadata) GetDigest() *Digest {
491	if x != nil {
492		return x.Digest
493	}
494	return nil
495}
496
497// The CommandTask and CommandResult messages assume the existence of a service
498// that can serve blobs of content, identified by a hash and size known as a
499// "digest." The method by which these blobs may be retrieved is not specified
500// here, but a model implementation is in the Remote Execution API's
501// "ContentAddressibleStorage" interface.
502//
503// In the context of the RWAPI, a Digest will virtually always refer to the
504// contents of a file or a directory. The latter is represented by the
505// byte-encoded Directory message.
506type Digest struct {
507	state         protoimpl.MessageState
508	sizeCache     protoimpl.SizeCache
509	unknownFields protoimpl.UnknownFields
510
511	// A string-encoded hash (eg "1a2b3c", not the byte array [0x1a, 0x2b, 0x3c])
512	// using an implementation-defined hash algorithm (eg SHA-256).
513	Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
514	// The size of the contents. While this is not strictly required as part of an
515	// identifier (after all, any given hash will have exactly one canonical
516	// size), it's useful in almost all cases when one might want to send or
517	// retrieve blobs of content and is included here for this reason.
518	SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
519}
520
521func (x *Digest) Reset() {
522	*x = Digest{}
523	if protoimpl.UnsafeEnabled {
524		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[6]
525		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
526		ms.StoreMessageInfo(mi)
527	}
528}
529
530func (x *Digest) String() string {
531	return protoimpl.X.MessageStringOf(x)
532}
533
534func (*Digest) ProtoMessage() {}
535
536func (x *Digest) ProtoReflect() protoreflect.Message {
537	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[6]
538	if protoimpl.UnsafeEnabled && x != nil {
539		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
540		if ms.LoadMessageInfo() == nil {
541			ms.StoreMessageInfo(mi)
542		}
543		return ms
544	}
545	return mi.MessageOf(x)
546}
547
548// Deprecated: Use Digest.ProtoReflect.Descriptor instead.
549func (*Digest) Descriptor() ([]byte, []int) {
550	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{6}
551}
552
553func (x *Digest) GetHash() string {
554	if x != nil {
555		return x.Hash
556	}
557	return ""
558}
559
560func (x *Digest) GetSizeBytes() int64 {
561	if x != nil {
562		return x.SizeBytes
563	}
564	return 0
565}
566
567// Describes a blob of binary content with its digest.
568type Blob struct {
569	state         protoimpl.MessageState
570	sizeCache     protoimpl.SizeCache
571	unknownFields protoimpl.UnknownFields
572
573	// The digest of the blob. This should be verified by the receiver.
574	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
575	// The contents of the blob.
576	Contents []byte `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"`
577}
578
579func (x *Blob) Reset() {
580	*x = Blob{}
581	if protoimpl.UnsafeEnabled {
582		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[7]
583		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
584		ms.StoreMessageInfo(mi)
585	}
586}
587
588func (x *Blob) String() string {
589	return protoimpl.X.MessageStringOf(x)
590}
591
592func (*Blob) ProtoMessage() {}
593
594func (x *Blob) ProtoReflect() protoreflect.Message {
595	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[7]
596	if protoimpl.UnsafeEnabled && x != nil {
597		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
598		if ms.LoadMessageInfo() == nil {
599			ms.StoreMessageInfo(mi)
600		}
601		return ms
602	}
603	return mi.MessageOf(x)
604}
605
606// Deprecated: Use Blob.ProtoReflect.Descriptor instead.
607func (*Blob) Descriptor() ([]byte, []int) {
608	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{7}
609}
610
611func (x *Blob) GetDigest() *Digest {
612	if x != nil {
613		return x.Digest
614	}
615	return nil
616}
617
618func (x *Blob) GetContents() []byte {
619	if x != nil {
620		return x.Contents
621	}
622	return nil
623}
624
625// The contents of a directory. Similar to the equivalent message in the Remote
626// Execution API.
627type Directory struct {
628	state         protoimpl.MessageState
629	sizeCache     protoimpl.SizeCache
630	unknownFields protoimpl.UnknownFields
631
632	// The files in this directory
633	Files []*FileMetadata `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
634	// Any subdirectories
635	Directories []*DirectoryMetadata `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
636}
637
638func (x *Directory) Reset() {
639	*x = Directory{}
640	if protoimpl.UnsafeEnabled {
641		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[8]
642		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
643		ms.StoreMessageInfo(mi)
644	}
645}
646
647func (x *Directory) String() string {
648	return protoimpl.X.MessageStringOf(x)
649}
650
651func (*Directory) ProtoMessage() {}
652
653func (x *Directory) ProtoReflect() protoreflect.Message {
654	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[8]
655	if protoimpl.UnsafeEnabled && x != nil {
656		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
657		if ms.LoadMessageInfo() == nil {
658			ms.StoreMessageInfo(mi)
659		}
660		return ms
661	}
662	return mi.MessageOf(x)
663}
664
665// Deprecated: Use Directory.ProtoReflect.Descriptor instead.
666func (*Directory) Descriptor() ([]byte, []int) {
667	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{8}
668}
669
670func (x *Directory) GetFiles() []*FileMetadata {
671	if x != nil {
672		return x.Files
673	}
674	return nil
675}
676
677func (x *Directory) GetDirectories() []*DirectoryMetadata {
678	if x != nil {
679		return x.Directories
680	}
681	return nil
682}
683
684// Describes the inputs to a shell-style task.
685type CommandTask_Inputs struct {
686	state         protoimpl.MessageState
687	sizeCache     protoimpl.SizeCache
688	unknownFields protoimpl.UnknownFields
689
690	// The command itself to run (e.g., argv).
691	//
692	// This field should be passed directly to the underlying operating system,
693	// and so it must be sensible to that operating system. For example, on
694	// Windows, the first argument might be "C:\Windows\System32\ping.exe" -
695	// that is, using drive letters and backslashes. A command for a *nix
696	// system, on the other hand, would use forward slashes.
697	//
698	// All other fields in the RWAPI must consistently use forward slashes,
699	// since those fields may be interpretted by both the service and the bot.
700	Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
701	// The input filesystem to be set up prior to the task beginning. The
702	// contents should be a repeated set of FileMetadata messages though other
703	// formats are allowed if better for the implementation (eg, a LUCI-style
704	// .isolated file).
705	//
706	// This field is repeated since implementations might want to cache the
707	// metadata, in which case it may be useful to break up portions of the
708	// filesystem that change frequently (eg, specific input files) from those
709	// that don't (eg, standard header files).
710	Files []*Digest `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"`
711	// Inline contents for blobs expected to be needed by the bot to execute the
712	// task. For example, contents of entries in `files` or blobs that are
713	// indirectly referenced by an entry there.
714	//
715	// The bot should check against this list before downloading required task
716	// inputs to reduce the number of communications between itself and the
717	// remote CAS server.
718	InlineBlobs []*Blob `protobuf:"bytes,4,rep,name=inline_blobs,json=inlineBlobs,proto3" json:"inline_blobs,omitempty"`
719	// All environment variables required by the task.
720	EnvironmentVariables []*CommandTask_Inputs_EnvironmentVariable `protobuf:"bytes,3,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
721	// Directory from which a command is executed. It is a relative directory
722	// with respect to the bot's working directory (i.e., "./"). If it is
723	// non-empty, then it must exist under "./". Otherwise, "./" will be used.
724	WorkingDirectory string `protobuf:"bytes,5,opt,name=working_directory,json=workingDirectory,proto3" json:"working_directory,omitempty"`
725}
726
727func (x *CommandTask_Inputs) Reset() {
728	*x = CommandTask_Inputs{}
729	if protoimpl.UnsafeEnabled {
730		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[9]
731		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
732		ms.StoreMessageInfo(mi)
733	}
734}
735
736func (x *CommandTask_Inputs) String() string {
737	return protoimpl.X.MessageStringOf(x)
738}
739
740func (*CommandTask_Inputs) ProtoMessage() {}
741
742func (x *CommandTask_Inputs) ProtoReflect() protoreflect.Message {
743	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[9]
744	if protoimpl.UnsafeEnabled && x != nil {
745		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
746		if ms.LoadMessageInfo() == nil {
747			ms.StoreMessageInfo(mi)
748		}
749		return ms
750	}
751	return mi.MessageOf(x)
752}
753
754// Deprecated: Use CommandTask_Inputs.ProtoReflect.Descriptor instead.
755func (*CommandTask_Inputs) Descriptor() ([]byte, []int) {
756	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{0, 0}
757}
758
759func (x *CommandTask_Inputs) GetArguments() []string {
760	if x != nil {
761		return x.Arguments
762	}
763	return nil
764}
765
766func (x *CommandTask_Inputs) GetFiles() []*Digest {
767	if x != nil {
768		return x.Files
769	}
770	return nil
771}
772
773func (x *CommandTask_Inputs) GetInlineBlobs() []*Blob {
774	if x != nil {
775		return x.InlineBlobs
776	}
777	return nil
778}
779
780func (x *CommandTask_Inputs) GetEnvironmentVariables() []*CommandTask_Inputs_EnvironmentVariable {
781	if x != nil {
782		return x.EnvironmentVariables
783	}
784	return nil
785}
786
787func (x *CommandTask_Inputs) GetWorkingDirectory() string {
788	if x != nil {
789		return x.WorkingDirectory
790	}
791	return ""
792}
793
794// Describes the expected outputs of the command.
795type CommandTask_Outputs struct {
796	state         protoimpl.MessageState
797	sizeCache     protoimpl.SizeCache
798	unknownFields protoimpl.UnknownFields
799
800	// A list of expected files, relative to the execution root. All paths
801	// MUST be delimited by forward slashes.
802	Files []string `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
803	// A list of expected directories, relative to the execution root. All paths
804	// MUST be delimited by forward slashes.
805	Directories []string `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
806	// The destination to which any stdout should be sent. The method by which
807	// the bot should send the stream contents to that destination is not
808	// defined in this API. As examples, the destination could be a file
809	// referenced in the `files` field in this message, or it could be a URI
810	// that must be written via the ByteStream API.
811	StdoutDestination string `protobuf:"bytes,3,opt,name=stdout_destination,json=stdoutDestination,proto3" json:"stdout_destination,omitempty"`
812	// The destination to which any stderr should be sent. The method by which
813	// the bot should send the stream contents to that destination is not
814	// defined in this API. As examples, the destination could be a file
815	// referenced in the `files` field in this message, or it could be a URI
816	// that must be written via the ByteStream API.
817	StderrDestination string `protobuf:"bytes,4,opt,name=stderr_destination,json=stderrDestination,proto3" json:"stderr_destination,omitempty"`
818}
819
820func (x *CommandTask_Outputs) Reset() {
821	*x = CommandTask_Outputs{}
822	if protoimpl.UnsafeEnabled {
823		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[10]
824		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
825		ms.StoreMessageInfo(mi)
826	}
827}
828
829func (x *CommandTask_Outputs) String() string {
830	return protoimpl.X.MessageStringOf(x)
831}
832
833func (*CommandTask_Outputs) ProtoMessage() {}
834
835func (x *CommandTask_Outputs) ProtoReflect() protoreflect.Message {
836	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[10]
837	if protoimpl.UnsafeEnabled && x != nil {
838		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
839		if ms.LoadMessageInfo() == nil {
840			ms.StoreMessageInfo(mi)
841		}
842		return ms
843	}
844	return mi.MessageOf(x)
845}
846
847// Deprecated: Use CommandTask_Outputs.ProtoReflect.Descriptor instead.
848func (*CommandTask_Outputs) Descriptor() ([]byte, []int) {
849	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{0, 1}
850}
851
852func (x *CommandTask_Outputs) GetFiles() []string {
853	if x != nil {
854		return x.Files
855	}
856	return nil
857}
858
859func (x *CommandTask_Outputs) GetDirectories() []string {
860	if x != nil {
861		return x.Directories
862	}
863	return nil
864}
865
866func (x *CommandTask_Outputs) GetStdoutDestination() string {
867	if x != nil {
868		return x.StdoutDestination
869	}
870	return ""
871}
872
873func (x *CommandTask_Outputs) GetStderrDestination() string {
874	if x != nil {
875		return x.StderrDestination
876	}
877	return ""
878}
879
880// Describes the timeouts associated with this task.
881type CommandTask_Timeouts struct {
882	state         protoimpl.MessageState
883	sizeCache     protoimpl.SizeCache
884	unknownFields protoimpl.UnknownFields
885
886	// This specifies the maximum time that the task can run, excluding the
887	// time required to download inputs or upload outputs. That is, the worker
888	// will terminate the task if it runs longer than this.
889	Execution *durationpb.Duration `protobuf:"bytes,1,opt,name=execution,proto3" json:"execution,omitempty"`
890	// This specifies the maximum amount of time the task can be idle - that is,
891	// go without generating some output in either stdout or stderr. If the
892	// process is silent for more than the specified time, the worker will
893	// terminate the task.
894	Idle *durationpb.Duration `protobuf:"bytes,2,opt,name=idle,proto3" json:"idle,omitempty"`
895	// If the execution or IO timeouts are exceeded, the worker will try to
896	// gracefully terminate the task and return any existing logs. However,
897	// tasks may be hard-frozen in which case this process will fail. This
898	// timeout specifies how long to wait for a terminated task to shut down
899	// gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g.
900	// SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).
901	Shutdown *durationpb.Duration `protobuf:"bytes,3,opt,name=shutdown,proto3" json:"shutdown,omitempty"`
902}
903
904func (x *CommandTask_Timeouts) Reset() {
905	*x = CommandTask_Timeouts{}
906	if protoimpl.UnsafeEnabled {
907		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[11]
908		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
909		ms.StoreMessageInfo(mi)
910	}
911}
912
913func (x *CommandTask_Timeouts) String() string {
914	return protoimpl.X.MessageStringOf(x)
915}
916
917func (*CommandTask_Timeouts) ProtoMessage() {}
918
919func (x *CommandTask_Timeouts) ProtoReflect() protoreflect.Message {
920	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[11]
921	if protoimpl.UnsafeEnabled && x != nil {
922		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
923		if ms.LoadMessageInfo() == nil {
924			ms.StoreMessageInfo(mi)
925		}
926		return ms
927	}
928	return mi.MessageOf(x)
929}
930
931// Deprecated: Use CommandTask_Timeouts.ProtoReflect.Descriptor instead.
932func (*CommandTask_Timeouts) Descriptor() ([]byte, []int) {
933	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{0, 2}
934}
935
936func (x *CommandTask_Timeouts) GetExecution() *durationpb.Duration {
937	if x != nil {
938		return x.Execution
939	}
940	return nil
941}
942
943func (x *CommandTask_Timeouts) GetIdle() *durationpb.Duration {
944	if x != nil {
945		return x.Idle
946	}
947	return nil
948}
949
950func (x *CommandTask_Timeouts) GetShutdown() *durationpb.Duration {
951	if x != nil {
952		return x.Shutdown
953	}
954	return nil
955}
956
957// An environment variable required by this task.
958type CommandTask_Inputs_EnvironmentVariable struct {
959	state         protoimpl.MessageState
960	sizeCache     protoimpl.SizeCache
961	unknownFields protoimpl.UnknownFields
962
963	// The envvar name.
964	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
965	// The envvar value.
966	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
967}
968
969func (x *CommandTask_Inputs_EnvironmentVariable) Reset() {
970	*x = CommandTask_Inputs_EnvironmentVariable{}
971	if protoimpl.UnsafeEnabled {
972		mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[12]
973		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
974		ms.StoreMessageInfo(mi)
975	}
976}
977
978func (x *CommandTask_Inputs_EnvironmentVariable) String() string {
979	return protoimpl.X.MessageStringOf(x)
980}
981
982func (*CommandTask_Inputs_EnvironmentVariable) ProtoMessage() {}
983
984func (x *CommandTask_Inputs_EnvironmentVariable) ProtoReflect() protoreflect.Message {
985	mi := &file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[12]
986	if protoimpl.UnsafeEnabled && x != nil {
987		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
988		if ms.LoadMessageInfo() == nil {
989			ms.StoreMessageInfo(mi)
990		}
991		return ms
992	}
993	return mi.MessageOf(x)
994}
995
996// Deprecated: Use CommandTask_Inputs_EnvironmentVariable.ProtoReflect.Descriptor instead.
997func (*CommandTask_Inputs_EnvironmentVariable) Descriptor() ([]byte, []int) {
998	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP(), []int{0, 0, 0}
999}
1000
1001func (x *CommandTask_Inputs_EnvironmentVariable) GetName() string {
1002	if x != nil {
1003		return x.Name
1004	}
1005	return ""
1006}
1007
1008func (x *CommandTask_Inputs_EnvironmentVariable) GetValue() string {
1009	if x != nil {
1010		return x.Value
1011	}
1012	return ""
1013}
1014
1015var File_google_devtools_remoteworkers_v1test2_command_proto protoreflect.FileDescriptor
1016
1017var file_google_devtools_remoteworkers_v1test2_command_proto_rawDesc = []byte{
1018	0x0a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c,
1019	0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2f,
1020	0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e,
1021	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65,
1022	0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72,
1023	0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x1a, 0x19, 0x67, 0x6f,
1024	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e,
1025	0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
1026	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
1027	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
1028	0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1029	0x22, 0x9f, 0x08, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b,
1030	0x12, 0x51, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
1031	0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f,
1032	0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73,
1033	0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
1034	0x54, 0x61, 0x73, 0x6b, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x70,
1035	0x75, 0x74, 0x73, 0x12, 0x65, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
1036	0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e,
1037	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
1038	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31,
1039	0x74, 0x65, 0x73, 0x74, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x73,
1040	0x6b, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x65, 0x63,
1041	0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x08, 0x74, 0x69,
1042	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67,
1043	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72,
1044	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74,
1045	0x65, 0x73, 0x74, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x54, 0x61, 0x73, 0x6b,
1046	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x6f,
1047	0x75, 0x74, 0x73, 0x1a, 0xae, 0x03, 0x0a, 0x06, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x1c,
1048	0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
1049	0x09, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x05,
1050	0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f,
1051	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65,
1052	0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65,
1053	0x73, 0x74, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65,
1054	0x73, 0x12, 0x4e, 0x0a, 0x0c, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x62,
1055	0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1056	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
1057	0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2e,
1058	0x42, 0x6c, 0x6f, 0x62, 0x52, 0x0b, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x6c, 0x6f, 0x62,
1059	0x73, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e,
1060	0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
1061	0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f,
1062	0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72,
1063	0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
1064	0x64, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x2e, 0x45, 0x6e, 0x76,
1065	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65,
1066	0x52, 0x14, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72,
1067	0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e,
1068	0x67, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28,
1069	0x09, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
1070	0x6f, 0x72, 0x79, 0x1a, 0x3f, 0x0a, 0x13, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65,
1071	0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
1072	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14,
1073	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
1074	0x61, 0x6c, 0x75, 0x65, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73,
1075	0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
1076	0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74,
1077	0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x72,
1078	0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x74, 0x64, 0x6f,
1079	0x75, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
1080	0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x73, 0x74,
1081	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x74, 0x64, 0x65, 0x72,
1082	0x72, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20,
1083	0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x44, 0x65, 0x73, 0x74, 0x69,
1084	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa9, 0x01, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x6f,
1085	0x75, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
1086	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1087	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
1088	0x6e, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x04,
1089	0x69, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
1090	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
1091	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x73,
1092	0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
1093	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
1094	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f,
1095	0x77, 0x6e, 0x22, 0x76, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4f, 0x75, 0x74,
1096	0x70, 0x75, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64,
1097	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64,
1098	0x65, 0x12, 0x47, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01,
1099	0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74,
1100	0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65,
1101	0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73,
1102	0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0x7f, 0x0a, 0x0f, 0x43, 0x6f,
1103	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x12, 0x35, 0x0a,
1104	0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
1105	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
1106	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61,
1107	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64,
1108	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1109	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
1110	0x6e, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x22, 0xc9, 0x02, 0x0a, 0x0d,
1111	0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a,
1112	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
1113	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
1114	0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69,
1115	0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78,
1116	0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
1117	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1118	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
1119	0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x2e,
1120	0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12,
1121	0x39, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28,
1122	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1123	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01,
1124	0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x08, 0x6f, 0x76,
1125	0x65, 0x72, 0x68, 0x65, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
1126	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
1127	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6f, 0x76, 0x65,
1128	0x72, 0x68, 0x65, 0x61, 0x64, 0x12, 0x30, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
1129	0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1130	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x08, 0x6d,
1131	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaa, 0x01, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x65,
1132	0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
1133	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x45, 0x0a, 0x06,
1134	0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67,
1135	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72,
1136	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74,
1137	0x65, 0x73, 0x74, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67,
1138	0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18,
1139	0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12,
1140	0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65,
1141	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
1142	0x61, 0x62, 0x6c, 0x65, 0x22, 0x6e, 0x0a, 0x11, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72,
1143	0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
1144	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x45, 0x0a,
1145	0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
1146	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e,
1147	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31,
1148	0x74, 0x65, 0x73, 0x74, 0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69,
1149	0x67, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x12,
1150	0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61,
1151	0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
1152	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65,
1153	0x73, 0x22, 0x69, 0x0a, 0x04, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x45, 0x0a, 0x06, 0x64, 0x69, 0x67,
1154	0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1155	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
1156	0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74,
1157	0x32, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74,
1158	0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01,
1159	0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xb2, 0x01, 0x0a,
1160	0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x66, 0x69,
1161	0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1162	0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f,
1163	0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74,
1164	0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05,
1165	0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f,
1166	0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f,
1167	0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d,
1168	0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73,
1169	0x74, 0x32, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61,
1170	0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x65,
1171	0x73, 0x42, 0xea, 0x01, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1172	0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
1173	0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x42,
1174	0x15, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x43, 0x6f,
1175	0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x50, 0x01, 0x5a, 0x52, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1176	0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70,
1177	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f,
1178	0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77,
1179	0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x2f, 0x76, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3b, 0x72,
1180	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0xa2, 0x02, 0x02, 0x52,
1181	0x57, 0xaa, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x54, 0x6f,
1182	0x6f, 0x6c, 0x73, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72,
1183	0x73, 0x2e, 0x56, 0x31, 0x54, 0x65, 0x73, 0x74, 0x32, 0xca, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67,
1184	0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x77,
1185	0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x5c, 0x56, 0x31, 0x74, 0x65, 0x73, 0x74, 0x32, 0x62, 0x06,
1186	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1187}
1188
1189var (
1190	file_google_devtools_remoteworkers_v1test2_command_proto_rawDescOnce sync.Once
1191	file_google_devtools_remoteworkers_v1test2_command_proto_rawDescData = file_google_devtools_remoteworkers_v1test2_command_proto_rawDesc
1192)
1193
1194func file_google_devtools_remoteworkers_v1test2_command_proto_rawDescGZIP() []byte {
1195	file_google_devtools_remoteworkers_v1test2_command_proto_rawDescOnce.Do(func() {
1196		file_google_devtools_remoteworkers_v1test2_command_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_remoteworkers_v1test2_command_proto_rawDescData)
1197	})
1198	return file_google_devtools_remoteworkers_v1test2_command_proto_rawDescData
1199}
1200
1201var file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
1202var file_google_devtools_remoteworkers_v1test2_command_proto_goTypes = []interface{}{
1203	(*CommandTask)(nil),                            // 0: google.devtools.remoteworkers.v1test2.CommandTask
1204	(*CommandOutputs)(nil),                         // 1: google.devtools.remoteworkers.v1test2.CommandOutputs
1205	(*CommandOverhead)(nil),                        // 2: google.devtools.remoteworkers.v1test2.CommandOverhead
1206	(*CommandResult)(nil),                          // 3: google.devtools.remoteworkers.v1test2.CommandResult
1207	(*FileMetadata)(nil),                           // 4: google.devtools.remoteworkers.v1test2.FileMetadata
1208	(*DirectoryMetadata)(nil),                      // 5: google.devtools.remoteworkers.v1test2.DirectoryMetadata
1209	(*Digest)(nil),                                 // 6: google.devtools.remoteworkers.v1test2.Digest
1210	(*Blob)(nil),                                   // 7: google.devtools.remoteworkers.v1test2.Blob
1211	(*Directory)(nil),                              // 8: google.devtools.remoteworkers.v1test2.Directory
1212	(*CommandTask_Inputs)(nil),                     // 9: google.devtools.remoteworkers.v1test2.CommandTask.Inputs
1213	(*CommandTask_Outputs)(nil),                    // 10: google.devtools.remoteworkers.v1test2.CommandTask.Outputs
1214	(*CommandTask_Timeouts)(nil),                   // 11: google.devtools.remoteworkers.v1test2.CommandTask.Timeouts
1215	(*CommandTask_Inputs_EnvironmentVariable)(nil), // 12: google.devtools.remoteworkers.v1test2.CommandTask.Inputs.EnvironmentVariable
1216	(*durationpb.Duration)(nil),                    // 13: google.protobuf.Duration
1217	(*status.Status)(nil),                          // 14: google.rpc.Status
1218	(*anypb.Any)(nil),                              // 15: google.protobuf.Any
1219}
1220var file_google_devtools_remoteworkers_v1test2_command_proto_depIdxs = []int32{
1221	9,  // 0: google.devtools.remoteworkers.v1test2.CommandTask.inputs:type_name -> google.devtools.remoteworkers.v1test2.CommandTask.Inputs
1222	10, // 1: google.devtools.remoteworkers.v1test2.CommandTask.expected_outputs:type_name -> google.devtools.remoteworkers.v1test2.CommandTask.Outputs
1223	11, // 2: google.devtools.remoteworkers.v1test2.CommandTask.timeouts:type_name -> google.devtools.remoteworkers.v1test2.CommandTask.Timeouts
1224	6,  // 3: google.devtools.remoteworkers.v1test2.CommandOutputs.outputs:type_name -> google.devtools.remoteworkers.v1test2.Digest
1225	13, // 4: google.devtools.remoteworkers.v1test2.CommandOverhead.duration:type_name -> google.protobuf.Duration
1226	13, // 5: google.devtools.remoteworkers.v1test2.CommandOverhead.overhead:type_name -> google.protobuf.Duration
1227	14, // 6: google.devtools.remoteworkers.v1test2.CommandResult.status:type_name -> google.rpc.Status
1228	6,  // 7: google.devtools.remoteworkers.v1test2.CommandResult.outputs:type_name -> google.devtools.remoteworkers.v1test2.Digest
1229	13, // 8: google.devtools.remoteworkers.v1test2.CommandResult.duration:type_name -> google.protobuf.Duration
1230	13, // 9: google.devtools.remoteworkers.v1test2.CommandResult.overhead:type_name -> google.protobuf.Duration
1231	15, // 10: google.devtools.remoteworkers.v1test2.CommandResult.metadata:type_name -> google.protobuf.Any
1232	6,  // 11: google.devtools.remoteworkers.v1test2.FileMetadata.digest:type_name -> google.devtools.remoteworkers.v1test2.Digest
1233	6,  // 12: google.devtools.remoteworkers.v1test2.DirectoryMetadata.digest:type_name -> google.devtools.remoteworkers.v1test2.Digest
1234	6,  // 13: google.devtools.remoteworkers.v1test2.Blob.digest:type_name -> google.devtools.remoteworkers.v1test2.Digest
1235	4,  // 14: google.devtools.remoteworkers.v1test2.Directory.files:type_name -> google.devtools.remoteworkers.v1test2.FileMetadata
1236	5,  // 15: google.devtools.remoteworkers.v1test2.Directory.directories:type_name -> google.devtools.remoteworkers.v1test2.DirectoryMetadata
1237	6,  // 16: google.devtools.remoteworkers.v1test2.CommandTask.Inputs.files:type_name -> google.devtools.remoteworkers.v1test2.Digest
1238	7,  // 17: google.devtools.remoteworkers.v1test2.CommandTask.Inputs.inline_blobs:type_name -> google.devtools.remoteworkers.v1test2.Blob
1239	12, // 18: google.devtools.remoteworkers.v1test2.CommandTask.Inputs.environment_variables:type_name -> google.devtools.remoteworkers.v1test2.CommandTask.Inputs.EnvironmentVariable
1240	13, // 19: google.devtools.remoteworkers.v1test2.CommandTask.Timeouts.execution:type_name -> google.protobuf.Duration
1241	13, // 20: google.devtools.remoteworkers.v1test2.CommandTask.Timeouts.idle:type_name -> google.protobuf.Duration
1242	13, // 21: google.devtools.remoteworkers.v1test2.CommandTask.Timeouts.shutdown:type_name -> google.protobuf.Duration
1243	22, // [22:22] is the sub-list for method output_type
1244	22, // [22:22] is the sub-list for method input_type
1245	22, // [22:22] is the sub-list for extension type_name
1246	22, // [22:22] is the sub-list for extension extendee
1247	0,  // [0:22] is the sub-list for field type_name
1248}
1249
1250func init() { file_google_devtools_remoteworkers_v1test2_command_proto_init() }
1251func file_google_devtools_remoteworkers_v1test2_command_proto_init() {
1252	if File_google_devtools_remoteworkers_v1test2_command_proto != nil {
1253		return
1254	}
1255	if !protoimpl.UnsafeEnabled {
1256		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1257			switch v := v.(*CommandTask); i {
1258			case 0:
1259				return &v.state
1260			case 1:
1261				return &v.sizeCache
1262			case 2:
1263				return &v.unknownFields
1264			default:
1265				return nil
1266			}
1267		}
1268		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1269			switch v := v.(*CommandOutputs); i {
1270			case 0:
1271				return &v.state
1272			case 1:
1273				return &v.sizeCache
1274			case 2:
1275				return &v.unknownFields
1276			default:
1277				return nil
1278			}
1279		}
1280		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1281			switch v := v.(*CommandOverhead); i {
1282			case 0:
1283				return &v.state
1284			case 1:
1285				return &v.sizeCache
1286			case 2:
1287				return &v.unknownFields
1288			default:
1289				return nil
1290			}
1291		}
1292		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1293			switch v := v.(*CommandResult); i {
1294			case 0:
1295				return &v.state
1296			case 1:
1297				return &v.sizeCache
1298			case 2:
1299				return &v.unknownFields
1300			default:
1301				return nil
1302			}
1303		}
1304		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1305			switch v := v.(*FileMetadata); i {
1306			case 0:
1307				return &v.state
1308			case 1:
1309				return &v.sizeCache
1310			case 2:
1311				return &v.unknownFields
1312			default:
1313				return nil
1314			}
1315		}
1316		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1317			switch v := v.(*DirectoryMetadata); i {
1318			case 0:
1319				return &v.state
1320			case 1:
1321				return &v.sizeCache
1322			case 2:
1323				return &v.unknownFields
1324			default:
1325				return nil
1326			}
1327		}
1328		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1329			switch v := v.(*Digest); i {
1330			case 0:
1331				return &v.state
1332			case 1:
1333				return &v.sizeCache
1334			case 2:
1335				return &v.unknownFields
1336			default:
1337				return nil
1338			}
1339		}
1340		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1341			switch v := v.(*Blob); i {
1342			case 0:
1343				return &v.state
1344			case 1:
1345				return &v.sizeCache
1346			case 2:
1347				return &v.unknownFields
1348			default:
1349				return nil
1350			}
1351		}
1352		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1353			switch v := v.(*Directory); i {
1354			case 0:
1355				return &v.state
1356			case 1:
1357				return &v.sizeCache
1358			case 2:
1359				return &v.unknownFields
1360			default:
1361				return nil
1362			}
1363		}
1364		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1365			switch v := v.(*CommandTask_Inputs); i {
1366			case 0:
1367				return &v.state
1368			case 1:
1369				return &v.sizeCache
1370			case 2:
1371				return &v.unknownFields
1372			default:
1373				return nil
1374			}
1375		}
1376		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
1377			switch v := v.(*CommandTask_Outputs); i {
1378			case 0:
1379				return &v.state
1380			case 1:
1381				return &v.sizeCache
1382			case 2:
1383				return &v.unknownFields
1384			default:
1385				return nil
1386			}
1387		}
1388		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1389			switch v := v.(*CommandTask_Timeouts); i {
1390			case 0:
1391				return &v.state
1392			case 1:
1393				return &v.sizeCache
1394			case 2:
1395				return &v.unknownFields
1396			default:
1397				return nil
1398			}
1399		}
1400		file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
1401			switch v := v.(*CommandTask_Inputs_EnvironmentVariable); i {
1402			case 0:
1403				return &v.state
1404			case 1:
1405				return &v.sizeCache
1406			case 2:
1407				return &v.unknownFields
1408			default:
1409				return nil
1410			}
1411		}
1412	}
1413	type x struct{}
1414	out := protoimpl.TypeBuilder{
1415		File: protoimpl.DescBuilder{
1416			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1417			RawDescriptor: file_google_devtools_remoteworkers_v1test2_command_proto_rawDesc,
1418			NumEnums:      0,
1419			NumMessages:   13,
1420			NumExtensions: 0,
1421			NumServices:   0,
1422		},
1423		GoTypes:           file_google_devtools_remoteworkers_v1test2_command_proto_goTypes,
1424		DependencyIndexes: file_google_devtools_remoteworkers_v1test2_command_proto_depIdxs,
1425		MessageInfos:      file_google_devtools_remoteworkers_v1test2_command_proto_msgTypes,
1426	}.Build()
1427	File_google_devtools_remoteworkers_v1test2_command_proto = out.File
1428	file_google_devtools_remoteworkers_v1test2_command_proto_rawDesc = nil
1429	file_google_devtools_remoteworkers_v1test2_command_proto_goTypes = nil
1430	file_google_devtools_remoteworkers_v1test2_command_proto_depIdxs = nil
1431}
1432