1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/devtools/remoteexecution/v1test/remote_execution.proto
3
4package remoteexecution
5
6import (
7	context "context"
8	fmt "fmt"
9	math "math"
10
11	proto "github.com/golang/protobuf/proto"
12	duration "github.com/golang/protobuf/ptypes/duration"
13	_ "google.golang.org/genproto/googleapis/api/annotations"
14	longrunning "google.golang.org/genproto/googleapis/longrunning"
15	status "google.golang.org/genproto/googleapis/rpc/status"
16	grpc "google.golang.org/grpc"
17)
18
19// Reference imports to suppress errors if they are not otherwise used.
20var _ = proto.Marshal
21var _ = fmt.Errorf
22var _ = math.Inf
23
24// This is a compile-time assertion to ensure that this generated file
25// is compatible with the proto package it is being compiled against.
26// A compilation error at this line likely means your copy of the
27// proto package needs to be updated.
28const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
29
30// The current stage of execution.
31type ExecuteOperationMetadata_Stage int32
32
33const (
34	ExecuteOperationMetadata_UNKNOWN ExecuteOperationMetadata_Stage = 0
35	// Checking the result against the cache.
36	ExecuteOperationMetadata_CACHE_CHECK ExecuteOperationMetadata_Stage = 1
37	// Currently idle, awaiting a free machine to execute.
38	ExecuteOperationMetadata_QUEUED ExecuteOperationMetadata_Stage = 2
39	// Currently being executed by a worker.
40	ExecuteOperationMetadata_EXECUTING ExecuteOperationMetadata_Stage = 3
41	// Finished execution.
42	ExecuteOperationMetadata_COMPLETED ExecuteOperationMetadata_Stage = 4
43)
44
45var ExecuteOperationMetadata_Stage_name = map[int32]string{
46	0: "UNKNOWN",
47	1: "CACHE_CHECK",
48	2: "QUEUED",
49	3: "EXECUTING",
50	4: "COMPLETED",
51}
52
53var ExecuteOperationMetadata_Stage_value = map[string]int32{
54	"UNKNOWN":     0,
55	"CACHE_CHECK": 1,
56	"QUEUED":      2,
57	"EXECUTING":   3,
58	"COMPLETED":   4,
59}
60
61func (x ExecuteOperationMetadata_Stage) String() string {
62	return proto.EnumName(ExecuteOperationMetadata_Stage_name, int32(x))
63}
64
65func (ExecuteOperationMetadata_Stage) EnumDescriptor() ([]byte, []int) {
66	return fileDescriptor_1fc46b2dca8a7fdb, []int{14, 0}
67}
68
69// An `Action` captures all the information about an execution which is required
70// to reproduce it.
71//
72// `Action`s are the core component of the [Execution] service. A single
73// `Action` represents a repeatable action that can be performed by the
74// execution service. `Action`s can be succinctly identified by the digest of
75// their wire format encoding and, once an `Action` has been executed, will be
76// cached in the action cache. Future requests can then use the cached result
77// rather than needing to run afresh.
78//
79// When a server completes execution of an
80// [Action][google.devtools.remoteexecution.v1test.Action], it MAY choose to
81// cache the [result][google.devtools.remoteexecution.v1test.ActionResult] in
82// the [ActionCache][google.devtools.remoteexecution.v1test.ActionCache] unless
83// `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By
84// default, future calls to [Execute][] the same `Action` will also serve their
85// results from the cache. Clients must take care to understand the caching
86// behaviour. Ideally, all `Action`s will be reproducible so that serving a
87// result from cache is always desirable and correct.
88type Action struct {
89	// The digest of the [Command][google.devtools.remoteexecution.v1test.Command]
90	// to run, which MUST be present in the
91	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
92	CommandDigest *Digest `protobuf:"bytes,1,opt,name=command_digest,json=commandDigest,proto3" json:"command_digest,omitempty"`
93	// The digest of the root
94	// [Directory][google.devtools.remoteexecution.v1test.Directory] for the input
95	// files. The files in the directory tree are available in the correct
96	// location on the build machine before the command is executed. The root
97	// directory, as well as every subdirectory and content blob referred to, MUST
98	// be in the
99	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
100	InputRootDigest *Digest `protobuf:"bytes,2,opt,name=input_root_digest,json=inputRootDigest,proto3" json:"input_root_digest,omitempty"`
101	// A list of the output files that the client expects to retrieve from the
102	// action. Only the listed files, as well as directories listed in
103	// `output_directories`, will be returned to the client as output.
104	// Other files that may be created during command execution are discarded.
105	//
106	// The paths are relative to the working directory of the action execution.
107	// The paths are specified using a single forward slash (`/`) as a path
108	// separator, even if the execution platform natively uses a different
109	// separator. The path MUST NOT include a trailing slash, nor a leading slash,
110	// being a relative path.
111	//
112	// In order to ensure consistent hashing of the same Action, the output paths
113	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
114	// bytes).
115	OutputFiles []string `protobuf:"bytes,3,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
116	// A list of the output directories that the client expects to retrieve from
117	// the action. Only the contents of the indicated directories (recursively
118	// including the contents of their subdirectories) will be
119	// returned, as well as files listed in `output_files`. Other files that may
120	// be created during command execution are discarded.
121	//
122	// The paths are relative to the working directory of the action execution.
123	// The paths are specified using a single forward slash (`/`) as a path
124	// separator, even if the execution platform natively uses a different
125	// separator. The path MUST NOT include a trailing slash, nor a leading slash,
126	// being a relative path.
127	// The special value of empty string is allowed, although not recommended, and
128	// can be used to capture the entire working directory tree, including inputs.
129	//
130	// In order to ensure consistent hashing of the same Action, the output paths
131	// MUST be sorted lexicographically by code point (or, equivalently, by UTF-8
132	// bytes).
133	OutputDirectories []string `protobuf:"bytes,4,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
134	// The platform requirements for the execution environment. The server MAY
135	// choose to execute the action on any worker satisfying the requirements, so
136	// the client SHOULD ensure that running the action on any such worker will
137	// have the same result.
138	Platform *Platform `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"`
139	// A timeout after which the execution should be killed. If the timeout is
140	// absent, then the client is specifying that the execution should continue
141	// as long as the server will let it. The server SHOULD impose a timeout if
142	// the client does not specify one, however, if the client does specify a
143	// timeout that is longer than the server's maximum timeout, the server MUST
144	// reject the request.
145	//
146	// The timeout is a part of the
147	// [Action][google.devtools.remoteexecution.v1test.Action] message, and
148	// therefore two `Actions` with different timeouts are different, even if they
149	// are otherwise identical. This is because, if they were not, running an
150	// `Action` with a lower timeout than is required might result in a cache hit
151	// from an execution run with a longer timeout, hiding the fact that the
152	// timeout is too short. By encoding it directly in the `Action`, a lower
153	// timeout will result in a cache miss and the execution timeout will fail
154	// immediately, rather than whenever the cache entry gets evicted.
155	Timeout *duration.Duration `protobuf:"bytes,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
156	// If true, then the `Action`'s result cannot be cached.
157	DoNotCache           bool     `protobuf:"varint,7,opt,name=do_not_cache,json=doNotCache,proto3" json:"do_not_cache,omitempty"`
158	XXX_NoUnkeyedLiteral struct{} `json:"-"`
159	XXX_unrecognized     []byte   `json:"-"`
160	XXX_sizecache        int32    `json:"-"`
161}
162
163func (m *Action) Reset()         { *m = Action{} }
164func (m *Action) String() string { return proto.CompactTextString(m) }
165func (*Action) ProtoMessage()    {}
166func (*Action) Descriptor() ([]byte, []int) {
167	return fileDescriptor_1fc46b2dca8a7fdb, []int{0}
168}
169
170func (m *Action) XXX_Unmarshal(b []byte) error {
171	return xxx_messageInfo_Action.Unmarshal(m, b)
172}
173func (m *Action) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
174	return xxx_messageInfo_Action.Marshal(b, m, deterministic)
175}
176func (m *Action) XXX_Merge(src proto.Message) {
177	xxx_messageInfo_Action.Merge(m, src)
178}
179func (m *Action) XXX_Size() int {
180	return xxx_messageInfo_Action.Size(m)
181}
182func (m *Action) XXX_DiscardUnknown() {
183	xxx_messageInfo_Action.DiscardUnknown(m)
184}
185
186var xxx_messageInfo_Action proto.InternalMessageInfo
187
188func (m *Action) GetCommandDigest() *Digest {
189	if m != nil {
190		return m.CommandDigest
191	}
192	return nil
193}
194
195func (m *Action) GetInputRootDigest() *Digest {
196	if m != nil {
197		return m.InputRootDigest
198	}
199	return nil
200}
201
202func (m *Action) GetOutputFiles() []string {
203	if m != nil {
204		return m.OutputFiles
205	}
206	return nil
207}
208
209func (m *Action) GetOutputDirectories() []string {
210	if m != nil {
211		return m.OutputDirectories
212	}
213	return nil
214}
215
216func (m *Action) GetPlatform() *Platform {
217	if m != nil {
218		return m.Platform
219	}
220	return nil
221}
222
223func (m *Action) GetTimeout() *duration.Duration {
224	if m != nil {
225		return m.Timeout
226	}
227	return nil
228}
229
230func (m *Action) GetDoNotCache() bool {
231	if m != nil {
232		return m.DoNotCache
233	}
234	return false
235}
236
237// A `Command` is the actual command executed by a worker running an
238// [Action][google.devtools.remoteexecution.v1test.Action].
239//
240// Except as otherwise required, the environment (such as which system
241// libraries or binaries are available, and what filesystems are mounted where)
242// is defined by and specific to the implementation of the remote execution API.
243type Command struct {
244	// The arguments to the command. The first argument must be the path to the
245	// executable, which must be either a relative path, in which case it is
246	// evaluated with respect to the input root, or an absolute path.
247	//
248	// The working directory will always be the input root.
249	Arguments []string `protobuf:"bytes,1,rep,name=arguments,proto3" json:"arguments,omitempty"`
250	// The environment variables to set when running the program. The worker may
251	// provide its own default environment variables; these defaults can be
252	// overridden using this field. Additional variables can also be specified.
253	//
254	// In order to ensure that equivalent `Command`s always hash to the same
255	// value, the environment variables MUST be lexicographically sorted by name.
256	// Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.
257	EnvironmentVariables []*Command_EnvironmentVariable `protobuf:"bytes,2,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty"`
258	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
259	XXX_unrecognized     []byte                         `json:"-"`
260	XXX_sizecache        int32                          `json:"-"`
261}
262
263func (m *Command) Reset()         { *m = Command{} }
264func (m *Command) String() string { return proto.CompactTextString(m) }
265func (*Command) ProtoMessage()    {}
266func (*Command) Descriptor() ([]byte, []int) {
267	return fileDescriptor_1fc46b2dca8a7fdb, []int{1}
268}
269
270func (m *Command) XXX_Unmarshal(b []byte) error {
271	return xxx_messageInfo_Command.Unmarshal(m, b)
272}
273func (m *Command) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
274	return xxx_messageInfo_Command.Marshal(b, m, deterministic)
275}
276func (m *Command) XXX_Merge(src proto.Message) {
277	xxx_messageInfo_Command.Merge(m, src)
278}
279func (m *Command) XXX_Size() int {
280	return xxx_messageInfo_Command.Size(m)
281}
282func (m *Command) XXX_DiscardUnknown() {
283	xxx_messageInfo_Command.DiscardUnknown(m)
284}
285
286var xxx_messageInfo_Command proto.InternalMessageInfo
287
288func (m *Command) GetArguments() []string {
289	if m != nil {
290		return m.Arguments
291	}
292	return nil
293}
294
295func (m *Command) GetEnvironmentVariables() []*Command_EnvironmentVariable {
296	if m != nil {
297		return m.EnvironmentVariables
298	}
299	return nil
300}
301
302// An `EnvironmentVariable` is one variable to set in the running program's
303// environment.
304type Command_EnvironmentVariable struct {
305	// The variable name.
306	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
307	// The variable value.
308	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
309	XXX_NoUnkeyedLiteral struct{} `json:"-"`
310	XXX_unrecognized     []byte   `json:"-"`
311	XXX_sizecache        int32    `json:"-"`
312}
313
314func (m *Command_EnvironmentVariable) Reset()         { *m = Command_EnvironmentVariable{} }
315func (m *Command_EnvironmentVariable) String() string { return proto.CompactTextString(m) }
316func (*Command_EnvironmentVariable) ProtoMessage()    {}
317func (*Command_EnvironmentVariable) Descriptor() ([]byte, []int) {
318	return fileDescriptor_1fc46b2dca8a7fdb, []int{1, 0}
319}
320
321func (m *Command_EnvironmentVariable) XXX_Unmarshal(b []byte) error {
322	return xxx_messageInfo_Command_EnvironmentVariable.Unmarshal(m, b)
323}
324func (m *Command_EnvironmentVariable) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
325	return xxx_messageInfo_Command_EnvironmentVariable.Marshal(b, m, deterministic)
326}
327func (m *Command_EnvironmentVariable) XXX_Merge(src proto.Message) {
328	xxx_messageInfo_Command_EnvironmentVariable.Merge(m, src)
329}
330func (m *Command_EnvironmentVariable) XXX_Size() int {
331	return xxx_messageInfo_Command_EnvironmentVariable.Size(m)
332}
333func (m *Command_EnvironmentVariable) XXX_DiscardUnknown() {
334	xxx_messageInfo_Command_EnvironmentVariable.DiscardUnknown(m)
335}
336
337var xxx_messageInfo_Command_EnvironmentVariable proto.InternalMessageInfo
338
339func (m *Command_EnvironmentVariable) GetName() string {
340	if m != nil {
341		return m.Name
342	}
343	return ""
344}
345
346func (m *Command_EnvironmentVariable) GetValue() string {
347	if m != nil {
348		return m.Value
349	}
350	return ""
351}
352
353// A `Platform` is a set of requirements, such as hardware, operating system, or
354// compiler toolchain, for an
355// [Action][google.devtools.remoteexecution.v1test.Action]'s execution
356// environment. A `Platform` is represented as a series of key-value pairs
357// representing the properties that are required of the platform.
358//
359// This message is currently being redeveloped since it is an overly simplistic
360// model of platforms.
361type Platform struct {
362	// The properties that make up this platform. In order to ensure that
363	// equivalent `Platform`s always hash to the same value, the properties MUST
364	// be lexicographically sorted by name, and then by value. Sorting of strings
365	// is done by code point, equivalently, by the UTF-8 bytes.
366	Properties           []*Platform_Property `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`
367	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
368	XXX_unrecognized     []byte               `json:"-"`
369	XXX_sizecache        int32                `json:"-"`
370}
371
372func (m *Platform) Reset()         { *m = Platform{} }
373func (m *Platform) String() string { return proto.CompactTextString(m) }
374func (*Platform) ProtoMessage()    {}
375func (*Platform) Descriptor() ([]byte, []int) {
376	return fileDescriptor_1fc46b2dca8a7fdb, []int{2}
377}
378
379func (m *Platform) XXX_Unmarshal(b []byte) error {
380	return xxx_messageInfo_Platform.Unmarshal(m, b)
381}
382func (m *Platform) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
383	return xxx_messageInfo_Platform.Marshal(b, m, deterministic)
384}
385func (m *Platform) XXX_Merge(src proto.Message) {
386	xxx_messageInfo_Platform.Merge(m, src)
387}
388func (m *Platform) XXX_Size() int {
389	return xxx_messageInfo_Platform.Size(m)
390}
391func (m *Platform) XXX_DiscardUnknown() {
392	xxx_messageInfo_Platform.DiscardUnknown(m)
393}
394
395var xxx_messageInfo_Platform proto.InternalMessageInfo
396
397func (m *Platform) GetProperties() []*Platform_Property {
398	if m != nil {
399		return m.Properties
400	}
401	return nil
402}
403
404// A single property for the environment. The server is responsible for
405// specifying the property `name`s that it accepts. If an unknown `name` is
406// provided in the requirements for an
407// [Action][google.devtools.remoteexecution.v1test.Action], the server SHOULD
408// reject the execution request. If permitted by the server, the same `name`
409// may occur multiple times.
410//
411// The server is also responsible for specifying the interpretation of
412// property `value`s. For instance, a property describing how much RAM must be
413// available may be interpreted as allowing a worker with 16GB to fulfill a
414// request for 8GB, while a property describing the OS environment on which
415// the action must be performed may require an exact match with the worker's
416// OS.
417//
418// The server MAY use the `value` of one or more properties to determine how
419// it sets up the execution environment, such as by making specific system
420// files available to the worker.
421type Platform_Property struct {
422	// The property name.
423	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
424	// The property value.
425	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
426	XXX_NoUnkeyedLiteral struct{} `json:"-"`
427	XXX_unrecognized     []byte   `json:"-"`
428	XXX_sizecache        int32    `json:"-"`
429}
430
431func (m *Platform_Property) Reset()         { *m = Platform_Property{} }
432func (m *Platform_Property) String() string { return proto.CompactTextString(m) }
433func (*Platform_Property) ProtoMessage()    {}
434func (*Platform_Property) Descriptor() ([]byte, []int) {
435	return fileDescriptor_1fc46b2dca8a7fdb, []int{2, 0}
436}
437
438func (m *Platform_Property) XXX_Unmarshal(b []byte) error {
439	return xxx_messageInfo_Platform_Property.Unmarshal(m, b)
440}
441func (m *Platform_Property) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
442	return xxx_messageInfo_Platform_Property.Marshal(b, m, deterministic)
443}
444func (m *Platform_Property) XXX_Merge(src proto.Message) {
445	xxx_messageInfo_Platform_Property.Merge(m, src)
446}
447func (m *Platform_Property) XXX_Size() int {
448	return xxx_messageInfo_Platform_Property.Size(m)
449}
450func (m *Platform_Property) XXX_DiscardUnknown() {
451	xxx_messageInfo_Platform_Property.DiscardUnknown(m)
452}
453
454var xxx_messageInfo_Platform_Property proto.InternalMessageInfo
455
456func (m *Platform_Property) GetName() string {
457	if m != nil {
458		return m.Name
459	}
460	return ""
461}
462
463func (m *Platform_Property) GetValue() string {
464	if m != nil {
465		return m.Value
466	}
467	return ""
468}
469
470// A `Directory` represents a directory node in a file tree, containing zero or
471// more children [FileNodes][google.devtools.remoteexecution.v1test.FileNode]
472// and [DirectoryNodes][google.devtools.remoteexecution.v1test.DirectoryNode].
473// Each `Node` contains its name in the directory, the digest of its content
474// (either a file blob or a `Directory` proto), as well as possibly some
475// metadata about the file or directory.
476//
477// In order to ensure that two equivalent directory trees hash to the same
478// value, the following restrictions MUST be obeyed when constructing a
479// a `Directory`:
480//   - Every child in the directory must have a path of exactly one segment.
481//     Multiple levels of directory hierarchy may not be collapsed.
482//   - Each child in the directory must have a unique path segment (file name).
483//   - The files and directories in the directory must each be sorted in
484//     lexicographical order by path. The path strings must be sorted by code
485//     point, equivalently, by UTF-8 bytes.
486//
487// A `Directory` that obeys the restrictions is said to be in canonical form.
488//
489// As an example, the following could be used for a file named `bar` and a
490// directory named `foo` with an executable file named `baz` (hashes shortened
491// for readability):
492//
493// ```json
494// // (Directory proto)
495// {
496//   files: [
497//     {
498//       name: "bar",
499//       digest: {
500//         hash: "4a73bc9d03...",
501//         size: 65534
502//       }
503//     }
504//   ],
505//   directories: [
506//     {
507//       name: "foo",
508//       digest: {
509//         hash: "4cf2eda940...",
510//         size: 43
511//       }
512//     }
513//   ]
514// }
515//
516// // (Directory proto with hash "4cf2eda940..." and size 43)
517// {
518//   files: [
519//     {
520//       name: "baz",
521//       digest: {
522//         hash: "b2c941073e...",
523//         size: 1294,
524//       },
525//       is_executable: true
526//     }
527//   ]
528// }
529// ```
530type Directory struct {
531	// The files in the directory.
532	Files []*FileNode `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
533	// The subdirectories in the directory.
534	Directories          []*DirectoryNode `protobuf:"bytes,2,rep,name=directories,proto3" json:"directories,omitempty"`
535	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
536	XXX_unrecognized     []byte           `json:"-"`
537	XXX_sizecache        int32            `json:"-"`
538}
539
540func (m *Directory) Reset()         { *m = Directory{} }
541func (m *Directory) String() string { return proto.CompactTextString(m) }
542func (*Directory) ProtoMessage()    {}
543func (*Directory) Descriptor() ([]byte, []int) {
544	return fileDescriptor_1fc46b2dca8a7fdb, []int{3}
545}
546
547func (m *Directory) XXX_Unmarshal(b []byte) error {
548	return xxx_messageInfo_Directory.Unmarshal(m, b)
549}
550func (m *Directory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
551	return xxx_messageInfo_Directory.Marshal(b, m, deterministic)
552}
553func (m *Directory) XXX_Merge(src proto.Message) {
554	xxx_messageInfo_Directory.Merge(m, src)
555}
556func (m *Directory) XXX_Size() int {
557	return xxx_messageInfo_Directory.Size(m)
558}
559func (m *Directory) XXX_DiscardUnknown() {
560	xxx_messageInfo_Directory.DiscardUnknown(m)
561}
562
563var xxx_messageInfo_Directory proto.InternalMessageInfo
564
565func (m *Directory) GetFiles() []*FileNode {
566	if m != nil {
567		return m.Files
568	}
569	return nil
570}
571
572func (m *Directory) GetDirectories() []*DirectoryNode {
573	if m != nil {
574		return m.Directories
575	}
576	return nil
577}
578
579// A `FileNode` represents a single file and associated metadata.
580type FileNode struct {
581	// The name of the file.
582	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
583	// The digest of the file's content.
584	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
585	// True if file is executable, false otherwise.
586	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
587	XXX_NoUnkeyedLiteral struct{} `json:"-"`
588	XXX_unrecognized     []byte   `json:"-"`
589	XXX_sizecache        int32    `json:"-"`
590}
591
592func (m *FileNode) Reset()         { *m = FileNode{} }
593func (m *FileNode) String() string { return proto.CompactTextString(m) }
594func (*FileNode) ProtoMessage()    {}
595func (*FileNode) Descriptor() ([]byte, []int) {
596	return fileDescriptor_1fc46b2dca8a7fdb, []int{4}
597}
598
599func (m *FileNode) XXX_Unmarshal(b []byte) error {
600	return xxx_messageInfo_FileNode.Unmarshal(m, b)
601}
602func (m *FileNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
603	return xxx_messageInfo_FileNode.Marshal(b, m, deterministic)
604}
605func (m *FileNode) XXX_Merge(src proto.Message) {
606	xxx_messageInfo_FileNode.Merge(m, src)
607}
608func (m *FileNode) XXX_Size() int {
609	return xxx_messageInfo_FileNode.Size(m)
610}
611func (m *FileNode) XXX_DiscardUnknown() {
612	xxx_messageInfo_FileNode.DiscardUnknown(m)
613}
614
615var xxx_messageInfo_FileNode proto.InternalMessageInfo
616
617func (m *FileNode) GetName() string {
618	if m != nil {
619		return m.Name
620	}
621	return ""
622}
623
624func (m *FileNode) GetDigest() *Digest {
625	if m != nil {
626		return m.Digest
627	}
628	return nil
629}
630
631func (m *FileNode) GetIsExecutable() bool {
632	if m != nil {
633		return m.IsExecutable
634	}
635	return false
636}
637
638// A `DirectoryNode` represents a child of a
639// [Directory][google.devtools.remoteexecution.v1test.Directory] which is itself
640// a `Directory` and its associated metadata.
641type DirectoryNode struct {
642	// The name of the directory.
643	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
644	// The digest of the
645	// [Directory][google.devtools.remoteexecution.v1test.Directory] object
646	// represented. See [Digest][google.devtools.remoteexecution.v1test.Digest]
647	// for information about how to take the digest of a proto message.
648	Digest               *Digest  `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
649	XXX_NoUnkeyedLiteral struct{} `json:"-"`
650	XXX_unrecognized     []byte   `json:"-"`
651	XXX_sizecache        int32    `json:"-"`
652}
653
654func (m *DirectoryNode) Reset()         { *m = DirectoryNode{} }
655func (m *DirectoryNode) String() string { return proto.CompactTextString(m) }
656func (*DirectoryNode) ProtoMessage()    {}
657func (*DirectoryNode) Descriptor() ([]byte, []int) {
658	return fileDescriptor_1fc46b2dca8a7fdb, []int{5}
659}
660
661func (m *DirectoryNode) XXX_Unmarshal(b []byte) error {
662	return xxx_messageInfo_DirectoryNode.Unmarshal(m, b)
663}
664func (m *DirectoryNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
665	return xxx_messageInfo_DirectoryNode.Marshal(b, m, deterministic)
666}
667func (m *DirectoryNode) XXX_Merge(src proto.Message) {
668	xxx_messageInfo_DirectoryNode.Merge(m, src)
669}
670func (m *DirectoryNode) XXX_Size() int {
671	return xxx_messageInfo_DirectoryNode.Size(m)
672}
673func (m *DirectoryNode) XXX_DiscardUnknown() {
674	xxx_messageInfo_DirectoryNode.DiscardUnknown(m)
675}
676
677var xxx_messageInfo_DirectoryNode proto.InternalMessageInfo
678
679func (m *DirectoryNode) GetName() string {
680	if m != nil {
681		return m.Name
682	}
683	return ""
684}
685
686func (m *DirectoryNode) GetDigest() *Digest {
687	if m != nil {
688		return m.Digest
689	}
690	return nil
691}
692
693// A content digest. A digest for a given blob consists of the size of the blob
694// and its hash. The hash algorithm to use is defined by the server, but servers
695// SHOULD use SHA-256.
696//
697// The size is considered to be an integral part of the digest and cannot be
698// separated. That is, even if the `hash` field is correctly specified but
699// `size_bytes` is not, the server MUST reject the request.
700//
701// The reason for including the size in the digest is as follows: in a great
702// many cases, the server needs to know the size of the blob it is about to work
703// with prior to starting an operation with it, such as flattening Merkle tree
704// structures or streaming it to a worker. Technically, the server could
705// implement a separate metadata store, but this results in a significantly more
706// complicated implementation as opposed to having the client specify the size
707// up-front (or storing the size along with the digest in every message where
708// digests are embedded). This does mean that the API leaks some implementation
709// details of (what we consider to be) a reasonable server implementation, but
710// we consider this to be a worthwhile tradeoff.
711//
712// When a `Digest` is used to refer to a proto message, it always refers to the
713// message in binary encoded form. To ensure consistent hashing, clients and
714// servers MUST ensure that they serialize messages according to the following
715// rules, even if there are alternate valid encodings for the same message.
716// - Fields are serialized in tag order.
717// - There are no unknown fields.
718// - There are no duplicate fields.
719// - Fields are serialized according to the default semantics for their type.
720//
721// Most protocol buffer implementations will always follow these rules when
722// serializing, but care should be taken to avoid shortcuts. For instance,
723// concatenating two messages to merge them may produce duplicate fields.
724type Digest struct {
725	// The hash. In the case of SHA-256, it will always be a lowercase hex string
726	// exactly 64 characters long.
727	Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
728	// The size of the blob, in bytes.
729	SizeBytes            int64    `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"`
730	XXX_NoUnkeyedLiteral struct{} `json:"-"`
731	XXX_unrecognized     []byte   `json:"-"`
732	XXX_sizecache        int32    `json:"-"`
733}
734
735func (m *Digest) Reset()         { *m = Digest{} }
736func (m *Digest) String() string { return proto.CompactTextString(m) }
737func (*Digest) ProtoMessage()    {}
738func (*Digest) Descriptor() ([]byte, []int) {
739	return fileDescriptor_1fc46b2dca8a7fdb, []int{6}
740}
741
742func (m *Digest) XXX_Unmarshal(b []byte) error {
743	return xxx_messageInfo_Digest.Unmarshal(m, b)
744}
745func (m *Digest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
746	return xxx_messageInfo_Digest.Marshal(b, m, deterministic)
747}
748func (m *Digest) XXX_Merge(src proto.Message) {
749	xxx_messageInfo_Digest.Merge(m, src)
750}
751func (m *Digest) XXX_Size() int {
752	return xxx_messageInfo_Digest.Size(m)
753}
754func (m *Digest) XXX_DiscardUnknown() {
755	xxx_messageInfo_Digest.DiscardUnknown(m)
756}
757
758var xxx_messageInfo_Digest proto.InternalMessageInfo
759
760func (m *Digest) GetHash() string {
761	if m != nil {
762		return m.Hash
763	}
764	return ""
765}
766
767func (m *Digest) GetSizeBytes() int64 {
768	if m != nil {
769		return m.SizeBytes
770	}
771	return 0
772}
773
774// An ActionResult represents the result of an
775// [Action][google.devtools.remoteexecution.v1test.Action] being run.
776type ActionResult struct {
777	// The output files of the action. For each output file requested in the
778	// `output_files` field of the Action, if the corresponding file existed after
779	// the action completed, a single entry will be present in the output list.
780	//
781	// If the action does not produce the requested output, or produces a
782	// directory where a regular file is expected or vice versa, then that output
783	// will be omitted from the list. The server is free to arrange the output
784	// list as desired; clients MUST NOT assume that the output list is sorted.
785	OutputFiles []*OutputFile `protobuf:"bytes,2,rep,name=output_files,json=outputFiles,proto3" json:"output_files,omitempty"`
786	// The output directories of the action. For each output directory requested
787	// in the `output_directories` field of the Action, if the corresponding
788	// directory existed after the action completed, a single entry will be
789	// present in the output list, which will contain the digest of
790	// a [Tree][google.devtools.remoteexecution.v1test.Tree] message containing
791	// the directory tree, and the path equal exactly to the corresponding Action
792	// output_directories member.
793	// As an example, suppose the Action had an output directory `a/b/dir` and the
794	// execution produced the following contents in `a/b/dir`: a file named `bar`
795	// and a directory named `foo` with an executable file named `baz`. Then,
796	// output_directory will contain (hashes shortened for readability):
797	//
798	// ```json
799	// // OutputDirectory proto:
800	// {
801	//   path: "a/b/dir"
802	//   tree_digest: {
803	//     hash: "4a73bc9d03...",
804	//     size: 55
805	//   }
806	// }
807	// // Tree proto with hash "4a73bc9d03..." and size 55:
808	// {
809	//   root: {
810	//     files: [
811	//       {
812	//         name: "bar",
813	//         digest: {
814	//           hash: "4a73bc9d03...",
815	//           size: 65534
816	//         }
817	//       }
818	//     ],
819	//     directories: [
820	//       {
821	//         name: "foo",
822	//         digest: {
823	//           hash: "4cf2eda940...",
824	//           size: 43
825	//         }
826	//       }
827	//     ]
828	//   }
829	//   children : {
830	//     // (Directory proto with hash "4cf2eda940..." and size 43)
831	//     files: [
832	//       {
833	//         name: "baz",
834	//         digest: {
835	//           hash: "b2c941073e...",
836	//           size: 1294,
837	//         },
838	//         is_executable: true
839	//       }
840	//     ]
841	//   }
842	// }
843	// ```
844	OutputDirectories []*OutputDirectory `protobuf:"bytes,3,rep,name=output_directories,json=outputDirectories,proto3" json:"output_directories,omitempty"`
845	// The exit code of the command.
846	ExitCode int32 `protobuf:"varint,4,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
847	// The standard output buffer of the action. The server will determine, based
848	// on the size of the buffer, whether to return it in raw form or to return
849	// a digest in `stdout_digest` that points to the buffer. If neither is set,
850	// then the buffer is empty. The client SHOULD NOT assume it will get one of
851	// the raw buffer or a digest on any given request and should be prepared to
852	// handle either.
853	StdoutRaw []byte `protobuf:"bytes,5,opt,name=stdout_raw,json=stdoutRaw,proto3" json:"stdout_raw,omitempty"`
854	// The digest for a blob containing the standard output of the action, which
855	// can be retrieved from the
856	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
857	// See `stdout_raw` for when this will be set.
858	StdoutDigest *Digest `protobuf:"bytes,6,opt,name=stdout_digest,json=stdoutDigest,proto3" json:"stdout_digest,omitempty"`
859	// The standard error buffer of the action. The server will determine, based
860	// on the size of the buffer, whether to return it in raw form or to return
861	// a digest in `stderr_digest` that points to the buffer. If neither is set,
862	// then the buffer is empty. The client SHOULD NOT assume it will get one of
863	// the raw buffer or a digest on any given request and should be prepared to
864	// handle either.
865	StderrRaw []byte `protobuf:"bytes,7,opt,name=stderr_raw,json=stderrRaw,proto3" json:"stderr_raw,omitempty"`
866	// The digest for a blob containing the standard error of the action, which
867	// can be retrieved from the
868	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
869	// See `stderr_raw` for when this will be set.
870	StderrDigest         *Digest  `protobuf:"bytes,8,opt,name=stderr_digest,json=stderrDigest,proto3" json:"stderr_digest,omitempty"`
871	XXX_NoUnkeyedLiteral struct{} `json:"-"`
872	XXX_unrecognized     []byte   `json:"-"`
873	XXX_sizecache        int32    `json:"-"`
874}
875
876func (m *ActionResult) Reset()         { *m = ActionResult{} }
877func (m *ActionResult) String() string { return proto.CompactTextString(m) }
878func (*ActionResult) ProtoMessage()    {}
879func (*ActionResult) Descriptor() ([]byte, []int) {
880	return fileDescriptor_1fc46b2dca8a7fdb, []int{7}
881}
882
883func (m *ActionResult) XXX_Unmarshal(b []byte) error {
884	return xxx_messageInfo_ActionResult.Unmarshal(m, b)
885}
886func (m *ActionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
887	return xxx_messageInfo_ActionResult.Marshal(b, m, deterministic)
888}
889func (m *ActionResult) XXX_Merge(src proto.Message) {
890	xxx_messageInfo_ActionResult.Merge(m, src)
891}
892func (m *ActionResult) XXX_Size() int {
893	return xxx_messageInfo_ActionResult.Size(m)
894}
895func (m *ActionResult) XXX_DiscardUnknown() {
896	xxx_messageInfo_ActionResult.DiscardUnknown(m)
897}
898
899var xxx_messageInfo_ActionResult proto.InternalMessageInfo
900
901func (m *ActionResult) GetOutputFiles() []*OutputFile {
902	if m != nil {
903		return m.OutputFiles
904	}
905	return nil
906}
907
908func (m *ActionResult) GetOutputDirectories() []*OutputDirectory {
909	if m != nil {
910		return m.OutputDirectories
911	}
912	return nil
913}
914
915func (m *ActionResult) GetExitCode() int32 {
916	if m != nil {
917		return m.ExitCode
918	}
919	return 0
920}
921
922func (m *ActionResult) GetStdoutRaw() []byte {
923	if m != nil {
924		return m.StdoutRaw
925	}
926	return nil
927}
928
929func (m *ActionResult) GetStdoutDigest() *Digest {
930	if m != nil {
931		return m.StdoutDigest
932	}
933	return nil
934}
935
936func (m *ActionResult) GetStderrRaw() []byte {
937	if m != nil {
938		return m.StderrRaw
939	}
940	return nil
941}
942
943func (m *ActionResult) GetStderrDigest() *Digest {
944	if m != nil {
945		return m.StderrDigest
946	}
947	return nil
948}
949
950// An `OutputFile` is similar to a
951// [FileNode][google.devtools.remoteexecution.v1test.FileNode], but it is
952// tailored for output as part of an `ActionResult`. It allows a full file path
953// rather than only a name, and allows the server to include content inline.
954//
955// `OutputFile` is binary-compatible with `FileNode`.
956type OutputFile struct {
957	// The full path of the file relative to the input root, including the
958	// filename. The path separator is a forward slash `/`. Since this is a
959	// relative path, it MUST NOT begin with a leading forward slash.
960	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
961	// The digest of the file's content.
962	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
963	// The raw content of the file.
964	//
965	// This field may be used by the server to provide the content of a file
966	// inline in an
967	// [ActionResult][google.devtools.remoteexecution.v1test.ActionResult] and
968	// avoid requiring that the client make a separate call to
969	// [ContentAddressableStorage.GetBlob] to retrieve it.
970	//
971	// The client SHOULD NOT assume that it will get raw content with any request,
972	// and always be prepared to retrieve it via `digest`.
973	Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
974	// True if file is executable, false otherwise.
975	IsExecutable         bool     `protobuf:"varint,4,opt,name=is_executable,json=isExecutable,proto3" json:"is_executable,omitempty"`
976	XXX_NoUnkeyedLiteral struct{} `json:"-"`
977	XXX_unrecognized     []byte   `json:"-"`
978	XXX_sizecache        int32    `json:"-"`
979}
980
981func (m *OutputFile) Reset()         { *m = OutputFile{} }
982func (m *OutputFile) String() string { return proto.CompactTextString(m) }
983func (*OutputFile) ProtoMessage()    {}
984func (*OutputFile) Descriptor() ([]byte, []int) {
985	return fileDescriptor_1fc46b2dca8a7fdb, []int{8}
986}
987
988func (m *OutputFile) XXX_Unmarshal(b []byte) error {
989	return xxx_messageInfo_OutputFile.Unmarshal(m, b)
990}
991func (m *OutputFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
992	return xxx_messageInfo_OutputFile.Marshal(b, m, deterministic)
993}
994func (m *OutputFile) XXX_Merge(src proto.Message) {
995	xxx_messageInfo_OutputFile.Merge(m, src)
996}
997func (m *OutputFile) XXX_Size() int {
998	return xxx_messageInfo_OutputFile.Size(m)
999}
1000func (m *OutputFile) XXX_DiscardUnknown() {
1001	xxx_messageInfo_OutputFile.DiscardUnknown(m)
1002}
1003
1004var xxx_messageInfo_OutputFile proto.InternalMessageInfo
1005
1006func (m *OutputFile) GetPath() string {
1007	if m != nil {
1008		return m.Path
1009	}
1010	return ""
1011}
1012
1013func (m *OutputFile) GetDigest() *Digest {
1014	if m != nil {
1015		return m.Digest
1016	}
1017	return nil
1018}
1019
1020func (m *OutputFile) GetContent() []byte {
1021	if m != nil {
1022		return m.Content
1023	}
1024	return nil
1025}
1026
1027func (m *OutputFile) GetIsExecutable() bool {
1028	if m != nil {
1029		return m.IsExecutable
1030	}
1031	return false
1032}
1033
1034// A `Tree` contains all the
1035// [Directory][google.devtools.remoteexecution.v1test.Directory] protos in a
1036// single directory Merkle tree, compressed into one message.
1037type Tree struct {
1038	// The root directory in the tree.
1039	Root *Directory `protobuf:"bytes,1,opt,name=root,proto3" json:"root,omitempty"`
1040	// All the child directories: the directories referred to by the root and,
1041	// recursively, all its children. In order to reconstruct the directory tree,
1042	// the client must take the digests of each of the child directories and then
1043	// build up a tree starting from the `root`.
1044	Children             []*Directory `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`
1045	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
1046	XXX_unrecognized     []byte       `json:"-"`
1047	XXX_sizecache        int32        `json:"-"`
1048}
1049
1050func (m *Tree) Reset()         { *m = Tree{} }
1051func (m *Tree) String() string { return proto.CompactTextString(m) }
1052func (*Tree) ProtoMessage()    {}
1053func (*Tree) Descriptor() ([]byte, []int) {
1054	return fileDescriptor_1fc46b2dca8a7fdb, []int{9}
1055}
1056
1057func (m *Tree) XXX_Unmarshal(b []byte) error {
1058	return xxx_messageInfo_Tree.Unmarshal(m, b)
1059}
1060func (m *Tree) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1061	return xxx_messageInfo_Tree.Marshal(b, m, deterministic)
1062}
1063func (m *Tree) XXX_Merge(src proto.Message) {
1064	xxx_messageInfo_Tree.Merge(m, src)
1065}
1066func (m *Tree) XXX_Size() int {
1067	return xxx_messageInfo_Tree.Size(m)
1068}
1069func (m *Tree) XXX_DiscardUnknown() {
1070	xxx_messageInfo_Tree.DiscardUnknown(m)
1071}
1072
1073var xxx_messageInfo_Tree proto.InternalMessageInfo
1074
1075func (m *Tree) GetRoot() *Directory {
1076	if m != nil {
1077		return m.Root
1078	}
1079	return nil
1080}
1081
1082func (m *Tree) GetChildren() []*Directory {
1083	if m != nil {
1084		return m.Children
1085	}
1086	return nil
1087}
1088
1089// An `OutputDirectory` is the output in an `ActionResult` corresponding to a
1090// directory's full contents rather than a single file.
1091type OutputDirectory struct {
1092	// The full path of the directory relative to the working directory. The path
1093	// separator is a forward slash `/`. Since this is a relative path, it MUST
1094	// NOT begin with a leading forward slash. The empty string value is allowed,
1095	// and it denotes the entire working directory.
1096	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
1097	// DEPRECATED: This field is deprecated and should no longer be used.
1098	Digest *Digest `protobuf:"bytes,2,opt,name=digest,proto3" json:"digest,omitempty"`
1099	// The digest of the encoded
1100	// [Tree][google.devtools.remoteexecution.v1test.Tree] proto containing the
1101	// directory's contents.
1102	TreeDigest           *Digest  `protobuf:"bytes,3,opt,name=tree_digest,json=treeDigest,proto3" json:"tree_digest,omitempty"`
1103	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1104	XXX_unrecognized     []byte   `json:"-"`
1105	XXX_sizecache        int32    `json:"-"`
1106}
1107
1108func (m *OutputDirectory) Reset()         { *m = OutputDirectory{} }
1109func (m *OutputDirectory) String() string { return proto.CompactTextString(m) }
1110func (*OutputDirectory) ProtoMessage()    {}
1111func (*OutputDirectory) Descriptor() ([]byte, []int) {
1112	return fileDescriptor_1fc46b2dca8a7fdb, []int{10}
1113}
1114
1115func (m *OutputDirectory) XXX_Unmarshal(b []byte) error {
1116	return xxx_messageInfo_OutputDirectory.Unmarshal(m, b)
1117}
1118func (m *OutputDirectory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1119	return xxx_messageInfo_OutputDirectory.Marshal(b, m, deterministic)
1120}
1121func (m *OutputDirectory) XXX_Merge(src proto.Message) {
1122	xxx_messageInfo_OutputDirectory.Merge(m, src)
1123}
1124func (m *OutputDirectory) XXX_Size() int {
1125	return xxx_messageInfo_OutputDirectory.Size(m)
1126}
1127func (m *OutputDirectory) XXX_DiscardUnknown() {
1128	xxx_messageInfo_OutputDirectory.DiscardUnknown(m)
1129}
1130
1131var xxx_messageInfo_OutputDirectory proto.InternalMessageInfo
1132
1133func (m *OutputDirectory) GetPath() string {
1134	if m != nil {
1135		return m.Path
1136	}
1137	return ""
1138}
1139
1140func (m *OutputDirectory) GetDigest() *Digest {
1141	if m != nil {
1142		return m.Digest
1143	}
1144	return nil
1145}
1146
1147func (m *OutputDirectory) GetTreeDigest() *Digest {
1148	if m != nil {
1149		return m.TreeDigest
1150	}
1151	return nil
1152}
1153
1154// A request message for
1155// [Execution.Execute][google.devtools.remoteexecution.v1test.Execution.Execute].
1156type ExecuteRequest struct {
1157	// The instance of the execution system to operate against. A server may
1158	// support multiple instances of the execution system (with their own workers,
1159	// storage, caches, etc.). The server MAY require use of this field to select
1160	// between them in an implementation-defined fashion, otherwise it can be
1161	// omitted.
1162	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1163	// The action to be performed.
1164	Action *Action `protobuf:"bytes,2,opt,name=action,proto3" json:"action,omitempty"`
1165	// If true, the action will be executed anew even if its result was already
1166	// present in the cache. If false, the result may be served from the
1167	// [ActionCache][google.devtools.remoteexecution.v1test.ActionCache].
1168	SkipCacheLookup bool `protobuf:"varint,3,opt,name=skip_cache_lookup,json=skipCacheLookup,proto3" json:"skip_cache_lookup,omitempty"`
1169	// DEPRECATED: This field should be ignored by clients and servers and will be
1170	// removed.
1171	TotalInputFileCount int32 `protobuf:"varint,4,opt,name=total_input_file_count,json=totalInputFileCount,proto3" json:"total_input_file_count,omitempty"`
1172	// DEPRECATED: This field should be ignored by clients and servers and will be
1173	// removed.
1174	TotalInputFileBytes  int64    `protobuf:"varint,5,opt,name=total_input_file_bytes,json=totalInputFileBytes,proto3" json:"total_input_file_bytes,omitempty"`
1175	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1176	XXX_unrecognized     []byte   `json:"-"`
1177	XXX_sizecache        int32    `json:"-"`
1178}
1179
1180func (m *ExecuteRequest) Reset()         { *m = ExecuteRequest{} }
1181func (m *ExecuteRequest) String() string { return proto.CompactTextString(m) }
1182func (*ExecuteRequest) ProtoMessage()    {}
1183func (*ExecuteRequest) Descriptor() ([]byte, []int) {
1184	return fileDescriptor_1fc46b2dca8a7fdb, []int{11}
1185}
1186
1187func (m *ExecuteRequest) XXX_Unmarshal(b []byte) error {
1188	return xxx_messageInfo_ExecuteRequest.Unmarshal(m, b)
1189}
1190func (m *ExecuteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1191	return xxx_messageInfo_ExecuteRequest.Marshal(b, m, deterministic)
1192}
1193func (m *ExecuteRequest) XXX_Merge(src proto.Message) {
1194	xxx_messageInfo_ExecuteRequest.Merge(m, src)
1195}
1196func (m *ExecuteRequest) XXX_Size() int {
1197	return xxx_messageInfo_ExecuteRequest.Size(m)
1198}
1199func (m *ExecuteRequest) XXX_DiscardUnknown() {
1200	xxx_messageInfo_ExecuteRequest.DiscardUnknown(m)
1201}
1202
1203var xxx_messageInfo_ExecuteRequest proto.InternalMessageInfo
1204
1205func (m *ExecuteRequest) GetInstanceName() string {
1206	if m != nil {
1207		return m.InstanceName
1208	}
1209	return ""
1210}
1211
1212func (m *ExecuteRequest) GetAction() *Action {
1213	if m != nil {
1214		return m.Action
1215	}
1216	return nil
1217}
1218
1219func (m *ExecuteRequest) GetSkipCacheLookup() bool {
1220	if m != nil {
1221		return m.SkipCacheLookup
1222	}
1223	return false
1224}
1225
1226func (m *ExecuteRequest) GetTotalInputFileCount() int32 {
1227	if m != nil {
1228		return m.TotalInputFileCount
1229	}
1230	return 0
1231}
1232
1233func (m *ExecuteRequest) GetTotalInputFileBytes() int64 {
1234	if m != nil {
1235		return m.TotalInputFileBytes
1236	}
1237	return 0
1238}
1239
1240// A `LogFile` is a log stored in the CAS.
1241type LogFile struct {
1242	// The digest of the log contents.
1243	Digest *Digest `protobuf:"bytes,1,opt,name=digest,proto3" json:"digest,omitempty"`
1244	// This is a hint as to the purpose of the log, and is set to true if the log
1245	// is human-readable text that can be usefully displayed to a user, and false
1246	// otherwise. For instance, if a command-line client wishes to print the
1247	// server logs to the terminal for a failed action, this allows it to avoid
1248	// displaying a binary file.
1249	HumanReadable        bool     `protobuf:"varint,2,opt,name=human_readable,json=humanReadable,proto3" json:"human_readable,omitempty"`
1250	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1251	XXX_unrecognized     []byte   `json:"-"`
1252	XXX_sizecache        int32    `json:"-"`
1253}
1254
1255func (m *LogFile) Reset()         { *m = LogFile{} }
1256func (m *LogFile) String() string { return proto.CompactTextString(m) }
1257func (*LogFile) ProtoMessage()    {}
1258func (*LogFile) Descriptor() ([]byte, []int) {
1259	return fileDescriptor_1fc46b2dca8a7fdb, []int{12}
1260}
1261
1262func (m *LogFile) XXX_Unmarshal(b []byte) error {
1263	return xxx_messageInfo_LogFile.Unmarshal(m, b)
1264}
1265func (m *LogFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1266	return xxx_messageInfo_LogFile.Marshal(b, m, deterministic)
1267}
1268func (m *LogFile) XXX_Merge(src proto.Message) {
1269	xxx_messageInfo_LogFile.Merge(m, src)
1270}
1271func (m *LogFile) XXX_Size() int {
1272	return xxx_messageInfo_LogFile.Size(m)
1273}
1274func (m *LogFile) XXX_DiscardUnknown() {
1275	xxx_messageInfo_LogFile.DiscardUnknown(m)
1276}
1277
1278var xxx_messageInfo_LogFile proto.InternalMessageInfo
1279
1280func (m *LogFile) GetDigest() *Digest {
1281	if m != nil {
1282		return m.Digest
1283	}
1284	return nil
1285}
1286
1287func (m *LogFile) GetHumanReadable() bool {
1288	if m != nil {
1289		return m.HumanReadable
1290	}
1291	return false
1292}
1293
1294// The response message for
1295// [Execution.Execute][google.devtools.remoteexecution.v1test.Execution.Execute],
1296// which will be contained in the [response
1297// field][google.longrunning.Operation.response] of the
1298// [Operation][google.longrunning.Operation].
1299type ExecuteResponse struct {
1300	// The result of the action.
1301	Result *ActionResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
1302	// True if the result was served from cache, false if it was executed.
1303	CachedResult bool `protobuf:"varint,2,opt,name=cached_result,json=cachedResult,proto3" json:"cached_result,omitempty"`
1304	// If the status has a code other than `OK`, it indicates that the action did
1305	// not finish execution. For example, if the operation times out during
1306	// execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST
1307	// use this field for errors in execution, rather than the error field on the
1308	// `Operation` object.
1309	//
1310	// If the status code is other than `OK`, then the result MUST NOT be cached.
1311	// For an error status, the `result` field is optional; the server may
1312	// populate the output-, stdout-, and stderr-related fields if it has any
1313	// information available, such as the stdout and stderr of a timed-out action.
1314	Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
1315	// An optional list of additional log outputs the server wishes to provide. A
1316	// server can use this to return execution-specific logs however it wishes.
1317	// This is intended primarily to make it easier for users to debug issues that
1318	// may be outside of the actual job execution, such as by identifying the
1319	// worker executing the action or by providing logs from the worker's setup
1320	// phase. The keys SHOULD be human readable so that a client can display them
1321	// to a user.
1322	ServerLogs           map[string]*LogFile `protobuf:"bytes,4,rep,name=server_logs,json=serverLogs,proto3" json:"server_logs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
1323	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
1324	XXX_unrecognized     []byte              `json:"-"`
1325	XXX_sizecache        int32               `json:"-"`
1326}
1327
1328func (m *ExecuteResponse) Reset()         { *m = ExecuteResponse{} }
1329func (m *ExecuteResponse) String() string { return proto.CompactTextString(m) }
1330func (*ExecuteResponse) ProtoMessage()    {}
1331func (*ExecuteResponse) Descriptor() ([]byte, []int) {
1332	return fileDescriptor_1fc46b2dca8a7fdb, []int{13}
1333}
1334
1335func (m *ExecuteResponse) XXX_Unmarshal(b []byte) error {
1336	return xxx_messageInfo_ExecuteResponse.Unmarshal(m, b)
1337}
1338func (m *ExecuteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1339	return xxx_messageInfo_ExecuteResponse.Marshal(b, m, deterministic)
1340}
1341func (m *ExecuteResponse) XXX_Merge(src proto.Message) {
1342	xxx_messageInfo_ExecuteResponse.Merge(m, src)
1343}
1344func (m *ExecuteResponse) XXX_Size() int {
1345	return xxx_messageInfo_ExecuteResponse.Size(m)
1346}
1347func (m *ExecuteResponse) XXX_DiscardUnknown() {
1348	xxx_messageInfo_ExecuteResponse.DiscardUnknown(m)
1349}
1350
1351var xxx_messageInfo_ExecuteResponse proto.InternalMessageInfo
1352
1353func (m *ExecuteResponse) GetResult() *ActionResult {
1354	if m != nil {
1355		return m.Result
1356	}
1357	return nil
1358}
1359
1360func (m *ExecuteResponse) GetCachedResult() bool {
1361	if m != nil {
1362		return m.CachedResult
1363	}
1364	return false
1365}
1366
1367func (m *ExecuteResponse) GetStatus() *status.Status {
1368	if m != nil {
1369		return m.Status
1370	}
1371	return nil
1372}
1373
1374func (m *ExecuteResponse) GetServerLogs() map[string]*LogFile {
1375	if m != nil {
1376		return m.ServerLogs
1377	}
1378	return nil
1379}
1380
1381// Metadata about an ongoing
1382// [execution][google.devtools.remoteexecution.v1test.Execution.Execute], which
1383// will be contained in the [metadata
1384// field][google.longrunning.Operation.response] of the
1385// [Operation][google.longrunning.Operation].
1386type ExecuteOperationMetadata struct {
1387	Stage ExecuteOperationMetadata_Stage `protobuf:"varint,1,opt,name=stage,proto3,enum=google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage" json:"stage,omitempty"`
1388	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
1389	// being executed.
1390	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
1391	// If set, the client can use this name with
1392	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
1393	// standard output.
1394	StdoutStreamName string `protobuf:"bytes,3,opt,name=stdout_stream_name,json=stdoutStreamName,proto3" json:"stdout_stream_name,omitempty"`
1395	// If set, the client can use this name with
1396	// [ByteStream.Read][google.bytestream.ByteStream.Read] to stream the
1397	// standard error.
1398	StderrStreamName     string   `protobuf:"bytes,4,opt,name=stderr_stream_name,json=stderrStreamName,proto3" json:"stderr_stream_name,omitempty"`
1399	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1400	XXX_unrecognized     []byte   `json:"-"`
1401	XXX_sizecache        int32    `json:"-"`
1402}
1403
1404func (m *ExecuteOperationMetadata) Reset()         { *m = ExecuteOperationMetadata{} }
1405func (m *ExecuteOperationMetadata) String() string { return proto.CompactTextString(m) }
1406func (*ExecuteOperationMetadata) ProtoMessage()    {}
1407func (*ExecuteOperationMetadata) Descriptor() ([]byte, []int) {
1408	return fileDescriptor_1fc46b2dca8a7fdb, []int{14}
1409}
1410
1411func (m *ExecuteOperationMetadata) XXX_Unmarshal(b []byte) error {
1412	return xxx_messageInfo_ExecuteOperationMetadata.Unmarshal(m, b)
1413}
1414func (m *ExecuteOperationMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1415	return xxx_messageInfo_ExecuteOperationMetadata.Marshal(b, m, deterministic)
1416}
1417func (m *ExecuteOperationMetadata) XXX_Merge(src proto.Message) {
1418	xxx_messageInfo_ExecuteOperationMetadata.Merge(m, src)
1419}
1420func (m *ExecuteOperationMetadata) XXX_Size() int {
1421	return xxx_messageInfo_ExecuteOperationMetadata.Size(m)
1422}
1423func (m *ExecuteOperationMetadata) XXX_DiscardUnknown() {
1424	xxx_messageInfo_ExecuteOperationMetadata.DiscardUnknown(m)
1425}
1426
1427var xxx_messageInfo_ExecuteOperationMetadata proto.InternalMessageInfo
1428
1429func (m *ExecuteOperationMetadata) GetStage() ExecuteOperationMetadata_Stage {
1430	if m != nil {
1431		return m.Stage
1432	}
1433	return ExecuteOperationMetadata_UNKNOWN
1434}
1435
1436func (m *ExecuteOperationMetadata) GetActionDigest() *Digest {
1437	if m != nil {
1438		return m.ActionDigest
1439	}
1440	return nil
1441}
1442
1443func (m *ExecuteOperationMetadata) GetStdoutStreamName() string {
1444	if m != nil {
1445		return m.StdoutStreamName
1446	}
1447	return ""
1448}
1449
1450func (m *ExecuteOperationMetadata) GetStderrStreamName() string {
1451	if m != nil {
1452		return m.StderrStreamName
1453	}
1454	return ""
1455}
1456
1457// A request message for
1458// [ActionCache.GetActionResult][google.devtools.remoteexecution.v1test.ActionCache.GetActionResult].
1459type GetActionResultRequest struct {
1460	// The instance of the execution system to operate against. A server may
1461	// support multiple instances of the execution system (with their own workers,
1462	// storage, caches, etc.). The server MAY require use of this field to select
1463	// between them in an implementation-defined fashion, otherwise it can be
1464	// omitted.
1465	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1466	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
1467	// whose result is requested.
1468	ActionDigest         *Digest  `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
1469	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1470	XXX_unrecognized     []byte   `json:"-"`
1471	XXX_sizecache        int32    `json:"-"`
1472}
1473
1474func (m *GetActionResultRequest) Reset()         { *m = GetActionResultRequest{} }
1475func (m *GetActionResultRequest) String() string { return proto.CompactTextString(m) }
1476func (*GetActionResultRequest) ProtoMessage()    {}
1477func (*GetActionResultRequest) Descriptor() ([]byte, []int) {
1478	return fileDescriptor_1fc46b2dca8a7fdb, []int{15}
1479}
1480
1481func (m *GetActionResultRequest) XXX_Unmarshal(b []byte) error {
1482	return xxx_messageInfo_GetActionResultRequest.Unmarshal(m, b)
1483}
1484func (m *GetActionResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1485	return xxx_messageInfo_GetActionResultRequest.Marshal(b, m, deterministic)
1486}
1487func (m *GetActionResultRequest) XXX_Merge(src proto.Message) {
1488	xxx_messageInfo_GetActionResultRequest.Merge(m, src)
1489}
1490func (m *GetActionResultRequest) XXX_Size() int {
1491	return xxx_messageInfo_GetActionResultRequest.Size(m)
1492}
1493func (m *GetActionResultRequest) XXX_DiscardUnknown() {
1494	xxx_messageInfo_GetActionResultRequest.DiscardUnknown(m)
1495}
1496
1497var xxx_messageInfo_GetActionResultRequest proto.InternalMessageInfo
1498
1499func (m *GetActionResultRequest) GetInstanceName() string {
1500	if m != nil {
1501		return m.InstanceName
1502	}
1503	return ""
1504}
1505
1506func (m *GetActionResultRequest) GetActionDigest() *Digest {
1507	if m != nil {
1508		return m.ActionDigest
1509	}
1510	return nil
1511}
1512
1513// A request message for
1514// [ActionCache.UpdateActionResult][google.devtools.remoteexecution.v1test.ActionCache.UpdateActionResult].
1515type UpdateActionResultRequest struct {
1516	// The instance of the execution system to operate against. A server may
1517	// support multiple instances of the execution system (with their own workers,
1518	// storage, caches, etc.). The server MAY require use of this field to select
1519	// between them in an implementation-defined fashion, otherwise it can be
1520	// omitted.
1521	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1522	// The digest of the [Action][google.devtools.remoteexecution.v1test.Action]
1523	// whose result is being uploaded.
1524	ActionDigest *Digest `protobuf:"bytes,2,opt,name=action_digest,json=actionDigest,proto3" json:"action_digest,omitempty"`
1525	// The [ActionResult][google.devtools.remoteexecution.v1test.ActionResult]
1526	// to store in the cache.
1527	ActionResult         *ActionResult `protobuf:"bytes,3,opt,name=action_result,json=actionResult,proto3" json:"action_result,omitempty"`
1528	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
1529	XXX_unrecognized     []byte        `json:"-"`
1530	XXX_sizecache        int32         `json:"-"`
1531}
1532
1533func (m *UpdateActionResultRequest) Reset()         { *m = UpdateActionResultRequest{} }
1534func (m *UpdateActionResultRequest) String() string { return proto.CompactTextString(m) }
1535func (*UpdateActionResultRequest) ProtoMessage()    {}
1536func (*UpdateActionResultRequest) Descriptor() ([]byte, []int) {
1537	return fileDescriptor_1fc46b2dca8a7fdb, []int{16}
1538}
1539
1540func (m *UpdateActionResultRequest) XXX_Unmarshal(b []byte) error {
1541	return xxx_messageInfo_UpdateActionResultRequest.Unmarshal(m, b)
1542}
1543func (m *UpdateActionResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1544	return xxx_messageInfo_UpdateActionResultRequest.Marshal(b, m, deterministic)
1545}
1546func (m *UpdateActionResultRequest) XXX_Merge(src proto.Message) {
1547	xxx_messageInfo_UpdateActionResultRequest.Merge(m, src)
1548}
1549func (m *UpdateActionResultRequest) XXX_Size() int {
1550	return xxx_messageInfo_UpdateActionResultRequest.Size(m)
1551}
1552func (m *UpdateActionResultRequest) XXX_DiscardUnknown() {
1553	xxx_messageInfo_UpdateActionResultRequest.DiscardUnknown(m)
1554}
1555
1556var xxx_messageInfo_UpdateActionResultRequest proto.InternalMessageInfo
1557
1558func (m *UpdateActionResultRequest) GetInstanceName() string {
1559	if m != nil {
1560		return m.InstanceName
1561	}
1562	return ""
1563}
1564
1565func (m *UpdateActionResultRequest) GetActionDigest() *Digest {
1566	if m != nil {
1567		return m.ActionDigest
1568	}
1569	return nil
1570}
1571
1572func (m *UpdateActionResultRequest) GetActionResult() *ActionResult {
1573	if m != nil {
1574		return m.ActionResult
1575	}
1576	return nil
1577}
1578
1579// A request message for
1580// [ContentAddressableStorage.FindMissingBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs].
1581type FindMissingBlobsRequest struct {
1582	// The instance of the execution system to operate against. A server may
1583	// support multiple instances of the execution system (with their own workers,
1584	// storage, caches, etc.). The server MAY require use of this field to select
1585	// between them in an implementation-defined fashion, otherwise it can be
1586	// omitted.
1587	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1588	// A list of the blobs to check.
1589	BlobDigests          []*Digest `protobuf:"bytes,2,rep,name=blob_digests,json=blobDigests,proto3" json:"blob_digests,omitempty"`
1590	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
1591	XXX_unrecognized     []byte    `json:"-"`
1592	XXX_sizecache        int32     `json:"-"`
1593}
1594
1595func (m *FindMissingBlobsRequest) Reset()         { *m = FindMissingBlobsRequest{} }
1596func (m *FindMissingBlobsRequest) String() string { return proto.CompactTextString(m) }
1597func (*FindMissingBlobsRequest) ProtoMessage()    {}
1598func (*FindMissingBlobsRequest) Descriptor() ([]byte, []int) {
1599	return fileDescriptor_1fc46b2dca8a7fdb, []int{17}
1600}
1601
1602func (m *FindMissingBlobsRequest) XXX_Unmarshal(b []byte) error {
1603	return xxx_messageInfo_FindMissingBlobsRequest.Unmarshal(m, b)
1604}
1605func (m *FindMissingBlobsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1606	return xxx_messageInfo_FindMissingBlobsRequest.Marshal(b, m, deterministic)
1607}
1608func (m *FindMissingBlobsRequest) XXX_Merge(src proto.Message) {
1609	xxx_messageInfo_FindMissingBlobsRequest.Merge(m, src)
1610}
1611func (m *FindMissingBlobsRequest) XXX_Size() int {
1612	return xxx_messageInfo_FindMissingBlobsRequest.Size(m)
1613}
1614func (m *FindMissingBlobsRequest) XXX_DiscardUnknown() {
1615	xxx_messageInfo_FindMissingBlobsRequest.DiscardUnknown(m)
1616}
1617
1618var xxx_messageInfo_FindMissingBlobsRequest proto.InternalMessageInfo
1619
1620func (m *FindMissingBlobsRequest) GetInstanceName() string {
1621	if m != nil {
1622		return m.InstanceName
1623	}
1624	return ""
1625}
1626
1627func (m *FindMissingBlobsRequest) GetBlobDigests() []*Digest {
1628	if m != nil {
1629		return m.BlobDigests
1630	}
1631	return nil
1632}
1633
1634// A response message for
1635// [ContentAddressableStorage.FindMissingBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.FindMissingBlobs].
1636type FindMissingBlobsResponse struct {
1637	// A list of the blobs requested *not* present in the storage.
1638	MissingBlobDigests   []*Digest `protobuf:"bytes,2,rep,name=missing_blob_digests,json=missingBlobDigests,proto3" json:"missing_blob_digests,omitempty"`
1639	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
1640	XXX_unrecognized     []byte    `json:"-"`
1641	XXX_sizecache        int32     `json:"-"`
1642}
1643
1644func (m *FindMissingBlobsResponse) Reset()         { *m = FindMissingBlobsResponse{} }
1645func (m *FindMissingBlobsResponse) String() string { return proto.CompactTextString(m) }
1646func (*FindMissingBlobsResponse) ProtoMessage()    {}
1647func (*FindMissingBlobsResponse) Descriptor() ([]byte, []int) {
1648	return fileDescriptor_1fc46b2dca8a7fdb, []int{18}
1649}
1650
1651func (m *FindMissingBlobsResponse) XXX_Unmarshal(b []byte) error {
1652	return xxx_messageInfo_FindMissingBlobsResponse.Unmarshal(m, b)
1653}
1654func (m *FindMissingBlobsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1655	return xxx_messageInfo_FindMissingBlobsResponse.Marshal(b, m, deterministic)
1656}
1657func (m *FindMissingBlobsResponse) XXX_Merge(src proto.Message) {
1658	xxx_messageInfo_FindMissingBlobsResponse.Merge(m, src)
1659}
1660func (m *FindMissingBlobsResponse) XXX_Size() int {
1661	return xxx_messageInfo_FindMissingBlobsResponse.Size(m)
1662}
1663func (m *FindMissingBlobsResponse) XXX_DiscardUnknown() {
1664	xxx_messageInfo_FindMissingBlobsResponse.DiscardUnknown(m)
1665}
1666
1667var xxx_messageInfo_FindMissingBlobsResponse proto.InternalMessageInfo
1668
1669func (m *FindMissingBlobsResponse) GetMissingBlobDigests() []*Digest {
1670	if m != nil {
1671		return m.MissingBlobDigests
1672	}
1673	return nil
1674}
1675
1676// A single request message for
1677// [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
1678type UpdateBlobRequest struct {
1679	// The digest of the blob. This MUST be the digest of `data`.
1680	ContentDigest *Digest `protobuf:"bytes,1,opt,name=content_digest,json=contentDigest,proto3" json:"content_digest,omitempty"`
1681	// The raw binary data.
1682	Data                 []byte   `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
1683	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1684	XXX_unrecognized     []byte   `json:"-"`
1685	XXX_sizecache        int32    `json:"-"`
1686}
1687
1688func (m *UpdateBlobRequest) Reset()         { *m = UpdateBlobRequest{} }
1689func (m *UpdateBlobRequest) String() string { return proto.CompactTextString(m) }
1690func (*UpdateBlobRequest) ProtoMessage()    {}
1691func (*UpdateBlobRequest) Descriptor() ([]byte, []int) {
1692	return fileDescriptor_1fc46b2dca8a7fdb, []int{19}
1693}
1694
1695func (m *UpdateBlobRequest) XXX_Unmarshal(b []byte) error {
1696	return xxx_messageInfo_UpdateBlobRequest.Unmarshal(m, b)
1697}
1698func (m *UpdateBlobRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1699	return xxx_messageInfo_UpdateBlobRequest.Marshal(b, m, deterministic)
1700}
1701func (m *UpdateBlobRequest) XXX_Merge(src proto.Message) {
1702	xxx_messageInfo_UpdateBlobRequest.Merge(m, src)
1703}
1704func (m *UpdateBlobRequest) XXX_Size() int {
1705	return xxx_messageInfo_UpdateBlobRequest.Size(m)
1706}
1707func (m *UpdateBlobRequest) XXX_DiscardUnknown() {
1708	xxx_messageInfo_UpdateBlobRequest.DiscardUnknown(m)
1709}
1710
1711var xxx_messageInfo_UpdateBlobRequest proto.InternalMessageInfo
1712
1713func (m *UpdateBlobRequest) GetContentDigest() *Digest {
1714	if m != nil {
1715		return m.ContentDigest
1716	}
1717	return nil
1718}
1719
1720func (m *UpdateBlobRequest) GetData() []byte {
1721	if m != nil {
1722		return m.Data
1723	}
1724	return nil
1725}
1726
1727// A request message for
1728// [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
1729type BatchUpdateBlobsRequest struct {
1730	// The instance of the execution system to operate against. A server may
1731	// support multiple instances of the execution system (with their own workers,
1732	// storage, caches, etc.). The server MAY require use of this field to select
1733	// between them in an implementation-defined fashion, otherwise it can be
1734	// omitted.
1735	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1736	// The individual upload requests.
1737	Requests             []*UpdateBlobRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"`
1738	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
1739	XXX_unrecognized     []byte               `json:"-"`
1740	XXX_sizecache        int32                `json:"-"`
1741}
1742
1743func (m *BatchUpdateBlobsRequest) Reset()         { *m = BatchUpdateBlobsRequest{} }
1744func (m *BatchUpdateBlobsRequest) String() string { return proto.CompactTextString(m) }
1745func (*BatchUpdateBlobsRequest) ProtoMessage()    {}
1746func (*BatchUpdateBlobsRequest) Descriptor() ([]byte, []int) {
1747	return fileDescriptor_1fc46b2dca8a7fdb, []int{20}
1748}
1749
1750func (m *BatchUpdateBlobsRequest) XXX_Unmarshal(b []byte) error {
1751	return xxx_messageInfo_BatchUpdateBlobsRequest.Unmarshal(m, b)
1752}
1753func (m *BatchUpdateBlobsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1754	return xxx_messageInfo_BatchUpdateBlobsRequest.Marshal(b, m, deterministic)
1755}
1756func (m *BatchUpdateBlobsRequest) XXX_Merge(src proto.Message) {
1757	xxx_messageInfo_BatchUpdateBlobsRequest.Merge(m, src)
1758}
1759func (m *BatchUpdateBlobsRequest) XXX_Size() int {
1760	return xxx_messageInfo_BatchUpdateBlobsRequest.Size(m)
1761}
1762func (m *BatchUpdateBlobsRequest) XXX_DiscardUnknown() {
1763	xxx_messageInfo_BatchUpdateBlobsRequest.DiscardUnknown(m)
1764}
1765
1766var xxx_messageInfo_BatchUpdateBlobsRequest proto.InternalMessageInfo
1767
1768func (m *BatchUpdateBlobsRequest) GetInstanceName() string {
1769	if m != nil {
1770		return m.InstanceName
1771	}
1772	return ""
1773}
1774
1775func (m *BatchUpdateBlobsRequest) GetRequests() []*UpdateBlobRequest {
1776	if m != nil {
1777		return m.Requests
1778	}
1779	return nil
1780}
1781
1782// A response message for
1783// [ContentAddressableStorage.BatchUpdateBlobs][google.devtools.remoteexecution.v1test.ContentAddressableStorage.BatchUpdateBlobs].
1784type BatchUpdateBlobsResponse struct {
1785	// The responses to the requests.
1786	Responses            []*BatchUpdateBlobsResponse_Response `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
1787	XXX_NoUnkeyedLiteral struct{}                             `json:"-"`
1788	XXX_unrecognized     []byte                               `json:"-"`
1789	XXX_sizecache        int32                                `json:"-"`
1790}
1791
1792func (m *BatchUpdateBlobsResponse) Reset()         { *m = BatchUpdateBlobsResponse{} }
1793func (m *BatchUpdateBlobsResponse) String() string { return proto.CompactTextString(m) }
1794func (*BatchUpdateBlobsResponse) ProtoMessage()    {}
1795func (*BatchUpdateBlobsResponse) Descriptor() ([]byte, []int) {
1796	return fileDescriptor_1fc46b2dca8a7fdb, []int{21}
1797}
1798
1799func (m *BatchUpdateBlobsResponse) XXX_Unmarshal(b []byte) error {
1800	return xxx_messageInfo_BatchUpdateBlobsResponse.Unmarshal(m, b)
1801}
1802func (m *BatchUpdateBlobsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1803	return xxx_messageInfo_BatchUpdateBlobsResponse.Marshal(b, m, deterministic)
1804}
1805func (m *BatchUpdateBlobsResponse) XXX_Merge(src proto.Message) {
1806	xxx_messageInfo_BatchUpdateBlobsResponse.Merge(m, src)
1807}
1808func (m *BatchUpdateBlobsResponse) XXX_Size() int {
1809	return xxx_messageInfo_BatchUpdateBlobsResponse.Size(m)
1810}
1811func (m *BatchUpdateBlobsResponse) XXX_DiscardUnknown() {
1812	xxx_messageInfo_BatchUpdateBlobsResponse.DiscardUnknown(m)
1813}
1814
1815var xxx_messageInfo_BatchUpdateBlobsResponse proto.InternalMessageInfo
1816
1817func (m *BatchUpdateBlobsResponse) GetResponses() []*BatchUpdateBlobsResponse_Response {
1818	if m != nil {
1819		return m.Responses
1820	}
1821	return nil
1822}
1823
1824// A response corresponding to a single blob that the client tried to upload.
1825type BatchUpdateBlobsResponse_Response struct {
1826	// The digest to which this response corresponds.
1827	BlobDigest *Digest `protobuf:"bytes,1,opt,name=blob_digest,json=blobDigest,proto3" json:"blob_digest,omitempty"`
1828	// The result of attempting to upload that blob.
1829	Status               *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
1830	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
1831	XXX_unrecognized     []byte         `json:"-"`
1832	XXX_sizecache        int32          `json:"-"`
1833}
1834
1835func (m *BatchUpdateBlobsResponse_Response) Reset()         { *m = BatchUpdateBlobsResponse_Response{} }
1836func (m *BatchUpdateBlobsResponse_Response) String() string { return proto.CompactTextString(m) }
1837func (*BatchUpdateBlobsResponse_Response) ProtoMessage()    {}
1838func (*BatchUpdateBlobsResponse_Response) Descriptor() ([]byte, []int) {
1839	return fileDescriptor_1fc46b2dca8a7fdb, []int{21, 0}
1840}
1841
1842func (m *BatchUpdateBlobsResponse_Response) XXX_Unmarshal(b []byte) error {
1843	return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Unmarshal(m, b)
1844}
1845func (m *BatchUpdateBlobsResponse_Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1846	return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Marshal(b, m, deterministic)
1847}
1848func (m *BatchUpdateBlobsResponse_Response) XXX_Merge(src proto.Message) {
1849	xxx_messageInfo_BatchUpdateBlobsResponse_Response.Merge(m, src)
1850}
1851func (m *BatchUpdateBlobsResponse_Response) XXX_Size() int {
1852	return xxx_messageInfo_BatchUpdateBlobsResponse_Response.Size(m)
1853}
1854func (m *BatchUpdateBlobsResponse_Response) XXX_DiscardUnknown() {
1855	xxx_messageInfo_BatchUpdateBlobsResponse_Response.DiscardUnknown(m)
1856}
1857
1858var xxx_messageInfo_BatchUpdateBlobsResponse_Response proto.InternalMessageInfo
1859
1860func (m *BatchUpdateBlobsResponse_Response) GetBlobDigest() *Digest {
1861	if m != nil {
1862		return m.BlobDigest
1863	}
1864	return nil
1865}
1866
1867func (m *BatchUpdateBlobsResponse_Response) GetStatus() *status.Status {
1868	if m != nil {
1869		return m.Status
1870	}
1871	return nil
1872}
1873
1874// A request message for
1875// [ContentAddressableStorage.GetTree][google.devtools.remoteexecution.v1test.ContentAddressableStorage.GetTree].
1876type GetTreeRequest struct {
1877	// The instance of the execution system to operate against. A server may
1878	// support multiple instances of the execution system (with their own workers,
1879	// storage, caches, etc.). The server MAY require use of this field to select
1880	// between them in an implementation-defined fashion, otherwise it can be
1881	// omitted.
1882	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
1883	// The digest of the root, which must be an encoded
1884	// [Directory][google.devtools.remoteexecution.v1test.Directory] message
1885	// stored in the
1886	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
1887	RootDigest *Digest `protobuf:"bytes,2,opt,name=root_digest,json=rootDigest,proto3" json:"root_digest,omitempty"`
1888	// A maximum page size to request. If present, the server will request no more
1889	// than this many items. Regardless of whether a page size is specified, the
1890	// server may place its own limit on the number of items to be returned and
1891	// require the client to retrieve more items using a subsequent request.
1892	PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
1893	// A page token, which must be a value received in a previous
1894	// [GetTreeResponse][google.devtools.remoteexecution.v1test.GetTreeResponse].
1895	// If present, the server will use it to return the following page of results.
1896	PageToken            string   `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
1897	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1898	XXX_unrecognized     []byte   `json:"-"`
1899	XXX_sizecache        int32    `json:"-"`
1900}
1901
1902func (m *GetTreeRequest) Reset()         { *m = GetTreeRequest{} }
1903func (m *GetTreeRequest) String() string { return proto.CompactTextString(m) }
1904func (*GetTreeRequest) ProtoMessage()    {}
1905func (*GetTreeRequest) Descriptor() ([]byte, []int) {
1906	return fileDescriptor_1fc46b2dca8a7fdb, []int{22}
1907}
1908
1909func (m *GetTreeRequest) XXX_Unmarshal(b []byte) error {
1910	return xxx_messageInfo_GetTreeRequest.Unmarshal(m, b)
1911}
1912func (m *GetTreeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1913	return xxx_messageInfo_GetTreeRequest.Marshal(b, m, deterministic)
1914}
1915func (m *GetTreeRequest) XXX_Merge(src proto.Message) {
1916	xxx_messageInfo_GetTreeRequest.Merge(m, src)
1917}
1918func (m *GetTreeRequest) XXX_Size() int {
1919	return xxx_messageInfo_GetTreeRequest.Size(m)
1920}
1921func (m *GetTreeRequest) XXX_DiscardUnknown() {
1922	xxx_messageInfo_GetTreeRequest.DiscardUnknown(m)
1923}
1924
1925var xxx_messageInfo_GetTreeRequest proto.InternalMessageInfo
1926
1927func (m *GetTreeRequest) GetInstanceName() string {
1928	if m != nil {
1929		return m.InstanceName
1930	}
1931	return ""
1932}
1933
1934func (m *GetTreeRequest) GetRootDigest() *Digest {
1935	if m != nil {
1936		return m.RootDigest
1937	}
1938	return nil
1939}
1940
1941func (m *GetTreeRequest) GetPageSize() int32 {
1942	if m != nil {
1943		return m.PageSize
1944	}
1945	return 0
1946}
1947
1948func (m *GetTreeRequest) GetPageToken() string {
1949	if m != nil {
1950		return m.PageToken
1951	}
1952	return ""
1953}
1954
1955// A response message for
1956// [ContentAddressableStorage.GetTree][google.devtools.remoteexecution.v1test.ContentAddressableStorage.GetTree].
1957type GetTreeResponse struct {
1958	// The directories descended from the requested root.
1959	Directories []*Directory `protobuf:"bytes,1,rep,name=directories,proto3" json:"directories,omitempty"`
1960	// If present, signifies that there are more results which the client can
1961	// retrieve by passing this as the page_token in a subsequent
1962	// [request][google.devtools.remoteexecution.v1test.GetTreeRequest].
1963	// If empty, signifies that this is the last page of results.
1964	NextPageToken        string   `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
1965	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1966	XXX_unrecognized     []byte   `json:"-"`
1967	XXX_sizecache        int32    `json:"-"`
1968}
1969
1970func (m *GetTreeResponse) Reset()         { *m = GetTreeResponse{} }
1971func (m *GetTreeResponse) String() string { return proto.CompactTextString(m) }
1972func (*GetTreeResponse) ProtoMessage()    {}
1973func (*GetTreeResponse) Descriptor() ([]byte, []int) {
1974	return fileDescriptor_1fc46b2dca8a7fdb, []int{23}
1975}
1976
1977func (m *GetTreeResponse) XXX_Unmarshal(b []byte) error {
1978	return xxx_messageInfo_GetTreeResponse.Unmarshal(m, b)
1979}
1980func (m *GetTreeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1981	return xxx_messageInfo_GetTreeResponse.Marshal(b, m, deterministic)
1982}
1983func (m *GetTreeResponse) XXX_Merge(src proto.Message) {
1984	xxx_messageInfo_GetTreeResponse.Merge(m, src)
1985}
1986func (m *GetTreeResponse) XXX_Size() int {
1987	return xxx_messageInfo_GetTreeResponse.Size(m)
1988}
1989func (m *GetTreeResponse) XXX_DiscardUnknown() {
1990	xxx_messageInfo_GetTreeResponse.DiscardUnknown(m)
1991}
1992
1993var xxx_messageInfo_GetTreeResponse proto.InternalMessageInfo
1994
1995func (m *GetTreeResponse) GetDirectories() []*Directory {
1996	if m != nil {
1997		return m.Directories
1998	}
1999	return nil
2000}
2001
2002func (m *GetTreeResponse) GetNextPageToken() string {
2003	if m != nil {
2004		return m.NextPageToken
2005	}
2006	return ""
2007}
2008
2009// Details for the tool used to call the API.
2010type ToolDetails struct {
2011	// Name of the tool, e.g. bazel.
2012	ToolName string `protobuf:"bytes,1,opt,name=tool_name,json=toolName,proto3" json:"tool_name,omitempty"`
2013	// Version of the tool used for the request, e.g. 5.0.3.
2014	ToolVersion          string   `protobuf:"bytes,2,opt,name=tool_version,json=toolVersion,proto3" json:"tool_version,omitempty"`
2015	XXX_NoUnkeyedLiteral struct{} `json:"-"`
2016	XXX_unrecognized     []byte   `json:"-"`
2017	XXX_sizecache        int32    `json:"-"`
2018}
2019
2020func (m *ToolDetails) Reset()         { *m = ToolDetails{} }
2021func (m *ToolDetails) String() string { return proto.CompactTextString(m) }
2022func (*ToolDetails) ProtoMessage()    {}
2023func (*ToolDetails) Descriptor() ([]byte, []int) {
2024	return fileDescriptor_1fc46b2dca8a7fdb, []int{24}
2025}
2026
2027func (m *ToolDetails) XXX_Unmarshal(b []byte) error {
2028	return xxx_messageInfo_ToolDetails.Unmarshal(m, b)
2029}
2030func (m *ToolDetails) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
2031	return xxx_messageInfo_ToolDetails.Marshal(b, m, deterministic)
2032}
2033func (m *ToolDetails) XXX_Merge(src proto.Message) {
2034	xxx_messageInfo_ToolDetails.Merge(m, src)
2035}
2036func (m *ToolDetails) XXX_Size() int {
2037	return xxx_messageInfo_ToolDetails.Size(m)
2038}
2039func (m *ToolDetails) XXX_DiscardUnknown() {
2040	xxx_messageInfo_ToolDetails.DiscardUnknown(m)
2041}
2042
2043var xxx_messageInfo_ToolDetails proto.InternalMessageInfo
2044
2045func (m *ToolDetails) GetToolName() string {
2046	if m != nil {
2047		return m.ToolName
2048	}
2049	return ""
2050}
2051
2052func (m *ToolDetails) GetToolVersion() string {
2053	if m != nil {
2054		return m.ToolVersion
2055	}
2056	return ""
2057}
2058
2059// An optional Metadata to attach to any RPC request to tell the server about an
2060// external context of the request. The server may use this for logging or other
2061// purposes. To use it, the client attaches the header to the call using the
2062// canonical proto serialization:
2063// name: google.devtools.remoteexecution.v1test.requestmetadata-bin
2064// contents: the base64 encoded binary RequestMetadata message.
2065type RequestMetadata struct {
2066	// The details for the tool invoking the requests.
2067	ToolDetails *ToolDetails `protobuf:"bytes,1,opt,name=tool_details,json=toolDetails,proto3" json:"tool_details,omitempty"`
2068	// An identifier that ties multiple requests to the same action.
2069	// For example, multiple requests to the CAS, Action Cache, and Execution
2070	// API are used in order to compile foo.cc.
2071	ActionId string `protobuf:"bytes,2,opt,name=action_id,json=actionId,proto3" json:"action_id,omitempty"`
2072	// An identifier that ties multiple actions together to a final result.
2073	// For example, multiple actions are required to build and run foo_test.
2074	ToolInvocationId string `protobuf:"bytes,3,opt,name=tool_invocation_id,json=toolInvocationId,proto3" json:"tool_invocation_id,omitempty"`
2075	// An identifier to tie multiple tool invocations together. For example,
2076	// runs of foo_test, bar_test and baz_test on a post-submit of a given patch.
2077	CorrelatedInvocationsId string   `protobuf:"bytes,4,opt,name=correlated_invocations_id,json=correlatedInvocationsId,proto3" json:"correlated_invocations_id,omitempty"`
2078	XXX_NoUnkeyedLiteral    struct{} `json:"-"`
2079	XXX_unrecognized        []byte   `json:"-"`
2080	XXX_sizecache           int32    `json:"-"`
2081}
2082
2083func (m *RequestMetadata) Reset()         { *m = RequestMetadata{} }
2084func (m *RequestMetadata) String() string { return proto.CompactTextString(m) }
2085func (*RequestMetadata) ProtoMessage()    {}
2086func (*RequestMetadata) Descriptor() ([]byte, []int) {
2087	return fileDescriptor_1fc46b2dca8a7fdb, []int{25}
2088}
2089
2090func (m *RequestMetadata) XXX_Unmarshal(b []byte) error {
2091	return xxx_messageInfo_RequestMetadata.Unmarshal(m, b)
2092}
2093func (m *RequestMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
2094	return xxx_messageInfo_RequestMetadata.Marshal(b, m, deterministic)
2095}
2096func (m *RequestMetadata) XXX_Merge(src proto.Message) {
2097	xxx_messageInfo_RequestMetadata.Merge(m, src)
2098}
2099func (m *RequestMetadata) XXX_Size() int {
2100	return xxx_messageInfo_RequestMetadata.Size(m)
2101}
2102func (m *RequestMetadata) XXX_DiscardUnknown() {
2103	xxx_messageInfo_RequestMetadata.DiscardUnknown(m)
2104}
2105
2106var xxx_messageInfo_RequestMetadata proto.InternalMessageInfo
2107
2108func (m *RequestMetadata) GetToolDetails() *ToolDetails {
2109	if m != nil {
2110		return m.ToolDetails
2111	}
2112	return nil
2113}
2114
2115func (m *RequestMetadata) GetActionId() string {
2116	if m != nil {
2117		return m.ActionId
2118	}
2119	return ""
2120}
2121
2122func (m *RequestMetadata) GetToolInvocationId() string {
2123	if m != nil {
2124		return m.ToolInvocationId
2125	}
2126	return ""
2127}
2128
2129func (m *RequestMetadata) GetCorrelatedInvocationsId() string {
2130	if m != nil {
2131		return m.CorrelatedInvocationsId
2132	}
2133	return ""
2134}
2135
2136func init() {
2137	proto.RegisterEnum("google.devtools.remoteexecution.v1test.ExecuteOperationMetadata_Stage", ExecuteOperationMetadata_Stage_name, ExecuteOperationMetadata_Stage_value)
2138	proto.RegisterType((*Action)(nil), "google.devtools.remoteexecution.v1test.Action")
2139	proto.RegisterType((*Command)(nil), "google.devtools.remoteexecution.v1test.Command")
2140	proto.RegisterType((*Command_EnvironmentVariable)(nil), "google.devtools.remoteexecution.v1test.Command.EnvironmentVariable")
2141	proto.RegisterType((*Platform)(nil), "google.devtools.remoteexecution.v1test.Platform")
2142	proto.RegisterType((*Platform_Property)(nil), "google.devtools.remoteexecution.v1test.Platform.Property")
2143	proto.RegisterType((*Directory)(nil), "google.devtools.remoteexecution.v1test.Directory")
2144	proto.RegisterType((*FileNode)(nil), "google.devtools.remoteexecution.v1test.FileNode")
2145	proto.RegisterType((*DirectoryNode)(nil), "google.devtools.remoteexecution.v1test.DirectoryNode")
2146	proto.RegisterType((*Digest)(nil), "google.devtools.remoteexecution.v1test.Digest")
2147	proto.RegisterType((*ActionResult)(nil), "google.devtools.remoteexecution.v1test.ActionResult")
2148	proto.RegisterType((*OutputFile)(nil), "google.devtools.remoteexecution.v1test.OutputFile")
2149	proto.RegisterType((*Tree)(nil), "google.devtools.remoteexecution.v1test.Tree")
2150	proto.RegisterType((*OutputDirectory)(nil), "google.devtools.remoteexecution.v1test.OutputDirectory")
2151	proto.RegisterType((*ExecuteRequest)(nil), "google.devtools.remoteexecution.v1test.ExecuteRequest")
2152	proto.RegisterType((*LogFile)(nil), "google.devtools.remoteexecution.v1test.LogFile")
2153	proto.RegisterType((*ExecuteResponse)(nil), "google.devtools.remoteexecution.v1test.ExecuteResponse")
2154	proto.RegisterMapType((map[string]*LogFile)(nil), "google.devtools.remoteexecution.v1test.ExecuteResponse.ServerLogsEntry")
2155	proto.RegisterType((*ExecuteOperationMetadata)(nil), "google.devtools.remoteexecution.v1test.ExecuteOperationMetadata")
2156	proto.RegisterType((*GetActionResultRequest)(nil), "google.devtools.remoteexecution.v1test.GetActionResultRequest")
2157	proto.RegisterType((*UpdateActionResultRequest)(nil), "google.devtools.remoteexecution.v1test.UpdateActionResultRequest")
2158	proto.RegisterType((*FindMissingBlobsRequest)(nil), "google.devtools.remoteexecution.v1test.FindMissingBlobsRequest")
2159	proto.RegisterType((*FindMissingBlobsResponse)(nil), "google.devtools.remoteexecution.v1test.FindMissingBlobsResponse")
2160	proto.RegisterType((*UpdateBlobRequest)(nil), "google.devtools.remoteexecution.v1test.UpdateBlobRequest")
2161	proto.RegisterType((*BatchUpdateBlobsRequest)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsRequest")
2162	proto.RegisterType((*BatchUpdateBlobsResponse)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsResponse")
2163	proto.RegisterType((*BatchUpdateBlobsResponse_Response)(nil), "google.devtools.remoteexecution.v1test.BatchUpdateBlobsResponse.Response")
2164	proto.RegisterType((*GetTreeRequest)(nil), "google.devtools.remoteexecution.v1test.GetTreeRequest")
2165	proto.RegisterType((*GetTreeResponse)(nil), "google.devtools.remoteexecution.v1test.GetTreeResponse")
2166	proto.RegisterType((*ToolDetails)(nil), "google.devtools.remoteexecution.v1test.ToolDetails")
2167	proto.RegisterType((*RequestMetadata)(nil), "google.devtools.remoteexecution.v1test.RequestMetadata")
2168}
2169
2170func init() {
2171	proto.RegisterFile("google/devtools/remoteexecution/v1test/remote_execution.proto", fileDescriptor_1fc46b2dca8a7fdb)
2172}
2173
2174var fileDescriptor_1fc46b2dca8a7fdb = []byte{
2175	// 2025 bytes of a gzipped FileDescriptorProto
2176	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xdd, 0x6f, 0x23, 0x57,
2177	0x15, 0x67, 0xec, 0x24, 0xb6, 0x8f, 0x9d, 0x75, 0xf6, 0x76, 0xe9, 0x7a, 0xdd, 0x2e, 0x4a, 0xa7,
2178	0xa2, 0x8a, 0xa2, 0x62, 0xb3, 0xde, 0x96, 0x85, 0x54, 0xa5, 0x6c, 0x1c, 0x27, 0x8d, 0x9a, 0xaf,
2179	0x4e, 0xe2, 0x74, 0xbb, 0xaa, 0x34, 0x9d, 0x78, 0x6e, 0xc6, 0xa3, 0xd8, 0x73, 0xcd, 0xbd, 0xd7,
2180	0x69, 0xd2, 0x65, 0x79, 0xe0, 0x05, 0x09, 0x04, 0x12, 0x54, 0x08, 0x24, 0x78, 0x42, 0x42, 0x48,
2181	0x88, 0x27, 0xfe, 0x00, 0x24, 0xf8, 0x03, 0x78, 0x80, 0x17, 0x9e, 0x11, 0x2f, 0xbc, 0xf1, 0xdc,
2182	0x07, 0x84, 0xee, 0xc7, 0x7c, 0xd8, 0xc9, 0xb2, 0x63, 0x67, 0x57, 0xe2, 0xcd, 0x73, 0xce, 0x3d,
2183	0xbf, 0xf3, 0x79, 0xcf, 0x39, 0x33, 0x86, 0xb7, 0x3d, 0x42, 0xbc, 0x1e, 0xae, 0xbb, 0xf8, 0x94,
2184	0x13, 0xd2, 0x63, 0x75, 0x8a, 0xfb, 0x84, 0x63, 0x7c, 0x86, 0x3b, 0x43, 0xee, 0x93, 0xa0, 0x7e,
2185	0x7a, 0x87, 0x63, 0xc6, 0x35, 0xd9, 0x8e, 0xe8, 0xb5, 0x01, 0x25, 0x9c, 0xa0, 0xd7, 0x94, 0x78,
2186	0x2d, 0x14, 0xaf, 0x8d, 0x89, 0xd7, 0x94, 0x78, 0xf5, 0x65, 0xad, 0xc6, 0x19, 0xf8, 0x75, 0x27,
2187	0x08, 0x08, 0x77, 0x04, 0x97, 0x29, 0x94, 0xea, 0xab, 0x9a, 0xdb, 0x23, 0x81, 0x47, 0x87, 0x41,
2188	0xe0, 0x07, 0x5e, 0x9d, 0x0c, 0x30, 0x1d, 0x39, 0xf4, 0x25, 0x7d, 0x48, 0x3e, 0x1d, 0x0d, 0x8f,
2189	0xeb, 0xee, 0x50, 0x1d, 0xd0, 0xfc, 0x9b, 0x9a, 0x4f, 0x07, 0x9d, 0x3a, 0xe3, 0x0e, 0x1f, 0x6a,
2190	0x41, 0xf3, 0x0f, 0x59, 0x98, 0xbb, 0xdf, 0x11, 0x27, 0x51, 0x1b, 0xae, 0x75, 0x48, 0xbf, 0xef,
2191	0x04, 0xae, 0xed, 0xfa, 0x1e, 0x66, 0xbc, 0x62, 0x2c, 0x1a, 0x4b, 0xc5, 0x46, 0xad, 0x96, 0xce,
2192	0x8f, 0xda, 0x9a, 0x94, 0xb2, 0xe6, 0x35, 0x8a, 0x7a, 0x44, 0x0f, 0xe1, 0xba, 0x1f, 0x0c, 0x86,
2193	0xdc, 0xa6, 0x84, 0xf0, 0x10, 0x39, 0x33, 0x15, 0x72, 0x59, 0x02, 0x59, 0x84, 0x70, 0x8d, 0xfd,
2194	0x0a, 0x94, 0xc8, 0x90, 0x0b, 0xf0, 0x63, 0xbf, 0x87, 0x59, 0x25, 0xbb, 0x98, 0x5d, 0x2a, 0x58,
2195	0x45, 0x45, 0x5b, 0x17, 0x24, 0xf4, 0x15, 0x40, 0xfa, 0x88, 0xeb, 0x53, 0xdc, 0xe1, 0x84, 0xfa,
2196	0x98, 0x55, 0x66, 0xe4, 0xc1, 0xeb, 0x8a, 0xb3, 0x16, 0x33, 0xd0, 0x16, 0xe4, 0x07, 0x3d, 0x87,
2197	0x1f, 0x13, 0xda, 0xaf, 0xcc, 0x4a, 0x23, 0xbf, 0x9a, 0xd6, 0xc8, 0x3d, 0x2d, 0x67, 0x45, 0x08,
2198	0xe8, 0x2e, 0xe4, 0xb8, 0xdf, 0xc7, 0x64, 0xc8, 0x2b, 0x73, 0x12, 0xec, 0x56, 0x08, 0x16, 0x26,
2199	0xaa, 0xb6, 0xa6, 0x13, 0x65, 0x85, 0x27, 0xd1, 0x22, 0x94, 0x5c, 0x62, 0x07, 0x84, 0xdb, 0x1d,
2200	0xa7, 0xd3, 0xc5, 0x95, 0xdc, 0xa2, 0xb1, 0x94, 0xb7, 0xc0, 0x25, 0x3b, 0x84, 0x37, 0x05, 0xc5,
2201	0xfc, 0x87, 0x01, 0xb9, 0xa6, 0x0a, 0x32, 0x7a, 0x19, 0x0a, 0x0e, 0xf5, 0x86, 0x7d, 0x1c, 0x70,
2202	0x56, 0x31, 0xa4, 0x5b, 0x31, 0x01, 0x9d, 0xc1, 0x17, 0x71, 0x70, 0xea, 0x53, 0x12, 0x88, 0x67,
2203	0xfb, 0xd4, 0xa1, 0xbe, 0x73, 0x24, 0x22, 0x95, 0x59, 0xcc, 0x2e, 0x15, 0x1b, 0xcd, 0xb4, 0xbe,
2204	0x69, 0x6d, 0xb5, 0x56, 0x0c, 0x76, 0xa8, 0xb1, 0xac, 0x1b, 0xf8, 0x22, 0x91, 0x55, 0xdf, 0x81,
2205	0x17, 0x2e, 0x39, 0x8c, 0x10, 0xcc, 0x04, 0x4e, 0x1f, 0xcb, 0xd2, 0x2a, 0x58, 0xf2, 0x37, 0xba,
2206	0x01, 0xb3, 0xa7, 0x4e, 0x6f, 0x88, 0x65, 0x55, 0x14, 0x2c, 0xf5, 0x60, 0xfe, 0xd2, 0x80, 0x7c,
2207	0x18, 0x52, 0xf4, 0x21, 0xc0, 0x80, 0x8a, 0xaa, 0xe7, 0x22, 0x7b, 0x86, 0x34, 0xfe, 0x1b, 0x93,
2208	0x26, 0xa6, 0xb6, 0xa7, 0x20, 0xce, 0xad, 0x04, 0x58, 0xf5, 0x0d, 0xc8, 0x87, 0xf4, 0x09, 0xac,
2209	0xfb, 0xbd, 0x01, 0x85, 0xb0, 0x6e, 0xce, 0xd1, 0x3a, 0xcc, 0xaa, 0x02, 0x54, 0x96, 0xa5, 0x2e,
2210	0x19, 0x51, 0xa2, 0x3b, 0xc4, 0xc5, 0x96, 0x12, 0x47, 0x1f, 0x40, 0x31, 0x59, 0xa5, 0x2a, 0x49,
2211	0x6f, 0xa6, 0xbf, 0x25, 0xda, 0x1e, 0x09, 0x99, 0x44, 0x32, 0x7f, 0x68, 0x40, 0x3e, 0x54, 0x76,
2212	0xa9, 0x97, 0xeb, 0x30, 0x77, 0xa5, 0xab, 0xa9, 0xa5, 0xd1, 0xab, 0x30, 0xef, 0x33, 0xdd, 0x09,
2213	0x45, 0xc2, 0x2b, 0x33, 0xb2, 0x7a, 0x4b, 0x3e, 0x6b, 0x45, 0x34, 0xf3, 0x04, 0xe6, 0x47, 0x6c,
2214	0x7d, 0x9e, 0x16, 0x99, 0x6f, 0xc1, 0x9c, 0xee, 0x16, 0x08, 0x66, 0xba, 0x0e, 0xeb, 0x86, 0x5a,
2215	0xc4, 0x6f, 0x74, 0x1b, 0x80, 0xf9, 0x9f, 0x62, 0xfb, 0xe8, 0x9c, 0xcb, 0x80, 0x1b, 0x4b, 0x59,
2216	0xab, 0x20, 0x28, 0xab, 0x82, 0x60, 0xfe, 0x35, 0x0b, 0x25, 0xd5, 0x1e, 0x2d, 0xcc, 0x86, 0x3d,
2217	0x8e, 0xda, 0x63, 0x1d, 0x47, 0xa5, 0xa8, 0x91, 0xd6, 0xb6, 0xdd, 0xa8, 0x33, 0x8d, 0x76, 0xa9,
2218	0xe3, 0x4b, 0xbb, 0x54, 0x56, 0x82, 0xdf, 0x9b, 0x0c, 0x3c, 0x8a, 0xec, 0x65, 0xed, 0xed, 0x25,
2219	0x28, 0xe0, 0x33, 0x9f, 0xdb, 0x1d, 0xe2, 0xaa, 0xd4, 0xcc, 0x5a, 0x79, 0x41, 0x68, 0x8a, 0x2c,
2220	0x88, 0x58, 0x70, 0x97, 0x88, 0x56, 0xed, 0x7c, 0x22, 0xbb, 0x5f, 0xc9, 0x2a, 0x28, 0x8a, 0xe5,
2221	0x7c, 0x82, 0xf6, 0x61, 0x5e, 0xb3, 0x75, 0x5e, 0xe6, 0xa6, 0xca, 0x4b, 0x49, 0x81, 0xe8, 0x9c,
2222	0x28, 0x9d, 0x98, 0x52, 0xa9, 0x33, 0x17, 0xe9, 0xc4, 0x94, 0xc6, 0x3a, 0x05, 0x5b, 0xeb, 0xcc,
2223	0x4f, 0xad, 0x13, 0x53, 0xaa, 0x9e, 0xcc, 0xdf, 0x1a, 0x00, 0x71, 0x22, 0x44, 0x59, 0x0c, 0x1c,
2224	0x1e, 0x95, 0x85, 0xf8, 0xfd, 0xcc, 0xae, 0x43, 0x05, 0x72, 0x1d, 0x12, 0x70, 0x1c, 0xf0, 0x4a,
2225	0x56, 0xfa, 0x16, 0x3e, 0xa6, 0xbb, 0x28, 0xbf, 0x32, 0x60, 0xe6, 0x80, 0x62, 0x8c, 0x5a, 0x30,
2226	0x23, 0xc6, 0xa7, 0x9e, 0xc8, 0x77, 0x26, 0xee, 0x08, 0x96, 0x14, 0x47, 0xdb, 0x90, 0xef, 0x74,
2227	0xfd, 0x9e, 0x4b, 0x71, 0xa0, 0x2b, 0x77, 0x0a, 0xa8, 0x08, 0xc2, 0xfc, 0xa3, 0x01, 0xe5, 0xb1,
2228	0xa2, 0x7b, 0xae, 0xd1, 0xdc, 0x85, 0x22, 0xa7, 0x18, 0x87, 0xb5, 0x90, 0x9d, 0x0a, 0x0c, 0x04,
2229	0x84, 0xae, 0x84, 0xcf, 0x32, 0x70, 0x4d, 0x85, 0x1b, 0x5b, 0xf8, 0xdb, 0xc3, 0xb0, 0x81, 0x05,
2230	0x8c, 0x3b, 0x41, 0x07, 0xdb, 0x89, 0x9e, 0x54, 0x0a, 0x89, 0x3b, 0xba, 0x37, 0x39, 0xb2, 0x2b,
2231	0x4c, 0xea, 0x90, 0xee, 0x25, 0x5a, 0x1a, 0x2d, 0xc3, 0x75, 0x76, 0xe2, 0x0f, 0xd4, 0xa0, 0xb7,
2232	0x7b, 0x84, 0x9c, 0x0c, 0x07, 0xd2, 0xad, 0xbc, 0x55, 0x16, 0x0c, 0x39, 0xee, 0xb7, 0x24, 0x19,
2233	0xdd, 0x85, 0x17, 0x39, 0xe1, 0x4e, 0xcf, 0x56, 0xdb, 0x94, 0x68, 0x3f, 0x76, 0x87, 0x0c, 0x03,
2234	0xae, 0xef, 0xf1, 0x0b, 0x92, 0xbb, 0x19, 0xe8, 0xb2, 0x6e, 0x0a, 0xd6, 0xa5, 0x42, 0xaa, 0xd5,
2235	0xcd, 0xca, 0x56, 0x37, 0x26, 0xa4, 0x9a, 0xde, 0x19, 0xe4, 0xb6, 0x88, 0x27, 0xef, 0x46, 0x9c,
2236	0x39, 0xe3, 0x4a, 0x99, 0xfb, 0x32, 0x5c, 0xeb, 0x0e, 0xfb, 0x4e, 0x60, 0x53, 0xec, 0xb8, 0xb2,
2237	0xdc, 0x33, 0xd2, 0xcb, 0x79, 0x49, 0xb5, 0x34, 0xd1, 0xfc, 0x41, 0x16, 0xca, 0x51, 0x3e, 0xd8,
2238	0x80, 0x04, 0x0c, 0xa3, 0x2d, 0x98, 0xa3, 0xb2, 0xf7, 0x6a, 0x13, 0xde, 0x98, 0x30, 0xd6, 0x52,
2239	0xd6, 0xd2, 0x18, 0x22, 0xbd, 0x32, 0xd8, 0xae, 0xad, 0x41, 0x95, 0x1d, 0x25, 0x45, 0xd4, 0x4d,
2240	0x7e, 0x19, 0xe6, 0xd4, 0x92, 0xac, 0x4b, 0x0c, 0x85, 0x2a, 0xe9, 0xa0, 0x53, 0xdb, 0x97, 0x1c,
2241	0x4b, 0x9f, 0x40, 0x5d, 0x28, 0x32, 0x4c, 0x4f, 0x31, 0xb5, 0x7b, 0xc4, 0x53, 0x8b, 0x65, 0xb1,
2242	0xb1, 0x91, 0xd6, 0xc6, 0x31, 0x67, 0x6b, 0xfb, 0x12, 0x6a, 0x8b, 0x78, 0xac, 0x15, 0x70, 0x7a,
2243	0x6e, 0x01, 0x8b, 0x08, 0xd5, 0x00, 0xca, 0x63, 0x6c, 0xb4, 0x00, 0xd9, 0x13, 0x7c, 0xae, 0x4b,
2244	0x54, 0xfc, 0x44, 0xad, 0xe4, 0xb6, 0x52, 0x6c, 0xd4, 0xd3, 0x1a, 0xa2, 0x13, 0xae, 0xd7, 0x9b,
2245	0x95, 0xcc, 0xd7, 0x0d, 0xf3, 0xf3, 0x0c, 0x54, 0xb4, 0x7d, 0xbb, 0xe1, 0xfb, 0xc6, 0x36, 0xe6,
2246	0x8e, 0xeb, 0x70, 0x07, 0x7d, 0x04, 0xb3, 0x8c, 0x3b, 0x9e, 0xba, 0x1e, 0xd7, 0x1a, 0xeb, 0x13,
2247	0x3a, 0x7c, 0x01, 0x50, 0x84, 0xd5, 0xc3, 0x96, 0x02, 0x15, 0x6d, 0x5f, 0xdd, 0x90, 0xab, 0xbd,
2248	0x2f, 0x94, 0x14, 0x88, 0x1e, 0x35, 0xaf, 0x03, 0xd2, 0xf3, 0x8b, 0x71, 0x8a, 0x9d, 0xbe, 0xba,
2249	0xde, 0x59, 0x19, 0xbb, 0x05, 0xc5, 0xd9, 0x97, 0x0c, 0x79, 0xc5, 0xd5, 0x69, 0x31, 0x79, 0x92,
2250	0xa7, 0x67, 0xa2, 0xd3, 0x98, 0xd2, 0xf8, 0xb4, 0xb9, 0x0b, 0xb3, 0xd2, 0x01, 0x54, 0x84, 0x5c,
2251	0x7b, 0xe7, 0xbd, 0x9d, 0xdd, 0x0f, 0x76, 0x16, 0xbe, 0x80, 0xca, 0x50, 0x6c, 0xde, 0x6f, 0xbe,
2252	0xdb, 0xb2, 0x9b, 0xef, 0xb6, 0x9a, 0xef, 0x2d, 0x18, 0x08, 0x60, 0xee, 0xfd, 0x76, 0xab, 0xdd,
2253	0x5a, 0x5b, 0xc8, 0xa0, 0x79, 0x28, 0xb4, 0x1e, 0xb4, 0x9a, 0xed, 0x83, 0xcd, 0x9d, 0x8d, 0x85,
2254	0xac, 0x78, 0x6c, 0xee, 0x6e, 0xef, 0x6d, 0xb5, 0x0e, 0x5a, 0x6b, 0x0b, 0x33, 0xe6, 0x4f, 0x0d,
2255	0x78, 0x71, 0x03, 0xf3, 0x91, 0x1a, 0x9e, 0xa4, 0x43, 0x3d, 0x8f, 0x08, 0x9a, 0xff, 0x36, 0xe0,
2256	0x56, 0x7b, 0xe0, 0x3a, 0x1c, 0xff, 0x5f, 0xd9, 0x85, 0x3e, 0x8c, 0x40, 0xf5, 0xa5, 0xce, 0x5e,
2257	0xa1, 0x53, 0x68, 0x68, 0xf5, 0x64, 0xfe, 0xc4, 0x80, 0x9b, 0xeb, 0x7e, 0xe0, 0x6e, 0xfb, 0x8c,
2258	0xf9, 0x81, 0xb7, 0xda, 0x23, 0x47, 0x6c, 0x22, 0x87, 0xdf, 0x87, 0xd2, 0x51, 0x8f, 0x1c, 0x69,
2259	0x77, 0xc3, 0x85, 0x71, 0x52, 0x7f, 0x8b, 0x02, 0x43, 0xfd, 0x66, 0xe6, 0x77, 0xa0, 0x72, 0xd1,
2260	0x24, 0xdd, 0x2d, 0x3f, 0x86, 0x1b, 0x7d, 0x45, 0xb7, 0x9f, 0x81, 0x5a, 0xd4, 0x8f, 0x75, 0x84,
2261	0xda, 0xbf, 0x0b, 0xd7, 0x55, 0x0d, 0x08, 0x62, 0x18, 0x0a, 0xf9, 0xed, 0x40, 0x2e, 0x36, 0x57,
2262	0xfe, 0x76, 0x20, 0x51, 0xe2, 0x8d, 0x5d, 0x34, 0x07, 0x59, 0x24, 0x25, 0x4b, 0xfe, 0x36, 0x7f,
2263	0x66, 0xc0, 0xcd, 0x55, 0x87, 0x77, 0xba, 0xb1, 0x15, 0x93, 0x65, 0xa4, 0x0d, 0x79, 0xaa, 0xce,
2264	0x87, 0x61, 0x49, 0xfd, 0x26, 0x79, 0xc1, 0x71, 0x2b, 0x82, 0x32, 0x7f, 0x94, 0x81, 0xca, 0x45,
2265	0xbb, 0x74, 0x5a, 0x3c, 0x28, 0x50, 0xfd, 0x3b, 0x7c, 0x49, 0xdc, 0x4c, 0xab, 0xf4, 0x49, 0xa0,
2266	0xb5, 0xf0, 0x87, 0x15, 0x63, 0x57, 0xbf, 0x6f, 0x40, 0x3e, 0xd2, 0xba, 0x0b, 0xc5, 0x44, 0x11,
2267	0x4c, 0x99, 0x12, 0x88, 0x4b, 0x2f, 0x31, 0x18, 0x33, 0x4f, 0x1b, 0x8c, 0xe6, 0x9f, 0x0d, 0xb8,
2268	0xb6, 0x81, 0xb9, 0x58, 0x5f, 0x27, 0x4a, 0xcf, 0x2e, 0x14, 0xaf, 0xfe, 0xa5, 0x08, 0x68, 0xfc,
2269	0x91, 0xe8, 0x25, 0x28, 0x0c, 0x1c, 0x0f, 0xdb, 0xe2, 0xad, 0x4e, 0x76, 0x86, 0x59, 0x2b, 0x2f,
2270	0x08, 0xfb, 0xfe, 0xa7, 0xf2, 0x9d, 0x47, 0x32, 0x39, 0x39, 0xc1, 0x81, 0x6e, 0xef, 0xf2, 0xf8,
2271	0x81, 0x20, 0x98, 0x3f, 0x36, 0xa0, 0x1c, 0x39, 0xa1, 0xa3, 0xba, 0x3f, 0xfa, 0x92, 0x6e, 0x4c,
2272	0xbb, 0x47, 0x27, 0x51, 0xd0, 0x6b, 0x50, 0x0e, 0xf0, 0x19, 0xb7, 0x13, 0xc6, 0xa8, 0xef, 0x0d,
2273	0xf3, 0x82, 0xbc, 0x17, 0x19, 0xb4, 0x0d, 0xc5, 0x03, 0x42, 0x7a, 0x6b, 0x98, 0x3b, 0x7e, 0x4f,
2274	0xbe, 0xcf, 0x09, 0x6d, 0xc9, 0x68, 0xe6, 0x05, 0x41, 0x46, 0xf2, 0x15, 0x28, 0x49, 0xe6, 0x29,
2275	0xa6, 0x2c, 0xdc, 0x55, 0x0b, 0x56, 0x51, 0xd0, 0x0e, 0x15, 0x49, 0x74, 0xf4, 0xb2, 0xce, 0x4e,
2276	0x34, 0xda, 0x0f, 0xb5, 0x98, 0xab, 0x74, 0xe8, 0xb2, 0xb9, 0x9b, 0xd6, 0xc1, 0x84, 0x79, 0x4a,
2277	0x57, 0xc2, 0x56, 0xdd, 0xa5, 0x7d, 0x57, 0xdb, 0x92, 0x57, 0x84, 0x4d, 0x57, 0x8c, 0x5b, 0xa9,
2278	0xd4, 0x0f, 0x4e, 0x49, 0xc7, 0x09, 0x4f, 0xe9, 0xe1, 0x2c, 0x38, 0x9b, 0x11, 0x63, 0xd3, 0x45,
2279	0x2b, 0x70, 0xab, 0x43, 0x28, 0xc5, 0x3d, 0x87, 0x63, 0x37, 0x21, 0xc3, 0x84, 0x90, 0x4a, 0xe2,
2280	0xcd, 0xf8, 0x40, 0x2c, 0xca, 0x36, 0xdd, 0xc6, 0x6f, 0x0c, 0x28, 0xb4, 0x42, 0xa3, 0xd1, 0xcf,
2281	0x0d, 0xc8, 0xe9, 0x9d, 0x04, 0x7d, 0x6d, 0xe2, 0xad, 0x4d, 0x06, 0xae, 0x7a, 0x3b, 0x94, 0x4b,
2282	0x7c, 0xa2, 0xad, 0x45, 0x1b, 0x8e, 0xf9, 0xe6, 0xf7, 0xfe, 0xf6, 0xcf, 0xcf, 0x32, 0x75, 0x73,
2283	0x39, 0xfc, 0x5c, 0xfc, 0x68, 0xe4, 0x12, 0xbc, 0xbd, 0xbc, 0xfc, 0xb8, 0xae, 0xe2, 0xc0, 0x56,
2284	0x94, 0x2a, 0xbc, 0x62, 0x2c, 0x37, 0x3e, 0xcf, 0x42, 0x51, 0x0d, 0x26, 0xf9, 0x16, 0x80, 0xfe,
2285	0xa5, 0x4a, 0x71, 0xe4, 0x6b, 0xc4, 0x37, 0xd3, 0x5a, 0x7c, 0xf9, 0x2a, 0x51, 0x9d, 0x6a, 0x42,
2286	0x9a, 0x1f, 0x4b, 0x87, 0x1e, 0xa2, 0x07, 0x4f, 0x75, 0x48, 0x09, 0xb0, 0xfa, 0xa3, 0x91, 0x99,
2287	0x5f, 0xeb, 0x3a, 0xac, 0xfb, 0x78, 0x9c, 0x18, 0x7f, 0x86, 0x79, 0x8c, 0xfe, 0x63, 0x00, 0xba,
2288	0xb8, 0x68, 0xa0, 0xfb, 0x93, 0xf5, 0xe9, 0x67, 0xe7, 0x31, 0x91, 0x1e, 0xfb, 0xd5, 0xe7, 0xe6,
2289	0xf1, 0xca, 0xe8, 0x02, 0xd3, 0xf8, 0xc5, 0x2c, 0xdc, 0x6a, 0xaa, 0x51, 0x78, 0xdf, 0x75, 0x29,
2290	0x66, 0x4c, 0xbc, 0x1f, 0xed, 0x73, 0x42, 0xc5, 0x92, 0xf9, 0x17, 0x03, 0x16, 0xc6, 0x37, 0x00,
2291	0xf4, 0x4e, 0xfa, 0x8f, 0x8e, 0x97, 0xae, 0x33, 0xd5, 0x6f, 0x4d, 0x0f, 0xa0, 0x3a, 0xa3, 0x79,
2292	0x4f, 0x86, 0xe9, 0x8e, 0xf9, 0xfa, 0xff, 0x08, 0x93, 0x98, 0x26, 0x6c, 0xe5, 0x38, 0x86, 0x58,
2293	0x31, 0x96, 0xa5, 0x43, 0xe3, 0x63, 0x2e, 0xbd, 0x43, 0x4f, 0xd8, 0x06, 0xd2, 0x3b, 0xf4, 0xa4,
2294	0x09, 0x3b, 0x81, 0x43, 0x47, 0x31, 0x84, 0x70, 0xe8, 0xef, 0x06, 0xe4, 0xf4, 0xdc, 0x48, 0xdf,
2295	0x56, 0x46, 0xa7, 0x65, 0xf5, 0xde, 0xc4, 0x72, 0xda, 0xea, 0x8f, 0xa4, 0xd5, 0x87, 0xe8, 0xe0,
2296	0x69, 0x56, 0xd7, 0x1f, 0x25, 0x26, 0x6d, 0x58, 0xa3, 0x49, 0x52, 0xb2, 0x42, 0x3d, 0xa5, 0x65,
2297	0xf5, 0x4f, 0x06, 0x2c, 0x77, 0x48, 0x3f, 0xa5, 0x71, 0xab, 0x37, 0x2c, 0x49, 0x8f, 0x3a, 0xee,
2298	0x1e, 0x25, 0x9c, 0xec, 0x19, 0x0f, 0xdb, 0x5a, 0xde, 0x23, 0x3d, 0x27, 0xf0, 0x6a, 0x84, 0x7a,
2299	0x75, 0x0f, 0x07, 0xf2, 0x6f, 0x91, 0xba, 0x62, 0x39, 0x03, 0x9f, 0x3d, 0xed, 0xaf, 0xb7, 0xb7,
2300	0xc6, 0xc8, 0xbf, 0xce, 0x64, 0xad, 0xd6, 0x83, 0xdf, 0x65, 0x6e, 0x6f, 0x28, 0xf4, 0x31, 0xe5,
2301	0xb5, 0xc3, 0x3b, 0x07, 0x98, 0xf1, 0xa3, 0x39, 0xa9, 0xe7, 0xee, 0x7f, 0x03, 0x00, 0x00, 0xff,
2302	0xff, 0xf0, 0x8a, 0x2f, 0x43, 0xe1, 0x1b, 0x00, 0x00,
2303}
2304
2305// Reference imports to suppress errors if they are not otherwise used.
2306var _ context.Context
2307var _ grpc.ClientConn
2308
2309// This is a compile-time assertion to ensure that this generated file
2310// is compatible with the grpc package it is being compiled against.
2311const _ = grpc.SupportPackageIsVersion4
2312
2313// ExecutionClient is the client API for Execution service.
2314//
2315// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
2316type ExecutionClient interface {
2317	// Execute an action remotely.
2318	//
2319	// In order to execute an action, the client must first upload all of the
2320	// inputs, as well as the
2321	// [Command][google.devtools.remoteexecution.v1test.Command] to run, into the
2322	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
2323	// It then calls `Execute` with an
2324	// [Action][google.devtools.remoteexecution.v1test.Action] referring to them.
2325	// The server will run the action and eventually return the result.
2326	//
2327	// The input `Action`'s fields MUST meet the various canonicalization
2328	// requirements specified in the documentation for their types so that it has
2329	// the same digest as other logically equivalent `Action`s. The server MAY
2330	// enforce the requirements and return errors if a non-canonical input is
2331	// received. It MAY also proceed without verifying some or all of the
2332	// requirements, such as for performance reasons. If the server does not
2333	// verify the requirement, then it will treat the `Action` as distinct from
2334	// another logically equivalent action if they hash differently.
2335	//
2336	// Returns a [google.longrunning.Operation][google.longrunning.Operation]
2337	// describing the resulting execution, with eventual `response`
2338	// [ExecuteResponse][google.devtools.remoteexecution.v1test.ExecuteResponse].
2339	// The `metadata` on the operation is of type
2340	// [ExecuteOperationMetadata][google.devtools.remoteexecution.v1test.ExecuteOperationMetadata].
2341	//
2342	// To query the operation, you can use the
2343	// [Operations API][google.longrunning.Operations.GetOperation]. If you wish
2344	// to allow the server to stream operations updates, rather than requiring
2345	// client polling, you can use the
2346	// [Watcher API][google.watcher.v1.Watcher.Watch] with the Operation's `name`
2347	// as the `target`.
2348	//
2349	// When using the Watcher API, the initial `data` will be the `Operation` at
2350	// the time of the request. Updates will be provided periodically by the
2351	// server until the `Operation` completes, at which point the response message
2352	// will (assuming no error) be at `data.response`.
2353	//
2354	// The server NEED NOT implement other methods or functionality of the
2355	// Operation and Watcher APIs.
2356	//
2357	// Errors discovered during creation of the `Operation` will be reported
2358	// as gRPC Status errors, while errors that occurred while running the
2359	// action will be reported in the `status` field of the `ExecuteResponse`. The
2360	// server MUST NOT set the `error` field of the `Operation` proto.
2361	// The possible errors include:
2362	// * `INVALID_ARGUMENT`: One or more arguments are invalid.
2363	// * `FAILED_PRECONDITION`: One or more errors occurred in setting up the
2364	//   action requested, such as a missing input or command or no worker being
2365	//   available. The client may be able to fix the errors and retry.
2366	// * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
2367	//   the action.
2368	// * `UNAVAILABLE`: Due to a transient condition, such as all workers being
2369	//   occupied (and the server does not support a queue), the action could not
2370	//   be started. The client should retry.
2371	// * `INTERNAL`: An internal error occurred in the execution engine or the
2372	//   worker.
2373	// * `DEADLINE_EXCEEDED`: The execution timed out.
2374	//
2375	// In the case of a missing input or command, the server SHOULD additionally
2376	// send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
2377	// where, for each requested blob not present in the CAS, there is a
2378	// `Violation` with a `type` of `MISSING` and a `subject` of
2379	// `"blobs/{hash}/{size}"` indicating the digest of the missing blob.
2380	Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (*longrunning.Operation, error)
2381}
2382
2383type executionClient struct {
2384	cc *grpc.ClientConn
2385}
2386
2387func NewExecutionClient(cc *grpc.ClientConn) ExecutionClient {
2388	return &executionClient{cc}
2389}
2390
2391func (c *executionClient) Execute(ctx context.Context, in *ExecuteRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) {
2392	out := new(longrunning.Operation)
2393	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.Execution/Execute", in, out, opts...)
2394	if err != nil {
2395		return nil, err
2396	}
2397	return out, nil
2398}
2399
2400// ExecutionServer is the server API for Execution service.
2401type ExecutionServer interface {
2402	// Execute an action remotely.
2403	//
2404	// In order to execute an action, the client must first upload all of the
2405	// inputs, as well as the
2406	// [Command][google.devtools.remoteexecution.v1test.Command] to run, into the
2407	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage].
2408	// It then calls `Execute` with an
2409	// [Action][google.devtools.remoteexecution.v1test.Action] referring to them.
2410	// The server will run the action and eventually return the result.
2411	//
2412	// The input `Action`'s fields MUST meet the various canonicalization
2413	// requirements specified in the documentation for their types so that it has
2414	// the same digest as other logically equivalent `Action`s. The server MAY
2415	// enforce the requirements and return errors if a non-canonical input is
2416	// received. It MAY also proceed without verifying some or all of the
2417	// requirements, such as for performance reasons. If the server does not
2418	// verify the requirement, then it will treat the `Action` as distinct from
2419	// another logically equivalent action if they hash differently.
2420	//
2421	// Returns a [google.longrunning.Operation][google.longrunning.Operation]
2422	// describing the resulting execution, with eventual `response`
2423	// [ExecuteResponse][google.devtools.remoteexecution.v1test.ExecuteResponse].
2424	// The `metadata` on the operation is of type
2425	// [ExecuteOperationMetadata][google.devtools.remoteexecution.v1test.ExecuteOperationMetadata].
2426	//
2427	// To query the operation, you can use the
2428	// [Operations API][google.longrunning.Operations.GetOperation]. If you wish
2429	// to allow the server to stream operations updates, rather than requiring
2430	// client polling, you can use the
2431	// [Watcher API][google.watcher.v1.Watcher.Watch] with the Operation's `name`
2432	// as the `target`.
2433	//
2434	// When using the Watcher API, the initial `data` will be the `Operation` at
2435	// the time of the request. Updates will be provided periodically by the
2436	// server until the `Operation` completes, at which point the response message
2437	// will (assuming no error) be at `data.response`.
2438	//
2439	// The server NEED NOT implement other methods or functionality of the
2440	// Operation and Watcher APIs.
2441	//
2442	// Errors discovered during creation of the `Operation` will be reported
2443	// as gRPC Status errors, while errors that occurred while running the
2444	// action will be reported in the `status` field of the `ExecuteResponse`. The
2445	// server MUST NOT set the `error` field of the `Operation` proto.
2446	// The possible errors include:
2447	// * `INVALID_ARGUMENT`: One or more arguments are invalid.
2448	// * `FAILED_PRECONDITION`: One or more errors occurred in setting up the
2449	//   action requested, such as a missing input or command or no worker being
2450	//   available. The client may be able to fix the errors and retry.
2451	// * `RESOURCE_EXHAUSTED`: There is insufficient quota of some resource to run
2452	//   the action.
2453	// * `UNAVAILABLE`: Due to a transient condition, such as all workers being
2454	//   occupied (and the server does not support a queue), the action could not
2455	//   be started. The client should retry.
2456	// * `INTERNAL`: An internal error occurred in the execution engine or the
2457	//   worker.
2458	// * `DEADLINE_EXCEEDED`: The execution timed out.
2459	//
2460	// In the case of a missing input or command, the server SHOULD additionally
2461	// send a [PreconditionFailure][google.rpc.PreconditionFailure] error detail
2462	// where, for each requested blob not present in the CAS, there is a
2463	// `Violation` with a `type` of `MISSING` and a `subject` of
2464	// `"blobs/{hash}/{size}"` indicating the digest of the missing blob.
2465	Execute(context.Context, *ExecuteRequest) (*longrunning.Operation, error)
2466}
2467
2468func RegisterExecutionServer(s *grpc.Server, srv ExecutionServer) {
2469	s.RegisterService(&_Execution_serviceDesc, srv)
2470}
2471
2472func _Execution_Execute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2473	in := new(ExecuteRequest)
2474	if err := dec(in); err != nil {
2475		return nil, err
2476	}
2477	if interceptor == nil {
2478		return srv.(ExecutionServer).Execute(ctx, in)
2479	}
2480	info := &grpc.UnaryServerInfo{
2481		Server:     srv,
2482		FullMethod: "/google.devtools.remoteexecution.v1test.Execution/Execute",
2483	}
2484	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2485		return srv.(ExecutionServer).Execute(ctx, req.(*ExecuteRequest))
2486	}
2487	return interceptor(ctx, in, info, handler)
2488}
2489
2490var _Execution_serviceDesc = grpc.ServiceDesc{
2491	ServiceName: "google.devtools.remoteexecution.v1test.Execution",
2492	HandlerType: (*ExecutionServer)(nil),
2493	Methods: []grpc.MethodDesc{
2494		{
2495			MethodName: "Execute",
2496			Handler:    _Execution_Execute_Handler,
2497		},
2498	},
2499	Streams:  []grpc.StreamDesc{},
2500	Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
2501}
2502
2503// ActionCacheClient is the client API for ActionCache service.
2504//
2505// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
2506type ActionCacheClient interface {
2507	// Retrieve a cached execution result.
2508	//
2509	// Errors:
2510	// * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
2511	GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
2512	// Upload a new execution result.
2513	//
2514	// This method is intended for servers which implement the distributed cache
2515	// independently of the
2516	// [Execution][google.devtools.remoteexecution.v1test.Execution] API. As a
2517	// result, it is OPTIONAL for servers to implement.
2518	//
2519	// Errors:
2520	// * `NOT_IMPLEMENTED`: This method is not supported by the server.
2521	// * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
2522	//   entry to the cache.
2523	UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error)
2524}
2525
2526type actionCacheClient struct {
2527	cc *grpc.ClientConn
2528}
2529
2530func NewActionCacheClient(cc *grpc.ClientConn) ActionCacheClient {
2531	return &actionCacheClient{cc}
2532}
2533
2534func (c *actionCacheClient) GetActionResult(ctx context.Context, in *GetActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
2535	out := new(ActionResult)
2536	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ActionCache/GetActionResult", in, out, opts...)
2537	if err != nil {
2538		return nil, err
2539	}
2540	return out, nil
2541}
2542
2543func (c *actionCacheClient) UpdateActionResult(ctx context.Context, in *UpdateActionResultRequest, opts ...grpc.CallOption) (*ActionResult, error) {
2544	out := new(ActionResult)
2545	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ActionCache/UpdateActionResult", in, out, opts...)
2546	if err != nil {
2547		return nil, err
2548	}
2549	return out, nil
2550}
2551
2552// ActionCacheServer is the server API for ActionCache service.
2553type ActionCacheServer interface {
2554	// Retrieve a cached execution result.
2555	//
2556	// Errors:
2557	// * `NOT_FOUND`: The requested `ActionResult` is not in the cache.
2558	GetActionResult(context.Context, *GetActionResultRequest) (*ActionResult, error)
2559	// Upload a new execution result.
2560	//
2561	// This method is intended for servers which implement the distributed cache
2562	// independently of the
2563	// [Execution][google.devtools.remoteexecution.v1test.Execution] API. As a
2564	// result, it is OPTIONAL for servers to implement.
2565	//
2566	// Errors:
2567	// * `NOT_IMPLEMENTED`: This method is not supported by the server.
2568	// * `RESOURCE_EXHAUSTED`: There is insufficient storage space to add the
2569	//   entry to the cache.
2570	UpdateActionResult(context.Context, *UpdateActionResultRequest) (*ActionResult, error)
2571}
2572
2573func RegisterActionCacheServer(s *grpc.Server, srv ActionCacheServer) {
2574	s.RegisterService(&_ActionCache_serviceDesc, srv)
2575}
2576
2577func _ActionCache_GetActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2578	in := new(GetActionResultRequest)
2579	if err := dec(in); err != nil {
2580		return nil, err
2581	}
2582	if interceptor == nil {
2583		return srv.(ActionCacheServer).GetActionResult(ctx, in)
2584	}
2585	info := &grpc.UnaryServerInfo{
2586		Server:     srv,
2587		FullMethod: "/google.devtools.remoteexecution.v1test.ActionCache/GetActionResult",
2588	}
2589	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2590		return srv.(ActionCacheServer).GetActionResult(ctx, req.(*GetActionResultRequest))
2591	}
2592	return interceptor(ctx, in, info, handler)
2593}
2594
2595func _ActionCache_UpdateActionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2596	in := new(UpdateActionResultRequest)
2597	if err := dec(in); err != nil {
2598		return nil, err
2599	}
2600	if interceptor == nil {
2601		return srv.(ActionCacheServer).UpdateActionResult(ctx, in)
2602	}
2603	info := &grpc.UnaryServerInfo{
2604		Server:     srv,
2605		FullMethod: "/google.devtools.remoteexecution.v1test.ActionCache/UpdateActionResult",
2606	}
2607	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2608		return srv.(ActionCacheServer).UpdateActionResult(ctx, req.(*UpdateActionResultRequest))
2609	}
2610	return interceptor(ctx, in, info, handler)
2611}
2612
2613var _ActionCache_serviceDesc = grpc.ServiceDesc{
2614	ServiceName: "google.devtools.remoteexecution.v1test.ActionCache",
2615	HandlerType: (*ActionCacheServer)(nil),
2616	Methods: []grpc.MethodDesc{
2617		{
2618			MethodName: "GetActionResult",
2619			Handler:    _ActionCache_GetActionResult_Handler,
2620		},
2621		{
2622			MethodName: "UpdateActionResult",
2623			Handler:    _ActionCache_UpdateActionResult_Handler,
2624		},
2625	},
2626	Streams:  []grpc.StreamDesc{},
2627	Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
2628}
2629
2630// ContentAddressableStorageClient is the client API for ContentAddressableStorage service.
2631//
2632// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
2633type ContentAddressableStorageClient interface {
2634	// Determine if blobs are present in the CAS.
2635	//
2636	// Clients can use this API before uploading blobs to determine which ones are
2637	// already present in the CAS and do not need to be uploaded again.
2638	//
2639	// There are no method-specific errors.
2640	FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error)
2641	// Upload many blobs at once.
2642	//
2643	// The client MUST NOT upload blobs with a combined total size of more than 10
2644	// MiB using this API. Such requests should either be split into smaller
2645	// chunks or uploaded using the
2646	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
2647	//
2648	// This request is equivalent to calling [UpdateBlob][] on each individual
2649	// blob, in parallel. The requests may succeed or fail independently.
2650	//
2651	// Errors:
2652	// * `INVALID_ARGUMENT`: The client attempted to upload more than 10 MiB of
2653	//   data.
2654	//
2655	// Individual requests may return the following errors, additionally:
2656	// * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
2657	// * `INVALID_ARGUMENT`: The
2658	// [Digest][google.devtools.remoteexecution.v1test.Digest] does not match the
2659	// provided data.
2660	BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error)
2661	// Fetch the entire directory tree rooted at a node.
2662	//
2663	// This request must be targeted at a
2664	// [Directory][google.devtools.remoteexecution.v1test.Directory] stored in the
2665	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage]
2666	// (CAS). The server will enumerate the `Directory` tree recursively and
2667	// return every node descended from the root.
2668	// The exact traversal order is unspecified and, unless retrieving subsequent
2669	// pages from an earlier request, is not guaranteed to be stable across
2670	// multiple invocations of `GetTree`.
2671	//
2672	// If part of the tree is missing from the CAS, the server will return the
2673	// portion present and omit the rest.
2674	//
2675	// * `NOT_FOUND`: The requested tree root is not present in the CAS.
2676	GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (*GetTreeResponse, error)
2677}
2678
2679type contentAddressableStorageClient struct {
2680	cc *grpc.ClientConn
2681}
2682
2683func NewContentAddressableStorageClient(cc *grpc.ClientConn) ContentAddressableStorageClient {
2684	return &contentAddressableStorageClient{cc}
2685}
2686
2687func (c *contentAddressableStorageClient) FindMissingBlobs(ctx context.Context, in *FindMissingBlobsRequest, opts ...grpc.CallOption) (*FindMissingBlobsResponse, error) {
2688	out := new(FindMissingBlobsResponse)
2689	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/FindMissingBlobs", in, out, opts...)
2690	if err != nil {
2691		return nil, err
2692	}
2693	return out, nil
2694}
2695
2696func (c *contentAddressableStorageClient) BatchUpdateBlobs(ctx context.Context, in *BatchUpdateBlobsRequest, opts ...grpc.CallOption) (*BatchUpdateBlobsResponse, error) {
2697	out := new(BatchUpdateBlobsResponse)
2698	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/BatchUpdateBlobs", in, out, opts...)
2699	if err != nil {
2700		return nil, err
2701	}
2702	return out, nil
2703}
2704
2705func (c *contentAddressableStorageClient) GetTree(ctx context.Context, in *GetTreeRequest, opts ...grpc.CallOption) (*GetTreeResponse, error) {
2706	out := new(GetTreeResponse)
2707	err := c.cc.Invoke(ctx, "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/GetTree", in, out, opts...)
2708	if err != nil {
2709		return nil, err
2710	}
2711	return out, nil
2712}
2713
2714// ContentAddressableStorageServer is the server API for ContentAddressableStorage service.
2715type ContentAddressableStorageServer interface {
2716	// Determine if blobs are present in the CAS.
2717	//
2718	// Clients can use this API before uploading blobs to determine which ones are
2719	// already present in the CAS and do not need to be uploaded again.
2720	//
2721	// There are no method-specific errors.
2722	FindMissingBlobs(context.Context, *FindMissingBlobsRequest) (*FindMissingBlobsResponse, error)
2723	// Upload many blobs at once.
2724	//
2725	// The client MUST NOT upload blobs with a combined total size of more than 10
2726	// MiB using this API. Such requests should either be split into smaller
2727	// chunks or uploaded using the
2728	// [ByteStream API][google.bytestream.ByteStream], as appropriate.
2729	//
2730	// This request is equivalent to calling [UpdateBlob][] on each individual
2731	// blob, in parallel. The requests may succeed or fail independently.
2732	//
2733	// Errors:
2734	// * `INVALID_ARGUMENT`: The client attempted to upload more than 10 MiB of
2735	//   data.
2736	//
2737	// Individual requests may return the following errors, additionally:
2738	// * `RESOURCE_EXHAUSTED`: There is insufficient disk quota to store the blob.
2739	// * `INVALID_ARGUMENT`: The
2740	// [Digest][google.devtools.remoteexecution.v1test.Digest] does not match the
2741	// provided data.
2742	BatchUpdateBlobs(context.Context, *BatchUpdateBlobsRequest) (*BatchUpdateBlobsResponse, error)
2743	// Fetch the entire directory tree rooted at a node.
2744	//
2745	// This request must be targeted at a
2746	// [Directory][google.devtools.remoteexecution.v1test.Directory] stored in the
2747	// [ContentAddressableStorage][google.devtools.remoteexecution.v1test.ContentAddressableStorage]
2748	// (CAS). The server will enumerate the `Directory` tree recursively and
2749	// return every node descended from the root.
2750	// The exact traversal order is unspecified and, unless retrieving subsequent
2751	// pages from an earlier request, is not guaranteed to be stable across
2752	// multiple invocations of `GetTree`.
2753	//
2754	// If part of the tree is missing from the CAS, the server will return the
2755	// portion present and omit the rest.
2756	//
2757	// * `NOT_FOUND`: The requested tree root is not present in the CAS.
2758	GetTree(context.Context, *GetTreeRequest) (*GetTreeResponse, error)
2759}
2760
2761func RegisterContentAddressableStorageServer(s *grpc.Server, srv ContentAddressableStorageServer) {
2762	s.RegisterService(&_ContentAddressableStorage_serviceDesc, srv)
2763}
2764
2765func _ContentAddressableStorage_FindMissingBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2766	in := new(FindMissingBlobsRequest)
2767	if err := dec(in); err != nil {
2768		return nil, err
2769	}
2770	if interceptor == nil {
2771		return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, in)
2772	}
2773	info := &grpc.UnaryServerInfo{
2774		Server:     srv,
2775		FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/FindMissingBlobs",
2776	}
2777	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2778		return srv.(ContentAddressableStorageServer).FindMissingBlobs(ctx, req.(*FindMissingBlobsRequest))
2779	}
2780	return interceptor(ctx, in, info, handler)
2781}
2782
2783func _ContentAddressableStorage_BatchUpdateBlobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2784	in := new(BatchUpdateBlobsRequest)
2785	if err := dec(in); err != nil {
2786		return nil, err
2787	}
2788	if interceptor == nil {
2789		return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, in)
2790	}
2791	info := &grpc.UnaryServerInfo{
2792		Server:     srv,
2793		FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/BatchUpdateBlobs",
2794	}
2795	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2796		return srv.(ContentAddressableStorageServer).BatchUpdateBlobs(ctx, req.(*BatchUpdateBlobsRequest))
2797	}
2798	return interceptor(ctx, in, info, handler)
2799}
2800
2801func _ContentAddressableStorage_GetTree_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
2802	in := new(GetTreeRequest)
2803	if err := dec(in); err != nil {
2804		return nil, err
2805	}
2806	if interceptor == nil {
2807		return srv.(ContentAddressableStorageServer).GetTree(ctx, in)
2808	}
2809	info := &grpc.UnaryServerInfo{
2810		Server:     srv,
2811		FullMethod: "/google.devtools.remoteexecution.v1test.ContentAddressableStorage/GetTree",
2812	}
2813	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
2814		return srv.(ContentAddressableStorageServer).GetTree(ctx, req.(*GetTreeRequest))
2815	}
2816	return interceptor(ctx, in, info, handler)
2817}
2818
2819var _ContentAddressableStorage_serviceDesc = grpc.ServiceDesc{
2820	ServiceName: "google.devtools.remoteexecution.v1test.ContentAddressableStorage",
2821	HandlerType: (*ContentAddressableStorageServer)(nil),
2822	Methods: []grpc.MethodDesc{
2823		{
2824			MethodName: "FindMissingBlobs",
2825			Handler:    _ContentAddressableStorage_FindMissingBlobs_Handler,
2826		},
2827		{
2828			MethodName: "BatchUpdateBlobs",
2829			Handler:    _ContentAddressableStorage_BatchUpdateBlobs_Handler,
2830		},
2831		{
2832			MethodName: "GetTree",
2833			Handler:    _ContentAddressableStorage_GetTree_Handler,
2834		},
2835	},
2836	Streams:  []grpc.StreamDesc{},
2837	Metadata: "google/devtools/remoteexecution/v1test/remote_execution.proto",
2838}
2839