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